Bloque lógico que ejecuta una operación de "o exclusivo" booleano entre dos variables, almacenando el resultado en una tercera.
Representación Ladder

Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
Value1 |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT |
Variable para la operación |
|
Value2 |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT |
Variable para la operación |
|
VAR_OUTPUT |
ENO |
BOOL |
Fin de operación |
Result |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT |
Variable que almacena el resultado de la operación |
Operación
Este bloque, cuando tiene un valor TRUE en EN, envía a la salida Result el valor de la operación booleana "o exclusivo" de las variables de entrada Value1 y Value2.
Cuando EN tiene valor FALSE, Result permanece inalterado.
El valor de ENO pasa al próximo bloque Ladder el valor de EN luego de finalizada la operación.
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo de arriba realiza la operación "o exclusivo" booleano entre AUX y AUX2, almacenando el resultado en AUX3.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR AUX : BYTE := 2#1010_1111; AUX2 : BYTE := 2#1000_1100; AUX3 : BYTE; END_VAR
AUX3 := FB_XOR( EN:=DI1, Value1:=AUX, Value2:=AUX2, ENO=>DO1);
|
|---|