Branchement parallèle

Présentation

Un branchement parallèle permet d'implémenter une évaluation parallèle d'éléments logiques. Pour ce faire, une méthodologie nommée SCE (Short Circuit Evaluation) est utilisée. SCE permet d'ignorer l'exécution d'un bloc fonctionnel avec une sortie booléenne si certaines conditions parallèles ont la valeur TRUE. La condition peut être représentée dans l'éditeur LD par un branchement parallèle au branchement du bloc fonctionnel. La condition SCE est définie par un ou plusieurs contacts au sein de ce branchement, connectés en parallèle ou en séquence.

Les connexions verticales des branchements d'évaluation de court-circuit exécutés en parallèle sont représentées par une ligne double. Elles se distinguent ainsi des constructions OR représentées par une ligne simple (reportez-vous à la figure Branchement parallèle pour SCE dans un réseau à contacts).

NOTE : Le terme branchement désigne également un autre élément qui fractionne un flux de signaux. Ce branchement, contrairement au branchement parallèle, ne possède pas de point de jonction.

Le branchement parallèle fonctionne comme suit : il est analysé pour trouver les branchements ne contenant pas de bloc fonctionnel. Si un tel branchement a la valeur TRUE, le bloc fonctionnel du branchement parallèle n'est pas appelé et la valeur d'entrée du branchement du bloc fonctionnel est transmise à la sortie. Si la condition SCE a la valeur FALSE, le bloc fonctionnel est appelé et le résultat booléen de l'appel d'exécution du bloc fonctionnel est transmis.

Si tous les branchements contiennent des blocs fonctionnels, ils sont évalués l'un après l'autre (de haut en bas) et leurs sorties sont combinées à l'aide d'opérations OR logiques. Si aucun branchement ne contient d'appel de bloc fonctionnel, l'opération OR standard est exécutée.

Pour insérer un branchement parallèle avec une fonction SCE, sélectionnez le module du bloc fonctionnel et exécutez la commande Insérer un contact parallèle (au-dessus) ou Insérer le contact parallèle (en dessous). Cette opération n'est possible que si la première entrée et la sortie principale du bloc fonction sont de type BOOL.

L'exemple ci-dessous illustre le modèle de langage généré pour le réseau donné.

Exemple pour SCE

L'instance de bloc fonction x1 (TON) possède une entrée et une sortie booléennes. Son exécution peut être ignorée si la condition du branchement parallèle a la valeur TRUE. Cette valeur résulte des opérations OR et AND qui connectent les contacts cond1, cond2 et cond3.

Branchement parallèle pour SCE dans un réseau à contacts

1 Les lignes de connexion verticale doubles représentent une construction soumise à une SCE.

2 La ligne de connexion verticale simple représente une construction OR.

Le traitement se déroule comme indiqué ci-dessous. P_IN et P_OUT représentent respectivement la valeur booléenne en entrée (point de bifurcation) et en sortie (point de jonction) du branchement parallèle.

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;

Les images ci-dessous présentent le flux de données (bleu) si le bloc fonction est exécuté (la condition résultant de cond1, cond2 et cond3 a la valeur FALSE) ou ignoré (la condition a la valeur TRUE).

Condition=FALSE, bloc fonctionnel exécuté :

Condition=TRUE, bloc fonctionnel ignoré :