GRAFCET et LADDER

Automatismes Industriels - API - Programmation

Systemes Automatises de Production

📊 GRAFCET 🪜 LADDER 🔧 API/PLC
🏭

Chapitre 1 : Introduction aux Automatismes

Systemes automatises et API (Automates Programmables)

🎯 Objectifs du chapitre

  • Definir un systeme automatise
  • Identifier les parties d'un SAP
  • Connaitre les principaux langages de programmation
  • Comprendre le role de l'API

1.1 Systeme Automatise de Production (SAP)

📖
Systeme Automatise Systeme qui execute un ensemble d'operations sans intervention humaine permanente, en suivant un programme preetabli. Il transforme la matiere d'oeuvre (produit) de l'etat initial a l'etat final souhaite.
    STRUCTURE D'UN SYSTEME AUTOMATISE
    
    ┌─────────────────────────────────────────────────────────────────┐
    │                    PARTIE COMMANDE (PC)                         │
    │  ┌─────────────────────────────────────────────────────────┐   │
    │  │              AUTOMATE PROGRAMMABLE (API)                 │   │
    │  │         Programme : GRAFCET / LADDER / ST               │   │
    │  └──────────────────────┬──────────────────────────────────┘   │
    └──────────────────────────┼──────────────────────────────────────┘
                               │
         Ordres (sorties)      │      Comptes-rendus (entrees)
              ▼                │                ▲
    ┌──────────────────────────┼──────────────────────────────────────┐
    │  │                       │                               │      │
    │  │    PREACTIONNEURS     │      CAPTEURS                │      │
    │  │   (contacteurs,       │    (fin de course,           │      │
    │  │    variateurs)        │     detecteurs)              │      │
    │  │         │             │          │                   │      │
    │  │         ▼             │          ▲                   │      │
    │  │    ACTIONNEURS ───────┼───▶ EFFECTEURS               │      │
    │  │   (moteurs, verins)   │   (bras robot, convoyeur)    │      │
    │  │                       │                               │      │
    │  │              PARTIE OPERATIVE (PO)                   │      │
    └─────────────────────────────────────────────────────────────────┘
    
    + DIALOGUE : Pupitre operateur (boutons, voyants, IHM)
                    

1.2 L'Automate Programmable Industriel (API)

📖
API (Automate Programmable Industriel) En anglais PLC (Programmable Logic Controller). Equipement electronique programmable, adapte a l'environnement industriel, destine a piloter des processus sequentiels ou combinatoires.

Structure d'un API

    ┌───────────────────────────────────────────────────────────────┐
    │                           API / PLC                           │
    ├───────────────────────────────────────────────────────────────┤
    │  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐      │
    │  │ALIMENTATION│ │   CPU    │  │ MEMOIRE  │  │  COM     │      │
    │  │   24V DC  │  │(processeur)│ │(programme)│ │(reseau)  │      │
    │  └──────────┘  └──────────┘  └──────────┘  └──────────┘      │
    │                                                               │
    │  ┌─────────────────────┐      ┌─────────────────────────┐    │
    │  │   MODULES ENTREES   │      │   MODULES SORTIES       │    │
    │  │  ┌───┬───┬───┬───┐  │      │  ┌───┬───┬───┬───┐      │    │
    │  │  │I0 │I1 │I2 │...│  │      │  │Q0 │Q1 │Q2 │...│      │    │
    │  │  └─┬─┴─┬─┴─┬─┴───┘  │      │  └─┬─┴─┬─┴─┬─┴───┘      │    │
    │  └────┼───┼───┼────────┘      └────┼───┼───┼────────────┘    │
    └───────┼───┼───┼────────────────────┼───┼───┼─────────────────┘
            │   │   │                    │   │   │
         Capteurs                    Actionneurs
    (boutons, detecteurs)        (contacteurs, voyants)
                    

Fabricants d'API

FabricantGammesLogiciel
SiemensS7-1200, S7-1500, LOGO!TIA Portal
SchneiderModicon M221, M340, M580EcoStruxure
Allen-BradleyMicroLogix, CompactLogixRSLogix, Studio 5000
OmronCP1E, CP1L, NJ/NXCX-Programmer
MitsubishiFX3U, FX5U, iQ-RGX Works

1.3 Langages de Programmation (IEC 61131-3)

La norme IEC 61131-3 definit 5 langages standard pour les API :

LangageTypeDescriptionUsage
LD (Ladder)GraphiqueSchema a contactsLogique combinatoire, electriciens
FBDGraphiqueBlocs fonctionnelsRegulation, traitement signal
SFC (GRAFCET)GraphiqueEtapes et transitionsSequences, automatismes
STTextuelTexte structure (Pascal)Calculs, algorithmes
ILTextuelListe d'instructionsObsolete (assembleur)
📊

GRAFCET (SFC)

Ideal pour les systemes sequentiels avec etapes distinctes

🪜

LADDER (LD)

Familier aux electriciens, logique combinatoire

📊

Chapitre 2 : GRAFCET - Bases

Graphe Fonctionnel de Commande Etapes-Transitions

🎯 Objectifs du chapitre

  • Definir le GRAFCET et son role
  • Connaitre les elements de base
  • Tracer un GRAFCET simple
  • Respecter les regles d'evolution

