Seleziona valore da uno dei due canali
Con la prima variabile di ingresso (tipo di dato BOOL) di SEL definite quale variabile di ingresso vada scritta nella variabile di uscita. Se il valore booleano = 0 (FALSE), la variabile di ingresso IN0 verrà scritta nella variabile di uscita, altrimenti IN1.
Ingresso
1° ingresso: seleziona tra il valore di ingresso IN0 o IN1
2° ingresso: il valore viene scritto nella variabile di uscita se G = FALSE
3° ingresso: il valore viene scritto nella variabile di uscita se G = TRUE
Uscita
Valore risultato come IN0 o IN1
In caso di utilizzo del tipo di dato STRING con PLC piccoli come FP-e o FP0, assicuratevi che la lunghezza della stringa risultato sia uguale o maggiore della lunghezza della stringa di origine.
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
VAR
channel_select: BOOL:=FALSE;
channel_0: INT:=0;
channel_1: INT:=0;
output: INT:=0;
END_VAR
In questo esempio sono state dichiarate le variabili di ingresso (channel_select, channel_0 e channel_1). Al loro posto potete inserire una costante direttamente nel contatto di ingresso di una funzione.
Se channel_select ha il valore 0, channel_0 verrà scritto nell'uscita, altrimenti 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 |