Vous êtes sur la page 1sur 111

CDC ELCTROTECHNIQUE API

Office de la Formation Professionnelle et de la Promotion du Travail

OFPPT

Les automates programmables industriels


Application: API TSX micro

1
CDC ELCTROTECHNIQUE API

Table des matières

Introduction ______________________________________________________________ 3

Commande câblée et commande programmable _____________ Erreur ! Signet non défini.

Types d’automate programmable industriel _____________________________________ 4

Les branchements électriques ____________________________ Erreur ! Signet non défini.

Programmation : __________________________________________________________ 6

Présentation du logiciel PL7 _________________________________________________ 9

L’éditeur de configuration ______________________________________________________13

Structure mono tâche __________________________________________________________22

Programmation structurée et modulaire ___________________________________________23

Structuration en modules fonctionnels ____________________________________________24

Programmation symbolique _____________________________________________________25

Objets adressables _____________________________________________________________27

Présentation du langage à contacts ___________________________________________ 32

Présentation du langage liste d'instructions ____________________________________ 40

Les Temporisateurs: ___________________________________________________________51

Les Compteurs ________________________________________________________________59

Traitements numériques sur entiers ______________________________________________65

Instructions de comparaison_____________________________________________________66

Présentation du langage Grafcet _____________________________________________ 68

Les objets spécifiques au Grafcet _________________________________________________71

L’analyse progressive : les macro-représentations ___________________________________73

Organisation de la section Grafcet ________________________________________________74

Programmation à partir d’un Grafcet en langage LIST ou à CONTACTS ______________94

2
CDC ELCTROTECHNIQUE API

Introduction
Les automatismes sont réalisés en vue d’apporter des solutions à des problèmes de nature
technique, économique ou humaine.
Eliminer les tâches dangereuses et pénibles, en faisant exécuter par la machine les tâches
humaines complexes ou indésirables.
Améliorer la productivité en asservissant la machine à des critères de production, de
rendement ou de qualité.
Piloter une production variable, en facilitant le passage d’une production à une autre.
Renforcer la sécurité en surveillant et contrôlant les installations et machines.
On distingue dans tout système automatisé la machine ou l’installation et la partie commande
constituée par l’appareillage d’automatisme. Cette partie commande est assurée par des
constituants répondant schématiquement à quatre fonctions de base :
• L’acquisition des données
• Le traitement des données
• La commande de puissance
• Le dialogue homme machine

3
CDC ELCTROTECHNIQUE API

Types d’automate programmable industriel

Il existe deux types d’automate programmable industriel:


• le type monobloc
• le type modulaire
Le type monobloc possède généralement un nombre d’entrées et de sorties restreint et son jeu
d’instructions ne peut être augmenté. Bien qu’il soit parfois possible d’ajouter des extensions
d’entrées/sorties, le type monobloc a pour fonction de résoudre des automatismes simples faisant
appel à une logique séquentielle et utilisant des informations tout-ou-rien.

+ IN
L N 24 - COM
0 1 2 3 4 5 6 7 8 9 10 11 12 13
VDC

TSXO7

I
RUN ERR 0 1 2 3 4 5 6 7 8 9 10 11 12 13
O
COM I/O 0 1 2 3 4 5 6 7 8 9

EXTENSION
OUT OUT OUT OUT INPUTS 24 VDC
0 1 2 3 4 5 6 7 8 9 A B SG
COM COM COM COM OUTPUTS 2A Ry

FIGURE 1 :Automate monobloc TSX Nano

4
CDC ELCTROTECHNIQUE API

Par ailleurs, le type modulaire est adaptable à toutes situations. Selon le besoin, des modules
d’entrées/sorties analogiques sont disponibles en plus de modules spécialisés tels: PID, BASIC
et Langage C, etc. La modularité des API permet un dépannage rapide et une plus grande
flexibilité. La figure 3 présente un automate modulaire.

ALIMENTATION CPU

INPUT

FIGURE 2 :API M O D U L AI R E

5
CDC ELCTROTECHNIQUE API

Câblage des alimentations et des E/S TOR

Câblage des alimentations :


Q
L
N

KM

Alimentation capteurs/
base + extension (400 mA max)

+ 24 VDC

Base Extension

FU2
24 V 24 VDC
Output Input
0V
(2) FU1
L 110 / 240 VAC PE
N Input
(2)
PE

Alimentation capteurs/
préactionneurs

6
CDC ELCTROTECHNIQUE API

Câblage des entrées/sorties TOR :

TSX DMZ 28DR


ENTREES
1 I1.0
2 I1.1
3 I1.2
4 I1.3
5 I1.4
6 I1.5
7 I1.6
8 I1.7
9 I1.8
10 I1.9

11 I1.10
I1.11
12
I1.12
13
14 I1.13
15 I1.14
16 I1.15 24 VDC
FU
17 0 VDC
SORTIES 18
19
Q2.0 20
FU
21 FU: fusible à fusion rapide calibrer selon
Q2.1 22
la charge
Q2.2 23
Q2.3 24
FU
25
Q2.4 26

Q2.5 27
Q2.6 28
Q2.7 29
FU
30
Q2.4 31
Q2.5 32
Q2.6 33
Q2.7 34
FU
35
Préactionneurs
19...240 VAC ou 24 VDC

7
CDC ELCTROTECHNIQUE API

Programmation :

La méthode proposée vous permet de programmer, tester, mettre au point et sauvegarder votre
programme.

Étape 1 : Configuration de l’application


Nom de l’application, valeurs des constantes, horodateur, paramètre des compteurs,
temporisateurs.
Étape 2 : Saisie des symboles
Saisie des noms de Symboles pour chaque repère utilisé dans votre programme automate
(contacts, bobines…).
Étape 3 : Saisie du programme
Et validation des saisies.
Étape 4 : Sauvegarde régulière du programme
En cours de saisie –PC vers disque.
Étape 5 : Transfert du programme dans l’automate
Étape 6 : Mise en RUN et teste du programme
Étape 7: Mise au point du programme
Éditeur de données.
Étape 8 : Sauvegarde du programme
Après mise au point – Automate ¬ disque
Étape 9 : création du dossier de l’application

8
CDC ELCTROTECHNIQUE API

Hardware TSX MICRO

Processeurs
Gamme d ’E/S TOR
Gamme modules analogiques
L ’offre en comptage
L ’offre communication
Le bloc visu

Offre matériel
Positionnement gamme :

TS NANO :

TSX MICRO :

TSX PREMUIM
TSX QUANTUM

9
CDC ELCTROTECHNIQUE API

TSX Micro : L ’offre :


TSX 37 : 5 versions de base

Trois versions "Compact" Deux versions "Modulaires"


prête à l'emploi

TSX 37-21
TSX 37-05 / 08 / 10 TSX 37-22

Configurations modulables

TSX 37-10 / -21 / -22

Modules
au format
standard

Modules
* demi format

BASE Mini Bac d'extension

10
CDC ELCTROTECHNIQUE API

3 Niveaux de processeurs

TSX 37-22 = idem TSX 37-21


- E/S Métiers intégrés

- 1 Compteur/décompteur 10 KHz (avec ou


+ sans
- 1 Compteur 10 KHz
- 8 Entrées ANAlogiques H.N., 0-10V (4-20
mA), 8

TSX 37-21 = idem TSX 37-10

- Performances: Temps cycle < 0,150 ns /


instr. Logique
- Horodateur
- Mémoire extensible par carte PCMCIA jusqu’à
64 K
- Communication par coupleur PCMCIA (
FIPWAY )
- 2 ports de Communication Série (Terminal, Dial.
Opérateur, bus UTW)

TSX 37-05/08/10
- Performances: Temps cycle < 0,274 ns /
instr. logique
- 4 entrées évènementielles et traitements
associés utilisables en Compteur / décompteur
jusqu'à 500 Hz (avec / sans DSM)
- - Port de Communication Série multiprotocole
Terminal, UTW maître / esclave, mode
caract.(ASCII), Modbus esclave
- Mémoire et sauvegarde F-EPROM intégrées.

11
CDC ELCTROTECHNIQUE API

Présentation du logiciel PL7

Présentation

Pour réaliser le fonctionnement de votre automatisme, vous devez définir un « programme »


(suite d’instructions), fixant les opérations successives à exécuter par l’automate TSX Nano.
Ce programme, écrit dans un langage spécifique à l’automate programmable, et constitué
principalement de fonctions « logiques » qui vont traiter les informations présentes aux entrées
(issus des capteurs), pour élaborer des informations sur les sorties (commande des
préactionneurs).

Le logiciel PL7 Junior est le logiciel de programmation des automates TSX 37 et


TSX/PMX/PCX 57 fonctionnant sous Windows, le logiciel PL7 Micro ne permet de programmer
que les automates TSX 37.
Le logiciel PL7 Pro offre , en plus des fonctionnalités du logiciel PL7 Junior, la possibilité
de créer des blocs fonction utilisateur DFB (Derived Function block) , des écrans d'exploitation
et des modules fonctionnels .
Le logiciel PL7 Prodyn est un outil d'exploitation (conduite, diagnostic, maintenance) pour les
automates TSX 37 et TSX/PMX/PCX 57. Il ne permet pas la création ou la modification
d'application.

12
CDC ELCTROTECHNIQUE API

L’éditeur de configuration

Accès à l’éditeur de configuration

Sélectionner et cliquer dans le navigateur application successivement sur les dossiers


Station et Configuration, et cliquer 2 fois sur l'icône "Configuration matérielle".

Si le navigateur application n'est pas affiché :


• cliquer sur l'icône du navigateur application
• ou sélectionner la commande Outils/Navigateur Application

B
Choix des modules

Il s'effectue par un double clic sur la position du module à configurer (par exemple
position 5), ce qui visualise la boîte de dialogue de l'exemple suivant :

13
CDC ELCTROTECHNIQUE API

Validation de la configuration
Validation après modification
Après la modification des paramètres de configuration des voies d'un module, l'abandon de la
fonction nécessite de valider la nouvelle configuration. Pour cela, plusieurs possibilités peuvent
être utilisées:

1 Valider à partir de la barre d'outils en cliquant sur l'icône correspondante

2 Quitter la fonction sans validation des


paramètres, ce qui visualise une boîte
de dialogue permettant de valider la
nouvelle configuration.

3 dérouler le menu Edition de PL7 Micro et sélectionner la rubrique Valider.

B Les objets langage associés aux entrées/sorties TOR

Un module d'entrées/sorties TOR configuré à une position donnée génère automatique-ment


un ensemble d'objets langage permettant de programmer et de diagnostiquer ce module
d'entrées/sorties.
Objets à échange implicite (échange effectué automatiquement à chaque cycle de la tâche dans
laquelle les voies du module sont configurées) :

Bits :
• %Ix.i : bits voies d'entrées. A l'état 1 il indique pour la voie d'entrée i du module en position x
que la sortie du capteur commandant l'entrée est activée.
• %Qx.i : bits voies de sorties. A l'état 1 il indique pour la voie de sortie i du module en position
x que celle-ci est activée.
• %Ix.i.ERR : bit défaut voie. A l'état 1 il indique pour la voie i du module en position x que
celle-ci est en défaut.
• %Ix.MOD.ERR : bit défaut module. A l'état 1 il indique pour le module en position x que
celui-ci est en défaut.

