MUX

从多个通道选择值

函数多路复用器选择输入变量并将其值写入输出变量。第1个输入变量决定哪个输入变量(IN1IN2 ...)被写入输出变量。可对任意数量的输入配置函数MUX

参数

输入

K (INT)

选择写入输出的值

IN0 (ANY)

如果K = 0,值0被写入输出

IN1 (ANY)

如果K = 1,值1被写入输出

输出

VAR_OUT (ANY)

Result输出作为第2个和第3个输入

标注

  • 当通过FP-eFP0等小型PLC使用数据类型STRING时,确保结果字符串的长度等于或大于源字符串的长度。

  • 此函数可扩展到最多28个输入触点,另请参阅修改元素。

  • 第2个和第3个输入变量必须为相同的数据类型。

示例

POU头

所有用于编程此函数的输入和输出变量已在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_selectchannel_0channel_1)。相反,可以直接在函数的输入触点处输入常量。

POU本体

channel_select中可以找到用于选择channel_0channel_1的整数值(0, 1...n)。结果将被写入output

LD本体

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

ST本体

output:=MUX( K:= channel_select , IN0:= channel_0 ,
         IN1:= channel_1 );

IL本体

LD

channel_select

MUX

channel_0,channel_1

ST

output

最后更新日期: 此页面上的反馈松下热线