从多个通道选择值
函数多路复用器选择输入变量并将其值写入输出变量。第1个输入变量决定哪个输入变量(IN1或IN2 ...)被写入输出变量。可对任意数量的输入配置函数MUX。
输入
选择写入输出的值
如果K = 0,值0被写入输出
如果K = 1,值1被写入输出
输出
Result输出作为第2个和第3个输入
当通过FP-e或FP0等小型PLC使用数据类型STRING时,确保结果字符串的长度等于或大于源字符串的长度。
此函数可扩展到最多28个输入触点,另请参阅修改元素。
第2个和第3个输入变量必须为相同的数据类型。
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
channel_select : INT:=0;
(*value '0' to 'n'*)
channel_0: INT:=0;
(*all types allowed*)
channel_1: INT:=0;
(*all types allowed*)
output: INT:=0;
(*all types allowed*)
END_VAR
在此例中,已声明输入变量(channel_select、channel_0和channel_1)。相反,可以直接在函数的输入触点处输入常量。
在channel_select中可以找到用于选择channel_0或channel_1的整数值(0, 1...n)。结果将被写入output。
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,MUX-2!,Instance,10,0,15,5,,?DK?DIN0?DIN1?C);
B(B_VARIN,,channel_select,8,1,10,3,);
B(B_VARIN,,channel_0,8,2,10,4,);
B(B_VARIN,,channel_1,8,3,10,5,);
B(B_VAROUT,,output,15,1,17,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
output:=MUX( K:= channel_select , IN0:= channel_0 ,
IN1:= channel_1 );
LD |
channel_select |
MUX |
channel_0,channel_1 |
ST |
output |