lightroad
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 192 点
下载积分: 622 分
在线时间: 104(小时)
注册时间: 2008-11-19
最后登录: 2024-12-16
查看lightroad的 主题 / 回贴
楼主  发表于: 2022-06-18 09:56
使用RS指令与第三方支持MODBUS的数字量模块通讯,读取对方数字量输入点。使用串口软件监控收发数据正常,但监控FX2N和对方通讯,数据不堪入目,不但返回的输入点跳动,命令的第一、二字(即从站地址和功能码)也在不同的数据间跳动。
程序为不停地读取从站,M8122或M8123复位后延时10MS~100MS来触发M8122。从站通讯口为A,B两个端子。想不明白,难道同一时刻,发送和接收均在执行,但是程序已作了 M8122和M8123的延时。
求大家指点!
lightroad
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 192 点
下载积分: 622 分
在线时间: 104(小时)
注册时间: 2008-11-19
最后登录: 2024-12-16
查看lightroad的 主题 / 回贴
1楼  发表于: 2022-06-18 10:24
可以通讯上,可以读出从站开关量输入。只是返回数据在不同数据间跳动。
通讯距离2米。
lightroad
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 192 点
下载积分: 622 分
在线时间: 104(小时)
注册时间: 2008-11-19
最后登录: 2024-12-16
查看lightroad的 主题 / 回贴
2楼  发表于: 2022-06-18 12:42
图片:
图片:
M8122不是一直为1。否则数据不会更新,我的是通讯正常,功能也能实现,数据可以更新,就是接收数据跳动。
lightroad
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 192 点
下载积分: 622 分
在线时间: 104(小时)
注册时间: 2008-11-19
最后登录: 2024-12-16
查看lightroad的 主题 / 回贴
3楼  发表于: 2022-06-18 14:11
赞同。试一下
lightroad
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 192 点
下载积分: 622 分
在线时间: 104(小时)
注册时间: 2008-11-19
最后登录: 2024-12-16
查看lightroad的 主题 / 回贴
4楼  发表于: 2022-06-18 17:36
图片:
图片:
图片:
  
写了一段简短的程序,依旧如此,能够返回实际的开关量,但是数据跳动。
发送指令:0B 02 00 10 00 08 78 A3。 0B地址,02读开关量输入,0010开关量输入第一个地址,0008读8个开关量。
正确的返回指令:0B 02 01 ** AA BB。**代表返回的实际输入,AA,BB代表校验码。
还有一个问题,返回数据依次向高字节移动一个字。如图三,返回数据地址理论应为D7060,实际返回在D7061中,其他依次。
lightroad
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 192 点
下载积分: 622 分
在线时间: 104(小时)
注册时间: 2008-11-19
最后登录: 2024-12-16
查看lightroad的 主题 / 回贴
5楼  发表于: 2022-06-21 11:54
引用
引用第9楼anlyl2014于2022-06-19 07:57发表的  :
这是旧话重提的了,RS指令的K8是发送8个数,后面K6是指接收个数6个,问题出在接收个数不足,FX2N前的所有型号都有返回码,也就是说,发送K8,接收为K8+接收的个数;FX3U后的型号就没有此问题,解决方法是:接收的K?要足够大,例如RS D7000 K8 D7010 K30
可参考我发的例子

感谢大神,虽然尝试没有效果。改S7-200 MODBUS通讯了。还是喜欢日本风格,简洁方便。
lightroad
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 192 点
下载积分: 622 分
在线时间: 104(小时)
注册时间: 2008-11-19
最后登录: 2024-12-16
查看lightroad的 主题 / 回贴
6楼  发表于: 2022-06-22 09:58
引用
引用第12楼学无止静于2022-06-21 15:59发表的  :
楼主介绍的状态可考虑下是否是干扰?通讯的对象是社么设备,如果是变频器尤其要注意。
曾经遇到过楼主描述的类似现象。这种通讯乱码状态的出现总是与动力回路的大负载启动和运行相关,通常都是设备接地,电缆屏蔽没做好引起干扰,最简单的方法是用临时通讯电缆绕开干扰源试一下干扰情况有否改变就可得到有价值的信息。

现场没有驱动,只用控制部分。距离不超过两米。