恭喜,你发布的帖子
发布于 2022-03-16 12:06:16
3楼
设想建立一个SCL语言的FC块,在内部用FOR循环,
/////////////////////////////////////////////////////////
FUNCTION_BLOCK FB44
TITLE = 'Block Title'
//
// Block Comment...
//
VERSION: '1.0'
AUTHOR: baikai
NAME: BYTE_BYTE
FAMILY: baikai
know_how_protect
// Block Parameters
VAR_INPUT
// Input Parameters
Main_var:WORD; //输入的字
BOOL_var AT Main_var :ARRAY[0..15] OF BOOL; // 将字拆分为位 ,因为原来做的是WORD TO BOOL
END_VAR
VAR
I:INT;
N:INT;
up_bit_out: ARRAY[0..7] OF BOOL; // 直接取原来的低位 0--7 给入高位
low_bit_out:ARRAY[8..15] OF BOOL; // 低位同理
S1 AT up_bit_out:BYTE; // 将BOOL 转为为 BYTE
S2 AT low_bit_out:BYTE;
END_VAR
VAR_OUTPUT
// Output Parameters
up_bit_out1: BYTE;
low_bit_out1:BYTE;
END_VAR
FOR I:= 0 TO 7 BY 1 DO //采用俩个FOR 读取输入
// Statement Section
up_bit_out[I]:= BOOL_var[I];
END_FOR;
FOR N:= 8 TO 15 BY 1 DO
// Statement Section
low_bit_out[N]:= BOOL_var[N];
END_FOR;
up_bit_out1:= S1;
low_bit_out1:= S2;
END_FUNCTION_BLOCK
结果例如输入 W#16# 1234 输出 高位 W#16#12 低位 W#16#34
请填写推广理由:
分享
只看
楼主