Vous êtes sur la page 1sur 24

UNIVERSITÉ DE DOUALA

INSTITUT UNIVERSITAIRE DE TECHNOLOGIE


DÉPARTEMENT GÉNIE INDUSTRIEL ET MAINTENANCE

AUTOMATISME ET INFORMATIQUE
INDUSTRIELLE
SUPPORT DE COURS

Par Pr Timothée KOMBE


Maître de Conférences

1
CHAPITRE 1 : LE LOGICIEL PL7

1.1 PRÉSENTATION DU LOGICIEL PL 7

1.1.1 Présentation

Le logiciel PL7 est un logiciel de programmation des automates de la série 7


Télémécanique. Dans l’ordre chronologique, le logiciel PL7-2 permet de programmer les
automates TSX17, le logiciel PL7 Micro permet de programmer les automates TSX 37, le
logiciel PL7 Junior est le logiciel de programmation des automates TSX 37 et TSX/PMX/PCX
57, le logiciel PL7 Pro permet quant à lui de programmer les automates TSX 37,
TSX/PMX/PCX 57 jusqu’à la 4 ème génération. Le logiciel Unity Pro permet la programmation
des automates QUANTUM, le tout fonctionnant sous Windows.
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.
Le logiciel PL7 (1) propose :
• Un langage graphique, le Langage à Contacts encore appelé Ladder (LD). C’est la
transcription de schémas à relais. Il est adapté aux traitements combinatoires. 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.

• Un langage booléen, le langage Liste d'Instructions (IL), qui est un langage "machine"
permettant l'écriture de traitements logiques et numériques.

2
• Un langage Littéral Structuré (ST), qui est un langage de type "informatique" permettant
l'écriture structurée de traitements logiques et numériques.

• 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/Décompteur, Monostable, Programmateur cyclique, …), 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.

1.1.2 Structure monotâ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 (MAST)
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 unes
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.

3
1.1.3 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 maître Tâche rapide Tâches


événementielle
s

- Priorité +

Tâche rapide (FAST)


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

1.1.4 Programmation structurée et modulaire

Les tâches d'un programme PL7 se composent de plusieurs parties appelées sections
et de sous-programmes (SR). 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.

4
MAST FAST
Sas (LD) Alarm_Sas (LD) EVT0

Four_1 (Grafcet) Surv_Sec (LD)

Alarm_Four (ST)
PRL (LD)

CHART Alarm_Nettoyage (ST) SR0

POST (LD)

Séchage (LD) SR0

Nettoyage (ST)

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.

1.1.5 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 plusieurs
modules de code) et d'un répertoire table d'animation.

5
Un module fonctionnel
comporte du programme
et des tables 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.

Le module Prod1 possède un sous module Mdm1

Seul le produit PL7 Pro permet la mise en œuvre des modules fonctionnels sur les
automates TSX/PMX/PCX57.

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

6
1.1.7 Instructions de PL7
Les langages PL7 exploitent tous le même jeu d'instructions. Par souci de simplicité
celles-ci ont été classées en 2 jeux : les instructions de base et les instructions avancées.
Instructions de base

Elles comprennent les instructions booléennes de base, les blocs fonctions prédéfinis,
et les instructions arithmétiques et logiques sur entier.
Instructions avancées
Elles comprennent des instructions répondant à des besoins de programmation
avancée. Ces instructions sont de 2 types :
• langage PL7, elles augmentent les possibilités de traitements du langage par des fonctions
spécifiques (manipulation de chaînes de caractères, gestion du temps, ...) ;
• métiers, elles offrent des fonctions spécifiques au métier à traiter, exemple de fonctions pour
le métier communication :
✓ PRINT, pour envoyer un message type chaîne de caractères à un
terminal ou une imprimante ;
✓ SEND, pour envoyer un message à une application ;
✓ PID, fonction PID de régulation.

1.1.8 Blocs fonction utilisateur
Le logiciel PL7 Pro permet de créer des blocs fonction utilisateur DFB pour automate
Premium. Ces blocs fonction DFB se conçoivent en langage littéral structuré. Ils peuvent être
ensuite utilisés dans une section où un sous-programme, quel que soit le langage employé
(ils peuvent aussi être utilisés avec le logiciel PL7 Junior).

Un bloc fonction DFB se compose principalement :


