L’exemple suivant présente le comportement temporel d’un programme SFC, de ses drapeaux d’étapes et de certaines variables booléennes définies directement dans la fenêtre des actions associées et dans les actions ou transitions. L’exemple montre en particulier la fonction des qualificatifs d’actions.
Step1 a été affectée à :
Une variable booléenne bVarStep1_P avec le qualificatif d’action P (impulsion). La variable est TRUE uniquement lors du premier cycle de Step1.
Une variable booléenne bVarStep1_S_R avec le qualificatif d’action S (activation, sauvegardée). La variable est TRUE pendant l’exécution de Step1 et reste TRUE après l’exécution de Step1 jusqu’à ce qu’elle soit explicitement réinitialisée sur FALSE à Step3.
Une variable booléenne bVarStep1_N avec le qualificatif d’action N (non sauvegardée). La variable est TRUE uniquement lors de l’exécution de l’étape.
Un programme d’action Action1 avec le qualificatif d’action N. Le programme est exécuté pendant que Step 1 est active.
Dans cette action :
bVarAction1_N est TRUE ou FALSE en fonction du drapeau d’étape Step1.X qui est TRUE pendant l’exécution de Step1 et FALSE lors du dernier cycle de Step1. Nota : le comportement de bVarAction1_N est différent de celui de bVarStep1_N.
bVarAction1_S est TRUE pendant l’exécution de Step1 et le reste après l’exécution de Step1.
Step2 : aucune action ne lui a été affectée.
Step3 : une variable booléenne bVarStep1_S_R avec le qualificatif d’action R (réinitialisation) lui a été affectée. La variable est réinitialisée lors du premier cycle de l’étape.
Un cycle API |
![]() |
Etapes et transitions |
Actions |
Un drapeau d’étape permet de vérifier qu’une étape a été exécutée pour la dernière fois lorsque la condition de la transition suivante est devenue TRUE. Dans ce cas, la valeur du drapeau d’étape est FALSE.
La variable système sys_bIsFirstScanOfSfcStep permet de vérifier qu’une étape a été exécutée pour la première fois. La variable doit être TRUE.