MODBUS/TCP協(xié)議是作為一種(實際的)自動化標準發(fā)行的。Modbus協(xié)議是一種已廣泛應用于當今工業(yè)控制領域的通用通訊協(xié)議。通過此協(xié)議,控制器相互之間、或控制器經由網(wǎng)絡(如以太網(wǎng))可以和其它設備之間進行通信。Modbus協(xié)議使用的是主從通訊技術,即由主設備主動查詢和操作從設備。一般將主控設備方所使用的協(xié)議稱為Modbus Master,從設備方使用的協(xié)議稱為Modbus Slave。典型的主設備包括工控機和工業(yè)控制器等;典型的從設備如PLC可編程控制器等。Modbus通訊物理接口可以選用串口(包括RS232和RS485),也可以選擇以太網(wǎng)口。其通信遵循以下的過程:
● 主設備向從設備發(fā)送請求
● 從設備分析并處理主設備的請求,然后向主設備發(fā)送結果
● 如果出現(xiàn)任何差錯,從設備將返回一個異常功能碼
Modbus協(xié)議具有以下幾個特點:
(1)標準、開放,用戶可以免費、放心地使用Modbus協(xié)議,不需要交納許可證費,也不會侵犯知識產權。目前,支持Modbus的廠家超過400家,支持Modbus的產品超過600種。
(2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質上傳送,如雙絞線、光纖、無線等。
(3)Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發(fā)簡單。
MODBUS支持的部分功能代碼:
以十進制表示。功能碼可以分為位操作和字操作兩類。位操作的最小單位為BIT,字操作的最小單位為兩個字節(jié)。
【位操作指令】 讀線圈狀態(tài)01H,讀(離散)輸入狀態(tài)02H,寫單個線圈06H和寫多個線圈0FH。
【字操作指令】 讀保持寄存器03H,寫單個寄存器06H,寫多個保持寄存器10H。
MODBUS報文模型
這里要明白兩個縮略詞:“ADU”“PDU”
ADU: 應用數(shù)據(jù)單元
PDU: 協(xié)議數(shù)據(jù)單元
Modbus協(xié)議兩種傳輸方式
常用的MODBUS通訊規(guī)約有兩種,一種是MODBUS ASCII,一種是MODBUS RTU。每個設備必須都有相同的傳輸模式。所有設備都支持RTU模式,ASCII傳輸模式是選項。
(1)ASCII傳輸方式
Modbus串行鏈路的設備被配置為使用ASCII模式通信時,報文中的每8位字節(jié)以兩個ASCII字符發(fā)送。例:字節(jié)0X5B會被編碼為兩個字符:0x35和0x42進行傳送(ASCII編碼0x35="5",0x42="B"),這樣傳輸效率會降低。
在ASCII模式,報文用特殊的字符區(qū)分幀起始和幀結束。一個報文必須以一個‘冒號’(:)(ASCII十六進制3A)起始,以‘回車-換行’(CRLF)對(ASCII十六進制0D和0A)結束。設備連續(xù)的監(jiān)視總線上的‘冒號’字符。當收到這個字符后,每個設備解碼后續(xù)的字符一直到幀結束。報文中字符間的時間間隔可以達一秒。如果有更大的間隔,則接受設備認為發(fā)生了錯誤。
(2)RTU傳輸方式
當設備使用RTU(RemoteTerminalUnit)模式在Modbus串行鏈路通信,報文中每個8位字節(jié)含有兩個4位十六進制字符。這種模式的主要優(yōu)點是較高的數(shù)據(jù)密度,在相同的波特率下比ASCII模式有更高的傳輸效率。每個報文必須以連續(xù)的字符流傳送。
四信公眾號
四信方案庫
服務電話