MUX

Multiplexer

Mit der Multiplexer-Funktion wird eine Eingangsvariable ausgewählt und deren Wert in die Ausgangsvariable geschrieben. Mit der 1. Eingangsvariablen legen Sie fest, welche Eingangsvariable (IN1 oder IN2...) in die Ausgangsvariable geschrieben werden soll. Die Funktion MUX können Sie für eine beliebige Anzahl an Eingängen konfigurieren.

Parameter

Eingang

K (INT)

Legt fest, welcher Wert in den Ausgang geschrieben wird

IN0 (ANY)

Der Wert 0 wird in den Ausgang geschrieben, wenn K = 0

IN1 (ANY)

Der Wert 1 wird in den Ausgang geschrieben, wenn K = 1

Ausgang

VAR_OUT (ANY)

Ergebnis Ausgang wie 2. und 3. Eingang

Anmerkungen

  • Bei der Verwendung des Datentyps STRING mit Kleinsteuerungen wie FP-e oder FP0 müssen Sie darauf achten, dass die Länge der Ergebniszeichenfolge mindestens so groß ist wie die Länge der Ausgangszeichenfolge.

  • Die Funktion ist auf max. 28 Eingangskontakte erweiterbar, siehe auch "Elemente bearbeiten".

  • Die 2. und 3. Eingangsvariablen müssen vom gleichen Typ sein.

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	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 diesem Beispiel wurden die Eingangsvariablen (channel_select, channel_0 und channel_1) deklariert. Stattdessen können Sie im Rumpf eine Konstante auch direkt an den Eingang der Funktion schreiben.

POE-Rumpf

In Kanalauswahl channel_select steht der Integer-Wert (0, 1...n), mit dem channel_0 oder channel_1 ausgewählt wird. Das Ergebnis wird in output geschrieben.

KOP-Rumpf

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

ST-Rumpf

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

AWL-Rumpf

LD

channel_select

MUX

channel_0,channel_1

ST

output

Letzte Änderung am: 2021-07-28Feedback zu dieser SeitePanasonic Hotline