ayasinna
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 4 個
工控威望: 93 點
下載積分: 2246 分
在線時間: 18(小時)
注冊時間: 2015-07-23
最后登錄: 2020-11-02
查看ayasinna的 主題 / 回貼
樓主  發(fā)表于: 2015-08-06 20:40
有朋友熟悉OMRON MODBUS-RTU通訊的嗎?
本人在使用串口網(wǎng)關(guān)的模式時,讀取的數(shù)據(jù)和用串口助手讀取的數(shù)據(jù)有一點偏差,哪位大大能指點嗎?
現(xiàn)在問題:
串口助手接受到的數(shù)據(jù)是01 04 04 C0 46 66 66 (不含CRC校驗碼)
PLC中D32350開始的數(shù)據(jù)是01 04 00 05 04 C0 46 66 66
雖然數(shù)據(jù)上沒有錯,但是OMRON PLC 加了個05 后,導致了后面數(shù)據(jù)都有了偏移,
即:D32350:0001
D32351:0004
D35352:0000
D32353:0005
D35354:04C0
D35355:4666
D32356:6600
需要的是C0 46 66 66這幾個數(shù)據(jù),但被插入05后,04作為了數(shù)據(jù),導致C0開始的數(shù)據(jù)都錯位了。

既然D32354中的04就是字節(jié)數(shù)了,為什么OMRON PLC不是讀取這個數(shù)據(jù)放在D32353中,
而是把04作為數(shù)據(jù)一起讀取后放在D32354開始的數(shù)據(jù)區(qū)呢?

有朋友遇到過這種情況嗎?怎么解決的呢?
wanpeng0374
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看wanpeng0374的 主題 / 回貼
1樓  發(fā)表于: 2015-08-12 15:43
前幾天剛剛研究過,由于歐姆龍CP1系列的modbus數(shù)據(jù)幀和標準modbus的數(shù)據(jù)幀略有差異,所以導致會出現(xiàn)字節(jié)錯位現(xiàn)象。
樓主可以使用MOVD指令將錯位的高、低字節(jié)傳送給D區(qū)的其他存儲器,組成1個新字即可。
本帖最近評分記錄:
  • 下載積分:+1(玩家100) 熱心助人!