多个位合成一个BYTE实际有现成的块,这里主要还是介绍哈AT指令的使用 下面的每个位没有使用FOR循环赋值方式方便入门的同学理解。
该程序在PCS7下使用
//**************************************************************************************
// 将多个位组合成一个BYTE 介绍AT指令的使用
//**************************************************************************************
FUNCTION FC61: VOID
TITLE = 'DI_TO_BYTE'
AUTHOR: EBC_LW
NAME: DITOBYTE
VERSION: '0.01'
FAMILY: EBC
KNOW_HOW_PROTECT
VAR_INPUT
IN1
: STRUCT
VALUE : BOOL;
ST : BYTE;
END_STRUCT;//输入值1
IN2
: STRUCT
VALUE : BOOL;
ST : BYTE;
END_STRUCT;//输入值2
IN3
: STRUCT
VALUE : BOOL;
ST : BYTE;
END_STRUCT;//输入值3
IN4
: STRUCT
VALUE : BOOL;
ST : BYTE;
END_STRUCT;//输入值4
IN5
: STRUCT
VALUE : BOOL;
ST : BYTE;
END_STRUCT;//输入值5
IN6
: STRUCT
VALUE : BOOL;
ST : BYTE;
END_STRUCT;//输入值6
IN7
: STRUCT
VALUE : BOOL;
ST : BYTE;
END_STRUCT;//输入值7
IN8
: STRUCT
VALUE : BOOL;
ST : BYTE;
END_STRUCT;//输入值8
END_VAR
VAR_OUTPUT
OUT: BYTE;
END_VAR
VAR
DATA:BYTE;
DATA_BOOL AT DATA:ARRAY[0..7] OF BOOL;
END_VAR
DATA_BOOL[0]:=IN1.VALUE;
DATA_BOOL[1]:=IN2.VALUE;
DATA_BOOL[2]:=IN3.VALUE;
DATA_BOOL[3]:=IN4.VALUE;
DATA_BOOL[4]:=IN5.VALUE;
DATA_BOOL[5]:=IN6.VALUE;
DATA_BOOL[6]:=IN7.VALUE;
DATA_BOOL[7]:=IN8.VALUE;
OUT:=DATA;
END_FUNCTION
原创程序 请多交流 QQ 275578306