200的modbus RTU數(shù)據(jù)傳輸格式問題
劉玉蓉
發(fā)布于2014-12-09 17:22
2
0
標(biāo)簽:
【情況說明】
開發(fā)一個(gè)單片機(jī)設(shè)備與PLC226CN通過Modbus RTU協(xié)議傳輸信息。做好了板子,并看了Modbus RTU協(xié)議之后,準(zhǔn)備開始測(cè)試通訊程序。
由于次接觸Modbus RTU通訊,所以先用“串口調(diào)試軟件”監(jiān)測(cè)一下226PLC在進(jìn)行Modbus RTU通訊時(shí)到底是發(fā)送的什么數(shù)據(jù)格式。
于是找來兩個(gè)226CN,一個(gè)作為主站,一個(gè)作為從站,主從都是用0口通訊,主從波特率均為9600,主從均為無校驗(yàn)位,從站站號(hào)為9,從站40001對(duì)應(yīng)的起始地址是&VB1000(我想這應(yīng)該和通訊
數(shù)據(jù)沒有關(guān)系)。經(jīng)過測(cè)試,主PLC可以正常讀和寫從PLC的信息。
好,下面開始用串口調(diào)試軟件,監(jiān)視兩個(gè)PLC在通訊時(shí)到底發(fā)送的什么數(shù)據(jù)。監(jiān)視結(jié)果如下:
(1)主站PLC讀取從PLC,40001開始,連續(xù)1個(gè)字,從站地址為9,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
7B 7E FF FF FD F5 2F
(2)主站PLC讀取從PLC,40001開始,連續(xù)2個(gè)字,從站地址為9,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
7B 7E FF FF FB 75 5E
(3)主站PLC讀取從PLC,40001開始,連續(xù)12個(gè)字,從站地址為9,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
7B 7E FF FF E7 77 F1
(4)主站PLC讀取從PLC,40002開始,連續(xù)1個(gè)字,從站地址為9,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
7B 7E FD FF FD 57 EF
(5)主站PLC讀取從PLC,40001開始,連續(xù)1個(gè)字,從站地址為8,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
2F FF FF FF FD F7 36
(6)主站PLC讀取從PLC,40002開始,連續(xù)1個(gè)字,從站地址為8,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
2F FF FD FF FD 55 56
(7)主站PLC讀取從PLC,40001開始,連續(xù)1個(gè)字,從站地址為7,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
7C 7E FF FF FD F7 12
(8)主站PLC讀取從PLC,40002開始,連續(xù)1個(gè)字,從站地址為7,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
7C 7E FD FF FD 55 0A
(9)主站PLC讀取從PLC,49999開始,連續(xù)1個(gè)字,從站地址為7,波特率9600,無校驗(yàn)位。監(jiān)測(cè)到主站發(fā)送的信號(hào)為:
7C 7E FF FF FD F7 12
【問題】
(1)這是根據(jù)Modbus RTU協(xié)議生產(chǎn)的通訊數(shù)據(jù)嗎,起碼個(gè)字節(jié)一個(gè)是站號(hào)?。『竺娴钠渌鼣?shù)據(jù)也不符合Modbus RTU協(xié)議的格式要求啊。
(2)后兩個(gè)字節(jié),是Modbus RTU所要求的16為CRC校驗(yàn)嗎?顯然不是啊,這后的校驗(yàn)形式又是什么?。?/P>
(3)西門子到底是使用什么樣的數(shù)據(jù)格式在進(jìn)行所謂的Modbus RTU通訊???這么搞的話,其它廠商怎么和他做配套啊?
佳答案
估計(jì)是你RS485的+、-反了,所以接收的報(bào)文不對(duì)。