MUX

Seleziona valore da più canali

La funzione Multiplexer seleziona una variabile di ingresso e scrive il suo valore nella variabile di uscita. La 1a variabile di ingresso determina quale variabile di ingresso (IN1 o IN2 ...) vada scritta nella variabile di uscita. La funzione MUX può essere configurata per qualsiasi numero di ingressi desiderato.

Parametri

Ingresso

K (INT)

Seleziona il valore viene scritto nella di uscita

IN0 (ANY)

il valore 0 viene scritto nella di uscita se K = 0 <cs id="58675">FALSE</cs>

IN1 (ANY)

il valore 1 viene scritto nella di uscita se K = 1

Uscita

VAR_OUT (ANY)

Risultato uscita come 2° e 3° ingresso

Note

  • 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.

  • Questa funzione può essere estesa a un massimo di 28 contatti di ingresso, vedere anche Modificare gli elementi.

  • La 2a e 3a variabile di ingresso deve essere dello stesso tipo di dato.

Esempio

Intestazione del POU

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 : 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

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.

Corpo del POU

In channel_select trovate il valore intero (0, 1...n) per la selezione di channel_0 o channel_1. Il risultato verrà scritto in output.

Corpo 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

Corpo ST

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

Corpo IL

LD

channel_select

MUX

channel_0,channel_1

ST

output

L'ultima revisione: 2021-07-05Feedback su questa paginaPanasonic hotline