Una bifurcación simultánea le permite implementar una evaluación paralela de los elementos lógicos. Esto se lleva a cabo mediante una metodología descrita como evaluación de cortocircuitos (SCE). SCE le permite eludir la ejecución de un bloque de funciones con una salida booleana si determinadas condiciones paralelas se evalúan como verdaderas. La condición puede representarse en el editor LD mediante una bifurcación paralela a la rama del bloque de funciones. La condición SCE se define mediante 1 o varios contactos con esta bifurcación, conectados en paralelo o en serie.
Las conexiones verticales de las ramas de evaluación de cortocircuitos ejecutadas en paralelo se representan mediante una línea doble a fin de distinguirlas de las construcciones OR, que se representan mediante una línea única (consulte la figura Bifurcación paralela para SCE en una red de contactos).
NOTA: El término rama también se utiliza para otro elemento que divide el flujo de una señal. Esta rama, a diferencia de la bifurcación paralela, no tiene un punto de unión.
La bifurcación paralela funciona como sigue: primero se analizan las ramas que no contienen un bloque de funciones. Si 1 de estas ramas se evalúa como verdadera, no se invocará el bloque de funciones de la bifurcación paralela y el valor de la entrada de la rama del bloque de funciones se pasará a la salida. Si la condición de SCE se evalúa como falsa, se invocará el bloque de funciones y se pasará el resultado booleano de la llamada de ejecución del bloque de funciones.
Si todas las ramas contienen bloques de funciones, se evaluarán de arriba abajo y sus salidas se combinarán con operaciones lógicas OR. Si no hay ramas que contengan una llamada a bloques de funciones, se realizará la operación OR normal.
Para insertar una bifurcación paralela con la función SCE, seleccione el módulo del bloque de funciones y ejecute el comando Insertar contacto paralelo (por encima) o Insertar contacto paralelo (por debajo). Esto solo es posible si la primera entrada y la salida principal del bloque de funciones son de tipo BOOL.
A continuación, se muestra un ejemplo del modelo de lenguaje generado para la red en cuestión.
La instancia del bloque de funciones x1 (TON) contiene una entrada booleana y una salida booleana. Esta ejecución puede omitirse si la condición de la bifurcación paralela se evalúa como TRUE. El valor de esta condición es el resultado de las operaciones OR y AND que conectan los contactos cond1, cond2 y cond3.
Bifurcación paralela para SCE en una red de contactos
1 Las líneas de conexión dobles verticales indican una construcción que se encuentra sujeta a una SCE.
2 La línea de conexión sencilla vertical indica una construcción OR.
El procesamiento es como se muestra a continuación, donde P_IN y P_OUT representan el valor booleano en la entrada (punto de división) y la salida (punto de unión) de la bifurcación paralela, respectivamente.
P_IN := b1 AND b2;
IF ((P_IN AND cond1) AND (cond2 OR cond3)) THEN
P_OUT := P_IN;
ELSE
x1(IN := P_IN, PT := {p 10}t#2s);
tElapsed := x1.ET;
P_OUT := x1.Q;
END_IF
bRes := P_OUT AND b3;
En las imágenes siguientes se muestra el flujo de datos (en azul) cuando se ejecuta el bloque de funciones (la condición resultante de cond1, cond2 y cond3 es FALSE) o se omite (condición TRUE).
Si la condición es falsa, el bloque de funciones se ejecuta:
Si la condición es verdadera, el bloque de funciones se omite: