Les transitions d'un programme vont de pair avec les étapes qui le composent. Une transition matérialise une ou plusieurs conditions qui, une fois rencontrées, doivent être remplies pour que le programme continue son déroulement sur la branche concernée (voir étapes parallèles).

Par défaut, et dans sa forme la plus simple, chaque transition porte sur une seule condition : la fin de l'étape précédente. Selon les prérequis que vous souhaitez fixer pour accéder à une étape, vous pouvez composer la transition qui la précède avec des conditions portant sur :
- l'état/la valeur des E/S
- l'état d'une autre étape de la tâche sélectionnée / d'une tâche parallèle
- l'état/la valeur d'une variable

L'évaluation d'une ou plusieurs conditions doit nécessairement déboucher sur une valeur exprimable sous la forme Vrai ou Faux (booléenne).
Dès lors que le résultat de l'expression complète est Faux et que celle-ci est bloquante (aucun autre branchement parallèle ne permet de continuer l'exécution), le programme se met en attente de sa validation.

Les opérateurs logiques

- ET : la condition qui précède l'opérateur et la condition qui le suit doivent toutes les deux être évaluées à Vrai.
- OU : au moins une des deux conditions qui précèdent et suivent l'opérateur doit être évaluée à Vrai.
- XOU : la condition qui le précède ou la condition qui le suit doit être évaluée à Vrai, mais pas les deux.
- NOT() : la condition contenue entre les parenthèses doit être évaluée à Faux
- (...) : permet de modifier la priorité dans l'ordre d'évaluation de l'expression.

Les opérateurs de comparaison

< : strictement inférieur à
<= : inférieur ou égal à
= : égal à
>= : supérieur ou égal à
> : strictement supérieur à

Exemples

"L'étape AD de la tâche Tache_3 est terminée, et le capteur d'ouverture de la pince câblé sur l'entrée digitale I4 est activé" => Fin(Tache_3.AD) ET I4 == 1
"Le capteur d'état de la porte câblé sur I2 indique qu'elle est ouverte, ou le nombre de pièces défectueuses dénombré dans Compteur_3 est supérieur à 10" => I2 == 1 OU Compteur_3 > 10
"Il est 11h00 et le convoyeur relié sur la sortie I3 est en fonctionnement ET le robot n'est pas en mouvement" => Hour == 11 ET Minute == 00 ET Second == 00 ET I3 == 1 ET RobotEnMouvement == 0