Skip to main content

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

Tableau 2. Qualificatifs disponibles

N

Non mémorisé

L'action est active aussi longtemps que l'étape.

R

Réinitialisation prioritaire

L'action exécutée avec S, SD, DS ou SL est désactivée et n'est donc plus exécutée.

S

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.

L

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.

D

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.

P

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.

SD

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.

DS

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.

SL

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

_c4_img_sfc-qualifizierer-simple.png

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.

Procédure. Commande de la ventilation des fumées
  1. Créez un POU en SFC et changez son nom en Simple_N. Pour plus d'informations, voir : Création d'un POU en SFC

  2. Dans la partie déclaration du POU créé, créez les variables booléennes suivantes :

    PROGRAM Simple_N
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modifiez la transition de l'étape initiale : cliquez sur la transition et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour affecter la variable bSmokeDetected.

  4. Après la transition de l'étape initiale, ajoutez une étape nommée SmokeInSystem.

  5. Modifiez la transition de l'étape SmokeInSystem : cliquez sur la transition et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour affecter la variable bSmokeDetected. Ajoutez NOT : NOT bSmokeDetected

  6. Dans l'arborescence des périphériques, cliquez avec le bouton droit sur le POU nouvellement créé Simple_N et sélectionnez la commande Ajouter un objet → Action.... Attribuez le nom Ventilate et réglez l'option Texte structuré (ST) pour le langage d'implémentation.

  7. Insérez-y le code suivant :

    // The alternation simulates the running ventilator.  
    bvent := NOT bvent;
  8. Cliquez sur l'étape SmokeInSystem et 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.

  9. Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour sélectionner l'action Ventilate.

    Une ventilation des fumées simple a été configurée.

POU avec deux qualificatifs N

_c4_img_sfc-qualifizierer-advanced_2_N.png

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.

Procédure. Commande de la ventilation des fumées
  1. 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 SFC

  2. Dans la partie déclaration du POU créé, créez les variables booléennes suivantes :

    PROGRAM Advanced_N_N
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modifiez la transition de l'étape initiale : cliquez sur la transition et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour affecter la variable bSmokeDetected.

  4. Après la transition de l'étape initiale, ajoutez une étape nommée SmokeInSystem.

  5. Modifiez la transition de l'étape SmokeInSystem : cliquez sur la transition et affectez la variable bSmokeDetected au moyen de l'Assistant de saisie _cds_icon_button_threedots.png. Ajoutez NOT : NOT bSmokeDetected

  6. Dans l'arborescence des périphériques, cliquez avec le bouton droit sur le POU nouvellement créé Advanced_N_N et sélectionnez la commande Ajouter un objet → Action.... Attribuez le nom Ventilate et réglez l'option Texte structuré (ST) pour le langage d'implémentation.

  7. Insérez-y le code suivant :

    bvent := NOT bvent;
  8. Cliquez sur l'étape SmokeInSystem et 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.

  9. Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour sélectionner l'action Ventilate.

  10. Ajoutez une étape nommée NoSmokeMore après la transition de l'étape SmokeInSystem et ajoutez une transition avec la condition NoSmokeMore.t > t#5s.

  11. Cliquez sur l'étape NoSmokeMore et 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.

  12. Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour sélectionner l'action Ventilate.

    La ventilation des fumées s'arrête après 5 secondes.

POU avec les qualificatifs S et R

_c4_img_sfc-qualifizierer-advanced.png

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.

Procédure. Démarrage de la ventilation des fumées
  1. 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 SFC

  2. Dans la partie déclaration du POU créé, créez les variables booléennes suivantes :

    PROGRAM Advanced_S_R
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modifiez la transition de l'étape initiale : cliquez sur la transition et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour affecter la variable bSmokeDetected.

  4. Après la transition de l'étape initiale, ajoutez une étape nommée SmokeInSystem.

  5. Modifiez la transition de l'étape SmokeInSystem : cliquez sur la transition et affectez la variable bSmokeDetected au moyen de l'Assistant de saisie _cds_icon_button_threedots.png. Ajoutez NOT : NOT bSmokeDetected

  6. Dans l'arborescence des périphériques, cliquez avec le bouton droit sur le POU nouvellement créé Advanced_S_R et sélectionnez la commande Ajouter un objet → Action.... Attribuez le nom Ventilate et réglez l'option Texte structuré (ST) pour le langage d'implémentation.

  7. Insérez-y le code suivant :

    bvent := NOT bvent;
  8. Cliquez sur l'étape SmokeInSystem et insérez l'association d'actions via le menu SFC → Insérer une association d’actions.

  9. Cliquez dans le champ de gauche de l'association et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour sélectionner le qualificatif S.

  10. Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour sélectionner l'action Ventilate.

    Une ventilation des fumées simple a été configurée.

Procédure. Arrêt de la ventilation des fumées après 5 secondes
  1. Ajoutez une étape nommée NoSmokeMore après la transition de l'étape SmokeInSystem et ajoutez une transition avec la condition NoSmokeMore.t > t#5s.

  2. Ajoutez une autre étape nommée After_5sec après la transition de l'étape NoSmokeMore et ajoutez une transition avec la condition TRUE.

  3. Cliquez sur l'étape After_5sec et utilisez la commande SFC → Insérer une association d’actions pour ajouter une association d'actions.

  4. Cliquez dans le champ de gauche de l'association et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour sélectionner le qualificatif R.

  5. Cliquez dans le champ de droite de l'association et utilisez l'Assistant de saisie _cds_icon_button_threedots.png pour sélectionner l'action Ventilate.

    La ventilation des fumées s'arrête.