Objets à échange explicite (échange par instructions) :


Les objets à échange explicite ne sont utiles que pour une programmation avancée de la fonction
métier. Voir intercalaire F - chapitre 3 du présent document pour l'exploitation des échanges
explicites.

Mots :
• %MWx.MOD.2 : mot d'état (16 bits) du module, mis à jour uniquement sur demande.
4 Bits et mots associés au métier TOR

14
CDC ELCTROTECHNIQUE API

• %MWx.MOD.3 : mot de commande (16 bits) envoyé au module sur demande. Il est écrit par
l'applicatif ou à partir de l'écran de Mise au point pour la commande réarmement.

15
CDC ELCTROTECHNIQUE API

16
CDC ELCTROTECHNIQUE API

(1) la limite maximum dépend de la taille mémoire disponible et du nombre de mots déclaré en
configuration logicielle.

(2) cet objet n'existe pas autrement qu'en adresse de départ d'une chaîne de caractères %MBi:L
ou %KBi:L (voir ch 2.8-1, intercalaire B).

(3) écriture uniquement par terminal.

(4)écriture selon i.

17
CDC ELCTROTECHNIQUE API

Bits et mots associés au métier TOR 4


B
Objets de configuration (accessible uniquement en lecture)

Mots :
• %KWx.MOD.r : mots de 16 bits accessibles uniquement en lecture, chaque bit correspond à
un paramètre de configuration saisi à l'aide de l'éditeur de Configuration

Objets bits système

• %S9 : mise à l'état 0 de toutes les sorties


Normalement à l'état 0, ce bit peut être mis à l'état 1 par programme ou par le terminal.
- état 1 : provoque le forçage à l'état 0 des sorties de l'automate quelque soit la configuration du
mode de repli.
- état 0 : les sorties sont mises à jour normalement.

• %S10 : Défaut entrées/sorties


Normalement à l'état 1, ce bit est mis à l'état 0 quand un défaut d'entrées/sorties sur l'automate ou
l'extension est détecté (configuration non conforme, défaut d'échange, défaut matériel, défaut
alimentation capteur ou actionneur, disjonction de sorties). Le bit %S10 est remis à l'état 1 dès la
disparition du défaut.

• %S16 : Défaut d'entrées/sorties relatif à la tâche.


Normalement à l'état 1, ce bit est mis à l'état 0 par le système sur défaut d'un module
d'entrées/sorties configuré dans la tâche, ce bit doit être remis à l'état 1 par
l'utilisateur. Chaque tâche gère son propre bit %S16.

• %S49 : réarmement des sorties statiques disjonctées


Normalement à l'état 0, ce bit est mis à l'état 1 par programme ou par le terminal pour effectuer
une demande de réarmement (toutes les 10 secondes) des sorties statiques disjonctées sur tous
les modules de la configuration.

18
CDC ELCTROTECHNIQUE API

Le logiciel PL7 (1) propose :


• un langage graphique, le langage à contacts (LD) transcription de schémas à relais, est adapté
au traitement combinatoire. Il offre les symboles graphiques de base : contacts, bobines, blocs.
L'écriture de calculs numériques est possible à l'intérieur de blocs opérations.

le test du niveau logique d’une entrée associée à un contact de capteur est symbolisé par :
Le test est vrai lorsque l’état logique de l’entrée associée à ce symbole est « 1 »

Le test est vrai lorsque l’état logique de l’entrée associée à ce symbole est « 0 »

l’action sur une sortie ( ou changement de niveau logique), associée à la bobine d’un contacteur
est symbolisée par :
Le résultat du test est transféré dans la sortie associé à ce symbole

Le résultat inverse du test est transféré dans la sortie associé à ce symbole

Bobine à enclenchement
S
Bobine à déclenchement
R

19
CDC ELCTROTECHNIQUE API

• un langage booléen, le langage liste d'instructions (IL) est un langage "machine" qui
permet l'écriture de traitements logiques et numériques.

___________________________________________________________________________
(1) PL7 est utilisé dans la suite du document pour désigner indifféremment PL7 Junior, PL7
Micro, PL7 Pro ou PL7 Prodyn.

• un langage littéral structuré (ST) qui est un langage de type "informatique" permet-tant
l'écriture structurée de traitements logiques et numériques.

20
CDC ELCTROTECHNIQUE API

• un langage Grafcet qui permet de représenter graphiquement et de façon structurée le


fonctionnement d'un automatisme séquentiel.

Ces langages mettent en œuvre des blocs fonctions pré-définis (Temporisations, Compteurs,...),
pouvant être complétés par des fonctions métiers (analogique, communication, comptage...) et
des fonctions spécifiques (gestion du temps, chaîne de caractères...).
Les objets du langage sont symbolisables à l'aide de l'éditeur de variables ou en ligne
dans les éditeurs de programme.

Le logiciel PL7 est conforme à la norme IEC 1131-3.

21
CDC ELCTROTECHNIQUE API

Structure mono tâche

C'est la structure par défaut du logiciel, elle comporte une seule tâche : la tâche maître.

Tâche maître
Cette tâche peut avoir une exécution apériodique dite cyclique (choix par défaut) ou périodique.
En fonctionnement cyclique, les exécutions de la tâche sont enchaînées les uns après les autres,
sans attente.
En fonctionnement périodique, les exécutions de la tâche sont enchaînées à une période fixée par
l'utilisateur.

Structure multitâche
La structure multitâche des automates programmables TSX 37 et TSX/PMX/PCX 57 autorise
une utilisation mieux adaptée pour obtenir des applications temps réel performantes en associant
un programme spécifique à chaque fonction, chacun de ces programmes étant commandé par une
tâche.
Ces tâches sont indépendantes et exécutées en "parallèle" par le processeur principal qui gère
leur priorité, ainsi que leur exécution.

Ce type de structure a pour but de :


• optimiser l'emploi de la puissance de traitement,
• simplifier la conception et la mise au point; chaque tâche est écrite et mise au point
indépendamment des autres,
• structurer l’application; chaque tâche a une fonction qui lui est propre,
• optimiser la disponibilité.
Le système multitâche propose la tâche maître, la tâche rapide et de 8 à 64 tâches
événementielles suivant le processeur.

Tâche rapide
La tâche rapide (facultative), d'exécution périodique, permet d'effectuer des traitements courts
avec une priorité plus élevée que dans la tâche maître. Lorsqu'elle est programmée, elle est
automatiquement lancée par le système lors du démarrage, elle peut être arrêtée et peut être
ensuite redémarrée en agissant sur un bit système.
Tâches événementielles
Ces tâches ne sont pas liées à une période comme les tâches précédemment décrites. Leur
exécution est déclenchée par un appel en provenance de certains modules. Ces tâches sont les
plus prioritaires. Le traitement, qu’elles doivent assurer, est nécessairement court afin de ne pas
perturber l’exécution des autres tâches.

22
CDC ELCTROTECHNIQUE API

Programmation structurée et modulaire

Les tâches d'un programme PL7 se composent de plusieurs parties appelées sections et de sous-
programmes.
Chacune de ces sections peut être programmée dans le langage approprié au traitement à réaliser.

Ce découpage en sections permet de créer un programme structuré et de générer ou incorporer


aisément des modules de programme.
Les sous-programmes peuvent être appelés depuis n'importe quelle section de la tâche à laquelle
ils appartiennent ou depuis d'autres sous-programmes de la même tâche.

23
CDC ELCTROTECHNIQUE API

Structuration en modules fonctionnels

Un module fonctionnel est un regroupement d'éléments de programme (sections, événements,


macro-étapes, tables d'animation ...) destinés à réaliser une fonction d’automatisme.
Un module fonctionnel est défini par un certain nombre d’attributs (nom, commentaire,
programmation, tables d’animation associées...).
Un module fonctionnel comprend un répertoire programme (composé d'un ou plu-sieurs modules
de code) et d'un répertoire table d'animation.

Un module fonctionnel peut être lui-même décomposé en modules fonctionnels de niveau


inférieur, ces modules assumant, par rapport à la fonction principale, une ou plusieurs sous-
fonctions d’automatisme.

Seul le produit PL7 PRO permet la mise en oeuvre des modules fonctionnels sur les automates
TSX/PMX/PCX57.

24
CDC ELCTROTECHNIQUE API

Programmation symbolique

L'utilisateur peut saisir ou visualiser les objets :


• soit par leur repère (par exemple : %Q2.5),
• soit par une chaîne de caractères (de 32 caractères maximum) appelée symbole (par
exemple Fc_porte).

Note
Les objets associés au bloc fonction utilisateur DFB sont des objets purement symboliques.

Exemple : visualisation symbolique des objets en langage à contacts.

Le langage à contacts, permet l'affichage simultané des repères et des symboles.


Les objets du langage sont symbolisables à l'aide de l'éditeur de variables ou en ligne dans les
éditeurs de programme.

Cette base de symboles, gérée par l'éditeur de VARIABLES du logiciel, est globale à la station
automate.

25
CDC ELCTROTECHNIQUE API

Note
Certains modules métier permettent une symbolisation automatique des objets qui leur sont
associés.

26
CDC ELCTROTECHNIQUE API

Objets adressables

Définition des principaux objets booléens

Bits d’entrées/sorties
Ces bits sont les "images logiques" des états électriques des entrées/sorties. Ils sont rangés dans
la mémoire de données et sont mis à jour à chaque scrutation de la tâche dans laquelle ils sont
configurés.

Bits internes
Les bits internes %Mi permettent de mémoriser des états intermédiaires durant l’exécution du
programme.

Note : Les bits d’entrées/sorties non utilisés ne peuvent pas être employés comme bits internes.

Bits système
Les bits système %S0 à %S127 surveillent le bon fonctionnement de l’automate ainsi que le
déroulement du programme application.
Bits de blocs fonction
Les bits de blocs fonction correspondent aux sorties des blocs fonction standard ou instance de
DFB. Ces sorties peuvent être soit câblées directement, soit exploitées en tant qu'objet.

Bits extraits de mots


Le logiciel PL7 donne la possibilité d'extraire l'un des 16 bits d'un objet mot.

Bits d'état des étapes et macro-étapes Grafcet