2.1 Definition du GRAFCET

📖
GRAFCET (Graphe Fonctionnel de Commande Etapes-Transitions) Outil de modelisation graphique normalise (norme IEC 60848) pour decrire le comportement sequentiel d'un systeme automatise. Il represente l'enchainement des etapes et des transitions.

Caracteristiques

  • Normes : IEC 60848 (description), IEC 61131-3 (programmation SFC)
  • Independant de la technologie de realisation
  • Universel : Comprehensible par tous les intervenants
  • Precis : Pas d'ambiguite dans l'interpretation

2.2 Elements de Base

    ELEMENTS FONDAMENTAUX DU GRAFCET
    
    ┌─────────────────────────────────────────────────────────────────┐
    │                                                                 │
    │   ETAPE INITIALE        ETAPE NORMALE         ETAPE ACTIVE     │
    │                                                                 │
    │      ╔═══╗                ┌───┐                 ┌───┐          │
    │      ║ 0 ║                │ 5 │                 │ 3 │●         │
    │      ╚═══╝                └───┘                 └───┘          │
    │                                                                 │
    │   Double contour       Simple contour        Point = active    │
    │   (active au depart)                                           │
    │                                                                 │
    ├─────────────────────────────────────────────────────────────────┤
    │                                                                 │
    │   TRANSITION            RECEPTIVITE           LIAISON          │
    │                                                                 │
    │        │                     │                    │            │
    │      ──┼──                 ──┼── a.b              │            │
    │        │                     │                    │            │
    │                                                   ▼            │
    │   Barre horizontale    Condition logique    Trait oriente     │
    │                        (a droite)                              │
    │                                                                 │
    └─────────────────────────────────────────────────────────────────┘
                    
ElementSymboleRole
EtapeCarre numeroteEtat stable du systeme (attente ou action)
Etape initialeDouble carreEtat au demarrage (repos)
TransitionBarre horizontalePassage d'une etape a une autre
ReceptiviteCondition (a droite)Condition de franchissement
LiaisonTrait verticalConnexion etape-transition
ActionRectangle (a droite)Ce que fait l'etape

2.3 Premier GRAFCET Simple

    EXEMPLE : Commande d'une lampe (ON/OFF)
    
                 ╔═══╗
                 ║ 0 ║───────── Lampe eteinte
                 ╚═══╝
                   │
                 ──┼── Bouton_ON
                   │
                 ┌───┐
                 │ 1 │───────── Lampe allumee → LAMPE
                 └───┘
                   │
                 ──┼── Bouton_OFF
                   │
                   └──────────▶ (retour a 0)
    
    
    Fonctionnement :
    - Au depart : Etape 0 active (lampe eteinte)
    - Si Bouton_ON presse : Passage a l'etape 1 (lampe allumee)
    - Si Bouton_OFF presse : Retour a l'etape 0
                    

2.4 Regles d'Evolution du GRAFCET

📜
5 Regles Fondamentales
  1. Initialisation : Au depart, seules les etapes initiales sont actives
  2. Franchissement : Une transition est franchie si l'etape amont est active ET la receptivite est vraie
  3. Evolution : Le franchissement desactive l'etape amont et active l'etape aval
  4. Simultaneite : Plusieurs transitions simultanement franchissables le sont simultanement
  5. Activation prioritaire : Si une etape doit etre activee et desactivee simultanement, elle reste active
🚦

Chapitre 3 : Transitions et Receptivites

Conditions de franchissement

3.1 Receptivites Simples

La receptivite est la condition logique associee a une transition.

TypeNotationSignification
VariableaCapteur a actif (=1)
Negation/a ou Capteur a inactif (=0)
ETa.b ou a AND ba ET b actifs
OUa+b ou a OR ba OU b actif
Front montant↑aPassage de 0 a 1 de a
Front descendant↓aPassage de 1 a 0 de a
Toujours vraie=1Transition immediate

3.2 Receptivites Temporisees

    TEMPORISATIONS
    
    ┌───┐                       ┌───┐
    │ 5 │ Action                │ 5 │ Action
    └───┘                       └───┘
      │                           │
    ──┼── t/X5/3s               ──┼── 5s/X5/10s
      │                           │
    ┌───┐                       ┌───┐
    │ 6 │                       │ 6 │
    └───┘                       └───┘
    
    t/X5/3s = Temporisation    5s/X5/10s = Fenetre temporelle
              3 secondes apres               Entre 5s et 10s
              activation de X5               apres X5
    
    Notation : t/Xn/duree
    - t : variable temporisee
    - Xn : etape de reference
    - duree : temps d'attente
                    

3.3 Exemples de Receptivites

    EXEMPLES CONCRETS
    
    ┌───┐                                 
    │ 2 │ Avancer verin                   
    └───┘                                 
      │                                   
    ──┼── fin_course_avant                    Simple capteur
      │                                   
    ┌───┐                                 
    │ 3 │                                 
    └───┘                                 
      │                                   
    ──┼── bouton_marche . /arret_urgence      ET avec negation
      │                                   
    ┌───┐                                 
    │ 4 │                                 
    └───┘                                 
      │                                   
    ──┼── capteur_A + capteur_B               OU logique
      │                                   
    ┌───┐                                 
    │ 5 │                                 
    └───┘                                 
      │                                   
    ──┼── t/X5/5s                             Temporisation
      │                                   
    ┌───┐                                 
    │ 6 │                                 
    └───┘                                 
                    
