发布于 2008-05-13 15:10:54
0楼
FUNCTION_BLOCK FB 2
TITLE =
//计算100个数据的平均值
VERSION : 0.1
VAR_INPUT
init : BOOL ; //初始化脉冲,填第一个数时用到
In : INT ; //输入的采样数据
END_VAR
VAR_OUTPUT
Out : INT ; //平均值
END_VAR
VAR
index : INT ; //采样标识
Totale : DINT ;
Data : ARRAY [1 .. 100 ] OF INT ;
END_VAR
BEGIN
NETWORK
TITLE =
//初始化
A #init;
JCN _002;
L 100;
_001: T #index;
L 16;
*I ;
L P##Data;
+D ;
LAR1 ;
L #In;
T DIW [AR1,P#0.0];
L #index;
LOOP _001;
L 1;
T #index;
L #In;
T #Out;
L 100;
*I ;
T #Totale;
_002: NOP 0;
NETWORK
TITLE =
//计算平均值
L #index;
L 16;
*I ;
L P##Data;
+D ;
LAR1 ;
L DIW [AR1,P#0.0];
ITD ;
L #Totale;
TAK ;
-D ;
L #In;
ITD ;
+D ;
T DIW [AR1,P#0.0];
L 100;
/D ;
T #Out;
L #index;
INC 1;
L 100;
<=I ;
BEC ;
L 1;
T #index;
END_FUNCTION_BLOCK