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开始的数据区呢?

有朋友遇到过这种情况吗?怎么解决的呢?
ayasinna
级别: 正式会员
精华主题: 0
发帖数量: 4 个
工控威望: 93 点
下载积分: 2246 分
在线时间: 18(小时)
注册时间: 2015-07-23
最后登录: 2020-11-02
查看ayasinna的 主题 / 回贴
1楼  发表于: 2015-08-06 21:33
引用
引用第1楼tkggtdkjpl于2015-08-06 21:26发表的  :
omron 的指令把一个字的高低字节拆分,多看看手册,看一下omron官网视频或下官网例程看看如何处理接收到的数据



那像现在这种情况的话要把高低字节拆分出来自己组合吗?
ayasinna
级别: 正式会员
精华主题: 0
发帖数量: 4 个
工控威望: 93 点
下载积分: 2246 分
在线时间: 18(小时)
注册时间: 2015-07-23
最后登录: 2020-11-02
查看ayasinna的 主题 / 回贴
2楼  发表于: 2015-08-15 21:09
引用
引用第5楼wanpeng0374于2015-08-12 15:43发表的  :
前几天刚刚研究过,由于欧姆龙CP1系列的modbus数据帧和标准modbus的数据帧略有差异,所以导致会出现字节错位现象。
楼主可以使用MOVD指令将错位的高、低字节传送给D区的其他存储器,组成1个新字即可。


谢谢回复,这几天看了其他的程序,也发现了MOVD的这种用法。
本帖最近评分记录:
  • 下载积分:+1(keepmoving) 感谢分享!