▶️

Chapitre 4 : Actions Associees aux Etapes

Types d'actions et qualificateurs

4.1 Types d'Actions

    REPRESENTATION DES ACTIONS
    
    ┌───┐                     ┌───┐
    │ 3 │─────┤ ACTION ├───   │ 3 │─────┤ Avancer verin A ├───
    └───┘                     └───┘
    
    Rectangle a droite de l'etape contenant le nom de l'action
    
    
    ACTIONS MULTIPLES
    
    ┌───┐
    │ 5 │─────┤ Moteur M1    ├───
    └───┘     ├──────────────┤
              │ Voyant V1    │
              ├──────────────┤
              │ Compteur +1  │
              └──────────────┘
                    

4.2 Qualificateurs d'Actions

QualificateurSymboleSignification
Continue (par defaut)N ou rienActive tant que l'etape est active
ConditionnelleCActive si etape active ET condition vraie
Retardee (Delay)DDebute apres un delai
Limitee (Limited)LDuree maximale
Memorisee (Set)SReste active apres desactivation etape
Impulsionnelle (Pulse)PFront montant uniquement
ResetRDesactive une action memorisee
    EXEMPLES DE QUALIFICATEURS
    
    ┌───┐                              ┌───┐
    │ 3 │────┤ N │ Moteur     ├───     │ 5 │────┤ C │ Voyant │ si capteur ├───
    └───┘                              └───┘
    Continue (normale)                 Conditionnelle
    
    ┌───┐                              ┌───┐
    │ 7 │────┤ D │ 3s │ Alarme ├───    │ 9 │────┤ S │ Vanne ├───
    └───┘                              └───┘
    Retardee de 3s                     Memorisee (Set)
    
    ┌───┐                              ┌───┐
    │11 │────┤ L │ 5s │ Buzzer ├───    │13 │────┤ R │ Vanne ├───
    └───┘                              └───┘
    Limitee a 5s                       Reset de l'action Vanne
                    

4.3 Actions sur Variables

  • Affectation : Compteur := 0 (mise a zero)
  • Incrementation : Compteur := Compteur + 1
  • Calcul : Vitesse := Distance / Temps
🔀

Chapitre 5 : Structures du GRAFCET

Divergence, convergence, saut, boucle

5.1 Sequence Lineaire

    SEQUENCE LINEAIRE (enchainement simple)
    
         ╔═══╗
         ║ 0 ║ Repos
         ╚═══╝
           │
         ──┼── Depart
           │
         ┌───┐
         │ 1 │ Avancer verin A
         └───┘
           │
         ──┼── a1 (fin de course)
           │
         ┌───┐
         │ 2 │ Reculer verin A
         └───┘
           │
         ──┼── a0 (position initiale)
           │
           └──────▶ (retour a 0)
                    

5.2 Divergence et Convergence en OU (Aiguillage)

    DIVERGENCE EN OU (choix exclusif)
    
              ┌───┐
              │ 1 │
              └───┘
                │
        ┌───────┼───────┐         Simple trait horizontal
        │       │       │
      ──┼── a ──┼── b ──┼── c     Conditions mutuellement exclusives
        │       │       │
      ┌───┐   ┌───┐   ┌───┐
      │ 2 │   │ 3 │   │ 4 │       UNE SEULE branche active
      └───┘   └───┘   └───┘
        │       │       │
      ──┼──   ──┼──   ──┼──
        │       │       │
        └───────┼───────┘
                │
              ┌───┐
              │ 5 │
              └───┘
    
    CONVERGENCE EN OU
    (Premiere branche terminee passe a la suite)
                    
⚠️
Exclusivite des conditions Dans une divergence en OU, les receptivites doivent etre mutuellement exclusives pour eviter toute ambiguite. Sinon, utiliser des priorites.

5.3 Divergence et Convergence en ET (Parallelisme)

    DIVERGENCE EN ET (parallelisme)
    
              ┌───┐
              │ 1 │
              └───┘
                │
              ──┼── condition
                │
        ════════╪════════         DOUBLE trait horizontal
        │       │       │
      ┌───┐   ┌───┐   ┌───┐
      │ 2 │   │ 3 │   │ 4 │       TOUTES les branches actives
      └───┘   └───┘   └───┘       simultanement
        │       │       │
      ──┼── a ──┼── b ──┼── c
        │       │       │
        ════════╪════════         Synchronisation
                │
              ┌───┐
              │ 5 │
              └───┘
    
    CONVERGENCE EN ET
    (Attend que TOUTES les branches soient terminees)
                    
💡
Synchronisation La convergence en ET (double trait) agit comme un point de synchronisation : on attend que toutes les branches paralleles soient terminees avant de continuer.

5.4 Saut d'Etapes et Reprise de Sequence

    SAUT D'ETAPES                  REPRISE DE SEQUENCE (boucle)
    
         ┌───┐                          ┌───┐
         │ 1 │                          │ 1 │
         └───┘                          └───┘
           │                              │
     ┌─────┼─────┐                      ──┼──
     │     │     │                        │
   ──┼── a │   ──┼── /a                 ┌───┐
     │     │     │                      │ 2 │
     │   ┌───┐   │                      └───┘
     │   │ 2 │   │                        │
     │   └───┘   │                  ┌─────┼─────┐
     │     │     │                  │     │     │
     │   ──┼──   │                ──┼── /ok   ──┼── ok
     │     │     │                  │     │     │
     └─────┼─────┘                  │   ┌───┐   │
           │                        │   │ 3 │   │
         ┌───┐                      │   └───┘   │
         │ 3 │                      │     │     │
         └───┘                      └─────┘     │
                                               ▼
    Si a=0 : saute l'etape 2      Repete 2 tant que /ok
                    
📦

Chapitre 6 : Macro-Etapes et Hierarchie

Organisation et modularite du GRAFCET

6.1 Macro-Etape

📖
Macro-Etape Representation condensee d'une partie de GRAFCET. Permet de simplifier la lecture en "cachant" les details d'une sous-sequence. Contient une etape d'entree (E) et une etape de sortie (S).
    MACRO-ETAPE
    
    GRAFCET Principal           Expansion de M10
    
         ┌───┐                    ┌───────────────────┐
         │ 5 │                    │      ╔═══╗        │
         └───┘                    │      ║E10║        │ Etape d'entree
           │                      │      ╚═══╝        │
         ──┼──                    │        │          │
           │                      │      ──┼──        │
       ╔═══════╗                  │        │          │
       ║  M10  ║ ◀───────────────▶│      ┌───┐        │
       ╚═══════╝                  │      │11 │        │
           │                      │      └───┘        │
         ──┼──                    │        │          │
           │                      │      ──┼──        │
         ┌───┐                    │        │          │
         │ 6 │                    │      ╔═══╗        │
         └───┘                    │      ║S10║        │ Etape de sortie
                                  │      ╚═══╝        │
                                  └───────────────────┘
    
    M10 = Macro-etape (carre avec coins)
    E10 = Etape d'entree (double trait en haut)
    S10 = Etape de sortie (double trait en bas)
                    

6.2 GRAFCET Hierarchise

Organisation en plusieurs niveaux :

  • GRAFCET de securite : Gere les arrets d'urgence, prioritaire
  • GRAFCET de conduite : Modes de marche (auto, manu, init)
  • GRAFCET de production : Cycle normal de fonctionnement
    HIERARCHIE DES GRAFCET
    
    ┌─────────────────────────────────────────────────────┐
    │           GRAFCET DE SECURITE (priorite max)        │
    │  - Arret d'urgence                                  │
    │  - Defauts critiques                                │
    │  - Peut forcer/figer les autres GRAFCET             │
    └─────────────────────────────────────────────────────┘
                           │
                           ▼
    ┌─────────────────────────────────────────────────────┐
    │           GRAFCET DE CONDUITE                       │
    │  - Modes : AUTO, MANU, INIT, ARRET                  │
    │  - Gestion des demarrages/arrets                    │
    │  - Lance/arrete le GRAFCET de production            │
    └─────────────────────────────────────────────────────┘
                           │
                           ▼
    ┌─────────────────────────────────────────────────────┐
    │           GRAFCET DE PRODUCTION                     │
    │  - Cycle normal de fabrication                      │
    │  - Sequences de travail                             │
    └─────────────────────────────────────────────────────┘
                    

6.3 Forcage de GRAFCET

Un GRAFCET maitre peut forcer l'etat d'un GRAFCET esclave :

NotationSignification
F/G2:{}Force G2 a l'etat vide (aucune etape active)
F/G2:{INIT}Force G2 a son etat initial
F/G2:{3,5}Force les etapes 3 et 5 de G2 actives
F/G2:*Fige G2 dans son etat actuel
🪜

Chapitre 7 : LADDER - Bases

Langage a contacts (schema electrique)

🎯 Objectifs du chapitre

  • Comprendre le principe du langage LADDER
  • Connaitre la structure d'un reseau
  • Identifier les elements de base
  • Lire un programme LADDER simple

7.1 Presentation du LADDER

📖
LADDER (LD - Ladder Diagram) Langage graphique ressemblant aux schemas electriques a contacts. Developpe pour les electriciens habitues aux schemas de commande. Aussi appele langage a contacts ou schema a relais.

Caracteristiques

  • Graphique : Representation visuelle intuitive
  • Familier : Similaire aux schemas electriques classiques
  • Universel : Supporte par tous les API
  • Logique combinatoire : Ideal pour les equations logiques

7.2 Structure d'un Programme LADDER

    STRUCTURE D'UN RESEAU LADDER
    
    Barre d'alimentation                  Barre d'alimentation
    (gauche = +)                          (droite = 0V)
          │                                      │
          │     ZONE DE TEST    ZONE D'ACTION    │
          │    (conditions)      (resultat)      │
          │                                      │
          ├──┤ ├──┤ ├──────────────────( )───────┤  Reseau 1
          │   I0    I1                  Q0       │
          │                                      │
          ├──┤ ├──┬──┤/├────────────────( )───────┤  Reseau 2
          │   I2  │   I3                Q1       │
          │       │                              │
          │       └──┤ ├─────────────────────────┤  (branche parallele)
          │           I4                         │
          │                                      │
          └──────────────────────────────────────┘
    
    Lecture : De gauche a droite, de haut en bas
    Le courant "circule" de la barre gauche vers la droite
    Si le chemin est complet, la sortie est activee
                    

