Programmation SFC avancée

Programmation SFC avancée

Vous allez dans cette section utiliser quelques possibilités avancées de l'éditeur SFC: les transitions en LADDER ou en texte structuré, les divergences en OU, les actions en texte structuré avec des qualificateurs variés, les transitions sur temps d'étape écoulé.

Le programme réalisé correspond aux spécifications suivantes: à chaque appui sur le bouton bp1 ou le bouton bp2, un compteur s'incrémente de 1. Lorsque la valeur du compteur atteint 4, le voyant V2 s'allume pendant 3s et le compteur est remis à zéro.

Voici le GRAFCET correspondant::

compteur est une variable de type UINT.

 

Ouvrez le projet pupitre13 et enregistrez-le sous le  nom pupitre14.

Ne supprimez pas votre premier GRAFCET, il vous servira plus loin.

Pour programmer ce nouveau grafcet :

  • Ajoutez une nouvelle section (nommée par exemple SFC_Compteur). Il est possible d'avoir plusieurs grafcet (ou sections dans un autre langage) exécutées « en même temps ». En réalité, les sections sont alors exécutées les unes après les autres pendant le cycle automate (environ 10ms).
  • Créez la structure de votre grafcet en utilisant la divergence en OU et la convergence en OU. Renommez les étapes, par exemple "Etape1"0, "Etape11", "Etape12", "Etape13".

 

 

  • Editez la première réceptivité en LADDER comme sur la figure ci-dessous. Le nom de la section Transition doit respecter les règles de syntaxe des variables (lettres, chiffres, pas d'espace ou de caractères spéciaux, excepté '_'). Choisissez un nom représentatif de la réceptivité puisque c'est ce nom qui apparaîtra sur votre grafcet. Il en sera d'autant plus lisible.

 

  • De la même manière, éditez la deuxième réceptivité en texte structuré (voir figure ci-dessous). La section transition en texte structuré est une condition ou expression booléenne. Son résultat est VRAI ou FAUX. Elle ne doit pas contenir d'affection.

  • De la même manière, éditez les autres transitions en texte structuré:

Lors de la saisie, fermez les fenêtres d'édition des transitions au fur et à mesure.

Remarquez la syntaxe pour une transition sur temps d'étape écoulé. Chaque étape est une structure (une variable composée). Vous pouvez les trouver dans le navigateur de projet, rubrique Variables dérivées. Deux variables nous intéressent : Nom_étape.x qui indique si l'étape est active ou non et Nom_étape.t qui indique la durée écoulée depuis la dernière activation. Cette durée est à 0 lorsque l'étape est inactive et est de type TIME.

 

  • Changez la première étape en étape initiale.
  • Programmez les actions dans la section "Actionneurs", créée précédemment; Les variables à programmer sont V2 et compteur. La voici corrigée:

Vous noterez la présence de la nouvelle variable "Front_Etape11", qu'il faudra créer dans la table des variables élémentaires. Cette variable est de type EBOOL ce qui permet de tester un changement d'état sur sa valeur. Le terme "RE" signifie "front montant". L'action « incrémenter le compteur » ne doit pas être lancée en continu dans la seconde étape. Le compteur serait incrémenté chaque cycle automate (environ 10 ms), tant que le bouton est enfoncé (un utilisateur appuie au minimum 100 ms). Ainsi le compteur sera incrémenté juste au moment de l'activation de l'étape.
 la variable "compteur" est modifiée lors de l'activation des étapes 11 et 13, le reste du temps elle est inchangée.

  • Pour terminer la saisie, ajoutez un commentaire devant chaque étape pour plus de lisibilité.

 Une fois la saisie faite, enregistrez le programme. Compilez, connectez l'automate, transférez le programme. Testez le. Visualisez sur l'écran le GRAFCET, la table d'animation et le pupitre. Quand cela fonctionne, arrêtez l''automate, déconnectez-le, fermez Unity Pro ou bien passez à la suite.

 

Exercice en autonomie

Modifiez votre programme SFC télérupteur pour qu'il n'ait plus que deux étapes (une correspondant à V0 éteint, une correspondant à V3 allumé). Le passage de l'une à l'autre se fait par détection d'un front montant de BP0. Vous écrirez la première réceptivité en LADDER et la seconde en texte structuré.

Le projet se nomme pupitre15.

 

Exercice en autonomie

Modifiez le GRAFCET du compteur pour qu'il compte non plus les appuis sur bp1 ou bp2 mais les activations de l'étape « V0 allumée » du GRAFCET télérupteur.

Le projet se nomme pupitre16.

 

Exercice en autonomie

Supprimez la section du compteur, gardez le télérupteur. Réalisez et testez le programme correspondant aux spécifications suivantes:

Dans l'état initial, les deux lampes V0 et V2 sont éteintes. Lors d'un appui sur BP0, les lampes V0 et V1 s'allument pendant 3s. A la fin de la temporisation, seule la lampe V0 s'éteint. Puis, un appui sur le bouton BP1, on revient à l'état initial.

Le projet se nomme pupitre17.