Les bits Grafcet d'état des étapes %Xi , des macro-étapes %XMj et des étapes de macro-étape
%Xj.i (Xj.IN et Xj.OUT pour les étapes d'entrées et de sorties de macro-étapes)
permettent de connaître l'état de l'étape i, de la macro-étape j ou de l'étape i de la macro-étape j
du Grafcet.

Liste des opérandes bits


Le tableau suivant donne la liste de tous les types d'opérandes booléens.

27
CDC ELCTROTECHNIQUE API

Adressage des objets de modules d'entrées/sorties du TSX 37

L'adressage des principaux objets bits et mots de modules d'entrées/sorties est défini par les
caractères suivants :

• Type d'objet

I et Q : pour les entrées et les sorties physiques du modules, ces informations sont échangées de
manière implicite à chaque cycle de la tâche à laquelle elles sont attachées.

%I 1 . 1
Identificateur de l’opérande
Numéro du module Numéro du bit
Délimiteur de bit
• Format (Taille)
Pour les objets de format booléen, le X peut être omis.

• Position et numéro de voie


La modularité de base du TSX 37 est le 1/2 format, les positions pour chaque type d'automate
TSX 37 (base et extension) sont repérées dans les schémas ci-dessous.

Les modules au format standard sont adressés comme 2 modules au 1/2 format superposés (voir
tableau ci-après).

Par exemple, un module de 64 E/S est vu comme 2 modules 1/2 format :


un 1/2 module de 32 entrées situé à la position 5 et un 1/2 module de 32 sorties situé à
l'emplacement 6.

28
CDC ELCTROTECHNIQUE API

Note :
Le numéro de voie peut être remplacé par "MOD" pour accéder à des informations générales au
module.
• Rang : ce suffixe optionnel peut se rajouter derrière le numéro de voie. Il permet de repérer
différents objets de même type associés à une même voie
ERR : indique un défaut module ou voie.
Exemples : %I4.MOD.ERR : information de défaut du module 4
%I4.3.ERR : information de défaut de la voie 3 du module 4.

Note :
Pour un adressage à travers le réseau ou d'entrées/sorties déportées, au numéro de position dans
le bac est rajouté le chemin complet d'accès à la station.

Exemples :

%I1.5 voie d'entrée n° 5 du module situé


en position n° 1.

%I3.8 voie d'entrée n° 8 du module de


format standard situé en position
n° 3 et 4.

%Q4.5 voie de sortie n° 5 du module de


format standard situé en position
n° 3 et 4.

%I5.MOD.ERR Information défaut module,


du module situé en position n° 5.

%IW8.0 voie d'entrée n° 0 du module 1/2


format situé en position n° 8.

29
CDC ELCTROTECHNIQUE API

Adressage des mots

L'adressage des mots de modules d'entrées/sorties est défini chapitre 1.2-2 ou 1.2-3, les autres
mots utilisés (exceptés les mots réseaux et les mots de blocs fonctions) dans le langage PL7 sont
adressés de la façon suivante :

• Type d'objet

M mots internes destinés à stocker des valeurs en cours du programme. Ils sont rangés à
l’intérieur de l’espace données dans une même zone mémoire.

K mots constants mémorisent des valeurs constantes ou des messages alphanumériques.


Leur contenu ne peut être écrit ou modifié que par le terminal. Ils sont stockés au même endroit
que le programme , Ils peuvent donc avoir comme support de la mémoire FLASH EPROM.

S mots système, ces mots assurent plusieurs fonctions :


- certains renseignent sur l’état du système par lecture des mots %SWi (temps de
fonctionnement système et application, etc...).
- d’autres permettent d’agir sur l’application (modes de marche, etc...).
Les mots système sont décrits chapitre 3 intercalaire B.

• Format
Les objets mots peuvent être adressés par le logiciel PL7 suivant quatre formats :

B octet, ce format est exclusivement utilisé pour les opérations sur chaîne de caractères.

W simple longueur : ces mots de 16 bits peuvent contenir une valeur algébrique comprise entre -
32 768 et 32 767,

30
CDC ELCTROTECHNIQUE API

D double longueur : ces mots de 32 bits peuvent contenir une valeur algébrique comprise entre -
2 147 483 648 et 2 147 483 647. Ces mots s’implantent en mémoire sur deux mots simple
longueur consécutifs.

F flottant: le format flottant utilisé est celui de la norme IEEE Std 754-1985 (équivalent IEC
559). La longueur des mots est de 32 bits, ce qui correspond à des nombres flottants simple
précision.
Exemples de valeurs flottantes :
1285.28
12.8528E2

31
CDC ELCTROTECHNIQUE API

Présentation du langage à contacts

Principe

Un programme écrit en langage à contacts se compose d’une suite de réseaux exécutés


séquentiellement par l’automate.
Dessiné entre deux barres de potentiel, un réseau est un ensemble d’éléments graphiques
représentant :
• les entrées/sorties de l’automate (boutons-poussoirs, détecteurs, relais, voyants...),
• des fonctions d’automatismes (temporisateurs, compteurs...),
• des opérations arithmétiques, logiques et spécifiques,
• les variables internes de l’automate.
Ces éléments graphiques sont reliés entre eux par des connexions horizontales et verticales.

Chaque réseau ainsi constitué


comporte au plus 16 lignes et
11 colonnes (pour automates
TSX/PMX/ PCX 57) ou 7
lignes et 11 colonnes (pour
automates
TSX 37) et s’organise en
2 zones :

• la zone test, dans la-quelle


figurent les conditions
nécessaires à une action,

• la zone action, qui appli-que


le résultat consécutif à un
enchaînement de test.

32
CDC ELCTROTECHNIQUE API

33
CDC ELCTROTECHNIQUE API

Les éléments graphiques


Éléments de base
Ils occupent tous une seule cellule (1 ligne en hauteur, 1 colonne en largeur)

34
CDC ELCTROTECHNIQUE API

35
CDC ELCTROTECHNIQUE API

36
CDC ELCTROTECHNIQUE API

Structure d’un réseau de contacts


Généralités
Un réseau s’inscrit entre deux barres de potentiel et est composé d’un ensemble d’éléments
graphiques reliés entre eux par des liaisons horizontales ou verticales.
Un réseau a pour dimension 16 lignes maximum et 11 colonnes (pour automates TSX/PMX/PCX
57), ou 7 lignes maximum et 11 colonnes (pour automates TSX 37) réparties en deux zones : la
zone test et la zone action.

37
CDC ELCTROTECHNIQUE API

Réseau de contacts avec blocs fonctions et opérations

• Les blocs fonctions standards se positionnent dans la zone test et s’insèrent dans un réseau de
contacts.

Compteur/Dé compteur 2 colonnes


Comparateur "vertical" 4 lignes

Temporisateurs 2 colonnes
Monos table 3 lignes
Registre
Programmateur cyclique

Comparateur "horizontal" 2 colonnes


1 ligne

38
CDC ELCTROTECHNIQUE API

Étiquette

L’étiquette permet de repérer un réseau dans une entité de programme (programme principal,
sous-programme, ...) mais n’est pas obligatoire.
Cette étiquette a la syntaxe suivante : %Li avec i compris entre 0 et 999 et se positionne
à la partie supérieure gauche devant la barre de potentiel.

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

Par contre il est nécessaire


d’étiqueter un réseau afin
de permettre un branche-ment
après un saut de pro-gramme.

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).

Commentaire

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 *). Il facilite l’interprétation du réseau auquel il
est affecté, mais n’est pas obligatoire.

Les commentaires s’affichent


dans la zone réservée
dans la partie supérieure
du réseau de con-tacts.
En cas de suppression d’un
réseau, le commentaire qui
lui est associé est égale-ment
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.
Remarque :
Les entrées non câblées des blocs fonctions standard sont mises à 0.

39
CDC ELCTROTECHNIQUE API

Présentation du langage liste d'instructions

Principe

Un programme écrit en langage liste d'instructions se compose d’une suite d'instructions


exécutées séquentiellement par l’automate.

Chaque instruction est composée d'un code instruction et d'un opérande.


Ces instructions agissent sur :
• les entrées/sorties de l’automate (boutons-poussoirs, détecteurs, relais, voyants...),
• des fonctions d’automatismes (temporisateurs, compteurs...),
• des opérations arithmétiques et logiques et des opérations de transfert,
• les variables internes de l’automate.
Il existe 2 types d'instructions :
• Instruction de test, dans laquelle figurent les conditions nécessaires à une action, ex : LD,
AND, OR...
• Instruction d'action, qui sanctionne le résultat consécutif à un enchaînement de test.
ex : ST, STN, R, ...

40
CDC ELCTROTECHNIQUE API

Les instructions

Instructions de base

41
CDC ELCTROTECHNIQUE API

Structure d’un programme

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. Chaque phrase se compose d'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. Chaque phrase commence par un point
d'exclamation (généré automatiquement), elle peut comporter un commentaire et être repérée par
une étiquette.

! (*Attente de séchage*)
%L2:
LD %I0.1
AND %M10
ST %Q2.5

Commentaire

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 *). Il facilite
l’interprétation de la phrase à laquelle elle est affectée, mais n’est pas obligatoire.
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.

Étiquette

L’étiquette permet de repérer une phrase dans une entité de programme (programme principal,
sous-programme, ...) mais n’est pas obligatoire.
Cette étiquette a la syntaxe suivante : %Li avec i compris entre 0 et 999 et se position en début
d’une phrase.
Un repère d’étiquette ne peut être affecté qu’à une seule phrase au sein d’une même entité de
programme.
Par contre 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.

42
CDC ELCTROTECHNIQUE API

Utilisation des parenthèses

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. 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(

Aux parenthèses peuvent être associées les modificateurs :


• N négation, ex : AND(N ou OR(N,
• F front descendant (Falling edge), ex : AND(F ou OR(F,
• R front montant (Rising edge), ex : AND(R ou OR(R,
• [ comparaison.

43
CDC ELCTROTECHNIQUE API

Imbrication de parenthèses

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

Note :
• chaque parenthèse ouverte doit être impérativement refermée.
• 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,
• les instructions d'affectation ST, STN, S et R ne doivent pas être programmées entre
parenthèses.

44
CDC ELCTROTECHNIQUE API

Instructions MPS, MRD, MPP

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.
L'instruction MPS (Memory PuSh) 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.
L'instruction MRD (Memory ReaD) lit le sommet de la pile.
L'instruction MPP (Memory PoP) 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.

Exemples :

45
CDC ELCTROTECHNIQUE API

Programmer une instruction

Les automates TSX sont programmables en langage LIST : listes d’instructions ou LADDER :
langage à contacts.

Représentation en Représentation en liste Interprétation


langage à contacts d’instructions

%I1.1
LD %I1.1 Lire l’état de l’entrée %I1.1
« Examine si c’est fermé »

%I1.1 Lire l’état inverse de l’entrée


LDN %I1.1 %I1.1
« Examine si «c’est ouvert. »

%Q2.1 Transférer le résultat dans la


ST %Q2.1
sortie 1

%Q2.1

STN %Q2.1 Transférer l’inverse du résultat


dans la sortie 1

46
CDC ELCTROTECHNIQUE API

Instruction « AND » (« ET ») : transcription de deux ou plusieurs contacts en série

Représentation en Représentation en liste Interprétation


langage à contacts d’instructions

%I1.1 %I1.2 LD %I1.1


Lire l’état des entrées 1 ET
AND %I1.2 2

Instruction « ANDN » (« ET NON ») :


Représentation en Représentation en liste Interprétation
langage à contacts d’instructions

%I1.1 %I1.2 LD %I1.1 Lire l’état des entrées 1 ET


l’état inverse de l’entrée 2
ANDN %I1.2

Instruction « OR » («OU») :
Représentation en Représentation en liste Interprétation
langage à contacts d’instructions

%I0.1
LD %I1.1 Le résultat de cette
combinaison est égal à 1 si
%I0.2 l’entrée 1 OU l’entrée 2 est
OR %I1.2
à 1 OU si les 2 entrées sont
à1

47
CDC ELCTROTECHNIQUE API

Instruction « ORN » («OU NON») :


Représentation en Représentation en liste Interprétation
langage à contacts d’instructions

%I1.1 Le résultat de cette


LD %I1.1 combinaison est égal à 1 si
l’entrée 1 OU l’entrée 2 est à
ORN %I1.2
%I1.2 0

48
CDC ELCTROTECHNIQUE API

Exercice 1 :
Réaliser et tester les programmes correspondants aux schémas ci-dessous :

a) b)

Stop Stop
%I0.6
%I0.6

Droite
%I0.11 %Q0.4
Droite Gauche
%I0.11 %Q0.4 %I0.10 %Q0.3

%Q0.4

%Q0.3 %Q0.4

%Q0.4 %Q0.3

Solution :
a)
Schémas à contacts List

LD %I
AND(
OR %
OR %
)
ST %

49
CDC ELCTROTECHNIQUE API

b)
Schémas à contacts List

(*Sens 1*)
LD
AND(
OR
OR
)
ANDN
ST
(*Sens2*)
LD
AND(
OR
OR
)
ANDN
ST

50
CDC ELCTROTECHNIQUE API

Les Temporisateurs:
La fonction « temporisation » permet de commander, avec retard, des actions spécifiques.
Le nombre des temporisateurs varie d’un automate à un autre selon la CPU.
Le TSX MICRO contient 64 temporisateurs %Tmi (i=0…63) qui peuvent être de différents
types :
Bloc temporisateur :
Le temporisateur a 3 modes de fonctionnement :

• TON : ce mode permet de gérer des retards à


l'enclenchement. Ce retard est programmable et peut
être modifiable ou non par terminal.

• TOF : ce mode permet de gérer des retards au


déclenchement. Ce retard est programmable et peut être
modifiable ou non par terminal.

• TP : ce mode permet d'élaborer une impulsion de


durée précise. Cette durée est programmable et peut
être modifiable ou non par terminal.

Caractéristiques :

51
CDC ELCTROTECHNIQUE API

Utilisation en temporisation à retard à l'enclenchement : mode TON


Lors d'un front montant sur l'entrée IN, le
temporisateur est lancé : sa valeur courante
%TMi.V croît de 0 vers %TMi.P d'une unité à
chaque impulsion de la base de temps TB. Le
bit de sortie %TMi.Q passe à 1 dès que la
valeur courante a atteint %TMi.P puis reste à 1
tant que l'entrée IN est à 1.
Quand l'entrée IN est à 0, le temporisateur est
arrêté même s'il était en cours d'évolution :
%TMi.V prend la valeur 0.

Utilisation en temporisation à retard au déclenchement : mode TOF


La valeur courante %TMi.V prend la va-leur
0, sur un front montant de l'entrée IN (même si
le temporisateur est en cours d'évolution). Lors
du front descendant sur l'entrée IN, le
temporisateur est lancé.
Puis la valeur courante croît vers %TMi.P
d'une unité à chaque impulsion de la base
de temps TB. Le bit de sortie %TMi.Q
passe à 1 dès qu'un front montant est
détecté sur l'entrée IN et retombe à 0
quand la valeur courante a atteint %TMi.P.

Utilisation en monostable : mode TP


Lors d'un front montant sur l'entrée IN, le
temporisateur est lancé : (si le temporisateur
n'est pas déjà en cours d'évolution) sa valeur
courante %TMi.V croît de 0 vers %TMi.P
d'une unité à chaque impulsion de la base de
temps TB. Le bit de sortie %TMi.Q passe à 1
dès que le temporisateur est lancé et retombe à
0 quand la valeur courante a atteint %TMi.P.
Quand l'entrée IN et la sortie %TMi.Q sont
à 0, %TMi.V prend la valeur 0.
Ce monostable n'est pas réarmable.

52
CDC ELCTROTECHNIQUE API

Programmation et configuration
La programmation des blocs fonction temporisateur est identique quel que soit le mode
d'utilisation sélectionné. Le choix du fonctionnement TON, TOF ou TP s'effectue en
dans l'éditeur de variables.

• Configuration
Les paramètres suivants sont à saisir dans l'éditeur de variables :
- Mode : TON, TOF ou TP.
- TB : 1min, 1s, 100ms ou 10ms.
- %TMi.P : 0 à 9999.
- MODIF : Y ou N.

• Programmation

Langage à contacts Langage liste d'instructions

LD %I1.1
IN %TM1
LD %TM1.Q
ST %Q2.3

Langage littéral structuré

IF RE %I1.1 THEN
START %TM1 ;
ELSIF FE %I1.1 THEN
DOWN %TM1 ;
END_IF ;
%Q2.3 := %TM1.Q ;

L'instruction START %TMi, génère un front montant sur l'entrée IN du bloc temporisateur.
L'instruction DOWN %TMi, génère un front descendant sur l'entrée IN du bloc temporisateur.

53
CDC ELCTROTECHNIQUE API

Cas spécifiques

• Incidence d’une reprise "à froid" : (%S0=1), provoque la mise à 0 de la valeur courante, la
mise à 0 de la sortie %TMi.Q et la valeur de présélection est ré-initialisée à la valeur définie en
configuration.

• Incidence d’une "reprise à chaud" : (%S1=1) n’a pas d’incidence sur la valeur courante du
temporisateur, ni sur la valeur de présélection. La valeur courante n'évolue pas pendant le temps
de la coupure secteur.

• Incidence d’un passage en stop, désactivation d'une tâche ou exécution d'un


point d'arrêt : ne fige pas la valeur courante.

• Incidence d’un saut de programme : le fait de ne pas scruter les instructions où est
programmé le bloc temporisateur ne fige pas la valeur courante %TMi.V qui continue à croître
vers %TMi.P. De même le bit %TMi.Q associé à la sortie Q du bloc temporisateur conserve son
fonctionnement normal et peut être ainsi testé par une autre instruction. Par contre la sortie,
directement câblée à la sortie du bloc, n'est pas activée puisque non scrutée par l’automate,

• Test du bit %TMi.Q : il est conseillé de tester le bit %TMi.Q qu'une seule fois dans
le programme.

• Incidence de la modification de la présélection %TMi.P : la modification de la valeur de


présélection par instruction ou en réglage n'est prise en compte qu'à la prochaine activation du
temporisateur ; la modification de la valeur de présélection dans l'éditeur de variables n'est prise
en compte qu'après une reprise à froid (%S0=1).

54
CDC ELCTROTECHNIQUE API

55
CDC ELCTROTECHNIQUE API

56
CDC ELCTROTECHNIQUE API

57
CDC ELCTROTECHNIQUE API

Exercice :
1L,1 1L,1
À la mise sous tension, le moteur démarre 1L 1L,2
1L,3
1L,2
1L,3

en couplage étoile. Après écoulement de la


temporisation de 5 secondes, le moteur 1 3 5 13 21
-D01
passe en couplage triangle. 14 22

Entrées : I> I> I>


2 4 6

Marche : %I1.
Arrêt : %1.
Sorties :
1 3 5 1 3 5 1 3 5
-KM1 -KM3 -KM2
KL : %Q2. /1.5
2 4 6
/1.6
2 4 6
/1.5
2 4 6

KET : %Q2.
KTR : %Q2. PE

Blocs fonctions : 1W
PE
2W

M
Temporisateur : %TM0
1V 2V

1U 3~ 2U

-M01

Solution :

58
CDC ELCTROTECHNIQUE API

Les Compteurs
Les compteurs, sont des éléments qui contiennent 2 mots. Le mot Ci.P est le mot qui contient , la
valeur de présélection et le mot Ci.V contient la valeur cumulée.

Le bloc fonction compteur/décompteur permet


d’effectuer le comptage ou le dé-comptage
d’événements, ces deux opérations pouvant être
simultanées.

(1) %Ci.V peut être modifiée par terminal.


(2) quand il y a débordement en comptage ou décomptage, le bit %S18 passe à 1.

59
CDC ELCTROTECHNIQUE API

Fonctionnement

• Comptage : à l’apparition d’un front montant sur l’entrée comptage CU, la valeur courante est
incrémentée d’une unité. Lorsque cette valeur est égale à la valeur de présélection %Ci.P, le bit
de sortie %Ci.D "présélection atteinte" associé à la sortie D passe à l’état 1. Le bit de sortie
%Ci.F (débordement comptage) passe à l’état 1 lorsque %Ci.V passe de 9999 à 0, il est remis à 0
si le compteur continue à compter.
• Décomptage : à l’apparition d’un front montant sur l’entrée "décomptage" CD, la valeur
courante %Ci.V est décrémentée d’une unité. Le bit de sortie %Ci.E (débordement décomptage)
passe à l’état 1 lorsque %Ci.V passe de 0 à 9999, il est remis à 0 si le compteur continue à
décompter.
• Comptage/Décomptage : pour utiliser simultanément les fonctions comptage et décomptage, il
est nécessaire de commander les deux entrées correspondantes CU et CD; ces deux entrées étant
scrutées successivement. Si les deux entrées sont à 1 simultanément, la valeur courante reste
inchangée.
• Remise à zéro : dès la mise à l’état 1 de l'entrée R, la valeur courante %Ci.V est forcée à 0, les
sorties %Ci.E, %Ci.D et %Ci.F sont à 0. L’entrée "remise à zéro" est prioritaire.
• Présélection : si l’entrée S "présélection" est à l’état 1 et l’entrée R "remise à zéro" à l’état 0,
la valeur courante %Ci.V prend la valeur %Ci.P et la sortie %Ci.D prend la valeur 1.

Remarque
Sur remise à 0 (entrée R ou instruction R) :
• En langage à contacts, les historiques des entrées CU et CD sont mis à jour avec les valeurs
câblées.
• En langage liste d'instructions, et en langage littéral structuré les historiques des entrées CU et
CD ne sont pas mis à jour ; chacune garde la valeur qu'elle avait
avant l'appel.

Cas spécifiques

• Incidence d’une "reprise à froid" : (%S0=1)


- mise à zéro de la valeur courante %Ci.V,
- mise à 0 des bits de sorties %Ci.E, %Ci.D et %Ci.F,
- l'initialisation de la valeur de présélection par celle définie en configuration.

• Incidence d’une reprise à chaud (%S1=1), d’un passage en STOP , désactivation


d'une tâche ou exécution d'un point d'arrêt : n’a pas d’incidence sur la valeur courante du
compteur (%Ci.V).

• Incidence de la modification de la présélection %Ci.P : la modification de la valeur de


présélection par instruction ou en réglage est prise en compte lors de la gestion du bloc par
l'application (activation de l'une des entrées).

60
CDC ELCTROTECHNIQUE API

Configuration et programmation

Comptage d’un nombre de pièces = 5000. Chaque impulsion sur l’entrée %I1.2 (lorsque le bit
interne %M0 est à 1) provoque l’incrémentation du compteur %C8 et ce jusqu’à la valeur de
présélection finale du compteur %C8 (bit %C8.D=1). La remise à zéro du compteur est
provoquée par l’entrée %I1.1.

• Configuration
Les paramètres à saisir par l'éditeur de variables sont les suivants :
- %Ci.P, fixé à 5000 dans cet exemple,
- MODIF : Y.

• Programmation

Langage à contacts Langage liste d'instructions

• Langage littéral structuré:

IF %I1.1 THEN
RESET %C8 ;
END_IF ;
%M1 := %I1.2 AND %M0 ;
IF RE %M1 THEN
UP %C8 ;
END_IF ;
%Q2.0 := %C8.D;

En langage littéral structuré, 4 instructions permettent de programmer les blocs fonctions


compteur/décompteur :
• RESET %Ci : Remise à zéro de la valeur courante,
• PRESET %Ci : Chargement de la valeur de présélection dans la valeur courante,
• UP %Ci : Incrémente la valeur courante,
• DOWN %Ci : Décrémente la valeur courante.
Dans le cas du langage littéral structuré, l'historique des entrées CU et CD est remis à
zéro lors de l'utilisation des instructions UP et DOWN. C'est donc l'utilisateur qui doit
gérer les fronts montants pour ces deux instructions.

61
CDC ELCTROTECHNIQUE API

Lorsque la valeur accumulée devient égale à la valeur de présélection, le bit de fin (Ci.D) passe à
1. La valeur cumulée continue à compter même lorsque la valeur de présélection est atteinte.
Afin de modifier la valeur cumulée, il suffit d’effectuer une remise à zéro à l’aide de
l’instruction RES de même adresse ou en utilisant un CD de même adresse. En effet,
l’instruction de dé compteur peut être utilisée en combinaison avec celle du compteur afin de
réaliser un compteur-décompteur.
RESEAU 0
%I1.4 %Ci

R E

%I1.1
S D

%I1.2
CU
ADJ:Y
%I1.3
CD

RESEAU 1 %Q2.3

%C0.V<5

RESEAU 2
%Q2.4
%C0.V>5

RESEAU 3 %Q2.5
%C0.V=10

Cette instruction CTD décrémente sa variable cumulée à chaque transition faux-vrai. Le bit de
fin (DN) est remis à 0 lorsque la valeur cumulée devient inférieure à la valeur de présélection.
Il existe également des bits de dépassement au cas où le compteur passerait outre les valeurs
maximales de +32767 (OV) ou minimales de -32768 (UN).

62
CDC ELCTROTECHNIQUE API

Conditions de ligne

Conditions de remise à
zéro (RES)

Valeur cumulée

8 Valeur de Présélection

bit de fin
(DN)

ligne CTU vraie et pas RES

RESET ACC = PRE RESET

Le bloc fonction « compteur » permet d’effectuer le comptage ou le décomptage d’événements ;


ces deux opérations pouvant être simultanées ou non.
Programme LIST :
BLK %C0 (* OUVERTURE DU BLOC *)
LD %I1.0
R (* RAZ *)
LD %I1.1
S (* PREPOSITION SUR 10 *)
LD %I1.2
CU (* INCREMENTER COMPTEUR (+1) *)
LD %I1.3
CD (* DECREMENTER COMPTEUR (-1) *)
END_BLK (* FIN DU BLOC *)
LD [ %C0.V = 1 ] (* CONTENU DU COMPTEUR =? 1 *)
ST %Q2.0
LD [ %C0.V < 2 ] (* CONTENU DU COMPTEUR <? 2 *)
ST %Q2.1
LD [ %C0.V > 2 ] (* CONTENU DU COMPTEUR >? 1 *)
ST %Q2.2
LD [ %C0.V >= 4 ] (* CONTENU DU COMPTEUR >=? 1 *)
ST %Q2.0
EP (* FIN DU PROGRAMME *)

63
CDC ELCTROTECHNIQUE API

Exercices :
Un stationnement est. muni de deux capteurs, un pour détecter l’entrée des véhicules, l’autre
pour compter ceux qui sortent. Une lumière doit s’allumer lorsque le stationnement est à pleine
capacité, c’est-à-dire à 300 véhicules.
Réponse :

64
CDC ELCTROTECHNIQUE API

Traitements numériques sur entiers

Généralités

Les instructions numériques décrites dans ce chapitre s'appliquent aux objets de type :
• tableaux de bits,
• mots,
• doubles mots.
Les instructions sur les autres types d'objet sont décrites dans le chapitre "Description des
instructions et fonctions avancées".

En langage à contacts
Les instructions numériques sont saisies dans
des blocs :
• placées en zone test pour les blocs
comparaison,
• placées en zone action pour les blocs
opérations.
Ces blocs peuvent contenir :
• une expression de forme simple; ex :
OP3:=OP1+OP2,
• une expression de forme complexe; ex :
OP5:=(OP1+OP2)*OP3-OP4.

En langage liste d'instruction

LD [%MW50>10]
Les instructions sont placées entre crochets. ST %Q2.2
Elles sont exécutées si le résultat booléen LD %I1.0
de l'instruction de test précédant l'instruction [%MW10:=%KW0+10]
numérique est à 1. LDF %I1.2
[INC %MW100]

En langage littéral structuré

Les instructions numériques sont saisies %Q2.2 := %MW50 > 10 ;


directement. IF %I1.0 THEN
L'instruction conditionnelle IF, permet de %MW10 := %KW0 + 10 ;
conditionner ces instructions numériques END_IF ;
par une expression booléenne. IF FE %I1.2 THEN
INC %MW100 ;
END_IF ;

65
CDC ELCTROTECHNIQUE API

Instructions de comparaison

Les instructions de comparaison permettent de comparer deux opérandes.


> : teste si l’opérande 1 est supérieur à l’opérande 2,
>= : teste si l’opérande 1 est supérieur ou égal à l’opérande 2,
< : teste si l’opérande 1 est inférieur à l’opérande 2,
<= : teste si l’opérande 1 est inférieur ou égal à l’opérande 2,
= : teste si l’opérande 1 est égal à l’opérande 2,
<> : teste si l’opérande 1 est différent de l’opérande 2.
Le résultat est à 1 lorsque la comparaison demandée est vraie.

Structure
Langage à contacts Langage liste d'instructions

Les blocs comparaison se programment en La comparaison est réalisée à l'intérieur


zone de test. de crochets figurant derrière des instructions
La comparaison est réalisée à l'intérieur de LD, AND et OR.
crochets figurant derrière des instructions
LD, AND et OR.

• Langage littéral structuré

%Q2.3 := %MW10 > 100 ;

%Q2.2 := %M0 AND (%MW20 < %KW35) ;

%Q2.4 := %I1.2 OR (%MW30 >= %MW40) ;

Note : Les parenthèses sont facultatives mais facilitent la lisibilité du programme.

Syntaxe
Opérateurs : >,>=,<,<=,=,<>

Op1 Opérateur Op2

66
CDC ELCTROTECHNIQUE API

67
CDC ELCTROTECHNIQUE API

Présentation du langage Grafcet

Rappel des principes du Grafcet

Le langage Grafcet est conforme au langage "Diagramme fonctionnel en séquence" (SFC) de la


norme IEC 1131-3.
Le Grafcet permet de représenter graphiquement et de façon structurée le fonctionne-ment
d’un automatisme séquentiel.
Cette description graphique du comportement séquentiel de l’automatisme et des différentes
situations qui en découlent, s’effectue à l’aide de symboles graphiques simples :

Étape initiale : définit la situation initiale


de l’automatisme.

Transition : l e s réceptivités associées indiquent


les conditions logiques
nécessaires au franchisse-ment
de cette transition.

Activation simultanée des étapes 3


et 7 (Divergence en ET). Les sous-ensembles
formés par les étapes 3, 4, 5, 6 et 7, 8, 9 constituent
deux séquences dites simultanées.

Aiguillage (Divergence en OU) à par-tir


de l’étape 3 vers l’étape 4 ou vers l’étape 5.

Fin d'aiguillage (convergence en OU) à partir de


l'étape 4 ou de l'étape 5 vers l'étape 6.

Étape de fin de séquence : permet la synchronisation


des séquences simultanées.

Désactivation simultanée des étapes


6 et 9 (convergence en ET).

Étape : les actions associées ne s’exécutent que


lorsque l’étape est active.

68
CDC ELCTROTECHNIQUE API

Les symboles graphiques spécifiques au langage Grafcet

69
CDC ELCTROTECHNIQUE API

70
CDC ELCTROTECHNIQUE API

Les objets spécifiques au Grafcet

L'utilisateur dispose d'objets bits associés aux étapes, de bits système spécifiques au langage
Grafcet, d'objets mots indiquant le temps d'activité des étapes et de mots système spécifiques au
langage Grafcet.

71
CDC ELCTROTECHNIQUE API

72
CDC ELCTROTECHNIQUE API

L’analyse progressive : les macro-représentations

• Cahier des charges

Un automatisme permet d’assurer le mélange


de trois produits A, B, C.
Les produits A et B sont dosés par pesage
cumulé dans une trémie peseuse B1. Le produit
C est pesé et dosé dans la trémie B2.
L’homogénéité du produit final est obtenu par
le malaxage des trois constituants dans un
mélangeur pendant un temps fixé par
l’opérateur.
A l’expiration de ce temps, le mélange final
pourra être évacué dès qu’une autorisation
extérieure sera donnée.

• Analyse fonctionnelle

Cette application se décompose en 4 séquences


principales :
- le dosage des 3 constituants,
- le remplissage du mélangeur,
- le mélange des 3 produits,
- l’évacuation du mélange final.
Le Grafcet ci-contre permet de re-présenter
l’enchaînement global
des séquences (représentation macroscopique
d’une analyse de premier niveau).
L’analyse détaillée de chaque séquence
permet d’établir des Grafcet de deuxième
niveau, voire de troisième niveau, jusqu’au
niveau le plus élémentaire permettant la
description complète de l’application.

• Les macro-représentations

Le Grafcet de premier niveau décrivant l'enchaînement des séquences permet de mieux expliciter
la structuration de la partie commande. Chaque séquence est associée à une symbolisation
particulière de l' étape : la macro-étape.
Cette notion de "macro-représentation" permet de hiérarchiser l'analyse. Chaque niveau peut être
complété, modifié sans remettre en cause les autres niveaux.
Les macro-étapes sont disponibles pour les automates TSX57.

73
CDC ELCTROTECHNIQUE API

Organisation de la section Grafcet

Description de la section Grafcet

Une section de programme écrit en


langage
Grafcet comporte trois traitements
consécutifs :
• le traitement préliminaire Prl,
• le traitement séquentiel Chart,
• le traitement postérieur Post.

Les macro-étapes sont exécutées dans


leur ordre de scrutation dans le traitement
séquentiel.
La section Grafcet se programme dans la
tâche MAST.

Leur scrutation de la section s’effectue selon l'ordre suivant :

Traitement préliminaire :

Il permet de traiter :
• les initialisations sur reprise secteur ou
défaillance,
• le prépositionnement du Graphe,
• la logique d'entrée.

Traitement séquentiel :

Il permet de traiter l’ossature séquentielle de


l’application et donne accès au traitement des
réceptivités et des actions directement associées aux
étapes.

Traitement postérieur :

Il permet de traiter :
• la logique de sortie,
• la surveillance et les sécurités indirectes spécifiques
aux sorties.

74
CDC ELCTROTECHNIQUE API

Le traitement préliminaire

Saisi en langage à contacts, en langage liste d'instructions ou en langage littéral, le traitement


préliminaire est scruté dans sa totalité du haut vers le bas.
Exécuté avant les traitements séquentiel et postérieur, il permet de traiter tous les événements
ayant une influence sur ces derniers :
• gestion des reprises secteur et réinitialisations,
• remise à zéro ou prépositionnement des graphes.
C’est donc uniquement dans le traitement préliminaire que l’on agira sur les bits associés aux
étapes (mise à 0 ou à 1 des bits étapes %Xi ou %Xi.j par les instructions Set et Reset).

Pré positionnement du Grafcet

Il peut être nécessaire de pré positionner un Grafcet lors du passage d’un fonctionne-ment
marche normale en marche spécifique ou de l’apparition d’un incident (exemple :
défaut provoquant une marche dégradée).
Cette opération intervient sur le déroulement normal du cycle de l’application, elle doit
donc être effectuée avec précaution. Le positionnement peut porter sur l’ensemble ou
sur une partie du traitement séquentiel :
• en utilisant les instructions SET, RESET,
• par remise à zéro générale (%S22) puis, dans le cycle suivant, positionnement à 1
des étapes.

Nota :
Dans le cas de la remise à zéro d'une étape, les actions à la désactivation de celle-ci ne sont pas
exécutées.

75
CDC ELCTROTECHNIQUE API

Utilisation des bits système dans le traitement préliminaire

Les bits système associés au Grafcet étant classés numériquement par ordre de priorité (%S21 à
%S24), lorsque plusieurs d’entre eux sont simultanément mis à 1 dans le traitement préliminaire,
ils sont traités un par un dans un ordre croissant (un seul est effectif par tour de scrutation). Ces
bits sont effectifs au début du traitement séquentiel.

Initialisation du Grafcet : %S21

Normalement à l’état 0, la mise à l’état 1 de %S21 provoque :


• la désactivation des étapes actives,
• l’activation des étapes initiales.

Mis à l’état 1 Remis à l’état 0


• Par mise à l’état 1 de %S0 • Par le terminal (1)
• Par le programme utilisateur • Par le système au début du traitement
• Par le terminal (1) • Par le programme utilisateur séquentiel

• Utilisation
lorsqu’il est géré par le programme utilisateur, %S21 doit être positionné à 0 ou 1
dans le traitement préliminaire.

Remise à zéro du Grafcet : %S22

Mis à l’état 1 Remis à l’état 0


• Par le programme utilisateur • Par le système à la fin du traitement
• Par le terminal (1) séquentiel

Normalement à l’état 0, la mise à l’état 1 de %S22 provoque la désactivation des étapes


actives de l’ensemble du traitement séquentiel.

• Utilisation
- ce bit doit être écrit à 1 dans le traitement préliminaire,
- la remise à 0 de %S22 est géré par le système; il est donc inutile de le remettre à 0 par
programme ou par le terminal.
Pour redémarrer le traitement séquentiel dans une situation donnée, l’utilisateur devra prévoir
selon son application une procédure d’initialisation ou de prépositionnement du Grafcet.

(1) Dans l'écran de mise au point Grafcet ou en table d'animation.

76
CDC ELCTROTECHNIQUE API

Figeage du Grafcet : %S23

Normalement à l’état 0, la mise à l’état 1 de %S23 provoque le maintien en l’état des Grafcet.
Quelle que soit la valeur des réceptivités aval aux étapes actives, les Grafcet n’évoluent pas. Le
gel est maintenu tant que le bit %S23 est à 1.

Mis à l’état 1 Remis à l’état 0

• Par le programme utilisateur • Par le programme utilisateur


• Par le terminal (1) ) • Par le terminal (1)

(1) Dans l'écran de mise au point Grafcet ou en table d'animation.

• Utilisation
- géré par le programme utilisateur, ce bit doit être positionné à 1 ou 0 dans le traitement
préliminaire,
- le bit %S23 associé aux bits %S21 et %S22 permet de réaliser un figeage du traitement
séquentiel à l’état initial ou à l’état 0. De même le Grafcet peut être pré positionné puis figé par
%S23.
Sur une nouvelle application, ou sur une perte de contexte système, le système effectue un
démarrage à froid. Le bit %S21 est mis à 1 par le système avant l'appel du traitement
préliminaire et le Grafcet est positionné sur les étapes initiales. Si l'utilisateur désire un
traitement particulier vis-à-vis de l'application en cas de démarrage à froid, il a la possibilité de
tester %S0 qui reste à 1 durant le premier cycle de la tâche maître (MAST).
Suite à une coupure secteur sans changement d'application, le système effectue une reprise à
chaud, il repart dans l'état qui précédait la coupure secteur. Si l'utilisateur désire un traitement
particulier vis-à-vis de l'application en cas de reprise à chaud, il a la possibilité de tester %S1
dans le traitement préliminaire, et appeler le programme correspondant.

77
CDC ELCTROTECHNIQUE API

Le traitement séquentiel
Ce traitement permet la programmation de l'ossature séquentielle de l'application. Le traitement
séquentiel comprend :
• le graphe principal organisé en 8 pages.
Dans le graphe principal, plusieurs Grafcet non connexes peuvent être programmés et se dérouler
simultanément.

Principe d'évolution
L'évolution du Grafcet est géré de la façon suivante :

Phase 1 :
1. Évaluation des réceptivités des transitions validées.
2. Demande de désactivation des étapes amont associées.
3. Demande d'activation des étapes aval concernées.
Phase 2 :
Évolution de la situation du Grafcet en fonction des transitions franchies :
1. Désactivation des étapes en amont des transitions franchies.
2. Activation des étapes en aval des transitions franchies.
3. Invalidation des transitions franchies.
4. Validation des transitions en aval des nouvelles étapes activées.
Le système met à jour deux tables dédiées respectivement à l'activité des étapes et
à la validité des transitions :
• la table d'activité des étapes mémorise, pour le cycle courant, les étapes actives,
les étapes à activer et les étapes à désactiver,
• la table de validité des transitions mémorise, pour le cycle courant, les transitions
situées en aval des étapes concernées par la table précédente.
Phase 3 :
Les actions associées aux étapes actives sont exécutées dans l'ordre suivant :
1. Actions à la désactivation des étapes à désactiver.
2. Actions à l'activation des étapes à activer.
3. Actions continues des étapes actives.

78
CDC ELCTROTECHNIQUE API

Le traitement postérieur

Saisi en langage à contacts, en langage liste d'instructions ou en langage littéral, le traitement


postérieur est scruté de haut en bas. Ce traitement est le dernier exécuté avant l'activation des
sorties et permet de programmer la logique de sortie.

Actions associées au Grafcet


Le traitement postérieur permet de compléter les consignes émises par le traitement séquentiel en
intégrant à l'équation d'une sortie les modes de marche et d'arrêt et les sécurités indirectes
spécifiques à l'action. Il permet également de traiter une sortie activée plusieurs fois dans le
traitement séquentiel.
D'une manière générale, il est recommandé de programmer les actions agissant
directement sur le process dans le traitement postérieur.
Exemple :
• %I2.4 : sécurité indirecte spécifique au pilotage de la sortie %Q4.1.
• %M26 : bit interne résultat de la logique d'entrée traitant des modes de marche et d'arrêt.
• %I1.0 : bouton poussoir.
La sortie %Q4.1 est activée par les étapes 5,8 et 59 du traitement séquentiel.

Actions indépendantes du Grafcet

Le traitement postérieur permet également de programmer les sorties indépendantes du


traitement séquentiel.
Contrôle de l'exécution du Grafcet
Il peut s’avérer nécessaire de contrôler le bon déroulement du Grafcet en testant le temps
d’activité de certaines étapes.
Le test de ce temps s’effectue par comparaison soit à une valeur minimum soit à une valeur
maximum déterminée par l’utilisateur. L’exploitation du défaut est laissée au choix de
l’utilisateur (signalisation, procédure particulière de fonctionnement, édition de message).

Exemple : ! IF (%X2.T > 100 AND %X2) THEN


SET %Q4.0 ;
END_IF ;

79
CDC ELCTROTECHNIQUE API

Représentation du GRAFCET
Le graphe principal se programme sur 8 pages (page 0 à 7). Chaque page Grafcet est constituée
de 14 lignes et 11 colonnes qui définissent 154 cellules. Dans chaque cellule, il est possible de
saisir un élément graphique.

Règles d'écriture

• La première ligne permet de saisir des renvois d'origine.


• La dernière ligne permet de saisir des renvois de destination.
• Les lignes paires (de 2 à 12) sont des lignes d'étapes (pour les étapes et les renvois de
destination).
• Les lignes impaires (de 3 à 13) sont des lignes de transitions (pour les transitions et les renvois
d'origine).
• Chaque étape est repérée par un numéro différent (0 à 127) dans un ordre quelconque.
• Des graphes différents peuvent être représentés sur une même page.

80
CDC ELCTROTECHNIQUE API

Aiguillage et fin d’aiguillage

• Le nombre de transitions en amont d'une fin d'aiguillage (convergence en OU) ou en


aval d'un aiguillage (divergence en OU) ne doit pas dépasser 11.
• Un aiguillage peut se tracer vers la gauche ou vers la droite.
• Un aiguillage doit généralement se terminer par une fin d'aiguillage.
• Pour éviter de franchir simultanément plusieurs transitions, les réceptivités associées
doivent être exclusives.

Activation et désactivation simultanées d'étapes

81
CDC ELCTROTECHNIQUE API

Utilisation des renvois

Les renvois assurent la continuité d'un Grafcet lorsque le tracé direct d'une liaison orientée ne
peut être fait, soit au sein d'une page, soit entre deux pages consécutives ou non. Cette continuité
est assurée grâce à un renvoi de destination auquel correspond systématiquement un renvoi
d'origine.

• Le rebouclage d'un graphe peut s'effectuer à l'aide de renvois (par exemple, rebouclage de
l'étape 18 vers l'étape 0).
• Une reprise de séquence peut s'effectuer à l'aide de renvois (par exemple, étape 10 vers étape 1
ou étape 8 vers étape 2).
• Utilisation des renvois lorsqu'une branche de graphe est plus longue que la page (par exemple,
étape 9 vers étape 10).