7.3 Analogie Electrique

    SCHEMA ELECTRIQUE
    
      +24V
        │
       ─┴─ S1 (NO)
        │
       ─┴─ S2 (NO)
        │
       ═══ K1 (bobine)
        │
       ─┴─
       0V
    
    K1 = S1 ET S2
                        
    EQUIVALENT LADDER
    
    │                      │
    ├──┤ ├──┤ ├────( )─────┤
    │   S1   S2     K1     │
    │                      │
    
    K1 := S1 AND S2
    
    Meme logique !
                        

7.4 Adressage des Variables

TypeSiemensSchneiderAllen-BradleyDescription
EntreeI0.0, I0.1...%I0.0, %I0.1...I:0/0, I:0/1...Capteurs, boutons
SortieQ0.0, Q0.1...%Q0.0, %Q0.1...O:0/0, O:0/1...Actionneurs, voyants
MemoireM0.0, M0.1...%M0, %M1...B3:0/0...Variables internes
TimerT1, T2...%TM0, %TM1...T4:0...Temporisateurs
CompteurC1, C2...%C0, %C1...C5:0...Compteurs
🔘

Chapitre 8 : Contacts et Bobines

Elements fondamentaux du LADDER

8.1 Types de Contacts

    CONTACTS (elements de test)
    
    ──┤ ├──   Contact NO (Normally Open)
      I0      = 1 si I0 est VRAI
              Passant quand la variable est a 1
    
    ──┤/├──   Contact NF (Normally Closed)
      I0      = 1 si I0 est FAUX
              Passant quand la variable est a 0
    
    ──┤P├──   Contact front montant (Positive edge)
      I0      = 1 pendant UN cycle quand I0 passe de 0 a 1
    
    ──┤N├──   Contact front descendant (Negative edge)
      I0      = 1 pendant UN cycle quand I0 passe de 1 a 0
                    
ContactSymboleCondition pour passage
NO (ouvert)──┤ ├──Variable = 1
NF (ferme)──┤/├──Variable = 0
Front montant──┤P├──Transition 0→1
Front descendant──┤N├──Transition 1→0

