Académique Documents
Professionnel Documents
Culture Documents
Graf Cet
Graf Cet
ii
iii
I introduction
Le Grafcet est un outil graphique de dfinition pour l'automatisme squentiel, en tout ou rien. Mais il est
galement utilis dans beaucoup de cas combinatoires, dans le cas o il y a une squence respecter mais o
l'tat des capteurs suffirait pour rsoudre le problme en combinatoire. Il utilise une reprsentation graphique.
C'est un langage clair, strict mais sans ambigut, permettant par exemple au ralisateur de montrer au
donneur d'ordre comment il a compris le cahier des charges. Langage universel, indpendant (dans un
premier temps) de la ralisation pratique (peut se "cbler" par squenceurs, tre programm sur automate
voire sur ordinateur).
Ce document prcise le langage Grafcet. Vous n'y trouverez pas d'exemples simples (qui font pourtant partie
de la majorit des applications relles), il y en a un tas l'universit de BREST.
Voici d'autres liens importants sur le Grafcet :
un serveur Qubecois extraordinaire : DSC
le serveur "officiel" du Grafcet (AFCET, au LURPA Cachan)
un autre cours, par Emmanuel Geveaux
Remarque : le Grafcet est un langage d'origine franaise, et certains pays pensent que ce qu'ils n'ont pas
invent ne peut pas tre de haut niveau. Regardez ce trs bon site expliquant comment on programme un
automate sans Grafcet.
I introduction
II dfinitions
Un Grafcet est compos d'tapes, de transitions et de liaisons.
Une LIAISON est un arc orient (ne peut tre parcouru que dans un sens). A une extrmit d'une liaison il y a
UNE (et une seule) tape, l'autre UNE transition. On la reprsente par un trait plein rectiligne, vertical ou
horizontal. Un verticale est parcourue de haut en bas, sinon il faut le prciser par une flche. Une horizontale
est parcourue de gauche droite, sinon le prciser par une flche.
Une ETAPE correspond une phase durant laquelle on effectue une ACTION pendant une certaine DUREE
(mme faible mais jamais nulle). L'action doit tre stable, c'est dire que l'on fait la mme chose pendant
toute la dure de l'tape, mais la notion d'action est assez large, en particulier composition de plusieurs
actions, ou l'oppos l'inaction (tape dite d'attente).
On reprsente chaque tape par un carr, l'action est reprsente dans un rectangle gauche, l'entre se fait
par le haut et la sortie par le bas. On numrote chaque tape par un entier positif, mais pas ncessairement
croissant par pas de 1, il faut simplement que jamais deux tapes diffrentes n'aient le mme numro.
Si plusieurs liaisons arrivent sur une tape, pour plus de clart on les fait arriver sur une barre horizontale, de
mme pour plusieurs liaisons partant de l'tape. Cette barre horizontale n'est pas une nouvelle entit du
Grafcet, elle fait partie de l'tape, et ne reprsente qu'un "agrandissement" de la face suprieure (ou
infrieure) de l'tape. On accepte de remplacer cette barre par un point si cela ne cre aucune ambigut.
Une tape est dite active lorsqu'elle correspond une phase "en fonctionnement", c'est dire qu'elle effectue
l'action qui lui est associe. On reprsente quelquefois une tape active un intant donn en dessinant un
point l'intrieur.
Une TRANSITION est une condition de passage d'une tape une autre. Elle n'est que logique (dans son
sens Vrai ou Faux), sans notion de dure. La condition est dfinie par une RECEPTIVITE qui est
gnralement une expression boolenne (c..d avec des ET et des OU) de l'tat des CAPTEURS.
On reprsente une transition par un petit trait horizontal sur une liaison verticale. On note droite la
rceptivit, on peut noter gauche un numro de transition (entier positif, indpendant des numros d'tapes).
Dans le cas de plusieurs liaisons arrivant sur une transition, on les fait converger sur une grande double barre
II dfinitions
II dfinitions
horizontale, qi n'est qu'une reprsentation du dessus de la transition. De mme pour plusieurs liaisons
partant sous une transition.
II dfinitions
IV rgles d'volution
La modification de l'tat de l'automatisme est appele volution, et est rgie par 5 rgles :
R1 : Les tapes INITIALES sont celles qui sont actives au dbut du fonctionnement. On les reprsente
en doublant les cts des symboles. On appelle dbut du fonctionnement le moment o le systme n'a pas
besoin de se souvenir de ce qui c'est pass auparavant (allumage du systme, bouton "reset",...). Les tapes
initiales sont souvent des tapes d'attente pour ne pas effectuer une action dangereuse par exemple la fin
d'une panne de secteur.
R2 : Une TRANSITION est soit valide, soit non valide (et pas moiti valide). Elle est valide lorsque
toutes les tapes immdiatement prcdentes sont actives (toutes celles relies directement la double
barre suprieure de la transition). Elle ne peut tre FRANCHIE que lorsqu'elle est valide et que sa
rceptivit est vraie. Elle est alors obligatoirement franchie.
R3 : Le FRANCHISSEMENT d'une transition entrane l'activation de TOUTES les tapes
immdiatement suivante et la dsactivation de TOUTES les tapes immdiatement
prcdentes (TOUTES se limitant 1 s'il n'y a pas de double barre).
R4 : Plusieurs transitions SIMULTANEMENT franchissables sont simultanment franchies (ou du
moins toutes franchies dans un laps de temps ngligeable pour le fonctionnement). La dure limite dpend du
"temps de rponse" ncessaire l'application (trs diffrent entre un systme de poursuite de missile et une
ouverture de serre quand le soleil est suffisant).
R5 : Si une tape doit tre la fois active et dsactive, elle RESTE active. Une temporisation ou un
compteur actionns par cette tape ne seraient pas rinitialiss. Cette rgle est prvue pour lever toute
ambigut dans certains cas particuliers qui pourraient arriver dans certains cas :
La partie COURS s'arrte ici. Toute autre rgle que vous auriez pu entendre autre part ne fait pas partie du
Grafcet. Il faudra TOUJOURS que votre Grafcet vrifie ce qui a t dit ci dessus (sinon ce n'est pas du
Grafcet). Je tiens prciser que le Grafcet devra tre mis en oeuvre (cbl ou programm) et donc une
traduction de ce Grafcet en un schma ou une suite d'instructions sera ncessaire. Le rsultat de cette
traduction, mme s'il ressemble quelquefois un Grafcet, ne peut pas imposer de nouvelles rgles au Grafcet
(qui dirait par exemple que le cas propos aprs la rgle 5 est interdit en Grafcet)
IV rgles d'volution
V configurations courantes
divergence en OU :
Convergence en OU :
Convergence en ET :
On appelle couramment BARRE DE ET la double barre, mais attention ce n'est pas une entit part mais une
partie d'une transition.
Dtaillons galement le saut avant (si a alors ...) et les boucles (rpter ... jusqu' c). Ce sont les deux seules
possibilits avec des OU: il ne peut y avoir de divergence en ou aprs une transition
Passons maintenant quelques problmes plus complexes (tirs de "Comprendre et matriser le Grafcet,
Blanchard, ed. Capadues"):
1 soient 4 tapes 1 4 et deux transitions de rceptivit t1 et t2. Construire la portion de Grafcet ralisant :
Quand 1 ET 2 actifs alors
si t1 passer en 3 (et dsactiver 1 et 2),
si t2 passer en 4 (et dsactiver 1 et 2),
V configurations courantes
V configurations courantes
sinon rester en 1 et 2
La solution cidessous est accompagne d'une reprsentation de type "rseau de Petri" pour bien montrer o
doivent se placer les convergences et divergences ( quoi doit tre relie 1?, quoi doit tre relie t1? ...). En
fait on trouve la solution facilement en analysant les cas d'volution (quand franchit t'on t1 ?). Il faut
souligner que l'ajout d'une tape intermdiaire n'est pas une bonne solution car tout passage d'une tape dure
un laps de temps (donc discontinuit sur les sorties = ala technologique)..
2 Problme du mme ordre : Quand (tape 1 et t1) OU (tape 2 et t2) alors passer en 3 ET 4:
3 si {tape 1 et [tape 2 ou (tapes 3 et 4)]} et transition t alors activer l'tape 5 (et dsactiver les autres).
V configurations courantes
VI Cas gnriques
1 priorit
2 travail la chane
3 ressource (ou smaphore)
Nous traitons ici des exemples gnriques, c'est dire que les problmes voqus ici se posent assez souvent,
et la mthode utilise pour les rsoudre pourra tre rutilise.
1 priorit
Soit un chariot se dplaant sur deux rails (action D vers la droite, G vers la gauche). Il comporte une pince
pouvant prendre une pice (PP, fin quand fpp) s'il se trouve sur le tapis A (capteur y) et qu'une pice est
prsente (capteur a) (idem en z si b). Puis il retourne en x, pose la pice (action DP, fin quand fdp) sur le
plateaux suppos en position haute (fv+). Celuici descend (V, jusqu' fv), un second vrin pousse la pice
(P+, fin quand fp+), puis le pousseur recule en fp, le plateau remonte en fv+ Le tapis de sortie C est suppos
toujours en mouvement. Les tapis A et B sont commands par des systmes non traits ici.
Effectuer d'abord un Grafcet linaire comprenant une seule voie d'arrive A. Puis l'amliorer en prvoyant les
retours des actionneurs en temps masqu (attention toutefois de ne pas endommager le pousseur). Puis
prvoir deux tapis d'alimentation A et B (en cas de pices en a ET b, prendre celle en a). Puis prvoir une
priorit tournante (en cas de conflit, prendre la voie qui n'a pas t servie la fois prcdente) attention, si
plusieurs pices arrivent sur la mme voie et aucune sur l'autre, ne pas bloquer le systme. Puis modifier la
rgle de priorit en donnant en cas de conflit la priorit celui qui n'en a pas profit lors du dernier conflit.
Pour grer la priorit tournante, remplacer la rceptivit de la deuxime
transition (note *) par :
VI Cas gnriques
VI Cas gnriques
qui signifie : arriv en y avec une pice en a et soit pas de pice en b, soit
priorit. sinon on continue et quoi qu'il arrive on s'arrte en z (le chariot
n'a pas de parachute), en rajoutant un second Grafcet dfinissant quelle
voie est prioritaire :
VI Cas gnriques
VI Cas gnriques
Les deux tapes initiales ne testent que leurs conditions initiales respectives (partie haute ou partie basse).
2 travail la chane
Soit une chane de remplissage de bidons d'huile. Un tapis roulant se dplaant par saccades (cadenc par un
systme suppos externe notre Grafcet, s'arrtant chaque nouvel appui de la came sur le capteur av) est
aliment manuellement (de temps en temps il manque des bidons). Trois postes sont prvus : remplissage (R),
bouchage (B) et enfoncement (E).
Un seul capteur dtecte la prsence d'un bidon en dbut de chane : pp. On dsire faire les 3 oprations
simultanment, sauf s'il n'y a pas de bidon sous le poste. S'il vous semble obligatoire de rajouter des capteurs,
vous n'avez RIEN compris au Grafcet puisqu'il vous faut un systme combinatoire (il vaut mieux alors cbler
en combinatoire chaque poste : avance tapis ET prsence bidon => effectuer l'action). On suppose que le tapis
est vide lors de l'initialisation.
L'tape 1 est constamment active. La dernire transition est appele "transition puits",
mais il tait possible de la relier l'tape 1. En fonctionnement normal, toutes les
tapes du Grafcet sont actives. Du point de vue commande, chaque opration
2 travail la chane
10
VI Cas gnriques
comportera plusieurs tapes (R = descendre l'entonnoir, ouvrir le robinet,...) dont une
seule sera active la fois). Chaque activation reprsente un bidon dans le circuit.
Cette mthode utilise au mieux le squencement du Grafcet, on peut maintenant rajouter des capteurs, mais
qui n'auront pour fonction que de vrifier le bon fonctionnement du systme. Dans tous les cas similaires, on
utilisera cette dmarche : faire le Grafcet pour une pice seule, puis le modifier pour grer l'ensemble des
pices, en vrifiant bien que jamais une mme tape ne corresponde 2 pices, on dcompose donc le
systme en tronons et on ne laisse entrer dans un tronon que s'il est libre. Exemples : atelier flexible (on
suit la pice pour chaque opration jusqu'au produit fini), montage (monter 2 pices ensemble correspond
une convergence en ET : de 2 tapes actives on arrive 1), chariots filoguids (si un tronon est occup,
essayer de le contourner par une voie libre)...
Au fond du puits de mine ndeg. i, un mineur remplit un chariot Xi. Quand il est plein (le chariot), il (le
mineur) appuie sur un bouton di. Immdiatement, le chariot se dplace dans la direction Bi jusqu'au poste de
dchargement, compos d'un tapis roulant en mouvement continu, et d'un vrin V qui retourne la benne. Si le
poste de dchargement est libre, le chariot avance jusqu'au capteur c, est dcharg puis s'en retourne en ai. Si
le poste est occup, il attend son tour en bi. Le poste de dchargement, commun plusieurs voies, n'est
utilisable que par une voie la fois. On l'appelle une "ressource physique". Traiter le cas de 2 voies (pas
ncessairement de la mme longueur).
11
VI Cas gnriques
Supposer que la ressource est occupe en utilisant le capteur c est IDIOT : et s'il est entre bi et c ? Et si le
temps de freinage l'a arrt juste ct de c ? Il faut utiliser les facilits squentielles du Grafcet autant que
possible (ne tester un capteur que quand c'est ncessaire). Un capteur ne doit servir que comme condition de
passage d'une tape une autre, mais pas pour vrifier un tat du systme qui dcoule du squencement
effectu (par exemple, une transition vrifie la prsence d'une pice, aucune action ne dplace la pice puis
on revrifie la prsence : Ce n'est cens que si l'on prvoit dans le Grafcet ce qu'il faut faire si la pice a
disparu). Ici, on utilise donc une tape (la ressource), qui est active quand la ressource physique est
disponible. Ds utilisation, on la dsactive, pour la ractiver quand on libre la ressource physique.
On pouvait galement rsoudre le problme par des Grafcets spars (un pour chaque chariot, un pour le
dchargement) synchroniss par des Xi. La seule diffrence est que n'ayant plus de divergence sous l'tape 3,
on risque d'oublier de traiter le cas d'arrive simultane en b1 et b2, cas arrivant assez rarement pour que l'on
ne dtecte pas le problme en phase d'essais, mais se produira de temps en temps en fonctionnement rel sans
que l'on puisse reproduire le problme lorsqu'un spcialiste sera prsent (seule solution : graphe des tats
accessibles).
12
13
14
15
16
Grafcet linaire
Il suffit d'utiliser une bascule RS par tape. Une tape est allume si l'tape prcdente est active et que la
rceptivit d'entre est vraie. Dans le cas d'un Grafcet linaire, on dsactivera une tape quand la suivante est
active. Ceci simplifie le cblage, mais ne respecte pas toutes les rgles du Grafcet (en fait cette mthode
fonctionne dans une trs grande majorit de cas, nous traiterons les cas litigieux plus loin dans ce document).
Soit le Grafcet :
On peut grer de diffrentes manires l'tape initiale. Dans la plupart des cas, le
plus simple est d'utiliser des bascules se mettant 0 la mise sous tension, et
d'initialiser l'automatisme l'aide d'un bouton que je noterai ici "init", qui peut
galement servir rinitialiser le Grafcet en cours de fonctionnement sans teindre
le systme.
Notons, pour l'tape numro i, son entre Set par Si, son entre Reset par Ri, sa sortie Qi. Etudions l'tape 2.
Elle s'allume si l'tape 1 est active et d est vrai (S2=Q1.d). Tout le temps quelle est active, la sortie X est
Ralisation par cblage
17
Il suffit de rpter cela pour chaque tape et relier le tout. Le schma de cblage du systme complet sera
donc (j'ai gard la mme disposition que le Grafcet, mais retourn de 90 degrs, les lectroniciens prfrent
les entres gauche et les sorties droite) :
L'tude de chaque tape est simple, la principale difficult est le routage (c'est dire relier le tout), surtout si
l'on veut faire un circuit imprim (o les croisements de pistes sont impossibles). D'autant plus que chaque
composant doit tre aliment, mais je n'ai pas reprsent ici les alimentations. Mais il existe dsormais de
bons logiciels de routage.
On peut dj conclure que si la mise en oeuvre d'un Grafcet par cblage n'est pas trs complique, la
modification est pour le moins difficile. En gnral, on prfrera refaire un nouveau cblage si l'on dsire
modifier le Grafcet. De mme, le cblage a intrt tre compltement test ds sa ralisation, la recherche
d'erreurs aprs coup tant bien plus difficile.
Exercice : cbler ce Grafcet de 5 tapes grant une amene de pices :
Cahier des Charges :
l'appui de d (dpart), on actionne un vrin monostable par l'action SV, jusqu' ce
Ralisation par cblage
18
Divergence simple en ET
Quand la transition est franchissable, il suffit d'allumer deux tapes au lieu d'une. Le seul problme est la
dsactivation de l'tape prcdente : il faut tre sr que les deux tapes suivantes ont eu le temps de prendre
en compte l'information d'activation avant de dsactiver la prcdente (si l'on dsactive ds qu'une des deux
est active, la seconde ne s'activera plus).
Ce cblage simple ne rpond pas aux rgles du Grafcet si 5 peut tre ractiv avant que 6 et 7 n'aient t
dsactives. Il en est de mme si l'tape 7 par exemple peut tre active d'une autre manire (convergence en
OU). Ces cas sont cependant trs rares dans la pratique.
Divergence exclusive en OU
Il n'y a aucun problme particulier.
Divergence simple en ET
19
Si la divergence n'est pas exclusive (les deux rceptivits peuvent tre vraies en mme temps), c'est un peu
plus compliqu, le mieux est de traiter les trois cas (l'une seule, l'autre seule, les deux).
Convergence en ET
Je ne fais pas le schma, il est vident : il faut que les (deux en gnral) tapes prcdentes soient actives, et
la rceptivit vraie, pour activer l'tape suivante, celle ci dsactivant les tapes prcdentes.
Convergence simple en OU
Vu le temps que je mets pour faire un schma (le seul outil dont je dispose est paintbrush, et comme je suis
en vacances je ne dispose que d'un portable cran monochrome, nom parfaitement choisi puisqu'il n'est
mme pas noir et blanc mais gris et gris), je me contente de l'expliquer (a vous fera un bon exercice).
On allume 8 si (6 et a) ou (7 et b). On teint 6 et 7 tant que l'on a 8. Evidement ceci ne fonctionne que si l'on
ne peut pas avoir simultanment 6 et 7 actives, mais j'ai bien dit (dans le titre cidessus) que je ne traite que
le cas simple, qui de plus se trouve tre aussi le plus courant.
Exercice rcapitulatif
Convergence en ET
20
Cblez ce Grafcet (il ne pose pas de problme particulier). Ce Grafcet regroupe les diffrents cas de
divergence convergence.
cliquez ici pour la solution
Quand 10 est actif (Q10) et bpauto vrai, en mme temps on essaie d'allumer 11 par S11 et de l'teindre par
R11. Mme en prenant une bascule priorit dclenchement, l'tat de 11 sera celui du dernier signal sur ses
broches, ce qui risque d'tre alatoire.
Ici, la solution est simple : une seule bascule suffit. Mais cet exemple montre bien le
Cas o cette mthode est mauvaise
21
Le problme vient de la dsactivation. Tous les composants ne peuvent pas avoir tous exactement un mme
temps de rponse. Donc puisqu'on active une tape quand la prcdente est active et la rceptivit est vraie, si
simultanment on dsactivait la prcdente il est possible que la suivante n'ai pas eu le temps de s'activer
avant que le signal ne disparaisse. La solution choisie est sure, mais l'information de dsactivation est
envoye bien plus longtemps que ncessaire. Pour tre sr du rsultat il faudrait mmoriser (dans une
bascule) l'tat de chaque transition. En ralisation lectronique ce n'est pas le prix qui poserait problme mais
la complication du circuit (dj assez complexe sans cela). En ralisation pneumatique ou lectrique
s'ajouterait le prix des composants.
mmorisation de la transition
Donc une solution respectant mieux les rgles du Grafcet consisterait utiliser une bascule pour chaque
transition. Elle est allume quand l'tape prcdente et la transition sont vraies, sa sortie active l'tape
suivante et dsactive la prcdente. Quand doit on teindre la bascule reprsentant la transition ? Le problme
reste donc entier. Une bonne solution est de le faire quand le franchissement a t effectu, c'est dire quand
la suivante est active et que la prcdente ne l'est pas. Attention, ce cas peut arriver sans que l'on soit pass
par cette transition (convergence en OU par exemple), mais dans ce cas on teint une transition qui l'tait
dj, ce qui n'est pas grave.
Faisons donc le schma de passage entre une tape 5 et une tape 6, relies par une transition de rceptivit a :
Cette mthode permet de rgler le cas o l'tape 5 risque d'tre ractive avant la dsactivation de 6.
On peut remarquer que l'on aurait obtenu peu prs le mme schma en modifiant le Grafcet pour qu'il
soit compatible avec la premire mthode, c'est dire empcher qu'il y ait deux tapes successives actives
en mme temps : il suffit d'intercaler une tape comme reprsent cicontre. C'est une mthode qui permet
d'avoir un Grafcet plus proche du cblage, donc un cblage plus clair.
Exercice : Cbler le Grafcet de la chane de remplissage de bidons propos dans mon document prsentant le
Grafcet. Attention, en fonctionnement normal (tous bidons prsents), toutes les tapes du Grafcet sont actives
! Cliquez ici pour la solution.
mmorisation de la transition
22
Bascules synchrones
La mthode prcdente peut encore dans certains cas ne pas respecter la rgle de simultanit. Pour cela, une
seule solution : synchroniser le fonctionnement des composants. Pour cela, il suffit de prendre la premire
mthode, mais d'utiliser des bascules MS (ou JK, voir mon document sur les bascules pour un peu plus de
dtails). Une bascule MS prend en compte les commandes Set et Reset qu'on lui applique non pas
immdiatement, mais au prochain front montant de son entre de synchronisation (horloge). La dsactivation
d'une tape se fait plus simplement : par la mme information que celle qui active la suivante (les deux seront
prises en compte en mme temps : au prochain front de l'horloge. Il suffit de choisir une horloge
suffisamment rapide pour ne pas ralentir l'automatisme (en gnral ce point ne pose pas de problme en P.C.
lectronique), mais plus lente que le temps de raction du composant le plus lent.
Faisons donc le schma de passage entre l'tape 5 (d'action X) et l'tape 6, relies par une transition de
rceptivit a :
On peut immdiatement voir que le schma rsultant est grandement simplifi (je n'ai pas reprsent l'horloge
qui doit tre relie chaque bascule, comme l'alimentation, plus la gestion de l'initialisation). On peut
remarquer qu'une bascule MS est en fait compose de deux bascules RS, et que cette mthode revient peu
prs au mme que les autres modifications que j'ai proposes (en plus sr et plus clair). La principale
diffrence est que l'on fixe la dure de l'information de dsactivation par un signal d'horloge.
Bascules synchrones
23
Donc ce squenceur correspond exactement la mthode prsente plus haut, dans les cas simples. Son seul
avantage est de clarifier le cblage : en cas partie linaire de Grafcet, les squenceurs n'auront qu' tre mis
cte cte (on dit empils), sans ncessiter de liaisons supplmentaires. Attention, ceci ne simplifie que les
parties linaires, pour les divergences, convergences et cas particuliers il faudra utiliser les cblages dcrits
prcdemment, avec un rsultat tout aussi confus.
Attention ! Ce squenceur n'est srement pas disponible dans le commerce, et pour cause : je viens de
l'inventer.
Exercice : cblez le Grafcet de 5 tapes grant une amene de pices propos dans le chapitre Grafcet
linaire en utilisant ce squenceur. Cliquez ici pour la solution.
P.C. pneumatique
Le cblage en pneumatique est exactement similaire au cas lectronique (ce qui voulaient s'en passer devront
nanmoins lire tout ce qui se trouve au dessus). On utilise des portes ET et OU, les bascules RS tant
remplaces par des distributeurs bistables ( commande pneumatique videment). Les diffrences sont :
temps de rponse au minimum 1000 fois plus important,
bruit important,
maintenance prventive lourde (vrification tuyaux, connections...),
prix des composants 10 100 fois suprieur,
compatible avec des ambiances difficiles (humidit, parasites...)
Je suis ouvert (un peu), ceux qui connaissent d'autres points (plus positifs) rajouter ici, qu'ils m'envoient un
utilisation d'un squenceur
24
P.C. lectrique
On peut galement directement cbler une Partie Commande en lectrique (220 V par exemple). La bascule
est ralise l'aide d'un relais autoaliment. Il a mme exist des squenceurs (RH je crois). Il est
aujourd'hui hors de question de s'en servir (mme dans l'ducation nationale on les a jets, ce qui prouve bien
que c'est totalement dpass).
P.C. lectrique
25
26
27
28
Ces fonctions sont disponibles sur tous les automates, des plus simples aux plus volus. Je vais dfinir un
langage fictif (qui me servira pour la suite, dans la dfinition des mthodes). Ce chapitre continuera par une
prsentation succinte des instructions des diffrents matriels et langages utiliss dans la suite du document
pour appliquer les mthodes prsentes.
29
Langage booleen
Le langage est trs simple : on peut simuler les fonctions ET, OU et les bascules bistables :
On dsire allumer la sortie 020 si (l'entre 000 est 1 ET 001 est 0) ou 002 est 1 ou 003 est 0. que je
noterai en AF : S020<= (E000 ET /E001) OU E002 ou E003. Le programme correspondant sera :
0C30
0C31
0C32
0C33
0C34
0C35
0C36
0C37
SI 000
SI/ 001
ET A00
SI A00
SI 002
SI/ 003
OU 020
SAUT C30
La fonction ET possde ici 2 entres : 000 et /001. Le rsultat (0 ou 1) est mis dans la variable interne A00.
La fonction OU possde ici 3 entres : A00, 002, /003. Le rsultat est mis sur la sortie 020.
Attention : un programme est une suite d'instructions, qui sont excutes l'une aprs l'autre. Si une entre
change aprs le passage sur l'instruction qui la prend en compte et que l'on ne repasse plus sur les
instructions, la sortie n'est pas modifie. C'est la raison de la dernire ligne du programme : repasser sans
arrt sur l'ensemble du programme.
Par rapport un cblage, on a donc deux dsavantages : temps de rponse (un changement des entres sera
pris en compte au maximum aprs le temps d'un passage sur l'ensemble du programme, c'est ce qu'on appele
le temps de scrutation, qui sera ici infrieur la milliseconde) et non simultanit (on n'effectue qu'un
instruction la fois). Mais ces temps tant en gnral trs infrieurs aux temps de raction des capteurs et
actionneurs (inertie d'un moteur par exemple), ceci n'est que rarement gnant. L'avantage est que c'est
programmable, donc facilement modifiable.
Les fonctions ET et OU acceptent autant d'entres que l'on dsire. Si on n'en utilise qu'une, on a une simple
recopie de valeur (ex: SI A00 OU A01).
Le SAUT peut tre prcd de plusieurs SI ou SI/. si la conjonction (ET) des conditions est vraie, alors le saut
est fait, sinon on continue sur la ligne suivante. Sur PB 15, seuls les sauts vers l'avant (SAUT Axx avec
Langage boolen du PB 100 ou April 15
30
(1)
SI A00
(2) SI A00
SI B0C
MU AF3
SI B0C
ET AF3
si A00=1 et B0C=1 alors (1) et (2) mettent AF3 1. Sinon, (2) met AF3 0, mais (1) ne le fait pas (AF3
garde la mme valeur qu'avant, 0 ou 1).
Une autre fonction utile est le DE :
DE A00
MZ BFF
donnera le mme rsultat que MZ A00 MZ A01 MZ A02 ... MZ BFE MZ BFF
la temporisation
Il faut avant tout donner la condition qui dclenchera la tempo, par un ou plusieurs SI. Puis TP et le nom de la
variable qui sera mise 1 au bout de la tempo. Puis donner la base de temps (sur PB15 09FF, 09FE, 09FD
pour 1 sec, 1/10, 1/100; sur PB100 BT F, BT E pour 1 sec, 1/10). Puis donner l'adresse o l'on stocke la
dure, et l'adresse rserve au compteur. Ces adresses sont n'importe quelle ligne de programme (mais sur
laquelle on ne devra pas passer) sur PB100, et entre 0800 et 0817 sur PB15).
Exemple: 0C30
0800
0801
SI 000
TP 020
09FF
0800
0801
SAUT C30
0005
0000
En appuyant le contact, la sortie sera allume 5 secondes aprs. Elle restera allume jusqu' ce qu'on lche
l'entre. le compteur sera alors automatiquement remis zero. Si on appuie moins de 5 secondes, rien ne se
passe. Cetteinstruction n'arrte pas le programme, il faut constamment passer sur les lignes d'instruction pour
que la sortie soit bien affecte en bout de tempo.
31
Les rseaux
Les schmas sont effectus l'un aprs l'autre, de haut en bas (et non suivant leur label). Chaque rseau est
scrut par colonne de gauche droite.
ex:
Dans ce cas l'entre B12 est l'ancienne valeur de la bobine (variable interne) B12. Si l'on veut utiliser le
rsultat de ce rseau, il faut utiliser B12 dans le rseau suivant.
On note un capteur par le signe | |, un contact inverse par |/|.
Une bobine est note < > , une bobine inverse < / > (commande par un niveau 0).
Un bistable est allum par < S > , teint par < R > .
Un saut un autre rseau est not < J >. On a intrt de n'utiliser que des sauts avants (vers la fin du
programme). L'automate fixe automatiquement les entres au dbut de cycle et n'affecte les sorties qu'en fin
de cycle (les variables internes sont videment immdiatement modifies).
Temporisation
32
La bascule : si sommet de la pile (dernier calcul ou LOD) vaut 1, SET rsultat ou RST rsultat allumera ou
teindra le rsultat, sinon il restera inchang
le saut : si sommet de la pile (dernier calcul ou LOD) vaut 1, JMP sautera au prochain JEND (saut avant
uniquement, pas d'imbrications)
assembleur (PC)
L'assembleur ne sera que rarement utile : personellement je conseillerai plutt C. Nanmoins ce n'est pas une
possibilit ngliger, notament dans les cas ncessitant un traitement temps rel.
On trouvera un descriptif plus complet dans le document "mmento 8088"
micro contrleur ST62xx
33
En langage volu
Vous pouvez consulter si ncssaire mon livre sur le Language C ou mon document sur le Pascal.
Tous les langages conviennent : ils savent tous faire ET, OU et NON, mettre une mmoire 1 ou 0 sous
condition (IF). Le Pascal permet un programme plus clair que tous les autres condition d'utiliser la notion
d'ensembles (estce que l'tape X appartient l'ensemble des tapes actives ?). Dans les autres langages il
faudra faire des boucles et des masquages, pour cela le C sera certainement le plus pratique (ainsi que pour
grer directement une carte d'entres sorties). Rappel : les sauts sont possibles dans tous les langages
classiques, contrairement ce que certains enseignants essayent de faire croire.
Conclusion
Ces fonctions de base sont prsentes dans tous les automates (mme si elles sont mises en oeuvre par des
langages trs diffrents, y compris graphiques), sauf les sauts qui peuvent tre plus limits (au minimum
bouclage automatique sur l'ensemble du programme, mais sans sauts dans le programme). Nous utiliserons
ces seules fonctions pour voir comment programmer un grafcet, mais le principe reste valable quel que soit
l'automate. Souvent, d'autres possibilits existent, en particulier temporisations, comptage, comparaisons,...
Voir les documentations correspondantes si ncessaire.
En langage volu
34
Mthode globale
Cette mthode marche sur tout automate, pour tout Grafcet. Nous l'appliquerons au cas particulier de l'AF
mais le principe est rigoureusement le mme sur n'importe quel langage d'automate (y compris les langages
graphiques comme le langage contacts du TSX), ainsi qu'en langage machine ou mme langage volu tel
Pascal ou C
Principe
On utilise une variable binaire pour reprsenter l'tat d'activation de chaque tape, et une variable pour le
franchissement de chaque transition. De plus on fige les entres pour une dure du cycle. Il est capital de bien
prciser, sur une feuille de papier, quoi correspond chaque entre, sortie et variable interne.
initialisation (mise 1 tape(s) initiale(s),
0 les autres, mise 0 des sorties,...)
+> lecture des entres
(et copie dans des variables internes)
| calcul des conditions d'volution (quelles transitions seront franchies)
| dsactivation des tapes dsactiver
| activation des tapes
| combinatoire (si ncessaire: tempos, comptage, actions conditionnelles...)
| affectation des sorties (en fonction des tapes actives)
++ (saut aprs l'initialisation)
Remarque sur la phase de lecture des entres : celleci est inutile sur la plupart des automates simples (ils
bloquent les entres le temps d'un cyle, ce qui les empche des programmes du genre : boucler tant que
capteur lach). C'est la seule solution pour respecter l'algbre de Boole : a.(b+c) doit tre quivalent a.b +
a.c mme si a change au milieu de calcul.
L'ordre des phases est capital pour respecter les rgles du Grafcet (surtout 4 et 5), il ne peut tre modifi que
dans les cas simples (en particulier quand on n'a pas besoin des rgles 4 et 5).
35
Programme en AF :
Dbut :
V21<=1
V22<=0
Boucle :
V00<=E00
V01<=E01
V11<=V00 ET V21
V12<=V01 ET V22
S20<=V22
SAUT Boucle
(teindre sinon)
Quelques remarques : cette mthode marche quel que soit le nombre d'tapes actives simultanment. Le fait
de bloquer les capteurs pour un cycle allonge le temps de raction mais donne un rsultat conforme au grafcet
(si par exemple le capteur change entre le passage sur la dsactivation et l'activation). La dsactivation de
TOUTES les tapes doit prcder l'activation : essayez 2 tapes qui se suivent, toutes les 2 actives, suivies de
la mme rceptivit (front montant sur un capteur par exemple). Le programme obtenu est long et lent, mais
conu rapidement (pas ou peu de rflexion).
A01
A02
0C32 SI
0C33 ET
000
B00
36
001
B01
0C36
0C37
0C38
0C39
0C3A
0C3B
SI
SI
ET
SI
SI
ET
A01
B00
A11
A02
B01
A12
conditions d'volution :
transition 1 passante si tape 1 active et capteur m
0C3D
0C3E
0C3F
0C40
SI
MZ
SI
MZ
A11
A01
A12
A02
dsactivation :
si transition 1 passante, dsactiver l'tape 1
0C41
0C42
0C43
0C44
SI
MU
SI
MU
A11
A02
A12
A01
activation :
si transition 1 passante, activer l'tape 2
0C45 SI
0C46 OU
A02
020
Application en ST62xx
Toujours pour ce mme cas, supposons :
entres : port A (bit 0 = m, bit 1 = a, bits 2 7 inutiliss)
sorties : port B (uniquement bit 0 pour notre seule sortie)
variables internes : capt : mmorisation des entres, etap pour les tapes (bits 0 et 1 uniquement),
trans pour les transitions (bits 0 et 1 uniquement).
;dfinition des adresses
PortA
.def
0C0h
;registre de donnes du port A
PortB
.def
0C1h
;registre de donnes du port B
DirA
.def
0C4h
;registre de direction du port A
DirB
.def
0C1h
;registre de direction du port B
capt
.def
0A0h
;pour figer les entres (adresse choisie parmi les 64 disponibles)
etap
.def
0A1h
;tapes actives
trans
.def
0A2h
;transitions (franchissables ou non)
;dfinition des constantes
BitM
.equ
00h
;entre m branche sur le bit 0
BitA
.equ
01h
;entre a branche sur le bit 1
;initialisation
LDI DirA,00h
;tout en entre
LDI DirB,01h
;seul bit 0 en sortie, les autres inutiliss ici
LDI PortB,00h
;teindre les sorties
LDI etap,01h
;tape 1 active
boucle :
;scrutation des entres
LD A,PortA
LD capt,A
;conditions d'volution
LDI trans,00h
JRR 0,etap,trans2
;saut plus loin si tape inactive
JRR BitM,capt,trans2
;saut plus loin si capteur teind
SET 0,trans
;allume la transition (bit 0)
trans2:
JRR 1,etap,desact1
JRR BitA,capt,desact1
Application en ST62xx
37
38
A01
A02
A04
0C34 SI
ET
SI
ET
SI
ET
001
B01
002
B02
003
B03
SI
SI
ET
SI
SI
SI
SI
ET
SI
SI
SI/
ET
SI
SI/
ET
A01
B01
A11
A02
A03
B03
B02
A12
A03
B02
B03
A13
A04
B02
A14
SI
MZ
SI
MZ
SI
MZ
SI
MZ
SI
MZ
A11
A01
A12
A03
A12
A02
A13
A03
A14
A04
SI
MU
SI
MU
SI
MU
SI
MU
SI
MU
A11
A02
A11
A03
A12
A01
A13
A04
A14
A03
SI
OU
SI
OU
SI
OU
A02
021
A03
022
A04
023
SAUT C34
39
40
Mthode locale
Cette mthode est beaucoup plus rapide ( l'excution), prend beaucoup moins de place, mais ne fonctionne
que pour un grafcet une seule tape active la fois. De plus l'automate doit pouvoir faire des sauts en avant
et en arrire (ce n'est pas le cas des automates d'entre et moyenne gamme comme le Micro 1, APRIL 15,
TSX 17 47...).
Principe
Supposons tre dans l'tape I, les sorties tant dj affectes. On attend alors (en fonction des capteurs) que
l'on doive quitter l'tape. Puis on choisit quelle doit tre la suivante (au cas o l'on avait un OU divergent), on
modifie les sorties si ncessaire et on saute l'tape suivante (qui sera traite exactement de la mme
manire).
Exemple simple
On reprend le grafcet (1), avec la mme affectation des entres et des sorties.
Il ne faut plus figer les entres, il n'est plus ncessaire de reprsenter les tapes par des variables puisque
seule une tape est active, et elle correspond l'endroit o l'on se trouve dans le programme.
initialisation:
S20<=0;
etape1:
SI (/E1) SAUT etape1 ;attendre capteur m
S20<=1
;mise jour des sorties etape2:
SI (/E2) SAUT etape2
S20<=0
SAUT etape1
Evidement, le programme est plus simple (mais c'est uniquement le cas dans les cas simples). Le programme
est le plus rapide qui puisse exister : un instant donn on ne teste que les capteurs ncessaires, sans aucun
autre calcul. Lors d'un volution on ne modifie que les sorties ncessaires. Le temps de rponse est donc
minimal avec cette mthode. Son seul problme est qu'elle ne fonctionne qu'avec des Grafcets une tape
active la fois (sans ET, tous les OU doivent tre exclusifs) (mais voir plus bas pour rsoudre ce problme)
Mthode locale
41
et1
et2
E1
23
(1)
23
E2.E3
E2./E1
1
24
(2)
24
/E2
23
(3)
on obtient donc le grafcet (3) suivant (il est rare que le graphe des tats accessibles soit plus simple que
l'initial) :
Les OU divergents DOIVENT tre exclusifs (sinon vous avez oubli un cas dans la table). Si vous dsirez
essayer de crer un graphe des tats accessibles, je vous conseille d'essayer celui l :
42
Pour la mise jour des sorties, on sait toujours d'o l'on vient et o l'on va, on ne modifie donc que celles qui
doivent l'tre.
cas du PB100
Choix des variables : entre Ei : 00i, sortie Si : 02i
DE 021
MZ 023
et1 SI/ 001
SAUT et1
p12 MU 022
MU 021
et2 SI/ 002
SAUT et2
MZ 022
SI/ 003
SAUT p23
p21 MZ 021
SAUT et1
p23 MU 023
cas du PB100
43
SI 002
SAUT et3
p32 MZ 023
MU 022
SAUT et2
et1:
in al,dx
test al,c0
jz et1
s_et2:
mov
mov
out
mov
et2:
in al,dx
test al,c1
jz et2
test al,c2
jnz s_et1
s_et3:
mov
mov
out
mov
dx,adresse_port_s
al,00000011B
dx,al
;modif sorties
dx,adresse_port_e
dx,adresse_port_s
al,00000101B
dx,al
dx,adresse_port_e
et3:
in al,dx
test al,c2
jnz et3
jmp s_et2
fin:
mov ax,4C00h
int 21h
; fin du programme
code ends
end s_et1
application en C
#define port_e 0x300
#define port_s 0x301
#define e1 0x01 //sur quel bit aije branch l'entre ?
44
e2
e3
s1
s2
s3
0x02
0x04 //le suivant serait 8 puis 0x10....
0x01 //idem sorties
0x02
0x04
int lecture(void)
{return(inport(port_e)); }
void ecriture(int i)
{outport(port_s, i); }
void main(void)
{
int capteurs;
etape1:
ecriture(0);
do capteurs=lecture(); while (!(capteurs&e1));
etape2:
ecriture(s1|s2);
do capteurs=lecture(); while (!(capteurs&e2);
if (capteurs&e3) goto etape1;
etape3:
ecriture(s3|s1);
co capteurs=lecture() while (capteurs&e2);
goto etape2;
}
Remarque sur le masquage : capteurs & e2 fait un ET bit bit entre les deux variables. Pour qu'un bit du
rsultat soit 1, il faut que les bits du mme niveau des DEUX variables soient 1. Or e2 contient un seul bit
1, celui correspondant l'entre E2. Si le rsultat vaut 0 (Faux), c'est que E2 tait 0, sinon (diffrent de 0
mais pas ncessairement 1), c'est qu'il tait allum
En C (comme toujours) le code est compact, facile crire mais ncessite une conaissance plus pousse du
fonctionnement de l'ordinateur (ici binaire et masquages).
Conclusions
Cette seconde mthode donne un programme est bien plus court dans ce cas, mais en gnral le graphe des
tats accessibles est bien plus complexe que le grafcet initial. On se dbrouille en gnral dans ces cas
complexes, de manire minimiser la taille et le temps, en faisant un compromis entre les deux mthodes. Il
n'empche que faire par un programme la table des tats accessibles est relativement ais, et donc on peut en
dduire immdiatement le programme rsultant (toujours automatiquement) puisque la mthode est trs
simple (et correspond directement la table)
Conclusions
45
Certains automates sont prvus pour tre programms plus facilement partir d'un Grafcet. C'est le cas du
TSX ( l'aide d'une cartouche ROM) et du PB 15, mais pas du Micro1 par exemple. Mais ces implantations
ne sont pas bien pratiques, c'est pourquoi on utilisera gnralement (si on en a les moyens) une gnration
automatique du programme l'aide d'un logiciel spcifique (en gnral sur PC).
PB APRIL 15
Chaque tape doit tre reprsente par une variable interne. On doit utiliser les premires (donc partir de
A00). Les variables internes suivantes peuvent tre utilises pour d'autres utilisations, par exemple pour un
calcul de receptivit (on utilise en gnral les variables en dcroissant partir de A3F).
La premire ligne du programme doit comporter l'instruction PRED, qui initialise le Grafcet. Puis on dfinit
toutes les transitions : quelles est l'tape(s) prcdente (antrieure), quelle est la variable contenant la
receptivit puis quelle est l'tape(s) postrieure. Puis on affecte les sorties, et on boucle (sans bien sur
repasser sur PRED qui rinitialiserait).
Exemple du grafcet 2 :
Choix des variables : tape i : A0i, entre Ei : 00i , sortie Si : 02i
0C30 PRED
0C31 EANT A01
RCEP 001
EPOS A02
EPOS A03
EANT A03
SI 002
SI/ 003
ET A3F
RCEP A3F
EPOS A04
tape antrieure 1
rceptivit
2 tapes postrieures : 2 et 3
calcul receptivit
mis dans une variable interne
EANT A04
RCEP /002
EPOS A03
EANT A02
EANT A03
SI 003
SI 002
ET A3E
EPOS A01
2 tapes antrieures
SI
OU
SI
OU
SI
OU
A02
021
A03
022
A04
023
SAUT C31
46
sur TSX
Il faut tout d'abord dessiner le grafcet. Analysons le cas du grafcet 1 :
Les traits verticaux vont de haut en bas uniquement. Par contre on peut remplacer un trait par 2
flches, en prcisant l'tape d'o l'on vient et o l'on va. C'est ce que l'on utilise pour une
remonte. (ici pour aller de l'tape 2 l'tape1). Cette notation ne respecte pas les rgles du
Grafcet (une laison est entre une tape et une transition) et peut ncessiter de rajouter une tape au
niveau d'une convergence ou divergence.
Une fois le grafcet entr, on dfinit les transitions et les actions correspondant aux tapes. Pour ceci, placer le
curseur sur une transition dfinir, appuyer la touche ZM (zoom). Un rseau contacts apparat, avec une
bobine reprsentant la transition. Il faut alors reprsenter le schma qui, en fonction des capteurs, "allumera"
la receptivit. On valide le rseau par ENT (touche ENTER). Pour les actions, il faut pointer une tape,
appuyer ZM, donner le schma qui allumera les bobines de sortie. On entre un rseau complet, on peut donc
faire du combinatoire sur les sorties (test arrt d'urgence) ou dclencher une tempo. Mais les sorties ne
peuvent tre actives que par une bobine <S>, ce qui force dsactiver la sortie par une bobine <R> l'tape
suivante. Une autre possibilit (que je conseille fortement) est de grer les actions grce au "traitement
postrieur", voir document complet sur le TSX
Soient : Capteurs m=I1,0, a=I1,1 Sortie L=O0,0. Les rseaux entrer sont donc:
transition 1
| I1,0
|
|||< # >|
|
|
tape 1
|
O 0,0 |
|< R >|
|
|
sur TSX
transition 2
| I1,1
|
|||< # >|
|
|
tape 2
|
O 0,0 |
|< S >|
|
|
47
L'automate MICRO1
1 Description gnrale
2 Connexions
3 Adresses
4 Structure du programme
5 Langage
5.1 LOD (load charger)
5.2 OUT (sortir)
5.3 AND (et)
5.4 OR (ou)
5.5 NOT (non)
5.6 AND LOD / OR LOD
5.7 SET (allumer)
5.8 RST (reset teindre)
5.9 TIM (timer temporisation)
5.10 JMP (jump saut avant) et JEND (fin de saut)
5.11 MCS (Master Control Set) et MCR (Master Control Reset)
5.12 SOT (Single OutpuT sortie impulsionnelle)
5.13 CNT (counter compteur)
5.14 Comparateurs (associs aux compteurs CNT)
5.15 SFR (ShiFt Register registre dcalage)
6 Entre d'un programme
7 Monitoring
L'automate MICRO 1
P.Trau 24/3/97
1 Description gnrale
L'automate programmable IDEC MICRO1 (distribu par Chauvin Arnoux) est un automate de faible prix
(4000F) permettant de traiter des petits problmes d'automatisme faible cot (mme prix que 10 relais et 3
tempos, chez le mme fabriquant). Il se compose d'une unit centrale (UC) comportant le contrleur, la
mmoire (EEPROM : ne s'efface pas quand elle n'est pas alimente), 8 entres (extensible 16 voire 64), 6
sorties (extensible 12) relais acceptant du 220V 2A par commun, c'est dire 2A totales pour les 3
premires sorties, 2A pour chacune des 3 autres. Le programme est mis au point sur la console de
programmation, puis est transfr dans l'UC, qui ne ncessite plus la prsence de la console pour fonctionner.
2 Connexions
Entres : La borne +COM dlivre du 24V, permettant d'alimenter 8 capteurs (interrupteurs), numrots 0 7.
Sorties : La premire borne COM permet d'amener l'nergie de sortie pour les bornes 200, 201 et 202. Les
bornes 203, 204 et 205 possdent chacune sa propre alimentation (borne de gauche). Les diffrentes
alimentations ne sont pas ncessairement identiques (par exemple, une en 220V~, une en 5V, une en 24V).
Console : elle est branche sur la prise situe droite de l'UC (sous une petite trappe). Elle peut tre clipse
sur l'UC (glisser vers le haut pour dclipser). Si la console est absente, l'UC, son allumage, met toutes les
variables internes et sorties 0 puis dmarre automatiquement le dernier programme entr ( condition
d'avoir t la console en mode RUN).
L'automate MICRO1
48
L'automate MICRO1
3 Adresses
Entres : 0 7
Sorties : 200 205
Mmoires internes : 400 597, sauf les nombres se terminant par 8 ou 9 (400 407, 410 417,...)
Mmoires usage spcifique : 600 717 (ex 714 vaut 1 durant 1/2s toutes les secondes, 715 toutes
les 0,1s, 713 mis 1 teint toutes les sorties...)
Compteurs : 0 46 (45 et 46 spcifiques)
Temporisations : 0 79
Sorties impulsionnelles : 0 95
Lignes de programme : 0 599
4 Structure du programme
L'automate excute les lignes du programme de manire squentielle (l'une aprs l'autre, en commenant par
la ligne numro 0. Le programme se termine par l'instruction END. Aucune ligne de ce programme, avant le
END, ne peut tre vide. Au passage sur une ligne de programme, les variables internes sont immdiatement
mises jour, mais les sorties ne sont rellement modifies que sur le passage de l'instruction END. Comme
en informatique, chaque instruction dcrit une action effectuer l'instant de son excution uniquement. Ceci
implique, pour les cas d'automatismes habituels, o l'tat des sorties doit continuellement tre recalcul en
fonction des entres, de toujours boucler sur l'ensemble du programme. C'est ce que fait l'instruction END,
qui, aprs la mise jour effective des sorties, lit l'tat des entres puis remonte au dbut du programme (ligne
0). Les entres seront figes le temps d'un cycle du programme (jusqu'au END), ce qui permet d'valuer des
expressions logiques complexes sans qu'une entre ne change d'tat en cours de calcul.
5 Langage
Le MICRO1 fonctionne en notation polonaise, avec une pile (LIFO) de 8 registres (en cas d'introduction de
plus de 8 valeurs dans la pile, les plus anciennes sont perdues).
Les paragraphes 5.1 5.6 prsentent les fonctions combinatoires de base. Elles permettent de traiter
simplement tout problme combinatoire. Les fonctions de base du squentiel (bascules et timer) sont traites
de 5.7 5.9, puis sont traites des fonctions plus puissantes ou plutt informatiques (mais aussi plus
complexes).
49
L'automate MICRO1
Ceci met l'tat de l'entre 0 dans la mmoire 400 et sur la sortie 200
5.4 OR (ou)
Idem AND, mais effectue un OU logique
pile : [1]
(hauteur 1)
AND 2
pile : [1.2]
(hauteur 1)
LOD 3
(hauteur 2)
AND 4
(hauteur 2)
OR LOD
pile : [(1.2)+(3.4)]
(hauteur 1)
OUT 200
pile inchange
50
L'automate MICRO1
effectue (criture type "algorithmique") : 200<=(1.2)+(3.4)
Remarque : appuyer sur la touche SHF (shift=majuscule) avant LOD pour ne pas entrer un 1 (qui est sur la
mme touche).
51
L'automate MICRO1
Remarque : un timer n'arrte pas le programme (une autre partie de l'automatisme peut fonctionner pendant
ce temps) mais met 1 sa sortie, au bout du temps prdfini, condition d'avoir maintenu son entre 1 et de
repasser chaque cycle sur l'instruction TIM.
Exemple :
LOD 0
MCS
instructions
LOD 1
l'entre 1 contrle une plus petite partie du programme
MCS
instructions
MCR
terminaison des 2 MCS
52
L'automate MICRO1
Exemple :
LOD 2
SOT 0
cration d'un front montant sur l'entre 2,rsultat sur la pile
AND 200 entre "Reset" : si sortie allume et front montant sur 2
LOD 2
entre "Pulse"
CNT 0
5
OUT 200
la sortie 200 est allume aprs 5 fronts montants sur l'entre 2, s'teint au 6me
Remarque : Le compteur 45 possde une troisime entre : dcomptage. Ceci permet de grer une quantit de
pices, en comptant l'entre et dcomptant la sortie
Le compteur 46 possde une troisime entre : Up qui, s'il vaut 1 considre l'entre Pulse (deuxime) comme
impulsion de comptage, s'il vaut 0 comme dcomptage.
Ces deux compteurs/dcompteurs ncessitent galement une valeur, mais qui est sera mise dans le compteur
lors du Reset, la sortie sera mise 1 en arrivant la valeur 0. En dcomptant aprs 0, on passe 9999.
53
L'automate MICRO1
OUT SFR n'est pas possible).
Exemple :
Ceci cre un chenillard (sur 3 bits) qui boucle jusqu' extinction de l'UC
Remarque : SFR peut tre utilis pour grer un Grafcet linaire, ou mme plus complexe.
SFR NOT (mmes entres, mme sortie) effectue un dcalage en sens inverse. Il peut s'utiliser (et c'est l sa
principale utilit) sur les mmes bits qu'un SFR, permettant d'avancer et reculer.
54
L'automate MICRO1
fonctionner.
Si l'UC est teinte en mode RUN, son rallumage le programme dbutera automatiquement (au bout de
quelques secondes), avec toutes les mmoires mises 0.
La console, contrairement l'UC, perd le contenu de sa mmoire lorsqu'elle est dbranche. On peut
recharger un programme dans la console depuis une UC par TRS READ puis confirmation par ENTR. TRS
VERI permet de vrifier la similitude du programme de la console avec celui de l'UC.
7 Monitoring
En plus de la visualisation sur l'UC de l'tat des entres et des sorties, on peut visualiser, en mode RUN, l'tat
de l'UC par les fonctions MON :
MON numro mmoire READ : affiche l'tat des 8 mmoires partir du numro donn. MON 0 pour les
entres, MON 200 pour les sorties, MON 400 pour les mmoires internes 400 407, les flches haut et bas
permettent de visualiser les mmoires suivantes. Une mmoire 1 est visualise par un rectangle plein, 0 par
un vide. MON TIM numro permet de visualiser le contenu d'un timer, MON CNT numro pour un
compteur, MON SFR numro pour les registres dcalage. CLR quitte le mode Monitoring. Les
changements d'tat de moins de 0,1s ne sont pas visualiss. Remarque : MON TIM 47 affiche le temps d'un
cycle du programme en mmoire (en ms).
On peut modifier la valeur limite d'un compteur ou timer par TRS CNT (ou TIM) numro READ. La valeur
est affiche. Entrez la nouvelle valeur puis ENTR. Cette valeur est perdue l'extinction de l'UC (plus d'un
jour). TRS SET numro mmoire ENTR met un une mmoire (RST, SET SFR, RST SFR sont galement
possibles).
FUN 93 READ 1 ENTR : affiche une ligne de programme, et l'tat de sa sortie (ex LOD entre 1 ou LOD
NOT entre 0 affichent un rectangle plein). On peut se dplacer dans le programme par les flches ou par
ADRS. On quitte ce monitoring par 0 puis ENTR.
7 Monitoring
55
56
57
Dans ce cas l'entre B12 est l'ancienne valeur du bit interne (bobine) B12. Si l'on veut utiliser le rsultat B12
de ce rseau, il faut utiliser B12 dans le rseau suivant.
On note un capteur par le signe
Un bit interne est note
, teinte par
Temporisation
On reprsente la tempo par le signe :
Il existe sur les TSX 17 32 tempos (T0 T31). E correspond l'armement de la tempo,
C au contrle. D passe 1 en fin de tempo, R est 1 tant que la tempo est en cours. En
appuyant la touche ZM, on peut donner : TB: la base de temps (1mn, 1s, 100ms, 10ms),
PRESET: la dure (0 9999).
E doit tre 1 tout le temps du comptage, son passage 0 met D 0 et rinitialise le
compteur. C (que l'on peut brancher sur E) valide le comptage (si C=0;, le compteur est
bloqu mais pas remis 0)
On dispose galement de 8 tempos monostables M0 M7, avec une seule entre S, une seule sortie R valant
1 durant le temps prslectionn, partir du front montant de S, indpendamment du moment de passage 0
de S. Un nouveau front montant de S en cours de comptage relance le compteur 0.
Compteur / dcompteur
Il existe sur les TSX 17 32 compteurs (C0 C31). R (reset) met le compteur et les
sorties 0. P (preset) met le compteur la valeur finale et la sortie D (done) 1 (sauf
si R=1). U (up) incrmente le compteur, D (down) le dcrmente. La sortie F (full)
vaut 1 lors du passage du compteur (par U) de 9999 0, E (empty) lors du passage
(par D) de 0 9999. Si U=D=1, le compteur est inchang.
58
Conclusion
Ces fonctions de base (tempo, compteur) sont prsentes dans tous les automates (mme si elles sont mises en
oeuvre par des langages trs diffrents), sauf les sauts qui peuvent tre plus limits (au minimum bouclage
automatique sur l'ensemble du programme, mais sans sauts dans le programme). Mais le principe reste
valable quel que soit l'automate. Souvent, d'autres possibilits existent, en particulier temporisations,
comptage, comparaisons,...
programme :
On vient de l'tape 2
Les liaisons verticales vont de haut en bas uniquement. Par contre on peut
remplacer une liaison par 2 flches, en prcisant l'tape d'o l'on vient et celle o
l'on va. C'est ce que l'on utilise pour une remonte.
On va l'tape 1
Une fois le grafcet entr, on dfinit les transitions et les actions correspondant aux tapes. Pour ceci, placer le
curseur sur une transition dfinir, appuyer la touche ZM (zoom). Un rseau contacts apparat, avec un bit
interne reprsentant la transition. Il faut alors reprsenter le schma qui, en fonction des capteurs, "allumera"
la rceptivit. On valide le rseau par ENT (touche ENTER). Pour les actions, on peut (mais je ne le conseille
pas) pointer une tape, appuyer ZM, donner le schma qui allumera les bobines de sortie. Sur nos TSX, les
sorties ne peuvent tre actives que par un bit interne <S>, ce qui force dsactiver la sortie par un bit interne
<R> l'tape suivante.
Soient : Capteurs m=I1,0, a=I2,0 Sortie L=O0,0. Les rseaux entrer sont donc:
transition 1
Conclusion
transition 2
59
tape 2
Une bien meilleure solution est de regrouper toutes les actions dans le "traitement postrieur". Attention, du
fait que le TSX fige les entressorties le temps d'un cycle, il ne faut mettre en place qu'une seule "quation"
par sortie (sinon seule la dernire sera prise en compte). On n'oubliera donc pas de regrouper (en parallle)
les Xi allumant une sortie.
Une tempo (en secondes) est automatiquement lie chaque tape, et permet de tester la dure depuis
l'activation de l'tape par un oprateur de type [ < ] (comparaison) par la variable interne Xi,V (i numro
d'tape)
Dtails pratiques
Ce chapitre prcise l'utilisation des claviers et les branchements effectuer.
Allumez l'automate puis la console (touche ON). Mettez l'automate en mode STOP (sur la platine portant
l'automate). Quand le menu principal est affich, choisissez PRG (program) en appuyant la flche qui se
trouve sous cette option. Vous pouvez alors soit examiner le programme en mmoire, soit visualiser la suite
des options du menu par la flche sous le /. On choisit alors l'option CLM (clear memory), qui nous
demande en quel langage on veut travailler (SEQ pour grafcet, LAD pour contacts). Puis aprs quelques
secondes, on peut revenir au programme principal par la touche QUIT (qui remonte brutalement) ou 2 fois
CLR (qui remonte avant la dernire commande effectue).
Pour entrer le programme, choisir PRG puis SEQ ou LAD. On valide un rseau ou tout le programme par la
touche ENT.
Pour faire tourner le programme, revenez au menu principal (QUIT), choisissez DBG (debug) puis R/S
(run/stop), ou mettez en RUN par le contacteur RUN/STOP de la platine.. Quand le programme tourne, on
peut revenir sous PRG pour le voir, mais pas le modifier. Les capteurs et les bobines sont alors reprsentes
en pointills si 1, en trait plein si 0.
Les modifications se font en revisualisant le programme sous PRG, choisir le bon rseau ou partie de Grafcet
et choisir l'option MOD. En gnral, une modification ncessite d'effacer le capteur ou trait existant (touche
SH + DEL) et remettre le nouveau, dans d'autres cas (traits horizontaux par exemple), on efface une entit en
lui superposant une entit identique.
Un cycle de programme en langage Grafcet peut tre prcd par un programme en langage contacts
(ladder) appel traitement prliminaire, et suivi d'un taitement postrieur. La scrutation des entres se faisant
avant le traitement prliminaire, on peut y traiter des conditions sur les entres prliminaires ou effectuer une
Dtails pratiques
60
61
62