• d'un nom ;
• de paramètres d'entrées et de sorties ;
• de variables publiques et privées ;
• du code en langage littéral structuré.
Un bloc fonction DFB peut avoir un maximum de 15 entrées et/ou entrées/sorties et
15 sorties et/ou entrées/sorties.
Une fois créé, chaque bloc fonction DFB peut être utilisé plusieurs fois dans une
application. Le concepteur programme le bloc fonction DFB modèle (appelé : Type DFB) et
pour chaque utilisation, l'utilisateur définit un nom d'instance par l'éditeur de variables ou à
l'aide de l'écran d'aide à la saisie du langage choisi.

7
Nom Type DFB

Entrées Sorties

Entrées/
sorties

Variables publiques
Variables privées
Code en littéral

1.2 OBJETS ADRESSABLES

1.2.1 Définition des principaux objets booléens


Bits d’entrées/sorties
Les bits entrées/sorties %IXi et %QXi 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. Le rôle et l’utilisation de ces bits sont
développés dans le chapitre 3.1.

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.

1.2.2 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 :

8
% I ou Q X, W ou D x . i

Symbole Type d’objet Format Position N° de la voie


I = Entrée X = Booléen x = Numéro de i = 0 à 127
Q = Sortie W = Mot la position du
D = Double mot module dans le
bac
• Type d'objet
I et Q : pour les entrées et les sorties physiques du module. Ces informations sont
échangées de manière implicite à chaque cycle de la tâche à laquelle elles sont attachées.
Remarque : d'autres types d'informations (mots d'état, de commande...) peuvent être aussi
échangés à la demande de l’application.

• Format (Taille)
Pour les objets de format booléen, le X peut être omis. Les autres types de format
octet, mot, double mot ne doivent pas ê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.
TSX37-10 TSX37-21/22

Base Extension Base Extensio


n
Les modules au format standard sont adressés comme 2 modules au 1/2 format
superposés.
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.
%I1.5 %I3.8 %I5.MOD.ERR
%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 TSX 37-10
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é Base Extension
en position n° 8. %Q4.5 %IW8.0

9
1.2.3 Adressage des objets de modules d'entrées/sorties du TSX/PMX/TCX 57
L'adressage des principaux objets bits et mots de modules d'entrées/sorties est défini
de la manière suivante :

% I ou Q X, W ou D x y . i

Symbole Type d’objet Format Adress Position N° de la voie


I = Entrée X = Booléen e Rack Module i = 0 à 127
Q = Sortie W = Mot x = 0 à 7 y = 00 à 10
D = Double mot

• Type d'objet
I et Q : pour les entrées et les sorties physiques du module, ces informations sont
échangées de manière implicite à chaque cycle de la tâche à laquelle elles sont attachées.
Remarque : d'autres types d'informations (mots d'état, de commande...) peuvent être aussi
échangés à la demande de l'application.
• Format (Taille)
Pour les objets de format booléen, le X peut être omis. Les autres types de format
octet, mot, double mot ne doivent pas être omis.
• Adressage des voies
L'adressage des voies dépend de l'adresse du rack, de la position physique du module
dans le rack et du numéro de la voie.

Notes :
• Le rack supportant le processeur à toujours l'adresse 0.
• 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 :
- %I104.MOD.ERR : information de défaut du module en position 4 dans le rack d'adresse
1.
- %I104.3.ERR : information de défaut de la voie 3 du module en position 4 dans le rack
d'adresse 1.

10
Note : Pour un adressage à travers le réseau ou d'entrées/sorties déportées, le chemin
complet d'accès à la station est rajouté à l'adressage de la voie.
Exemples :
• %I102.5 : Voie d'entrée n° 5 du module situé en position n° 2 dans le rack d'adresse 1.
• %Q307.2 : Voie de sortie n° 2 du module situé en position n° 7 dans le rack d'adresse 3.
• %I102.MOD.ERR : Information de défaut du module situé en position n° 2 dans le rack
d'adresse 1.
Cas des racks d’extension

• Fonctionnalités
Les racks d’extension permettent de configurer un plus grand nombre de modules via
un plus grand nombre de racks. Cette fonctionnalité n’est disponible qu’avec des
processeurs de niveau supérieur ou égal à V3.3.
Ces racks d’extension ont les mêmes fonctionnalités pour la configuration de leurs
modules ou de leurs alimentations que les autres racks.
Ces racks d’extension apparaissent à la suite du rack de base, si ce dernier est
extensible et s’il comporte 8 emplacements ou moins. Ils sont repérés au niveau référence
par les lettres EX.
La première adresse du premier module configurable (hors alimentation) est toujours
8.
Exemple : rack de base à 6 emplacements et rack d'extension à 6 emplacements
Module DEY 16A2 voie 6.
%I18.6 avec n° rack = 1, position = 8, voie = 6.

1.2.4 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 :

% M, K ou S B, W, D ou F i

Symbole Type d’objet Format Numér


M = Entrée B = Octet o
K = Constant W = Mot
S = Système D = Double mot
F = Flpttant
• 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.

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

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

Rang du bit

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

Format 16 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0
bits
Poids fort Poids faible

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.

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 Rang n
Format 32
bits Rang n+1
0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0
Poids fort Poids faible

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

Bits extrait de mots


Le logiciel PL7 permet d'extraire l'un des 16 bits des mots simple longueur. Le repère
du mot est alors complété par le rang du bit extrait suivant la syntaxe ci-après :

MOT :X j

Position
j = 0 à 15
Rang du bit
dans le mot
12
Exemples : %MW10:X4 = bit n° 4 du mot interne %MW10
%QW5.1:X10 = bit n° 10 du mot de sortie %QW5.1
1.2.5 Objets de blocs fonction

Les blocs fonction mettent en œuvre des objets bits et des mots spécifiques.
• Objets bits : Ils correspondent aux sorties des blocs. Ces bits sont accessibles par les
instructions booléennes de test.
• Objets mots : Ils correspondent :
- aux paramètres de configuration du bloc. Ces paramètres peuvent être accessibles (ex :
paramètre de présélection) ou pas (ex : base de temps) par programme ;
- aux valeurs courantes (ex : %Ci.V valeur de comptage en cours).

%Ci
R E

S
C.P : 9999 D
CU
MODIF : Y
CD F

Bloc compteur/décompteur

Liste des objet bits et mots de blocs fonction accessibles par programme

Blocs fonctions Mots et bits associés Adresses Accès


prédéfinis écriture
Temporisateur Mot Valeur courante %TMi.V non
%TMi (i=0 à 63) Valeur de présélection %TMi.P oui
(1)
Bit Sortie temporisateur %TMi.Q non
Compteur/ Mot Valeur courante %Ci.V non
décompteur
Valeur de présélection %Ci.P oui
%Ci (i=0 à 31) Bit
Sortie débordement (vide) %Ci.E non
Sortie présélection atteinte %Ci.D non
Sortie débordement (plein) %Ci.F non
Monostable Mot Valeur courante %MNi.V non
%MNi (i=0 à 7)
Valeur de présélection %MNi.P oui
Bit Sortie monostable en cours %MNi.R non
Registre mot Mot Accès au registre %Ri.I oui
%Ri (i= 0 à 3)
Sortie du registre %Ri.O oui
Bit Sortie registre plein %Ri.F non
Sortie registre vide %Ri.E non
Mot Numéro de pas en cours %DRi.S oui
Programmateur
Etats du pas j %DRi.Wj non
cyclique %DRi
(i=0 à 7) Temps d'activité du pas %DRi.V non
Bit Dernier pas défini en cours %DRi.F non
Temporisateur Mot Valeur courante %Ti.V non
série 7
Valeur de présélection %Ti.P oui
%Ti (i=0 à 63) (1)
Bit Sortie en cours %Ti.R non
Sortie temporisateur écoulé %Ti.D non

(1) Le nombre total de temporisateurs %TMi et %Ti est limité à 64 pour un TSX 37 et à 255
pour un TSX/PMX/PCX 57.

13
1.2.6 Objets structurés

Tableaux de bits

Les tableaux de bits sont des suites d'objets bits adjacents de même type et de
longueur définie L.
Exemple de tableaux de bits : %M10:6

%M1 %M1 %M1 %M1 %M1 %M1


0 1 2 3 4 5

Tableaux de mots
Les tableaux de mots sont des suites de mots adjacents de même type et de longueur
définie L.
Exemple de tableaux de mots : %KW10:5

%KW10 16 bits

%KW14

Chaînes de caractères

Les chaînes de caractères sont des suites d'octets adjacents de même type et de
longueur définie L.
Exemple de chaîne de caractères : %MB10:5

%MB10 8 bits

%MB14

Objets indexés
• Adressage direct
L’adressage des objets est dit direct, quand l’adresse de ces objets est fixe et définie
à l’écriture du programme.
Exemple : %MW26 (mot interne d'adresse 26)
• Adressage indexé
En adressage indexé, l’adresse directe de l’objet est complétée d’un index : à l’adresse
de l’objet est ajouté le contenu de l’index. L’index est défini soit par un mot interne %MWi, soit
par un mot constant %KWi, soit par une valeur immédiate. Le nombre de "mots index" n’est
pas limité.
Exemple : %MW108[%MW2] : mot d’adresse direct 108 + contenu du mot %MW2. Si le mot
%MW2 a pour contenu la valeur 12, écrire %MW108[%MW2] équivaut donc à
écrire %MW120.

14
1.2.7 Objets Grafcet
Objets bits
L'utilisateur dispose d'objets bits :
• %Xi associés aux étapes qui lui permettent de connaître l'état de l'étape i du graphe principal
(Chart).
• %XMj associés aux macro-étapes qui lui permettent de connaître l'état de la macro-étape j
du Grafcet.
• %Xj.i associés à l'étape i de la macro-étape j qui lui permettent de connaître l'état de l'étape
i de la macro-étape j du Grafcet.
• %Xj.IN ou %Xj.OUT associés à l'étape d'entrée ou de sortie de la macro-étape. Ces bits
sont à 1 lorsque l'étape ou la macro-étape est active, à 0 lorsqu'elle est inactive.
Objets mots
Un mot est associé à chaque étape : %Xi.T,%Xj.i.T,%Xj.IN.T ou %Xj.OUT.T. Il permet
de connaître le temps d'activité de l'étape i du Grafcet. Il est incrémenté toutes les 100 ms et
prend une valeur entre 0 et 9999.

1.3 MODES DE MARCHE


1.3.1 Traitement sur coupure et reprise secteur
Lors d'une coupure secteur le système mémorise le contexte application et l'heure de
la coupure puis positionne toutes les sorties à l'état repli (état défini par configuration). A la
reprise secteur, le contexte sauvegardé est comparé à celui en cours ; ce qui définit le type
de démarrage à exécuter :
• si le contexte application a changé (perte du contexte système ou nouvelle application),
l'automate effectue l'initialisation de l'application: un démarrage à froid ;
• si le contexte application est identique, l'automate effectue une reprise sans initialisation
des données : reprise à chaud.
Si la durée de la coupure est inférieure au temps de filtrage de l'alimentation (environ
10 ms pour les alimentations alternatives ou à 1 ms pour les alimentations continues), celle-ci
n'est pas vue par le programme qui s'exécute normalement.

RUN
Application

Défaut secteur

Attente secteur

Retour secteur

Coupure Oui Sauvegarde Non


détectée contexte OK

Non Oui
Carte mémoire Non
identique

Oui

Exécution normale Reprise Démarrage


du programme à chaud à froid

15
Note :
Un démarrage à froid peut être provoqué :
• lors d'une reprise secteur avec perte du contexte (exemple pile de sauvegarde dans le
processeur hors service) ;
• lors de la première exécution d'une application ;
• par appui sur le bouton de RESET du processeur ;
• par mise à 1 par programme du bit système %S0 ;
• Initialisation depuis PL7 par terminal ;
• lorsque la carte mémoire PCMCIA est insérée dans son emplacement ou lors de la
manipulation du préhenseur (excepté pour automate PCX 57, où l'insertion de carte
mémoire PCMCIA sous tension est interdite).
Une reprise à chaud peut être provoquée :
• lors d'une reprise secteur sans perte du contexte ;
• par mise à 1 par programme du bit système %S1 ;
• depuis PL7 par terminal.

1.3.2 Traitement sur reprise à chaud

Acquisition Arrêt du processeur


des entrées Sauvegarde du
contexte application

Exécution du programme
TOP
Retour secteur

Si %S1 = 1,
traitement éventuel
de la reprise à chaud
Auto-tests
de la configuration
Oui
Coupure secteur
> micro-coupure
Mise à 1
Non du bit %S1
BOT

Mise à 0 du bit
%S1

Mise à jour
des sorties

Reprise de l’exécution du programme


L’exécution du programme reprend à partir de l’élément où a eu lieu la coupure secteur,
sans mise à jour des sorties. Le système effectue ensuite un cycle de reprise dans lequel il
reprend en compte l'ensemble des modules d'entrées, relance la tâche maître avec le bit %S1
positionné à 1 pendant un cycle de la tâche et met à jour les sorties. Le système désactive les
tâches rapide et événementielles jusqu'à la fin du premier cycle de la tâche maître.
Traitement de la reprise à chaud
En cas de reprise à chaud, l'utilisateur qui désire un traitement particulier vis-à-vis de
l'application, doit écrire le programme correspondant sur test de %S1 à 1 en début de
programme de la tâche maître.
Evolution des sorties
• dès la détection de la coupure secteur, les sorties sont mises en position de repli : soit valeur
de repli, soit maintien de la valeur en cours, suivant le choix effectué en configuration.

16
• à la reprise secteur, les sorties sont à zéro jusqu'à ce qu'elles soient remises à jour par la
tâche.

1.3.3 Traitement sur démarrage à froid

Acquisition Arrêt du processeur


des entrées Sauvegarde du
contexte application

Exécution du programme
TOP
Retour secteur
SiSi %S0
%S1 ==1,1
traitement éventuel
traitement éventuel
dudedémarrage
la reprise à chaud
à froid
Auto-tests
de la configuration
Oui
Coupure secteur
> micro-coupure
Initialisation de
Non l'application
BOT

Mise
Miseàà 0 du
dubit
bit Mise à 1 du bit
%S1
%S0 %S0

Mise à jour
des sorties

Initialisation des données et du système ce qui correspond à :


• remise à zéro des bits, de l'image des E/S, et des mots internes (si l'option RAZ des %MW
sur reprise à froid est cochée dans l'écran Configuration du processeur). Si l'option RAZ des
%MW n'est pas active et si des %MWi sont sauvegardés dans la mémoire interne Flash
EPROM (TSX 37), ceux-ci sont restitués lors d'un démarrage à froid ;
• initialisation des bits et mots système ;
• initialisation des blocs fonction à partir des données de configuration ;
• les tâches, autres que la tâche maître, sont désactivées jusqu'à la fin du premier cycle de la
tâche maître ;
• positionnement du Grafcet sur les étapes initiales.

Traitement du démarrage à froid


Pour effectuer un traitement applicatif après un démarrage à froid de l'automate, il y a
possibilité de tester par programme le bit %SW10:X0 (si %SW10:X0=0, il y a eu reprise à
froid) . Sur démarrage à froid, l’automate repart ou non en exécution, suivant le choix de
l’utilisateur défini en configuration (paramètre RUN AUTO).
Evolution des sorties
• dès la détection de la coupure secteur, les sorties sont mises en position de repli: soit valeur
de repli, soit maintien de la valeur en cours, suivant le choix effectué en configuration,
• à la reprise secteur, les sorties sont à zéro jusqu'à ce qu'elles soient mises à jour par la
tâche.
1.4 STRUCTURE LOGICIELLE MONOTACHE

1.4.1 Présentation de la tâche maître

Le programme d'une application monotâche est associé à une seule tâche utilisateur :
la tâche maître MAST.

17
Le programme associé à la tâche maître est structuré en un traitement principal
constitué de plusieurs sections, et de sous programmes.

MAST

Sas (LD)

Four_1 (Grafcet)

PRL (LD)

CHART

POST (LD)

Séchage (LD) SR0

Nettoyage (ST)

• traitement principal (MAIN) découpé en sections. Chaque section se programme comme


des entités séparées dans le langage approprié (LD, IL, ST ou Grafcet).
• sous-programme SRi (i=0 à 253). Les modules sous-programme se programment aussi
comme des entités séparées en LD, IL ou ST, les appels aux sous-programmes s'effectuant
dans les sections du traitement principal ou depuis d'autres sous-programmes (8
imbrications maximum).
L'exécution de la tâche maître peut être choisie (en configuration) cyclique ou
périodique.

1.4.2 Exécution cyclique


Ce type de fonctionnement correspond à l'exécution normale du cycle automate (choix
par défaut). Il consiste à enchaîner les uns après les autres, les cycles de la tâche maître
(MAST). Après avoir effectué la mise à jour des sorties, le système réalise les traitements qui
lui sont propres puis enchaîne un autre cycle de la tâche.

Traitement du Traitement du
programme programme

%I %Q %I %Q
(1) (1)
T.I. T.I.

Cycle n Cycle n + 1

T.I. Traitement interne : le système réalise implicitement la surveillance de l'automate


(gestion des bits et mots système, mise à jour des valeurs courantes de l'horodateur, mise
à jour des voyants d'état, détection des passages RUN/STOP, ...) et le traitement des
requêtes en provenance du terminal (modifications et animation).
%I Acquisition des entrées : écriture en mémoire de l'état des informations présentes sur les
entrées des modules TOR et métier associés à la tâche.
Traitement du programme : exécution du programme application, écrit par l'utilisateur.
%Q Mise à jour des sorties : écriture des bits ou des mots de sorties associés aux modules
TOR et métier associés à la tâche selon l'état défini par le programme application.

18
Cycle de fonctionnement et contrôle du cycle

Traitement interne (1)

Acquisition des entrées

RUN STOP

Traitement du programme

Mise à jour des sorties

(1) Dans le cas du TSX/PMX/PCX 57, le traitement interne est réalisé en parallèle avec les traitements
des entrées et des sorties.

Automate en RUN : le processeur effectue dans l'ordre le traitement interne, l'acquisition des
entrées, le traitement du programme application et la mise à jour des sorties.
Automate en STOP : le processeur effectue :
• le traitement interne ;
• l'acquisition des entrées ;
• et suivant la configuration choisie :- mode repli : les sorties sont mis en
position de "repli" ;
- mode maintien : les sorties sont maintenues à leur dernière valeur.
Contrôle du cycle : le contrôle du cycle s'effectue par le chien de garde logiciel %S11.

1.4.3 Exécution périodique


Dans ce mode de fonctionnement, l'acquisition des entrées, le traitement du
programme application et la mise à jour des sorties s'effectuent de façon périodique selon un
temps défini en configuration (de 1 à 255 ms).
En début de cycle automate, un temporisateur dont la valeur courante est initialisée à
la période définie en configuration, commence à décompter. Le cycle automate doit se
terminer avant l'expiration de ce temporisateur qui relance un nouveau cycle.

Traitement du Traitement du
programme programme

(1) % % (1) (1) % % (1)


T.I I Q T.I T.I I Q T.I

Période Période

(1) Dans le cas du TSX/PMX/PCX 57, le traitement interne est réalisé en parallèle avec les traitements
des entrées et des sorties.

19
T.I. Traitement interne : le système réalise implicitement la surveillance de l'automate
(gestion des bits et mots système, mise à jour des valeurs courantes de l'horodateur, mise à
jour des voyants d'état, détection des passages RUN/STOP, ...) et le traitement des requêtes
en provenance du terminal (modifications et animation).
%I Acquisition des entrées : écriture en mémoire de l'état des informations présentes sur
les entrées des modules TOR et métier associés à la tâche.
Traitement du programme : exécution du programme application, écrit par l'utilisateur.
%Q Mise à jour des sorties : écriture des bits et des mots de sorties associés aux modules
TOR et métier associés à la tâche selon l'état défini par le programme application.

Cycle de fonctionnement et contrôle de cycle

Automate en RUN : le processeur effectue dans l'ordre le


traitement interne, l'acquisition des entrées, le traitement du
Lancement de programme application et la mise à jour des sorties.
la période
Si la période n'est pas encore terminée, le processeur
complète son cycle de fonctionnement jusqu'à la fin de la
Traitement interne (1) période par du traitement interne.
Si le temps de fonctionnement devient supérieur à celui
affecté à la période, l'automate signale un débordement de
Acquisition des entrées période par la mise à l'état 1 du bit système %S19 de la
tâche, le traitement se poursuit et est exécuté dans sa
RUN STOP totalité (il ne doit pas dépasser néanmoins le temps limite
Traitement du programme
du chien de garde). Le cycle suivant est enchaîné après
l'écriture implicite des sorties du cycle en cours.
Automate en STOP : le processeur effectue :
Mise à jour des sorties
• le traitement interne ;
• l'acquisition des entrées ;
• et suivant la configuration choisie :
- mode repli : les sorties sont mises en position de "repli" ;
Traitement interne (1)
- mode maintien : les sorties sont maintenues à leur
dernière valeur.
Contrôle du cycle :
Fin de période
2 contrôles sont effectués :
• débordement de période ;
• par chien de garde.

(1) Dans le cas du TSX/PMX/PCX 57, le traitement interne est réalisé en parallèle avec les traitements
des entrées et des sorties.
1.4.4 Contrôle du temps de cycle
Chien de garde logiciel (fonctionnement périodique ou cyclique)
La durée d'exécution de la tâche maître, en fonctionnement cyclique ou périodique, est
contrôlée par l'automate (chien de garde) et ne doit pas dépasser la valeur définie en
configuration Tmax (250 ms par défaut, 500 ms maximum).
Dans le cas de débordement, l'application est déclarée en défaut, ce qui provoque
l'arrêt immédiat de l'automate (sur le TSX 37, la mise à 0 de la sortie alarme %Q2.0 si elle a
été configurée, sur le TSX/PMX/PCX 57, la mise à 0 du relais alarme sur l'alimentation).

Le bit %S11 permet de contrôler l'exécution de cette tâche. Il signale un débordement


du chien de garde. Il est positionné à 1 par le système, lorsque le temps de cycle devient

20
supérieur au chien de garde. Sur le TSXPMX/PCX 57, la valeur du chien de garde doit être
supérieure à la période.
En fonctionnement périodique, un contrôle supplémentaire permet de détecter un
dépassement de période :
• %S19 : signale un débordement de période, il est positionné à 1 par le système,
lorsque le temps de cycle devient supérieur à la période de la tâche ;
• %SW0 : ce mot contient la valeur de la période (en ms), il est initialisé sur reprise à
froid par la valeur définie en configuration, il peut être modifié par l'utilisateur.
Exploitation des temps d'exécution de la tâche maître
Les mots système suivants permettent d'avoir des informations sur le temps de cycle :
• %SW30 contient le temps d'exécution du dernier cycle ;
• %SW31 contient le temps d'exécution du cycle le plus long ;
• %SW32 contient le temps d'exécution du cycle le plus court.

1.5 STRUCTURE LOGICIELLE MULTITACHE


1.5.1 Description
La structure en tâches d'une telle application est la suivante :
• la tâche maître MAST, toujours présente qui peut être cyclique ou périodique ;
• la tâche rapide FAST, optionnelle qui est toujours périodique ;
• les traitements sur événements EVTi, appelés par le système lors de l'apparition d'un
événement sur un coupleur d'entrées/sorties. Ces traitements sont optionnels et servent aux
applications nécessitant des temps de réponse courts pour agir sur les entrées/sorties.

Tâche maître Tâche rapide Tâches


événementielle
s

- Priorité +

Seule la tâche maître peut comporter une section Grafcet.


Les tâches événementielles ne comportent qu'une seule section dont le nom n'est pas
modifiable.
Gestion des tâches :
La tâche maître est par défaut active, la tâche rapide est par défaut active si elle est
programmée. La tâche événementielle est activée lors d'apparition de l'événement qui lui a
été associé.
Lors de l'arrivée d'un événement ou début de cycle de la tâche rapide, celle-ci arrête
l'exécution en cours des tâches moins prioritaires, afin d'exécuter son traitement ; la tâche
interrompue reprenant la main lorsque les traitements de la tâche prioritaire se terminent.
L'exécution des tâches rapides et événementielles peut être contrôlée par programme
à travers l'utilisation des bits système :
• %S30 permet d'activer ou pas la tâche maître MAST ;
• %S31 permet d'activer ou pas la tâche rapide FAST ;
• %S38 permet d'activer ou pas les tâches événementielles EVTi.

21
MAST FAST
Sas (LD) Alarm_Sas (LD) EVT0

Four_1 (Grafcet) Surv_Sec (LD)

Alarm_Four (ST)
PRL (LD)

CHART Alarm_Nettoyage (ST) SR0

POST (LD)

Séchage (LD) SR0

Nettoyage (ST)

1.5.2 Tâche maître


Cette tâche qui est la moins prioritaire gère la majeure partie du programme
application. La tâche MAST est organisée selon le modèle décrit au sous-chapitre précédent
: lecture implicite des entrées, exécution du programme application et écriture implicite des
sorties.
Quel que soit le mode de fonctionnement : périodique ou cyclique, la tâche est
contrôlée par un chien de garde qui permet de détecter une durée anormale du programme
application. En cas de débordement, le bit système %S11 est positionné à 1 et l'application
est déclarée en défaut bloquant pour l'automate.
Le bit système %S30 permet de valider ou d'inhiber la tâche maître.
1.5.3 Tâche rapide
Cette tâche plus prioritaire que la tâche maître MAST est périodique afin de laisser le
temps à la tâche moins prioritaire de s'exécuter.
De plus, les traitements qui lui sont associés doivent donc être courts pour ne pas
pénaliser la tâche maître. Comme pour la tâche maître, le programme associé se compose
de sections et de sous-programmes.
La période de la tâche rapide FAST est fixée en configuration, de 1 à 255 ms. Celle-ci
peut être définie supérieure à celle de la tâche maître MAST pour s'adapter à des traitements
périodiques lents mais prioritaires. Le programme exécuté doit cependant rester court pour
éviter le débordement des tâches moins prioritaires.
La tâche rapide est contrôlée par un chien de garde qui permet de détecter une durée
anormale du programme application. En cas de débordement, le bit système %S11 est
positionné à 1 et l'application est déclarée en défaut bloquant pour l'automate.
Contrôle de la tâche rapide
Le mot système %SW1 contient la valeur de la période, il est initialisé sur reprise à
froid par la valeur définie en configuration, il peut être modifié par l'utilisateur par programme
ou terminal.
Des bits et mots système, permettent de contrôler l'exécution de cette tâche :
• %S19 : signale un débordement de période, il est positionné à 1 par le système, lorsque le
temps de cycle devient supérieur à la période de la tâche.

22
• %S31 : permet de valider ou d'inhiber la tâche rapide, il est mis à 0 par le système sur
démarrage à froid de l'application, à la fin du premier cycle de la tâche maître. Il est mis à 1
ou à 0 pour valider ou inhiber la tâche rapide.
Visualisation des temps d'exécution de la tâche rapide
Les mots système suivants permettent d'avoir des informations sur le temps de cycle :
• %SW33 contient le temps d'exécution du dernier cycle ;
• %SW34 contient le temps d'exécution du cycle le plus long ;
• %SW35 contient le temps d'exécution du cycle le plus court.

1.5.5 Tâches événementielles


Les traitements événementiels permettent de réduire le temps de réaction du logiciel
sur des événements de commande.

Evénements de commande
Ce sont des événements externes liés aux fonctions métiers. L'apparition d'un tel
événement déroute le programme application vers le traitement qui est associé à la voie
d'entrées/sorties qui a provoqué l'événement. Les entrées (%I, %IW, %ID) associées à la voie
d'E/S qui a déclenché l'événement sont mises à jour par le système avant l'appel du traitement
événementiel. Il est possible de configurer :
• 8 événements dans un automate TSX 37-05/08/10 (EVT1 à EVT8) ;
• 16 événements dans un automate TSX 37-21/22 (EVT0 à EVT15) ;
• 32 événements dans un automate TSX/PMX/PCX 57-10 (EVT0 à EVT31) ;
• 64 événements dans un automate TSX/PMX/PCX 57-20/30 (EVT0 à EVT63).

L'association entre une voie et un numéro d'événement est réalisée dans l'écran de
configuration des voies.
Sur le TSX 37, les traitements événementiels peuvent être déclenchés par :
• les entrées 0 à 3 du module de position 1, sur front montant ou descendant ;
• la ou les voies de comptage des modules de comptage ;
• les voies de comptage du module 1 (si celui-ci est configuré en compteur) ;
• la réception de télégrammes dans un TSX 37-21/22 équipé d'un module TSX FPP20.

Sur le TSX/PMX/PCX 57, les traitements événementiels peuvent être déclenchés par :
• les entrées des modules DEY 16 FK, DMY 28 FK, DMY 28 RFK ;
• les voies des modules de comptage ;
• les voies des modules de commande d'axe CAY ;
• les voies des modules de commande pas à pas CFY ;
• les voies de communication "FPP20".

Gestion des tâches événementielles


Les traitements événementiels peuvent être globalement validés ou inhibés par le
programme application, au travers du bit système %S38. Si un ou plusieurs événements
interviennent pendant qu'ils sont inhibés, les traitements associés sont perdus.
Deux instructions du langage PL7, MASKEVT() et UNMASKEVT(), utilisées dans le
programme application, permettent également de masquer ou démasquer les traitements
événementiels. Si un ou plusieurs événements interviennent pendant qu'ils sont masqués, ils
sont mémorisés par le système et les traitements associés ne seront effectués qu'après
démasquage.
Les 8 événements de commande possibles avec un automate TSX 37-05/08/10 ont
tous le même niveau de priorité ; de ce fait, un traitement événementiel n'est pas interruptible
par un autre. Dans un automate TSX 37-21/22 ou dans un automate TSX/ PMX/PCX57, il
existe 2 niveaux de priorité pour les événements de commande : l'événement 0 (EVT0) est
plus prioritaire que les autres événements.

23
Remarques

Sur le TSX 37, les modules d'entrées analogiques qui ne peuvent être utilisés que dans la
tâche MAST, ne doivent pas être échangés dans un traitement événementiel.
Les échanges des entrées/sorties associées à la tâche EVTi et utilisées par le programme,
sont réalisés par voie (pour les modules de comptage) ou par groupe de voies (pour les
modules TOR). Pour cette raison, si le traitement modifie par exemple les sorties 2 et 3
d'un module TOR, c'est l'image des sorties 0 à 7 qui sera transférée vers le module.
Sur le TSX 37, pour chaque traitement événementiel, il est possible de déclarer au
maximum les échanges pour 2 modules en entrée (avant le traitement de l'événement) et
2 modules en sortie (après le traitement de l'événement).
Les entrées échangées (et le groupe de voies associées) lors de l'exécution de la tâche
événementielle sont remis à jour (perte des valeurs historiques, donc des fronts), il faut
donc éviter de tester des fronts sur ces entrées dans les tâches maître (MAST) ou rapide
(FAST).

24

Vous aimerez peut-être aussi