从两个通道之一选择值
通过SEL的第一个输入变量(数据类型BOOL)可以定义哪个输入变量写入输出变量。如果布尔值 = 0(FALSE),输入变量IN0将被写入输出变量,否则写入IN1。
输入
第1个输入:在输入值IN0或IN1之间选择
第2个输入:如果G = FALSE,值被写入输出变量
第3个输入:如果G = TRUE,值被写入输出变量
输出
结果值作为IN0或IN1
当通过FP-e或FP0等小型PLC使用数据类型STRING时,确保结果字符串的长度等于或大于源字符串的长度。
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
channel_select: BOOL:=FALSE;
channel_0: INT:=0;
channel_1: INT:=0;
output: INT:=0;
END_VAR
在此例中,已声明输入变量(channel_select、channel_0和channel_1)。相反,可以直接在函数的输入触点处输入常量。
如果channel_select具有值0,channel_0将被写入输出,否则写入channel_1。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,SEL!,Instance,15,0,20,5,,?DG?DIN0?DIN1?C);
B(B_VARIN,,channel_0,13,2,15,4,);
B(B_VARIN,,channel_1,13,3,15,5,);
B(B_VAROUT,,output,20,1,22,3,);
B(B_CONTACT,,channel_select,7,1,9,3,);
L(1,2,7,2);
L(9,2,15,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
output := SEL(G := channel_select, IN0 := channel_0, IN1 := channel_1);
LD |
channel_select |
SEL |
channel_0,channel_1 |
ST |
output |