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

有朋友遇到过这种情况吗?怎么解决的呢?
tkggtdkjpl
工欲善其事,必先利其器!
级别: 网络英雄

精华主题: 1 篇
发帖数量: 3444 个
工控威望: 20980 点
下载积分: 27701 分
在线时间: 1761(小时)
注册时间: 2010-01-03
最后登录: 2024-11-22
查看tkggtdkjpl的 主题 / 回贴
1楼  发表于: 2015-08-06 21:26
omron 的指令把一个字的高低字节拆分,多看看手册,看一下omron官网视频或下官网例程看看如何处理接收到的数据
自动化单机,生产线,项目编程调试!
ayasinna
级别: 正式会员
精华主题: 0
发帖数量: 4 个
工控威望: 93 点
下载积分: 2246 分
在线时间: 18(小时)
注册时间: 2015-07-23
最后登录: 2020-11-02
查看ayasinna的 主题 / 回贴
2楼  发表于: 2015-08-06 21:33
引用
引用第1楼tkggtdkjpl于2015-08-06 21:26发表的  :
omron 的指令把一个字的高低字节拆分,多看看手册,看一下omron官网视频或下官网例程看看如何处理接收到的数据



那像现在这种情况的话要把高低字节拆分出来自己组合吗?
abcdef张勇
工控
级别: 探索解密
精华主题: 0
发帖数量: 101 个
工控威望: 173 点
下载积分: 6873 分
在线时间: 160(小时)
注册时间: 2015-07-02
最后登录: 2024-11-14
查看abcdef张勇的 主题 / 回贴
3楼  发表于: 2015-08-07 10:57
底字节在前高字节在后
andyjojo1011
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 115 点
下载积分: 476 分
在线时间: 15(小时)
注册时间: 2014-09-30
最后登录: 2023-03-14
查看andyjojo1011的 主题 / 回贴
4楼  发表于: 2015-08-09 23:40
你要跟什麼設備通?
這樣才有辦法幫你
wanpeng0374
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看wanpeng0374的 主题 / 回贴
5楼  发表于: 2015-08-12 15:43
前几天刚刚研究过,由于欧姆龙CP1系列的modbus数据帧和标准modbus的数据帧略有差异,所以导致会出现字节错位现象。
楼主可以使用MOVD指令将错位的高、低字节传送给D区的其他存储器,组成1个新字即可。
本帖最近评分记录:
  • 下载积分:+1(玩家100) 热心助人!
    pujiangang
    级别: 略有小成
    精华主题: 0
    发帖数量: 394 个
    工控威望: 378 点
    下载积分: 2173 分
    在线时间: 302(小时)
    注册时间: 2007-08-06
    最后登录: 2024-09-19
    查看pujiangang的 主题 / 回贴
    6楼  发表于: 2015-08-14 19:37
    5楼正解
    ayasinna
    级别: 正式会员
    精华主题: 0
    发帖数量: 4 个
    工控威望: 93 点
    下载积分: 2246 分
    在线时间: 18(小时)
    注册时间: 2015-07-23
    最后登录: 2020-11-02
    查看ayasinna的 主题 / 回贴
    7楼  发表于: 2015-08-15 21:09
    引用
    引用第5楼wanpeng0374于2015-08-12 15:43发表的  :
    前几天刚刚研究过,由于欧姆龙CP1系列的modbus数据帧和标准modbus的数据帧略有差异,所以导致会出现字节错位现象。
    楼主可以使用MOVD指令将错位的高、低字节传送给D区的其他存储器,组成1个新字即可。


    谢谢回复,这几天看了其他的程序,也发现了MOVD的这种用法。
    本帖最近评分记录:
  • 下载积分:+1(keepmoving) 感谢分享!
    sxjtwsy
    级别: 略有小成
    精华主题: 0
    发帖数量: 113 个
    工控威望: 228 点
    下载积分: 50486 分
    在线时间: 89(小时)
    注册时间: 2012-08-19
    最后登录: 2020-02-11
    查看sxjtwsy的 主题 / 回贴
    8楼  发表于: 2015-08-16 11:12
    怎么用发一下学习学习,谢谢
    haiyouyang
    LabVIEW & C++
    级别: 网络英雄
    精华主题: 0
    发帖数量: 180 个
    工控威望: 8153 点
    下载积分: 42753 分
    在线时间: 888(小时)
    注册时间: 2011-03-29
    最后登录: 2024-11-22
    查看haiyouyang的 主题 / 回贴
    9楼  发表于: 2015-10-13 14:06
    OMRON MODBUS-RTU 通讯数据接受的格式就是这样的,前面的05是返回的字节数
    barrylong
    级别: 探索解密
    精华主题: 0
    发帖数量: 3 个
    工控威望: 119 点
    下载积分: 475 分
    在线时间: 7(小时)
    注册时间: 2013-12-16
    最后登录: 2020-07-14
    查看barrylong的 主题 / 回贴
    10楼  发表于: 2016-06-06 15:52
    不知道 各位有没有遇到过读上的频率值 跳变的情况就是 一会50 一会0 一会50    
    kuei2013
    级别: 探索解密
    精华主题: 0
    发帖数量: 25 个
    工控威望: 152 点
    下载积分: 32668 分
    在线时间: 135(小时)
    注册时间: 2013-08-01
    最后登录: 2024-11-22
    查看kuei2013的 主题 / 回贴
    11楼  发表于: 2016-06-08 12:14
    請注意,omron不是所有的modbus fun code都可以用.
    04是不支持的!
    最常用的是03 ,06,10