Guide : GRAFCET et Compteur – Exercices Corrigés
Le GRAFCET (Graphe Fonctionnel de Commande Étape-Transition) est un outil graphique utilisé pour modéliser le fonctionnement des systèmes automatisés. Il permet de décomposer un processus en étapes et transitions, ce qui facilite la conception de systèmes de commande dans l’automatisme industriel.
Le compteur est souvent utilisé dans les systèmes automatisés pour comptabiliser un nombre d’événements avant de déclencher une action (par exemple, compter le nombre de pièces produites avant de changer d’étape).
Dans ce guide, nous présenterons une série d’exercices corrigés utilisant le GRAFCET et des compteurs, pour mieux comprendre leur mise en œuvre dans un processus automatisé.
Rappels sur le GRAFCET
- Étape : Une étape représente un état ou une phase du processus.
- Transition : Une transition est la condition qui permet de passer d’une étape à une autre.
- Action : Une action est une opération réalisée lorsqu’une étape est active.
Exercice 1 : GRAFCET d’un système de tri avec compteur
Contexte :
Un système automatisé doit trier des objets sur un convoyeur. Après avoir détecté 5 objets, le convoyeur doit s’arrêter pour permettre le retrait des objets. Ensuite, il redémarre pour traiter les 5 objets suivants.
Question :
Établissez le GRAFCET correspondant et intégrez un compteur pour gérer l’arrêt du convoyeur après chaque série de 5 objets.
Correction :
Description des étapes :
- Étape 0 : Le convoyeur est à l’arrêt.
- Étape 1 : Le convoyeur fonctionne, les objets sont détectés.
- Étape 2 : Le convoyeur s’arrête après 5 objets détectés.
- Étape 3 : Le convoyeur redémarre après le retrait des objets.
Transitions :
- ( T1 ) : Détection d’un objet.
- ( T2 ) : Le compteur atteint 5 objets.
- ( T3 ) : Retrait des objets effectué.
GRAFCET simplifié :
- Étape 0 : Convoyeur à l’arrêt.
- ( T1 ) : Démarrage du convoyeur (détection d’un objet).
- Étape 1 : Le convoyeur tourne, les objets sont détectés.
- ( T2 ) : Le compteur atteint 5 objets, arrêt du convoyeur.
- Étape 2 : Convoyeur à l’arrêt, objets prêts à être retirés.
- ( T3 ) : Une fois les objets retirés, le convoyeur redémarre.
- Étape 3 : Retour à l’étape 1.
Programmation avec compteur en langage structuré :
IF Start = TRUE THEN
Conveyor := TRUE; // Démarrer le convoyeur
IF ObjectDetected = TRUE THEN
Counter := Counter + 1; // Incrémenter le compteur à chaque objet détecté
END_IF;
END_IF;
IF Counter >= 5 THEN
Conveyor := FALSE; // Arrêter le convoyeur après 5 objets
Counter := 0; // Réinitialiser le compteur
WaitForRemoval := TRUE; // Attendre que les objets soient retirés
END_IF;
IF RemovalDone = TRUE THEN
Conveyor := TRUE; // Redémarrer le convoyeur
WaitForRemoval := FALSE;
END_IF;
Exercice 2 : GRAFCET d’un système d’emballage avec compteur
Contexte :
Un système d’emballage automatique emballe des boîtes. Le système doit compter 10 boîtes avant de lancer une opération d’emballage (fermeture des boîtes). Après emballage, le cycle recommence.
Question :
Établissez le GRAFCET de ce processus d’emballage, avec un compteur pour détecter le moment où 10 boîtes sont prêtes à être emballées.
Correction :
Étapes :
- Étape 0 : Système en attente.
- Étape 1 : Remplissage des boîtes sur la ligne.
- Étape 2 : Emballage des boîtes lorsque 10 boîtes sont prêtes.
Transitions :
- ( T1 ) : Détection d’une boîte sur la ligne.
- ( T2 ) : 10 boîtes détectées, déclenchement de l’emballage.
- ( T3 ) : Emballage terminé, le système recommence.
GRAFCET simplifié :
- Étape 0 : Attente de démarrage.
- ( T1 ) : Une boîte est détectée.
- Étape 1 : Le convoyeur avance, les boîtes sont détectées.
- ( T2 ) : Le compteur atteint 10 boîtes.
- Étape 2 : Emballage des boîtes.
- ( T3 ) : Emballage terminé, retour à l’étape 1.
Programmation en langage structuré :
IF Start = TRUE THEN
Conveyor := TRUE; // Convoyeur actif
IF BoxDetected = TRUE THEN
Counter := Counter + 1; // Incrémenter le compteur à chaque boîte
END_IF;
END_IF;
IF Counter >= 10 THEN
Conveyor := FALSE; // Arrêter le convoyeur
StartPackaging := TRUE; // Démarrer l'emballage
Counter := 0; // Réinitialiser le compteur après 10 boîtes
END_IF;
IF PackagingDone = TRUE THEN
Conveyor := TRUE; // Redémarrer le convoyeur après l'emballage
StartPackaging := FALSE;
END_IF;
Exercice 3 : GRAFCET d’une machine de production avec compteur et reset
Contexte :
Une machine de production doit produire 15 pièces avant de marquer une pause pour vérification des pièces. Après vérification manuelle, le compteur est remis à zéro et la machine recommence la production.
Question :
Réalisez le GRAFCET du système avec un compteur qui arrête la machine après 15 pièces, et incluez un bouton de remise à zéro du compteur.
Correction :
Étapes :
- Étape 0 : Machine à l’arrêt, en attente de démarrage.
- Étape 1 : Machine en production, comptage des pièces.
- Étape 2 : Arrêt après production de 15 pièces, attente de vérification.
- Étape 3 : Remise à zéro du compteur et redémarrage de la production.
Transitions :
- ( T1 ) : Démarrage de la machine.
- ( T2 ) : Le compteur atteint 15 pièces.
- ( T3 ) : Vérification terminée, remise à zéro du compteur.
GRAFCET simplifié :
- Étape 0 : Machine à l’arrêt.
- ( T1 ) : Démarrage de la production.
- Étape 1 : Production en cours, les pièces sont comptées.
- ( T2 ) : Le compteur atteint 15 pièces.
- Étape 2 : Machine arrêtée pour vérification.
- ( T3 ) : Remise à zéro du compteur et redémarrage.
Programmation en langage structuré :
IF StartProduction = TRUE THEN
Machine := TRUE; // Démarrer la machine
IF PieceProduced = TRUE THEN
Counter := Counter + 1; // Incrémenter le compteur à chaque pièce produite
END_IF;
END_IF;
IF Counter >= 15 THEN
Machine := FALSE; // Arrêter la machine après 15 pièces
WaitForCheck := TRUE; // Attente de vérification manuelle
END_IF;
IF CheckDone = TRUE THEN
Counter := 0; // Remise à zéro du compteur
Machine := TRUE; // Recommencer la production
WaitForCheck := FALSE;
END_IF;
Exercice 4 : GRAFCET d’un distributeur de boissons avec compteur
Contexte :
Un distributeur de boissons doit servir 3 boissons avant de faire une pause pour réapprovisionnement. Après chaque série de 3 boissons servies, une alarme s’active pour indiquer qu’il est nécessaire de vérifier et réapprovisionner la machine.
Question :
Créez un GRAFCET et un programme en langage structuré pour gérer cette séquence avec un compteur de boissons servies.
Correction :
Étapes :
- Étape 0 : Le distributeur est en attente, prêt à recevoir une commande de boisson.
- Étape 1 : Le distributeur sert une boisson.
- Étape 2 : Lorsque 3 boissons sont servies, le distributeur se met en pause pour réapprovisionnement.
- Étape 3 : Après réapprovisionnement, le distributeur se remet en service.
Transitions :
- ( T1 ) : Commande de boisson reçue.
- ( T2 ) : 3 boissons servies, le compteur est atteint.
- ( T3 ) : Réapprovisionnement terminé, remise à zéro du compteur.
GRAFCET simplifié :
- Étape 0 : Le distributeur est en attente de commande.
- ( T1 ) : Une commande de boisson est reçue, passer à l’étape de service.
- Étape 1 : Le distributeur sert une boisson.
- ( T2 ) : Le compteur atteint 3 boissons, passer à l’étape de pause pour réapprovisionnement.
- Étape 2 : Le distributeur est en pause, alarme de réapprovisionnement activée.
- ( T3 ) : Une fois réapprovisionné, remise à zéro du compteur et redémarrage du distributeur.
- Étape 3 : Le distributeur retourne à l’étape 0 pour recommencer.
Programmation en langage structuré :
// Étape 0 : Attente de commande
IF Start = TRUE THEN
WaitingForOrder := TRUE; // Le distributeur est prêt à recevoir une commande
END_IF;
// Étape 1 : Service de boissons
IF OrderReceived = TRUE AND WaitingForOrder = TRUE THEN
ServeDrink := TRUE; // Servir la boisson
Counter := Counter + 1; // Incrémenter le compteur après chaque boisson servie
WaitingForOrder := FALSE;
END_IF;
// Transition vers l’étape 2 : Arrêt du distributeur après 3 boissons
IF Counter >= 3 THEN
ServeDrink := FALSE; // Arrêter le service de boissons
Alarm := TRUE; // Activer l’alarme de réapprovisionnement
WaitingForRefill := TRUE; // Passer à l'état de réapprovisionnement
END_IF;
// Étape 3 : Réapprovisionnement
IF RefillDone = TRUE THEN
Counter := 0; // Remettre le compteur à zéro
Alarm := FALSE; // Désactiver l'alarme
WaitingForRefill := FALSE;
WaitingForOrder := TRUE; // Le distributeur est prêt à recommencer
END_IF;
Exercice 5 : GRAFCET d’un système de contrôle de température avec compteur
Contexte :
Un système doit contrôler la température dans une salle. Si la température dépasse 25°C pendant 3 cycles de vérification consécutifs, un ventilateur doit être activé pour refroidir la salle. Le ventilateur doit s’arrêter lorsque la température descend en dessous de 22°C.
Question :
Créez le GRAFCET et un programme en langage structuré pour contrôler le ventilateur avec un compteur qui s’active après 3 dépassements consécutifs de température.
Correction :
Étapes :
- Étape 0 : Surveillance de la température.
- Étape 1 : Le système compte les dépassements de température.
- Étape 2 : Activation du ventilateur après 3 dépassements consécutifs.
- Étape 3 : Arrêt du ventilateur lorsque la température est en dessous de 22°C.
Transitions :
- ( T1 ) : La température dépasse 25°C.
- ( T2 ) : Le compteur atteint 3 dépassements.
- ( T3 ) : La température descend en dessous de 22°C.
GRAFCET simplifié :
- Étape 0 : Surveillance de la température ambiante.
- ( T1 ) : Si la température dépasse 25°C, compter les dépassements.
- Étape 1 : Incrémenter le compteur à chaque dépassement de température.
- ( T2 ) : Lorsque le compteur atteint 3, activer le ventilateur.
- Étape 2 : Ventilation activée.
- ( T3 ) : Lorsque la température descend en dessous de 22°C, arrêter le ventilateur.
Programmation en langage structuré :
// Étape 0 : Surveillance de la température
IF Temp > 25 THEN
TempHigh := TRUE; // Température supérieure à 25°C
Counter := Counter + 1; // Incrémenter le compteur à chaque dépassement
END_IF;
// Étape 1 : Compter les dépassements consécutifs
IF Counter >= 3 THEN
Fan := TRUE; // Activer le ventilateur après 3 dépassements
END_IF;
// Étape 2 : Ventilation active
IF Temp < 22 THEN
Fan := FALSE; // Désactiver le ventilateur si la température est en dessous de 22°C
Counter := 0; // Réinitialiser le compteur
END_IF;
Ces exercices corrigés offrent une vue pratique de l’utilisation du GRAFCET et des compteurs dans les systèmes automatisés. En automatisant des processus avec des compteurs, vous pouvez contrôler des machines ou des équipements en fonction d’événements comptabilisés, garantissant ainsi une plus grande précision dans l’exécution des tâches industrielles. Les exemples abordés couvrent une gamme variée d’applications industrielles, du contrôle des températures à la gestion de la production.