Qualificatifs des actions en SFC
Vous affectez des qualificatifs aux actions IEC associées à une étape. Le qualificatif définit le comportement d'exécution de l'action concernée : de quelle manière, à quel moment et pendant combien de temps elle est exécutée.
Les qualificatifs sont traités par le bloc fonctionnel SFCActionControl de la bibliothèque IecSfc.library. La bibliothèque est automatiquement intégrée au projet dès que CODESYS SFC a été installé.
Pour plus d'informations, voir : Programmation en SFC
| Non mémorisé | L'action est active aussi longtemps que l'étape. |
| Réinitialisation prioritaire | L'action exécutée avec |
| Mise à 1 (mémorisé) | L'action est exécutée dès que l'étape devient active. L'exécution de l'action se poursuit, même après la désactivation de l'étape, jusqu'à sa réinitialisation. |
| Limité dans le temps | L'action est exécutée dès que l'étape devient active. L'action est exécutée jusqu'à la désactivation de l'étape ou jusqu'à l'expiration de la durée indiquée. |
| Retardé dans le temps | L'action est exécutée après l'activation de l'étape si le temps de retard spécifié s'est écoulé et que l'étape est toujours active. L'action est exécutée jusqu'à la désactivation de l'étape. |
| Impulsion | L'action est exécutée exactement deux fois : une fois lorsque l'étape devient active et une seconde fois lorsque l'étape est désactivée. |
| Mémorisé et retardé dans le temps | L'exécution de l'action ne démarre que lorsque le temps de retard spécifié s'est écoulé après l'activation de l'étape. L'action est exécutée jusqu'à sa réinitialisation. |
| Retardé et mémorisé | L'exécution de l'action ne démarre que lorsque le temps de retard spécifié s'est écoulé après l'activation de l'étape et que l'étape est toujours active. L'action est exécutée jusqu'à sa réinitialisation. |
| Mémorisé et limité dans le temps | L'action est exécutée dès que l'étape devient active. Elle est exécutée jusqu'à l'expiration du temps spécifié ou jusqu'à sa réinitialisation. |
Note
Une action avec le qualificatif S, SD, DS ou SL continue de s'exécuter après que l'étape est devenue inactive.
Pour les qualificatifs S, SD et DS, l'action ne se termine que par un appel de réinitialisation de la même action avec le qualificatif R. Ce type d'appel est nécessaire pour que l'action prenne fin.
Pour le qualificatif SL, l'action se termine automatiquement dès que le temps spécifié est écoulé, ou prématurément par un appel avec R.
Vous devez spécifier les temps pour les qualificatifs L, D, SD, DS et SL sous la forme d'une constante TIME.
Pour plus d'informations sur la manière d'appliquer les qualificatifs, voir Exemples de qualificatifs.
Astuce
Lorsqu'une action IEC est désactivée, elle est exécutée une fois de plus. Cela signifie que CODESYS exécute ce type d'action au moins deux fois. Cela s'applique également aux actions avec le qualificatif P.
Exemples de qualificatifs
Cette section contient des exemples d'utilisation des qualificatifs.
Exemple : ventilation des fumées dans une installation de ventilation
Le qualificatif d'une action détermine le moment où l'action démarre et la durée pendant laquelle elle s'exécute. L'exemple présente le même processus dans trois implémentations du diagramme fonctionnel en séquence (SFC). Les implémentations diffèrent par l'utilisation des qualificatifs.
La situation initiale : une installation de ventilation utilise un capteur de fumée pour surveiller l'air. Lorsque le capteur détecte de la fumée, le contrôleur active immédiatement la ventilation des fumées.
POU avec un qualificatif N

Le POU contient la séquence la plus simple. Lorsque le capteur de fumée détecte de la fumée, l'étape avec l'action Ventilate devient active. L'étape appelle l'action avec le qualificatif N. La ventilation des fumées fonctionne tant que le capteur détecte de la fumée.
Créez un POU en SFC et changez son nom en
Simple_N. Pour plus d'informations, voir : Création d'un POU en SFCDans la partie déclaration du POU créé, créez les variables booléennes suivantes :
PROGRAM Simple_N VAR bSmokeDetected: BOOL; bVent: BOOL; END_VARModifiez la transition de l'étape initiale : cliquez sur la transition et utilisez l'Assistant de saisie
pour affecter la variable bSmokeDetected.Après la transition de l'étape initiale, ajoutez une étape nommée
SmokeInSystem.Modifiez la transition de l'étape
SmokeInSystem: cliquez sur la transition et utilisez l'Assistant de saisie
pour affecter la variable bSmokeDetected. AjoutezNOT:NOT bSmokeDetectedDans l'arborescence des périphériques, cliquez avec le bouton droit sur le POU nouvellement créé
Simple_Net sélectionnez la commande Ajouter un objet → Action.... Attribuez le nomVentilateet réglez l'option Texte structuré (ST) pour le langage d'implémentation.Insérez-y le code suivant :
// The alternation simulates the running ventilator. bvent := NOT bvent;
Cliquez sur l'étape
SmokeInSystemet utilisez la commande SFC → Insérer une association d’actions pour ajouter une association d'actions.Le qualificatif N est désormais attribué à l'action associée.
Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie
pour sélectionner l'action Ventilate.Une ventilation des fumées simple a été configurée.
POU avec deux qualificatifs N

