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