Modbus協(xié)議包括ASCII、RTU、TCP等,并沒有規(guī)定物理層。此協(xié)議定義了控制器能夠認識和使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的。標準的Modicon控制器使用RS232C實現(xiàn)串行的Modbus。Modbus的ASCII、RTU協(xié)議規(guī)定了消息、數(shù)據(jù)的結(jié)構(gòu)、命令和就答的方式,數(shù)據(jù)通訊采用Maser/Slave方式,Master端發(fā)出數(shù)據(jù)請求消息,Slave端接收到正確消息后就可以發(fā)送數(shù)據(jù)到Master端以響應(yīng)請求;Master端也可以直接發(fā)消息修改Slave端的數(shù)據(jù),實現(xiàn)雙向讀寫。
Modbus特點
Modbus具有以下幾個特點:
(1)標準、開放,用戶可以免費、放心地使用Modbus協(xié)議,不需要交納許可證費,也不會侵犯知識產(chǎn)權(quán)。目前,支持Modbus的廠家超過400家,支持Modbus的產(chǎn)品超過600種。
(2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質(zhì)上傳送,如雙絞線、光纖、無線等。
(3)Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發(fā)簡單。
modbus rtu功能碼
1 功能碼“02”:讀1路或多路開關(guān)量狀態(tài)輸入
例如:主機要讀取地址為01,開關(guān)量DI1—DI4的輸入狀態(tài)。
從機(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:

主機發(fā)送的報文格式:

從機(PDM)響應(yīng)返回的報文格式:

2 功能碼“01”:讀1路或多路開關(guān)量輸出狀態(tài)
例如:主機要讀取地址為01,開關(guān)量DO1,DO2的輸出狀態(tài)。
從機(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:

主機發(fā)送的報文格式:

從機(PDM)響應(yīng)返回的報文格式:

3 功能碼“03”:讀多路寄存器輸入
例如:主機要讀取地址為01,起始地址為0116的3個從機寄存器數(shù)據(jù)。
從機(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:

主機發(fā)送的報文格式:

從機(PDM)響應(yīng)返回的報文格式:

4 功能碼“05”:寫1路開關(guān)量輸出(“遙控”)
例1:開關(guān)量輸出點DO1,其當(dāng)前狀態(tài)為“分”,主機要控制該路繼電器“合”。
控制命令為:
“FF00”為控制繼電器“合”;
“0000”為控制繼電器“分”;
主機發(fā)送的報文格式:

從機(PDM)響應(yīng)返回的報文格式:
與主機發(fā)送的報文格式及數(shù)據(jù)內(nèi)容完全相同。
例2:開關(guān)量輸出點DO2,其當(dāng)前狀態(tài)為“合”,主機要控制該路繼電器“分”。
主機發(fā)送的報文格式:

從機(PDM)響應(yīng)返回的報文格式:
與主機發(fā)送的報文格式及數(shù)據(jù)內(nèi)容完全相同。
5 功能碼“06”:寫單路寄存器
例如:主機要把數(shù)據(jù)07D0,保存到地址為002C的從機寄存器中去(從機地址碼為01)。通訊數(shù)據(jù)保存結(jié)束后,地址為002C的PDM表原存儲信息為:

主機發(fā)送的報文格式:

從機(PDM)響應(yīng)返回的報文格式:
與主機發(fā)送的報文格式及數(shù)據(jù)內(nèi)容完全相同。
6功能碼“10”:寫多路寄存器
主機利用這個功能碼把多個數(shù)據(jù)保存到PDM表的數(shù)據(jù)存儲器中去。Modbus通訊規(guī)約中的寄存器指的是16位(即2字節(jié)),并且高位在前。這樣PDM的存儲器都是二個字節(jié)。由于Modbus通訊規(guī)約允許每次最多保存60個寄存器,因此PDM一次也最多允許保存60個數(shù)據(jù)寄存器。
例如:主機要把0064,0010保存到地址為002C,002D的從機寄存器中去(從機地址碼為01)。通訊數(shù)據(jù)保存結(jié)束后,地址為002C/002D的PDM表內(nèi)存儲信息為:

主機發(fā)送的報文格式:

從機(PDM)響應(yīng)返回的報文格式:
