1. 程式人生 > >Modbus RTU 協議使用匯總

Modbus RTU 協議使用匯總

標準的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 寫多個暫存器