90人在江湖
级别: 探索解密
精华主题: 0
发帖数量: 66 个
工控威望: 198 点
下载积分: 2334 分
在线时间: 117(小时)
注册时间: 2014-03-20
最后登录: 2024-11-11
查看90人在江湖的 主题 / 回贴
楼主  发表于: 2018-12-24 19:11
图片:
图片:
图片:
图片:
图片:
各位前辈好 ,小弟现在使用三菱L系列PLC通过LJ71C24-R2模块使用无协议通讯方式和一台仪表通讯,现在在通讯过程出现了一些异常,造成指令EVAL运算异常,造成PLC报警,现在为了正常使用,小弟现在使用指令WTOB将需要进行换算的存储器的值分开,单独进行约束,请问前辈们还有其他更好的方法吗,
90人在江湖
级别: 探索解密
精华主题: 0
发帖数量: 66 个
工控威望: 198 点
下载积分: 2334 分
在线时间: 117(小时)
注册时间: 2014-03-20
最后登录: 2024-11-11
查看90人在江湖的 主题 / 回贴
1楼  发表于: 2018-12-24 19:17
图片:
仪表使用循环读取方式,PLC每次发送固定的字符串给仪表,仪表将数据以固定的形式传回,为什么会出现字符串不一样,这个和周围环境有关系么,还是和波特率或其他通讯参数有关。
焦刘吉
紧跟时代发展,努力做好时代青年
级别: 工控侠客
精华主题: 0
发帖数量: 1460 个
工控威望: 4682 点
下载积分: 14955 分
在线时间: 429(小时)
注册时间: 2015-05-19
最后登录: 2024-11-14
查看焦刘吉的 主题 / 回贴
2楼  发表于: 2018-12-24 20:44
缓存区的值是外围设备发货来的值,如果满足接收条件,INPUT指令接通,再把缓存区的值读进D里面,如果不满足或不正确值会踢掉,如果只看缓存区的值有可能的值并不是正确的值,你只需看D就行了
Rules are always made by the strong, and history is always written by the winners.
90人在江湖
级别: 探索解密
精华主题: 0
发帖数量: 66 个
工控威望: 198 点
下载积分: 2334 分
在线时间: 117(小时)
注册时间: 2014-03-20
最后登录: 2024-11-11
查看90人在江湖的 主题 / 回贴
3楼  发表于: 2018-12-24 21:08
引用
引用第2楼焦刘吉于2018-12-24 20:44发表的  :
缓存区的值是外围设备发货来的值,如果满足接收条件,INPUT指令接通,再把缓存区的值读进D里面,如果不满足或不正确值会踢掉,如果只看缓存区的值有可能的值并不是正确的值,你只需看D就行了





现在不知道什么原因造成存储器(d1400)值与缓存(U11\G1536)值不一样,然后会造成运算错误,现在为了防止运算错误发生,就对存储器里的值进行判断,如果正常进行EVAL运算,否则不运算,这样的话目前没有出现报错,不知道后期会不会,退一步说,这个存储器能不能批量约束,比如说 对D1到D10里面的值 进行单独判断,必须都有在0和9之间才能把D1到D9传输到D20到D29。
焦刘吉
紧跟时代发展,努力做好时代青年
级别: 工控侠客
精华主题: 0
发帖数量: 1460 个
工控威望: 4682 点
下载积分: 14955 分
在线时间: 429(小时)
注册时间: 2015-05-19
最后登录: 2024-11-14
查看焦刘吉的 主题 / 回贴
4楼  发表于: 2018-12-24 21:52
楼主,你用WTOB是可以的,又或者用G.CPPRTL这个,设置好报文格式,直接转化为数值
具体参考手册
Rules are always made by the strong, and history is always written by the winners.