Vous êtes sur la page 1sur 45

LES AUTOMATISMES

LA
PROGRAMMATION

GJC

Lyce L.RASCOL 10, Rue de la Rpublique


BP 218. 81012 ALBI CEDEX

SOMMAIRE
LA NORME CEI 1131
I.
II.
III.
IV.
V.

La norme CEI 1131


Les langages de programmation
Units dorganisation de programmes
Structure dun programme
Travail sur bits

LA PROGRAMMATION DU GRAFCET
V1.
VI.
VII.
VIII.
IX.
X.
XI.

Introduction
Langage SFC (CEI 1131)
Principes gnraux
Mthode synchrone
Mthode asynchrone
Programmation bistable
Implmentation du grafcet

LA NORME
CEI 1131

Page 1

TS CRSA

Automatismes

I.LA NORME CEI 1131


La normalisation des langages en informatique est un fait acquis (Pascal, C, C++, etc).
Cest un critre dachat, aujourdhui il nexiste plus sur le march des progiciels de ce type
qui ne respecterais pas les normes. En automatismes, bien que la part des automates
programmables dans les systmes automatiss soit trs importante, la diversit est de rgle. La
part du logiciel devenant de plus en plus importante dans les applications, la ncessit de
passer dune programmation quasi artisanale une certaine harmonisation sest petit petit
imposer aux utilisateurs ainsi quaux constructeurs.
Les besoins dune normalisation des langages pour API sexprime, pour les industriels, en
termes de:
faciliter la formation des ralisateurs de configurations dautomates programmables
obtenir un bon niveau de portabilit des programmes
favoriser la cration de bibliothques de blocs fonctionnels fiables
faciliter les configurations en rseau dautomates
amliorer la qualit des applications (sret de fonctionnement, maintenabilit,
extensibilit)
rutiliser les outils de configuration et de programmation
produire des dossiers dapplications homognes
faciliter la maintenance du logiciel dapplication
Le CENELEC (Comit Europen de Normalisation Electrotechnique) a adopt en 1993 le
texte (65B) de la CEI (Commission Electrotechnique Internationale) comme norme EN 61131
pour la commande des processus industriels. Cette norme traite des automates programmables
en 5 parties :
CEI 1131-1 dfinitions1 , informations gnrales.
CEI 1131-2 spcifications et essais matriels
CEI 1131-3 langages de programmations
CEI 1131-4 documentations
CEI 1131-5 communications
Loriginalit des langages de programmation pour automates est quils sont gnralement
imags par rapport lexpression de la commande des machines automatises. Ils sont
souvent graphiques et depuis 20 ans des formes de langages se sont dgags et sont mise
disposition par les constructeurs dAPI (liste dinstruction mnmonique, rseau contacts,
GRAFCET).
La norme commence tre utiliser, des associations dutilisateurs se sont cres en France et
en Europe (EXERA, PLCopen) pour certifier des produits un niveau de conformit de
base et un niveau de probabilit. Chez les constructeurs des langages de programmation
proches sont annoncs (XTel et PL7Micro pour tlmcanique, SFCdAllen Bradley, Step5
et 7 de Siemens, etc) des test de conformit sont fait par le CETIM relatifs aux
prescriptions et la syntaxe. Les nouveaux ateliers logiciels pour le Gnie automatique sont
dvelopps pour fonctionner sur des PC avec des interfaces standard et des langages
normaliss.

1
Automate Programmable (AP) Systme lectronique fonctionnant de manire numrique, destin tre utilis dans un
environnement industriel, qui utilise une mmoire programmable pour le stockage interne des instructions orientes
utilisateur aux fins de mise en uvre de fonctions spcifiques, telles que des fonctions de logique, de mise en squence de
temporisation, de comptage et de calcul numrique, pour commander au moyen dentres et de sorties tout ou rien ou
analogiques divers types de machines ou processus. LAP et ses priphriques associs sont conus pour pouvoir facilement
sintgrer un systme dautomatisme industriel et tre facilement utiliss dans toutes leurs fonctions prvues.

Page 2

TS CRSA

Automatismes

L'tude de la norme nous permettra de constater des principes largement prouvs par le
Gnie logiciel tels que la structuration et la modularit. De distinguer les modules logiciels
des langages dans lesquels ils peuvent tre crits. De faire la diffrence entre le modle de
spcification et le langage de programmation (code automate).
La norme CEI 1131 sapplique aux automates programmables industriels et leurs
priphriques. Les objectifs sont:
donner les dfinitions et identifier les principales caractristiques permettant de
slectionner et utiliser les automates programmables et leurs priphriques associs.
dterminer les prescriptions minimales relatives aux caractristiques fonctionnelles,
aux conditions de service, aux caractristiques constructives, la scurit gnrale ainsi
quaux essais applicables aux automates programmables et leurs priphriques.
dfinir pour les langages de programmation les principaux champs dapplications, les
rgles syntaxiques et smantiques ainsi que des ensembles de base simples mais exhaustifs
dlments de programmation.
fournir lutilisateur des informations gnrales didactiques et des recommandations
quant son application.
La partie 3 de cette norme dfinit :
Les langages de programmation
Les modules logiciels ou units dorganisation de programmes
I.1. Ateliers logiciels
I.1.1 Latelier de Gnie Automatique
La complexit des traitements est induite par laugmentation de la taille et par la multiplicit
des fonctions demandes lAPI. Les fonctions classiques (combinatoire, squentiel)
reprsentent environ un tiers du logiciel dvelopper pour une application, le reste est
souvent destin:
laide la maintenance et au diagnostic de panne
la communication
aux fonctions spcifiques (rgulation)
aux fonction de commande daxes,
Latelier logiciel vise rpondre au problme et est compos dune gamme de produits dont
certains peuvent tre vendus sparment.
structuration dune application (architecture
de commande)
Atelier de Gnie automatique
conception, codage, test
Atelier logiciel
gestion du processus de dveloppement (#
environnement
Ensembles logiciels
structure daccueil
versions, projet, )
Windows
production des documents
OS2
UNIX
maintenance
Outils dadaptation
communication avec dautres outils de
CAO,
Matriel
Latelier de Gnie automatique ci-dessous est
compos dune partie matrielle (PC ou station
de travail) et dun atelier logiciel conu dans un
souci
dergonomie.
Des
environnement
graphiques diffrents peuvent tre utiliss (OS2, Windows, Unix ), leur contribution est
importante par rapport des logiciels sous DOS.
I.1.2. Latelier logiciel et les configurations dAPI
Les potentialits des API sont dtermines par des fonctions programmables que lon peut
subdiviser en groupes orients application . Dans le cadre dune application, la partie

