다채널에서 값 선택
멀티플렉서 펑션은 입력 변수를 선택하고 해당 값을 출력 변수에 씁니다. 1번째 입력 변수는 출력 변수에 작성되는 입력 변수(IN1 또는 IN2 등)를 결정합니다. MUX 펑션은 원하는 입력 번호로 구성될 수 있습니다.
입력
출력에 작성되는 값을 선택합니다.
K = 0이면 값 0이 출력에 작성됩니다.
K = 1이면 값 1이 출력에 작성됩니다.
출력
결과: 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 |