8.2 Types de Bobines

    BOBINES (elements d'action)
    
    ──( )──   Bobine normale
      Q0      Q0 = 1 si le reseau est vrai
              Q0 = 0 si le reseau est faux
    
    ──(/)──   Bobine inversee
      Q0      Q0 = 0 si le reseau est vrai
              Q0 = 1 si le reseau est faux
    
    ──(S)──   Bobine SET (memorisation)
      Q0      Q0 = 1 si le reseau est vrai
              Q0 reste a 1 meme si le reseau devient faux
    
    ──(R)──   Bobine RESET (dememorisation)
      Q0      Q0 = 0 si le reseau est vrai
              Annule un SET precedent
                    
💡
SET et RESET Les bobines SET et RESET fonctionnent en paire pour creer une memoire bistable (flip-flop RS). SET active, RESET desactive. Utile pour memoriser un evenement.

8.3 Fonctions Logiques en LADDER

    FONCTION ET (AND) - Contacts en serie
    
    │                           │
    ├──┤ ├──┤ ├──────────( )────┤    Q0 = I0 AND I1
    │   I0   I1           Q0    │
    
    
    FONCTION OU (OR) - Contacts en parallele
    
    │                           │
    ├──┤ ├──┬─────────────( )────┤    Q0 = I0 OR I1
    │   I0  │              Q0    │
    │       │                    │
    │       └──┤ ├───────────────┤
    │           I1               │
    
    
    FONCTION NON (NOT) - Contact NF
    
    │                           │
    ├──┤/├────────────────( )────┤    Q0 = NOT I0
    │   I0                Q0    │
    
    
    FONCTION NAND
    
    │                           │
    ├──┤/├──┬─────────────( )────┤    Q0 = NOT(I0 AND I1)
    │   I0  │              Q0    │        = /I0 OR /I1
    │       │                    │
    │       └──┤/├───────────────┤
    │           I1               │
    
    
    FONCTION XOR (OU exclusif)
    
    │                           │
    ├──┤ ├──┤/├──┬────────( )────┤    Q0 = (I0 AND /I1)
    │   I0   I1  │         Q0    │         OR (/I0 AND I1)
    │            │               │
    │            └──┤/├──┤ ├─────┤
    │                I0   I1     │
                    

8.4 Auto-maintien (Memorisation)

    AUTO-MAINTIEN CLASSIQUE (avec contact d'auto-alimentation)
    
    │                                │
    ├──┤ ├──┬──┤/├──────────( )──────┤
    │  START│  STOP          Q0      │
    │       │                        │
    │       └──┤ ├───────────────────┤
    │           Q0                   │
    │      (auto-maintien)           │
    
    - START enclenche Q0
    - Q0 s'auto-alimente via son propre contact
    - STOP coupe l'alimentation
    
    Equivalent : Q0 = (START OR Q0) AND /STOP
    
    
    AUTO-MAINTIEN AVEC SET/RESET
    
    │                                │
    ├──┤ ├──────────────────(S)──────┤
    │  START                 Q0      │
    │                                │
    ├──┤ ├──────────────────(R)──────┤
    │  STOP                  Q0      │
    │                                │
    
    - START active SET → Q0 = 1 (memorise)
    - STOP active RESET → Q0 = 0
                    
⏱️

Chapitre 9 : Temporisateurs

Gestion du temps en LADDER

9.1 Types de Temporisateurs

TypeNomComportement
TONTimer ON DelayRetard a l'enclenchement
TOFTimer OFF DelayRetard au declenchement
TPTimer PulseImpulsion de duree fixe
TONRTimer ON RetentiveCumul du temps (memorise)

9.2 TON - Retard a l'Enclenchement

    TON (Timer ON Delay)
    
    │                                    │
    ├──┤ ├────────────┬──[TON]───────────┤
    │  IN             │  T1              │
    │                 │  PT: 5s          │
    │                 │                  │
    │                 └──────────────────┤
    │                                    │
    ├──┤ ├───────────────────────( )─────┤
    │  T1.Q                       Q0     │
    
    
    CHRONOGRAMME TON (PT = 5s)
    
    IN    ────┐          ┌────────────────┐
              │          │                │
              └──────────┘                └───
    
    ET    0───┐ 1  2  3  4  5             0──
              └──────────────────────────────
                        ↑ compte
    
    Q     ────────────────────┐    ┌─────────
                              │    │
              └───────────────┘    └─────────
                        5s apres IN
    
    - Q s'active 5s apres IN
    - Si IN retombe avant 5s, Q ne s'active jamais
    - ET = temps ecoule
                    

9.3 TOF - Retard au Declenchement

    TOF (Timer OFF Delay)
    
    │                                    │
    ├──┤ ├────────────┬──[TOF]───────────┤
    │  IN             │  T2              │
    │                 │  PT: 3s          │
    │                 │                  │
    │                 └──────────────────┤
    │                                    │
    ├──┤ ├───────────────────────( )─────┤
    │  T2.Q                       Q0     │
    
    
    CHRONOGRAMME TOF (PT = 3s)
    
    IN    ────┐          ┌────
              │          │
              └──────────┘
    
    Q     ────┐                    ┌────
              │          ┌─────────┤
              └──────────┘         └────
                    3s apres chute de IN
    
    - Q s'active immediatement avec IN
    - Q reste actif 3s apres la chute de IN
    - Utile pour maintenir une action apres l'arret
                    

9.4 TP - Impulsion

    TP (Timer Pulse)
    
    │                                    │
    ├──┤P├────────────┬──[TP]────────────┤
    │  IN             │  T3              │
    │                 │  PT: 2s          │
    │                 │                  │
    │                 └──────────────────┤
    │                                    │
    ├──┤ ├───────────────────────( )─────┤
    │  T3.Q                       Q0     │
    
    
    CHRONOGRAMME TP (PT = 2s)
    
    IN    ────┐    ┌─────
              │    │
              └────┘
    
    Q     ────┐    ┌─────
              │    │
              └────┴────────
              │← 2s →│
    
    - Q s'active pendant exactement 2s
    - Peu importe la duree de IN
    - Genere une impulsion calibree
                    

9.5 Exemple Pratique : Clignotant

    CLIGNOTANT 1 Hz (500ms ON, 500ms OFF)
    
    │                                         │
    ├──┤/├─────────────┬──[TON]───────────────┤
    │  T2.Q            │  T1                  │
    │                  │  PT: 500ms           │
    │                  └──────────────────────┤
    │                                         │
    ├──┤ ├─────────────┬──[TON]───────────────┤
    │  T1.Q            │  T2                  │
    │                  │  PT: 500ms           │
    │                  └──────────────────────┤
    │                                         │
    ├──┤ ├───────────────────────────( )──────┤
    │  T1.Q                          VOYANT   │
    │                                         │
    
    - T1 demarre quand T2.Q = 0
    - Apres 500ms, T1.Q = 1, ce qui demarre T2
    - Apres 500ms, T2.Q = 1, ce qui arrete T1
    - Et ainsi de suite...
                    
🔢

Chapitre 10 : Compteurs

Comptage et decomptage en LADDER

10.1 Types de Compteurs

TypeNomFonction
CTUCounter UpComptage croissant (0 → PV)
CTDCounter DownDecomptage decroissant (PV → 0)
CTUDCounter Up/DownComptage/decomptage bidirectionnel

10.2 CTU - Compteur Croissant

    CTU (Counter Up)
    
    │                                    │
    ├──┤P├───────────────[CTU]───────────┤
    │  CU               C1               │  CU = Count Up (front montant)
    │                   PV: 10           │  PV = Preset Value (valeur cible)
    ├──┤ ├───────────────────────────────┤
    │  RESET                             │  RESET = Remise a zero
    │                                    │
    ├──┤ ├───────────────────────( )─────┤
    │  C1.Q                       Q0     │  Q = 1 quand CV ≥ PV
    
    
    Parametres :
    - CU : Entree de comptage (sur front montant)
    - RESET : Remise a zero du compteur
    - PV : Valeur predefinie (preset)
    - CV : Valeur courante (current value)
    - Q : Sortie (CV ≥ PV)
    
    
    CHRONOGRAMME CTU (PV = 5)
    
    CU    ─┬─┬─┬─┬─┬─┬─┬─
          │ │ │ │ │ │ │ │
    
    CV    0 1 2 3 4 5 6 7
    
    Q     ─────────┐
                   │ (Q=1 quand CV≥5)
                   └──────────
                    

10.3 CTD - Compteur Decroissant

    CTD (Counter Down)
    
    │                                    │
    ├──┤P├───────────────[CTD]───────────┤
    │  CD               C2               │  CD = Count Down
    │                   PV: 10           │
    ├──┤ ├───────────────────────────────┤
    │  LOAD                              │  LOAD = Charge PV dans CV
    │                                    │
    ├──┤ ├───────────────────────( )─────┤
    │  C2.Q                       Q0     │  Q = 1 quand CV ≤ 0
    
    
    Fonctionnement :
    - LOAD charge PV dans CV (ex: CV = 10)
    - Chaque front de CD decremente CV
    - Q s'active quand CV atteint 0
    
    Utile pour : compte a rebours, detection de fin de lot
                    

10.4 Exemple : Compteur de Pieces

    COMPTEUR DE PIECES (arret apres 100 pieces)
    
    │                                           │
    ├──┤ ├───────────────────────[CTU]──────────┤
    │ CAPTEUR_PIECE            C1               │
    │                          PV: 100          │
    │                                           │
    ├──┤ ├───────────────────────────────────────┤
    │ RESET_CPT                                 │
    │                                           │
    ├──┤/├───────────────────────────────( )────┤
    │  C1.Q                            MOTEUR   │
    │                                           │
    ├──┤ ├───────────────────────────────( )────┤
    │  C1.Q                            ALARME   │
    │                                           │
    
    - Chaque piece detectee incremente C1
    - Quand 100 pieces atteintes :
      - C1.Q = 1
      - MOTEUR s'arrete (/C1.Q)
      - ALARME s'active
    - RESET_CPT remet le compteur a 0
                    
🔄

Chapitre 11 : Conversion GRAFCET → LADDER

Methode de programmation

11.1 Principe de Conversion

📖
Methode de conversion Le GRAFCET se programme en LADDER en utilisant des bits d'etape (variables memoire). Chaque etape devient un bit SET/RESET, et les actions sont conditionnees par ces bits.

Structure generale

  1. Initialisation : Activer l'etape 0 au premier cycle
  2. Transitions : Condition = etape amont active ET receptivite vraie
  3. Activation : SET de l'etape aval
  4. Desactivation : RESET de l'etape amont
  5. Actions : Sortie = etape active

11.2 Exemple de Conversion

    GRAFCET
    
       ╔═══╗
       ║ 0 ║ Repos
       ╚═══╝
         │
       ──┼── dcy (depart cycle)
         │
       ┌───┐
       │ 1 │ Avancer verin → V+
       └───┘
         │
       ──┼── a1 (fin course avant)
         │
       ┌───┐
       │ 2 │ Reculer verin → V-
       └───┘
         │
       ──┼── a0 (fin course arriere)
         │
         └───▶ (retour a 0)
                        
    LADDER EQUIVALENT
    
    Variables :
    X0, X1, X2 = bits d'etape
    dcy, a1, a0 = entrees
    V_plus, V_moins = sorties
    
    // Initialisation
    ├──┤ ├──┤/├──(S)──┤
    │ Init X0   X0    │
    
    // Transition 0→1
    ├──┤ ├──┤ ├──(S)──┤
    │  X0  dcy   X1   │
    ├──┤ ├──┤ ├──(R)──┤
    │  X0  dcy   X0   │
    
    // Transition 1→2
    ├──┤ ├──┤ ├──(S)──┤
    │  X1  a1    X2   │
    ├──┤ ├──┤ ├──(R)──┤
    │  X1  a1    X1   │
    
    // Transition 2→0
    ├──┤ ├──┤ ├──(S)──┤
    │  X2  a0    X0   │
    ├──┤ ├──┤ ├──(R)──┤
    │  X2  a0    X2   │
    
    // Actions
    ├──┤ ├────────( )──┤
    │  X1       V_plus │
    ├──┤ ├────────( )──┤
    │  X2       V_moins│
                        

11.3 Methode Alternative : Equations Logiques

    METHODE PAR EQUATIONS (auto-maintien)
    
    Pour chaque etape :
    Xi = (Xi-1 . Ti-1) + (Xi . /Ti)
    
    Ou :
    - Xi = bit d'etape courante
    - Xi-1 = bit d'etape precedente
    - Ti-1 = transition precedente (pour activer)
    - Ti = transition suivante (pour desactiver)
    
    
    Application au GRAFCET exemple :
    
    // Etape 0
    ├──┤ ├──┤ ├──┬────────────( )──┤
    │  X2  a0   │              X0  │
    │           │                  │
    │           └──┤ ├──┤/├────────┤
    │               X0  dcy        │
    
    // Etape 1
    ├──┤ ├──┤ ├──┬────────────( )──┤
    │  X0  dcy  │              X1  │
    │           │                  │
    │           └──┤ ├──┤/├────────┤
    │               X1  a1         │
    
    // Etape 2
    ├──┤ ├──┤ ├──┬────────────( )──┤
    │  X1  a1   │              X2  │
    │           │                  │
    │           └──┤ ├──┤/├────────┤
    │               X2  a0         │
                    
🏭

Chapitre 12 : Exemples d'Applications

Cas pratiques industriels

12.1 Exemple : Perceuse Automatique

    GRAFCET PERCEUSE AUTOMATIQUE
    
    Capteurs : dcy (depart), ph (position haute), pb (position basse)
    Actionneurs : KM1 (descente), KM2 (rotation), KM3 (montee)
    
           ╔═══╗
           ║ 0 ║ Attente (position haute, moteur arrete)
           ╚═══╝
             │
           ──┼── dcy . ph
             │
           ┌───┐
           │ 1 │ Descente + Rotation → KM1, KM2
           └───┘
             │
           ──┼── pb (position basse atteinte)
             │
           ┌───┐
           │ 2 │ Montee + Rotation → KM3, KM2
           └───┘
             │
           ──┼── ph (position haute atteinte)
             │
           ┌───┐
           │ 3 │ Arret rotation (temporisation)
           └───┘
             │
           ──┼── t/X3/2s
             │
             └───────▶ (retour a 0)
                    

12.2 LADDER de la Perceuse

    // INITIALISATION
    ├──┤ ├──┤/├──────────────────────(S)──────┤
    │ INIT  X0                        X0      │
    
    // TRANSITION 0→1
    ├──┤ ├──┤ ├──┤ ├──────────────────(S)──────┤
    │  X0  dcy  ph                     X1      │
    ├──┤ ├──┤ ├──┤ ├──────────────────(R)──────┤
    │  X0  dcy  ph                     X0      │
    
    // TRANSITION 1→2
    ├──┤ ├──┤ ├───────────────────────(S)──────┤
    │  X1  pb                          X2      │
    ├──┤ ├──┤ ├───────────────────────(R)──────┤
    │  X1  pb                          X1      │
    
    // TRANSITION 2→3
    ├──┤ ├──┤ ├───────────────────────(S)──────┤
    │  X2  ph                          X3      │
    ├──┤ ├──┤ ├───────────────────────(R)──────┤
    │  X2  ph                          X2      │
    
    // TEMPORISATION ETAPE 3
    ├──┤ ├─────────────────────[TON]───────────┤
    │  X3                       T1             │
    │                           PT: 2s         │
    
    // TRANSITION 3→0
    ├──┤ ├──┤ ├───────────────────────(S)──────┤
    │  X3  T1.Q                        X0      │
    ├──┤ ├──┤ ├───────────────────────(R)──────┤
    │  X3  T1.Q                        X3      │
    
    // ACTIONS (SORTIES)
    ├──┤ ├─────────────────────────────( )─────┤
    │  X1                              KM1     │  Descente
    
    ├──┤ ├──┬───────────────────────────( )─────┤
    │  X1   │                          KM2     │  Rotation
    │       └──┤ ├─────────────────────────────┤
    │           X2                             │
    
    ├──┤ ├─────────────────────────────( )─────┤
    │  X2                              KM3     │  Montee
                    

12.3 Exemple : Feu de Carrefour

    GRAFCET FEU TRICOLORE SIMPLE
    
    Sorties : RV (Rouge Voie), OV (Orange Voie), VV (Vert Voie)
              RP (Rouge Pieton), VP (Vert Pieton)
    
           ╔═══╗
           ║ 0 ║──── RV, VP (Rouge voiture, Vert pieton)
           ╚═══╝
             │
           ──┼── t/X0/30s
             │
           ┌───┐
           │ 1 │──── RV, RP (Rouge voiture, Rouge pieton)
           └───┘
             │
           ──┼── t/X1/3s (temps de securite)
             │
           ┌───┐
           │ 2 │──── VV, RP (Vert voiture, Rouge pieton)
           └───┘
             │
           ──┼── t/X2/25s
             │
           ┌───┐
           │ 3 │──── OV, RP (Orange voiture, Rouge pieton)
           └───┘
             │
           ──┼── t/X3/5s
             │
             └───────▶ (retour a 0)
                    

12.4 Recapitulatif GRAFCET vs LADDER

CritereGRAFCETLADDER
TypeSequentielCombinatoire
UsageCycles, sequences, modesLogique binaire, equations
StructureEtapes + TransitionsReseaux de contacts
AvantageLisibilite des sequencesFamilier aux electriciens
NormeIEC 60848 / IEC 61131-3 (SFC)IEC 61131-3 (LD)
CombinaisonGRAFCET pour la structure, LADDER pour les actions
📝
A retenir pour l'examen
  • GRAFCET : Etapes (carres) + Transitions (barres) + Receptivites (conditions)
  • 5 regles d'evolution du GRAFCET
  • Divergence OU (simple trait) vs ET (double trait)
  • LADDER : Contacts NO/NF, Bobines, SET/RESET
  • TON = retard a l'enclenchement, TOF = retard au declenchement
  • Conversion GRAFCET→LADDER avec bits d'etape

Cours GRAFCET et LADDER - Automatismes Industriels

12 Chapitres | GRAFCET - LADDER - API/PLC