轉載自:https://www.rfwireless-world.com/Tutorials/Modbus-Protocol-tutorial.html
這個Modbus教程涵蓋了modbus協議基礎,ASCII和RTU幀結構,Modbus協議工做。Modbus協議教程還描述了應用示例。html
什麼是Modbus?
簡介:
「Modbus」術語是Modicon Inc.的商標,維護該標準。它是一種應用層協議,它基於鏈接在不一樣類型總線或網絡上的設備之間的客戶端/服務器架構。該Modbus協議用於SCADA風格的設備之間的網絡通訊。服務器
Modbus協議運行在RS232,RS422和RS485之上。對於Modbus幀,爲基於IP的鏈路層定義了Modbus / TCP規範。有許多工業自動化和計量協議。Modbus協議基於查詢/響應模型。「查詢消息」和「響應消息」及其字段(即內容)的放大視圖以下圖所示。網絡
•如圖所示,查詢和響應消息都包含start(0x3A)和end(0x0D0A)分隔符。
•查詢消息由包括設備地址,功能代碼,查詢數據和錯誤檢查的字段組成。
•響應消息由包括設備地址,功能代碼,響應數據和錯誤檢查的字段組成。架構
Modbus協議工做
•Modbus協議一般遵循基於主從架構。主設備向從設備發送請求消息並等待響應消息。該架構爲主站提供了完整的信息流控制。與之前使用RS422 / RS485等的多點網絡相比,這具備很大的優勢less
•如圖所示,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個奇偶校驗位,一個或兩個中止位發送google
Modbus RTU模式
該圖描繪了Modbus幀的RTU模式。如RTU(遠程終端單元)模式所示,消息以連續流格式傳輸。每一個8位字節由1個起始位,8個數據位,0或1個奇偶校驗位,1或2箇中止位構成。消息自己在至少3.5個字符時間的靜默期後開始。編碼
Modbus消息字段
➤讓咱們瞭解在ASCII模式和RTU模式下使用的主要字段。
Modbus地址: Modbus消息以8位目標地址開始。這能夠取0到247之間的任何值。這裏0用做廣播地址,其他用做惟一設備地址。spa
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協議規範。