zhang2601312
级别: 探索解密
精华主题: 0
发帖数量: 19 个
工控威望: 117 点
下载积分: 645 分
在线时间: 19(小时)
注册时间: 2016-08-16
最后登录: 2025-06-14
查看zhang2601312的 主题 / 回贴
楼主  发表于: 4天前
图片:
用1200通过开放用户通讯的发送数据和接收数据功能块问题。发送读取下属设备报文超过2个寄存器的话返回的报文就出错(一直在正确的和错误的来回闪)只读取2个寄存器返回的报文就没问题。请问下这是什么原因导致的呢。谢谢各位了
zhang2601312
级别: 探索解密
精华主题: 0
发帖数量: 19 个
工控威望: 117 点
下载积分: 645 分
在线时间: 19(小时)
注册时间: 2016-08-16
最后登录: 2025-06-14
查看zhang2601312的 主题 / 回贴
1楼  发表于: 4天前
图片:
图片:
图片:
图片:
这是发送的报文和返回的报文及程序
zhang2601312
级别: 探索解密
精华主题: 0
发帖数量: 19 个
工控威望: 117 点
下载积分: 645 分
在线时间: 19(小时)
注册时间: 2016-08-16
最后登录: 2025-06-14
查看zhang2601312的 主题 / 回贴
2楼  发表于: 4天前
感觉不是轮询的问题,就是我发送读取2个寄存器的时候返回的报文是正确的。发送读取超过2个寄存器的返回报文就出错(在对的报文和错的报文之间来回跳动)可能会是别的原因吗?
世界杯之殇
级别: 探索解密
精华主题: 0
发帖数量: 51 个
工控威望: 117 点
下载积分: 5791 分
在线时间: 59(小时)
注册时间: 2023-09-25
最后登录: 2025-06-13
查看世界杯之殇的 主题 / 回贴
3楼  发表于: 4天前
你敢不敢把LEN对应的字长度改一下?  
关于LEN的描述:
要通过作业发送的最大字节数。如果在参数 DATA 中使用纯符号值,则 LEN 参数的值必须为“0”。
楼主留言:
如果我想读10个字节的数据这个RCVD_LEN应该填写多少呢。
世界杯之殇
级别: 探索解密
精华主题: 0
发帖数量: 51 个
工控威望: 117 点
下载积分: 5791 分
在线时间: 59(小时)
注册时间: 2023-09-25
最后登录: 2025-06-13
查看世界杯之殇的 主题 / 回贴
4楼  发表于: 4天前
引用
引用第3楼世界杯之殇于2025-06-11 16:13发表的  :
你敢不敢把LEN对应的字长度改一下?  
关于LEN的描述:
要通过作业发送的最大字节数。如果在参数 DATA 中使用纯符号值,则 LEN 参数的值必须为“0”。

对应就是10!然后实际数据长度必须大于等于这个长度才不会报错
楼主留言:
直接在RCVD_LEN写入数值不行,建立DB块UDINT数值传送过去也不行哦。
世界杯之殇
级别: 探索解密
精华主题: 0
发帖数量: 51 个
工控威望: 117 点
下载积分: 5791 分
在线时间: 59(小时)
注册时间: 2023-09-25
最后登录: 2025-06-13
查看世界杯之殇的 主题 / 回贴
5楼  发表于: 4天前
离线以后直接赋值啊,常量都可以!如果是变量赋值要求uint类型的
如果你发送区DATA的是优化访问快,就把这个设置成0,然后发送和接受端的数据类型及长度要一致也可以!
tips:
打开博图,然后F1,或者右侧拖动指令的地方放在需要了解的指令上面变成黄色后点击可以进入帮助,里面会有详细的参数说明
楼主留言:
我弄错了,是LEN区。我以为是RCVD_LEN区。LEN区可以写入数值,但是我写入了并且把优化块取消了还是没用。返回的报文还是乱的
世界杯之殇
级别: 探索解密
精华主题: 0
发帖数量: 51 个
工控威望: 117 点
下载积分: 5791 分
在线时间: 59(小时)
注册时间: 2023-09-25
最后登录: 2025-06-13
查看世界杯之殇的 主题 / 回贴
6楼  发表于: 3天前
接收的req改为保持激活,类似cont的Ture赋值,你用的定时器有什么特殊要求?
看看帮助文档里面的范例,以及对各个参数的描述
楼主留言:
额  定时器没有啥要求呀。帮助都看仔细看了,也尝试了很多方法还是没弄好