liens vers les fichiers originaux

Lien vers le fichier doc :

Organigramme et langage ST :

Le grafcet

Présentation

Le Grafcet (Graphe Fonctionnel de Commande des Étapes et Transitions) est un mode de représentation et d'analyse d'un automatisme, particulièrement bien adapté aux systèmes à évolution séquentielle, c'est-à-dire décomposable en étapes.

Le Grafcet est donc un langage graphique représentant le fonctionnement d'un automatisme par un ensemble :

  • d'étapes auxquelles sont associées des actions ;
  • de transitions entre étapes auxquelles sont associées des conditions de transition (réceptivités) ;
  • des liaisons orientées entre les étapes et les transitions.

Représentation

Séquence multiple

Equations d’un Grafcet

Nous allons voir comment programmer un GRAFCET sur un système qui ne dispose pas du langage SFC (Sequential Function Chart).

Règle d’évolution d’un Grafcet

  • Pour activer l’étape n il faut que l’étape n-1 soit active et que la transition soit vrai.
  • L’étape n une fois active désactive l’étape n-1

Si on traduit cela en équation logique, cela donne pour l’étape X3

On SET l’étape X3 si X2 est active et que la condition C2 est vrai. On RESET X3 quand X4 est actif

On peut également traiter l’équation de X3 comme cela

X3 est activé si X2 et C2 sont actifs. Il reste à l’état haut après disparition de C2 grâce à son ’auto alimentation. Il est remis à l’état bas par X4.

Pour illustrer tout cela, nous allons prendre un exemple et le programmer sous CodeSys.

Description du cycle de fonctionnement : Une action sur le BP DCY active le déplacement vers la droite du wagonnet. Arrivé en position droite le wagonnet repart vers la gauche jusqu’à la position gauche

Configure le système avec un API 750_841, une carte d’entrée 750_430 et une de sortie 750_530 puis renomme les entrées sorties en fonction de l’application:

Crée un nouveau module en LD, on peut l’appeler Wagonnet

Dans le module Wagonnet, tu peux programmer ton Grafcet. Pense à déclarer les variables X0, X1 et X2 en variable globale afin de les utiliser dans un autre module. Il faut aussi que le programme principal PLC_PRG appelle le programme Wagonnet pour l’autoriser à fonctionner.

Tu remarqueras que nous avons placé des commentaires dans le programme afin de le rendre plus lisible.

A ce stade, tu peux tester que les transitions fonctionnent correctement. Compile ton programme et teste-le en mode simulation. Rien ne fonctionne, c’est normal car l’étape initiale n’est pas active

Pour l’activer, double clic sur XO

Puis -> En ligne -> Ecrire valeurs des variables (ou CTRL F7)

Tu peux maintenant tester que tout ce passe correctement, pour activer les entrées ouvre la configuration de l’automate.

Active successivement DCY , S_ Droite puis S_Gauche et observe l’évolution de ton Grafcet. Tu peux également créer un écran de visualisation pour observer tout cela.

Nous allons maintenant gérer l’initialisation de l’étape initiale. Pour cela il faut créer un nouveau module que nous avons nommé Initialisation et programmé avec :

Réalise les tests pour valider le fonctionnement

Gestion des actions

Il nous reste maintenant à réaliser les actions. Pour cela nous allons créer un nouveau module (Sorties) dans lequel nous allons programmer les équations pilotant les sorties. Dans notre application, M_Avant est actif à l’étape 1 et M_Arriere à l’étape 2.

Programme le module Sortie et réalise les tests de validation.

 On peut maintenant compléter la commande des sorties. Par exemple, il est possible d’intégrer un verrouillage logiciel interdisant la marche arrière si la marche avant est active, intégrer une commande de défaut, autoriser un fonctionnement manuel etc…

Gestion des temporisations

Dans allons modifier notre programme afin que le wagonnet attende 3s en position droite avant d’effectuer son retour. Voici le nouveau Grafcet

Nous allons gérer la temporisation comme une action. Tu peux créer un nouveau module ou tu rangeras les temporisations. On peut le nommer Temporisations. La temporisation 1 est validée par l’étape 3

Nous avons crée une variable Global Fin_Tempo1 que nous pourrons tester dans le Grafcet.

Modifie le programme et test le nouveau fonctionnement.

Séquence multiple

Nous allons modifier le Grafcet afin de proposer à l’opérateur deux modes de fonctionnement :

  • Si la variable Fin_Cycle = 1 alors on arrête le cycle au prochain passage sur le capteur gauche.
  • Si la variable Fin_Cycle = 0 alors on effectue le cycle en continu.

