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每次发送固定的字符串给仪表,仪表将数据以固定的形式传回,为什么会出现字符串不一样,这个和周围环境有关系么,还是和波特率或其他通讯参数有关。
90人在江湖
级别: 探索解密
精华主题: 0
发帖数量: 66 个
工控威望: 198 点
下载积分: 2334 分
在线时间: 117(小时)
注册时间: 2014-03-20
最后登录: 2024-11-11
查看90人在江湖的 主题 / 回贴
2楼  发表于: 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。