GRAFCET et LADDER
Automatismes Industriels - API - Programmation
Systemes Automatises de Production
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)
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)
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
| Fabricant | Gammes | Logiciel |
|---|---|---|
| Siemens | S7-1200, S7-1500, LOGO! | TIA Portal |
| Schneider | Modicon M221, M340, M580 | EcoStruxure |
| Allen-Bradley | MicroLogix, CompactLogix | RSLogix, Studio 5000 |
| Omron | CP1E, CP1L, NJ/NX | CX-Programmer |
| Mitsubishi | FX3U, FX5U, iQ-R | GX Works |
1.3 Langages de Programmation (IEC 61131-3)
La norme IEC 61131-3 definit 5 langages standard pour les API :
| Langage | Type | Description | Usage |
|---|---|---|---|
| LD (Ladder) | Graphique | Schema a contacts | Logique combinatoire, electriciens |
| FBD | Graphique | Blocs fonctionnels | Regulation, traitement signal |
| SFC (GRAFCET) | Graphique | Etapes et transitions | Sequences, automatismes |
| ST | Textuel | Texte structure (Pascal) | Calculs, algorithmes |
| IL | Textuel | Liste d'instructions | Obsolete (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
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) │
│ │
└─────────────────────────────────────────────────────────────────┘
| Element | Symbole | Role |
|---|---|---|
| Etape | Carre numerote | Etat stable du systeme (attente ou action) |
| Etape initiale | Double carre | Etat au demarrage (repos) |
| Transition | Barre horizontale | Passage d'une etape a une autre |
| Receptivite | Condition (a droite) | Condition de franchissement |
| Liaison | Trait vertical | Connexion etape-transition |
| Action | Rectangle (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
- Initialisation : Au depart, seules les etapes initiales sont actives
- Franchissement : Une transition est franchie si l'etape amont est active ET la receptivite est vraie
- Evolution : Le franchissement desactive l'etape amont et active l'etape aval
- Simultaneite : Plusieurs transitions simultanement franchissables le sont simultanement
- 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.
| Type | Notation | Signification |
|---|---|---|
| Variable | a | Capteur a actif (=1) |
| Negation | /a ou a̅ | Capteur a inactif (=0) |
| ET | a.b ou a AND b | a ET b actifs |
| OU | a+b ou a OR b | a OU b actif |
| Front montant | ↑a | Passage de 0 a 1 de a |
| Front descendant | ↓a | Passage de 1 a 0 de a |
| Toujours vraie | =1 | Transition 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
| Qualificateur | Symbole | Signification |
|---|---|---|
| Continue (par defaut) | N ou rien | Active tant que l'etape est active |
| Conditionnelle | C | Active si etape active ET condition vraie |
| Retardee (Delay) | D | Debute apres un delai |
| Limitee (Limited) | L | Duree maximale |
| Memorisee (Set) | S | Reste active apres desactivation etape |
| Impulsionnelle (Pulse) | P | Front montant uniquement |
| Reset | R | Desactive 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)
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)
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
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 :
| Notation | Signification |
|---|---|
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
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
| Type | Siemens | Schneider | Allen-Bradley | Description |
|---|---|---|---|---|
| Entree | I0.0, I0.1... | %I0.0, %I0.1... | I:0/0, I:0/1... | Capteurs, boutons |
| Sortie | Q0.0, Q0.1... | %Q0.0, %Q0.1... | O:0/0, O:0/1... | Actionneurs, voyants |
| Memoire | M0.0, M0.1... | %M0, %M1... | B3:0/0... | Variables internes |
| Timer | T1, T2... | %TM0, %TM1... | T4:0... | Temporisateurs |
| Compteur | C1, 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
| Contact | Symbole | Condition 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
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
| Type | Nom | Comportement |
|---|---|---|
| TON | Timer ON Delay | Retard a l'enclenchement |
| TOF | Timer OFF Delay | Retard au declenchement |
| TP | Timer Pulse | Impulsion de duree fixe |
| TONR | Timer ON Retentive | Cumul 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
| Type | Nom | Fonction |
|---|---|---|
| CTU | Counter Up | Comptage croissant (0 → PV) |
| CTD | Counter Down | Decomptage decroissant (PV → 0) |
| CTUD | Counter Up/Down | Comptage/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
Structure generale
- Initialisation : Activer l'etape 0 au premier cycle
- Transitions : Condition = etape amont active ET receptivite vraie
- Activation : SET de l'etape aval
- Desactivation : RESET de l'etape amont
- 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
| Critere | GRAFCET | LADDER |
|---|---|---|
| Type | Sequentiel | Combinatoire |
| Usage | Cycles, sequences, modes | Logique binaire, equations |
| Structure | Etapes + Transitions | Reseaux de contacts |
| Avantage | Lisibilite des sequences | Familier aux electriciens |
| Norme | IEC 60848 / IEC 61131-3 (SFC) | IEC 61131-3 (LD) |
| Combinaison | GRAFCET pour la structure, LADDER pour les actions | |
- 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