发布于 2012-09-13 18:30:40
2楼
还有一个一阶滞后滤波
FUNCTION_BLOCK FB1003
VAR_INPUT //定义输入参数
Realtime_Value :REAL; //实时采样值
END_VAR
VAR_OUTPUT //定义输出参数
Filted_Value :REAL; //滤波后采样值
END_VAR
VAR_IN_OUT //定义输入输出参数
Modulus :REAL; //系数
END_VAR
VAR //定义静态变量
Last_Value :REAL; //上次输出值
END_VAR
BEGIN
IF Modulus > 1.0 THEN
Modulus := 1.0;
END_IF;
IF Modulus < 0.0 THEN
Modulus := 0.0;
END_IF;
Filted_Value := (1.0 - Modulus) * Last_Value + Modulus * Realtime_Value;
Last_Value := Filted_Value;
END_FUNCTION_BLOCK