Problème : une quantité résiduelle de fumée reste dans l'installation. La ventilation des fumées doit donc fonctionner 5 secondes de plus.
Le POU gère le temps de poursuite au moyen d'une étape supplémentaire. Lorsque le capteur de fumée détecte de la fumée, l'étape avec l'action Ventilate devient active. L'étape appelle l'action avec le qualificatif N.
Lorsque le capteur ne détecte plus de fumée, le contrôleur passe à l'étape NoSmokeMore. La ventilation des fumées continue de fonctionner. La transition qui suit l'étape évalue la variable d'étape implicite avec la condition NoSmokeMore.t > t#5s. Cette variable contient la durée pendant laquelle l'étape a été active.
Après 5 secondes, la condition est remplie et l'étape devient inactive. Cela met également fin à l'exécution de l'action Ventilate.
Créez un POU en SFC et changez son nom en
Advanced_N_N. Pour plus d'informations, voir : Création d'un POU en SFCDans la partie déclaration du POU créé, créez les variables booléennes suivantes :
PROGRAM Advanced_N_N VAR bSmokeDetected: BOOL; bVent: BOOL; END_VARModifiez la transition de l'étape initiale : cliquez sur la transition et utilisez l'Assistant de saisie
pour affecter la variable bSmokeDetected.Après la transition de l'étape initiale, ajoutez une étape nommée
SmokeInSystem.Modifiez la transition de l'étape
SmokeInSystem: cliquez sur la transition et affectez la variablebSmokeDetectedau moyen de l'Assistant de saisie
. Ajoutez NOT:NOT bSmokeDetectedDans l'arborescence des périphériques, cliquez avec le bouton droit sur le POU nouvellement créé
Advanced_N_Net sélectionnez la commande Ajouter un objet → Action.... Attribuez le nomVentilateet réglez l'option Texte structuré (ST) pour le langage d'implémentation.Insérez-y le code suivant :
bvent := NOT bvent;
Cliquez sur l'étape
SmokeInSystemet insérez l'association d'actions via le menu SFC → Insérer une association d’actions.Le qualificatif N est désormais attribué à l'action associée.
Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie
pour sélectionner l'action Ventilate.Ajoutez une étape nommée
NoSmokeMoreaprès la transition de l'étapeSmokeInSystemet ajoutez une transition avec la conditionNoSmokeMore.t > t#5s.Cliquez sur l'étape
NoSmokeMoreet utilisez la commande SFC → Insérer une association d’actions pour ajouter une association d'actions.Le qualificatif N est désormais attribué à l'action associée.
Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie
pour sélectionner l'action Ventilate.La ventilation des fumées s'arrête après
5secondes.
POU avec les qualificatifs S et R

Problème : une quantité résiduelle de fumée reste dans l'installation. La ventilation des fumées doit donc fonctionner 5 secondes de plus.
Ici aussi, le contrôleur active immédiatement la ventilation des fumées. L'étape SmokeInSystem appelle l'action Ventilate avec le qualificatif S. Pendant l'étape NoSmokeMore, la ventilation des fumées continue toutefois de fonctionner, car l'action est mémorisée avec le qualificatif S et ne se termine qu'avec R.
Le POU résout le temps de poursuite au moyen d'une étape supplémentaire NoSmokeMore. Après 5 secondes, la condition est remplie et l'étape devient inactive.
L'étape supplémentaire After_5sec appelle l'action Ventilate avec le qualificatif R. L'étape réinitialise l'action et arrête ainsi la ventilation des fumées après 5 secondes.
Créez un POU en SFC et changez son nom en
Advanced_S_R. Pour plus d'informations, voir : Création d'un POU en SFCDans la partie déclaration du POU créé, créez les variables booléennes suivantes :
PROGRAM Advanced_S_R VAR bSmokeDetected: BOOL; bVent: BOOL; END_VARModifiez la transition de l'étape initiale : cliquez sur la transition et utilisez l'Assistant de saisie
pour affecter la variable bSmokeDetected.Après la transition de l'étape initiale, ajoutez une étape nommée
SmokeInSystem.Modifiez la transition de l'étape
SmokeInSystem: cliquez sur la transition et affectez la variablebSmokeDetectedau moyen de l'Assistant de saisie
. Ajoutez NOT:NOT bSmokeDetectedDans l'arborescence des périphériques, cliquez avec le bouton droit sur le POU nouvellement créé
Advanced_S_Ret sélectionnez la commande Ajouter un objet → Action.... Attribuez le nomVentilateet réglez l'option Texte structuré (ST) pour le langage d'implémentation.Insérez-y le code suivant :
bvent := NOT bvent;
Cliquez sur l'étape
SmokeInSystemet insérez l'association d'actions via le menu SFC → Insérer une association d’actions.Cliquez dans le champ de gauche de l'association et utilisez l'Assistant de saisie
pour sélectionner le qualificatif S.Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie
pour sélectionner l'action Ventilate.Une ventilation des fumées simple a été configurée.
5 secondesAjoutez une étape nommée
NoSmokeMoreaprès la transition de l'étapeSmokeInSystemet ajoutez une transition avec la conditionNoSmokeMore.t > t#5s.Ajoutez une autre étape nommée
After_5secaprès la transition de l'étapeNoSmokeMoreet ajoutez une transition avec la conditionTRUE.Cliquez sur l'étape
After_5secet utilisez la commande SFC → Insérer une association d’actions pour ajouter une association d'actions.Cliquez dans le champ de gauche de l'association et utilisez l'Assistant de saisie
pour sélectionner le qualificatif R.Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie
pour sélectionner l'action Ventilate.La ventilation des fumées s'arrête.