XOR

Opérateur logique OU exclusif

Le contenu de l’accumulateur est connecté à l’opérande, défini dans la zone d’opérande, par l’opérateur logique XOR. Le résultat est transféré dans l’accumulateur.

Paramètres

Entrée

Unnamed input (BOOL, WORD, DWORD)

1e entrée : 1e élément de l’opération logique XOR

Unnamed input (BOOL, WORD, DWORD)

2e entrée : élément comparé à l’entrée 1

Sortie

Unnamed output (BOOL, WORD, DWORD)

Sortie comme entrée : résultat

Remarques

  • Les opérandes doivent tous être du même type de données.
  • Cette fonction peut être étendue à un maximum de 28 contacts d’entrée, voir également "Modifier des éléments".

Table de vérité :

Entrée 1

Entrée 2

Sortie

Signal

0

0

0

1

0

1

0

1

1

1

1

0

Exemple

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU.Le même en-tête de POU est utilisé pour tous les langages de programmation.
	VAR
		bvar_1: BOOL:=FALSE;
			(*Input 1*)
		bvar_2: BOOL:=FALSE;
			(*Input 2*)
		bvar_3: BOOL:=FALSE;
			(*Output*)
	END_VAR

Corps du POU

Les variables booléennes bvar_1 et bvar_2 sont reliées par l’opérateur logique XOR et le résultat est écrit dans bvar_3.

Corps en 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,@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

Corps en ST

var_3:= var_1 XOR var_2;

Corps en IL

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 *)

Modifié le : 2021-08-09Feedback on this pagePanasonic hotline