Modbus RTU 協議使用匯總


 

原創地址:https://blog.csdn.net/u012166958/article/details/64920144

 

標准的Modbus 口是使用RS-232C 兼容串行接口,它定義了連接口的針腳、電纜、信號位、傳輸波特率、奇偶校驗。控制器能直接或經由Modem 組網。控制器通信使用主—從技術,即僅設備(主設備)能初始化傳輸(查詢)。其它設備(從設備)根據主設備查詢提供的數據做出相應反應。典型的主設備:主機和可編程儀表。典型的從設備:可編程控制器。主設備可單獨和從設備通信,也能以廣播方式和所有從設備通信。如果單獨通信,從設備返回消息作為回應,如果是以廣播方式查詢的,則不作任何回應。Modbus 協議建立了主設備查詢的格式:設備(或廣播)地址、功能代碼、所有要發送的數據、錯誤檢測域。

從設備回應消息也由Modbus 協議構成,包括確認要行動的域、任何要返回的數據、和錯誤檢測域。如果在消息接收過程中發生錯誤,或從設備不能執行其命令,從設備將建立錯誤消息並把它作為回應發送出去。在其它網絡上,控制器使用對等技術通信,故任何控制都能初始和其它控制器的通信。這樣在單獨的通信過程中,控制器既可作為主設備也可作為從設備。提供的多個內部通道可允許同時發生的傳輸進程。

在消息位,Modbus 協議仍提供了主—從原則,盡管網絡通信方法是“對等”。如果控制器發送消息,它只是作為主設備,並期望從從設備得到回應。同樣,當控制器接收到消息,它將建立一從設備回應格式並返回給發送的控制器。

主設備查詢
查詢消息中的功能代碼告之被選中的從設備要執行何種功能。數據段包含了從設備要執行功能的任何附加信息。例如功能代碼03 是要求從設備讀保持寄存器並返回它們的內容。數據段必須包含要告之從設備的信息:從何寄存器開始讀及要讀的寄存器數量。錯誤檢測域為從設備提供了一種驗證消息內容是否正確的方法。

從設備回應
如果從設備產生正常的回應,在回應消息中的功能代碼是在查詢消息中的功能代碼的回應。數據段包括了從設備收集的數據:像寄存器值或狀態。如果有錯誤發生,功能代碼將被修改以用於指出回應消息是錯誤的,同時數據段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設備確認消息內容是否可用。

每個MODBUS 幀都包括 地址域  功能域  數據域  錯誤檢測域。

MODBUS  RTU 的工作方式

 

 

 

幀定界:在MODBUS RTU 方式下,每兩個字符之間發送或者接收的時間間隔不能超過1.5 倍字符傳輸時間。如果兩個字符時間間隔超過了3.5 倍字符傳輸時間,就認為一幀數據已經接收完成,新的一幀數據傳輸開始。

  

MODBUS RTU 協議

常用的功能碼

0x01 讀取輸出繼電器的狀態

0x02 讀取輸入繼電器的狀態

0x03 讀多個寄存器

0x05 寫單個輸出繼電器的狀態

0x0F 寫多個輸出繼電器的狀態

0x10 寫多個寄存器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM