97
Automates programmables industriels C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h 3A - Génie Industriel et Informatique Polytech' Marseille 2013 1

C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

  • Upload
    lamphuc

  • View
    256

  • Download
    8

Embed Size (px)

Citation preview

Page 1: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

C 652 Automates

programmables industriels

Alessandro GIUA

LSIS UMR-CNRS 6168

Cours 8h

3A - Génie Industriel et Informatique

Polytech' Marseille

2013

1

Page 2: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

References

I. Bergougnoux. A.P.I. Automates Programmables Industriels.

Notes du cours au Polytech’Marseille, 44 pages, 2004-05. http://iusti.polytech.univ-mrs.fr/~bergougnoux/publiperso/coursAPI.pdf

P. Bonnet. Informatique Industrielle: E/S POUR API. Notes du

cours à l’Univ. de Lille 1, 90 pages, 2010-11. http://www-lagis.univ-lille1.fr/~bonnet/GSI/API_GSI.pdf

M. Bertrand. Automates programmables industriels. Techniques

de l’Ingénieur, S 8015, 14 pages, 2001. http://www.patrick-roch.com/ingemeca/docs/_Genie_Informatique/

Automates%20programmables%20industriels.PDF

W. Bolton. Les automates programmables industriels. Dunod,

L'Usine Nouvelle, 415 pages, 2010. 2

Page 3: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Sommaire

• Introduction

• API: Définition et caractéristiques

• Ladder Diagram

• Sequential Functional Chart

• Traduction de SFC à LD

3

Page 4: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Sommaire

• Introduction

• API: Définition et caractéristiques

• Ladder Diagram

• Sequential Functional Chart

• Traduction de SFC à LD

4

Page 5: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Introduction

Automatisation

L'automatisation d’un procédé consiste à transférer tout ou

partie des tâches de coordination, auparavant exécutées par des

opérateurs humains, dans un système de côntrole.

Le système de contrôle mémorise le savoir faire des opérateurs

et exploite un ensemble d'informations prélevées sur le procédé

pour élaborer la succession des ordres nécessaires pour obtenir

les actions souhaitées.

5

Page 6: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Introduction

Objectifs de l'automatisation

accroître la productivité du système (quantité de produits

élaborés pendant une durée donnée)

améliorer la flexibilité de production

améliorer la qualité du produit

s'adapter à des contextes particuliers :

• environnements hostiles pour l'homme.

• tâches physiques ou intellectuelles pénibles pour l'homme

augmenter la sécurité

etc...

6

Page 7: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Introduction

Structure d’un système automatisé

• Partie Opérative: le procédé à contrôler

• Partie Commande: le système de côntrole

• Partie Supervision: l’operateur (surveillance, marche/arrêt)

mesures

commandes

rapports

ordres

capteurs

action-

neurs

Procédé

Partie operative

Système

de

côntrole

Operateur

Partie commande Partie supervision

7

Page 8: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Introduction

Exemple: porte d’un garage

Actionneurs et commandes:

- moteur qui ouvre (O) ou ferme (F) la porte

Ordres:

- le télécommande (t) pour ouvrir

Capteurs et mesures:

- position porte (pf: fermée; po: ouverte)

- cellule photoelect: obstacle detecté (d)

Rapports:

- Voyant (V) : porte en exercice

F O

pf po

d

t V

8

Page 9: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Introduction

Exemple: porte d’un garage

mesures

commandes

rapports

ordres

capteurs

action-

neurs

Procédé Système

de

contrôle

Operateur

F O

pf po d

t V

pf, po, d

F, O

V

t

9

Page 10: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Introduction

Implementation

Le système de contrôle peut être réalisé:

•Logique programmée : API

•Logique électronique (cablée) : combinatoire ou

séquentielle

•Logique pneumatique : pilotage par air comprimée

10

Page 11: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Sommaire

• Introduction

• API: Définition et caractéristiques

• Ladder Diagram

• Sequential Functional Chart

• Traduction de SFC à LD

11

Page 12: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API - Définition

Norme IEC 61131-1

Système numérique destiné à être utilisé

dans un environnement industriel

• Intégration facile dans un système d’automatisme industriel et utilisation

facile des fonctions prévues

• Commande du processus au moyen d’entrées et de sorties Numeriques (p.

e., Tout-ou-Rien) ou Analogiques

• Fonctions spécifiques: logique, mise en séquence, temporisation,

comptage, calcul arithmétique

• Exécute des activités définies par l'utilisateur sous forme de programme

écrit dans un langage textuel ou graphique

12

Page 13: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Exemple (1)

13

Page 14: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Exemple (2) Fonctions logiques [séquentielles]:

- remplir la cuve (durée, volume, niveau...), la vidanger

- agiter la solution, mettre le chauffage ...

