XOR

Exklusiv-ODER (XOR)

Der Inhalt des Akkumulators wird mit dem Ergebnis des in der Klammer stehenden Ausdrucks XOR-verknüpft. Das Ergebnis der Operation steht im Akkumulator.

Parameter

Eingang

Unnamed input (BOOL, WORD, DWORD)

1. Eingang: Element 1 der logischen XOR-Operation

Unnamed input (BOOL, WORD, DWORD)

2. Eingang: Element relativ zu Eingang 1

Ausgang

Unnamed output (BOOL, WORD, DWORD)

Ausgang wie Eingang: Ergebnis

Anmerkungen

  • Alle Operanden müssen vom gleichen Datentyp sein.
  • Die Funktion ist auf max. 28 Eingangskontakte erweiterbar, siehe auch "Elemente bearbeiten".

Wahrheitstabelle:

Eingang 1

Eingang 2

Ausgang

Signal

0

0

0

1

0

1

0

1

1

1

1

0

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
		bvar_1: BOOL:=FALSE;
			(*Input 1*)
		bvar_2: BOOL:=FALSE;
			(*Input 2*)
		bvar_3: BOOL:=FALSE;
			(*Output*)
	END_VAR

POE-Rumpf

Die booleschen Variablen bvar_1 und bvar_2 werden mit einem Exklusiv_ODER verknüpft und das Ergebnis in bvar_3 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,@XOR-2!,,10,1,15,4,,?D?D?C);
B(B_VARIN,,bvar_1,8,1,10,3,);
B(B_VARIN,,bvar_2,8,2,10,4,);
B(B_VAROUT,,bvar_3,15,1,17,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

var_3:= var_1 XOR var_2;

AWL-Rumpf

LD

bvar_1

(* Load bvar_1 in accu *)

XOR

bvar_2

(* Perform an XOR of accu with bvar_2; store result in accu *)

ST

bvar_3

(* Store accu in bvar_3 *)

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