轉載自:https://www.rfwireless-world.com/Tutorials/Modbus-Protocol-tutorial.html
這個Modbus教程涵蓋了modbus協議基礎,ASCII和RTU幀結構,Modbus協議工作。Modbus協議教程還描述了應用示例。
什么是Modbus?
簡介:
“Modbus”術語是Modicon Inc.的商標,維護該標准。它是一種應用層協議,它基於連接在不同類型總線或網絡上的設備之間的客戶端/服務器架構。該Modbus協議用於SCADA風格的設備之間的網絡通信。
Modbus協議運行在RS232,RS422和RS485之上。對於Modbus幀,為基於IP的鏈路層定義了Modbus / TCP規范。有許多工業自動化和計量協議。Modbus協議基於查詢/響應模型。“查詢消息”和“響應消息”及其字段(即內容)的放大視圖如下圖所示。
•如圖所示,查詢和響應消息都包含start(0x3A)和end(0x0D0A)分隔符。
•查詢消息由包括設備地址,功能代碼,查詢數據和錯誤檢查的字段組成。
•響應消息由包括設備地址,功能代碼,響應數據和錯誤檢查的字段組成。
Modbus協議工作
•Modbus協議通常遵循基於主從架構。主設備向從設備發送請求消息並等待響應消息。該架構為主站提供了完整的信息流控制。與以前使用RS422 / RS485等的多點網絡相比,這具有很大的優點
•如圖所示,Modbus請求消息是一組分層數據。控制器可以設置為使用兩種傳輸模式之一在標准Modbus網絡上進行通信:ASCII或RTU。在配置每個控制器期間,用戶可以選擇所需的模式以及串行端口通信參數(波特率,奇偶校驗模式等)。對於Modbus網絡上的所有設備,模式和串行參數必須相同。
•ASCII或RTU(遠程終端單元)模式的選擇僅適用於標准Modbus網絡。它定義了在這些網絡上串行傳輸的消息字段的位內容。它確定如何將信息打包到消息字段中並進行解碼。
•當控制器設置為使用ASCII模式在Modbus網絡上通信時,消息中的每個8位字節將作為兩個ASCII字符發送。此模式的主要優點是它允許在字符之間發生長達一秒的時間間隔而不會導致錯誤。
•當控制器設置為使用RTU模式在Modbus網絡上通信時,消息中的每個8位字節都包含兩個四位十六進制字符。這種模式的主要優點是,對於相同的波特率,其更大的字符密度可以比ASCII更好的數據吞吐量。每條消息必須以連續的流方式傳輸。
•在兩種串行傳輸模式(ASCII或RTU)中的任何一種模式下,發送設備將Modbus消息放入具有已知起點和終點的幀中。這允許接收設備在消息開始時開始,讀取地址部分並確定尋址哪個設備,以及知道消息何時完成。可以檢測到部分消息,並且可以設置錯誤。
•如圖所示,Modbus協議適用於主從模型。總線或網絡上的一個設備可以啟動事務(稱為查詢),該事務可以尋址單個從設備或廣播到所有從設備。從設備根據收到的Modbus幀執行操作,並在需要時以“響應幀”的形式進行響應。
•傳輸模式定義要在Modbus網絡上傳輸的消息的成幀和位編碼。
Modbus ASCII模式
該圖描繪了Modbus幀的ASCII模式。如ASCII模式所示,每個字節在串行鏈路上編碼為2個ASCII字符。每個ASCII字符作為1個起始位,7個數據位,0或1個奇偶校驗位,一個或兩個停止位發送
Modbus RTU模式
該圖描繪了Modbus幀的RTU模式。如RTU(遠程終端單元)模式所示,消息以連續流格式傳輸。每個8位字節由1個起始位,8個數據位,0或1個奇偶校驗位,1或2個停止位構成。消息本身在至少3.5個字符時間的靜默期后開始。
Modbus消息字段
➤讓我們了解在ASCII模式和RTU模式下使用的主要字段。
Modbus地址: Modbus消息以8位目標地址開始。這可以取0到247之間的任何值。這里0用作廣播地址,其余用作唯一設備地址。
Modbus功能:功能代碼包含2個字符(ASCII模式)和8位(RTU模式)/它取1到255之間的任何值,並根據應用程序配置文件選擇。
Modbus數據字段:該數據字段根據需要通過不同的Modbus功能傳送應用程序級別信息。如果函數包含可變大小的數據,則在此位置以“字節計數”開頭。
Modbus錯誤檢查字段:此字段用作錯誤檢測。它也被稱為“校驗和”。
Modbus TCP模式
與RS232和RS485不同,Modbus TCP使用TCP / IP協議傳輸Modbus消息。該圖描繪了TCP / IP和OSI協議棧中Modbus協議的映射。
•Modbus TCP提供對Modbus功能的TCP / IP訪問。
•使用眾所周知的端口502,通過主站和從站之間建立的TCP連接發送每個Modbus請求/響應。
•TCP連接可以重復用於多個查詢/響應交換。
•modbus請求/響應幀的字節內容(即沒有特定於串行物理層的幀起始 - 停止 - 奇偶校驗位)僅通過TCP連接以大印度順序傳輸。Modbus TCP的唯一補充是添加一個7字節的消息前綴。
➤Refref00 00 00 len unit
•“ref”字節簡單地由從服務器從請求中復制,並且可以由主服務器用作句柄。消息前綴中的長度信息允許在多個IP數據包中分割Modbus消息時正確重新組裝。
•從站地址已重命名為“單元標識符”並包含在單元中。消息的其余部分符合常規Modbus結構,但出於顯而易見的原因,可能會省略錯誤檢查字段。
Profibus與Modbus
下表提到了Profibus和Modbus之間在各種參數方面的比較。
特征 | 現場總線 | MODBUS |
---|---|---|
操作模式 | 使用RS485在多主模式下運行。 | 僅使用ASCII / RTI在單主模式下運行。 |
使用以太網 | 無法在以太網上運行,但profinet在以太網上運行,與profibus不同。 | 可以使用TCP / IP協議在以太網上運行。 |
物理媒介 | 雙絞線,光纖 | Modbus沒有定義物理介質。它定義了可以在任何物理介質上使用的消息結構。然而,Modbus RS485在所有人中都很受歡迎。 |
傳輸速度 | 以1.2 Kbps至12 Mbps的不同傳輸速度運行。 | Modbus RS485支持高達115 Kbps或高達19.2 Kbps的傳輸種子。 |
距離覆蓋 | 32個站使用profibus距離可達1200米,而2個站以500 kbps的速度通信,距離可達400米。低速傳輸支持更高的距離,而高速傳輸支持更低的距離。 | Modbus RS485電纜應小於700米。 |
主設備和從設備的數量 | 單個profibus網絡上最多連接126個設備(主設備和從設備)。 | Modbus主站實際上支持247個從設備。由於RS485協議限制,主電纜上連接的主設備(包括主設備)的數量為32。支持使用超過32個中繼器。 |
未來的使用 | 單獨使用profibus很好,但它的專業特性與RS485相結合將會過時。然而,專業的傳感器/演員現場總線設備已經增加了他們現在和將來在自動化行業的市場滲透率 | 由於協議簡單,它已成為自動化行業中主要的以太網協議之一。其他舊版本是RS232,RS422,RS485等。設備用於總線上和不帶地址。 |
應用 | 它是非常強大的協議,可用於自動化整個工廠。它用於有更多點和多個供應商設備自動化的地方。 | 這是一種非常簡單的協議,可用於在點對點配置模式下連接單個控制器。它用於小型工廠自動化。 |
Modbus應用示例
modbus協議可以在RS485 / RS422等各種系統中實現。
•Zigbee到Modbus RTU / TCP網關
•實時庫存控制,如揀貨,點亮等。
•工業自動化
•智能計量
這個Modbus教程對初學者學習Modbus協議的基礎非常有用。有關更多信息,請參閱ASCII,RTU或TCP模式的相應modbus協議規范。