Fonctions de régulation :

- réguler la température autour de la consigne

- réguler le pH de la cuve

Fonctions de surveillance :

- débordement de cuve,excès de température, de pH

- dérive du processus de fermentation

Fonctions de production:

- calculer le point d'arrêt de la fermentation...

Fonctions de communication :

- dialogue opérateur (écran IHM)

14

Page 15: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API - Caractéristiques

• fonctionnement en temps réel : l'échelle de temps est de l'ordre de 1 à 100 ms

• fonctionnement multitâche en temps partagé : toutes les activités

fonctionnent simultanément

• interaction avec les éléments matériels du processus

o prise en compte de signaux électriques --> entrées

o envoi de signaux électriques réalisant des actions sur le processus -->

sorties

• fonctionnement en réseau [application répartie, entrées/sorties distantes,

capteurs et actionneurs intelligents]

• fonctionnement sûr (garanti par une norme)

15

Page 16: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API et autres logiques

• Reconfigurable / Programmable

• Compact

• Modulaire

• Low-cost

16

Page 17: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Structure (1)

• Rack 19”

• Terminal de

programmation

Configuration minimale

• Alimentation • Unité centrale • Entrées / sorties

17

Page 18: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Structure (2)

• Communication

• Mémoire de masse

• PID

• Coprocesseur

Autres modules

• Servo-drive

• Encoder

• HMI

18

Page 19: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Unité Centrale (1)

Espace entrées (I) et sorties (O)

Ex: I1 = I1.1 …. I1.8 (1 byte) O1 … O32

I1 … I32

O1 … O32

T1 … T16

C1 … C16

P1 … P4

W1 … W512

Mémoire : composante fondamental de l’U.C.

Espace de travaille du SO

T = Temporisateurs C= Compteurs

P = PID

Espace données utilisateur

Ex: W1 = W1.1 …. W1.8 (1 byte)

Espace du Système Opérative (ROM) S.O.

Espace programme utilisateur PROG

19

Page 20: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Unité Centrale (2)

Un API est en permanence en activité dès sa mise sous tension

Cycle séquentiel (mode RUN)

0. diagnostic (auto-test)

1. acquisition des entrées

2. traitement des données

3. mise à jour des sorties

Mode STOP: exécution des

tâches (step 3) est suspendue.

Le cycle est protégé par un chien de guarde (watch-dog).

20

Page 21: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API - Unité Centrale (3)

Temps de cycle Varie selon taille du programme,

complexité des calculs, nombre

d'entrées/sorties, puissance de l'API,

etc. : p. e., 1÷20 ms

Peut-être mesuré per kbyte de

programme : p. e., 2 ms/kbyte).

Temps de réponse Temps nécessaire pour réagir à un

évènement

21

Page 22: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Modules I/O (1)

Modules ou cartes d'entrées - sorties (en anglais Input-Output: I/O)

interface entre API et procédé assurant découplage galvanique ou

fonctionel

Entrées: pour brancher capteurs, boutons, poussoirs, etc.

Sorties pour brancher actionneurs, voyants, vannes, etc.

Isolement galvanique Transformateurs d'isolement

Contacts à relais

Optocoupleurs

Isolement fonctionel Voltage follower

22

Page 23: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Modules I/O (2)

I / O

A relais 024 V d.c.

0230 V a.c. 50 Hz

Analogiques ± 5 V, ± 10 V, 010 V, 420 mA

Pour sondes de température

Convertisseur A/D

Convertisseur D/A

Tout ou rien

(en anglais Digital)

024 V d.c.

0230 V a.c. 50 Hz

23

Page 24: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API - Terminal de programmation

Console de

programmation

Pupitre operateur Terminal de maintenance,

affichant des messages ou une

représentation du procédé

24

Pour écrire des programmes

simples. Connexion par port

ou sans fil.

Ecran d'affichage / tactile ou

un PC Interface graphique

Page 25: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API - Alimentation

25

• Puissance nominale et maximale

• A dimensionner envisageant la possibilité d’expansion

• Alarme arrêt

• Redondance

Page 26: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Communication (1)

I/O à distance Acquisition de données en

systèmes distribués

Protocolles

Fieldbus RS 232C, RS 485

Ethernet

Optique

Profibus, Fieldbus Fundation

Device Net - CAN

ModBus

CSMA/CD (TCP-IP)

26

Page 27: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Communication (2)

27

Page 28: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API - Coprocesseur

Languages Basic

C

Connexions directes avec l'extérieur

Mémoire réservée

Utilisé pour calculs de grand complexité numérique

28

Page 29: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Modules pour la commande

PID

Servo Module pour la commande de

moteurs

Module pour créer un boucle de

commande suivant un algorithme de

type PID (avec set-point)

29

Encodeur Comptoirs à grande vitesse pour la

lecture de encodeurs (incrémentaux et

absolus)

Page 30: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Backup et redondance

Secours immédiat

(eng: hot standby)

API de secours marche en parallèle à

API principal (même état)

Backup: deux (ou plus) API qui contrôlent le même procédé

Secours manuel

(eng: cold standby)

API de secours activé si API principal

tombe en panne

Sécurité intrinsèque Action validée si concordance ou 2 sur 3

30

Page 31: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

API – Lang. de programmation (1)

Portabilité Le logiciel doit fonctionner dans

différents environnements d'exécution

(p.e., API Telemecanique ou Siemens)

Maintenabilité

Langages Standardisés

Le logiciel doit être simplement et

rapidement réparé ou mis au jour ou

modifié.

31

Norme IEC 61131-3 : languages de programmation pour API

Page 32: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Textuels

• Liste d’instructions : IL (Instruction List) - Pseudo assembleur

• Texte structuré : ST (Structured Text) - Langage de haut niveau

Graphiques

• Boîtes fonctionnelles : FBD (Function Block Diagram)

- blocs, connectables entre eux, réalisant des opérations

• Langage Ladder : LD (Ladder Diagram) - Schémas électriques

• Sequential function chart : SFC - Proche du langage Grafcet

32

API – Lang. de programmation (2)

Page 33: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels 33

API – Lang. de programmation (3)

Exemple: IL (Instruction List) - Pseudo assembler

VAR

start : BOOL AT \%IX0.1;

alarm : BOOL AT \%MX1.5;

power_on : BOOL AT \%OX3.2;

END_VAR

LD start

ANDN alarm

ST power_on

VAR: I/M/O input/internal/output

X/B/W/L bit, byte, word, double word

Démarrer un moteur si le bouton «start» est pressé et si on n’est pas dans un

condition d’alarme

Page 34: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

if (start and (not alarm) )

then power_on

end if

34

API – Lang. de programmation (4)

Démarrer un moteur si le bouton «start» est pressé et si on n’est

pas dans un condition d’alarme

Exemple: ST (Structured Text) - Langage de haut niveau

Page 35: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Exemple: FBD (Function Block Diagram) - blocs, connectables

entre eux, réalisant des opérations

35

API – Lang. de programmation (5)

AND

NOT

start

alarm

power_on

Démarre un moteur si le bouton «start» est pressé et si on n’est

pas dans un condition d’alarme

Page 36: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Sommaire

• Introduction

• API: Définition et caractéristiques

• Ladder Diagram

• Sequential Functional Chart

• Traduction de SFC à LD

36

Page 37: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Ladder Diagram

Ladder Diagram (LD): Langage graphique qui permet d’écrire un

programme de contrôle sous la forme d’un schéma électrique comportant

des interrupteurs et relais.

•Peut être utilisé par du personnel électricien ou ayant une connaissance de

la schématique électrique sans pour autant apprendre un langage spécifique.

Ex: AND = deux interrupteurs en série

S’allume si A et B sont fermés.

•Il peut être difficile à décoder/encoder si le programme est complexe.

•Nécessite une compétence particulière et l'expérience du réalisateur de

logique de contrôle.

37

A B

Page 38: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Echelle

Ladder = échelle en anglais.

Schéma électrique d’une alimentation

en tension: représentée par deux traits

verticaux reliée horizontalement par

des rungs (barreaux) parcourus par

courant.

Se lit de haut en bas: chaque rung

représente une instruction du

program.

Sur chaque rung l'évaluation des

valeurs se fait de gauche à droite (on

peut pas inverser l’orientation).

1

2

3

38

Page 39: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Eléments fondamentaux

• contacts (ou interrupteurs) : représentent les données d’entrée

de l’instruction, c.à.d., des valeurs déjà connus.

Positionnés dans la partie gauche du rung.

• bobines (ou relais) : représentent les données de sortie de

l’instruction, c.à.d., le résultats de la computation.

Positionnées à l’extremité droite du rung (une seule par

rung).

• blocs fonctionnels : permettent de réaliser des fonctions

avancées (temporisation, comptage, etc.).

Positionnés à l’extremité droite du rung (un seul par rung).

39

I

X

T1 t

C1 n

Page 40: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Contact normalement ouvert (NO: normally

open)

Il est normalement ouvert mais il est fermé

(passage de courant) lorsque la variable

booléenne I est vraie (I=1).

Contact normalement fermé (NC: normally

closed)

Il est normalement fermé mais il est ouvert

(aucun passage de courant) lorsque la variable

booléenne I est vraie (I=1).

I

I

(NO)

(NC)

40

LD – Contacts

Associés à une variable booléenne d’entrée (I) ou interne (X) ou

de sortie (O).

Page 41: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Bobines

X

X

41

Bobine directe (NO: normally open)

Si alimentée alors la variable booléenne associée est

mémorisée à 'vraie‘ (X =1), sinon elle est mémorisée à

'fausse‘ (X=0).

Bobine inversée (NC: normally closed)

Si alimentée alors la variable booléenne associée est

mémorisée à ‘fausse‘ (X=0), sinon elle est mémorisée

à ‘vraie‘ (X=1).

Associés à une variable booléenne interne (X) ou de sortie (O).

X=vraie si alimentée

X=vraie si non alimentée

Page 42: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Example XOR

XOR

if (I1 and (not I2)) or ((not I1) and I2)

then O = 1

else O = 0

end if

42

I1 I2 O

I1 O I2

1

2

I1 I2 O

I1 I2

1

2

Chronogramme

Représentation équivalente I1

t

t1 t2 t3 t4

I2

t

O

t

Page 43: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Temps de retard XOR

I1

t

t1 t2 t3 t4

I2

t

O

t

43

I1 I2 O

I1 I2

1

2

cycle k cycle k+1

T T

I1 vraie

t1

I1 memorisée O affectée

D

T = temps de cycle

D = temps de retard

Pour XOR: T < D < 2T

Page 44: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Ordre des rungs

I1 I2 X1

X1 O I3

1

2

I1 I2 X1

X1 O I3

2

1

O = I1 and (not I2) and I3

O= X1 and I3

Si X1 n’est pas devenue vraie dans un

cycle précédente, quand on détermine O

X1 = 0 O = 0 n’importe quel

valeur ont I1, I2 et I3.

Comme dans tous programmes

d’ordinateur, l’ordre des instructions

(rung) est fondamental.

44

Page 45: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Affectation des sorties

I1 O

I2 O

1

2 O = not I2 = 0

Les sorties sont affectées seulement à la fin du cycle

45

I1 =1

I2 =1 Valeurs entrées

Bien que la variable O soit assignée vraie dans le premier rung, la sortie qui

corresponde à O n’est jamais affectée vraie.

O = I1 = 1

Page 46: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Front montant

I X O

X

1

46

I

t

t1 t2 t3 t4

X

t

O

t

Le front montant de la variable I est une variable impulsive O qui est vrai

quand I change de fausse à vraie.

O est vraie pour un cycle quand I passe de fausse à vraie.

Il y a un décalage de un cycle entre I et X/O.

Page 47: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Structures logiques

I1 I2 X1

I2 X2 I3

1

2

Choix if I2=1 then

if I3=1 then

X2=1

end if

else

if I1=1 then

X1=1

end if

end if

Parallélisme if I2=0 and I1=1 then

X2=1

X1=1

end if

I1 I2 X1

X2

1

2

I1 I2

Le rung 2 peut etre eliminé

47

Page 48: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Bascule Set-Reset (1)

La variable X deviens vraie si IS

deviens vraie et IR est fausse, et reste

vraie pendant que IR reste fausse

(mémorisation du valeur)

Démarrage moteur:

IS: bouton marche

IR: bouton arrêt

X: commande moteur (Q=X, Q=not X

IS IR X

X

1

2

IS

t

IR

t

X

t

48

Page 49: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Bobines à action set/reset

Bobine à action Set

La bobine à action Set (Latch) si

alimentée assigne le valeur X=1.

X garde le valeur jusqu’à quand la

bobine Reset (Unlatch) est

alimentée et assigne le valeur X=0.

X

S

X

R

49

Bobine à action Reset

Bobines qui mémorisent le valeur (set) jusqu’à quand sont mises à zéro

(reset).

Si l’API est arrêté X est remise a zéro.

Page 50: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Bascule Set-Reset (2)

La variable X deviens vraie si IS

deviens vraie et garde le valeur.

X est remise à zéro quand IR

deviens vraie.

Démarrage moteur:

IS: bouton marche

IR: bouton arrêt

X: commande moteur

IS

IR

X

1

2

X

IS

t

IR

t

X

t

50

S

R

Page 51: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Temporisateurs

Temporisateur : La variable booléenne T1 deviens vraie

quand le temporisateur reste alimentée consécutivement

pour un temps

D = t * 0.01 s (t centièmes de seconds)

T1 est mise à zéro si le temporisateur n’est plus alimenté

Temporisateurs cumulatif: La variable booléenne T1

deviens vraie quand le temporisateur reste alimentée

consécutivement ou non pour un temps

D = t * 0.01 s (t centièmes de seconds)

T1 est mise à zéro par une bobine Reset.

T1

t

T1R

t

T1

R

51

Un temporisateur (timer) impose un délai prédéterminé entre un front

montant à l’entrée et à la sortie du temporisateur.

Page 52: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Exemple temporisateur

T1 50

T2R 100

T2

R

I1 I2

1

2

I2 T2

I1

t

0.5s 0.5s

I2

t

T1

t

T2

t

R-T2

t

52

Page 53: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Compteur

Le compteur a une variable interne à 16 bits qui compte

les impulsions reçues.

La variable booléenne C1 devient vraie si la variable

interne dépasse n.

La bobine Reset mets à zéro la variable interne et donc

la variable booléenne C1 aussi.

C1

n

C1

R

53

Un compteur sert à compter des impulsions (front montant) et à

avertir le programme lorsqu’un nombre prédéterminé d’impulsions

ont été reçues.

Page 54: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Exemple compteur

C1 3

C1

R

1

3

I2 C1

I1 O C1

2

I1

I1

t

I2

t

C1

t

O

t

R-T2

t

54

Page 55: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Saut

Si I est vraie saute à LBL A

Jump = saut

Label = étiquette

55

A

JMP 1

50

I

2

A

LBL

51

3

Page 56: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Sous-programme

Si I est vraie on exécute le sous-

programme A. Terminé le sous-

programme on retourne à

l’instruction suivante.

SBR: Sub-routine = sous-programme

JPR: Jump sub-routine

Le sous-programme peut être utilisé

dans plusieurs parts du programme.

A

JSR 1

50

I

2

A

SBR

70 RET

51

56

Page 57: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Master Control Relay

Si I est vraie on exécute les

instructions entre les deux

bobines MCR.

Si I est fausse on n’exécute pas

les instructions entre les deux

bobines MCR et toutes bobines

internes (sauf bobines Set) sont

mises à zéro.

MCR 1

I

2

70 MCR

Zone Control Last State (ZCL): même structures mais si I est fausse toutes

bobines entre les deux bobines MCR gardent le valeur précèdent.

57

Page 58: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

LD – Autres opérations

Fonctions logiques, mathématiques, gestion de la mémoire, communication.

La fonction Instruction est exécuté avec les arguments

Oper-1, Oper-2, …, Oper-n

Instruction

Oper-1

Oper-2

.

.

Oper-n

ADD: addition

MUL: multiplication

AND: multiplication binaire bit à bit

OR: addition binaire bit à bit

NEQ: test pour inégalité

PID: commande PID

SEND: envoie données à autre API en réseaux

GET: obtiens données de autre API en réseaux

RSD: décale un mot d’un bit à droit

Exemples

58

Page 59: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Sommaire

• Introduction

• API: Définition et caractéristiques

• Ladder Diagram

• Sequential Functional Chart

• Traduction de SFC à LD

59

Page 60: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Sequential Functional Chart

• Langage de programmation inspiré du standard français GRAFCET

(GRAphe Fonctionnel de Commande Etape/Transition) développé en

France à la fin des année 70 par l‘AFCET.

• Devient standard IEC 848 en 1988.

• Appelé SFC (Sequential Functional Chart) dans le standard IEC 61131-3.

Langage graphique de haut niveau qui a une structure ressemblant à la

structure d’un réseau de Petri.

Le GRAFCET est dédié à la spécification, alors que SFC est plus appliqué à la

programmation.

60

Page 61: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Exemple

61

Démarre un moteur si le

bouton start est pressé et si on

n’est pas dans un condition

d’alarme.

Arrête le moteur si le bouton

stop est pressé ou si l’alarme

se déclenche.

Ordre d’exécution : du haut

vers le bas si non spécifié. Tr3 stop

2

Tr2 alarm

1

Tr1 start &

not alarm

moteur

ON

moteur

OFF

Page 62: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Etape

Transition

Liaison

orientée

62

SFC – Eléments de base

Symbolise un état ou une partie de l’état du système

Représentée par un carreau numéroté i=1, 2 …

Peut avoir une action associée.

Indique la possibilité d’évolution qui existe entre deux étapes.

Représentée par un épais trait horizontal étiqueté Trj (j =1, 2 …)

Peut avoir une réceptivité Cj associée.

Lien que lie une étape avec une transition ou une transition avec

une étape.

Représentée par un fin trait vertical (et connections horizontales).

Si l’orientation est du haut vers le bas, aucune flèche est

nécessaire.

i

Trj Cj

2

1

Tr1

Tr2

Tr3

3

Page 63: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Exemple

63

Étapes

Étape 1 – action: « moteur OFF »

Étape 2 – action: « moteur ON »

Transitions

Tr1 – réceptivité: start & not alarm

Tr2 – réceptivité: alarm

Tr3 - réceptivité: stop

L’étape 2 est:

-en amont de Tr2 et Tr3

-en aval de Tr1

Tr3 stop

2

Tr2 alarm

1

Tr1 start & alarm _____

moteur

ON

moteur

OFF

Page 64: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Etape i; étape initial j

64

SFC – Etapes (1)

i j

i j Etapes actives

active non étape0

active étape1

iX

iX

i

i

Variable booléenne Xi associé à l’étape i

Xi

t

t /Xi /D

t

D

Variable booléenne t /Xi / D associé à

l’étape i (retarde d’activation de D)

Ex: t /X5 / 3s

Page 65: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

SFC – Etapes (2)

O : variable de sortie ou interne mise à 1 par l’action i O

Xi

t

O

t

Variable O = 1 si l’étape i est active

O = Xi

Autres types d’actions peuvent être définis.

Action O associée à l’étape i

Automates programmables industriels 65

Page 66: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Transitions (1)

Trj : étiquette de la transition (j = 1, 2 , …)

Cj : réceptivité de la transition

66

Trj Cj

La réceptivité est une fonction booléenne des variables d’éntrée ou internes ou

temporelles: elle peut être vraie (=1) or fausse (=0).

Ex:

Vraie si start=1 et alarm = 0

Tr1 start & alarm

_____

Tr2 t/X3/2s

Vraie si étape 3 active depuis 2/+ sec

Si toujours vraie, la réceptivité est omise ou indiqué =1. Tr4 =1

Page 67: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels 67

SFC – Transitions (2)

Une transition peut avoir plusieurs étapes en amont et en aval.

• Une transition est validée si toutes ses étapes en amont sono actives.

• Une transition est franchissable si est validée et sa réceptivité est vraie.

1

T1 C1

2

3 4

1

T2 C2=0

2

3 4

1

T3 C3=1

2

3 4

Non validée Validée

non franchissable

Franchissable

Page 68: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels 68

SFC – Transitions (3)

Une transition franchissable peut être franchie.

Le franchissement d’une transition entraine dans cet ordre:

•désactivation de toutes ses étapes en amont;

•activation de toutes ses étapes en aval

1

Tr3 C3=1

2

3 4

1

Tr3 C3

2

3 4

Franchissement de Tr3 1

Tr3 C3=1

2

3 4

Page 69: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Règles d’évolution

Règle 1 – Condition initiale (s’applique seulement au démarrage de l’API)

Les étapes initiales sont activées et les actions associées exécutées.

Règle 2 – Franchissement des transitions

Toutes transitions simultanément franchissable sont simultanément franchies.

Règle 3 – Evolution des étapes actives

Le franchissement d’une transition entraine dans cet ordre:

a) désactivation de toutes ses étapes en amont;

