现有四路模拟量输入(4~20mA),拟对四路模拟量取算术平均,并对坏值进行剔除处理(即不在4~20mA范围内的值),若有一路为坏值,则此路信号不参与取平均。请教有无类似C语言中if判断的函数,直接对模拟量进行判断剔除?现在用的太繁琐了。。。
现在的处理是这样的:①首先做坏值判断处理,分别对应标志位M20.0~20.3;②判断M20.0~M20.3的值,来分别确定DIV函数是除4、3、2、1?③作输出。
最佳答案
200plc中定义两个变量,或者直接用v区,保存累计值sum和参与求平均值的参数个数count。这两个变量的初始值分别是0.0和0.如果模拟量输入信号在正常范围内,则count=count+1,sum=sum+ai。最后判断如果count>0则平均值为sum/count。这个只要在plc来做就好了不需要用上位机编程的。
提问者对于答案的评价:
谢谢!~阿鸣老师给的中值滤波库,感觉适用于固定时间间隔的采样吧,可能我理解太浅显了,先用笨法子做吧~
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc246879.html