一、modbusTCP協(xié)議介紹
Modbus由MODICON公司于1979年開(kāi)發(fā),是一種工業(yè)現(xiàn)場(chǎng)總線協(xié)議標(biāo)準(zhǔn)。1996年施耐德公司推出基于以太網(wǎng)TCP/IP的Modbus協(xié)議: ModbusTCP 。
Modbus協(xié)議是一項(xiàng)應(yīng)用層報(bào)文傳輸協(xié)議,包括ASCII、RTU、TCP三種報(bào)文類(lèi)型。
標(biāo)準(zhǔn)的Modbus協(xié)議物理層接口有RS232、RS422、RS485和以太網(wǎng)接口,采用master/slave方式通信。
ModbusTCP數(shù)據(jù)幀
ModbusTCP的數(shù)據(jù)幀可分為兩部分: MBAP + PDU 。
報(bào)文頭MBAP
MBAP為報(bào)文頭,長(zhǎng)度為7字節(jié),組成如下:
事務(wù)處理標(biāo)識(shí) | 協(xié)議標(biāo)識(shí) | 長(zhǎng)度 | 單元標(biāo)識(shí)符 |
---|---|---|---|
2字節(jié) | 2字節(jié) | 2字節(jié) | 1字節(jié) |
內(nèi)容 | 解釋 |
---|---|
事務(wù)處理標(biāo)識(shí) | 可以理解為報(bào)文的序列號(hào),一般每次通信之后就要加1以區(qū)別不同的通信數(shù)據(jù)報(bào)文。 |
協(xié)議標(biāo)識(shí)符 | 00 00表示ModbusTCP協(xié)議。 |
長(zhǎng)度 | 表示接下來(lái)的數(shù)據(jù)長(zhǎng)度,單位為字節(jié)。 |
單元標(biāo)識(shí)符 | 可以理解為設(shè)備地址。 |
幀結(jié)構(gòu)PDU
PDU由功能碼+數(shù)據(jù)組成。功能碼為1字節(jié),數(shù)據(jù)長(zhǎng)度不定,由具體功能決定。
功能碼
Modbus的操作對(duì)象有四種:線圈、離散輸入、保持寄存器、輸入寄存器。
對(duì)象 | 含義 |
---|---|
線圈 | PLC的輸出位,開(kāi)關(guān)量,在Modbus中可讀可寫(xiě) |
離散量 | PLC的輸入位,開(kāi)關(guān)量,在Modbus中只讀 |
輸入寄存器 | PLC中只能從模擬量輸入端改變的寄存器,在Modbus中只讀 |
保持寄存器 | PLC中用于輸出模擬量信號(hào)的寄存器,在Modbus中可讀可寫(xiě) |
根據(jù)對(duì)象的不同,Modbus的功能碼有:
功能碼 | 含義 |
---|---|
0x01 | 讀線圈 |
0x05 | 寫(xiě)單個(gè)線圈 |
0x0F | 寫(xiě)多個(gè)線圈 |
0x02 | 讀離散量輸入 |
0x04 | 讀輸入寄存器 |
0x03 | 讀保持寄存器 |
0x06 | 寫(xiě)單個(gè)保持寄存器 |
0x10 | 寫(xiě)多個(gè)保持寄存器 |
二、modbusTCP實(shí)測(cè)
ModbusTCP服務(wù)器(從站)
即使用SMART作為協(xié)議從站,可供上位機(jī)讀取,以下為實(shí)際測(cè)試程序:
需要注意的是,STEP 7-MicroWIN Smart2.4版本以下需要購(gòu)買(mǎi)庫(kù)文件才可以,2.4版本以上程序已經(jīng)集成了這個(gè)功能,因?yàn)槿粘9ぷ髁?xí)慣,我一直沒(méi)有更新新的編程軟件,所以大家如果需要庫(kù)文件作為學(xué)習(xí)使用,也可以私信我。
定義好以上的參數(shù),就可以實(shí)現(xiàn)通訊了,本人使用的是modbusPoll調(diào)試軟件作為上位機(jī)與SMART完成了modbusTCP通訊。需要此調(diào)試軟件的同學(xué)也可以私信我。
以上參數(shù)中在測(cè)試時(shí)發(fā)現(xiàn),IP地址可針對(duì)上位機(jī)地址設(shè)置,也可以全部設(shè)置為0,即代表只要端口號(hào)正缺,不判斷上位機(jī)IP地址。
ModbusTCP客戶端(主站)
SMART的主站通訊與modbusRTU十分相似,同樣采取輪詢的方式實(shí)現(xiàn),以下為實(shí)測(cè)程序:
西門(mén)子SMART作為主站,同樣使用modbusSlave調(diào)試軟件作為協(xié)議從站。
-
MODBUS
+關(guān)注
關(guān)注
28文章
1747瀏覽量
76678 -
TCP
+關(guān)注
關(guān)注
8文章
1337瀏覽量
78866 -
ASCII
+關(guān)注
關(guān)注
5文章
171瀏覽量
34997 -
傳輸協(xié)議
+關(guān)注
關(guān)注
0文章
71瀏覽量
11410 -
RTU
+關(guān)注
關(guān)注
0文章
398瀏覽量
28587
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論