b) activation de toutes ses étapes en aval

Si une étape doit être simultanément désactivée et activée, elle reste active.

Règle 4 – Exécution des actions

Si une étape est active, les actions associées sont exécutées.

69

Page 70: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Exemple

70

Tr3

2

Tr2

1

Tr1

M

stop alarm

start = 0

alarm = 0

stop = 0

M = 0

entrées

sortie

Aucune transition

franchissable = état stable

On attends le prochain

évènement.

start & alarm

_____

Page 71: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Exemple

71

Tr3 stop

2

Tr2 alarm

1

Tr1

M

start = 1

alarm = 0

stop = 0

M = 0

Tr1 est franchissable

entrées

sortie

start & alarm

_____

Page 72: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Exemple

72

Tr3 stop

2

Tr2 alarm

1

Tr1

M

Aucune transition

franchissable = état stable

On attends le prochain

évènement.

start = 0

alarm = 0

stop = 0

M = 1

entrées

sortie

start & alarm

_____

Page 73: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Exemple

73

Tr3 stop

2

Tr2 alarm

1

Tr1

M

Tr3 est franchissable

start = 0

alarm = 0

stop = 1

M = 1

entrées

sortie

start & alarm

_____

Page 74: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Exemple

74

Tr3 stop

2

Tr2 alarm

1

Tr1

M

Aucune transition

franchissable = état stable

On attends le prochain

évènement.

start = 0

alarm = 0

stop = 0

M = 0

entrées

sortie

start & alarm

_____

Page 75: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Structure de base (1)

75

Saut d’étape

Quand a=1 avance de l’étape 1

mais si b=1 avance à 3 (étape 2

est sautée)

Reprise de séquence

Quand a=1 avance de l’étape 2 mais:

-Si b=1 étape 2 est répeté

-Si b=0 passe à 3

2

1

a & b

3

a & b

_

c c

2

1

a & b

3

a & b

_

Page 76: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Structure de base (2)

76

Aguillage (ou choix)

Apres l’étape 1 :

-Si a=1 avance à 2

-Si b=1 avance à 3

Convergence

On peut arriver à l’étape 6 soit par l’étape

4, soit par l’étape 5

3

1

b

6

a

2

f e

c d

4 5

& a & b

