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

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

有朋友遇到過這種情況嗎?怎么解決的呢?
ayasinna
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 4 個(gè)
工控威望: 93 點(diǎn)
下載積分: 2246 分
在線時(shí)間: 18(小時(shí))
注冊(cè)時(shí)間: 2015-07-23
最后登錄: 2020-11-02
查看ayasinna的 主題 / 回貼
1樓  發(fā)表于: 2015-08-06 21:33
引用
引用第1樓tkggtdkjpl于2015-08-06 21:26發(fā)表的  :
omron 的指令把一個(gè)字的高低字節(jié)拆分,多看看手冊(cè),看一下omron官網(wǎng)視頻或下官網(wǎng)例程看看如何處理接收到的數(shù)據(jù)



那像現(xiàn)在這種情況的話要把高低字節(jié)拆分出來自己組合嗎?
ayasinna
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 4 個(gè)
工控威望: 93 點(diǎn)
下載積分: 2246 分
在線時(shí)間: 18(小時(shí))
注冊(cè)時(shí)間: 2015-07-23
最后登錄: 2020-11-02
查看ayasinna的 主題 / 回貼
2樓  發(fā)表于: 2015-08-15 21:09
引用
引用第5樓wanpeng0374于2015-08-12 15:43發(fā)表的  :
前幾天剛剛研究過,由于歐姆龍CP1系列的modbus數(shù)據(jù)幀和標(biāo)準(zhǔn)modbus的數(shù)據(jù)幀略有差異,所以導(dǎo)致會(huì)出現(xiàn)字節(jié)錯(cuò)位現(xiàn)象。
樓主可以使用MOVD指令將錯(cuò)位的高、低字節(jié)傳送給D區(qū)的其他存儲(chǔ)器,組成1個(gè)新字即可。


謝謝回復(fù),這幾天看了其他的程序,也發(fā)現(xiàn)了MOVD的這種用法。
本帖最近評(píng)分記錄:
  • 下載積分:+1(keepmoving) 感謝分享!