Page 32 - 网络电信2023年12月刊
P. 32
光 通 信
3.1 编码器速度信号缓存的程序编写 3.2 算术平均值滤波算法系统的程序编写
在TIA Portal V15编程环境下,新建一个FB块,命名 有时候为了去除抖动,会将最大值和最小值去掉,然后求
FB5011_FIFO_Real,用来将PLC采集到的放线旋转编码速度信 剩下的数的平均数,这种算法简单、实用,适用于信号在某个
号按设定的频率周期循环缓存在数组中。FIFO数据队列缓存变 值上下范围内波动滤波。在TIA Portal V15编程环境下,新建
量声明如图1所示。编码器信号FIFO程序SCL代码解析如图2所 一个FB块,命名FB5012_Arithmetic Average Filter。算术平
示。 均值滤波算法程序变动量声明如图3所示。算术平均值滤波算法
其中: SCL程序代码如图4所示。
init Data:当该参数的值为真时,将队列初始化。内部上 其中:
升沿信号处理。 data:计算出的算术平均值。
put Data:当该参数的值为真时,将数据data放入队列。 data Max:编码器信号缓存于数组中的最大值。
内部上升沿信号处理。 data Min:编码器信号缓存于数组中的最小值。
get Data:当该参数的值为真时,将从队列中取出一个数 elements Number:采样编码器信号的样本数量。
据。内部上升沿信号处理。 source Queue:输入/输出参数“source Queue”是一个可
data:要入队的数据。 变数组。
done:操作完成(该信号会保持)。
图3:算术平均值滤波算法程序变量声明
error:操作出错。
data Q:从队列中出来的数据。
counter:队列中数据的数量。
err Code:错误代码(1=存储区满,3=存储区空)。
ring Bufffer:使用不定长数组实现的环型存储区(不要
在队列初始化完成后更改其上下限值)。
图1:FIFO数据队列缓存变量声明
图4:算术平均值滤波算法SCL程序代码
图2:FIFO程序SCL代码解析
3.3 算术平均值滤波算法模型分析
采集一段时间里龙门放线架电机的速度,将采集的速度信
号存入数组,为防止干扰因素导致将采集的信号数据在数组中
去除最大值和最小值进行滤波。然后将其他数值相加除以数值
的个数即可得到算术平均值。算术平均值滤波模型实例见图5。
58 网络电信 二零二三年十二月