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)關的模式時,讀取的數(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)絡英雄

精華主題: 1 篇
發(fā)帖數(shù)量: 3442 個
工控威望: 20978 點
下載積分: 27217 分
在線時間: 1757(小時)
注冊時間: 2010-01-03
最后登錄: 2024-11-10
查看tkggtdkjpl的 主題 / 回貼
1樓  發(fā)表于: 2015-08-06 21:26
omron 的指令把一個字的高低字節(jié)拆分,多看看手冊,看一下omron官網(wǎng)視頻或下官網(wǎng)例程看看如何處理接收到的數(shù)據(jù)
自動化單機,生產(chǎn)線,項目編程調試!
ayasinna
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 4 個
工控威望: 93 點
下載積分: 2246 分
在線時間: 18(小時)
注冊時間: 2015-07-23
最后登錄: 2020-11-02
查看ayasinna的 主題 / 回貼
2樓  發(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é)拆分出來自己組合嗎?
abcdef張勇
工控
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 101 個
工控威望: 173 點
下載積分: 6873 分
在線時間: 160(小時)
注冊時間: 2015-07-02
最后登錄: 2024-11-05
查看abcdef張勇的 主題 / 回貼
3樓  發(fā)表于: 2015-08-07 10:57
底字節(jié)在前高字節(jié)在后
andyjojo1011
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 24 個
工控威望: 115 點
下載積分: 476 分
在線時間: 15(小時)
注冊時間: 2014-09-30
最后登錄: 2023-03-14
查看andyjojo1011的 主題 / 回貼
4樓  發(fā)表于: 2015-08-09 23:40
你要跟什麼設備通?
這樣才有辦法幫你
wanpeng0374
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看wanpeng0374的 主題 / 回貼
5樓  發(fā)表于: 2015-08-12 15:43
前幾天剛剛研究過,由于歐姆龍CP1系列的modbus數(shù)據(jù)幀和標準modbus的數(shù)據(jù)幀略有差異,所以導致會出現(xiàn)字節(jié)錯位現(xiàn)象。
樓主可以使用MOVD指令將錯位的高、低字節(jié)傳送給D區(qū)的其他存儲器,組成1個新字即可。
本帖最近評分記錄:
  • 下載積分:+1(玩家100) 熱心助人!
    pujiangang
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 394 個
    工控威望: 378 點
    下載積分: 2173 分
    在線時間: 302(小時)
    注冊時間: 2007-08-06
    最后登錄: 2024-09-19
    查看pujiangang的 主題 / 回貼
    6樓  發(fā)表于: 2015-08-14 19:37
    5樓正解
    ayasinna
    級別: 正式會員
    精華主題: 0
    發(fā)帖數(shù)量: 4 個
    工控威望: 93 點
    下載積分: 2246 分
    在線時間: 18(小時)
    注冊時間: 2015-07-23
    最后登錄: 2020-11-02
    查看ayasinna的 主題 / 回貼
    7樓  發(fā)表于: 2015-08-15 21:09
    引用
    引用第5樓wanpeng0374于2015-08-12 15:43發(fā)表的  :
    前幾天剛剛研究過,由于歐姆龍CP1系列的modbus數(shù)據(jù)幀和標準modbus的數(shù)據(jù)幀略有差異,所以導致會出現(xiàn)字節(jié)錯位現(xiàn)象。
    樓主可以使用MOVD指令將錯位的高、低字節(jié)傳送給D區(qū)的其他存儲器,組成1個新字即可。


    謝謝回復,這幾天看了其他的程序,也發(fā)現(xiàn)了MOVD的這種用法。
    本帖最近評分記錄:
  • 下載積分:+1(keepmoving) 感謝分享!
    sxjtwsy
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 113 個
    工控威望: 228 點
    下載積分: 50486 分
    在線時間: 89(小時)
    注冊時間: 2012-08-19
    最后登錄: 2020-02-11
    查看sxjtwsy的 主題 / 回貼
    8樓  發(fā)表于: 2015-08-16 11:12
    怎么用發(fā)一下學習學習,謝謝
    haiyouyang
    LabVIEW & C++
    級別: 網(wǎng)絡英雄
    精華主題: 0
    發(fā)帖數(shù)量: 180 個
    工控威望: 8153 點
    下載積分: 42713 分
    在線時間: 888(小時)
    注冊時間: 2011-03-29
    最后登錄: 2024-11-09
    查看haiyouyang的 主題 / 回貼
    9樓  發(fā)表于: 2015-10-13 14:06
    OMRON MODBUS-RTU 通訊數(shù)據(jù)接受的格式就是這樣的,前面的05是返回的字節(jié)數(shù)
    barrylong
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 3 個
    工控威望: 119 點
    下載積分: 475 分
    在線時間: 7(小時)
    注冊時間: 2013-12-16
    最后登錄: 2020-07-14
    查看barrylong的 主題 / 回貼
    10樓  發(fā)表于: 2016-06-06 15:52
    不知道 各位有沒有遇到過讀上的頻率值 跳變的情況就是 一會50 一會0 一會50    
    kuei2013
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 25 個
    工控威望: 152 點
    下載積分: 32628 分
    在線時間: 135(小時)
    注冊時間: 2013-08-01
    最后登錄: 2024-11-09
    查看kuei2013的 主題 / 回貼
    11樓  發(fā)表于: 2016-06-08 12:14
    請注意,omron不是所有的modbus fun code都可以用.
    04是不支持的!
    最常用的是03 ,06,10