ayasinna
級別: 正式會員
![]() |
有朋友熟悉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ū)呢? 有朋友遇到過這種情況嗎?怎么解決的呢? |
---|---|
|
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網(wǎng)絡(luò)英雄
![]() ![]() |
omron 的指令把一個字的高低字節(jié)拆分,多看看手冊,看一下omron官網(wǎng)視頻或下官網(wǎng)例程看看如何處理接收到的數(shù)據(jù) |
|
---|---|---|
|
ayasinna
級別: 正式會員
![]() |
那像現(xiàn)在這種情況的話要把高低字節(jié)拆分出來自己組合嗎? |
---|---|
|
wanpeng0374
級別: *
![]() |
前幾天剛剛研究過,由于歐姆龍CP1系列的modbus數(shù)據(jù)幀和標準modbus的數(shù)據(jù)幀略有差異,所以導致會出現(xiàn)字節(jié)錯位現(xiàn)象。 樓主可以使用MOVD指令將錯位的高、低字節(jié)傳送給D區(qū)的其他存儲器,組成1個新字即可。 |
---|---|
本帖最近評分記錄: |
ayasinna
級別: 正式會員
![]() |
謝謝回復,這幾天看了其他的程序,也發(fā)現(xiàn)了MOVD的這種用法。 |
---|---|
本帖最近評分記錄: |
haiyouyang
LabVIEW & C++
級別: 網(wǎng)絡(luò)英雄
![]() |
OMRON MODBUS-RTU 通訊數(shù)據(jù)接受的格式就是這樣的,前面的05是返回的字節(jié)數(shù) |
---|---|
|
barrylong
級別: 探索解密
![]() |
不知道 各位有沒有遇到過讀上的頻率值 跳變的情況就是 一會50 一會0 一會50 |
---|---|
|