Attention: si a e b sont simultanément vraies les

étapes 2 et 3 sont activées au même temps.

Si ca n’est pas souhaité (parallélisme interprété):

-On peut donner priorité à a (en violet)

-On peut mettre un XOR (en azur et violet)

_ _

Page 77: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Structure de base (3)

77

Si a=1 on avance de l’étape 1 et les étapes 2

et 3 sont simultanément activées

Synchronisation (ou rendez-vous)

On peut activer 6 seulement si toutes les deux

branches on terminé (4 et 5 actives)

Parallélisme 1

6

a

2 3

4 5 Bra

nch

e 1

Bra

nch

e 2

b c

d

Les branches 1 et 2 sont exécutées en

parallèle dans n’importe quel ordre

Page 78: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Structure de base (4)

78

2

3

X13 12

11

X2

13

X2

_

S11

Master Slave

L’étape initiale 11 du slave est

activée au démarrage mais la

transition en aval est non

franchissable (réceptivité =0).

Quand l’étape 2 du master est

activée le slave peut procéder et

exécuter son sous-programme.

A la fin du sous-programme l’étape

13 est activée et la transition en

aval de l’étape 2 du master est

franchissable.

Quand l’étape 2 est désactivée, le

slave est réinitialisé.

Page 79: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Actions (1)

79

- O : variable de sortie mise à 1 par l’action

- <Q> : identifiant du type d’action

- <c> : condition (seul. pour actions conditionnelles) i O <Q>

<c>

Xi

t

O

t i O

ou

Actions continues - type N (non-stored)

i O N O = Xi

Variable O = 1 si étape i active

Type N peut être omis.

Action O de type <Q> associée à l’étape i

Page 80: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Actions (2)

80

Xi

t

O

t

i O P

Actions impulsionnelles – Type P (pulse)

O = front_montant(Xi) OR front_descendant(Xi)

Variable O = 1 à l’activation ou désactivation de l’étape i

Actions conditionnelles cond

Xi

t

cond

t

O

t

i O C

O = Xi AND cond

Variable O = 1 si étape i est active et cond est vraie

Action conditionnelle simple

– Type C

Page 81: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Actions (3)

D = 3s

i O L

O = Xi AND not(t /Xi / D)

Variable O = 1 si étape i est active mais pour une durée

limitée à D

Action limitée dans le temps

– Type L (limited)

Xi

t

t /Xi /D

t

D ______

O

t

D = 3s

i O D

O = Xi AND t /Xi / D

Variable O = 1 si étape i est active avec retard de D

Action retardée – Type D

(delay)

Xi

t

t /Xi /D

t

D

O

t

Page 82: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC – Actions (4)

82

Xi

t

Xj

t

O

t

Actions mémorisées

i O S

La variable O deviens vraie à l’activation de l’étape i et garde le valeur (set).

O est remise à zéro à l’activation de l’étape j (reset).

Action set – Type S

j O R Action reset – Type R

Page 83: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Sommaire

• Introduction

• API: Définition et caractéristiques

• Ladder Diagram

• Sequential Functional Chart

• Traduction de SFC à LD

83

Page 84: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Traduction de SFC à LD

Un programme Sequential Functional Chart peut être traduit en un

programme Ladder Diagram pour l’exécution sur un API qui

n’utilise pas l’SFC.

• Algorithme sans recherche de stabilité

• Procédure de traduction standard et automatique

• Temps d’exécution n’augmente pas beaucoup

• Programme plus lisible

• Exécution du programme non optimisée

• Occupation mémoire EPROM augmente beaucoup

84

Page 85: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC→LD: Algorithme RS

T1 C1

1

3

T2 C2=1

2

T4 C3=0

T1 C1

1

3

T2 C2=1

2

T4 C3=0

Cycle k

C1=1 L’action O associée à

l’étape 2 n’est pas

exécutée.

85

Algorithme à recherche de stabilité (RS): si, à un moment donné, l’état des entrées et

des variables internes permet le franchissement consécutif de plusieurs transitions, ce

franchissement se fera dans le même cycle machine.

O O

Page 86: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC→LD: Algorithme RS

Algorithme à recherche de stabilité

Mémoriser

les entrées

Affecter

les sorties

1re cycle OUI NO

Ètat stable OUI NO

86

Détermination transitions franchissables

Détermination du nouvel état

Activer étapes initiales

Page 87: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Algorithme sans recherche de stabilité (SRS): si, à un moment donné, l’état des entrées

et des variables internes permet le franchissement consécutif de plusieurs transitions, ce

franchissement se fera au rythme d’une transition par cycle machine [problème si

l’environnement change].

T1 C1

1

3

T2 C2=1

2

T4 C3=0

T1 C1

1

3

T2 C2=1

2

T4 C3=0

Cycle k