82
CDC ELCTROTECHNIQUE API

Renvois lors d'un aiguillage et d'une fin d'aiguillage

• Pour un aiguillage, les transitions et les


renvois de destination doivent être saisis dans
la même page.

• Pour une fin d'aiguillage, les renvois


d'origine doivent être saisis dans la même page
que l'étape de destination.

• Pour une fin d'aiguillage suivie d'un renvoi


de destination, on doit retrouver autant de
renvoi d'origine qu'il n'y a d'étapes avant la fin
d'aiguillage.

83
CDC ELCTROTECHNIQUE API

84
CDC ELCTROTECHNIQUE API

85
CDC ELCTROTECHNIQUE API

Les macro-étapes
Une macro-étape est une représentation unique d’un ensemble d’étapes et de transitions appelé
expansion de la macro-étape. Celle-ci est caractérisée par une étape d’entrée et une étape de
sortie.

Principe :

Une macro-étape est la symbolisation


graphique d’une séquence.
Elle se distingue d’une étape par deux traits
horizontaux.
L’étape d’entrée répond aux mêmes règles que
les autres étapes.
L’étape de sortie ne peut avoir d’actions
associées.

Lorsque la macro-étape est active, l’évolution


du Grafcet respecte les règles énoncées lors des
chapitres précédents.
La macro-étape M1 est activée quand l’étape 1
est active et que sa réceptivité aval est vraie.
Elle est désactivée quand son étape de sortie est
active et que la réceptivité M1>2 est vraie.
L’étape 2 est alors activée.

