S7-200,使用VD来保存一个经过程序处理后的模拟量结果,为浮点数值,在程序中做个上下限报警处理,超过多少或低于多少会触发位接通,位的表示法如V1000.0/V1000.1,但是出现个奇怪的问题想不通,上位机通过OPC设定上下限,明明模拟量结果在上下限范围内,却依然会报警,比如结果为12.3,下限设为12,或者11就会低限报警,但是再设小一点,比如10,就不会报警了,这是为什么?另外有没有比较可靠手段来避免这种问题出现?
问题补充:
已经交叉索引过,确定只有这个报警程序在使用这两个位,即每个位只使用一次,且程序所用的VB,VD等离1000还有段距离。
最佳答案
现在不是说你的想法错。那么不合情理的现象,只能说是程序的实现跟意愿不同。简单说就是:程序编错。无论上位的错还是下位的错,反正就是错。错在一些不起眼的地方,例如高低位之间,高低字节之间。
提问者对于答案的评价:
专家置评
已阅,最佳答案正确。
最先需要排除程序编程地址冲突问题。先检查简单比较指令是否正确。
什么上位机软件是否和S7-200一样是低位高字节存储数据的。另外,如果不通过上位机,而是直接通过plc测试呢。如果直连plc出错,那么检查程序,如果直连plc不出错,查两者之间的通信和程序设置。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc192127.html