Nous sommes en présence d’un choix : Cycle continu OU arrêt en fin de cycle. Pour gérer ce choix, on utilise une divergence en OU en amont de l’étape 4. Pour éviter les dysfonctionnements il faut s’assurer que les équations d’une divergence en OU ne puissent jamais être à l’état haut simultanément.

Nous allons maintenant modifier le programme afin d’intégrer cette modification. On remarque que l’étape 2 est activée par\\ X1 ET DCY OU X4 ET PAS Fin_Cycle ET S_Gauche
Et que X2 désactive X1 et X4

Modifie le programme et réalise les tests de validation.

Objectif Programmer un Grafcet en LD
Cahier des charges: Commande de Wagonnet. L’opérateur dispose de deux cycles de fonctionnement sélectionnable par l’entrée Cycle.
  • Si Cycle = 1 : une impulsion sur DCY déplace le wagonnet de 5 s vers la droite, s’immobilise 3 s et retourne en position gauche.
  • Si Cycle = 0 : une impulsion sur DCY déplace le wagonnet jusqu’à la position droite, s’immobilise 3s et retourne à la position gauche.
Résultats Rédaction du Grafcet

Programmation en LD sous CodeSys Test de validation

Programmation en SFC

La programmation de Grafcet en LD est un peu fastidieuse mais il faut la maitriser car certain automate ne supporte pas le langage SFC. Nous allons maintenant aborder la programmation SFC

Charger la bibliothèque IECSFC

Charge la bibliothèque Iecsfc.lib contenue dans T:\S2I\STS Electrotechnique\Documents Constructeurs\Automates programmables\Wago\Libraries\IO_IPC_P

 Voir procédure dans Temporisations et compteurs

Programmation du Grafcet

  • Crée un nouveau module en SFC
  • Sélectionne Action CEI
  • Tu peux saisir le Grafcet : Sélectionne l’étape Init
  • Puis clique 3 fois sur « Etape transition derrière » afin d’insérer 3 nouvelles étapes.
  • Tu peux renommer les étapes pour plus de clarté.
  • Pour créer la divergence en OU, sélectionne une transition (Trans0 dans notre cas) puis clique sur Séquence alternative droite
  • Pour créer le renvoi, sélectionne saut et modifie les étiquettes (Init et Avancer dans notre cas)
  • Pour saisir les transitions, sélectionne la transition et saisie l’équation logique en utilisant les opérateurs Booléens (AND, OR et NOT). Dans l’ordre, il faut saisir :
    • DCY AND S_Gauche
    • S_Droite
    • Attendre.t > t#3s : ici le nom de l’étape est « Attendre », Attendre.t permet de tester le temps de l’étape.
    • S_Gauche AND Fin_Cycle
    • S_Gauche AND NOT Fin_Cyle
  • On peut également saisir les transitions par un double clique sur la transition puis saisir l’équation dans le langage de son choix.
  • Pour les actions, déclare une variable BOOL Globale par étape (par exemple W1, W2…. Pour étape 1 du programme Wagon).
  • Saisis les actions dans le Grafcet

Tu peux modifier le type d’action :

  • N : Action non mémorisé. L’action est activée lorsque l’étape est active
  • S : Action mémorisé, mise à 1
  • R : Action mémorisé, mise à 0
  • L : Action limitée dans le temps
  • D : Action retardée.
  • Il te reste à appeler le programme Wagonnet à partir du programme principal
  • Tu peux compiler et tester la bonne évolution du Grafcet.
  • Pour la gestion des sorties, il faut procéder comme précédemment. Création d’un nouveau module en LD et programmation des équations avec toutes les sécurités qui vont bien.

Objectif Programmer un Grafcet en LD
Cahier des charges: Commande de Wagonnet. L’opérateur dispose de deux cycles de fonctionnement sélectionnable par l’entrée Cycle.
  • Si Cycle = 1 : une impulsion sur DCY déplace le wagonnet de 5 s vers la droite, s’immobilise 3 s et retourne en position gauche.
  • Si Cycle = 0 : une impulsion sur DCY déplace le wagonnet jusqu’à la position droite, s’immobilise 3s et retourne à la position gauche.
Résultats Rédaction du Grafcet

Programmation en LD sous CodeSys

Test de validation

Animation autour du grafcet

Vidéo

Comment faire un grafcet _ cours bien détaillé
https://youtu.be/4XxpQPFNz6E
Lycée Jean Monnet

1, place De Lattre de Tassigny
Vétraz-Monthoux BP241
74106 ANNEMASSE Cedex
mail
Téléphone : +33 (0)4.50.87.18.36


Pronote

RSS du site flux RSS des Sciences Appliquées