ayasinna
級別: 正式會員
|
有朋友熟悉OMRON MODBUS-RTU通訊的嗎? 本人在使用串口網關的模式時,讀取的數據和用串口助手讀取的數據有一點偏差,哪位大大能指點嗎? 現在問題: 串口助手接受到的數據是01 04 04 C0 46 66 66 (不含CRC校驗碼) PLC中D32350開始的數據是01 04 00 05 04 C0 46 66 66 雖然數據上沒有錯,但是OMRON PLC 加了個05 后,導致了后面數據都有了偏移, 即:D32350:0001 D32351:0004 D35352:0000 D32353:0005 D35354:04C0 D35355:4666 D32356:6600 需要的是C0 46 66 66這幾個數據,但被插入05后,04作為了數據,導致C0開始的數據都錯位了。 既然D32354中的04就是字節數了,為什么OMRON PLC不是讀取這個數據放在D32353中, 而是把04作為數據一起讀取后放在D32354開始的數據區呢? 有朋友遇到過這種情況嗎?怎么解決的呢? |
---|---|
|
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網絡英雄
|
omron 的指令把一個字的高低字節拆分,多看看手冊,看一下omron官網視頻或下官網例程看看如何處理接收到的數據 |
|
---|---|---|
|
ayasinna
級別: 正式會員
|
那像現在這種情況的話要把高低字節拆分出來自己組合嗎? |
---|---|
|
wanpeng0374
級別: *
|
前幾天剛剛研究過,由于歐姆龍CP1系列的modbus數據幀和標準modbus的數據幀略有差異,所以導致會出現字節錯位現象。 樓主可以使用MOVD指令將錯位的高、低字節傳送給D區的其他存儲器,組成1個新字即可。 |
---|---|
本帖最近評分記錄: |
ayasinna
級別: 正式會員
|
謝謝回復,這幾天看了其他的程序,也發現了MOVD的這種用法。 |
---|---|
本帖最近評分記錄: |
haiyouyang
LabVIEW & C++
級別: 網絡英雄
|
OMRON MODBUS-RTU 通訊數據接受的格式就是這樣的,前面的05是返回的字節數 |
---|---|
|