有一程序,运行个把月后,会报比较触点数值错误,重新下载后,又能用个把月,网上查到“不执行和能流为零是两回事”前辈们能举例说明下吗,另外请问在使用手册中哪单节中有注明?
问题补充:
我根据PLC信息,最后锁定到这个网络的VD2350上了,可VD2350是实数相乘出的结果,应该肯定是实数,就怎么也没想到问题,另外这个地址在其它地方没用到,间接的也没有访问,就是运行一段时间出这个问题,实在没想到问题所在。
图片说明:
最佳答案
请登录网址http://forum.ttplc.com/forum.php?mod=viewthread&tid=20658查看相关解释也许对你有所帮助!
这就拽到问题了,VD2350是实数且是两数相乘的结果,如果乘数和被乘数在小数点后的值pLc釆集时有微小变化,且又不超出该值的限定范围,两数相乘后结果可能会越来越大,最后超出我们对该值限定的范围而导致模块报错!
我建议你使用实数比较指令中,VD2350<2000时传送-2000到目的地址中,VD2350>=2000时传送2000到目标地址中,将程序改下试试!
提问者对于答案的评价:
非常感谢各位的解答,由于出差,没顾上及时回复,我后期改个试试,有这可能。现在的解决办法是,把VD2350传给AC0,先园整,再变成实数,去比较就不会出错。
专家置评
已阅,最佳答案正确。
通常,real和real的运算不会超出类型。但如果在子程序中参见运算,又用到temp类型存储,若是在子程序运行之初没有对temp类型变量清零,有可能影响运算结果。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc187552.html