用SCL写了一个中位值滤波的功能块

已锁定

tangying

  • 帖子

    82
  • 精华

    1
  • 被关注

    19

论坛等级:侠士

注册时间:2010-10-29

普通 普通 如何晋级?

用SCL写了一个中位值滤波的功能块

9283

10

2012-09-13 18:23:32

star star
FUNCTION_BLOCK FB1000

CONST
Length :=21; //数据记录宽度(为奇数)
END_CONST

VAR_INPUT //定义输入参数
Realtime_Value :REAL; //实时采样值
END_VAR

VAR_OUTPUT //定义输出参数
Filted_Value :REAL; //滤波后采样值
END_VAR

VAR_TEMP //定义临时变量
Loop_Count :INT; //循环计数
Squence_Count :INT; //排序计数
Temp_Data :REAL; //临时数据
END_VAR

VAR //定义静态变量
Data_Store :ARRAY[1..Length] OF REAL; //数据记录区
END_VAR

BEGIN

FOR Loop_Count := 1 TO (Length - 1) BY 1 DO
Data_Store[Loop_Count] := Realtime_Value;
FOR Squence_Count := 1 TO (Length - Loop_Count) BY 1 DO
IF Data_Store[Squence_Count] > Data_Store[Squence_Count + 1] THEN
Temp_Data := Data_Store[Squence_Count];
Data_Store[Squence_Count] := Data_Store[Squence_Count + 1];
Data_Store[Squence_Count + 1] := Temp_Data;
END_IF;
END_FOR;
END_FOR;

Filted_Value := Data_Store[(Length - 1) / 2];

END_FUNCTION_BLOCK
用SCL写了一个中位值滤波的功能块 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54051条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。