200Smart在线监控时程序计算值和不监控时不一样

使用CPU ST60型号PLC,PLC程序里写了一段采集模拟量计算数值的公式,我用1ms脉冲计算并输出结果。当在计算机上电机在线监控时,计算的数值就会变大,从之前的3.9左右变到5,8左右。当在线监控取消时又变回3.9左右的值。请教各位大神这是什么原因导致,如何避免、这计算的结果哪个是正确的。200SMART软件版本为V2.05版本的。

问题补充:
测试了下删除模拟量计算,只留了一个计算速度的简单加减乘除的公式,通过交换机连接触摸屏,触摸屏显示3.9左右的值,通过电脑电机在线监控时,这个数值就变5左右了。同一个地址VD216。

图片说明:

200Smart在线监控时程序计算值和不监控时不一样   

最佳答案

你这个3.9 5.8是通过什么途径得知的?数据没有追索是无法解决问题的。
假设监控会消耗cpu处理资源,造成扫描时间大于1毫秒,影响到了一些运算。那么你的程序就要想办法避免这种情况的发生。你要考虑1毫秒的密度各方面能不能处理得来。
你要知道哦,中断是可以在任何一条指令的上方或者下方发生。这种发生,会不会给数据带来一致性的影响……当你开车来到路口,红灯,你停车低下头撕了张纸巾准备……此时后方响喇叭了,你抬头一看,绿灯了。被人家催了。这就是你错过了红转绿的一瞬间。这些事情错过了不会出错,但是程序错过了一些什么就会出错了。中断会和扫描异步的问题,必然是影响扫描的结果的。也不可以说影响,它本来就是这样的特性。你的程序要适应这个特性。
我猜,很大机会是这方面的问题。

提问者对于答案的评价:
一开始我感觉也是扫描周期问题,后边改成双整数运算后(刚开始用的是浮点数运算),这个问题就不出现了,还是没整明白哪里的原因

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279837.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午6:19
下一篇 2020年10月30日 下午6:19

相关推荐

发表回复

登录后才能评论