恭喜,你发布的帖子
发布于 2021-07-08 11:53:26
6楼
FUNCTION_BLOCK FB500
TITLE = 'Block Title'
//
// 数据存储并传送
//
VERSION: '1.0'
AUTHOR: baikai
NAME: data_T
FAMILY: baikai
know_how_protect
CONST
data_totall:=30; //总数据 数量 根据自己需要定义
dtat_group:=10; //一组数据数量
END_CONST
VAR_INPUT
read_enable:BOOL:=false; //一次性读取数据使能
NC_NO:INT:=1; //工作组序号
NC_enable:BOOL:=false; //NC 允许传动信号
data_clear:BOOL; //数据组清零
data_in:ARRAY[1..data_totall] OF REAL; // 读取的数据
END_VAR
VAR
I:INT; N:INT;
store_data:ARRAY[1..data_totall] OF REAL; //一次性存储数据
send_data:ARRAY[1..data_totall] OF REAL; //发送信号
END_VAR
IF read_enable THEN
FOR I:= 1 TO data_totall BY 1 DO
store_data[I]:= data_in[I];
END_FOR;
END_IF;
//以上为一次性存储需要个数的数据。
IF NC_enable THEN
IF NC_NO = 1 THEN
FOR N:= 1 TO dtat_group*NC_NO BY 1 DO
send_data[N]:= store_data[N];
END_FOR;
ELSIF NC_NO > 1 THEN
FOR N:= 1+ (NC_NO-1)*dtat_group TO dtat_group*NC_NO BY 1 DO
send_data[N]:= store_data[N];
END_FOR;
END_IF;
END_IF;
IF data_clear THEN
FOR N:= 1 TO data_totall BY 1 DO
send_data[N]:= 0.0;
store_data[N]:=0.0;
END_FOR;
END_IF;
END_FUNCTION_BLOCK
请填写推广理由:
分享
只看
楼主