ayasinna
级别: 正式会员
精华主题: 0
发帖数量: 4 个
工控威望: 93 点
下载积分: 2246 分
在线时间: 18(小时)
注册时间: 2015-07-23
最后登录: 2020-11-02
查看ayasinna的 主题 / 回贴
楼主  发表于: 2015-08-06 20:40
有朋友熟悉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开始的数据区呢?

有朋友遇到过这种情况吗?怎么解决的呢?
wanpeng0374
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看wanpeng0374的 主题 / 回贴
1楼  发表于: 2015-08-12 15:43
前几天刚刚研究过,由于欧姆龙CP1系列的modbus数据帧和标准modbus的数据帧略有差异,所以导致会出现字节错位现象。
楼主可以使用MOVD指令将错位的高、低字节传送给D区的其他存储器,组成1个新字即可。
本帖最近评分记录:
  • 下载积分:+1(玩家100) 热心助人!