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 后,導(dǎo)致了后面數(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ù),導(dǎo)致C0開始的數(shù)據(jù)都錯位了。

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

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



那像現(xiàn)在這種情況的話要把高低字節(jié)拆分出來自己組合嗎?
ayasinna
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 4 個
工控威望: 93 點
下載積分: 2246 分
在線時間: 18(小時)
注冊時間: 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ù)幀和標準modbus的數(shù)據(jù)幀略有差異,所以導(dǎo)致會出現(xiàn)字節(jié)錯位現(xiàn)象。
樓主可以使用MOVD指令將錯位的高、低字節(jié)傳送給D區(qū)的其他存儲器,組成1個新字即可。


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