C1=1 T1 C1

1

3

T2 C2=1

2

T4 C3=0

Cycle k+1

87

O O O

SFC→LD: Algorithme SRS

Page 88: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC→LD: Algorithme SRS

Algorithme sans recherche de stabilité

Activer étapes initiales

1re cycle OUI NO

Détermination transitions franchissables

Détermination du nouvel état

88

Mémoriser

les entrées

Affecter

les sorties

Page 89: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC→LD: Algorithme SRS

L’algorithme sans recherche de

stabilité est similaire au cycle

séquentiel qui caractérise les

API

89

Page 90: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

SFC→LD: Procédure

La procédure de traduction d’un SFC sans recherche de stabilité en LD

nécessite 4 phases (chacune qui corresponds à une partie du programme écrit

dans cet ordre)

1. Initialisation (seulement au première cycle): les étapes initiales sont activées

et on saut à 4 pour exécuter les actions correspondants.

2. Détermination de transitions franchissables

3. Franchissement des transitions et mis à jour de l’état (désactivation des

étapes en amont et activation des étapes en aval)

4. Exécution des actions associées aux étapes actives

90

Page 91: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

1 - Initialisation

Initialisation (seulement au première cycle): les étapes initiales sont activées

et les actions correspondants exécutées.

a

JMP 1

k+4

W

2

a

LBL

3

W

S

k+2

k+3

actions

JMP

Activation première étape initiale Xin-1

S

Si on est au première cycle (W=0) on

active les k étapes initiales

in-1, in-2, …, in-k

W est mis à 1 : aux prochains cycles la

phase d’initialisations est sauté.

A la fin de l’initialisation on saute à

l’exécutions des actions associées aux

étapes initiales.

91

Activation dernière étape initiale Xin-k

S

.

.

.

.

.

.

Page 92: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

2 – Détermination des transitions

Détermination de transitions franchissables dans ce cycle (le nombre total de

transitions est m).

Tr2 C2

3

2 1

Tr1 C1

Tr1

1

X1

2

3

m

Détermination franchissement transition 3

Détermination franchissement transition m

X2 C1

Tr2 X3 C2

Dépend des étapes actives au cycle précédent et du valeur des entrées dans le

cycle en cours. Si la i-me transition est franchissable la variable Tri est vraie dans

le cycle en cours. 92

.

.

.

.

.

.

Page 93: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

3 - Mis à jour de l’état (1) Franchissement des transitions avec désactivation des étapes en amont et

activation des étapes en aval.

Tr2 C2

3

2 1

Tr1 C1

4

1

Tr1 X1

R

X2

R

93

2

Tr2 X3

R

m Désactivation étapes en amont transition m

.

.

.

.

.

.

Première partie: on spécifie les étapes en amont qui sont désactivées par

le franchissement de chaque transition

Page 94: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

3 - Mis à jour de l’état (2)

Tr2 C2

3

2 1

Tr1 C1

4

m+1

Tr1 X3

S

94

m+2

Tr2 X4

S

2m Activation étapes en aval transition m

.

.

.

.

.

.

Deuxième partie: on spécifie les étapes en aval qui sont activées par le

franchissement de chaque transition.

Un étape désactivée et activée dans le même cycle reste active.

Page 95: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

4 - Exécution des actions (1)

Exécution des actions associées aux étapes actives (le nombre total de étapes est p).

1

2

2

X1

3

X2 O1

1

actions

LBL

95

O1

3 O2

W1

C 4

X3 O2 W1

.

.

.

.

.

.

5

X4 O3

S 4 O3 S

Plusieurs cases possibles.

Page 96: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

4 - Exécution des actions (2)

Exécution des actions associées aux étapes actives (le nombre total de étapes est m).

Tr1 t/X6/3s

p+1 Exécution actions étape q

96

5 O2

1s

D 6

X5 Y2 T

T1 100

.

.

.

.

.

.

7

X6

T2 300

6

.

.

.

.

.

.

Page 97: C 652 Automates programmables industriels - lsis.org · C 652 Automates programmables industriels Alessandro GIUA LSIS UMR-CNRS 6168 Cours 8h ... Un API est en permanence en activité

Automates programmables industriels

Exemple - Perceuse

97

p = démarrage

a = fin course haut

m = moyenne course

b = fin course bas

x = contact pièce

y = pièce en place

S = remontée

D = descente

R = rotation

O = huilage

• Après démarrage si pièce en place actionne perceuse (set R et descend).

• Si pièce non épaisse (m avant x) perce jusqu’à b.

• Si pièce épaisse (x avant m) perce jusqu’à m, remonte, huile pour 2s et

redescend en perçant jusqu’à b.

• Arrivé à b remonte et arrête la perceuse.

• Réinitialise quand la pièce est retirée.