Page 3

TS CRSA

Automatismes

matrielle qui assure ces diffrentes fonctionnalits et les priphriques associs constituent
une configuration dautomate programmable2 .
Les ateliers logiciels disposent de mcanismes et de fonctionnalits communes , et sappuient
sur la norme CEI 1131.
I.1.3 Modle logiciel
Le modle logiciel crit en langage volu se compose dlments qui sont :
Les programmes et les blocs fonctionnels
Les lments de configuration
- configuration
- ressources
- tches
- variables globales et chemin daccs
Reprise froid
Reprise de la configuration d'AP et de son programme d'application aprs que toutes les
donnes dynamiques {variables telles qu'image E/S, mmoires internes, temporisateurs,
compteurs, etc. et contextes du programme) aient t ramenes un tat prdtermin. Une
reprise froid peut tre automatique (par exemple aprs une coupure de courant, une perte
d'information dans la ou les parties dynamiques de la ou des mmoires, etc.) ou manuelle (par
exemple bouton de rinitialisation, etc.).
Reprise immdiate
Reprise aprs une coupure d'alimentation intervenant pendant le laps de temps maximal
fonction du processus allou la configuration d'AP pour rtablir son fonctionnement comme
s'il n'y avait pas eu de coupure d'alimentation. Toutes les informations d'E/S et toutes les
autres donnes dynamiques ainsi que le contexte du programme d'application sont restaure
ou demeurent inchangs.
Reprise chaud
Reprise aprs une coupure d'alimentation avec un ensemble de donnes dynamiques
prdtermin et programm par l'utilisateur et un contexte programme d'application
prdtermin par le systme. Une reprise chaud se caractrise par une signalisation d'tat ou
tout autre moyen apparent mis la disposition du programme d'application indiquant que
l'interruption d'alimentation de la configuration d'AP t dtecte en mode run

II.LES LANGAGES DE PROGRAMMATION


II.1. Les lments communs
La norme 61131.3 spcifie la syntaxe et la smantique dune srie unifie de langages pour
automate programmable. Elle se compose de cinq langages classs en trois familles:
Langages LITTERAUX
Langage IL : liste dinstructions
Langage ST : littral structur
Langages GRAPHIQUES
Langage LD : langage contacts (Ladder)
Langage FBD : diagramme fonctionnel logigramme
Langage SFC : diagramme fonctionnel en squence GRAFCET

Configuration dAP : Configuration ralise par lutilisateur et comportant un automate programmable et des
priphriques associs, ncessaires au systme automatis prvu. Elle consiste en des units interconnectes au moyen de
cbles ou de raccords enfichables pour linstallation permanente, et au moyen de cbles ou dautres dispositifs pour des
priphriques portables et transportables.

Page 4

TS CRSA

Automatismes

Les reprsentations des donnes, dans les divers langages de programmation dautomates
programmables, doivent se composer de libells numriques, de cordons de caractres et de
libelles de datation.
Libells numriques;
Libells entiers -----> -12 ; 0 ; +986 ; 123
Libells rels ------> -12,0 ; 0,0 ; 0,45623 ; 3,1416 ; 1,34E-1,2
Libells de cordons de caractres;
Squence de zro plusieurs caractres prcde et termine par une apostrophe
(),A
Libells de datation ; ncessit de distinguer deux types de donnes temporelles:
Relative la dure pour la mesure et le contrle du temps coul, TIME #10s
Relative lheure du jour pour lexpression dune date, DATE # 2000-10-28
Identificateurs
Un identificateur est un cordon de lettres de chiffres et de caractres de soulignement qui doit
commencer par une lettre ou par un caractre de soulignement.
Les identificateurs ne doivent pas comporter de caractres d'espaces intercalaires (SP).
Exemple : Cs_tpav, dcy,
Commentaires
Les commentaires de lutilisateur doivent tre respectivement dlimits, leur dbut et leur
fin, par la combinaison de caractres spciaux (* et *) .
Exemple : dcy : (* bouton poussoir dpart cycle *)
II.2. Les donnes
II.2.1 donnes lmentaires
Dfini le mot cl relatif chaque type de donne, le nombre de bits, la plage des valeurs
relative chaque type de donnes (tableau 10 annexe A)
II.2.2 donnes gnriques
Rassemblement de donnes lmentaires dune mme famille, la hirarchie des types de
donnes gnriques est donne dans le tableau ci-dessous. Elles sont identifies par le prfixe
ANY (tableau 11 annexe A)
II.2.3 donnes drives
Les donnes drives sont celles spcifies par lutilisateur ou le fabricant et sont dclares
laide de la construction littrale:
TYPE
END_TYPE
II.3. Les variables
Les variables fournissent un moyen pour identifier des objets de donnes dont le contenu peut
varier, comme par exemple les donnes associes aux entres/sorties.
II.3.1 variable un lment
Une variable un seul lment est dfinie comme une variable qui reprsente une valeur
mono lment. La reprsentation dune variable un seul lment est assure par le symbole
% combin avec un prfixe demplacement et un prfixe de taille.

Page 5

TS CRSA

Automatismes

II.3.2 variable plusieurs lments


Les variables plusieurs lments sont des tableaux et des structures. Les indices sont mis
entre crochets [ ] et spars par des virgules.
ARRAY [110 , 1 8]  tableau 2 dimensions 80 lments
II.3.3 dclaration de variable
Chaque unit dorganisation de programme doit comporter une partie dclaration qui spcifie
le type (et lemplacement si possible ) des variables utilises dans le module logiciel. Cette
dclaration se fait sous forme littrale en utlisant des mots cls (VAR END_VAR ) ou
sousn forme graphique. Les valeurs initiales peuvent tre donnes dans la dclaration.
Mot cl
VAR
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
VAR_EXTERNAL
VAR_GLOBAL
VAR_ACCES
RETAIN
CONSTANT
AT
END_VAR

Dsignation de la variable
interne au module
variable d'entre du module
variable de sortie du module
fournie par des entites et modifiable dans le module (A=A+1)
fournie par la configuration
dclaration de variable globale
dclaration de chemin d'accs
variable non volatile
constante
nonc d'emplacement
fin de dclaration

