SEL

Seleccionar un valor de entre dos canales

Con la primera variable de entrada (tipo de datos BOOL) de SEL se define qué variable de entrada se va a escribir en la variable de salida. Si el toma el valor Booleano = 0 (FALSE), la variable de entrada IN0 se escribirá en la variable de salida, en caso contrario IN1.

Parámetros

Entrada

G (BOOL)

Primera entrada: seleccionar entre el valor de entrada IN0 o IN1

IN0 (ANY)

Segunda entrada: se escribe en la variable de salida si G = FALSE

IN1 (ANY)

Tercera entrada: se escribe en la variable de salida si G = TRUE

Salida

VAR_OUT (ANY)

Resultado que toma el valor de IN0 o IN1

Observaciones

Cuando se utiliza el tipo de datos STRING con un PLC pequeño como el FP-e o el FP0, asegurarse de que la longitud de la cadena de caracteres destino es igual o superior a la longitud de la cadena fuente.

Ejemplo

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

	VAR
		channel_select: BOOL:=FALSE;
		channel_0: INT:=0;
		channel_1: INT:=0;
		output: INT:=0;
	END_VAR

En este ejemplo se han declarado las variables de entrada (channel_select, channel_0 y channel_1). Sin embargo, se puede introducir una constante directamente en la entrada de una función.

Cuerpo de la POU

Si channel_select es 0, el valor de channel_0 se copia en la salida, en caso contrario se copia el valor de channel_1.

Cuerpo 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,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

Cuerpo en ST

output := SEL(G := channel_select, IN0 := channel_0, IN1 := channel_1);

Cuerpo IL

LD

channel_select

SEL

channel_0,channel_1

ST

output

Modificado el: 2021-07-15Comentarios sobre esta páginaPanasonic hotline