Grafcet ascenseur : cours détaillé, méthode et exercices corrigés
Le Grafcet d’un ascenseur est l’un des meilleurs exemples pour comprendre la logique séquentielle en automatisme. Il oblige à raisonner avec précision : une cabine attend, reçoit un appel, choisit un sens de déplacement, vérifie les sécurités, se déplace, s’arrête au bon étage, ouvre les portes, temporise, puis revient en attente.
Ce sujet est particulièrement utile pour les élèves en électrotechnique, maintenance industrielle, automatisme, BTS industriel, bac professionnel MELEC, MSPC, CIRA ou toute formation liée aux automates programmables. Il permet de passer d’un fonctionnement concret à une représentation logique exploitable dans un programme automate.
Qu’est-ce qu’un Grafcet appliqué à un ascenseur ?
Un Grafcet est une représentation graphique d’un automatisme séquentiel. Il décrit les différentes phases d’un système sous forme d’étapes, de transitions et d’actions.
Dans le cas d’un ascenseur, chaque étape correspond à un état précis :
| Étape | Signification |
|---|---|
| Attente | La cabine reste immobile |
| Appel | Un utilisateur demande un étage |
| Vérification | Le système contrôle les sécurités |
| Montée | Le moteur entraîne la cabine vers le haut |
| Descente | Le moteur entraîne la cabine vers le bas |
| Arrêt | La cabine atteint l’étage demandé |
| Ouverture porte | La porte s’ouvre automatiquement |
| Temporisation | La porte reste ouverte quelques secondes |
| Fermeture porte | La porte se referme |
| Retour attente | Le cycle recommence |
L’intérêt du Grafcet est de rendre visible la logique complète du système. Au lieu d’écrire directement un programme complexe, on construit d’abord une méthode claire, étape par étape.
Principe de fonctionnement d’un ascenseur automatisé
Un ascenseur fonctionne selon une logique simple en apparence, mais exige une organisation rigoureuse.
Le système doit répondre à plusieurs questions :
- Où se trouve la cabine ?
- Quel étage est demandé ?
- Faut-il monter ou descendre ?
- La porte est-elle fermée ?
- Existe-t-il un obstacle ?
- Le capteur de l’étage demandé est-il atteint ?
- La cabine peut-elle repartir ?
Chaque réponse devient une condition dans le Grafcet.
Exemple :
Si l’utilisateur appuie sur le bouton étage 2
ET si la cabine est au rez-de-chaussée
ET si la porte est fermée
ALORS le moteur de montée peut être activé.
Ce raisonnement prépare directement le passage vers un automate programmable industriel.
Les entrées et sorties d’un ascenseur
Avant de construire un Grafcet, il faut toujours identifier les entrées et les sorties.
Entrées du système
Les entrées sont les informations reçues par l’automate.
| Symbole | Désignation | Rôle |
|---|---|---|
| BP0 | Bouton appel RDC | Demande d’aller au rez-de-chaussée |
| BP1 | Bouton appel étage 1 | Demande d’aller à l’étage 1 |
| BP2 | Bouton appel étage 2 | Demande d’aller à l’étage 2 |
| FC0 | Fin de course RDC | Détecte la cabine au RDC |
| FC1 | Fin de course étage 1 | Détecte la cabine à l’étage 1 |
| FC2 | Fin de course étage 2 | Détecte la cabine à l’étage 2 |
| PF | Porte fermée | Autorise le déplacement |
| PO | Porte ouverte | Confirme l’ouverture |
| OB | Obstacle | Détecte une présence dans la porte |
| SUR | Surcharge | Empêche le déplacement en cas de surcharge |
Sorties du système
Les sorties sont les commandes envoyées par l’automate.
| Symbole | Désignation | Rôle |
|---|---|---|
| KM | Moteur montée | Déplace la cabine vers le haut |
| KD | Moteur descente | Déplace la cabine vers le bas |
| OUV | Ouverture porte | Commande l’ouverture |
| FER | Fermeture porte | Commande la fermeture |
| AL | Alarme | Signale un défaut |
| VOY | Voyant appel | Confirme la demande utilisateur |
Grafcet simple d’un ascenseur à deux niveaux
Prenons un ascenseur qui dessert uniquement :
- le rez-de-chaussée ;
- l’étage 1.
Situation initiale
La cabine est au RDC. La porte est fermée. Le système attend une demande.
Séquence attendue
- L’utilisateur appuie sur BP1.
- La porte reste fermée.
- Le moteur montée démarre.
- La cabine atteint l’étage 1.
- Le moteur s’arrête.
- La porte s’ouvre.
- Une temporisation se lance.
- La porte se referme.
- Le système revient en attente.
Représentation textuelle
Étape 0 : Attente au RDC
Transition : BP1 = 1 ET PF = 1
Étape 1 : Montée cabine
Action : KM = 1
Transition : FC1 = 1
Étape 2 : Arrêt à l’étage 1
Action : KM = 0
Transition : automatique
Étape 3 : Ouverture porte
Action : OUV = 1
Transition : PO = 1
Étape 4 : Temporisation porte ouverte
Action : T = 5 s
Transition : T écoulée
Étape 5 : Fermeture porte
Action : FER = 1
Transition : PF = 1
Retour Étape 0
Ce premier Grafcet montre la logique minimale. Il reste volontairement simple pour bien distinguer les étapes.
Grafcet d’un ascenseur à trois étages
Un ascenseur à trois niveaux introduit une difficulté supplémentaire : le système doit choisir entre montée et descente.
Niveaux desservis
- Niveau 0 : RDC
- Niveau 1 : premier étage
- Niveau 2 : deuxième étage
Principe de décision
La décision dépend de la position actuelle et de l’étage demandé.
| Position cabine | Étage demandé | Action |
|---|---|---|
| Niveau 0 | Niveau 1 | Monter |
| Niveau 0 | Niveau 2 | Monter |
| Niveau 1 | Niveau 0 | Descendre |
| Niveau 1 | Niveau 2 | Monter |
| Niveau 2 | Niveau 0 | Descendre |
| Niveau 2 | Niveau 1 | Descendre |
Le Grafcet peut donc intégrer une étape de choix de direction.
Méthode de construction du Grafcet d’ascenseur
Pour réussir un exercice de Grafcet, il faut éviter de commencer directement par le schéma. La bonne méthode consiste à préparer le fonctionnement.
Étape 1 : définir l’état initial
L’état initial doit être clair.
Exemple :
Cabine au RDC
Porte fermée
Aucun appel actif
Moteur arrêté
Étape 2 : lister les demandes possibles
Pour un ascenseur à trois étages :
BP0 : demande RDC
BP1 : demande étage 1
BP2 : demande étage 2
Étape 3 : identifier les capteurs de position
FC0 : cabine au RDC
FC1 : cabine étage 1
FC2 : cabine étage 2
Étape 4 : ajouter les sécurités
Un ascenseur doit vérifier :
Porte fermée
Aucun obstacle
Aucune surcharge
Étape 5 : écrire les transitions
Les transitions doivent être précises.
Exemple :
BP2 ET FC0 ET PF ET NON OB ET NON SUR
Cette condition signifie :
Demande étage 2
Cabine au RDC
Porte fermée
Aucun obstacle
Aucune surcharge
Étape 6 : associer les actions
Chaque étape active une ou plusieurs sorties.
Exemple :
Étape montée : KM = 1
Étape descente : KD = 1
Étape ouverture : OUV = 1
Étape fermeture : FER = 1
Gestion des sécurités dans un Grafcet d’ascenseur
La sécurité constitue une partie majeure du Grafcet.
Un ascenseur doit éviter :
- le démarrage porte ouverte ;
- le déplacement avec obstacle ;
- le déplacement en cas de surcharge ;
- l’activation simultanée montée et descente ;
- l’arrêt imprécis entre deux étages.
Condition générale de déplacement
Déplacement autorisé = PF ET NON OB ET NON SUR
Cela signifie que le moteur peut être commandé uniquement si :
- la porte est fermée ;
- aucun obstacle est détecté ;
- la cabine n’est pas en surcharge.
Interverrouillage montée / descente
Le moteur de montée et le moteur de descente ne doivent jamais être actifs ensemble.
KM = 1 uniquement si KD = 0
KD = 1 uniquement si KM = 0
Cette règle protège le système mécanique et évite les ordres contradictoires.
Illustration du Grafcet d’un ascenseur automatisé
Cette illustration résume le cycle logique d’un ascenseur : appel utilisateur, vérification des sécurités, déplacement de la cabine, arrêt à l’étage, ouverture des portes, temporisation et retour en attente.
Vue simplifiée de l’ascenseur
Séquence Grafcet simplifiée
KM = 1
KD = 1
Conditions de sécurité intégrées au Grafcet
La porte est fermée avant tout déplacement.
Aucun obstacle détecté au niveau de la porte.
Aucune surcharge cabine avant le démarrage.
Montée et descente jamais activées ensemble.
Exercice corrigé 1 : Grafcet ascenseur deux étages
Énoncé
Un ascenseur dessert le RDC et le premier étage. Il est initialement au RDC, porte fermée. Lorsqu’un utilisateur appuie sur le bouton BP1, l’ascenseur monte jusqu’à l’étage 1, s’arrête, ouvre la porte pendant 5 secondes, puis referme la porte.
Réaliser le Grafcet.
Correction
Étape initiale
E0 : attente au RDC
Action :
Moteur arrêté
Porte fermée
Transition :
BP1 ET PF
Étape de montée
E1 : montée vers étage 1
Action :
KM = 1
Transition :
FC1
Étape d’arrêt
E2 : arrêt à l’étage 1
Action :
KM = 0
Transition :
1
Étape ouverture
E3 : ouverture porte
Action :
OUV = 1
Transition :
PO
Étape temporisation
E4 : porte ouverte pendant 5 secondes
Action :
T1 = 5 s
Transition :
T1 écoulée
Étape fermeture
E5 : fermeture porte
Action :
FER = 1
Transition :
PF
Retour à l’étape initiale.
Exercice corrigé 2 : ascenseur trois étages avec montée et descente
Énoncé
Un ascenseur dessert trois niveaux : 0, 1 et 2. Il doit monter ou descendre selon l’étage demandé. Les portes doivent rester fermées pendant le déplacement. L’ouverture se fait automatiquement à l’arrivée.
Élaborer la logique du Grafcet.
Correction
Le Grafcet doit d’abord comparer :
Position cabine
Étage demandé
Cas de montée
La montée est commandée si l’étage demandé est supérieur à la position actuelle.
Exemples :
FC0 ET BP1
FC0 ET BP2
FC1 ET BP2
Action :
KM = 1
Transition d’arrêt :
FC étage demandé
Cas de descente
La descente est commandée si l’étage demandé est inférieur à la position actuelle.
Exemples :
FC2 ET BP1
FC2 ET BP0
FC1 ET BP0
Action :
KD = 1
Transition d’arrêt :
FC étage demandé
Séquence après arrivée
Une fois l’étage atteint :
Arrêt moteur
Ouverture porte
Temporisation
Fermeture porte
Retour attente
Exercice corrigé 3 : ajout d’un obstacle porte
Énoncé
On ajoute un capteur obstacle OB. Si un obstacle est détecté pendant la fermeture, la porte doit se rouvrir.
Correction
Pendant l’étape de fermeture :
FER = 1
Deux transitions sont possibles :
Si PF = 1 : fermeture terminée
Si OB = 1 : retour ouverture porte
Grafcet logique
E5 : fermeture porte
Transition 1 : PF → retour attente
Transition 2 : OB → ouverture porte
Cette correction améliore le réalisme du Grafcet. Elle correspond à une logique de sécurité courante sur les portes automatiques.
Exercice corrigé 4 : ascenseur avec surcharge
Énoncé
Un capteur SUR détecte la surcharge. Si la surcharge est active, l’ascenseur doit rester immobile et déclencher une alarme.
Correction
Avant chaque déplacement, on ajoute :
NON SUR
La transition devient :
Appel ET PF ET NON OB ET NON SUR
Si la surcharge est détectée :
SUR = 1
Action :
AL = 1
Moteur bloqué
Le Grafcet peut donc ajouter une étape défaut :
E Défaut : surcharge détectée
Action : alarme active
Transition : NON SUR
Retour attente
Exercice corrigé 5 : appel mémorisé
Énoncé
Un utilisateur appuie sur BP2 alors que la cabine se trouve au RDC. Pendant la montée, un autre utilisateur appuie sur BP1. Le système doit s’arrêter à l’étage 1 avant de continuer vers l’étage 2.
Correction
Il faut mémoriser les appels :
M0 : demande RDC
M1 : demande étage 1
M2 : demande étage 2
Lorsqu’un bouton est appuyé :
BP1 → M1 = 1
BP2 → M2 = 1
Lorsque l’étage est servi :
FC1 ET porte ouverte → M1 = 0
FC2 ET porte ouverte → M2 = 0
La montée devient priorisée :
Si montée active ET M1 = 1 ET FC1 = 1
Alors arrêt étage 1
Puis reprise montée si M2 = 1
Cet exercice prépare aux systèmes d’ascenseurs plus réalistes, où plusieurs appels doivent être traités sans perdre les demandes.
Illustrations des Exercices Corrigés — Grafcet Ascenseur
Ces schémas illustrent les principaux exercices de Grafcet appliqués aux ascenseurs : déplacement simple, gestion multi-étages, sécurités, obstacle porte, surcharge et mémorisation des appels.
Exercice 1 — Ascenseur à Deux Étages
E0
Exercice 2 — Ascenseur à Trois Étages
Cabine au niveau 0
Arrêt intermédiaire
Destination finale
Exercice 3 — Gestion de l’Obstacle Porte
Obstacle détecté
Exercice 4 — Gestion de la Surcharge
Surcharge détectée
Déplacement interdit
Signal de sécurité
Exercice 5 — Mémorisation des Appels
Appel mémorisé étage 1
Appel mémorisé étage 2
Le système optimise les déplacements
Tableau de synthèse des transitions
| Situation | Transition logique | Étape suivante |
|---|---|---|
| Appel étage 1 depuis RDC | BP1 ET FC0 ET PF | Montée |
| Arrivée étage 1 | FC1 | Arrêt |
| Porte ouverte | PO | Temporisation |
| Temporisation terminée | T1 | Fermeture |
| Porte fermée | PF | Attente |
| Obstacle fermeture | OB | Réouverture |
| Surcharge | SUR | Défaut |
| Surcharge supprimée | NON SUR | Attente |
Tableau des erreurs fréquentes
| Erreur | Pourquoi c’est problématique | Correction |
|---|---|---|
| Oublier PF dans la transition | Le moteur peut démarrer porte ouverte | Ajouter PF avant déplacement |
| Commander KM et KD ensemble | Ordre contradictoire | Ajouter interverrouillage |
| Oublier la temporisation | Porte trop rapide | Ajouter T = 5 s |
| Oublier les capteurs d’étage | Arrêt imprécis | Ajouter FC0, FC1, FC2 |
| Oublier l’obstacle | Fermeture dangereuse | Retour ouverture si OB |
| Oublier la surcharge | Déplacement non sécurisé | Ajouter étape défaut |
Comment transformer le Grafcet en programme automate ?
Une fois le Grafcet validé, il peut être traduit dans un automate programmable.
En Ladder
Chaque étape devient souvent une mémoire interne.
Exemple :
E1 = étape montée
E2 = étape arrêt
E3 = étape ouverture
La sortie moteur montée devient :
KM = E1
La transition devient une condition de changement d’étape :
E1 ET FC1 → activation E2
En langage structuré
On peut écrire une logique de type :
SI E1 = 1 ET FC1 = 1 ALORS
E1 = 0
E2 = 1
FIN_SI
En SFC
Le langage SFC est très proche du Grafcet. Il permet de représenter directement les étapes et transitions dans certains logiciels d’automatisme.
Cas pratique complet : ascenseur trois étages sécurisé
Cahier des charges
L’ascenseur dessert trois niveaux. Il doit :
- mémoriser les appels ;
- monter ou descendre selon la demande ;
- empêcher tout déplacement porte ouverte ;
- bloquer le mouvement en cas de surcharge ;
- rouvrir la porte si un obstacle apparaît ;
- ouvrir la porte à l’arrivée ;
- refermer après 5 secondes.
Solution logique résumée
E0 : attente
Transition : demande présente ET PF ET NON SUR
E1 : choix direction
Transition montée : étage demandé > étage actuel
Transition descente : étage demandé < étage actuel
E2 : montée
Action : KM = 1
Transition : étage demandé atteint
E3 : descente
Action : KD = 1
Transition : étage demandé atteint
E4 : arrêt moteur
Action : KM = 0, KD = 0
E5 : ouverture porte
Action : OUV = 1
Transition : PO
E6 : temporisation 5 s
Action : T = 5 s
Transition : T écoulée ET NON OB
E7 : fermeture porte
Action : FER = 1
Transition PF : retour attente
Transition OB : retour ouverture
Transition SUR : défaut
E8 : défaut surcharge
Action : AL = 1
Transition : NON SUR
Retour attente
Pourquoi ce sujet est important en automatisme ?
Le Grafcet ascenseur permet d’apprendre plusieurs compétences techniques :
- lire un cahier des charges ;
- identifier les entrées et sorties ;
- organiser une séquence ;
- gérer les sécurités ;
- créer des transitions propres ;
- prévoir les défauts ;
- préparer un programme automate.
C’est un exercice complet, car il combine mécanique, électricité, logique de commande et sécurité.
Annexe technique — Codes de programmation pour Grafcet ascenseur
Cette annexe présente des exemples de programmation associés au Grafcet d’un ascenseur : logique booléenne, langage Ladder textuel, pseudo-code automate et langage structuré.
1. Variables utilisées
BP0 : bouton appel RDC
BP1 : bouton appel étage 1
BP2 : bouton appel étage 2
FC0 : capteur cabine RDC
FC1 : capteur cabine étage 1
FC2 : capteur cabine étage 2
PF : porte fermée
PO : porte ouverte
OB : obstacle porte
SUR : surcharge cabine
KM : moteur montée
KD : moteur descente
OUV : ouverture porte
FER : fermeture porte
AL : alarme2. Conditions de sécurité
SECURITE_OK =
PF = 1
ET OB = 0
ET SUR = 0
DEPLACEMENT_AUTORISE =
SECURITE_OK
ET KM ≠ KD3. Pseudo-code général du Grafcet ascenseur
SI appel_detecte = 1 ET SECURITE_OK = 1 ALORS
SI etage_demande > etage_actuel ALORS
KM = 1
KD = 0
FIN_SI
SI etage_demande < etage_actuel ALORS
KM = 0
KD = 1
FIN_SI
FIN_SI
SI capteur_etage_demande = 1 ALORS
KM = 0
KD = 0
OUV = 1
FIN_SI
SI porte_ouverte = 1 ALORS
lancer_temporisation(5 secondes)
FIN_SI
SI temporisation_terminee = 1 ET OB = 0 ALORS
OUV = 0
FER = 1
FIN_SI
SI PF = 1 ALORS
FER = 0
retour_attente = 1
FIN_SI4. Exemple en langage structuré
CASE Etape OF
0:
KM := FALSE;
KD := FALSE;
OUV := FALSE;
FER := FALSE;
IF Appel = TRUE AND PF = TRUE AND OB = FALSE AND SUR = FALSE THEN
Etape := 1;
END_IF;
1:
IF Etage_Demande > Etage_Actuel THEN
KM := TRUE;
KD := FALSE;
Etape := 2;
ELSIF Etage_Demande < Etage_Actuel THEN
KM := FALSE;
KD := TRUE;
Etape := 3;
ELSE
Etape := 4;
END_IF;
2:
KM := TRUE;
IF Capteur_Etage_Demande = TRUE THEN
KM := FALSE;
Etape := 4;
END_IF;
3:
KD := TRUE;
IF Capteur_Etage_Demande = TRUE THEN
KD := FALSE;
Etape := 4;
END_IF;
4:
KM := FALSE;
KD := FALSE;
OUV := TRUE;
IF PO = TRUE THEN
Etape := 5;
END_IF;
5:
TON_Porte(IN := TRUE, PT := T#5S);
IF TON_Porte.Q = TRUE THEN
OUV := FALSE;
Etape := 6;
END_IF;
6:
FER := TRUE;
IF OB = TRUE THEN
FER := FALSE;
Etape := 4;
ELSIF PF = TRUE THEN
FER := FALSE;
Etape := 0;
END_IF;
END_CASE;5. Exemple Ladder textuel
// Réseau 1 : autorisation de déplacement
| BP1 |---| PF |---|/OB|---|/SUR|----------------( SECURITE_OK )
// Réseau 2 : commande montée
| SECURITE_OK |---| BP1 |---| FC0 |---|/FC1|--------( KM )
// Réseau 3 : arrêt à l'étage 1
| FC1 |--------------------------------------------( RESET KM )
// Réseau 4 : ouverture porte
| FC1 |---|/KM|---|/KD|-------------------------------( OUV )
// Réseau 5 : temporisation porte ouverte
| OUV |--------------------------------------------( TON T1 5s )
// Réseau 6 : fermeture porte
| T1.Q |---|/OB|------------------------------------( FER )
// Réseau 7 : obstacle pendant fermeture
| FER |---| OB |------------------------------------( RESET FER )
| FER |---| OB |------------------------------------( OUV )
// Réseau 8 : surcharge
| SUR |--------------------------------------------( AL )
| SUR |--------------------------------------------( RESET KM )
| SUR |--------------------------------------------( RESET KD )6. Mémorisation des appels
// Mémorisation des demandes
SI BP0 = 1 ALORS
M0 := TRUE;
FIN_SI
SI BP1 = 1 ALORS
M1 := TRUE;
FIN_SI
SI BP2 = 1 ALORS
M2 := TRUE;
FIN_SI
// Effacement après service
SI FC0 = 1 ET PO = 1 ALORS
M0 := FALSE;
FIN_SI
SI FC1 = 1 ET PO = 1 ALORS
M1 := FALSE;
FIN_SI
SI FC2 = 1 ET PO = 1 ALORS
M2 := FALSE;
FIN_SILecture rapide de l’annexe
Le Grafcet fournit la logique séquentielle. Le code automate traduit cette logique en conditions, mémoires internes, sorties moteur, temporisations et sécurités. Dans un vrai projet industriel, chaque transition du Grafcet devient une condition de passage entre étapes, tandis que chaque étape active une ou plusieurs sorties.





