두 채널 중 하나에서 값 선택
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 |