86
CDC ELCTROTECHNIQUE API

Caractéristiques :

87
CDC ELCTROTECHNIQUE API

Les actions associées aux étapes

A chaque étape sont associées des actions qui peuvent être programmées soit en langage à
contacts, soit en langage liste d'instructions, soit en langage littéral structuré.
Ces actions ne sont scrutées que si l’étape à laquelle elles sont associées est active.
Le logiciel PL7 autorise trois types d’action :
• les actions à l’activation : actions exécutées une fois lorsque l’étape à laquelle elles sont
associées passe de l’état inactif à l’état actif.
• les actions à la désactivation : actions exécutées une fois lorsque l’étape à laquelle elles sont
associées passe de l’état actif à l’état inactif.
• les actions continues : ces actions sont exécutées tant que l’étape à laquelle elles sont
associées est active.
Pour chaque étape, on peut utiliser ces trois types d'action.
Une même action peut comprendre plusieurs éléments de programmations (phrases ou réseaux
de contacts).

Repérage des actions


Ces actions sont repérées de la manière suivante :
MAST - <nom section Grafcet> - CHART (ou MACROk)- PAGE n %Xi x avec : x = P1 Activation
= N1 Continue
= P0 Désactivation
n = Numéro de la page
i = Numéro de l'étape
Exemple : MAST - Peinture - CHART - PAGE 0 %X1 P1
Action à l'activation de l'étape 1 de la page 0 de la section Peinture

Règles d’utilisation
• Toutes les actions sont considérées comme des actions mémorisées, d’où :
- une action asservie à la durée de l’étape Xn doit être remise à zéro à la désactivation de l’étape
Xn ou à l’activation de l’étape Xn+1,
- une action à effet maintenu sur plusieurs étapes est positionnée à un à l’activation de l’étape Xn
et remise à zéro à la désactivation de l’étape Xn+m.
• Toutes les actions peuvent être asservies à des conditions logiques, donc être conditionnelles.
• Les actions asservies à des sécurités indirectes doivent être programmées dans le traitement
postérieur (traitement exécuté à chaque scrutation voir chapitre 5.2 "Organisation de la tâche
maître").

Actions à l'activation ou à la désactivation


Ces actions sont impulsionnelles et sont exécutées sur un seul tour de scrutation. Elles
permettent l'appel à un sous-programme, l'incrémentation d'un compteur, etc...
Exemples :
• Appel à sous-programme :

88
CDC ELCTROTECHNIQUE API

• Incrémentation de mot %MW10, et remise à zéro de %MW0 et %MW25 :

Actions continues
• Action conditionnelle
Exemple :
Le bit %M10 est asservi à l'entrée %I2.5 ou au bit interne %M9 et à l'entrée %I1.2.
Tant que l'étape 2 est active et que ces conditions sont présentes, %M10 est positionné à 1. Le
dernier état lu à la désactivation est mémorisé puisque les actions associées ne sont plus scrutées.
Il est donc nécessaire de remettre à 0 le bit %M10, dans l'action à la désactivation de l'étape par
exemple.

89
CDC ELCTROTECHNIQUE API

Exercice :

Programmer et tester le programme suivant :

1. Grafcet linéaire 2. Grafcet avec choix de séquences

1
20
1
20

%I1.0
%I1.1 . %I1.0 %I1.0 . %I1.1
2 %Q2.0
2 %Q 2.0 3 %Q3.0
%I1.1
3 %Q 2.1
%I1.3 %I1.0
%I1.2

4 %Q2.2 %Q2.3 4 %Q2.1 %Q 2.2

%I0.3
%I1.2

90
CDC ELCTROTECHNIQUE API

3. Grafcet avec Choix de séquences simultanées :

%I1.1

2 %Q2.0 3 %Q2.2

%I1.2 %I1.0

4 %Q2.1 5 Q2.3
%I1.3 %I1.4
6 7

=1
8 %Q 2.4
%I.2

4.Grafcet avec reprise d’étape et temporisation :

20
1

%I1.1

2 %Q2.1

%I1.2
%TM0
3 %Q2.2 TON
%I1.3 10s

%TM0.Q

4 %Q2.2 %Q2.3

%I1.4

91
CDC ELCTROTECHNIQUE API

5. Grafcet avec compteur :

1
1

%I1.0

2 %Q2.0
I1.1
3 %Q2.1
I1.2
4 %Q2.2
I1.1
5 %Q2.1 %TM0
%I1.2 & %TM0.Q
6 %Q2.3
%C0 < 5 %1.3
7 %Q2.4 CU%C0

%C0 = 5
8 %Q2.2
%I1.5

9 %Q2.4
%I1.3

92
CDC ELCTROTECHNIQUE API

Structure d’un programme


Caractéristiques
Traitemnt préliminaire:
= su d'instruction.
Rôle
0 LD ... Début du traitement Permet de traiter les :
préliminaire - reprise secteur
... - défaillace,
Taitement préliminaire .. - changement de mode
n ... * init : par bit système %S21
* RAZ : par bit système %S22
* Prépositionnement de graphe par
bits système %S22 et %S23
* gel du graphe par le bit système %SY23,
- logique d'entrées.

n+1 =*= i
...
...
...
...
Taitement séquentiel Traitemnt postérieur:
... = suite d'instructions.
... Rôle
traitement séquentiel de l'application:
...
étape, transitions, receptivités et actions associées.
...
...
...
...
m

m+1 =*= POST


Traitemnt postérieur:
... = suite d'instructions.
... Rôle
... permet de traiter :
Taitement postérieur - ordres émanant du traitement séquentiel
... pour la commande des sorties
... - sécurité indirectes spécifiques aux sorties.
...
m

Pour le traitement séquentiel, seules les étapes à activer ou à désactiver et leurs


instructions associées sont exécutées

93
CDC ELCTROTECHNIQUE API

Programmation à partir d’un Grafcet en langage LIST ou à CONTACTS

Chaque étape porte le numéro d’un bit interne :


se servir de bit interne non rémanents dans le cas où l’on désire qu’après une coupure secteur, le
programme redémarre à son début.

se servir de bit interne rémanents dans le cas où l’on désire qu’après une coupure secteur, le
programme continue depuis l’endroit où l’on était arrivé avant la coupure secteur..
Les réceptivités sont repérées par les numéros d’entrées (%I0.0 ...), de sorties (%Q0.0 ...), de
compteurs (%C0 ...),de temporisateurs (%T0 ...), de bit internes (%M32 ...) qui sont utilisés pour
faire évoluer le Grafcet.
Les actions sont repérées par les numéros de sorties (%Q0.0 ...), de bit internes (%M32 ...) ou
par l’expression (instruction) qui commande le temporisateur ou le compteur ( IN
%TM1 par exemple)
Exemple :

Lorsque %M33 est active, la réceptivité


%M33
%I1.0 permet le passage à l'étape %M34,
ce qui désactive %M35.
%I1.0

L'action %Q2.0 est associé à l'étape %M34.


%M34 %Q2.0 La réceptivité %I1.1 permet le passage à
l'étape %M35 (%M34 active),
%I1.1
ce qui désactive %M34.

IN T1 L'activation de l'étape %M35 lance une


%M35 TON temporisationT1 (retard à la montée de
5 SEC
5 secondes)
T1
Lorsque la temporisation est écoulée,
%M36 %Q2.2
T1=1 permet le passage à l'étape %M36.

94
CDC ELCTROTECHNIQUE API

Établissement du Programme
Pour en illustrer le mécanisme nous nous occuperons de la programmation des étapes %M34 et
%M35 de l’exemple précédent.

Sans utiliser les instructions S et R

Il est indispensable d’établir les équations relatives au grafcet.


En ce qui concerne l’exemple choisi ces équations sont :

étape %M34 (%M33 . %I1.0 + %M34) . %M33 = %M34

étape %M34 (%M34 . %I1.1 + %M35) . M32.4 = %M35


Les actions associées aux étapes sont :
étape %M34 %Q2.0
étape %M35 IN T1
Il suffit alors de retranscrire intégralement les équations en langage PL707.
D’où :
étape %M34
LD(
AND %M33
AND %I1.0
OR %M34 mémorisation de %M34
)
ANDN %M33 désactivation (future) de %M33
ST %M34 activation de %M34
étape %M35
LD(
AND %M34
AND %I1.1
OR %M35 mémorisation de %M35
)
ANDN M34 désactivation (future) de M34
ST %M35 activation de %M35

95
CDC ELCTROTECHNIQUE API

actions
LD %M34
ST %Q2.0
LD %M35
IN T1

Traduction d’un Grafcet à l’aide des instructions S et R

Il n’est pas indispensable d’établir les équations du Grafcet, mais il est nécessaire d’avoir bien à
l’esprit les règles d’évolution de celui-ci.

Puisqu’il est fait usage d’une bascule bistable (S et R) il est n’est pas utile de programmer la
mémorisation de l’étape (elle est implicite dans l’instruction S).

Il faut utiliser l’instruction R pour désactiver l’étape (ou les étapes) immédiatement
précédente(s).

- la divergence en ET donne autant d’instructions S qu’il y a de branches au ET.


- La convergence en ET donne une suite d’instructions R dont le nombre équivaut au
nombre de branches qui convergent.

- La divergence en OU donne pour chaque branche une instruction S conditionnée par la


transition propre à chaque branche.
- La convergence en OU donne une suite d’instructions R dont le nombre équivaut au
nombre de branches qui convergent.

96
CDC ELCTROTECHNIQUE API

Nous vous conseillons de programmer la désactivation de l’étape (ou des étapes) qui précède(nt)
avant de programmer l’activation de l’étape (ou les étapes) en cours, de manière à ne pas oublier
cette (ou ces) désactivation(s).
D’où, pour l’exemple choisi :

étape %M34
LD %M33
AND %I0.0
R %M33 désactivation de %M33
S %M34 activation et mémorisation de %M34
étape %M35
LD %M34
AND %I0.1
R %M34 désactivation de %M34
S %M35 activation et mémorisation de %M35

actions
LD %M34
ST %Q0.0
LD %M35
IN T1

97
CDC ELCTROTECHNIQUE API

4.2.2. Exemples

4.3.1. EXEMPLE1 :clignoteur asymétrique

(* CLIGNOTEUR ASYMETRIQUE *)

(* TRAITEMENT SEQUENTIEL *)
OPERATION OPERANDE COMMENTAIRE
LDN %M0 (* ETAPE INITIALE ACTIVE *)
AND %TM0.Q (* FIN DE TEMPO TM0 *)
S %M1 (* ACTIVER ETAPE2 *)
R %M0 (* DESACTIVER ETAPE INITIALE *)

LD %M1
AND %TM1.Q (* FIN DE TEMPO TM1 *)
S %M2
R %M1

(* TRAITEMENT POSTERIEUR:ACTIONS *)
BLK %TM0 (* BLOC FONCTION TEMPORISATEUR N°0 *)
LDN %M0 (* ETAPE1 *)
IN (* ACTIVER TEMPO TM0 *)
END_BLK (* BLOC FONCTION TEMPORISATEUR N°1 *)
%Q0.5 (* ETAPE2 *)
BLK (* SORTIE (* ACTIVER TEMPO TM1 *)
LD ALARME (* FIN DU BLOC TEMPORISATEUR N°1 *)
END_BLK (BUZZER) *)
LD %X2 (* ETAPE2 *)
(* ETAPE2 *) END (* SORTIE ALARME (BUZZER) *)
ST %Q0.5 (* FIN DU
(* SORTIE PROGRAMME (* FIN DU PROGRAMME *)
ALARME *)
(BUZZER) *)

END

98
CDC ELCTROTECHNIQUE API

EXEMPLE2 :Traduction d’un Grafcet par les instructions S et R

LE PROGRAMME EFFECTUE LE CYCLE SUIVANT:


ON ACTIVANT LE BP USER : LE CHARIOT SE DEPLACE VERS LA DROITE JUSQU'A
FDC HLIM, UNE TEMPORISATION DE 2 SEC PUIS RETOUR EN GRANDE VITESSE A
LA POSITION DE DEPART *)

%M1

%I0.4 . %I0.7

%M2 %Q0.0 ;%Q0.4

%I0.4

%M3 %TM0 ;

%TM0.Q

%M4 %Q0.4 ;

%I0.4

99
CDC ELCTROTECHNIQUE API

(* TRAITEMENT SEQUENTIEL *)
LDN %M1 (* ETAPE INITIALE TOUJOURS ACTIVE*)
AND %I0.4 (* HLIM *)
AND %I0.7 (* USER *)
S %M2 (* ACTIVER ETAPE2 *)
S %M1 (* DESACTIVER ETAPE1 *)
LD %M2
AN %I0.4
S %M3 (* ACTIVER ETAPE3 *)
R %M2 (* DESACTIVER ETAPE2 *)
LD %M3
AND %TM0.Q (* FIN DE TEMPO *)
S %M4 (* ETAPE4 *)
R %M3
LD %M4
ANDR%I0.4 (* FRONT MONTANT DE HLIM *)
R %M4
R %M1
(* TRAITEMENT POSTERIEUR *)
LD %M2 (* ETAPE2 *)
ST %Q0.4(* DEPLACEMENT VERS LA DROITE *)
ST %Q0.0(* SORTIE GRANDE VITESSE *)
LD %M4 (* ETAPE4 *)
ST %Q0.3(* DEPLACEMENT VERS LA GAUCHE *)
BLK %TM0
LD %M3
IN (* ACTIVATION DU TEMPORISTEUR *)
END_BLK

END (* FIN DU PROGRAMME *)

100
CDC ELCTROTECHNIQUE API

Exercices Ladder
Exercice 1
%I1.0 %Q2.0
S

%I1.1 %Q2.0
R

%I1.2 %Q2.0
S

Remplacez ensuite les actions SET, RESET par des bobines directes.

exercice 2 :le télérupteur en utilisant une entrée à front montant.


%I1.8 %M1
P

%M1 %Q2.5 %Q2.5

%M1 %Q2.5

101
CDC ELCTROTECHNIQUE API

Exercice 3 : utilisation du saut de programme.


%I1.0 %Q2.0

%I1.2 %L1 Si I1.2 =1

%I1.3 %Q2.3

(validé l’écran après avoir placé l’action %Q2.3)

%L1 (nouvel écran numéroté : %L1)

%I1.1 %Q2.1

E x e r c ic e 4 : u tilis a tio n d ’u n s o u s -p r o g r a m m e
(s o u s r o u tin e )
SE C T IO N
% I 1 .0 % Q 2 .0

% I 1 .1 SR0 S i I 0 .1 = 1
C

% I 1 .2 % Q 2 .2

SR0 SO U S R O U T IN E

% I 1 .3 Q 2 .3

102
CDC ELCTROTECHNIQUE API

Exercice 5 : utilisation de plusieurs sous-programmes en


cascade
%I1.0 %Q2.0

%I1.1 SR0
C

%I1.2 %Q2.2

SR0

%I1.3 %Q2.3

%I1.4 SR1
C

SR1

%I1.5 %Q2.4

103
CDC ELCTROTECHNIQUE API

EXERCICE 6 : Temporisation à l’enclenchement


%TM0 %Q2.6
%I1.9
TON
TB : 1s
présélc=10

On peut modifier également par programme la valeur de TM0.P et ceci de plusieurs façons.

En incrémentant la valeur de présélection :

%I1.10
P %TM0.P:=%TM0.P+10

En modifiant la valeur de présélection

%I1.11
%TM0.P:=100

104
CDC ELCTROTECHNIQUE API

Exercice 8 Utilisation d’un compteur


R %C0
E

S
D
%I1.0
CU

%I1.1
CD F

%Q2.0
%C0.V=0

%S6 %Q2.1
%C0.V>=8 %C0.V<10

%Q2.2
%C0.V=10

Exercice 11 : signalisation d’un carrefour. Utilisation d’un DRUM


Voie principale : signal est : vert pendant 40s minimum.(bit 0, %Q2.0).

rouge :(bit 2, %Q 2.2). (2 secondes).

Voie secondaire: signal est : vert : pendant 30s ou 10 voitures. (bit 3, %Q2.3).
orange : pendant 4s.(bit 4, %Q2.4).
rouge : (bit 5 : %Q2.5). (2 secondes).

Les deux voies restent rouges simultanément pendant 2 secondes.

105
CDC ELCTROTECHNIQUE API

%M0
%DR0.S=0 %DR0.V>=40 %I1.2

%DR0.S=1 %DR0.V>=4

%DR0.S=2 %DR0.V>=2
La base de temps du
%DR0.S=3 %DR0.V>=30 DR0.V est de 1s
%MW0>=10

%DR0.S=4 %DR0.V>=4

%DR0.S=5 %DR0.V>=2

%I1.2
%MW0:=%MW0+1
P

%DR0.S<>3 %MW0:=0

%DR0
Pour définir le bloc :
‘APPLICATION’→‘VARIABLES’→‘FB
TB:1s
DEFINIS’→DR→TB = 1s→PAS choix des 16
%M0 pas et bits correspondants
U
LEN : 6

106
CDC ELCTROTECHNIQUE API

Exercice13 : travail sur tableaux

Plusieurs instructions permettent le travail sur tableaux


•instructions arithmétiques (+, -, *, /) sur des mots d ’un tableau,
•instructions logiques (AND, OR,…) sur des mots d ’un tableau (bit à bit),
•instructions de sommation SUM (mots simples), SUM_ARR (flottants),
•instruction de comparaison de tableaux élément par élément
EQUAL donne le rang des premiers mots différents
•instruction de recherche sur tableaux
•instruction de recherche des valeurs maxi et mini : MAX_ARW, MIN_ARW, MAX_ARD,
MIN_ARD, MAX_ARR, MIN_ARR
•instruction de recherche du nombre de mots ayant une même valeur
•Instruction de décalage ROL,ROR
•instruction de tri SORT_ARW (sens, tableau) sens :-1 décroissant, 0 croissant
Priorité d’exécution des instructions :
Dans l’expression numérique, la priorité des différentes instructions est respectée.
L’exécution s’effectue dans l’ordre suivant :

1 : instruction à une opérande,


2 : * , / , REM
3 : + et -
4 : AND
5 : XOR
6 : OR262
SQRT (%MW3) + %MW5 * 7 AND %MW8 XOR %MW6 OR %MW10
1 2
3
4
5
6

les parenthèses permettent de modifier l’ordre d’évolution des priorités :


((%MW5 AND %MW6) + %MW7) * %MW8
1
2
3

107
CDC ELCTROTECHNIQUE API

Exercice14 : racine carrée d ’un nombre

Dans cet exercice :


• on met %MW19 et %MW18 à 0 à l ’enclenchement de %I1.0 .
•On donne une valeur maximale à %MW18 (10 dans notre cas),
•on fait varier %Mw18 de 1 à 10 et chaque fois, on fait l ’opération reprise à la page suivante.
•On recherche la racine carrée du résultat (Attention pour cela, il faut rendre %MW19 flottant
d ’où l ’instruction INT_TO_REAL)

108
CDC ELCTROTECHNIQUE API

Exercice15 : Horodateur
opérateur SCHEDULE (DBEG, DEND, WEEK, HBEG, HEND, OUT)
DBEG : début de la période en BCD(mois-jour) ex:16#0615 (15juin)
DEND : date de fin de la période en BCD (mois, jour) 16#1231
WEEK : les 7 bits de poids faibles représentent 6: lundi,….0: dimanche
exemple : 2#0000000001111110(lundi au samedi)
HBEG : heure de début (heures-minutes-sec-00) en BCD
exemple : 16#09105100
HEND : heure de fin. exemple : 16#10300000
OUT : sortie à activer. exemple : %Q2.0

109
CDC ELCTROTECHNIQUE API

Autre possibilité :
%SW49 : jours de la semaine lundi : 1 à dimanche :7.
%SW50 : en BCD secondes en poids fort
%SW51 : en BCD heures et minutes
%SW52 : en BCD mois et jour
%SW53 : en BCD année

Dans l ’exercice qui suit :


•on fait un décalage à droite de 8 bits de %SW50 pour avoir les secondes en
poids faibles,
•on fait une opération logique (%SW51 AND 00FF) pour avoir les minutes en
poids faibles,
•Et ainsi de suite
•On enclenche %Q2.0 entre la 11sec et la 49sec
•%Q2.1 sera à 1 du lundi au vendredi de 8h10 à 9h30
•%Q2.2 sera à 1 tous les jours de 23h01 à 02h

110
CDC ELCTROTECHNIQUE API

111