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