Modbus協議包括ASCII、RTU、TCP等,並沒有規定物理層。此協議定義(yi) 了控製器能夠認識和使用的消息結構,而不管它們(men) 是經過何種網絡進行通信的。標準的Modicon控製器使用RS232C實現串行的Modbus。Modbus的ASCII、RTU協議規定了消息、數據的結構、命令和就答的方式,數據通訊采用Maser/Slave方式,Master端發出數據請求消息,Slave端接收到正確消息後就可以發送數據到Master端以響應請求;Master端也可以直接發消息修改Slave端的數據,實現雙向讀寫(xie) 。
Modbus特點
Modbus具有以下幾個(ge) 特點:
(1)標準、開放,用戶可以免費、放心地使用Modbus協議,不需要交納許可證費,也不會(hui) 侵犯知識產(chan) 權。目前,支持Modbus的廠家超過400家,支持Modbus的產(chan) 品超過600種。
(2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質上傳(chuan) 送,如雙絞線、光纖、無線等。
(3)Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發簡單。
modbus rtu功能碼
1 功能碼“02”:讀1路或多路開關量狀態輸入
例如:主機要讀取地址為(wei) 01,開關(guan) 量DI1—DI4的輸入狀態。
從(cong) 機(PDM)數據寄存器的地址和數據為(wei) :
主機發送的報文格式:
從(cong) 機(PDM)響應返回的報文格式:
2 功能碼“01”:讀1路或多路開關量輸出狀態
例如:主機要讀取地址為(wei) 01,開關(guan) 量DO1,DO2的輸出狀態。
從(cong) 機(PDM)數據寄存器的地址和數據為(wei) :
主機發送的報文格式:
從(cong) 機(PDM)響應返回的報文格式:
3 功能碼“03”:讀多路寄存器輸入
例如:主機要讀取地址為(wei) 01,起始地址為(wei) 0116的3個(ge) 從(cong) 機寄存器數據。
從(cong) 機(PDM)數據寄存器的地址和數據為(wei) :
主機發送的報文格式:
從(cong) 機(PDM)響應返回的報文格式:
4 功能碼“05”:寫1路開關量輸出(“遙控”)
例1:開關(guan) 量輸出點DO1,其當前狀態為(wei) “分”,主機要控製該路繼電器“合”。
控製命令為(wei) :
“FF00”為(wei) 控製繼電器“合”;
“0000”為(wei) 控製繼電器“分”;
主機發送的報文格式:
從(cong) 機(PDM)響應返回的報文格式:
與(yu) 主機發送的報文格式及數據內(nei) 容完全相同。
例2:開關(guan) 量輸出點DO2,其當前狀態為(wei) “合”,主機要控製該路繼電器“分”。
主機發送的報文格式:
從(cong) 機(PDM)響應返回的報文格式:
與(yu) 主機發送的報文格式及數據內(nei) 容完全相同。
5 功能碼“06”:寫(xie) 單路寄存器
例如:主機要把數據07D0,保存到地址為(wei) 002C的從(cong) 機寄存器中去(從(cong) 機地址碼為(wei) 01)。通訊數據保存結束後,地址為(wei) 002C的PDM表原存儲(chu) 信息為(wei) :
主機發送的報文格式:
從(cong) 機(PDM)響應返回的報文格式:
與(yu) 主機發送的報文格式及數據內(nei) 容完全相同。
6功能碼“10”:寫多路寄存器
主機利用這個(ge) 功能碼把多個(ge) 數據保存到PDM表的數據存儲(chu) 器中去。Modbus通訊規約中的寄存器指的是16位(即2字節),並且高位在前。這樣PDM的存儲(chu) 器都是二個(ge) 字節。由於(yu) Modbus通訊規約允許每次最多保存60個(ge) 寄存器,因此PDM一次也最多允許保存60個(ge) 數據寄存器。
例如:主機要把0064,0010保存到地址為(wei) 002C,002D的從(cong) 機寄存器中去(從(cong) 機地址碼為(wei) 01)。通訊數據保存結束後,地址為(wei) 002C/002D的PDM表內(nei) 存儲(chu) 信息為(wei) :
主機發送的報文格式:
從(cong) 機(PDM)響應返回的報文格式: