Vous êtes sur la page 1sur 128

I.

Historique :

Les automates programmables industriels sont apparus à la fin


des années soixante, à la demande de l'industrie automobile
américaine (GM), qui réclamait plus d'adaptabilité de leurs systèmes
de commande.
Les coûts de l'électronique permettant alors de remplacer
avantageusement les technologies actuelles.

Avant : utilisation de relais électromagnétiques et de systèmes


pneumatiques pour la réalisation des parties commandes
⇒ logique câblée

Inconvénients : cher, pas de flexibilité, pas de communication possible

Solution : utilisation de systèmes à base de microprocesseurs permettant une modification aisée des
systèmes automatisés ⇒ logique programmée

Les ordinateurs de l'époque étant chers et non adaptés aux contraintes du monde industriel, les automates
devaient permettre de répondre aux attentes de l'industrie.

Contraintes du monde industriel :

ƒ influences externes :
- poussières,
- température,
- humidité,
- vibrations,
- parasites électromagnétiques, …

ƒ Personnel :
- mise en œuvre du matériel aisée (pas de langage de
programmation complexe)
- dépannage possible par des techniciens de formation
électromécanique
- possibilité de modifier le système en cours de fonctionnement

ƒ Matériel :
- évolutif
- modulaire
- implantation aisée

L'Automate Programmable Industriel (API) est un appareil électronique programmable, adapté à


l'environnement industriel, qui réalise des fonctions d'automatisme pour assurer la commande de
préactionneurs et d'actionneurs à partir d'informations logique, analogique ou numérique.

2 / 17
II. Place de l'API dans le système automatisé de production (S.A.P.) :

a. Les systèmes automatisés de production :

L’objectif de l’automatisation des systèmes est de produire, en ayant recours le moins possible à
l’homme, des produits de qualité et ce pour un coût le plus faible possible.

Un système automatisé est un ensemble d’éléments en interaction, et organisés dans un but


précis : agir sur une matière d’œuvre afin de lui donner une valeur ajoutée.
Le système automatisé est soumis à des contraintes : énergétiques, de configuration, de réglage et
d’exploitation qui interviennent dans tous les modes de marche et d’arrêt du système.

CONTRAINTES

Matière d’œuvre
Matière d’œuvre SYSTEME +
AUTOMATISE Valeur ajoutée

b. Structure d'un système automatisé :

Tout système automatisé peut se décomposer selon le schéma ci-dessous :

Autres parties ENERGIE


commandes

COMMUNICATION PREACTIONNEURS ACTIONNEURS

TRAITEMENT
DES
INFORMATIONS

PUPITRE DE CAPTEURS PARTIE


COMMANDE ET DE MECANIQUE
SIGNALISATION DETECTEURS
(Effecteurs)

POSTE DE CONTROLE PARTIE COMMANDE PARTIE OPERATIVE

3 / 17
 Partie opérative :

Elle agit sur la matière d’œuvre afin de lui donner sa valeur ajoutée.
Les actionneurs (moteurs, vérins) agissent sur la partie mécanique du système qui agit à son tour sur la
matière d’œuvre.
Les capteurs / détecteurs permettent d’acquérir les divers états du système.

 Partie commande :

Elle donne les ordres de fonctionnement à la partie opérative.


Les préactionneurs permettent de commander les actionneurs ; ils assurent le transfert d’énergie entre
la source de puissance (réseau électrique, pneumatique …) et les actionneurs. Exemple : contacteur,
distributeur …
Ces préactionneurs sont commandés à leur tour par le bloc traitement des informations.
Celui-ci reçoit les consignes du pupitre de commande (opérateur) et les informations de la partie
opérative transmises par les capteurs / détecteurs.
En fonction de ces consignes et de son programme de gestion des tâches (implanté dans un automate
programmable ou réalisé par des relais (on parle de logique câblée)), elle va commander les
préactionneurs et renvoyer des informations au pupitre de signalisation ou à d'autres systèmes de
commande et/ou de supervision en utilisant un réseau et un protocole de communication.

 Poste de contrôle :

Composé des pupitres de commande et de signalisation, il permet à l’opérateur de commander le


système (marche, arrêt, départ cycle …).
Il permet également de visualiser les différents états du système à l’aide de voyants, de terminal de
dialogue ou d’interface homme-machine (IHM).

c. Domaines d'emploi des automates :

On utilise les API dans tous les secteurs industriels pour la commande des machines (convoyage,
emballage ...) ou des chaînes de production (automobile, agroalimentaire ... ) ou il peut également
assurer des fonctions de régulation de processus (métallurgie, chimie ...).
Il est de plus en plus utilisé dans le domaine du bâtiment (tertiaire et industriel) pour le contrôle du
chauffage, de l'éclairage, de la sécurité ou des alarmes.

d. Nature des informations traitées par l'automate :

Les informations peuvent être de type :

ƒ Tout ou rien (T.O.R.) : l'information ne peut prendre que deux états (vrai/faux, 0 ou 1 …).
C'est le type d'information délivrée par un détecteur, un bouton poussoir …

ƒ Analogique : l'information est continue et peut prendre une valeur comprise dans une plage
bien déterminée. C'est le type d'information délivrée par un capteur (pression, température …)

ƒ Numérique : l'information est contenue dans des mots codés sous forme binaire ou bien
hexadécimale. C'est le type d'information délivrée par un ordinateur ou un module intelligent.

4 / 17
III. Architecture des automates :

a. Aspect extérieur :

Les automates peuvent être de type compact ou modulaire.


De type compact, on distinguera les modules de programmation (LOGO de Siemens, ZELIO de
Schneider, MILLENIUM de Crouzet ...) des microautomates.
Il intègre le processeur, l'alimentation, les entrées et les sorties. Selon les modèles et les fabricants, il
pourra réaliser certaines fonctions supplémentaires (comptage rapide, E/S analogiques ...) et recevoir des
extensions en nombre limité.
Ces automates, de fonctionnement simple, sont généralement destinés à la commande de petits
automatismes.
De type modulaire, le processeur, l'alimentation et les interfaces d'entrées / sorties résident dans des
unités séparées (modules) et sont fixées sur un ou plusieurs racks contenant le "fond de panier" (bus plus
connecteurs).
Ces automates sont intégrés dans les automatismes complexes où puissance, capacité de traitement et
flexibilité sont nécessaires.

Automate compact (Allen-bradley) Automate modulaire (Modicon)

Automate modulaire (Siemens)

1 Module d'alimentation 6 Carte mémoire


2 Pile de sauvegarde 7 Interface multipoint (MPI)
3 Connexion au 24V cc 8 Connecteur frontal
4 Commutateur de mode (à clé) 9 Volet en face avant
5 LED de signalisation d'état et de défauts

5 / 17
Principales fonctions :

ƒ Cartes d'entrées / sorties : Au nombre de 4, 8, 16 ou 32, elles peuvent aussi bien réaliser des fonctions
d'entrées, de sorties ou les deux.
Ce sont les plus utilisées et les tensions disponibles sont normalisées (24, 48, 110 ou 230V continu ou
alternatif ...).
Les voies peuvent être indépendantes ou posséder des "communs".
Les cartes d'entrées permettent de recueillir l'information des capteurs, boutons ... qui lui sont
raccordés et de la matérialiser par un bit image de l'état du capteur.
Les cartes de sorties offrent deux types de technologies : les sorties à relais électromagnétiques
(bobine plus contact ) et les sorties statiques (à base de transistors ou de triacs).

ƒ Cartes de comptage rapide : elles permettent d'acquérir des informations de fréquences élevées
incompatibles avec le temps de traitement de l'automate.
Exemple : signal issu d'un codeur de position.

ƒ Cartes de commande d'axe : Elles permettent d'assurer le positionnement avec précision d'élément
mécanique selon un ou plusieurs axes. La carte permet par exemple de piloter un servomoteur et de
recevoir les informations de positionnement par un codeur. L'asservissement de position pouvant être
réalisé en boucle fermée.

ƒ Cartes d'entrées / sorties analogiques : Elles permettent de réaliser l'acquisition d'un signal analogique
et sa conversion numérique (CAN) indispensable pour assurer un traitement par le microprocesseur.
La fonction inverse (sortie analogique) est également réalisée.
Les grandeurs analogique sont normalisées : 0-10V ou 4-20mA.

ƒ Autres cartes :

 Cartes de régulation PID


 Cartes de pesage
 Cartes de communication (Ethernet ...)
 Cartes d'entrées / sorties déportées

IV. Câblage des entrées / sorties d'un automate :

a. Alimentation de l'automate (voir schéma ci-après) :

L'automate est alimenté généralement par le réseau monophasé 230V ; 50 Hz mais d'autres
alimentations sont possibles (110V etc ...).
La protection sera de type magnéto-thermique (voir les caractéristiques de l'automate et les
préconisations du constructeur).

Il est souhaitable d'asservir l'alimentation de l'automate par un circuit de commande spécifique


(contacteur KM1).

De même, les sorties seront asservies au circuit de commande et alimentées après validation du chien de
garde (voir paragraphe VII).

7 / 17
PE 1N L1

- Q1 2
- 2 x F2 - T1 - F3
230 / 24V
1 2 1 2
3

1
1 2
- S1
1

2
- KM1

1
- S2
4
2

Vers sorties automate

2
- KA1
13 14
1

13
3
Chien de
- Q2 - S3 - KM1 garde

14
4
2

I> A1 A1

- KM1 - KA1
A2 A2

PE N L C0 0 C1 1 C234 2 3 4

Alimentation de l'automate Sorties Automate

AUTOMATE
Alimentation des capteurs Entrées automate

0V 24V 0 1 2 3 4 5 6 7

8 / 17
b. Alimentation des entrées de l'automate :

L'automate est pourvu généralement d'une alimentation pour les capteurs/détecteurs (attention au type de
logique utilisée : logique positive ou négative).
Les entrées sont connectées au OV (commun) de cette alimentation.
Les informations des capteurs/détecteurs sont traitées par les interfaces d'entrées.

AUTOMATE

Interface
0 1 2 3 4 5 6 7
d'entrée

0V 24V 0 1 2 3 4 5 6 7

3
- b5
57
1

97

1
- S4
1

- S8 - S9 - F1
- B2 - S5
- KA1

15 s
58

98

2
2

2
4
c. Alimentation des sorties de l'automate :

Les interfaces de sorties permettent d'alimenter les divers préactionneurs.


Il est souhaitable d'équiper chaque préactionneur à base de relais de circuits RC (non représentés).

AUTOMATE

Interface
de sortie 0 1 2 3 4

C0 0 C1 1 C234 2 3 4

- KA1
13 14
X1/9
X1

A1

Depuis circuit - H1 - H4 - KM2

de commande
A2
X2

X1/10

9 / 17
V. Traitement du programme automate :

Tous les automates fonctionnent selon le même mode opératoire :

TRAITEMENT INTERNE

LECTURE DES ENTREES

EXECUTION DU PROGRAMME

ECRITURE DES SORTIES

 Traitement interne : L'automate effectue des opérations de contrôle et met à jour certains paramètres
systèmes (détection des passages en RUN / STOP, mises à jour des valeurs de l'horodateur, ...).

 Lecture des entrées : L'automate lit les entrées (de façon synchrone) et les recopie dans la mémoire
image des entrées.

 Exécution du programme : L'automate exécute le programme instruction par instruction et écrit les
sorties dans la mémoire image des sorties.

 Ecriture des sorties : L'automate bascule les différentes sorties (de façon synchrone) aux positions
définies dans la mémoire image des sorties.

Ces quatre opérations sont effectuées continuellement par l'automate (fonctionnement cyclique).

On appelle scrutation l'ensemble des quatre opérations réalisées par l'automate et le temps de scrutation
est le temps mis par l'automate pour traiter la même partie de programme. Ce temps est de l'ordre de la
dizaine de millisecondes pour les applications standards.

Le temps de réponse total (TRT) est le temps qui s'écoule entre le changement d'état d'une entrée et le
changement d'état de la sortie correspondante :

Temps de scrutation

I E T S I E T S

Déclenchement d'un détecteur Prise en compte du Basculement de la


changement d'entrée sortie

Temps de réponse total

Le temps de réponse total est au plus égal à deux fois le temps de scrutation (sans traitement particulier).

10 / 17
CHAPITRE 2. LES A.P.I. 19

2.2 Conception d’un automatisme séquentiel

Pour un procédé donné, on doit tenir


compte : Etude et réalisation
des contraintes industrielles d'un automatisme
(rentabilité, sécurité),
de la nature et des types de capteurs
Etablir le cahier des charges
donc des signaux délivrés par les capteurs,
de la nature des actionneurs donc des
signaux de commande acceptés par les Tracer le grafcet de niveau 1
actionneurs.
Cette partie est la plus importante surtout
pour la disposition des capteurs ! (Le Analyse opérationnelle et
capteur placé à cet endroit va-t-il délivrer technologique
une réponse pertinente ?). Elle détermine
aussi :
Tracer le grafcet de niveau 2
le choix des interfaces d'E/S,
le nombre et le type d'E/S,
l'utilité ou pas d'un bus de terrain. Analyser les modes de
marches et d'arrêts
L'établissement des séquences de
l'automatisme est ce que l'on appelle le
oui
grafcet de niveau 1. C'est le diagramme des Problème ?
actions à réaliser en fonction des
informations reçues. non
Choisir la technologie de commande

Cette analyse prend en compte les contraintes


imposées par les capteurs et les actionneurs, ainsi Etablir le schéma
que les modes de fonctionnement de
l'automatisme (marche, arrêt, manuel,
automatique, sécurité). Câbler – mettre au point
C'est ce qu'on appelle le GRAFCET de niveau 2
qui représente l'automatisme complet à réaliser. A
ce stade, en fonction des problèmes rencontrés, on FIN
peut être obligé de revenir au cahier des charges
et/ou au GRAFCET de niveau 1.

les différents matériels de l'automatisme,


la technologie de commande (si besoin).
VI. Programmation :

a. Langages de programmation :

Il existe 4 langages de programmation des automates qui sont normalisés au plan mondial par la norme
CEI 61131-3.
Chaque automate se programmant via une console de programmation propriétaire ou par un ordinateur
équipé du logiciel constructeur spécifique.

ƒ Liste d'instructions (IL : Instruction list) : Langage


textuel de même nature que l'assembleur
(programmation des microcontrôleurs).
Très peu utilisé par les automaticiens.

ƒ Langage littéral structuré (ST : Structured Text) :


Langage informatique de même nature que le
Pascal, il utilise les fonctions comme if ... then ...
else ... (si ... alors ... sinon ...)
Peu utilisé par les automaticiens.

ƒ Langage à contacts (LD : Ladder diagram) :


Langage graphique développé pour les
électriciens. Il utilise les symboles tels que :
contacts, relais et blocs fonctionnels et s'organise
en réseaux (labels).
C'est le plus utilisé.

ƒ Blocs Fonctionnels (FBD : Function Bloc Diagram) :


Langage graphique ou des fonctions sont représentées
par des rectangles avec les entrées à gauche et les
sorties à droites. Les blocs sont programmés
(bibliothèque) ou programmables.
Utilisé par les automaticiens.

12 / 17
b. Programmation à l'aide du GRAFCET (SFC : Sequential Function Chart) :

Le GRAFCET, langage de spécification, est utilisé par


certains constructeurs d'automate (Schneider, Siemens )
pour la programmation. Parfois associé à un langage de
programmation, il permet une programmation aisée des
systèmes séquentiels tout en facilitant la mise au point des
programmes ainsi que le dépannage des systèmes.
On peut également traduire un grafcet en langage en
contacts et l'implanter sur tout type d'automate.

Certains logiciels permettent une programmation totale en langage GRAFCET et permettent de s'adapter
à la plupart des automates existants (logiciels CADEPA ou AUTOMGEN).

VII.Sécurité :

Les systèmes automatisés sont, par nature, source de nombreux dangers (tensions utilisées, déplacements
mécaniques, jets de matière sous pression ...).
Placé au cœur du système automatisé, l'automate se doit d'être un élément fiable car :

- un dysfonctionnement de celui-ci pourrait avoir de graves répercussions sur la sécurité


des personnes,

- les coûts de réparation de l'outil de production sont généralement très élevé,

- un arrêt de la production peut avoir de lourdes conséquences sur le plan financier.

Aussi, l'automate fait l'objet de nombreuses dispositions pour assurer la sécurité :

ƒ Contraintes extérieures : l'automate est conçu pour supporter les différentes contraintes du monde
industriel et à fait l'objet de nombreux tests normalisés (tenue aux vibrations, CEM ...)

ƒ Coupures d'alimentation : l'automate est conçu pour supporter les coupures d'alimentation et permet,
par programme, d'assurer un fonctionnement correct lors de la réalimentation (reprises à froid ou à
chaud)

ƒ Mode RUN/STOP : Seul un technicien peut mettre en marche ou arrêter un automate et la remise en
marche se fait par une procédure d'initialisation (programmée)

ƒ Contrôles cycliques :

 Procédures d'autocontrôle des mémoires, de l'horloges, de la batterie, de la tensions


d'alimentation et des entrées / sorties
 Vérification du temps de scrutation à chaque cycle appelée Watchdog (chien de garde), et
enclenchement d'une procédure d'alarme en cas de dépassement de celui-ci (réglé par
l'utilisateur)

13 / 17
Description des langages PL7

II
Présentation

Objet de cet Cet intercalaire décrit les langages de programmation des automates Micro et
intercalaire Premium.

Contenu de cet Cet intercalaire contient les chapitres suivants :


intercalaire
Chapitre Titre du chapitre Page
6 Langage à contacts 111
7 Langage liste d’instructions 125
8 Langage litteral structuré 141
9 Grafcet 165
10 Blocs fonction DFB 209

TLX DR PL7 xx 109


Langages PL7

110 TLX DR PL7 xx


Langage à contacts

6
Présentation

Contenu de ce Ce chapitre décrit la programmation en langage à contacts.


chapitre

Contenu de ce Ce chapitre contient les sujets suivants :


chapitre
Sujet Page
Présentation générale du langage à contacts 112
Structure d’un réseau de contacts 113
Etiquette d’un réseau de contacts 114
Commentaire d’un réseau de contacts 115
Eléments graphiques du langage à contacts 116
Règles de programmation d’un réseau de contacts 119
Règle de programmation des blocs fonction 120
Règles de programmation des blocs opération 121
Exécution d’un réseau de contacts 122

TLX DR PL7 xx 111


Langage à contacts

Présentation générale du langage à contacts

Généralités Une section de programme écrite en langage à contacts se compose d’une suite de
réseaux de contacts exécutés séquentiellement par l’automate.

La représentation d'un réseau de contacts est proche de celle d'un schéma


électrique.

Illustration d’un L’écran suivant présente un réseau de contacts PL7.


réseau de 1 2 3
contacts
LD : MAST - CHART
(* Attente de séchage*)
%L100
%I1.0 %M12 %I1.7 %Q2.5

%TM4.Q %M17

%I1.10 %Q2.3 %M27 %TM0 %M25 %MW0.X OPERATE


%MW15:=%MW18+500
IN TM Q
MODE TON
TB: 1 mn
TMP: 9999
MODIF: Y
%M2 %I1.4 SR2
C

P N X S R OPER COHP COHP FB F (...)


H V
F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 S.F1 S.F2 S.F3 S.F4 S.F5 S.F6 S.F7 S.F8

Composition Ce tableau décrit les constituants d’un réseau de contacts.


d’un réseau de
Repère Elément Fonction
contacts
1 Etiquette Repére un réseau de contacts (optionnel).
2 Commentaire Renseigne un réseau de contacts (optionnel).
3 Eléments Ils représentent :
graphiques l les entrées/sorties de l’automate (boutons-poussoirs,
détecteurs, relais, voyants...)
l les fonctions d’automatismes (temporisateurs,
compteurs...,),
l les opérations arithmétiques, logiques et spécifiques,
l les variables internes de l’automate.

112 TLX DR PL7 xx


Langage à contacts

Structure d’un réseau de contacts

Introduction Un réseau s’inscrit entre deux barres de potentiel. Le sens de circulation du courant
s'établit de la barre de potentiel gauche vers la barre de potentiel droite.

Illustration Le dessin ci-après décrit la structure d’un réseau de contacts.


1 2 3 4 5 6 7 8 9 10 11

1
2
3
4
5
6
Barre de potentiel
7
8
9
10
11
.
Zone action

Zone test

Description d’un Un réseau de contacts est composé d’un ensemble d’éléments graphiques
réseau de disposés sur une grille de :
contacts l 16 lignes maximum et 11 colonnes (pour automates Premium),
l 7 lignes maximum et 11 colonnes (pour automates Micro).
Il est réparti en deux zones :
l la zone test, dans laquelle figurent les conditions nécessaires à une action
l la zone action, qui applique le résultat consécutif à un enchaînement de test.

TLX DR PL7 xx 113


Langage à contacts

Etiquette d’un réseau de contacts

Généralités L’étiquette permet de repérer un réseau dans une entité de programme (programme
principal, sous-programme, ...). Elle est optionnelle.

Syntaxe Cette étiquette a la syntaxe suivante : %Li avec i compris entre 0 et 999.
Elle se positionne à la partie supérieure gauche devant la barre de potentiel.

Illustration Les réseaux de contacts suivant illustrent l’utilisation d’une étiquette.

%M20 %L245

Etiquette

%L245

%Q2.3 %M155
S

Règles Un repère d’étiquette ne peut être affecté qu’à un seul réseau au sein d’une même
entité de programme.

Il est nécessaire d’étiqueter un réseau afin de permettre un branchement après un


saut de programme (voir illustration ci-dessus).

L’ordre des repères des étiquettes est quelconque, (c’est l’ordre de saisie des
réseaux qui est pris en compte par le système lors de la scrutation).

114 TLX DR PL7 xx


Langage à contacts

Commentaire d’un réseau de contacts

Généralités Le commentaire facilite l’interprétation du réseau auquel il est affecté, mais n’est pas
obligatoire.

Syntaxe Le commentaire est intégré au réseau et comprend 222 caractères alphanumé-


riques au maximum, encadrés de part et d'autre par les caractères (* et *).

Illustration Le dessin ci-dessous repère la position du commentaire.

Zone commentaire

Règles Les commentaires s’affichent dans la zone réservée dans la partie supérieure du
réseau de contacts.

En cas de suppression d’un réseau, le commentaire qui lui est associé est
également supprimé.

Les commentaires sont mémorisés dans l’automate et sont accessibles à tout


moment par l’utilisateur. A ce titre, ils consomment de la mémoire programme

TLX DR PL7 xx 115


Langage à contacts

Eléments graphiques du langage à contacts

Généralités Les éléments graphiques sont les instructions du langage à contacts.

Contacts Les éléments graphiques des contacts se programment en zone test et occupent
une cellule (1 ligne de hauteur et 1 colonne de largeur).
Désignation Graphisme Fonctions
Contact à Contact passant quand l’objet bit qui le pilote est à l’état 1.
fermeture

Contact à Contact passant quand l’objet bit qui le pilote est à l’état 0.
ouverture

Contact à Front montant : détection du passage de 0 à 1 de l’objet bit


détection de qui le pilote.
P
front montant
Contact à Front descendant : détection du passage de 1 à 0 de l’objet
détection de N bit qui le pilote.
front
descendant

Eléments de Les éléments graphiques de liaison permettent de relier les éléments graphiques de
liaison test et d’action.
Désignation Graphisme Fonctions
Connexion Permet de relier en série les éléments graphiques de test
horizontale et d’action entre les deux barres de potentiel.

Connexion Permet de relier en parallèle les éléments graphiques de


verticale de test et d’action.
potentiel
Dérivation Permet de relier 2 objets au travers de plusieurs
court-circuit connexions.

116 TLX DR PL7 xx


Langage à contacts

Bobines Les éléments graphiques des bobines se programment en zone action et occupent
une cellule (1 ligne de hauteur et une colonne de largeur).
Désignation Graphisme Fonctions
Bobine directe L’objet bit associé prend la valeur du résultat de la zone
test.

Bobine L’objet bit associé prend la valeur inverse du résultat de la


inverse zone test.

Bobine L’objet bit associé est mis à 1 lorsque le résultat de la zone


d’enclenchem S test est à 1.
ent
Bobine de L’objet bit associé est mis à 0 lorsque le résultat de la zone
déclenchemen R test est à 1.
t
Saut Permet un branchement à un réseau étiqueté, amont ou
conditionnel à aval.
->>%Li
un autre Les sauts ne sont effectifs qu’au sein d'une même entité de
réseau programmation (programme principal, sous-
(JUMP) programme,...). L’exécution d’un saut provoque :
l l’arrêt de la scrutation du réseau en cours,
l l’exécution du réseau étiqueté demandé,
l la non scrutation de la partie du programme située
entre l’action de saut et le réseau désigné.
Bobine dièse Proposée en langage Grafcet, utilisée lors de dièse la
programmation des réceptivités associées aux transistions
#
provoque le passage à l'étape suivante.

Bobine appel Permet un branchement en début de sous-programme


à un sous- lorsque le résultat de la zone de test sous-programme est
programme C à 1.
(CALL) L'exécution d'un appel à un sous-programme provoque :
l l’arrêt de la scrutation du réseau en cours,
l l’exécution du sous-programme,
l la reprise de la scrutation du réseau interrompu.

Retour de Réservée au sous-programme SR, permet le retour au


sous- module appelant lorsque le résultat de la zone de test est
programme
<RETURN> à 1.

Arrêt Provoque l'arrêt de l'exécution du programme lorsque le


programme résultat de la zone de test est à 1.
<HALT>

TLX DR PL7 xx 117


Langage à contacts

Blocs fonction Les éléments graphiques des blocs fonction standard se programment en zone test
standard et occupent une dimension d'une hauteur de 16 lignes maximum et une largeur 3
colonnes.
Désignation Graphisme Fonctions
Blocs Temporisateur, Chacun des blocs fonctions standards utilise des
Compteur, entrées, des sorties, des entrées/sorties permettant
Monostable, de les reliés aux autres éléments graphiques.
Registre,
Programmateur
cyclique

Blocs fonction Les éléments graphiques des blocs fonction DFB se programment en zone test et
DFB occupent une dimension d'une hauteur de 16 lignes maximum et une largeur 3
colonnes.
Désignation Graphisme Fonctions
Blocs Chacun des blocs fonctions DFB utilise des
programmables entrées, des sorties, des entrées/sorties permettant
de les reliés aux autres éléments graphiques pour
les objets de type bits ou pouvant être affectés à
des objets numériques ou tableaux

Blocs opération Les éléments graphiques des blocs opération se programment en zone test et
occupent les dimensions mentionnées ci-dessous.
Désignation Graphisme Fonctions
Bloc comparaison Permet la comparaison de 2 opérandes, suivant le
vertical résultat, la sortie correspondante passe à 1.
Dimension : 2 colonnes/4 lignes

Bloc comparaison Permet la comparaison de 2 opérandes, la sortie


horizontal passe à 1 lorsque le résultat est vérifié (un bloc peut
contenir jusqu'à 4096 caractères).
Dimension : 2 colonnes/1 ligne
Bloc Opération Réalise les opérations arithmétiques, logiques…fait
appel à la syntaxe du langage littéral structuré.
(Un bloc peut contenir jusqu'à 4096 caractères).
Dimension : 4 colonnes/1 ligne

118 TLX DR PL7 xx


Langage à contacts

Règles de programmation d’un réseau de contacts

Généralités La programmation d'un réseau de contacts s'effectue à l'aide des éléments


graphiques, en respectant les règles de programmation ci-après.

Règles de Les éléments graphiques simples de test et d’action occupent chacun une cellule au
programmation sein d’un réseau.

Toute ligne de contacts commence sur la ligne de potentiel gauche et doit se


terminer sur la ligne de potentiel droite.

Les tests sont toujours situés sur les colonnes 1 à 10.


Les actions sont toujours situées sur la colonne 11.

Le sens de circulation du courant est le suivant :


l pour les liaisons horizontales, de la gauche vers la droite,
l pour les liaisons verticales, dans les deux sens.

Exemple de L’écran suivant présente un exemple de réseau de contacts.


réseau de
contacts

TLX DR PL7 xx 119


Langage à contacts

Règle de programmation des blocs fonction

Généralités Les blocs fonction standard se positionnent dans la zone test des réseaux de
contacts.

Règles de Quel que soit le type de bloc fonction utilisé, il doit obligatoirement être relié en
programmation entrée à la barre de potentiel gauche, en direct ou à travers d’autres éléments
des blocs graphiques.
fonction l sorties "en l’air" : il n’est pas nécessaire de relier à d’autres éléments
graphiques les sorties des blocs fonction,
l sorties testables : les sorties des blocs fonction sont accessibles à l’utilisateur
sous forme d’objet bit.
Les variables internes de blocs et les sorties graphiques sont des objets exploitables
à distance depuis une autre partie du programme.

Les entrées non câblées des blocs fonction standard sont mises à 0.

Comme pour les éléments graphiques du type contacts, il est possible de réaliser
des combinaisons de blocs fonction.

Exemple d’un L’illustration suivante présente un exemple d’un réseau de contacts contenant 2
réseau de blocs fonction.
contacts

120 TLX DR PL7 xx


Langage à contacts

Règles de programmation des blocs opération

Généralités Les blocs comparaison se positionnent dans la zone test et les blocs opération se
positionnent dans la zone action.

Règles de Quel que soit le type de bloc opération utilisé, il doit obligatoirement être relié en
programmation entrée à la barre de potentiel gauche, en direct ou à travers d’autres éléments
des blocs graphiques.
opération
Comme pour les éléments graphiques du type contacts, il est possible de réaliser
des combinaisons de blocs fonction et opération.

Exemple de L’illustration suivante présente un exemple d’un réseau de contacts contenant 2


blocs opération blocs de comparaison et un bloc opération.

%I3.6 %TM10 %Q6.3


%MW1>100 IN Q
TYP:TP
%I1.2 TB:100ms %TM2.P:=3450
%MW2>500 TM.P:200
MODIF:Y

TLX DR PL7 xx 121


Langage à contacts

Exécution d’un réseau de contacts

Réseau connexe Un réseau connexe contient des éléments graphiques tous reliés entre eux par des
éléments de liaison (hors barre de potentiel), mais indépendants des autres
éléments graphiques du réseau (pas de liaisons verticales vers le haut ou vers le
bas en limite de réseau connexe).

Illustration de Le réseau de contacts suivant est composé de 3 réseaux connexes.


réseaux Réseau Réseau
connexes connexe 2 connexe 1

Réseau
connexe 3

Règle Le premier réseau connexe évalué est celui dont le coin gauche est situé le plus en
d’exécution de haut à gauche.
réseaux
connexes Un réseau connexe est évalué dans le sens de l'équation : évaluation du réseau de
haut en bas, ligne par ligne, et dans chaque ligne de gauche à droite.

Dans le cas où une liaison verticale de convergence est rencontrée, le sous réseau
qui lui est associé est évalué (selon la même logique) avant de continuer l'évaluation
du réseau qui l'englobe.

122 TLX DR PL7 xx


Langage à contacts

Exécution des Le tableau suivant décrit l’ordre d’exécution des éléments dans un réseau
éléments dans connexe..
un réseau
Phase Description
connexe
1 Le système évalue l'état logique de chaque contact, en fonction de :
l la valeur courante des objets internes de l'application,
l l'état des entrées des modules d'entrées/sorties acquis en début de cycle

2 Le système exécute les traitements associés aux fonctions, aux blocs


fonctions, et aux sous-programmes,
3 Le système met à jour les objets bits associés aux bobines (la mise à jour des
sorties des modules d'entrées/sorties s'effectue en fin de cycle),
4 Le système débranche vers un autre réseau étiqueté du même module
programme (saut à un autre réseau ->>%Li), retour au module appelant
<RETURN>, ou arrêt du programme <HALT>,

Exemple 1 : Le dessin suivant visualise l’ordre d’exécution des éléments graphiques.


illustration

Exemple 1 : Le tableau suivant décrit l'exécution des éléments graphiques dans le réseau illustré
fonctionnement ci-dessus.
Phase Description
1 Evaluation du réseau jusqu'à rencontre de la 1ère liaison verticale de
convergence : contacts A, B, C.
2 Evaluation du premier sous réseau : contact D,
3 Poursuite de l'évaluation du réseau jusqu'à la rencontre de la deuxième liaison
verticale de convergence: contact E,
4 Evaluation du 2ème sous réseau : contacts F et G,
5 Evaluation de la bobine H.

TLX DR PL7 xx 123


Langage à contacts

Exemple 2 : Le dessin suivant visualise l’ordre d’exécution des éléments graphiques.


illustration

Exemple 2 : Le tableau suivant décrit l'exécution des éléments graphiques dans le réseau illustré
fonctionnement ci-dessus.
Phase Description
1 bobine 1 : INIT, %M5, %M7, %Q2.1,
2 bobine 2 : %M4, %MW2:X1,AUTO, UP_1,
3 Bloc opération.

124 TLX DR PL7 xx


Langage liste d’instructions

7
Présentation

Généralités Ce chapitre décrit les régles de programmation en langage liste d’instructions.

Contenu de ce Ce chapitre contient les sujets suivants :


chapitre
Sujet Page
Présentation générale du langage liste d’instructions 126
Structure d’un programme liste d’instructions 127
Etiquette d’une phrase en langage liste d’instructions 128
Commentaire d’une phrase en langage liste d’instructions 129
Présentation des instructions en langage liste d’instructions 130
Règle d’utilisation des parenthèses en langage liste d’instructions 133
Description des instructions MPS, MRD et MPP 135
Principes de programmation des blocs fonction prédéfinis 137
Règles d’exécution d’un programme liste d’instructions 139

TLX DR PL7 xx 125


Langage liste d’instructions

Présentation générale du langage liste d’instructions

Généralités Une section écrite en langage liste d’instructions se compose d’une suite
d’instructions exécutées séquentiellement par l’automate.

Illustration d’un L’illustration suivant présente un programme liste d’instructions PL7 et le détail
programme d’une instruction..
!%L0:
LD %I1.0
ANDN %M12
OR( %TM4.Q
LD %I1.0
AND %M17
)
AND %I3.7
ST %Q2.5 Code Opérande
!%L2: instruction
LD %I3.5

Composition Ce tableau décrit les constituants d’une instruction.


d’une instruction
Elément Fonction
Code instruction Le code instruction détermine l’opération à exécuter. Il existe 2 types de
codes instructions :
l test, dans laquelle figurent les conditions nécessaires à une action
(ex : LD, AND, OR...),
l action, qui sanctionne le résultat consécutif à un enchaînement de
test. (ex : ST, STN, R, ...).
Opérande Une instruction agit sur un opérande. Cet opérande peut être :
l une entrée/sortie de l’automate (boutons-poussoirs, détecteurs,
relais, voyants...),
l une fonctions d’automatisme (temporisateurs, compteurs...),
l une opération arithmétique et logique ou une opération de transfert,
l une variable interne de l’automate.

126 TLX DR PL7 xx


Langage liste d’instructions

Structure d’un programme liste d’instructions

Généralités Comme en langage à contacts, les instructions sont organisées en séquence


d'instructions (équivalent à un réseau de contacts) appelée phrase.

Exemple de L’illustration suivante présente une phrase liste d’instructions PL7.


phrase
!(*Attente de séchage*) 1
%L2 : 2
LD %I1.0
AND %M10 3
ST %Q2.5

Description Chaque phrase commence par un point d'exclamation (généré automatiquement),


d’une phrase elle comporte les éléments suivants.
Repère Elément Fonction
1 Commentaire Renseigne une phrase (optionnel).
2 Etiquette Repère une phrase (optionnel).
3 Instructions Une à plusieurs instructions de test, le résultat de ces
instructions étant appliqué à une ou plusieurs instructions
d'action.
Une instruction occupe une ligne maximum

TLX DR PL7 xx 127


Langage liste d’instructions

Etiquette d’une phrase en langage liste d’instructions

Généralités L’étiquette permet de repérer une phrase dans une entité de programme
(programme principal, sous-programme, ...). Elle est optionnelle.

Syntaxe Cette étiquette a la syntaxe suivante : %Li avec i compris entre 0 et 999. Elle se
positionne en début d’une phrase.

Illustration Le programme suivant illustre l’utilisation d’une étiquette.

%L0 :
LD %M40
JMPC %L10

!(*Attente de séchage*)
%L2 :
LD %I1.0
AND %M10
ST %Q2.5
...
%L10 : Etiquette
LD %I3.5
ANDN %Q4.3
OR %M20
ST %Q2.5

Règles Une même étiquette ne peut être affectée qu’à une seule phrase au sein d’une
même entité de programme.

Il est nécessaire d’étiqueter une phrase afin de permettre un branchement après un


saut de programme.

L’ordre des repères des étiquettes est quelconque, c’est l’ordre de saisie des
phrases qui est prise en compte par le système lors de la scrutation.

128 TLX DR PL7 xx


Langage liste d’instructions

Commentaire d’une phrase en langage liste d’instructions

Généralités Le commentaire facilite l’interprétation d’une phrase auquel il est affecté. Il est
optionnel.

Syntaxe Le commentaire peut être intégré au début d'une phrase et peut occuper 3 lignes
maximum (soit 222 caractères alphanumériques), encadrés de part et d'autre par
les caractères (* et *).

Illustration L’illustration ci-après repère la position du commentaire dans une phrase.


!(*Attente de séchage*) Commentaire
%L2 :
LD %I1.0
AND %M10
ST %Q2.5

Règles Les commentaires s’affichent uniquement à partir de la première ligne de la phrase.

En cas de suppression d’une phrase, le commentaire qui lui est associé est
également supprimé.

Les commentaires sont mémorisés dans l’automate et sont accessibles à tout


moment par l’utilisateur. A ce titre, ils consomment de la mémoire programme.

TLX DR PL7 xx 129


Langage liste d’instructions

Présentation des instructions en langage liste d’instructions

Généralités Le langage liste d’instructions comporte des instructions :


l de test
l d’action
l sur bloc fonction
l numériques

Instructions de Le tableau suivant décrit les instructions de test du langage liste d’instructions..
test
Désignation Graphisme Fonctions
équivalent
LD Le résultat booléen est égal à l’état de l’opérande.

LDN Le résultat booléen est égal à l’état inverse de l’opérande.

LDR Le résultat booléen passe à 1 à la détection du passage de


P 0 à 1 de l’opérande (front montant).

LDF Le résultat booléen passe à 1 à la détection du passage de


N 1 à 0 de l’opérande (front descendant).

AND Le résultat booléen est égal au Et logique entre le résultat


booléen de l’instruction précédente et l’état de l’opérande.

ANDN Le résultat booléen est égal au Et logique entre le résultat


booléen de l’instruction précédente et l’état inverse de
l’opérande.
ANDR Le résultat booléen est égal au Et logique entre le résultat
P booléen de l’instruction précédente, et la détection d’un
front montant de l’opérande (1=front montant).
ANDF Le résultat booléen est égal au Et logique entre le résultat
N booléen de l’instruction précédente, et la détection d’un
front descendant de l’opérande (1=front descendant).
OR Le résultat booléen est égal au Ou logique entre le résultat
booléen de l’instruction précédente et l’état de l’opérande.

ORN Le résultat booléen est égal au Ou logique entre le résultat


booléen de l’instruction précédente et l’état inverse de
l’opérande.

130 TLX DR PL7 xx


Langage liste d’instructions

Désignation Graphisme Fonctions


équivalent
ORR Le résultat booléen est égal au Ou logique entre le résultat
booléen de l’instruction précédente, et la détection d’un
P front montant de l’opérande (1=front montant).

ORF Le résultat booléen est égal au Et logique entre le résultat


booléen de l’instruction précédente et l’état de l’opérande.,
N et la détection d’un front descendant de l’opérande
(1=front descendant).
AND( Et logique (8 niveaux de parenthèses)

OR( Ou logique (8 niveaux de parenthèses)

XOR, XORN, - Ou exclusif


XORR, XORF
MPS Aiguillage vers des bobines.
MRD
MPP

N - Négation

Instructions Le tableau suivant décrit les instructions de test du langage liste d’instructions.
d’action
Désignation Graphisme Fonctions
ST L’opérande associé prend la valeur du résultat de la zone
test.

STN L’opérande associé prend la valeur inverse du résultat de


la zone test.

S L’opérande associé est mis à 1 lorsque le résultat de la


S zone test est à 1.

R L’opérande associé est mis à 0 lorsque le résultat de la


R zone test est à 1.

JMP - Permet un branchement inconditionnel à une phrase


étiquetée, amont ou aval.

TLX DR PL7 xx 131


Langage liste d’instructions

Désignation Graphisme Fonctions


JMPC - Permet un branchement conditionné à un résultat booléen
à 1 , à une phrase étiquetée amont ou aval.
JMPCN - Permet un branchement conditionné à un résultat booléen
à 0 , à une phrase étiquetée amont ou aval.
SRn - Branchement en début de sous-programme.
RET - Retour de sous-programme.
RETC - Retour de sous-programme conditionné à un résultat
booléen à 1.
RETCN - Retour de sous-programme conditionné à un résultat
booléen à 0.
END - Fin de programme.
ENDC - Fin de programme conditionné à un résultat booléen à 1.
ENDCN - Fin de programme conditionné à un résultat booléen à 0.

Instruction sur Le tableau suivant décrit les instructions de test du langage liste d’instructions..
bloc fonction
Désignation Graphisme Fonctions
Blocs Temporisateur, Pour chacun des blocs fonction standards, il existe
Compteur, des instructions permettant de piloter le bloc.
Monostable, Une forme structurée permet de câbler directement
Registre, les entrées/sorties des blocs.
Programmateur
cyclique

Instructions Le tableau suivant décrit les instructions de test du langage liste d’instructions.
numériques
Désignation Instructions Fonctions
Elément de test LD[.....] Permet la comparaison de 2 opérandes, la sortie
AND[.....] passe à 1 lorsque le résultat est vérifié.
OR[.....] Exemple : LD[%MW10<1000]
Résultat à 1 lorsque %MW10<1000.
Elément d’action [.....] Réalisent les opérations arithmétiques, logiques...
Utilisent la syntaxe du langage littéral structuré.
Exemple : [%MW10:=%MW0+100]
Le résultat de l’opération %MW0+100 est placé
dans le mot interne %MW10.

132 TLX DR PL7 xx


Langage liste d’instructions

Règle d’utilisation des parenthèses en langage liste d’instructions

Généralités Les instructions AND et OR peuvent utiliser des parenthèses.


Ces parenthèses permettent de réaliser des schémas à contacts de façon simple.

Principe L'ouverture de parenthèses est associée à l'instruction AND ou OR.


La fermeture de parenthèse est une instruction, elle est obligatoire pour chaque
parenthèse ouverte.

Exemple : AND( Les 2 programmes suivants illustrent l’utilisation de la parenthèse.


LD %I1.0
AND %I1.1
OR %I1.2
ST %Q2.0

LD %I1.0
AND( %I1.1
OR %I1.2
)
ST %Q2.0

Exemple : OR( Le programme suivant illustre l’utilisation de la parenthèse.


LD %I1.0
AND %I1.1
OR(N %I1.2
AND %I1.3
)
ST %Q2.0

TLX DR PL7 xx 133


Langage liste d’instructions

Association des Les "modificateurs" suivants peuvent être associés aux parenthèses.
parenthèses à
Code Rôle Exemple
des
modificateurs N Négation AND(N
F Front descendant (Falling edge) AND(F
R Front montant (Rising edge) OR(R
[ Comparaison OR([%MW0>100]

Imbrication de Il est possible d’imbriquer jusqu’à 8 niveaux de parenthèses.


parenthèses Les règles ci-après doivent être suivies :
l Chaque parenthèse ouverte doit être impérativement refermée
l Les étiquettes %Li: ne doivent pas être placées dans des expressions entre
parenthèses, ainsi que les instructions de saut JMP et d'appel à sous programme
SRi,
l Les instructions d'affectation ST, STN, S et R ne doivent pas être programmées
entre parenthèses.
Exemple :
Les programmes suivants illustrent l’utilisation de l’imbrication des parenthèses.
LD %I1.0
AND( %I1.1
OR(N %I1.2
AND %M3
)
)
ST %Q2.0

LD %I1.1
AND( %I1.2
AND %I1.3
OR(N %I1.5
AND %I1.6
)
AND %I1.4
OR(N %I1.7
AND %I1.8
)
)
ST %Q2.0

134 TLX DR PL7 xx


Langage liste d’instructions

Description des instructions MPS, MRD et MPP

Généralités Les 3 types d'instruction permettent de traiter les aiguillages vers les bobines.

Ces instructions utilisent une mémoire intermédiaire appelée pile pouvant stocker
jusqu'à 3 informations booléennes...

Note : Ces instructions ne peuvent pas être utilisées au sein d'une expression
entre parenthèses

Rôle Le tableau suivant décrit le rôle de chacune des instructions


Instruction Rôle
MPS (Memory PuSh) Cette instruction a pour effet de stocker le résultat de la
dernière instruction de test au sommet de la pile et de décaler
les autres valeurs vers le fond de la pile.
MRD (Memory ReaD) Cette instruction lit le sommet de la pile.
MPP (Memory PoP) Cette instruction a pour effet de lire, de déstocker le sommet de
la pile et de décaler les autres valeurs vers le sommet de la
pile.

Exemple 1 Cet exemple illustre l’utilisation des instructions MPS, MRD, et MPP.

LD %I1.0
AND %M0
MPS
AND %I1.1
ST %Q2.0
MRD
AND %I1.2
ST %Q2.1
MRD
AND %I1.3
ST %Q2.2
MPP
AND %I1.4
ST %Q2.3

TLX DR PL7 xx 135


Langage liste d’instructions

Exemple 2 Cet exemple illustre le fonctionnement des instructions MPS, MRD, et MPP.
LD %I1.0
MPS
AND %I1.1
MPS
AND( %I1.3
OR %M0
)
ST %Q2.0
MPP
AND %M1
ST %Q2.1
MRD
AND %I1.4
ST %Q2.2
MPP
AND %M10
ST %Q2.3

136 TLX DR PL7 xx


Langage liste d’instructions

Principes de programmation des blocs fonction prédéfinis

Généralités Les blocs fonctions d’automatisme peuvent être programmés de 2 façons


différentes :
l avec instructions spécifiques à chaque bloc fonction (ex: CU %Ci), cette façon
est la plus simple et la plus directe,
l avec instructions de structuration de bloc BLK ,OUT_BLK, END_BLK.

Principe de Les instructions pilotent les entrées des blocs (ex: CU). Les sorties sont accessibles
programmation sous forme de bit (ex: %C8.D).
directe
Exemple :
Cet exemple illustre la programmation directe d’un bloc fonction compteur.

Traitement
des entrées

Traitement
des sorties

TLX DR PL7 xx 137


Langage liste d’instructions

Principe de Ce type de programmation utilise une suite d' instructions encadrée par les
programmation instructions :
structurés l BLK indique le début du bloc
l OUT_BLK permet de câbler directement les sorties du bloc
l END_BLK indique la fin du bloc

Exemple :
Cet exemple illustre la programmation structurée d’un bloc fonction compteur.

BLK %C8
LD %I1.1 Traitement
R des entrées
LDN %I1.2
ANDN %M0
CU
OUT_BLK
Traitement
LD D des sorties
ST %Q2.0
END_BLK

Note : Ce principe de programmation structuré nécessitant les instructions


supplémentaires BLK, OUT_BLK et END_BLK demande des volumes mémoires
supérieurs par rapport à la programmation directe. Il est cependant à utiliser, si
vous voulez garder une similitude avec des programmes réversibles pour nano-
automates TSX 07.

138 TLX DR PL7 xx


Langage liste d’instructions

Règles d’exécution d’un programme liste d’instructions

Principe L’exécution d’un programme liste d'instructions s'effectue séquentiellement


instruction par instruction.

La première instruction d'une séquence d'instructions doit toujours être soit une
instruction LD soit une instruction inconditionnelle (ex : JMP).

Chaque instruction (excepté LD et les instructions inconditionnelles) utilise le


résultat booléen de l'instruction précédente.

Exemple 1 Le programme ci-après décrit l’exécution complète d’une phrase.


LD %I1.1 résultat = état du bit %I1.1
AND %M0 résultat = ET du résultat booléen précédent et de l'état du bit %M0
OR %M10 résultat = OU du résultat booléen précédent et de l'état du bit %M10
ST %Q2.0 %Q2.0 prend l'état du résultat booléen précédent

Exemple 2 Les parenthèses permettent de modifier l'ordre de prise en compte des résultats
booléens :
LD %I1.1 résultat = état du bit %I1.1
AND %M0 résultat = ET du résultat booléen précédent et de l'état du bit %M0
OR( %M10 résultat = état du bit %M10
AND %I1.2 résultat = ET du résultat booléen précédent et de l'état du bit %M10
)
ST %Q2.0 %Q2.0 prend l'état du résultat booléen précédent

TLX DR PL7 xx 139


Langage liste d’instructions

Exemple 3 Le séquencement des instructions peut être modifié par les instructions de saut JMP
d’appel à sous-programme.
! LD %M0
JMPC %L10
! LD %I1.1
AND %M10 Saut à l’étiquette %L10 si %M0=1
ST %Q2.0
! %L10:
LD %I1.3
AND %M20
......

140 TLX DR PL7 xx


Langage litteral structuré

8
Présentation

Objet de ce Ce chapitre décrit les règles de programmation en langage littéral structuré.


chapitre

Contenu de ce Ce chapitre contient les sujets suivants :


chapitre
Sujet Page
Présentation du langage littéral structuré 142
Structure d’un programme en langage littéral structuré 143
Etiquette d’une phrase en langage littéral structuré 144
Commentaire d’une phrase en langage littéral structuré 145
Instructions sur objets bits 146
Instructions arithmétiques et logiques 147
Instructions sur tableaux et chaîne de caractères 149
Instructions de conversions numériques 152
Instructions sur programme et instructions spécifiques 153
Structure de contrôle conditionnelle IF...THEN 155
Structure de contrôle conditionnelle WHILE...END_WHILE 157
Structure de contrôle conditionnelle REPEAT...END_REPEAT 158
Structure de contrôle conditionnelle FOR...END_FOR 159
Instruction de sortie de boucle EXIT 160
Règles d’exécution d’un programme littéral structuré 161

TLX DR PL7 xx 141


Langage littéral structuré

Présentation du langage littéral structuré

Généralités Le langage littéral structuré est un langage évolué de type algorithmique particuliè-
rement adapté à la programmation de fonctions arithmétiques complexes,
manipulations de tableaux et gestions de messages.

Il permet la réalisation de programmes par écriture de lignes de programmation,


constituées de caractères alphanumériques.

Limite Ce langage est utilisable avec les logiciels PL7 Micro, PL7 Junior et PL7 Pro sur les
d’utilisation automates Premium et Micro.
Dans la version PL7 Pro, ce langage permet la création des blocs fonction utilisateur
DFB sur les automates Premium.

Illustration d’un L’illustration suivante présente un programme en langage structuré PL7.


programme
! (* Recherche du premier élément non nul dans un
tableau de 32 mots, détermination de sa valeur
(%MW10), de son rang (%MW11). Cette recherche
s’effectue si %M0 est à 1, %M1 est mis à 1 si
un élément non nul existe, sinon il est mis à 0*)

IF %M0 THEN
FOR %MW99:=0 TO 31 DO
IF %MW100[%MW99]<>0 THEN
%MW10:=%MW100[%MW99];
%MW11:=%MW99;
%M1:=TRUE;
EXIT; (*Sortie de la boucle*)
ELSE
%M1:=FALSE;
END_IF;
END_FOR;
ELSE
%M1:=FALSE;
END_IF;

142 TLX DR PL7 xx


Langage littéral structuré

Structure d’un programme en langage littéral structuré

Généralités Une section de programme littéral est organisée en phrases.


Une phrase littérale est l’équivalent d’un réseau de contacts en langage à contacts.

Exemple de L’illustration suivante présente une phrase en langage structurée PL7.


phrase
1 ! %L20: (*Attente de séchage*) 2
SET %M0;
%MW4:=%MW2 + %MW9; 3
(*calcul de pression*)
%MF12:=SQRT (%MF14);

Description Chaque phrase commence par un point d'exclamation (généré automatiquement),


d’une phrase elle comporte les éléments suivants.
Repère Elément Fonction
1 Etiquette Repère une phrase.
2 Commentaire Renseigne une phrase.
3 Instructions Une à plusieurs instructions séparées par ";".

Note : Chacun de ces éléments est optionnel, c'est-à-dire qu’il est possible d’avoir
une phrase vide, une phrase constituée uniquement de commentaires ou
uniquement d'une étiquette.

TLX DR PL7 xx 143


Langage littéral structuré

Etiquette d’une phrase en langage littéral structuré

Rôle L’étiquette permet de repérer une phrase dans une entité de programme
(programme principal, sous-programme, ...). Elle est optionnelle.

Syntaxe Cette étiquette a la syntaxe suivante : %Li : avec i compris entre 0 et 999. Elle se
positionne en début d’une phrase.

Illustration Le programme suivant illustre l’utilisation d’une étiquette.

! %L20 : Etiquette
(*Attente de séchage*)
SET %M0;
%MW4:=%MW2 + %MW9;
(*calcul de pression*)
%MF12:=SQRT (%MF14);

Règles Une même étiquette ne peut être affectée qu’à une seule phrase au sein d’une
même entité de programme.

Il est nécessaire d’étiqueter une phrase afin de permettre un branchement après un


saut de programme.

L’ordre des repères des étiquettes est quelconque, c’est l’ordre de saisie des
phrases qui est prise en compte par le système lors de la scrutation.

144 TLX DR PL7 xx


Langage littéral structuré

Commentaire d’une phrase en langage littéral structuré

Rôle Le commentaire facilite l’interprétation d’une phrase à laquelle il est affecté. Il est
optionnel.

Syntaxe Le commentaire peut être intégré n’importe où dans la phrase et le nombre de


commentaires par phrase n’est pas limité.

Un commentaire est encadré de part et d’autre par les caractères (* et *).

Illustration L’illustration ci-après repère la position du commentaire dans une phrase.

! %L20 (*Attente de séchage*)


SET %M0;
Commentaires
%MW4:=%MW2 + %MW9;
(*calcul de pression*)
%MF12:=SQRT (%MF14);

Règles l Tous les caractères sont autorisés dans un commentaire.


l Le nombre de caractères est limité à 256 par commentaire.
l Les commentaires imbriqués sont interdits.
l Un commentaire peut tenir sur plusieurs lignes.
Les commentaires sont mémorisés dans l’automate et sont accessibles à tout
moment par l’utilisateur. A ce titre, ils consomment de la mémoire programme.

TLX DR PL7 xx 145


Langage littéral structuré

Instructions sur objets bits

Instructions sur Les instructions suivantes s’appliquent sur des objets bits.
bits
Désignation Fonction
:= Affectation d'un bit
OR OU booléen
AND ET booléen
XOR OU exclusif booléen
NOT Inversion
RE Front montant
FE Front descendant
SET Mise à 1
RESET Mise à 0

Instructions sur Les instructions suivantes s’appliquent sur des objets de type tableau de bits.
tableaux de bits
Désignation Fonction
Tableau := Tableau Affectation entre deux tableaux
Tableau := Mot Affectation d'un mot à un tableau
Mot := Tableau Affectation d'un tableau à un mot
Tableau := Double mot Affectation d'un double mot à un tableau
Double mot := Tableau Affectation d'un tableau à un double mot
COPY_BIT Copie d'un tableau de bits dans un tableau de bits
AND_ARX ET entre deux tableaux
OR_ARX OU entre deux tableaux
XOR_ARX OU exclusif entre deux tableaux
NOT_ARX Négation sur un tableau
BIT_W Copie d'un tableau de bits dans un tableau de mots
BIT_D Copie d'un tableau de bits dans un tableau de doubles mots
W_BIT Copie d'un tableau de mots dans un tableau de bits
D_BIT Copie d'un tableau de doubles mots dans un tableau de bits
LENGHT_ARX Calcul de la longueur d'un tableau en nombre d'éléments

146 TLX DR PL7 xx


Langage littéral structuré

Instructions arithmétiques et logiques

Arithmétique Les instructions suivantes s’appliquent sur des objets mots et doubles mots..
entière sur mots
Désignation Fonction
et doubles mots
+, -, *, / Addition, Soustraction, Multiplication, Division entière
REM Reste de la division entière
SQRT Racine carrée entière
ABS Valeur absolue
INC Incrémentation
DEC Décrémentation

Arithmétique sur Les instructions suivantes s’appliquent sur des objets flottants..
flottants
Désignation Fonction
+, -, *, / Addition, Soustraction, Multiplication, Division
SQRT Racine carrée
ABS Valeur absolue
TRUNC Partie entière
LOG Logarithme base 10
LN Logarithme népérien
EXP Exponentielle naturelle
EXPT Exponentiation d'un réel par un réel
COS Cosinus d'une valeur en radian
SIN Sinus d'une valeur en radian
TAN Tangente d'une valeur en radian
ACOS Arc cosinus (résultat entre 0 et 2 p)
ASIN Arc sinus (résultat entre -p/2 et +p/2)
ATAN Arc tangente (résultat entre -p/2 et +p/2)
DEG_TO_RAD Conversion degrés en radians
RAD_TO_DEG Conversion radians en degrés

TLX DR PL7 xx 147


Langage littéral structuré

Instructions Les instructions suivantes s’appliquent sur des objets mots et doubles mots.
logiques sur
Désignation Fonction
mots et doubles
mots AND ET logique
OR OU logique
XOR OU logique exclusif
NOT Complément logique
SHL Décalage logique à gauche
SHR Décalage logique à droite
ROL Décalage logique circulaire à gauche
ROR Décalage logique circulaire à droite

Comparaisons Les instructions suivantes s’appliquent sur des objets mots, doubles mots et
numériques sur flottants.
mots, doubles
Désignation Fonction
mots et flottants
< Strictement inférieur à
> Strictement supérieur à
<= Inférieur ou égal à
>= Supérieur ou égal à
= Egal à
<> Différent de

148 TLX DR PL7 xx


Langage littéral structuré

Instructions sur tableaux et chaîne de caractères

Instructions sur Les instructions suivantes s’appliquent sur des tableaux de mots et doubles mots.
tableaux de mots
Désignation Fonction
et doubles mots
Tableau := Tableau Affectation entre deux tableaux
Tableau := Mot Initialisation d'un tableau
+, -, *, /, REM Opérations arithmétiques entre tableaux
+, -, *, /, REM Opérations arithmétiques entre expressions et tableaux
SUM Sommation des éléments d'un tableau
EQUAL Comparaison de deux tableaux
NOT Complément logique d'un tableau
AND, OR, XOR Opérations logiques entre deux tableaux
AND, OR, XOR Opérations logiques entre expressions et tableaux
FIND_EQW, FIND_EQD Recherche du premier élément égal à une valeur
FIND_GTW, FIND_GTD Recherche du premier élément supérieur à une valeur
FIND_LTW, FIND_LTD Recherche du premier élément inférieur à une valeur
MAX_ARW, MAX_ARD Recherche de la valeur maximum dans un tableau
MIN_ARW, MIN_ARD Recherche de la valeur minimum dans un tableau
OCCUR_ARW, OCCUR_ARD Nombre d'occurrences d'une valeur dans un tableau
SORT_ARW, SORT_ARD Tri par ordre croissant ou décroissant d'un tableau
ROL_ARW, ROL_ARD Décalage circulaire à gauche d'un tableau
ROR_ARW, ROR_ARD Décalage circulaire à droite d'un tableau
FIND_EQWP,FIND_EQDP Recherche du premier élément égal à une valeur depuis
un rang
LENGTH_ARW, LENGTH_ARD Calcul de longueur d'un tableau

TLX DR PL7 xx 149


Langage littéral structuré

Instructions sur Les instructions suivantes s’appliquent sur des tableaux de flottants.
tableaux de
Désignation Fonction
flottants
Tableau := Tableau Affectation entre deux tableaux
Tableau := Flottant Initialisation d'un tableau
SUM_ARR Sommation des éléments d'un tableau
EQUAL_ARR Comparaison de deux tableaux
FIND_EQR Recherche du premier élément égal à une valeur
FIND_GTR Recherche du premier élément supérieur à une valeur
FIND_LTR Recherche du premier élément inférieur à une valeur
MAX_ARR Recherche de la valeur maximum dans un tableau
MIN_ARR Recherche de la valeur minimum dans un tableau
OCCUR_ARR Nombre d'occurrences d'une valeur dans un tableau
SORT_ARR Tri par ordre croissant ou décroissant d'un tableau
ROL_ARR Décalage circulaire à gauche d'un tableau
ROR_ARR Décalage circulaire à droite d'un tableau
LENGTH_ARR Calcul de longueur d'un tableau

150 TLX DR PL7 xx


Langage littéral structuré

Instructions sur Les instructions suivantes s’appliquent sur des chaînes de caractères.
chaînes de
Désignation Fonction
caractères
STRING_TO_INT Conversion ASCII í Binaire (mot simple format)
STRING_TO_DINT Conversion ASCII í Binaire (mot double format)
INT_TO_STRING Conversion Binaire í (mot simple format) ASCII
DINT_TO_STRING Conversion Binaire í (mot double format) ASCII
STRING_TO_REAL Conversion ASCII í Flottant
REAL_TO_STRING Conversion Flottant í ASCII
<, >, <=, >=, =, <> Comparaison alphanumérique
FIND Position d'une sous-chaîne
EQUAL_STR Position du premier caractère différent
LEN Longueur d'une chaîne de caractères
MID Extraction d'une sous-chaîne
INSERT Insertion d'une sous-chaîne
DELETE Suppression d'une sous-chaîne
CONCAT Concaténation de deux chaînes
REPLACE Remplacement d'une chaîne
LEFT Début de chaîne
RIGHT Fin de chaîne

TLX DR PL7 xx 151


Langage littéral structuré

Instructions de conversions numériques

Instructions de Les instructions réalisent des conversions de bits, mots, double mots et flottants.
conversions
Désignation Fonction
numériques
BCD_TO_INT Conversion BCD í Binaire
INT_TO_BCD Conversion Binaire í BCD
GRAY_TO_INT Conversion Gray í Binaire
INT_TO_REAL Conversion d'un entier simple format en flottant
DINT_TO_REAL Conversion d'un entier double format en flottant
REAL_TO_INT Conversion d'un flottant en entier simple format
REAL_TO_DINT Conversion d'un flottant en entier double format
DBCD_TO_DINT Conversion d'un nombre BCD 32 bits en entier 32 bits
DINT_TO_DBCD Conversion d'un entier 32 bits en nombre BCD 32 bits
DBCD_TO_INT Conversion d'un nombre BCD 32 bits en entier 16 bits
INT_TO_DBCD Conversion d'un entier 16 bits en nombre BCD 32 bits
LW Extraction du mot de poids faible d'un double mot
HW Extraction du mot de poids fort d'un double mot
CONCATW Concaténation de 2 mots simples

152 TLX DR PL7 xx


Langage littéral structuré

Instructions sur programme et instructions spécifiques

Instructions sur Les instructions suivantes n’agissent pas sur des objets du langage mais sur le
programme déroulement du programme..
Désignation Fonction
HALT Arrêt de l'exécution du programme
JUMP Saut à une étiquette
SRi Appel de sous-programme
RETURN Retour de sous-programme
MASKEVT Masquage des événements dans l'automate
UNMASKEVT Démasquage des événements dans l'automate

Instructions de Les instructions suivantes effectuent des opérations sur les dates, heures et sur les
gestion du temps durées..
Désignation Fonction
SCHEDULE Fonction hordateur
RRTC Lecture date système
WRTC Mise à jour de la date système
PTC Lecture date et code arrêt
ADD_TOD Ajout d'une durée à une heure du jour
ADD_DT Ajout d'une durée à une date et heure
DELTA_TOD Mesure d'écart entre heures du jour
DELTA_D Mesure d'écart entre dates (sans heure)
DELTA_DT Mesure d'écart entre dates (avec heure)
SUB_TOD Remontée dans le temps sur heure
SUB_DT Remontée dans le temps sur date et heure
DAY_OF_WEEK Lecture du jour courant de la semaine
TRANS_TIME Conversion durée en date
DATE_TO_STRING Conversion d'une date en chaîne de caractères
TOD_TO_STRING Conversion d'une heure en chaîne de caractères
DT_TO_STRING Conversion d'une date complète en chaîne de caractères
TIME_TO_STRING Conversion d'une durée en chaîne de caractères

TLX DR PL7 xx 153


Langage littéral structuré

Instructions Les instructions suivantes sont des instructions spécifiques du langages Orphée..
"Orphée"
Désignation Fonction
WSHL_RBIT, DSHL_RBIT Décalage à gauche sur mot avec récupération des bits
décalés
WSHR_RBIT, DSHR_RBIT Décalage à droite sur mot avec extension de signe et
récupération des bits décalés
WSHRZ_C, DSHRZ_C Décalage à droite sur mot avec remplissage par 0 et
récupération des bits décalés
SCOUNT Comptage/décomptage avec signalisation de
dépassement
ROLW,ROLD Décalage circulaire gauche
RORW,RORD Décalage circulaire droite

Instructions de Ces instructions sont des fonctions de temporisation destinées à être utilisés pour
temporisation la programmation du code des DFB..
Désignation Fonction
FTON Temporisation à l'enclenchement
FTOF Temporisation au déclenchement
FTP Temporisation d'impulsion
FPULSOR Générateur de signaux rectangulaires

154 TLX DR PL7 xx


Langage littéral structuré

Structure de contrôle conditionnelle IF...THEN

Rôle Cette structure de contrôle réalise une ou plusieurs actions si une condition est vrai.
Dans sa forme générale les conditions peuvent être multiples.

Forme simple Dans sa forme simple, la structure de contrôle a la syntaxe et le fonctionnement


suivant.
Syntaxe Fonctionnement

Début du IF
IF condition THEN
non vérifiée
Condition
actions ;
vérifiée
END_IF; Action

Fin du IF

Exemple :

! (*Action conditionnelle IF (forme simple)*)


IF %M0 AND %M12 THEN
RESET %M0;
INC %MW4;
%MW10:=%MW8+%MW9;
END_IF;

TLX DR PL7 xx 155


Langage littéral structuré

Forme générale Dans sa forme générale, la structure de contrôle a la syntaxe et le fonctionnement


suivant.
Syntaxe Fonctionnement

IF condition1 THEN Début du IF

actions1; vérifiée
Condition 1

ELSEIF condition2 THEN non vérifiée


Actions 1
vérifiée
actions2; Condition 2
non vérifiée
ELSE Actions 2 Actions 3

actions3;
Fin du IF
END_IF;

Exemple :

! (*Action conditionnelle IF (forme simple)*)


IF %M0 AND %M1 THEN
%MW5:=%MW3+%MW4;
SET %M10;
ELSEIF %M0 OR %M1 THEN
%MW5:=%MW3-%MW4;
SET %M11;
ELSE
RESET %M10;
RESET %M11;
END_IF;

Règle de l Les conditions peuvent être multiples.


programmation l Chaque action représente une liste d'instructions.
l Plusieurs structures de contrôle IF peuvent être imbriquées.
l Le nombre de ELSIF est illimité.
l Il y a au maximum une partie ELSE

156 TLX DR PL7 xx


Langage littéral structuré

Structure de contrôle conditionnelle WHILE...END_WHILE

Rôle Cette structure de contrôle réalise une action répétitive tant qu’une condition est
vérifiée.

Description La structure de contrôle a la syntaxe et le fonctionnement suivant.


Syntaxe Fonctionnement
Début du WHILE
WHILE condition DO

action ; non vérifiée


Condition

END_WHILE; vérifiée
Action

Fin du WHILE

Exemple :

! (*Action itérative conditionnelle WHILE*)


WHILE %MW4<12 DO
INC %MW4;
SET %M25[%MW4];
END_WHILE;

Règle de l La condition peut être multiple.


programmation l L’ action représente une liste d'instructions.
l Le test sur la condition est effectué avant d'exécuter l'action. Si lors de la
première évaluation de la condition, sa valeur est fausse, alors l'action n'est
jamais exécutée
l Plusieurs structures de contrôle WHILE peuvent être imbriquées.

Note : L’instruction EXIT (Voir Rôle, p. 160) permet d’arrêter l’exécution


de la boucle et de continuer sur l’instruction suivant le END_WHILE.

TLX DR PL7 xx 157


Langage littéral structuré

Structure de contrôle conditionnelle REPEAT...END_REPEAT

Rôle Cette structure de contrôle réalise une action répétitive jusqu’à ce qu’une condition
est vérifiée.

Description La structure de contrôle a la syntaxe et le fonctionnement suivant.


Syntaxe Fonctionnement
Début du REPEAT
REPEAT

action ; Action

UNTIL condition END_REPEAT; Condition


non vérifiée
vérifiée
Fin du REPEAT

Exemple :

! (*Action itérative conditionnelle REPEAT*)


REPEAT
INC %MW4;
SET %M25[%MW4];
UNTIL %MW4>12 END_REPEAT;

Règle de l La condition peut être multiple.


programmation l L’ action représente une liste d'instructions.
l Le test sur la condition est effectué après avoir exécuté l'action. Si lors de la
première évaluation de la condition, sa valeur est fausse, alors l'action est
exécutée une fois.
l Plusieurs structures de contrôle REPEAT peuvent être imbriquées.

Note : L’instruction EXIT (Voir Rôle, p. 160) permet d’arrêter l’exécution


de la boucle et de continuer sur l’instruction suivant le END_REPEAT.

158 TLX DR PL7 xx


Langage littéral structuré

Structure de contrôle conditionnelle FOR...END_FOR

Rôle Cette structure de contrôle réalise un traitement un certain nombre de fois en


incrémentant de 1 un indice à chaque boucle.

Description La structure de contrôle a la syntaxe et le fonctionnement suivant.


Syntaxe Fonctionnement
Début du FOR
FOR indice:=valeur initiale TO
valeur finale DO Valeur initiale --> Indice

action ;
Indice > vérifiée
END_FOR; Valeur finale

non vérifiée
Action
Fin du FOR
Indice+1 --> Indice

Exemple :

! (*Action répétitive FOR*)


FOR %MW4=0 TO %MW23+12 DO
SET %M25[%MW4];
END_FOR;

Règle de l Lorsque l'indice est strictement supérieur à la valeur finale, l'exécution se


programmation poursuit sur l'instruction suivant le END_FOR.
l L'incrémentation de l'indice est effectuée automatiquement et n'est donc pas à
votre charge.
l L'action représente une liste d'instructions.
l La valeur initiale et la valeur finale sont forcément des expressions numériques
de type mot.
l L'indice est forcément un objet de type mot accessible en écriture.
l Plusieurs structures de contrôle FOR peuvent être imbriquées.

Note : L’instruction EXIT (Voir Rôle, p. 160) permet d’arrêter l’exécution


de la boucle et de continuer sur l’instruction suivant le END_FOR.

TLX DR PL7 xx 159


Langage littéral structuré

Instruction de sortie de boucle EXIT

Rôle Cette instruction permet d’arrêter l’exécution de la boucle et de continuer sur


l’instruction suivant l’instruction de fin de boucle.

Règle de l Cette instruction n’est utilisable que dans les actions d’une des 3 boucles WHILE,
programmation REPEAT ou FOR.
l Cette instruction est rattachée à la boucle englobante la plus proche, c’est à dire
qu’il n’arrête pas l’exécution de toutes les boucles qui l’englobent.

Exemple Dans cet exemple, l’instruction EXIT permet d’arrêter la boucle REPEAT mais en
aucun cas la boucle WHILE.

! (*Instruction de sortie de boucle EXIT*)


WHILE %MW1<124 DO
%MW2:=0;
%MW3:=%MW100[%MW1];
REPEAT
%MW500[%MW2]:=%MW3+%MW500[%MW2];
IF(%MW500[%MW2]>32700) THEN
EXIT;
END_IF;
INC %MW2;
UNTIL %MW2>25 END_REPEAT;
INC %MW1;
END_WHILE;

160 TLX DR PL7 xx


Langage littéral structuré

Règles d’exécution d’un programme littéral structuré

Généralités L'exécution d'un programme littéral s'effectue séquentiellement, instruction par


instruction en respectant les structures de contrôle.

Dans le cas d'expressions arithmétiques ou booléennes composées de plusieurs


opérateurs, des règles de priorité sont définies entre les différents opérateurs.

Règle de priorité Le tableau ci-dessous donne la priorité pour l'évaluation d'une expression du plus
des opérateurs prioritaire ou moins prioritaire.
Opérateur Symbole Priorité
Parenthèses (expression) Plus forte
Complément logique NOT
Inversion NOT
- sur opérande -
+ sur opérande +
Multiplication *
Division /
Modulo REM
Addition +
Soustraction -
Comparaisons <,>,<=,>=
Comparaison égalité =
Comparaison inégalité <>
ET logique AND
ET booléen AND
OU exclusif logique XOR
OU exclusif booléen XOR
OU logique OR Moins forte
OU booléen OR

Note : Lorsqu'il y a conflit entre deux opérateurs de même niveau de priorité, c'est
le premier opérateur qui l'emporte (l'évaluation se fait de la gauche vers la droite).

TLX DR PL7 xx 161


Langage littéral structuré

Exemple 1 Dans l’exemple ci-après, le NOT est appliqué sur le %MW3 puis le résultat est
multiplié par 25. La somme de %MW10 et %MW12 est ensuite calculée, puis le ET
logique entre le résultat de la multiplication et de l'addition.
NOT %MW3 * 25 AND %MW10 + %MW12

Exemple 2 Dans cet exemple, la multiplication de %MW34 par 2 est d’abord effectuée, puis le
résultat est utilisé pour effectuer le modulo.
%MW34 * 2 REM 6

Utilisation des Les parenthèses sont utilisées pour modifier l'ordre d'évaluation des opérateurs,
parenthèses pour permettre par exemple de rendre une addition prioritaire sur une multiplication.

Vous pouvez imbriquer les parenthèses et le niveau d'imbrication n'est pas limité.

Les parenthèses peuvent également être utilisées afin d'éviter toute mauvaise
interprétation du programme.

Exemple 1 Dans cet exemple, l'addition est d'abord effectuée puis la multiplication :

(%MW10+%MW11)*%MW12

Exemple 2 Cet exemple montre que les parenthèses peuvent être utilisées afin d'éviter toute
mauvaise interprétation du programme.

NOT %MW2 <> %MW4 + %MW6

En utilisant les règles de priorité des opérateurs, l'interprétation est la suivante :

((NOT %MW2) <> (%MW4 + %MW6))

Mais vous pouvez penser que l’opération est la suivante :

NOT (%MW2 <> (%MW4 + %MW6))

Les parenthèses permettent donc de clarifier le programme.

162 TLX DR PL7 xx


Langage littéral structuré

Conversions Les conversions implicites concernent les mots et les doubles mots.
implicites Les opérateurs que vous utilisez dans les expressions arithmétiques, dans les
comparaisons et l'opérateur affectation effectuent ces conversions implicites (qui ne
sont donc pas à la charge de l'utilisateur).

Pour une instruction de la forme : <opérande 1> <opérateur> <opérande 2>, les cas
possibles de conversions sont :
Opérande 1 Opérande 2 Conversion Conversion Opération
de type de type Opérande 1 Opérande 2 dans le type
Mot Mot Non Non Mot
Mot Double mot Double mot Non Double mot
Double mot Mot Non Double mot Double mot
Double mot Double mot Non Non Double mot

Pour une affectation de la forme <opérande gauche> := <opérande droite>, c'est


l'opérande de gauche qui impose le type attendu pour effectuer l'opération, ce qui
signifie que l'opérande de droite doit être convertie si nécessaire suivant le tableau :
Type opérande Type opérande Conversion
gauche droite opérande droite
Mot Mot Non
Mot Double mot Mot
Double mot Mot Double mot
Double mot Double mot Non

Note : Toute opération entre deux valeurs immédiates est effectuée en double
longueur.

TLX DR PL7 xx 163


Chapitre 3

Le GRAFCET ou GRAphe
Fonctionnel de Commande
Étape/Transition ou Sequential
Function Chart

Norme internationale : [3] et [2], Norme française : [1]

”En 1975, le groupe de travail Systèmes Logiques de l’AFCET, décida,


sous l’impulsion de Michel BLANCHARD[17] qui en était l’animateur, de
créer une commission Normalisation de la représentation du cahier des charges
d’un automatisme logique.
Les universitaires et industriels réunis dans ce groupe se sont alors at-
taqués à un problème ardu : tenter de définir un formalisme simple, accepté
par tous, adapté à la représentation des évolutions séquentielles d’un système,
intelligible à la fois par les concepteurs et les exploitants, et fournissant po-
tentiellement des facilités de passage à une réalisation, à base matérielle et/ou
logicielle de l’automatisme ainsi spécifié. Au début, le travail consista à dres-
ser un état de l’art des différentes approches de modélisation du compor-
tement de tels automatismes. Trois grandes classes d’outils de modélisation
furent ainsi recensées :
– les organigrammes ;
– les représentations de systèmes logiques à évolutions simultanées (dont
les Réseaux de Pétri) [8] ;
– les outils dérivés des graphes d’état.
L’analyse des avantages et inconvénients de ces outils mena, en 1977,
à la définition du GRAFCET, ainsi nommé pour, à la fois marquer l’ori-
gine de ce nouvel outil de modélisation grAFCET et son identité GRAphe

20
CHAPITRE 3. LE GRAFCET 21

Fonctionnel de Commande Etapes–Transitions). Les résultats de ces tra-


vaux firent l’objet, d’une part, d’un rapport interne à l’AFCET, daté d’août
1977, et, d’autre part d’une publication officielle dans la revue ”Automatique
et Informatique Industrielle” en décembre 1977, date que la communauté
considère aujourd’hui comme correspondant à la date de naissance effective
du GRAFCET.” extrait de ”Générations Grafcet” de Pascal LHOSTE 1 ,
Animateur du Groupe ”GRAFCET”, Novembre 1997.
Le GRAFCET permet ”. . . l’établissement des descriptions de la fonc-
tion et du comportement des systèmes de commandes en établissant une
représentation graphique indépendante de la réalisation technologique. . . ”
(norme [3]).
Le GRAFCET est destiné à représenter des automatismes logiques (ou
discrets), c’est à dire des systèmes à événements discrets dans lesquels les
informations sont de type booléennes ou peuvent s’y ramener (par exemple
la comparaison d’une température avec un seuil). Le GRAFCET est utilisé
généralement pour spécifier et concevoir le comportement souhaité de la par-
tie commande d’un système, mais il peut également être utilisé pour spécifier
le comportement attendu de la partie opérative ou bien de tout le système
de commande.

3.1 But du GRAFCET


Lorsque le mot GRAFCET (en lettre capitale) est utilisé, il fait référence à
l’outil de modélisation. Lorsque le mot grafcet est écrit en minuscule, il fait
alors référence à un modèle obtenu à l’aide des règles du GRAFCET. Présenté
sous forme d’organigramme, son but est la description du fonctionnement de
l’automatisme contrôlant le procédé. C’est tout d’abord un outil graphique,
puissant, directement exploitable, car c’est aussi un langage pour la plupart
des API existants sur le marché.
Il comprend :
– des étapes associées à des actions ;
– des transitions associées à des réceptivités ;
– des liaisons orientées reliant étapes et transitions.

1
http ://www.lurpa.ens–cachan.fr/grafcet/groupe/gen g7/geng7.html
CHAPITRE 3. LE GRAFCET 22

Commande : deux boutons simultanés,


g d
c'est une sécurité pour
l'opérateur.
AU Sécurité : - repos position haute,
h
- arrêt d'urgence
m - arrêt si relâchement des
b deux boutons de
commande.

Manuel : entretien

Fonctionnement :

repos : position haute (et h à 1)

action sur g et d ?

descente poinçon

jusqu'à b ?

remontée poinçon

jusqu'à h ?

repos

Conditions initiales
1
poinçon h =1

g et d à 1
si g et d à 1
descente
Etapes 2 Actions
Transitions

bà1
si g et d à 1
remontée
3

hà1

Liaison orientée

Fig. 3.1 – Exemple de la presse à emboutir


CHAPITRE 3. LE GRAFCET 23

Attention ! Ce grafcet n’est pas complet, il manque l’arrêt d’urgence et la


commande manuelle. Il faut noter que :
– suivant les capteurs, les conditions de transitions changent (ouvert ou
fermé au repos) ;
– suivant les actionneurs, les actions sont différentes ;
– la sécurité opérateur est effectuée par une action, si la condition g et d
à 1 est vraie.

3.2 Description du GRAFCET


3.2.1 Les étapes
L’étape symbolise un état ou une partie de l’état du système. L’étape
possède deux états possibles : active représentée par un jeton dans l’étape ou
inactive. L’étape i, repérée numériquement, possède ainsi une variable d’état,
appelée variable d’étape Xi . Cette variable est une variable booléenne valant
1 si l’étape est active, 0 sinon.

Étape initiale
Elle représente le système à l’état de repos initial. Elle est
activée au début du cycle.

Étape
A chaque étape est associée une action ou plusieurs, c’est
à dire un ordre vers la partie opérative ou vers d’autres
grafcets.

3.2.2 Les transitions

i Une transition indique la possibilité d’évolution qui


existe entre deux étapes et donc la succession de deux
activités dans la partie opérative. Lors de son fran-
Tri a chissement, elle va permettre l’évolution du système. A
chaque transition est associée une réceptivité qui exprime
i+1 la condition nécessaire pour passer d’une étape à une autre.
CHAPITRE 3. LE GRAFCET 24

Cette condition est écrite sous forme d’une proposition logique, une fonc-
tion combinatoire calculée à partir :
– des variables d’entrées traduisant l’état des capteurs, des boutons pous-
soirs, etc.,
– du temps,
– de l’état courant des étapes du grafcet (les Xi ).
Si la réceptivité n’est pas précisée, alors cela signifie qu’elle est toujours vraie.
Règle : si l’étape i est inactive, Xi = 0, la transition Tri est sans ef-
fet. Cependant, attention, valider sans raison une transition peut avoir des
conséquences graves, perturbant le cycle dans certains cas !

i Si l’étape i est active, Xi = 1, la transition a est validée,


alors :
Si a = 0, alors attente
a
Si a = 1, alors l’étape i est dévalidée Xi = 0 et l’étape
suivante i+1 est activée, Xi+1 = 1.
i+1

3.2.3 Les liaisons orientées


Une liaison orientée est le lien qui lie une étape à une transition ou l’in-
verse. Par convention, étapes et transitions sont placées suivant un axe ver-
tical. Les liaisons orientées sont de simples traits verticaux lorsque la liaison
est orientée de haut en bas, et sont munis d’une flèche vers le haut lorsque
la liaison est orientée vers le haut.

3.2.4 Notation des entrées/sorties


Lors de l’établissement du grafcet de spécification (grafcet de niveau 1),
on utilise des noms explicites pour les entrées du système modélisé ainsi que
pour les sorties. Lors du passage au grafcet de réalisation, on utilise plutôt
des noms logiques : Ei pour les entrées et Si pour les sorties.
CHAPITRE 3. LE GRAFCET 25

3.2.5 Les actions


L’action associée à l’étape peut être de 3 types : continue, conditionnelle
ou mémorisée.

Actions continues

temps

Ordre A Xi : étape active


i

A : action (sortie à 1)

La ou les sorties correspondant à l’ordre A sont mises à 1 tant que l’étape


associée est active. Lorsque l’étape devient inactive, la ou les sorties sont
mises à 0.

Actions conditionnelles
Une action conditionnelle n’est exécutée que si l’étape associée est active
et si la condition associée est vraie. Elles peuvent être décomposées en 3 cas
particuliers :

Action conditionnelle simple : Type C

temps

Condition X
i
i C Ordre A Cond.

A = Cond . X
i
CHAPITRE 3. LE GRAFCET 26

Action retardée : Type D (delay)

temps

5s 5s
X
i
i D Ordre A D

A = t/X /D . X
i i

D est la durée de la temporisation, c’est à dire le retard mis pour passer à 1


après que Xi soit passé à 1.

Action limitée dans le temps : Type L (limited)

temps

2s 2s
X
i
i L Ordre A L

A = t/X /L . X
i i

Actions mémorisées

n S Début Ordre A temps

X
n
X
m
m R Arrêt Ordre A
A
CHAPITRE 3. LE GRAFCET 27

On peut ainsi donner l’équation d’un ordre A en fonction des états des
étapes, des conditions éventuelles et du temps.

3.2.6 Les réceptivités


Une réceptivité est associée à chaque transition. C’est une fonction booléen-
ne calculée à partir des entrées du graphe, des états des étapes ou des tem-
porisations. Une réceptivité est donc écrite en utilisant les opérateurs ET,
OU, NON et front. Le front montant ou descendant d’une variable permet
de situer dans le temps le changement de valeur de ce capteur. On les note
respectivement E et Ē. Les fronts ne sont à 1 que durant un délai d, qui
correspond au temps de prise en compte de l’événement, c’est à dire le temps
de franchissement d’une transition.

Capteur C1

C1

C1

temps

3.2.7 Les temporisations


Les temporisations utilisées en GRAFCET font référence aux variables
d’étapes (Xn ). Une variable temporisation Sn est une variable booléenne dont
le mode d’évaluation permet de prendre en compte le temps. Elle peut s’écrire
de manière générale Sn = t1 /Xn /t2 où :
– En désigne la variable d’entrée,
– t1 désigne le retard apporté au changement de l’état logique 0 → 1
de la variable d’entrée En . Si t1 = 0, alors la temporisation s’écrit
Sn = Xn /t2 .
– t2 désigne le retard apporté au changement de l’état logique 1 → 0
de la variable d’entrée En . Si t2 = 0, alors la temporisation s’écrit
Sn = t1 /Xn .
CHAPITRE 3. LE GRAFCET 28

En Sn
t1 t2

En
Temps
Sn

t1 t2

La variable Xn (l’étape n associée) doit être active pendant un temps


supérieur ou égal à t1 pour que Sn puisse être évaluée.

3.3 Les règles d’évolution du GRAFCET


Règle N˚1 – Condition initiale
A l’instant initial, seules les étapes initiales sont actives.

Règle N˚2 – Franchissement d’une transition


Pour qu’une transition soit validée, il faut que toutes ses étapes amont
(immédiatement précédentes reliées à cette transition) soient actives. Le fran-
chissement d’une transition se produit lorsque la transition est validée, ET
seulement si la réceptivité associée est vraie.

Règle N˚3 – Évolution des étapes actives


Le franchissement d’une transition entraı̂ne obligatoirement dans cet ordre
la désactivation de toutes ces étapes amont et l’activation de ses étapes aval.

Règle N˚4 – Franchissement simultané


Toutes les transitions simultanément franchissables à un instant donné sont
simultanément franchies.

Règle N˚5 – Conflit d’activation


Si une étape doit être simultanément désactivée par le franchissement d’une
transition aval, et activée par le franchissement d’une transition amont, alors
elle reste active. On évite ainsi des commandes transitoires (néfastes au
procédé) non désirées.
CHAPITRE 3. LE GRAFCET 29

Durée de franchissement d’une transition ou d’activité d’une


étape
La durée de franchissement d’une transition est considérée théoriquement
comme aussi petite que l’on veut, mais non nulle, même si, en pratique, cette
durée peut être imposée par la technologie utilisée pour la réalisation de l’au-
tomatisme. De même, la durée d’activité d’une étape ne peut pas être nulle,
mais suffisante, si besoin est, pour effectuer une action fugitive à la vitesse
de la partie commande.

3.4 Les structures de base


3.4.1 Saut d’étape et reprise de séquence

2 20

a b a b g

3 21
h i
c h i

4 22

Saut d'étape Reprise de


séquence
CHAPITRE 3. LE GRAFCET 30

3.4.2 Aiguillage entre deux ou plusieurs séquences

Soit X1 active et a = 0 d = 0
1 Divergence OU
→ attente que a ou d passe à 1

a (ou a ⋅ d ) d (ou ā·d) Branche 1 :


si a = 1 → X2

Branche 2
2 4
Branche 1

si b = 1 → X3
si c = 1 → X5
b e Branche 2 :
si d = 1 → X4
3 si e = 1 → X5
Remarque : chaque branche de la
c divergence peut être terminée par
un saut, auquel cas il n’y a pas de
Convergence OU convergence en OU.
5

Attention ! ! ! Si a et d sont à 1 simultanément, alors nous sommes confronté


à un cas de parallélisme interprété. Les étapes 2 et 4 vont devenir actives si-
multanément et donc provoquer l’exécution d’actions en parallèle, situation
non voulue par le concepteur. a et d doivent être des conditions exclusives :
l’une ou l’autre sera vraie, mais pas les deux à la fois. On résout ce problème
en mettant, par exemple, comme condition sur la branche 1.

3.4.3 Parallélisme
Au contraire de l’aiguillage où ne peut se dérouler qu’une seule activité à
la fois, il peut y avoir plusieurs activités indépendantes pouvant se dérouler
en parallèle. On parle alors de parallélisme structurel.
CHAPITRE 3. LE GRAFCET 31

1 Après le franchissement de a, nous ob-


Divergence ET tenons ainsi deux activités simultanées
a ou parallèles.

La synchronisation permet d’attendre


la fin de plusieurs activités se déroulant
2
Branche 1

Branche 2

en parallèle, pour continuer par une


seule. On parle alors de synchronisa-
b 4
tion puisque, l’activité de l’étape 4
qui se termine avant celle de 3 doit
3 attendre et se synchroniser avec elle.
Synchronisation
Ainsi, pour la compréhension du
GRAFCET, une étape dite de syn-
c chronisation peut être rajoutée dans la
branche la plus rapide de la divergence.
5

3.4.4 Sous-grafcet ou séquence répétée


Dans un système automatisé, certaines séquences peuvent revenir de façon
répétitive dans le cycle. Pour éviter de répéter ces mêmes actions, il est
possible d’utiliser un sous-programme. Celui-ci est écrit sous la forme d’un
grafcet indépendant, connecté au grafcet principal.
CHAPITRE 3. LE GRAFCET 32

4 S 30 30

X 32 X4

5 31

6 32 Fin de l'esclave

X4
GRAFCET GRAFCET
Maître Esclave

Au départ, les étapes initiales des deux grafcets sont activées. Dans le
maı̂tre, l’activation de l’étape 4, X4 = 1, va activer le déroulement du grafcet
esclave en validant la première transition, et provoquer le déclenchement de la
réceptivité X32 . Dans l’esclave, l’activation de l’étape 32, X32 = 1, provoque
l’apparition dans le maı̂tre de la réceptivité X32 qui autorise le déroulement
du programme principal, en dévalidant X4 . Cette étape 32 ”rend la main au
maı̂tre”.
Il existe une autre méthode pour rendre la main au grafcet maı̂tre, qui
d’ailleurs est la plus utilisée. Elle est illustrée ci-dessous et utilise une tem-
porisation pour maintenir la variable X32 à 1 pendant 1 s afin de rendre la
main au maı̂tre.
CHAPITRE 3. LE GRAFCET 33

4 S 30 30

X 32 X4

5 31

GRAFCET 32 X32 t = 1s X12


Maître
X12

GRAFCET
Esclave

Les grafcets esclaves sont très utiles pour les séquences répétées, arrêt
d’urgence, commande manuelle. Ils permettent de commander plusieurs au-
tomatismes sur un même API.

3.4.5 Gestion de conflits


Suivant la structure de programmation choisie, et pour des automatismes
donnés, il existe des situations conflictuelles qui peuvent avoir des conséquences
graves. Comment y remédier ?

Aiguillage

Si les conditions d’aiguillage sont toutes validées simultanément, l’automati-


cien est face à un problème de préséance, qui se résout en doublant l’une des
conditions d’aiguillage (cf. 3.4.2).

Parallélisme où 3 types de conflits peuvent se présenter

– le déroulement simultané de séquences avec attente commune. Ceci


se produit, si les durées des actions des séquences simultanées sont
différentes ! On ajoute alors une étape de synchronisation sans action.
C’est ce que l’on appelle la synchronisation de durée.
CHAPITRE 3. LE GRAFCET 34

– l’état d’avancement de plusieurs séquences simultanées. Une séquence a


son déroulement tributaire de l’état d’avancement d’une autre séquence.
L’utilisateur a alors besoin d’une synchronisation de décalage tempo-
rel qui peut se faire au niveau d’une transition ou d’un grafcet esclave
activé en fonction des contraintes de synchronisation.
– la mémorisation de disponibilité d’une partie de la machine. Une séquence
particulière n’est utilisée qu’alternativement par plusieurs séquences. Il
faut alors faire un choix de priorité ou utiliser des étapes d’attente si
la séquence commune est déjà utilisée.
Remarque : sur certains API, la convergence en ET est suivie d’une tran-
sition qui est toujours validée à 1. Pour résoudre cela, on remplace donc :

Etape de synchronisation
sans action
par
a 1

3.5 GRAFCET de niveau 1 et 2


3.5.1 GRAFCET de niveau 1 du point de vue de la
partie opérative
C’est en général la description de l’automatisme seul, c’est à dire l’en-
chaı̂nement des actions et des transitions permettant de contrôler le procédé.
Lorsque l’on aborde l’analyse et la description d’un système, on ne sait pas
quelle technologie sera retenue pour les actionneurs, les capteurs et la com-
mande. On décrira dans ce GRAFCET les actions et les événements en termes
généraux.

3.5.2 GRAFCET de niveau 2 du point de vue de la


partie commande
C’est la description complète de l’automatisme qui tient compte de toutes
les contraintes du procédé. Les points essentiels du GRAFCET de niveau 2
sont :
CHAPITRE 3. LE GRAFCET 35

– la simplification du GRAFCET niveau 1, c’est à dire les parallélismes


et les séquences répétées ;

– les modes de fonctionnement de l’automatisme, c’est à dire la prise


en compte de la marche automatique, de la marche par cycle et de la
marche manuelle utile pour la maintenance et les réglages ;

– les arrêts d’urgence entraı̂nant la coupure d’alimentation, l’utilisation


d’une variable AU (si arrêt d’urgence AU = 1) à rajouter dans les condi-
tions logiques pour les différentes actions, une procédure de dégagement
si AU = 0 ;

– les sécurités opérateur, c’est à dire la mise en place de protections, de


commandes à deux mains, qui doivent être activées pour le départ du
cycle et pendant le cycle ;

– les sécurités procédé, c’est à dire l’arrêt de l’automatisme si une condi-


tion anormale est détectée, par exemple la détection d’un objet incor-
rect ou mal positionné ;

– les conditions initiales, c’est à dire les différentes positions au repos (au
départ du cycle), l’état de l’alimentation et l’ensemble des tests des-
tinés à vérifier les conditions initiales.

La complexité de cette tâche peut être grande ! Le GRAFCET de niveau


2 doit être étudié avec le plus grand soin. Ceci peut éventuellement conduire
à modifier le procédé, et à modifier si besoin les capteurs et les actionneurs !
Dans certains cas, on peut être amené (après étude) à rechercher d’autres
solutions que l’automatisme séquentiel, par exemple la logique floue. Ces cas
limites sont :
– une indétermination logique au niveau du procédé ;
– une description logique inadaptée ;
– une durée de cycle de scrutation ou d’acquisition trop longue ;
– la difficulté à définir une séquence de dégagement pour l’arrêt d’ur-
gence.

Attention ! ! ! En milieu industriel, les essais erreurs peuvent être dan-


gereux ou catastrophiques : d’où l’intérêt de faire une étude du grafcet de
niveau 2 très approfondie ! ! !
CHAPITRE 3. LE GRAFCET 36

3.6 Modes de marches et d’arrêts


On considère un ensemble partie opérative – partie commande autonome,
avec éventuellement une partie opérative défaillante, mais une partie com-
mande toujours en ordre de marche.

3.6.1 Cycle unique ou cycle par cycle

dcy·CI

Fin de cycle

Voilà le grafcet type pour un cycle unique, avec comme condition de


validation : dcy · CI
– dcy étant l’ordre de départ donné par l’opérateur ;
– CI la variable représentant les conditions initiales.

A ce grafcet, on peut rajouter :


– Un voyant de contrôle activé lors de l’étape d’initialisation ;

1 Voyant si CI
CHAPITRE 3. LE GRAFCET 37

– Un test anti-répétition du cycle.

1 1

dcy↑·CI dcy·CI

Détection de front OU Etape anti-répétition


Fin

n+1
X1
dcy

3.6.2 Cycle par cycle ou continu


Il existe deux solutions pour réaliser ce type de grafcet. Ces deux solutions
font appel aux deux variables associées au cycle : dcy pour le départ du cycle,
et acy pour l’arrêt du cycle.

20 1

dcy ⋅ acy ⋅ CI X21·CI

21 2

acy

C'est la fin de ce cycle qui


permet le lancement de celui
de droite.
n

Fin
CHAPITRE 3. LE GRAFCET 38

Solution N˚1

20 1

dcy ⋅ acy ⋅ CI X21·CI

21 2

acy

C'est la fin de ce cycle qui


permet le lancement de celui
de droite.
n

Fin

Solution N˚2 : un interrupteur permet de choisir entre le mode automatique


ou celui cycle par cycle.

3.6.3 Intervention réglages et dégagement


– Marche manuelle

m → manuel
1 a → auto
m

m⋅a a a

11 MAN 12 AUTO Cde de A · Sécurité


Cde de B · …
m a 11 A B C
CHAPITRE 3. LE GRAFCET 39

– Marche séquence par séquence ou étape par étape

i i

(
e⋅ E E +S ) ou une étape d'attente
e⋅E E e⋅E E

E/E : variable indiquant le mode étape par étape i+1


S : suite
S

On ajoute, si possible, une transition permettant soit de sélectionner


une séquence, soit de s’arrêter sur une étape donnée. Ceci est très dif-
ficile à mettre en œuvre.
Attention : tous ces modes présentent de grand danger matériel et
opérateur !
CHAPITRE 3. LE GRAFCET 40

3.6.4 Arrêts
– Arrêt momentané
X11

10 n

marche X11

11 Valide actions n+1

arrêt

grafcet maître
grafcet esclave :
arrêt momentané

– Arrêt d’urgence
X31

30 n

AU X31

31 Valide actions n+1

grafcet maître
grafcet esclave :
arrêt d'urgence
CHAPITRE 3. LE GRAFCET 41

– Arrêt d’urgence + défauts + dégagement

40 Σd = def1+def2+… somme des défauts


degt :dégagement

AU ⋅ Σd

41 Valide actions

AU Σd

42 Attente 45 En défaut

degt (AU) degt degt

43 Action 46 Action X40


fin degt fin degt

44 ? 47 Condition

fin fin

X40
" # "

$% & ' % () % ' * %* ' & ( ) +)$ % $ *) +


&,)% %* &,*% ' $ % & $ & $% % $ % -
% +
. / &,*% ' % )% -
. /0 &,*% ' % )%

1 *) '% %*% *% % 2& 2 '$ & -


%
% /0 & *) '% %* % (
% / & *) '% %* % 8

1 3 & ,* $&% $ 4)( )5 '% 3 & 6 $ % & '$ % *' %


*7 % $ &$ 7

!"

+
+ !

1 % )% $ ) %% 3& $ & $$ % $ ,%)% %$ &,*% ' -

. /. + % +

!

" #

1 % )% $ ) %% 3& $ & $$ %$ * )% %$ &,*% ' -

. /. % /. 8

• & %& &,*% ' $%( &,*% ' % $ *% % , % ) 7 ,$


'' && &,(( % 9*9$ 4)( )5 '% & $ 7 *7 % &&6 , %: 7 &,*% % . :
&, % % %8δ% *' &,*% % ' *)* % . :& , % %%

,' 3 ) % $ '$ % ' *)* % $ ' % $ ) *) - . /(4 . . . 6

& % &$ '$ 2& ,*) & % 2& * %* &,)% %* &


,*% ' -.

" $% $ δ " '



0 0 0 0 1,*% ' % )% 4 (( % 9*9$ 6
0 0 0 1,*% ' % )%
0 0 )% % $ &,*% '
0 )% % $ * )% % $ / )% % $
0 0 1,*% ' % )% 4 (( % 9*9$ 6
0 0 * )% % $ &,*% '
0 1,*% ' % )%
)% % $ * )% % $ / )% % $

2& ; 5 $) *-

. .
00 0 0
.
0 0 0
0

7 %$ . -
. = . + . .

$ $ =$ − − +$ + $

! !
( $) *

@ <0 C>

2 )

> < CD

? =

0 !0 @

A B (

! >

) $ )

+ $% $ + $% $
, .@ . 0 8 .!0 ( .<0 2
.@
- .> ? . ./ .C> )
#- .> = .! 0 .< 8 .CD .>

.1 2

@ <0 C>

2 )

> < CD

0 !0 @

A B (

! >

% & '

+ $% $ + $% $
, .@ . 0 .!0 ( .<0 2
.@
- . ./ .C> )
.> ?
#- .! 0 .< .CD .>

< !
34 5 ) 6% 7 7 8

&, % & % $ %$ % & *% ' % 7 & *% ' % & $%


* )% * & $ % )% * & *% ' % &

$% & 2& % % && 7 -

• 9 - % & %$ - $ %'':
• 9 - - *$ &9 % )A)&- $ 5 %'$;+

$ %& 2& E% , ) 4 % $ ?6 % &


& 7 -

• % - * )% % $ %$ % & *% '
• % * - * )% % $ )% $ & *% ' % % )%

• 7 %$ , *% ' % &-

+
%+
$% $ +
% $ − − +! $ + ! $ = ( $ ( + (%$ $ +! )
8

• 7 %$ , *% ' $ % &-
+
%+
$% $ +

%
$ − − ! $ + +! = ( + )
8

• 7 %$ )% $

< = $< )

C !
! 1 " 1

! &*9 % & &$ 7 )$92 %$ 4'$ % &$ 7 6

- . =. − % − +. + .

1 )F2& , *% ' % * & *:&


, C '$ % &$ 7

. +
G
% ≥ .
+

. 8
G

*% ' A92$& &$ $ ($ 9 , 9$ & '5 -

H & )% $ $) * :&
,*% ' .

% % &
,*% ' ≥ H &,)% % $
G
. + &
,*% ' . 8
G

H & * )% % $
% % &
,*% '
&,*% ' . +
. 8

% + - %$ $) *
:&
,*% ' . +

!
? 9'& - ) , : *7 ) 7

5 7 *% ' )F2&* )$99 & 9$ & '5 *) %


' *)* 99 % *& &$ *7 ) *&)% 7 :2 '$ % &$ 7

9
% ' % ' % '

0 !

2 2 9

( % )$9'% 9$ 9 )5 % , E% & 9$ & ,


*% ' $% %* &, % & % $ % &, E% , ) )$99 7 % &
*7 % $ &$ 7 *% ' ' *)* % -

(
$0 = $! & + $ $0 + ! )
$ = ($ 0 + $! $ )!
$! = ($ + $0 $! )!

!! &*9 % & &$ 7 *7 % && 42 ) & 6

#%8 #
0 0 #%
0
0 0
+

' - $ &,*% % / / & & & $% &2 ) & % *% 9 * &&


*' 7 9 % )$9'$ % ( 2 ) %$ & 2 ) & % ( 2 7*
% )5 $&$ 7 9 % ) '$ % " &A 9*9$ : * )% %$ '$% %
&) *& % $ 2 ) & ) '$ % <%< &A 9*9$ : )% % $
'$% 4 $&% $ % '$ '% & 2 ) & 6

@ !
## % 4'%=$+

+ 1 , *% ' % &$ )F2&* & 1+ &2 ) &


+ 1 , *% ' % )F2&* & '+1+ &2 ) &

. # % ' .

% % ' )$9'% & )F2& % E% , ) 4 G $ ?6

)F2& , *% ' % &-


( $ =$ − − +!
(%$ = $ + !

#+ %+
)% $ $) * :
&
,*% ' .
G
≥ # H & %$ &% %$
%
4 86

G
+ - )$ % $
* )% % $ &
,*% '
' *)* % . +
% #8

)F2& , *% ' " " % &-


( $ =$ − − !
(%$ = $ + +!

% #+ %+ )% $ $) * :
&
,*% ' .
G #
H & %$ &% %$
4 86

+ - )$ % $
* )% % $ &
,*% '
.+
% #8

> !
### +* 4'%=$+ >

0
9

!
2

2& )$ %$ ,)% %$ % * )% %$ *% ' -

$% $
- $! &+ ! $ !
$0 ! $! +!
# $ ! $0 +!

F2& -

2 9
G
≥ 0 #0 G # G ! #!

0 ≥ ≥ !
G

D !
< " " "1 "

< 1 :)$ % )% 41 6

''&) % $ %$9 % 1 " .+ > 4 1>+!6

• % ' % &-

. .

. % .

• % ' <?< % &-

. % .

.
.
%

• )% $ $) * :&,*% ' -

. $? )% $

I !
? )) - 1 & %-

2
< @

)
!
> I

C D

2& % *% ' -

$% $
$C $D + ! $! $ !
! $ ! $< + !
< $! & ! $C + !
C $< ! $ +!
$ ! $@ + !
@ $ ! $> + $I + !
> $@ ! $D +
D 4$ > + $I 6! $ +!
I $@ ! ! $D +

0 !
.C .D . . % .@

% .> .@

% ' @
% '

.! . % . .I

. 9 % .!

.< .! .@ % .>
% ' !

% .D .>

% ' >
%

.! 2 % .<

.C .< .> % .D
% ' <

% .I (
% ' D

. .D

%
.< ) % .C

. .C
% ' C

% .@ ! % .I

.D .I
% ' I

%
. 9 % .

.@ .
% '

% . $?
? *% '

.! $?

.< $?
$) *

.@ $?

.> $?
)% $

.I $?

!
<! 1 2$$&
*

''&) % $ %$9 % " * <00 C00 4 % '>6

)(

<< &

''&) % $ %$9 % 1 " .+C> 4 1>+!6

)(

<C & * $&*

) & 92& J
39
)( *

! !
ƒ Visualisation : Les automates offrent un écran de visualisation où l'on peut voir l'évolution des
entrées / sorties

La défaillance d'un automate programmable pouvant avoir de graves répercussions en matière de


sécurité, les normes interdisent la gestion des arrêts d'urgence par l'automate ; celle-ci doit être
réalisée en technologie câblée.

On peut également ajouter des modules de sécurité à l'automate (sécurité des machines).

Il existe enfin des automates dits de sécurité (APIdS) qui intègrent des fonctions de surveillance et de
redondance accrues et garantissent la sécurité des matériels.

VIII.Les automat es et la communication :

Avec le développement des systèmes automatisés et de l'électronique (circuits ASICs), la recherche de la


baisse des coûts et la nécessité actuelle de pouvoir gérer au mieux la production, c'est à dire :

- de recevoir les données liées à une application le plus rapidement possible,


- de consulter, contrôler ou de modifier les paramètres d'une application à distance ;

sont apparues de nouvelles technologies de câblage et de communications entre les divers constituants
des automatismes.

a. Les bus de terrain :

Pour diminuer les coûts de câblage des entrées / sorties des automates (systèmes étendus), sont
apparus les bus de terrains. L'utilisation de blocs d'entrées / sorties déportés à permis tout d'abord de
répondre à cette exigence.

A
C E E E E
Avant : L U
O / / / /
I C
M S S S S
Les capteurs / préactionneurs M
distants impliquaient de grandes
longueurs de câbles.
Machine 2

Machine 1 Machine 2

Machine 1

14 / 17
9. Industrial networks 9.4 Network technologies

9.4 Network technologies


The concepts are described in brief; for further reading, there are many
works devoted to this subject.

b Network topology
An industrial network is made up of PLC’s, human-machine interfaces,
computers and I/O devices linked together by communication links such
as electric cables, optic fibres, radio links and interface elements such as
network cards and gateways. The physical layout of a network is the
hardware topology or network architecture.
For the circulation of information the term used is software topology.
Topologies are usually divided as follows:
- bus,
- star,
- tree,
- ring,
A Fig. 4 Network topology - hub.
• Bus topology
This is one of the simplest layouts; all the elements are wired together
along the same transmission line. The word bus refers to the physical line.
This topology is easily implemented and the failure of a node or element
does not prevent the other devices from working.
Machine and sensor level networks, otherwise known as field buses,
use this system.
The bus topology is implemented by linking devices together in a chain
or to the main cable via a connection box (TAP) (C Fig.4).
• Star topology
This is the Ethernet topology, the most common at management and shop
floor levels (C Fig.5). It has the advantage of being very flexible to run and
repair. The end stations are linked together via an intermediate device
(repeater, switch). Failure of a node does not prevent the network as a
whole from working, though the intermediate device linking the nodes
A Fig. 5 Star network topology
together is a point of weakness.
• Other topologies (C Fig.6)
- The ring topology uses the same hardware layout as the star
topology but ensures greater network availability.
- The hub topology is not very widespread in industry and has 9
the disadvantage of a large number of links.

Ring Hub

The ring topology uses the same hard- The hub topology is not very widespread
ware layout as the star topology but in industry and has the disadvantage of
ensures greater network availability. a large number of links.

A Fig. 6 Other topologies network

203
A
C B E E
L U
1ère
évolution : O U / /
I C
M S S S
M
Les interfaces d'entrées/
sorties sont déportées au plus
près des capteurs. Machine 2

E/S

Machine 1 E/S Machine 2

Machine 1

Avec l'avènement des ASICs, les capteurs, détecteurs ... sont devenus "intelligents" et ont permis de se
connecter directement au bus (médium).

A
C B
L U
O U
I C Interface
M S
M
Aujourd'hui :

Les capteurs et les


Machine 2
préactionneurs "intelligents"
(IHM, variateurs, distributeurs ...)
permettent la connexion directe
au bus.

Machine 1 Machine 2

Machine 1

Pour assurer le "multiplexage" de toutes les informations en provenance des capteurs / préactionneurs ont
été développés plusieurs protocoles de communication et des standards sont apparus (normalisés ou
standards de fait).

Exemple :

Le bus ASi (Actuators Sensors interface) est un bus de capteurs/actionneurs de type Maître / Esclave qui
permet de raccorder 31 esclaves (capteurs ou préactionneurs) sur un câble spécifique (deux fils)
transportant les données et la puissance.
Ce bus est totalement standardisé et permet d'utiliser des technologies de plusieurs constructeurs
(interopérabilité). L'automate est pour cela doté d'un coupleur ASi.

15 / 17
Avantages des bus de terrain :

 Réduction des coûts de câblage et possibilité de réutiliser le matériel existant


 Réduction des coûts de maintenance
 Possibilités de communication

Inconvénients des bus de terrain :

 Taille du réseau limitée


 Adaptabilité aux applications à temps critique
 Coût global

Autres bus de terrain : Batibus (norme EIB), Interbus-S, CANopen

b. Les réseaux de terrain :

L'émergence de ces nouvelles technologies à conduit à la définition de plusieurs catégories de


réseaux locaux industriels (pyramide CIM) :

- les réseaux de terrain,


- les réseaux de cellule,
- les réseaux de supervision et de commande

La nécessité de communication entre cellules (communication entre automates) a permis de voir


apparaître de nombreuses normes de communication (Profibus, Fip ...).
Le déterminisme nécessaire pour certaines applications conduit à l'utilisation de réseaux Maître / Esclave.
Au niveau de l'entreprise, le temps n'est plus critique et la norme Ethernet à pu se développer rapidement,
permettant ainsi la visualisation et la commande des process via le réseau Internet.

La tendance actuelle est à l'introduction des réseaux Ethernet au plus près des automatismes (exemple :
norme Profinet).

16 / 17
IX. Critères de choix d'un automate :

Le choix d'un automate programmable est en premier lieu le choix d'une société ou d'un groupe et
les contacts commerciaux et expériences vécues sont déjà un point de départ.
Les grandes sociétés privilégieront deux fabricants pour faire jouer la concurrence et pouvoir "se
retourner" en cas de "perte de vitesse" de l'une d'entre elles.
Le personnel de maintenance doit toutefois être formé sur ces matériels et une trop grande diversité des
matériels peut avoir de graves répercussions. Un automate utilisant des langages de programmation de
type GRAFCET est également préférable pour assurer les mises au point et dépannages dans les
meilleures conditions.
La possession d'un logiciel de programmation est aussi source d'économies (achat du logiciel et
formation du personnel). Des outils permettant une simulation des programmes sont également
souhaitables.

Il faut ensuite quantifier les besoins :

ƒ Nombre d'entrées / sorties : le nombre de cartes peut avoir une incidence sur le nombre de racks dès
que le nombre d'entrées / sorties nécessaires devient élevé.
ƒ Type de processeur : la taille mémoire, la vitesse de traitement et les fonctions spéciales offertes par
le processeur permettront le choix dans la gamme souvent très étendue.
ƒ Fonctions ou modules spéciaux : certaines cartes (commande d'axe, pesage ...) permettront de
"soulager" le processeur et devront offrir les caractéristiques souhaitées (résolution, ...).
ƒ Fonctions de communication : l'automate doit pouvoir communiquer avec les autres systèmes de
commande (API, supervision ...) et offrir des possibilités de communication avec des standards
normalisés (Profibus ...).

17 / 17

Vous aimerez peut-être aussi