II.3.4 initialisation des variables


Chacune des variables associes llment de configuration et son programme peut prende
une valeur initiale.
II.4. Langage IL (Liste dInstructions)
Langage liste dinstructions (IL) est compos dune suite dinstruction, chaque instruction
doit dbuter une nouvelle ligne de programme et doit contenir un oprateur suivi dune ou
plusieurs oprandes. Linstruction peut tre prcde dune tiquette didentification avec (:)
Sil y a prsence dun commentaire il doit constituer le dernier lment de la ligne.
Le format dune ligne dinstruction et les oprateurs standards sont dfinis (tableaux 51&52
annexe A)

II.5. Langage structur ST


Le langage litteral structur est constitu dexpression litterale compose doprateur et
doprande libell conformment la norme. Les oprateurs boolens du langage ST sont
ressemblant aux prcdents, on retrouve : AND, OR, XOR, et NOT pour la complmentation
(voir tableau 55 annexe A).

Page 6

TS CRSA

Automatismes

Lcriture du programme se fait sous forme dnoncs littrale . Une ligne de programmation
peut avoir la structure gnrale suivante
Commentaires
Etiquettes : nonc ..
AFFECTATION
L'nonc d'affectation remplace la valeur actuelle d'une variable par le rsultat de
l'valuation d'une expression. Un nonc d'affectation doit se composer d'une rfrence
de variable gauche, suivie de l'oprateur d'affectation (:=), suivi de l'expression
valuer.
SELECTION
Les noncs de slection comprennent les noncs IF et CASE
L'nonc IF indique qu'un groupe d'noncs ne doit tre excut que si la valeur
prise par l'expression boolenne associe est 1 (vraie) ;THEN. Si la condition n'est pas
vrifie, soit aucun nonc n'est excut, soit le groupe d'noncs suivi du mot cl
ELSE doit tre excut.
L'nonc CASE se compose d'une expression qui doit tre value sur une
variable de type INT (que J'on appelle le "slecteur"), et d'une liste de groupes
d'noncs, chacun d'entre eux tant tiquet par une ou plusieurs plages de valeurs
entires. Cet nonc prcise que le premier groupe d'noncs, dont l'une des plages
contient la valeur calcule du slecteur, doit tre excut. Si la valeur du slecteur
n'apparat dans aucune plage d'aucun cas, la suite d'noncs qui suit le mot cl ELSE.
Dans le cas contraire aucune des suites d'noncs ne doit tre excut
ITERATION
Les noncs ditration comprennent les noncs FOR, WHILE et REPEAT
L'nonc FOR indique qu'une suite d'noncs doit tre excute de manire
rptitive jusqu' ce que le mot cl END-FOR soit atteint, une suite de valeurs
progressives tant affecte la variable de commande de la boucle FOR. La variable de
commande, la valeur initiale et la valeur finale doivent tre des expressions du mme
type entier (SINT, INT ou DINT). L'nonc FOR augmente ou diminue la variable de
commande d'une valeur initiale jusqu' une valeur finale par incrments dtermins par
la valeur d'une expression; par dfaut, cette valeur est 1.
L'nonc WHILE dclenche l'excution rpte de la suite d'noncs s'tendant
jusqu'au mot cl END-WHILE, jusqu' ce que l'expression boolenne associe soit
fausse. Si, l'origine, l'expression est fausse, le groupe d'noncs n'est pas excut du
tout.
L'nonc REPEAT entrane l'excution rpte (et au moins une fois) de la suite
d'noncs s'tendant jusqu'au mot cl UNTIL, jusqu' ce que la condition boolenne
associe soit vraie.
lnonc EXIT doit permettre de sortie de toutes les boucles ditrations
II.6. Langage FBD (langage en Blocs Fonctionnels)
Le langage FBD est un langage
graphique de programmation (type
logigramme) compatible avec la
norme CEI 617-12.

symbole

1
2
3

&
>=1
=1
1

4
5

dsignation

ET
OU
OU exclusif
galit
complment d'entre
complment de sortie

Page 7

TS CRSA

Automatismes

II.7. Langage contacts LD (Ladder)


Le langage contacts permet la programmation laide de symboles graphiques. Ces
symboles sont organiss en rseau relis gauche et droite des barres dalimentation.
N

Symbole

Dsignation

contact Normalement Overt

Contact Normalement Ferm

Contact dtection front montant

Contact dtection front descendant

bobinage

bobinage complment

bobinage SET (vrouillage)

bobinage RESET (dvrouillage)

bobinage Front M ontant

10

bobinage Front descendant

III.UNITES DORGANISATION DE PROGRAMMES.


III.1. Dfinition
Les units dorganisation de programmes, dfinies par la norme, sont aux nombre de trois:
la FONCTION
le BLOC FONCTIONNEL
le PROGRAMME
Ces units dorganisation de programmes (ou modules logiciels) peuvent tre fournies par le
constructeur dautomate programmable (modules standards), ou programmes par lutilisateur
laide des modules standards
III.2. La fonction
III.2.1 dfinition
La fonction est dfinie comme un module logiciel pouvant avoir plusieurs variables dentres,
mais une et une seule variable de sortie. Le lancement dune fonction dote des mmes
valeurs dentres doit toujours donner la mme valeur de sortie. Une fonction na donc pas
de mmoire.

III.2.2 reprsentation
Les fonctions peuvent tre reprsentes soit graphiquement, soit littralement(Voir annexe A)
Une entre EN ( Enable, validation) et une sortie ENO (pas derreur) boolenne
supplmentaire peuvent tre utilises.

Page 8

TS CRSA

Automatismes

III.2.3 dclaration
Une fonction doit tre dclare graphiquement ou littralement. La dclaration dune fonction
doit comporter les lments suivant.
le mot cl FUNCTION END_FUNCTION
la dclaration des variables uitlises par la fonction
le corps de fonction dans un des langages normalis.
Exemple:
Etude de la fonction pesage : poids NET = poids BRUT tare
FONCTION_PESEE
III.3. Le bloc fonctionnel
III.3.1 dfinition
Le bloc fonctionnel est dfini comme un module logiciel pouvant avoir plusieurs sorties. Le
bloc fonctionnel possde une mmoire interne, les variables internes sont transparentes pour
lutilisateur. Il est possible de crer plusieurs instances dun bloc fonctionnel, chaque
instances tant identifie par un nom.
III.3.2 reprsentation
La reprsentation dun bloc fonctionnel ou dune instance de bloc fonctionnel peut tre soit
graphique soit littrale.
La norme dfini un certains nombre de blocs, les blocs fonctionnels standards (mmoire,
tempo, ect ), mais des blocs fonctionnels utilisateur peuvent tre construit laide de
Fonctions et de Blocs fonctionnels standards.

III.3.3 dclaration
Un bloc fonctionnel peut tre dclar graphiquement ou littralement. Cette dclaration doit
comporter les lments suivant:
les mots cls FUNCTION_BLOCK END_FUNCTION_BLOCK
la dclaration des variables utilises par le bloc fonctionnel
la dfinition du corps du bloc fonctionnel
Exemple: Extrait de la norme EN 61131
Le bloc fonctionnel CMD_MONITOR correspond la commande dun ensemble
dexploitation qui ragit a un ordre de marche ( la sortie CMD) et renvoie un signal de bonne
excution (entre FDBK). Le bloc fonctionnel permet une commande manuelle
(MAN_CMD) ou auto (AUTO_CMD) suivant lentre AUTO_MODE. La vrification de
MAN_CMD se fait par MAN_CMD_CHK.

Page 9

TS CRSA

Automatismes

Si aucune confirmation de la commande CMD dans un delais (T_CMD_MAX) la commande


est annule et une alarme est signale.
Dclaration sous forme littrale

Corps du bloc fonctionnel en langage ST.

Corps du bloc fonctionnel en langage LD

Page 10

TS CRSA

Automatismes

III.4. Le programme
Le programme est dfini comme un ensemble logique de tous les lments et constructions
des langages de programmation ncessaires pour le traitement des donnes requis pour
contrler une machine ou un processus au moyen dune configuration dautomate
programmable .Un programme est construit laide de Fonctions et de Blocs Fonctionnels.
Un programme ne peut tre instanci que dans des ressources, alors que les blocs fonctionnels
ne peuvent tre instancis que dans des programmes ou dans dautres blocs fonctionnels.
III.4.1 dclaration.
La dclaration et lutilisation de programmes sont identiques aux blocs fonctionnels :
mots cls PROGRAM END_PROGRAM
les dclarations de variables, un programme pouvant utiliser des variables globales ou/et
des chemins daccs.
Exemple : PROGRAM ESSAI_1
VAR_INPUT x : BOOL ; END_VAR
VAR_OUTPUT y : BOOL ; END_VAR
VAR_EXTERNAL z : WORD ; END_VAR
FB1 () ;
FB2 () ;
END_PROGRAM

Conclusion.
La conformit une norme est pour les utilisateurs un gage de qualit, de maintenabilit, et
d'volutivit. A la demande de certains constructeurs, des tets sont raliss par le CETIM3 et
de l'EXERA4qui ont pour objectifs de vrifier la conformit. La norme reprsente une
synthse d'un tat de l'art du gnie logiciel sur des principes prouvs tels que la structuration
et la modularit. Dans l'application de cette norme , il est important:
- de distinguer les modules logiciels des langages dans lesquels ils peuvent tre crits
- de diffrencier le modle de spcifications et le langage de programmation.
La dmarche, ci-contre peut tre mise en uvre pour mener une tude de comception
logicielle. Le bloc conception et le bloc ralisation n'ont pas obligatoirement les mmes
auteurs.

Centre Technique des Industries Mcaniques


Association des Exploitants dEquipements de Mesure, de Rgulation et dAutomatismes

Page 11

TS CRSA

Automatismes

IV.STRUCTURE DUN PROGRAMME


Le moniteur systme de lautomate grant lacquisition et laffectation des entres/sorties la
partie programme de lapplication de lutilisateur respectera lorganisation gnrale cidessous. Limplmentation des diffrents modules est fonction de la structure de la mmoire
programme de lautomate.
Avant tout travail de codage API, la configuration matrielle est obligatoire. Cette
configuration prvoit l'adressage des entres sorties, document important du dossier
d'automatisme, en fonction des caractristiques du matriel mis en service. Ce document
peut se prsenter sous la forme de tableaux directement accssibles dans latelier logiciel.

Page 12

TS CRSA

Automatismes

Exemple de spcification programme :


Etude du comparateur 4 bits
Deux valeurs A{a0;a1;a2;a3} et B{b0;b1;b2 ;b3} rpondant aux quations suivantes :
F(A>B)=a3./b3+(a3b3)a2/b2+(a3b3)(a2b2)a1./b1+(a3b3)(a2b2)(a1b1)a0./b0
F(A<B)= /a3.b3+(a3b3)/a2.b2+(a3b3)(a2b2)/a1.b1+(a3b3)(a2b2)(a1b1)./a0.b0
F(A=B)= (a3b3)(a2b2)(a1b1)(a0b0)

FONCTION_COMPA
(* dclaration des variables*)
VAR_INPUT
a : ARRAY[0..3] OF BOOL
b : ARRAY[0..3] OF BOOL
END_VAR
VAR_OUPUT
Sup : BOOL ; (*valeur A>B *)
Inf : BOOL ; (* valeur A<B *)
Egal : BOOL ; (* valeur A=B *)
END_VAR
VAR
Vi : ARRAY [0..15] OF BOOL ;
END_VAR

;
;

(*valeur des poids binaire de A*)


(*valeur des poids binaire de B*)

(* variables internes utilises *)

(* corps de fonction *)
Vi[0] := a[0] XOR b[0]
Vi[1] := a[1] XOR b[1]
Vi[2] := a[2] XOR b[2]
Vi[3] := a[3] XOR b[3]
Vi[4] := (NOT Vi[3]) AND (NOT Vi[2])
Vi[5] := (NOT Vi[4]) AND (NOT Vi[1])
Vi[6] := (NOT Vi[5]) AND (NOT Vi[0])
Vi[7] := (NOT Vi[3] AND NOTb[2] ANDa[2]
Vi[8] := Vi[4] AND NOTb[1] ANDa[1]
Vi[9] := Vi[5] AND NOTb[0] ANDa[0]
Vi[10] := (NOT Vi[3] AND NOTa[2] ANDb[2]
Vi[11] := Vi[4] AND NOTa[1] ANDb[1]
Vi[12] := Vi[5] AND NOTa[0] ANDb[0]
Sup := a[3] AND NOTb[3] OR Vi[7] OR Vi[8] OR Vi[9]
Inf := b[3] AND NOTa[3] OR Vi[10] OR Vi[11] OR Vi[12]
Egal := NOT ( Sup OR Inf )
END_FONCTION

Page 13

TS CRSA

Automatismes

V.TRAVAIL SUR BIT


L'objet de ce paragraphe est la programmation d'quations boolennes, combinatoires et/ou
squentielles. La norme dfini les fonctions et les blocs fonctionnels utilisables dans les
spcifications pour la programmation d'quations binaires.
V.1. Fonctions boolennes. (Voir annexe A)
V.1.1 fonctions boolennes standard.
V.1.2 fonctions spciales de traitement de cordons de bits.
Ces fonctions sont lies au dcalage droite ou gauche
V.2. Blocs fonctionnels. (voir annexe A)
V.2.1 blocs fonctionnels standards: Bistables et dtection de front
La sortie Q dun bloc fonctionnel front passe la valeur 1 au passage de 0 >1 de
lentre CLK dun bloc R_TRIG ou, de 1>0 pour un bloc F_TRIG , et reste 1 de
l'excution du bloc la suivante.
V.2.2 blocs fonctionnels de comptage
Les blocs fonctionnels standards de comptage sont au nombre de trois :
CTU bloc compteur
CTD bloc dcompteur
CTUD bloc fonctionnel mixte de comptage/dcomptage

V.2.3 blocs foctionnels de temporisation

Page 14

TS CRSA

Annexe A

Automatismes

Norme 61131

Elments communs

identificateurs
Un identificateur est un cordon de lettres. de chiffres et de caractres de soulignement qui doit
commencer par une lettre ou par un caractre de soulignement.
Les identificateurs ne doivent pas comporter de caractres d'espaces intercalaires (SP).
Exemple : Cs_tpav, dcy,
commentaires
Les commentaires de lutilisateur doivent tre respectivement dlimits, leur dbut et leur
fin, par la combinaison de caractres spciaux (* et *) .
Exemple : dcy : (* bouton poussoir dpart cycle *)

Page 15

TS CRSA

Automatismes

Le Langage IL (Liste dInstructions)

Page 16

TS CRSA

Automatismes

Le Langage ST (littral structur)


Le langage littral structur est constitu dexpression. Une expression est une construction
syntaxique qui, lorsquelle est value, fournit une valeur correspondante lun des types de
donnes dfinies. Les expressions sont composes doprateur et doprandes..

Les Langages Graphiques


Les langages graphiques sont le langage contacts (LD) et le langage en blocs fonctionnels
(FBD).

Page 17

TS CRSA

Automatismes

UNITES DORGANISATION DE PROGRAMMES


LES FONCTIONS

LES BLOCS FONCTIONNELS

Page 18

TS CRSA

Automatismes

Page 19

TS CRSA

Automatismes

Page 20

TS CRSA

Automatismes

LA
PROGRAMMATION
DU GRAFCET

Page 21

TS CRSA

Automatismes

VI.INTRODUCTION
La programmation ou l'implantation ou l'implmentation du GRACET dans un automate
programmable comporte , d'un point de vue du programmeur, plusieurs volets :
VI.1. Volet de programmation.
La saisie du GRAFCET, soit au moyen d'une console ddie du constructeur, soit par des
moyens informatiques (Atelier de programmation) est fonction du type de langage disponible
au niveau de l'automate.
PROGRAMMATION DU GRAFCET

Langage
dAUTOMATISMES
Traduction
sous
forme
d quations
logiques
en
langage (CEI 1131) LD, IL,
ST, FDB.

Langage
GRAFCET
Saisie directe langage SFC (CEI 1131).
Langages orients grafcet :
- code constructeur
- registres pas pas

DEUX METHODES
SYNCHRONE
Activation/dsactivation

Langage
INFORMATIQUE
Langages volus type C,
Pascal, Basic complts
dinstructions temps rel
(E/S, tempo, compteur ..)

ALGORITHME

ASYNCHRONE
Appel/rponse

VI.2. volet machine (API)


Un automate programmable est une machine synchrone par conception. Ce niveau de
synchronisme n'a pas de relle influence sur la programmation. Le principe de scrutation
squentielle et cyclique de l'API est important et doit tre pris en compte au moment de
l'criture programme (voir chapitre B).
Un niveau de synchronisme est mis en place la programmation en fonction du type de
GRAFCET implmenter en mmoire. De ce point de vue, on distingue trois classes de
GRAFCET pour la programmation.
Selon le point de vue ralisation (point de vue PC) le programmeur classe le grafcet selon
trois types ou familles en fonction des rgles utilises dans la description.
grafcet asynchrone : famille ou type 1
Grafcet ne mettant en uvre que les trois premires rgles d'volutions. Il peut utiliser les
variables d'activits (Xi) dans les rceptivits mais sans recours la rgle 4.
grafcet synchrone : famille ou type 2
Grafcet non hirarchis, mettant en uvre toutes les rgles d'volutions, notamment les rgles
4 et 5, sur un ou plusieurs graphes partiels. Il peut utiliser les variables d'activits (Xi) pour
de la synchronisation, mais ne comporte pas d'ordres de forage.

Page 22

TS CRSA

Automatismes

grafcet hirarchis : famille ou type 3


Exploite le concept de forage et peut comporter des grafcets partiels synchrones et/ou
asynchrones.
VI.3. Volet stabilit du grafcet
Cet aspect concerne le comportement attendu du Grafcet vis vis de ces entres / sorties
lorsque celui-ci comporte des tapes ou des situations instables.
VI.4. Volet rapidit de traitement
Il s'agit d'un besoin de plus en plus important en raison de l'accroissement de la complexit
des applications, complexit qui s'exprime en taille programme et donc en temps de scrutation
et de rponse.
La majorit des API fonctionne actuellement en mode asynchrone vis vis du traitement,
l'amlioration de la rapidit ne peut donc tre obtenue qu'au dtriment soit:
de la simplicit du programme
de la taille du programme.
Par trois techniques ou procds de programmation:
standard, exploration globale du programme
amlior: par exploration minimise au moyen de sauts conditionnels
scrutation situationnelle limit la seule situation actuelle.

VII.LE LANGAGE SFC


Voir annexe B
VII.1. Ltape
Le drapeau dtape est reprsent par la valeur logique dune variable binaire ***,X o
*** est le nom de ltape.
***,X = 1 si ltape correspondante est active
***,X = 0 si ltape correspondante est inactive.
Le temps coul, ***,T depuis lactivation de ltape est une donne de type time
VII.2. La transition
A chaque transition est associe une rceptivit rsultat sune expression boolenne.
VII.3. action
Une action, ou plusieurs actions doivent tre associes a une tape. Une action peut tre une
variable boolenne ou un ensemble dinstructions dans un langage dfini par la norme.
II.3.1 qualificatif daction
Un qualificatif daction doit tre associ chaque action.
qualificatif
N ou rien
R
S
L

explication
Non mmoris
Remise zro prioritaire
Positionn (mmoris)
Limit dans le temps

qualificatif
D
P

Page 23

explication
Temporis
Impulsion
Combinaison possible

TS CRSA

Automatismes

II.3.2 caractristiques du bloc daction

VII.4. exemple

1
Marche . OM

Commande d'un chariot de transfert.


Un chariot motoris transfre des produit du poste A au poste B
sur demande de l'oprateur par un bouton poussoir "marche".
Le retour du poste B vers A se fait aprs une temporisation
d'attente en B de 10mn (temps de dchargement).
Grafcet de fonctionnement.

Si /poste B : AVANT
Poste B

Arrire
Poste A

Poste B

10 mn /X3

Avant

Si /poste A : ARRIERE
Poste A

Page 24

TS CRSA

Automatismes

Dclaration littrale pour le programme CHARIOT


PROGRAMME_CHARIOT
VAR_INPUT
Dcy : BOOL ;
FcA : BOOL ;
FcB : BOOL ;
T/X3 :TIME :=t#10mn
END_VAR
VAR_OUPUT
KMAV :BOOL ;
KMAR :BOOL ;
VOM :BOOL ;
END_VAR

(*BP de marche*)
(*fin de course poste A*)
(*fin de course poste B*)
(*variable dattente en B, initialise 10mn*)

(*contacteur marche avant*)


(*contacteur marche arrire*)
(*voyant origine machine*)

Corps du programme CHARIOT en langage SFC sous forme graphique.


(* commande du chariot*)
(*commande voyant origine*)
fcA
| |

INIT

VOM
( )

Dcy &f cA
AV

KMAV

/fcB

fcB

ATT
ATT.T>=T/X3

AR

KMAR

/fcA

fcA

corps du programme chariot en langage SFC sous forme littrale.


(*commande du chariot*)
(*commande du voyant OM*)
INITIAL_STEP INIT : END STEP
VOM := fcA
TRANSITION FROM INIT TO AV
:= dcy & fcA ;
END_TRANSITION
STEP AV :

KMAV(fcB) ;
END_STEP
TRANSITION FROM AV TO ATT

:= fcB ;
END_TRANSITION
STEP ATT : END_STEP
TRANSITION FROM ATD TO AR

:= ATT.T>= t/X12 ;
END_TRANSITION
STEP AR :

KMAR(fcA) ;
END_STEP
TRANSITION FROM AR TO INIT

:= fcA ;
END_TRANSITION

Page 25

TS CRSA

Automatismes

VIII.PRINCIPES GENERAUX
L'acquisition est effectue de manire systmatique en dbut de traitement sur la quasi totalit
des API, mais doit tre programme sur les autres constituants. Certains API permettent des
acquisitions en cours de traitement et d'autres possdent la possibilit d'associer des entres
une tche de traitement rapide sous interruption. Laffectation des sorties est galement
implicite sur la majorit des automates actuels.
Toutes les mthodes d'implmentation du GRAFCET devront aborder les 5 points
suivants:
1 _ Initialisation :
Peut tre assure par la dclaration des tapes initiales (langage SFC) ou par
programmation dans le respect de la rgle 1 du grafcet. Gnralement excute la mise
sous tension.
2 _ Calcul des conditions dvolutions :
Doit permettre de respecter la rgle 2 et ventuellement la rgle 4. Associ au
franchissement dune transition, ce calcul peut concerner lensemble des transitions ou
seulement celles valides.
3 _ Calcul des conditions dactivation des tapes :
Correspond la rgle 3 du grafcet et si ncessaire la rgle 5
4 _ Combinatoire gnral :
Instruction de blocs fonctionnels standards ( tempo, compteur, )
5 _ Equations des sorties :
Calcul des quations logiques des actions associes aux tapes correspondant aux sorties
de la PC
Le dveloppement des langages grafcet graphique ne supprime pas la ncessit de bien
matriser les techniques de programmation du grafcet partir de langages boolens ou de
langages volus, car:
de nombreux API ne possdent pas encore cette forme de langage.
le constituant utilis peut tre universel ( micro ou mini ordinateur) ou au contraire
spcifique pour lequel le dveloppement d'un langage grafcet n'est pas justifi.
le besoin, li au niveau du grafcet et/ou la rapidit attendue, dpasse les
caractristiques de la solution constructeur( Hirarchie).
la comprhension fine de l'interprtation du grafcet et notamment des alas pouvant
survenir en raison de cette interprtation.
Le choix d'une mthode de programmation doit tre adapte au niveau de complexit de
l'application actuelle, mais aussi future, en cas de modifications du programme.
Le choix de la mthode de programmation doit prendre en compte le critre de rapidit, qui
peut orienter vers une mthode plus gnrale que celle priori suffisante pour le type de
grafcet programmer.

Page 26

TS CRSA

Automatismes

VIII.1. Matrialisation des composantes du Grafcet


VIII.1.1. concept dtape
Une tape peut tre active ou inactive. L'oprateur logique, image de l'tape, doit donc avoir
deux tats stables afin de mmoriser l'activation et la dsactivation de l'tape. Le profil de
l'oprateur ainsi dfini correspond la fonction MEMOIRE. La variable Xi reprsentant
ltape sera travaille selon le principe suivant.

III.1.2 concept de transition et rceptivit


Ce concept est l'lment li aux possibilits d'volution du GRAFCET. Les rgles 2 et 3
prcisent que l'volution ne peut avoir lieu que si : la transition est valid ET la rceptivit est
vraie

III.1.3 gnralisation des concepts


La gnralisation de ces deux concepts emmne la mise en uvre, pour chaque tape de
grafcet, de la fonction mmoire gnrale de l'automatisme.
La mmoire utilise est monostable et marche prioritaire, ce qui est la traduction
exacte du concept.
Equation gnrique :

Page 27

TS CRSA

Automatismes

IX.METHODE SYNCHRONE
La mthode synchrone ou mthode ACTIVATION / DESACTIVATION est la traduction
directe des rgles dvolutions du grafcet. La mthode activation/dsactivation sapplique
tous les grafcets (3 types). Elle permet de traiter la simultanite de franchissement, au sens
du grafcet5, par le calcul pralable de toutes les conditions dvolutions avant le calcul des
activations dtapes.
Le principe consiste lassociation dune mmoire chaque tape et au calcul des conditions
dactivation et de dsactivation en appliquant les rgles 2 et 3 du modle grafcet.
ACTIVATION : quation logique des conditions dvolutions dentre de ltape Xi ; mise 1
de la mmoire dtape.
DESACTIVATION : quation logique des conditions dvolutions de sortie de ltape Xi ;
mise 0 de la mmoire dtape.
i-1
r(i-1)
i
r(i)
i+1
r(i+1)

La mthode consiste lvaluation pralable de TOUTES les conditions dvolutions


AVANT deffectuer une seule volution, de sorte que la situation reste invariante
pendant la phase de calcul des activations dtapes.
Cette mthode de programmation comprend deux blocs distincts, obligatoirement
programms en suivant :
1 ) le calcul de toutes les conditions dvolution du grafcet
2 ) le calcul des activations dtapes du mme grafcet
IX.1. Equations dtape
Calcul des CE(i)

Ne pas confondre une volution simultane au sens du grafcet et au niveau du traitement. En effet, avec la
majorit des API, il nest pas possible dassurer une volution simultane de lensemble des transitions
franchissables, le traitement tant par essence squentiel.

Page 28

TS CRSA

Automatismes

Calcul des X(i)

IX.2. Programmation des quations


Toutes les tapes du grafcet programmer seront traduites partir des quations dfinies cidessus. Ces quations nutilisent que des donnes de type boolen, il faut donc utiliser des bits
internes pour matrialiser chaque variable d tape Xi.
1 tape = 1 bit
Dans la pratique on utilisera les donnes de type WORD (cordon de 16 bits) pour
implmenter un grafcet, ceci nous autorise 16 tapes, mais ne reprsente pas un nombre
limite dtape pour un grafcet.

Nous appliquerons le mme principe calcul des conditions dvolutions en utilisant un


deuxime mot.

Adressage
Adressage type : variable dtape Xi = donne de type bit ; W mm, xx
avec : mm : adresse du mot utilis
xx : bit du mot utilis pour ltape Xi
Adressage type : condition dvolution CEi = donne de type bit ; W nn, xx
avec : nn : adresse du mot utilis
xx : bit du mot utilis pour la condition CEi
Les adresses des deux mots seront choisies avec un certain rapport de faon faciliter la
lecture.

Page 29

TS CRSA

Automatismes

IX.3. initialisation
La rgle 1 stipule que tout grafcet doit tre initialis pour pouvoir voluer de faon correcte.
Elle dfini la situation initiale comme la ou les tapes actives au dbut du fonctionnement de
la partie commande. La matrialisation du grafcet dans lautomate programmable passe par
des mots internes (mot registre grafcet) utiliss de manire particulire.
Les API de dernire gnration possdent des bits systmes utilisables par le programmeur.
Ces bits dfinis par le constructeur sont grs par le systme, dans cette panoplie existe un bit
premier tour de cycle qui sera utilis pour linitialisation du grafcet la mise sous
tension.
Etape initiale

IV.3.1 modification des quations

Etapes non initiales

IV.3.2 travail sur mot

(X0 tape initiale)

MOVE

Page 30

TS CRSA

Automatismes

IX.4. Structure du programme de la mthode


Cette mthode ncessite cinq phases. La structure du programme aura la forme ci_dessous

Exemple de programmation : grafcet GRAF_1


OM = a ./d
INITIALISATION
Wmm := 1
CALCUL des CONDITIONS dEVOLUTION
CE1 = X0 . m . OM
CE2 = X1 . /a
CE3 = X2 . /b
CE4 = X3 . d . c
CE0 = X4 . /d . /c
CALCUL DACTIVATION DETAPE
X0 = CE0 + (X0 . /CE1)
X1 = CE1 + (X1 . /CE2)
X2 = CE2 + (X2 . /CE3)
X3 = CE3 + (X3 . /CE4)
X4 = CE4 + (X4 . /CE0)
COMBINATOIRE GENERAL
OM = a . /d
EQUATIONS DES SORTIES
S10 = X1 + X2
S20 = X2 + X4
S30 = X3 . /c

Page 31

TS CRSA

Automatismes

X.METHODE ASYNCHRONE
La mthode de programmation asynchrone ou APPEL/REPONSE du grafcet est une mthode
simple mettre en uvre et qui ne peut sutiliser que pour des grafcets de type 1 (famille 1).
La condition denclenchement de la mmoire dtape correspond lAPPEL et le
dclenchement la REPONSE.
APPEL : mise 1 de la mmoire dtape, correspond la condition dvolution de la
transitions dentre de ltape.
REPONSE : mise 0 de la mmoire tape, correspond lactivation de ltape suivante.
i-1
r(i-1)
i
r(i)
i+1
r(i+1)

Equation :

X.1. programmation de lquation


Toutes les tapes du grafcet programmer seront traduites partir de lquation dfinie cidessus. Cette quation nutilise que des donnes de type boolen, il faut donc utiliser des bits
internes pour matrialiser chaque variable d tape Xi.
1 tape = 1 bit
Comme dans la mthode prcdente on utilisera les donnes de type WORD (cordon de 16
bits) pour implmenter un grafcet, ceci nous autorise 16 tapes, mais ne reprsente pas un
nombre limite dtape pour un grafcet.
Adressage type : variable dtape Xi = donne de type bit ; W mm, xx
avec : mm : adresse du mot utilis
xx : bit du mot utilis pour ltape Xi

Page 32

TS CRSA

Automatismes

X.2. initialisation
Linitialisation se fait de la mme faon que dans la mthode prcdente
V.2.1 modification de lquation
V.2.2 travail sur mot
X.3. Structure du programme
Cette mthode est lquivalent programm des squenceurs cabls. Elle utilise un minimum
de donnes mmoire et ce structure de la faon suivante :

Exemple de programmation : grafcet GRAF_1


OM = a ./d
INITIALISATION
Wmm := 1
CALCUL DACTIVATION DETAPE
X0 = (X4 . /d . /c ) + (X0 . /X1)
X1 = (X0 . m . OM) + (X1 . /X2)
X2 = (X1 ./a) + (X2 . /X3)
X3 = (X2 ./b) + (X3 . /X4)
X4 = (X3 ./d ./c) + (X4 . /X0)
COMBINATOIRE GENERAL
OM = a . /d
EQUATIONS DES SORTIES
S10 = X1 + X2
S20 = X2 + X4
S30 = X3 . /c

Page 33

TS CRSA

Automatismes

X.4. Comparaison des deux mthodes

La mthode appel/rponse est une mthode simple implmenter, peu consommatrice de


donnes automate mais qui trouve rapidement ses limites.

XI.PROGRAMMATION BISTABLE
La majorit des automates programmables actuels possdent des adresses de bits bistables
dans la mmoire de donnes. Laccs ces bits saccompagne gnralement par les
instructions SET et RESET, ou par lutilisation de blocs fonctionnels (norme 1131-3) du
type RS.

Lutilisation en programmation des bits bistables permet, dans la majorit des automates et
pour une grande partie des grafcets, de ne pas avoir calculer les conditions dvolutions si
lon prend la prcaution de regrouper les activations et les dsactivations dans le programme.
La structure du programme peut alors avoir deux organisations suivant la technique utilise.

Page 34

TS CRSA

Automatismes

XII.IMPLEMENTATION DU GRAFCET GLOBAL


XII.1. Grafcet structur
Le concept de macro reprsentation, utilis dans le cas de la description du Grafcet de
Production Normale (GPN), ne prsente pas de problmes particuliers. La programmation est
fonction de loutil de dveloppement utilis.
1 cas :
Le jeu dinstruction de lautomate inclut la programmation des macros-tapes, il suffit dans
ce cas de respecter la syntaxe donne par le constructeur.
2 cas :
Le passage au point de vue PC du grafcet oblige interprter les macros-tapes par des
grafcets connexes boucls.

La programmation suivant la mthode Activation-Dsactivation est applicable dans son


intgralit
Rappel :
La programmation synchrone utilise la notion de calcul des conditions dvolution et de
calcul dactivation dtape. Ceux-ci se programmes dans deux modules diffrents utilisant des
mots diffrents:
module 1 : calcul des conditions dvolutions utilisant un mot
module 2: calcul des activations dtapes utilisant un mot diffrent souvent appel: mot
REGISTRE grafcet.

Page 35

TS CRSA

Automatismes

XII.2. Grafcet hirarchis


La programmation dune structure hirarchise ncessite lapplication dune mtargle de
stucturation du programme. Le traitement est structur en mtamodules, chaque
mtamodule est associ un seul niveau de grafcet.

Rgle 1 : Traiter les mtamodules dans lordre de la hirarchie dcroissante


Rgle 2 : Pour chaque mtamodule, SI et seulement SI ce niveau nest pas forc :
effectuer la traitement correspondant au grafcet
excuter les actions de forage de niveau infrieur
Rgle 3 : Sauter le traitement des grafcets partiels forcs
Rgle 4 : Effectuer les actions opratives de tous les mtamodules en fin de programme

Page 36

TS CRSA

Automatismes

XII.3. Programmation des forages


Le forage dun grafcet , programm en mthode synchrone en utilisant des mots registres, se
fait par modification directe de la valeur du mot en utilisant le bloc fonctionnel de transfert de
valeur MOVE.
Mot Registre grafcet W10 # 8
Etape X0 bit 0
Etape X1 bit 1
Etape X2 bit 2
Etape X3 bit 3
Etape X4 bit 4
Etape X5 bit 5
Etape X6 bit 6

Situation vide : Le forage en situation vide [F/G# :{}] correspond au forage zro du mot
registre utilis pour le grafcet forc. Exemple

Situation initiale : Le forage en situation initiale [F/G# : (init)] correspond la mise 1


dans le mot registre utilis par le Grafcet des bits correspondant aux tapes initiales
Exemple:

Situation donne : : Le forage dans une situation donne [F/G# : (Xj)] correspond la mise
1 dans le mot registre utilis par le Grafcet du bit correspondant a l tape Xj
Exemple: [F/G# : (X3)]

Page 37

TS CRSA

Automatismes

Situation courante : Le figeage du grafcet [F/G# (*)] peut sobtenir de plusieurs faons:
1) Par blocage de son volution en travaillant au niveau des quations des conditions
dvolutions.
2) Par forage direct et permanent (dure du figeage) du mot registre utilis par le grafcet fig
en deux tapes :
- enregistrement permanent du registre du grafcet forc dans un registre tampon
- criture tout le temps du forage du registre forc par la valeur du tampon.
3) Par la programmation du saut de traitement du grafcet forc tout le temps du forage.

XII.4. Module logiciel de dmarrage


A la mise sous tension, lautomate programmable fait un certain nombre de tests internes
avant de commencer son cycle de scrutation. Pour une initialisation contrle de lapplication,
il est ncessaire deffectuer des commandes particulires en dbut de programme. Nous
appellerons cette phase: le module dinitialisation .
1 tour de cycle : Le premier tour de cycle est signal par un bit systme.

Le dverrouillage des sorties se fait par le Grafcet de scurit au moment de lalimentation


des sorties.

Page 38

TS CRSA

Automatismes

XII.5. Montage des quations de sorties


Pour le respect de la rgle de programmation des sorties (une seule quation par sortie), la
forme finale de lquation dune sortie aura la structure suivante.

Page 39

TS CRSA

ANNEXE B

Automatismes

Norme 61131

LANGAGE GRAPHIQUE SFC

Lextrait de norme suivant reprsente les lments du diagramme fonctionnel en squence (SFC)
destins tre utiliss pour la description dune unit dorganisation de programme en langage
Grafcet.

(a) ETAPES
Le tableau ci-dessous illustre la reprsentation dune tape.

Page 40

TS CRSA

Automatismes

TRANSITION

Page 41

TS CRSA

Automatismes

Page 42

TS CRSA

Automatismes

ACTIONS

Page 43