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