恭喜,你发布的帖子
发布于 2015-10-30 11:26:40
4楼
FUNCTION_BLOCK FB4
VAR_INPUT
// Input Parameters
data_input:INT:=0; //输入数据,此处定位为INT型,如果需要浮点型,则改为real
transfer_enable:BOOL:=false; //允许存储
FP_1Sec:BOOL:=false; //定制的1S脉冲波
END_VAR
VAR_OUTPUT
// Output Parameters
data_output:ARRAY[0..5] OF INT:=0; //假设定义6组数据 存储组
data_out:INT:=0; //实际使用数据
END_VAR
VAR
i:INT;
Impls_1Sec_Aux,Impls_1Sec:BOOL;
count:INT; //定制计数器
END_VAR
Impls_1Sec:= FP_1Sec AND (NOT Impls_1Sec_Aux);
Impls_1Sec_Aux:= FP_1Sec;
IF Impls_1Sec AND transfer_enable THEN
count:= count +1;
ELSIF NOT transfer_enable OR ( count >=6) THEN
count:=0;
END_IF;
FOR i:= 0 TO 5 BY 1 DO
IF transfer_enable THEN
data_output[count]:= data_input;
data_output[count-1]:= 0; //数据存储时,将上一个周期数据清零,如果不需要清零,则
//此语句删除即可
ELSE
data_output[i]:=0;
END_IF;
END_FOR;
data_out:=data_output[i];
IF data_input <> data_out THEN //如果输入发生改变,则输出改变,但不影响存储组,且存储组也 //是相应周期到也立即改变的
data_out:= data_input;
END_IF;
END_FUNCTION_BLOCK
请填写推广理由:
分享
只看
楼主