1. 程式人生 > 其它 >Modbus RTU六種功能碼詳細解析

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