Modbus通訊
1、串行傳輸模式
Modbus 串行鏈路協議是一個主-從協議。 在同一時刻,只有一個主節點連接於總線,一個或多個
子節點 (最大編號爲 247) 連接於同一個串行總線。 Modbus 通信總是由主節點發起。子節點在沒
有收到來自主節點的請求時,從不會發送數據。子節點之間從不會互相通信。主節點在同一時刻只
會發起一個Modbus 事務處理。
節點以兩種模式對子節點發出 Modbus 請求:
1、在單播模式, 主節點以特定地址訪問某個子節點, 子節點接到並處理完請求後, 子節點向
主節點返回一個報文(一個 '應答')。在這種模式, 一個 Modbus 事務處理包含 2 個報文: 一個
來自主節點的請求, 一個來自子節點的應答。每個子節點必須有唯一的地址 (1 到 247),這樣
才能區別於其它節點被獨立的尋址。
2、在廣播模式,主節點向所有的子節點發送請求。對於主節點廣播的請求沒有應答返回。廣播
請求一般用於寫命令。 所有設備必須接受廣播模式的寫功能。 地址 0 是專門用於表示廣播數據的
兩種串行傳輸模式被定義:RTU 模式 和 ASCII 模式
Modbus 串行鏈路上所有設備的傳輸模式 (和串行口參數) 必須相同。
所有設備必須必須實現 RTU 模式。 ASCII 傳輸模式是選項。
設備應該由用戶設成期望的模式, RTU 或 ASCII。 默認設置必須爲 RTU 模式
1.1 RTU傳輸模式
當設備使用 RTU (RemoteTerminal Unit) 模式在 Modbus 串行鏈路通信, 報文中每個 8位字節含
有兩個4位十六進制字符。 這種模式的主要優點是較高的數據密度, 在相同的波特率下比ASCII 模
式有更高的吞吐率。每個報文必須以連續的字符流傳送。
1.2 ASCII傳輸模式
當 Modbus 串行鏈路的設備被配置爲使用 ASCII (American Standard Code for Information
Interchange) 模式通信時, 報文中的每個 8 位子節以兩個 ASCII 字符發送。當通信鏈路或者設備
無法符合RTU 模式的定時管理時使用該模式。
注 : 由於一個子節需要兩個字符,此模式比 RTU 效率低。
2、TCP/IP模式
MODBUS報文傳輸服務提供設備之間的客戶機/服務器通信, 這些設備聯接在一個TCP/IP 網絡上。這個客戶機/服務器模式是基於4種類型報文:
1、MODBUS 請求
2、MODBUS 證實
3、MODBUS 指示
4、MODBUS 響應
2.1 TCP/IP MODBUS報文分析