发表于:2015/10/16 21:37:41
#0楼
FUNCTION_BLOCK fbtrans_bool_in(*BOOL量数据传入本站*)
VAR_INPUT
CONTROLL_ADD:UINT;(*传入数据的控制站序号*)
MSG_NUM:UINT;(*传入数据的MSG序号*)
DATA8_CON:UINT;(*数据位置控制辅助变量,0-3,代表数据的4段8位数据*)
END_VAR
VAR_OUTPUT
OUT1:BOOL;
OUT2:BOOL;
OUT3:BOOL;
OUT4:BOOL;
OUT5:BOOL;
OUT6:BOOL;
OUT7:BOOL;
OUT8:BOOL;
END_VAR
VAR
XH:UINT;
MSGDATA:DWORD;
END_VAR
XH=MUL_UINT(DATA8_CON,8);
MSGDATA=GETMSG(CONTROLL_ADD,MSG_NUM);
OUT1=GETBIT(MSGDATA,XH + 0);
OUT2=GETBIT(MSGDATA,XH + 1);
OUT3=GETBIT(MSGDATA,XH + 2);
OUT4=GETBIT(MSGDATA,XH + 3);
OUT5=GETBIT(MSGDATA,XH + 4);
OUT6=GETBIT(MSGDATA,XH + 5);
OUT7=GETBIT(MSGDATA,XH + 6);
OUT8=GETBIT(MSGDATA,XH + 7);
END_FUNCTION_BLOCK
VAR_INPUT
CONTROLL_ADD:UINT;(*传入数据的控制站序号*)
MSG_NUM:UINT;(*传入数据的MSG序号*)
DATA8_CON:UINT;(*数据位置控制辅助变量,0-3,代表数据的4段8位数据*)
END_VAR
VAR_OUTPUT
OUT1:BOOL;
OUT2:BOOL;
OUT3:BOOL;
OUT4:BOOL;
OUT5:BOOL;
OUT6:BOOL;
OUT7:BOOL;
OUT8:BOOL;
END_VAR
VAR
XH:UINT;
MSGDATA:DWORD;
END_VAR
XH=MUL_UINT(DATA8_CON,8);
MSGDATA=GETMSG(CONTROLL_ADD,MSG_NUM);
OUT1=GETBIT(MSGDATA,XH + 0);
OUT2=GETBIT(MSGDATA,XH + 1);
OUT3=GETBIT(MSGDATA,XH + 2);
OUT4=GETBIT(MSGDATA,XH + 3);
OUT5=GETBIT(MSGDATA,XH + 4);
OUT6=GETBIT(MSGDATA,XH + 5);
OUT7=GETBIT(MSGDATA,XH + 6);
OUT8=GETBIT(MSGDATA,XH + 7);
END_FUNCTION_BLOCK