ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

八. SCL 模拟量平均值滤波(乞丐版)

八. SCL 模拟量平均值滤波(乞丐版) 一. 基本方法定时采集模拟量将这个值放在一个数组里面。 每次定时接通把新采集的值放在数组里的下一个变量里。二. 程序// 定时 #Timer(IN:NOT #Timer_Q, PT:t#1s, Q#Timer_Q); IF #Timer_Q THEN #Ai_arr[#Count] : #Ai_in; #Count : #Count 1; END_IF; // 如果数值填充满了 IF #Count 10 THEN // 初始化数值 #Max_V : #Ai_arr[0]; #Min_V : #Ai_arr[0]; #Sum_V : 0; FOR #i : 0 TO 9 DO // 最大值 IF #Ai_arr[#i] #Max_V THEN #Max_V : #Ai_arr[#i]; END_IF; // 最小值 IF #Ai_arr[#i] #Min_V THEN #Min_V : #Ai_arr[#i]; END_IF; // 累加 #Sum_V : #Sum_V INT_TO_DINT(#Ai_arr[#i]); END_FOR; // 求平均值 // 累加值是dint, 减去int, 结果为dint. #Aver : DINT_TO_REAL(#Sum_V - #Max_V - #Min_V) / 8.0; // count 归0 #Count : 0; END_IF;
返回列表