第一篇 串行鏈路上MODBUS協議應用簡介
Modbus 是由Modicon(現在的施耐德電氣公司)在 1979 年發明的,是全球第一個真正用于工業現場的總線協議。Modbus網絡是一個工業通信系統,由帶智能終端的可編程序控制器和計算機通過公用線路或局部專用線路連接而成。其系統結構既包括硬件、也包括軟件。Modbus 協議是應用于電子控制器上的一種通信語言。通過此協議,控制器互相之間、控制器經由網絡和其它設備之間可以通信。它已經成為一通用工業標準。不同廠商生產的控制設備可以連成工業網絡,進行集中監控。
Modbus可以在基于串行鏈路和以太TCP/IP網絡上進行通信。串行鏈路和 TCP/IP 上的 Modbus 是根據相應 ISO 層模型說明的兩個通信規程。
下圖強調指出了該標準的主要部分。綠色方框表示規范。灰色方框表示已有的國際標準。
01 傳輸模式
本文主要介紹在基于串行鏈路上常用的兩種傳輸模式(ASCII和RTU),Modbus 串行鏈路協議是一個主-從協議,在同一時刻,只有一個主節點,一個或多個子節點連接于同一串行總線。子節點不會主動發送數據,只有在收到來自主節點的請求時才會發送,主節點在同一時刻只會發起一個Modbus事務處理。
為了方便理解,我們將主節點以及子節點分別稱為主設備和從設備。
主設備可單獨與從設備通信,也能以廣播方式和所有從設備通信。如果是單獨通信,從設備返回消息作為回應;如果是廣播方式查詢的,則不作任何回應。
當數據幀到達終端設備(從設備)時,它通過一個簡單的“端口”進入被尋址到的設備,該設備去掉數據幀的“信封”(數據頭),讀取數據,如果沒有錯誤,就執行數據所請求的任務,然后將自己生成的數據加入到取得的“信封”中,把數據幀返回給發送者。返回的響應數據中包含了以下內容:終端從機地址、被執行了的命令、執行命令生成的被請求數據和一個校驗碼。發生任何錯誤都不會有成功的響應,或者返回一個錯誤指示幀。
Modbus總線拓撲結構
02 MODBUS消息幀
Modbus 協議定義了一個與基礎通信層無關的簡單協議數據單元(PDU)。特定總線或網絡上的 Modbus 協議映射能夠在應用數據單元(ADU)上引入一些附加域。
通用MODBUS幀
用戶選擇想要的模式,包括串口通信參數(波特率、校驗方式等),在配置每個控制器的時候,在一個 Modbus 網絡上所有設備都必須選擇相同的傳輸模式和串口參數。
兩種模式分類
ASCII消息幀結構
RTU消息幀結構
所選的 ASCII 或 RTU 方式僅適用于標準的 Modbus 網絡,它定義了在這些網絡上連續傳輸的消息段的每一位,以及決定怎樣將信息打包成消息域和如何解碼。
地址域在幀的開始部分,由一個字節(8 位二進制)組成,十進制位 0255,在我們系統中只使用 1147,其它地址保留。這些位標明了用戶指定的從設備的地址,該設備將接受來自與之相連主設備數據。每個從設備的地址必須是唯一的,僅僅被尋址到的從設備會響應包含了該地址的查詢。當從設備發送回一個響應,響應中的從設備地址數據便告訴了主設備是哪臺設備與之進行通信。
功能碼的作用是指明從設備要執行的動作。
數據域包括附加信息,從設備使用這個信息執行功能碼定義的操作。這個域還包括離散項目和寄存器地址、處理的項目數量以及域中的實際數據字節數。在某種請求中,數據域可以是不存在的(0 長度),在此情況下服務器不需要任何附加信息,功能碼僅說明操作。
錯誤校驗域是對報文內容執行“冗余校驗”的計算結果。根據不同的傳輸模式(RTU 或 ASCII)使用兩種不同的計算方法。
-
控制器
+關注
關注
112文章
16204瀏覽量
177420 -
計算機
+關注
關注
19文章
7423瀏覽量
87719 -
MODBUS
+關注
關注
28文章
1762瀏覽量
76839 -
RTU
+關注
關注
0文章
404瀏覽量
28626 -
總線協議
+關注
關注
0文章
115瀏覽量
14840
發布評論請先 登錄
相關推薦
評論