Schneider Electric Langages PL7-3, 5.2 Mode d'emploi

Ajouter à Mes manuels
412 Des pages
Schneider Electric Langages PL7-3, 5.2 Mode d'emploi | Fixfr
Généralités PL7-3
A
Langage Grafcet
B
Langage à contacts
C
Langage littéral
D
Communs langage à contacts
langage littéral
E
Opérations sur les objets d'OFBs
F
sur les objets d'E/S à distance
Opérations au format flottant
Remarque
Les intercalaires C, D et E ne font référence qu'aux objets standards de PL7-3.
Les opérations sur les objets des OFBs et des E/S à distance, extensions du
langage PL7-3, sont décrites intercalaire F. Les opérations au format flottant,
spécifiques à la régulation, sont décrites intercalaire G.
G
Préambule
Règles de compatibilité
Le logiciel PL7-3 V5 permet la programmation, la mise au point et la documentation
d'applications de niveau V5, V4, V3 ou V2.
1
2
3
4
5
6
7
8
9
Les stations TSX de niveau V2 : TSX 67-30/87-10/87-20, exécutent des
applications de niveau V2.
Les stations TSX de niveau V3 : TSX 47-30/67-20/87-30, exécutent des
applications de niveau V2 ou V3.
Les stations TSX de niveau V4 : TSX 47-400/47-410/47-411/47-420/67-410/
67-420/87-410/87-420/107-410/107-420, exécutent des applications de niveau TSX V4.
Les stations PMX de niveau V4 : PMX 47-420/67-420/87-420/107-420/107-430,
exécutent des applications de niveaux TSX V4 et PMX V4.
Les stations TSX de niveau V5 : TSX 47-405/47-415/47-425/47-455/67-425/
67-455/87-425/87-455/107-425/107-455, exécutent des applications de niveau
TSX V5.
Les stations PMX de niveau V5 : PMX 47-425/47-455/67-425/67-455/87-425/
87-455/107-425/107-455, exécutent des applications de niveaux TSX V5 et
PMX V5.
Une application peut être rendue exécutable par un processeur de niveau
immédiatement supérieur : V2 en V3, V3 en V4 ou V4 en V5. Cette opération
s'effectue en fonctionnement local et est irréversible. Par exemple une
application devenue exécutable par un processeur de niveau V5 ne peut plus
être exécutée par un processeur de version inférieure.
Une application TSX peut être exécutée par un processeur PMX de même
niveau. La réciproque est vraie, à la condition que l'application ne contienne pas
d'OFBs de la famille régulation ou des instructions au format flottant (niveau V5).
L'accès à une application V2, V3 ou V4 depuis PL7-3 V5, permet d'offrir à
l'utilisateur les nouveaux services suivants :
• symbolisation des OFBs (application V4 seulement),
• recherche/remplacement des objets compatibles,
• grilles d'occupation des mots internes et des mots constants,
• mémorisation d'écrans (WRITE/READ), en mode Données et Mise au point.
1
Sans titre-1
1
5/02/96, 19:14
Règles de compatibilité (suite)
Principales évolutions de PL7-3 V5 par rapport à PL7-3 V4
Ces nouveaux services, de niveau V5, ne sont proposés que pour les applications
V5 dans les stations V5.
• prise en compte des processeurs V5 : 18 nouveaux processeurs,
• mode configuration : transfert d'une partie de la configuration dans l'outil station
XTEL-CONF (processeur, mémoire, entrées/sorties, période des tâches) et
asservissement de PL7-3 à XTEL-CONF,
• prise en compte des entrées/sorties distantes,
• modulaire : vision des modules élémentaires dans l'application PL7-3 (accès
direct, repérage et protection) et animation graphique des macro-modules,
• intégration des modules littéral, générés par PL7-PMS2,
• opérations de type flottant disponibles avec les processeurs PMX. Pas de nouvel
objet flottant,
• nouveaux symboles : OFBs, E/S distantes et connexion directe à XTEL-SDBASE,
• mode recherche/remplacement : extension du mode remplacement,
• fonction Alt-X : accès à n'importe quelle variable afin de rechercher ses références croisées,
• modes données et mise au point : mémorisation des écrans de données ou des
adresses programme,
• mode transfert : appel de l'outil XTEL-TRANSFERT pour tous les transferts
console vers automate et automate vers console,
• Grafcet : gestion des mode de marche par l'OFB MSIT (définition de la partition
du Grafcet global, forçage de graphes, sauvegarde/restitution de la situation
courante d'un Grafcet partiel),
• mode documentation/impression : grilles d'occupation des mots internes et des
mots constants.
2
Sans titre-1
2
5/02/96, 19:14
Accès rapide aux instructions du langage littéral
ACKINT
ADDF
AND
ATB
ATF
acquittement de l’interruption ....................
addition au format flottant ..........................
ET logique entre 2 mots ............................
transcodage ASCII → binaire ....................
transcodage ASCII → flottant ....................
E, ch. 4.1
G,ch. 1.2
E, ch. 2.7
E, ch. 2.8
G,ch. 1.5
bit
BTA
BTD
BTF
test de l’état direct d’un bit .........................
transcodage binaire → ASCII ....................
transcodage binaire → BCD ......................
transcodage binaire → flottant ..................
D, ch. 3.4
E, ch. 2.8
E, ch. 2.8
G,ch. 1.5
CALL SRi
CPL
appel d’un sous-programme ...................... D, ch. 5.4-1
complément logique d’un mot .................... E, ch. 2.7
DEC
DIVF
DMASKINIT
DOWN
DTB
DTF
décrémentation du contenu d’un mot ........
division au format flottant ...........................
démasquage de l’interruption ....................
décrémentation d’un compteur ..................
transcodage BCD → binaire ......................
transcodage BCD → flottant ......... ............
E, ch. 2.2
G,ch. 1.3
E, ch. 4.1
D, ch. 6.3
E, ch. 2.8
G,ch. 1.5
EQUAL
EQUF
EXCHG
EXEC
comparaison de 2 tableaux de mots ..........
comparaison (égal) au format flottant ..........
émission et réception d’un message .........
exécution d’un OFB ...................................
E, ch. 3.6
G,ch. 1.2
D, ch. 6.6
E, ch. 6.2
FE
FTA
FTB
FTD
test du front descendant d’un bit................
transcodage flottant → ASCII ....................
transcodage flottant → binaire ..................
transcodage flottant → BCD ......................
D, ch. 3.5
G,ch. 1.5
G,ch. 1.5
G,ch. 1.5
GET
GTB
déstockage de la pile d’un registre ............ D, ch. 6.4
transcodage Gray → binaire ...................... E, ch. 2.8
HALT
arrêt du programme ................................... D, ch. 5.4-4
IF THEN ELSE
INC
INFF
INPUT
phrase conditionnelle ................................
incrémentation du contenu d’un mot .........
comparaison (inférieur) au format flottant ....
réception d’un message ............................
JUMP Li
saut dans un programme .......................... D, ch. 5.4-3
MASKINT
MULF
masquage de l’interruption ........................ E, ch. 4.1
multiplication au format flottant .................. G,ch. 1.3
NOT ou N
inversion logique d’un bit ........................... D, ch. 3.7
OR
OUTPUT
OU logique entre 2 mots ............................ E, ch. 2.7
émission d’un message ............................. D, ch. 6.6
D, ch. 2.6
E, ch. 2.2
G,ch. 1.2
D, ch. 6.6
3
Sans titre-1
3
5/02/96, 19:14
PRESET
PUT
mise à la valeur de présélection ................ D,ch. 6.1/6.3
stockage d’un mot dans un registre .......... D,ch. 6.4
RE
READBIT
READEXT
READINT
READTLG
READREG
REM
RESET
test du front montant d’un bit .....................
lecture immédiate des entrées TOR ..........
lecture immédiate d’un message ...............
lecture de l’interruption ..............................
lecture d’un télégramme ............................
lecture immédiate des registres d’entrées .
reste d’une division ....................................
mise à l’état 0 d’un bit ................................
remise à zéro d’un bloc fonction ................
retour d’un sous-programme .....................
RET
SET
SETIT
SHL i
SHR i
SLC i
SLCWORD
SQRTF
D,ch. 3.5
E, ch. 5.1
D,ch. 5.6-1
E, ch. 4.1
D,ch.5.7
E, ch. 5.2
E, ch. 2.5
D,ch. 5.2-2
D,ch. 6.3/6.4/6.5/6.6
D,ch. 5.4-2
SQRT
SRC i
START
STOP
SUBF
SUPF
mise à l’état 1 d’un bit ................................ D,ch. 5.2-2
génération d’une interruption ..................... D,ch. 5.5-1
décalage logique à gauche ........................ E, ch. 2.3
décalage logique à droite........................... E, ch. 2.3
décalage circulaire à gauche ..................... E, ch. 2.3
décalage circulaire de 1 octet à gauche .... D,ch. 5.3-1
extraction de racine carrée au format
flottant ......................................................... G,ch. 1.4
extraction de racine carrée ........................ E, ch. 2.6
décalage circulaire à droite ........................ E, ch. 2.3
démarrage d’un bloc fonction .................... D,ch. 6.1/6.2/6.5
arrêt d’un temporisateur ............................ D,ch. 6.1
soustraction au format flottant ................... G,ch. 1.3
comparaison (supérieur) au format flottant ... G,ch. 1.2
table+
sommation des mots d’un tableau ............. E, ch. 3.5
UP
incrémentation d’un compteur ................... D,ch. 6.3
WHILE DO
WRITEBIT
WRITEEXT
WRITEREG
phrase itérative ..........................................
écriture immédiate des sorties TOR ..........
écriture immédiate d’un message ..............
écriture immédiate des registres de sorties
XOR
OU exclusif logique entre 2 mots ............... E, ch. 2.7
D,ch. 2.7
E, ch. 5.1
D,ch. 5.6-2
E, ch. 5.2
4
Sans titre-1
4
5/02/96, 19:14
Dialogue
5
A
Généralités PL7-3
Chapitre
1
Intercalaire A
Page
Présentation du logiciel PL7-3
Sommaire
1/1
1.1 La structure multitâche
1.2 La structure multilangage
1.3 La programmation symbolique
1.4 La programmation modulaire
1.5 Fichiers source de configuration des entrées/sorties
1.6 Les blocs fonctions optionnels (OFB)
2
Les objets adressables du logiciel PL7-3
Sommaire
2/1
2.1 Adressage
2.2 Objets bits
2.3 Objets mots
2.4 Objets blocs fonctions
2.5 Indexation des objets
3
Mémoire utilisateur
Sommaire
3/1
3.1 Généralités
3.2 Mémoire bits
3.4 Structure mémoire et application
4
Structure logicielle monotâche
Sommaire
3/1
4.1 Description tâche maître
4.2 Traitement du programme
4.3 Fonctionnement structure monotâche
A/1
A
Généralités PL7-3
Chapitre
5
Page
Structure logicielle multitâche
Sommaire
5/1
5.1 Traitement multitâche
5.2 Tâche périodiques
5.3 Mise en oeuvre du traitement multitâche
5.4 Modes de marche des tâches périodiques
6
Rôle des bits et des mots système
Sommaire
6/1
6.1 Bits système
6.2 Mots système
6.3 Bits et mots système associés aux E/S distants
7
Coupure et reprise secteur
Sommaire
7/1
7.1 Principe
7.2 Comportement sur reprise secteur en structure monotâche
7.3 Comportement sur reprise secteur en structure multitâche
8
Modification en connecté
Sommaire
8.1 Principe
8.2 Modification en connecté, automate en STOP
8.3 Modification en connecté, automate en RUN
8.4 Limitations
A/2
8/1
5
Dialogue
A
Intercalaire A
Chapitre
9
Page
Conseils de programmation
Sommaire
9/1
9.1 Organisation des programmes application
9.2 Traitement des modes de marches et d’arrêts
9.3 Comportement des sorties en cas de dysfonctionnement automate
9.4 Traitement des défauts d'entrées/sorties
10
Annexes
Sommaire
9/1
10.1 Optimisation de la mémoire bit
10.2 Règles de compatibilité des automates TSX et PMX
A/3
A
A/4
Présentation du logiciel PL7-3
1
A
Présentation du logiciel PL7-3
Chapitre 1
Sous-chapitre
Page
______________________________________________________________________________________
1.1
La structure multitâche
1/2
_______________________________________________________________________________________
1.1-1 Généralités
1/2
1.1-2 Les tâches périodiques
1/2
1.1-3 La tâche interruption
1/3
1.2
La structure multilangage
1/3
_______________________________________________________________________________________
1.2-1 Généralités
1/3
1.2-2 Le langage Grafcet
1/4
1.2-3 Le langage à contacts
1/5
1.2-4 Le langage littéral
1/5
1.2-5 Les objets communs aux langages
1/6
1.3
La programmation symbolique
1/7
______________________________________________________________________________________
1.4
La programmation modulaire
1/10
______________________________________________________________________________________
1.5
Fichiers source de configuration des entrées/sorties
1/11
______________________________________________________________________________________
1.6
Les blocs fonctions optionnels (OFB)
1/12
______________________________________________________________________________________
1.6-1 Généralités
1/12
1.6-2 Configuration et programmation d’un OFB
1/12
1.6-3 OFBs fournis avec PL7-3
1/12
Ce chapitre se termine à la page
1/12
1/1
Sans titre-1
1
15/01/96, 11:49
A
1.1
La structure multitâche
1.1-1 Généralités
La structure multitâche des automates programmables modèles 40, associe un
programme spécifique à chaque fonction; chacun de ces programmes étant
implanté dans une tâche.
Ces tâches sont indépendantes et exécutées en "parallèle" par le processeur
principal. Un superviseur gère les priorités entre ces tâches, ainsi que leur
exécution.
Ce type de structure à pour but de :
• 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.
Le système multitâche propose 6 tâches périodiques et une tâche interruption. Ce
système est configurable : la périodicité et l’utilisation des tâches doivent être
déclarées par l’utilisateur.
Superviseur
Tâche
Rapide
Tâche
Maître
Tâche
Auxiliaire 0
Tâche
Auxiliaire 1
Positionnement
Séquentiel
Mesure
Régulation
Dialogue
+
Priorité
–
Exemple : Traitement utilisant 4 tâches
1 1-2 Les tâches périodiques
Chacune de ces 6 tâches est exécutée cycliquement selon la période définie par
l’utilisateur, en fonction du type de traitement assuré par la tâche.
L’ordre de priorité d’exécution de ces tâches est le suivant :
Rapide → Maître → Auxiliaire 0 → Auxiliaire 1 → Auxiliaire 2 → Auxiliaire 3
La mise en oeuvre de la tâche maître est développée au chapitre 4, la mise en
oeuvre de la structure multitâche au chapitre 5.
( )
* 4 tâches pour les automates TSX/PMX 47-40,
6 tâches pour les autres automates (TSX/PMX 67/87/107-40).
1/2
Sans titre-1
2
15/01/96, 11:49
Présentation du logiciel PL7-3
1
A
1.1-3 La tâche interruption
Cette tâche n’est pas liée à une période comme les tâches précédemment décrites.
Son exécution est déclenchée par un appel en provenance de certains coupleurs
intelligents (par exemple TSX DTM 100). C’est la tâche la plus prioritaire. Le
traitement qu’elle doit assurer est nécessairement court afin de ne pas perturber
l’exécution des autres tâches.
1.2
La structure multilangage
1.2-1 Généralités
La structure multilangage associe un langage au caractère spécifique de chaque
fonction (séquentielle, mesure, régulation, communication...); ce qui entraîne une
simplification de la conception et de l’écriture des programmes correspondants.
Le logiciel PL7-3 des automates TSX/PMX 47/67/87/107-40 propose trois langages de
programmation: le langage Grafcet, le langage à contacts et le langage littéral.
Ces langages s’utilisent simultanément ou non dans une même application.
Tâche Interruption
Tâche Rapide
Tâche Maître
Tâches Auxiliaires
Sous-Programmes
Sous-Programmes
Sous-Programmes
Sous-Programmes
• Contacts ou
• Littéral
• Contacts ou
• Littéral
• Contacts ou
• Littéral
• Contacts ou
• Littéral
Programme
Principal
Programme
Principal
Programme
Principal
Programme
Principal
• Contacts ou
• Littéral
• Contacts ou
• Littéral
• Contacts ou
• Grafcet ou
• Littéral
• Contacts ou
• Littéral
1/3
Sans titre-1
3
15/01/96, 11:49
A
1.2-2 Le langage Grafcet
C'est un langage graphique conçu pour décrire des fonctionnements séquentiels.
Il s’utilise en association avec le langage à contacts ou le langage littéral ou les deux,
pour la programmation des réceptivités et des actions.
La macro représentation
IN
L'analyse de l'application s'effectue en terme de fonction. Une
fonction est symbolisée par une
macro-étape.
Cette analyse par le haut donne
une visualisation globale (macroscopique) de l’automatisme par
grandes fonctions ou sousensembles, représentée sur un
faible nombre d’écrans, voire un
seul écran.
La macro-représentation est matérialisée par la macro-étape à
laquelle est associé un grafcet de
bas niveau décrivant le déroulement des opérations élémentaires. Lorsque celle-ci est activée,
la séquence qu’elle représente
(expansion) est exécutée en respectant les règles Grafcet.
1
1
11
M1
2
12
2
3
13
OUT
Une macro-étape peut elle même appeler d’autres macro-étapes. Le terminal
accède en lecture, écriture ou modification grâce au mode "ZOOM".
1/4
Sans titre-1
4
15/01/96, 11:49
Présentation du logiciel PL7-3
1
A
1.2-3 Le langage à contact
C'est un langage graphique adapté à la programmation des traitements logiques.
Des blocs fonctions pré-programmés permettent de réaliser les fonctions élémentaires d'automatisme (temporisateur, etc...) et de communication.
Il nécessite l’usage du langage littéral pour programmer des expressions arithmétiques simples ou complexes.
1.2.4 Le langage littéral
Orienté vers les fonctions évoluées de calcul et de dialogue opérateur, ce langage
s’écrit sous forme d’expressions constituées de phrases. Il fait appel au même type
de blocs fonctions que ceux proposés en langage à contacts.
1/5
Sans titre-1
5
15/01/96, 11:49
A
1.2-5 Les objets communs aux langages
• les objets bits : ils représentent les entrées/sorties de l’automate, les variables
internes au programme et l’état du système.
• les objets mots : composés de 16 ou 32 bits, il s’utilisent pour stocker et lire des
valeurs ou des paramètres et dialoguer avec les coupleurs intelligents. Les bits
constituant ces mots sont considérés par le système comme des objets bits et
peuvent être utilisés comme tels.
• les blocs fonctions : ils mettent au service de l’utilisateur des fonctions préprogrammées telles que temporisateurs, monostables, etc. Leur mise en oeuvre
utilise des objets bits et des objets mots.
Ces variables ne peuvent être manipulées qu’en langage à contacts ou langage
littéral, le langage Grafcet décrivant graphiquement le processus séquentiel (des
objets bits et mots spécifiques sont associés à ce langage).
Exemple :
1/6
Sans titre-1
6
15/01/96, 11:49
Présentation du logiciel PL7-3
1
A
1.3
La programmation symbolique
Le logiciel PL7-3 permet au choix de l'utilisateur, la saisie et la visualisation des
objets soit par leur repère (par exemple : B1), soit par une chaîne de caractères
appelée symbole (par exemple Secu_1). L’écriture d’un programme ou d’une partie
de programme en symbolique, nécessite au préalable que tous les symboles
utilisés soit associés dans une base de symboles, aux repères des objets PL7-3.
Cette base des symboles, gérée par l'outil XTEL-SDBASE est globale à la station;
ce qui a pour intérêt de décrire une seule fois l'ensemble des symboles de la station
et de les rendre disponibles pour toutes les fonctions ou outils de l'atelier logiciel.
Pour chaque affichage d'un symbole, PL7-3 accède directement en lecture de
celui-ci dans XTEL-SDBASE (la notion de base locale n'existe plus). Ceci permet
entre autre de s'affranchir de la limitation à 5000 symboles.
Symbolisation des OFBs
Chaque OFB comprenant plusieurs niveaux de représentation :
•
•
•
•
le type d'OFB : par exemple MVDGS,
l'OFB lui-même : par exemple MVDGS1,
l'élément d'OFB : par exemple MVDGS1,STATUS,
le bit extrait d'un élément d'OFB : par exemple MVDGS1,STATUS,5.
La programmation symbolique de PL7-3 offre 3 niveaux de symbolisation des
OFBs, afin de permettre au programmeur de choisir celui qui s'adapte le mieux à
son programme :
• l'OFB : par exemple Verin
• l'élément d'OFB : par exemple Verinsta
• le bit extrait de l'élément d'OFB : par exemple Vermach
PL7-3 ne permet pas de symboliser le type d'OFB, par contre il permet la
symbolisation des formes indexées des objets.
Les bits sont extraits de objets de type mot et non double mot.
Exemple
Symbole Repère
Syntaxe symbolique Syntaxe repère
Verin
MVDGS1
Verin,STATUS
Verin,STATUS,5
EXEC Verin(..=>..)
mot MVDGS1,STATUS
bit MVDGS1,STATUS,5
EXEC MVDGS1(..=>..)
Verinsta
MVDGS1,STATUS
Verinsta
Verinsta,5
mot MVDGS1,STATUS
bit MVDGS1,STATUS,5
Vermach
bit MVDGS1,STATUS,5
Vermach MVDGS1,STATUS,5
1/7
Sans titre-1
7
15/01/96, 11:49
A
Symbolisation des E/S distantes
Chaque E/S distante comprenant plusieurs niveaux de représentation :
•
•
•
•
l'équipement : par exemple RAO3,
le module : par exemple RAO3,1,
la voie : par exemple RAO3,1,3,
le bit extrait de voie : par exemple RAO3,1,3,F.
La programmation symbolique de PL7-3 offre 3 niveaux de symbolisation des E/S
distantes, afin de permettre au programmeur de choisir celui qui s'adapte le mieux
à son programme :
• le module : par exemple Moteur,
• la voie : par exemple Nbtours,
• le bit extrait de voie : par exemple Sensrota.
PL7-3 ne permet pas de symboliser l'équipement, par contre il permet la symbolisation des formes indexées des objets.
Les bits sont extraits des objets de type mot et non double mot.
Exemple
Symbole Repère
Syntaxe symbolique Syntaxe repère
Moteur
RAO3,1
Moteur,3
Moteur,3,F
mot RAO3,1,3
bit RAO3,1,3,F
Nbtours
RAO3,1,3
Nbtours
Nbtours,F
mot RAO3,1,3
bit RAO3,1,3,F
Sensrota
bit RAO3,1,3,F
Sensrota RAO3,1,3,F
Ainsi peuvent coexister dans une même application PL7-3, les phrases suivantes :
< Vitesse superieure à 1200 tours par minute ?
!
IF [Nbtours > 1200] THEN ...
< Mais dans quel sens tourne le moteur ?
!
IF [Sensrota = 1] THEN ....
(et non Nbtours,F)
Les formes indexées peuvent porter sur la voie ou sur le bit extrait de voie, mais pas sur
les deux à la fois :
RAO3,1,3(W20),F ou RAO3,1,3,F(W40).
Note
Cet exemple à 4 niveaux de symbolisation ne s'applique pas aux modules TBX TOR.
1/8
Sans titre-1
8
15/01/96, 11:49
1
Présentation du logiciel PL7-3
A
Règle d'utilisation des symboles par PL7-3
Si la base des symboles contient plusieurs niveaux de symbolisation pour un
même objet, PL7-3 cherche toujours la forme symbolique des objets, en
commençant par l'objet dont la syntaxe est la plus complexe.
Par exemples
• Verin et Vermach sont présents dans la base des symboles,
• à la saisie du programme application, une phrase contient Verin, STATUS,5,
• à la relecture du programme dans l'automate, on ne retrouvera pas
Verin,STATUS,5 mais Vermach,
• Nbtours et Sensrota sont présents dans la base des symboles,
• à la saisie du programme application, une phrase contient Nbtours,F,
• à la relecture du programme dans l'automate, on ne retrouvera pas Nbtours,F
mais Sensrota.
1/9
Sans titre-1
9
15/01/96, 11:49
A
1.4
La programmation modulaire
La programmation modulaire s'effectue en plusieurs phases :
• archivage source sous PL7-3, des modules de programme (graphe principal,
préliminaire, macro-étape, programme principal, sous-programme,...), des mots
constants, des constantes d'OFBs et saisie des commentaires module,
• génération sous XTEL-MOD, à partir des fichiers source précédemment créés
sous PL7-3, des modules élémentaires et des macro-modules (ensemble de
modules élémentaires). Le fichier des symboles, associé à un module élémentaire, n'est pas fourni par PL7-3 mais généré par XTEL-MOD par lecture de la
base des symboles XTEL-SDBASE,
• récupération de modules élémentaires et/ou de macro-modules, créés sous
XTEL-MOD et intégration dans une application PL7-3. Afin de faciliter la mise à
jour de l'application, PL7-3 propose les fonctionnalités suivantes :
- accès direct au code des modules élémentaires,
- repérage du code des modules élémentaires,
- protection du code des modules élémentaires,
- vue et animation graphique des macro-modules (ou modules fonctionnels).
Note
Les modules élémentaires et les macro-modules peuvent également être créés à partir de
fichiers source, générés sous le langage de régulation PL7-PMS2. De ce fait, il est possible
à PL7-3 d'intégrer automatiquement du code généré par PL7-PMS2.
1/10
Sans titre-1
10
15/01/96, 11:49
1
Présentation du logiciel PL7-3
A
1.5
Fichiers source de configuration des entrées/sorties
Certains logiciels comme PL7-COM, PL7-PCL, PL7-AXE ou PL7-NET, lorsqu'ils
sont utilisés en mode local, doivent connaître la configuration des entrées/sorties
de l'application.
PL7-3, utilisé avec une station V4, génère un fichier ASCII (extension .IOC) qui
contient la configuration des entrées/sorties et dont le rôle est de :
• dupliquer une configuration standard d'entrées/sorties d'une station vers une
autre,
• d'être un fichier passerelle avec les fonctions métiers, lorsqu'elle celles-ci sont
utilisées en mode local,
• d'ouvrir X-TEL vers les CAO de schématèque électrique : le fichier .IOC est utilisé
pour la génération du fichier neutre des entrées/sorties décrivant l'arborescence
d'une configuration automate.
X-TEL
Station n
PL7-3
PL7-NET
PL7-PCL
PL7-COM
PL7-AXE
PL7-3
IMPORT
▲
▲
Station p
▲
▲
▲
▲
Fichier .IOC
CAO de
schématèque
électrique
1/11
Sans titre-1
11
15/01/96, 11:49
A
1.6
Les blocs fonctions optionnels (OFB)
1.6-1 Généralités
Les blocs fonctions optionnels ne font pas partie du langage PL7-3 de base. Ils sont une
extension au langage PL7-3, fournie séparément sous forme d’une disquette.
Chaque OFB écrit en langage informatique par son concepteur, est caractérisé par son
type et son numéro, et appartient à une famille unique (commande d’axes, communication,...). Par contre à l’intérieur d’une même famille, il y a plusieurs types d’OFBs.
Un type d’OFBs peut être utilisé plusieurs fois dans un programme application, à
condition :
• que ce type d’OFBs soit chargé en mémoire,
• que le nombre d’OFBs à utiliser soit défini en configuration.
A chaque OFB utilisé, sont associés des paramètres d’entrées et de sorties, des
données internes et des constantes internes, accessibles par le langage PL7-3.
1.6-2 Configuration et programmation d’un OFB
Avant d’utiliser des OFBs dans une application, il est nécessaire d’en définir le
nombre en configuration. Cela permet de :
• réserver la zone mémoire nécessaire à chaque OFB,
• initialiser les constantes internes des OFBs.
L’utilisation d’un OFB dans un programme application permet :
• de lancer son exécution avec passage des paramètres d’entrées/sorties,
• de lire une donnée ou une constante interne,
• d’affecter une donnée interne.
1.6-3 OFBs fournis avec PL7-3
Les OFBs de diagnostic application (EVDGNi, EVDGSi, MVDGNi, MVDGSi, TRDGNi
et TRDGSi) permettent de mettre en oeuvre la surveillance d'un procédé :
•
•
•
•
•
surveillance d'une équation,
surveillance des évolutions d'un Grafcet (étapes et macro-étapes),
surveillance d'un temps enveloppe Grafcet,
surveillance du temps de réaction du procédé à une commande,
surveillance des conditions de sécurité, ...
L'OFB Grafcet (MSITi) assure la gestion des situations d'un Grafcet partiel :
•
•
•
•
définition explicite du descripteur de Grafcet partiel,
forçage du Grafcet partiel,
sauvegarde et restitution de la situation courante,
positionnement d'une situation.
1/12
Sans titre-1
12
15/01/96, 11:49
Les objets adressables du logiciel PL7-3
2
A
Les objets adressables du logiciel
PL7-3
Sous chapitre
2.1 Adressage
2.1-1
2.1-2
2.1-3
2.1-4
Entrées/sorties TOR des modules en bac
Mots registres d’entrées/sorties des coupleurs
Entrées/sorties TOR distantes
Adressage symbolique
2.2 Objets bits
2.2-1 Liste des objets bits
2.2-2 Définition des principaux objets bits
2.3 Objets mots
2.3-1 Généralités
2.3-2 Liste des objets mots et bits associés
2.3-3 Définition des différents objets mots
2.4 Objets blocs fonctions
2.4-1 Généralités
2.4-2 Liste des mots et bits des blocs fonctions standards
2.5 Indexation des objets
Chapitre 2
Page
2/2
2/2
2/3
2/4
2/5
2/6
2/6
2/7
2/8
2/8
2/9
2/10
2/11
2/11
2/12
2/13
2.5-1 Adressage direct
2.5-2 Adressage indexé
2/13
2/13
Ce chapitre se termine à la page
2/14
2/1
A
2.1
Adressage
2.1-1 Entrées/sorties TOR des modules en bac
Les modules d’entrées/sorties en bac présentent une modularité de 4, 8, 16, 24 ou
32 voies. L’adresse d’une entrée ou d’une sortie est définie par :
• modules 4, 8 et 16 voies
I/Oxy,i
I
O
x
y
,
i
• modules 24 et 32 voies
I/Oxy,i (voies 0 à 15)
I/O(x+1)y,i (voies 16 à 23 ou 31)
: entrée,
: sortie,
: numéro de bac incluant le module,
: numéro d’emplacement dans le bac (0 à 7),
: virgule,
: numéro de voie.
Définition du numéro de bac
• Automates TSX/PMX 47-40/67-40/87-40/107-40
0 1 2 3 4 5 6 7
X
D
S
T
3
2
Modules
4
8
voies voies
0y,0
0y,0
à
à
Adresses 0y,3
0y,7
I/O
16
24
32
voies voies voies
0y,0
0y,0
0y,0
à
à
à
0y,F
0y,F
0y,F
1y,0
1y,0
à
à
1y,7
1y,F
x = 0/1
2y,0
à
Adresses 2y,3
I/O
x = 2/3
2/2
2y,0
à
2y,7
2y,0
à
2y,F
2y,0
à
2y,F
3y,0
à
3y,7
2y,0
à
2y,F
3y,0
à
3y,F
2
Les objets adressables du logiciel PL7-3
A
• Extensions pour automates TSX/PMX 47-40/67-40/87-40/107-40
0 1 2 3 4 5 6 7
X
Modules
4
8
16
24
32
voies voies voies voies voies
xy,0
xy,0
à
à
Adresses xy,0
xy,0
xy,0
xy,F
xy,F
à
à
à
I/O
xy,3
xy,7
xy,F (x+1)y,0 (x+1)y,0
à
à
D
S
T
3
2
(x+1)y,7
x
Adresses
(x+1)y,0
à
à
à
I/O
(x+1)y,3
(x+1)y,7
(x+1)y,F
(x+1)y,0
(x+1)y,F
(x+1)y,0
x+1
TSX 47-410/411/420
TSX 47-415/425/455
PMX 47-420/425/455
X = 4, 6
X+1 = 5, 7
TSX 67-40/87-40/107-40
PMX 67-40/87-40/107-40
X = 4, 6, 8, A, C, E
X+1 = 5, 7, 9, B, D, F
2.1-2 Mots registres d’entrées/sorties des coupleurs
L’adressage de ces registres est défini par :
IW/OWxy,i
IW : registre d’entrée
OW : registre de sortie
x : numéro du bac équipé du coupleur
y : emplacement du coupleur dans le bac
i : numéro de registre dans le coupleur
2/3
A
2.1-3 Entrées/sorties TOR distantes
Les interfaces d'entrées/sorties distantes présentent une modularité de 16 ou 32
voies, par point de connexion sur le bus FIPIO : 16 voies avec un TBX "monobloc"
et 32 voies avec un TBX modulaire. L'adresse d'une entrée ou d'une sortie à
distance est définie par : RI/ROx,y,i
RI
RO
x
,
y
,
i
: entrée distante,
: sortie distante,
: numéro du point de connexion sur le bus FIPIO (1 à 62),
: virgule
: numéro du module : 0 pour la base et 1 pour l'extension,
: virgule
: numéro de la voie (0 à 15).
Définition de l'adresse de l'équipement
Des micro-interrupteurs, présents sur les équipements, permettent un codage
binaire de l'adresse (ou point de connexion) dans les limites suivantes :
Type d'automate
Nbre de points de
connexion FIPIO
Nbre d'adresses
TBX gérées
32
31 (1 à 62)
___________________________________________________________________________________________________
TSX 47 415
TSX/PMX 47 455
___________________________________________________________________________________________________
TSX/PMX 67 455/87 455/107 455 64
62 (1 à 62)
___________________________________________________________________________________________________
Note
Les adresses 0 et 63 sont des adresses réservées respectivement à l'automate et à la console.
Exemple d'adressage d'un équipement TBX monobloc (31 équipements maximum
par architecture) : codage de l'équipement à l'adresse 15.
0
0
0
0
0
16 8
4
2
1
Exemple d'adressage d'un équipement TBX modulaire (62 équipements maximum
par architecture) : codage de l'équipement à l'adresse 62
0
2/4
0
0
0
0 0
0
0
128 64 32 16 8 4
2
1
Les objets adressables du logiciel PL7-3
2
A
2.1-4 Adressage symbolique
L’adressage symbolique des objets PL7-3, nécessite que les symboles utilisés
soient déjà définis dans la base des symboles.
Symbole
Un symbole est une chaîne de 8 caractères alphanumériques, dont le premier
caractère est alphabétique. Les caractères "_", "$", "%", "|" et "~" sont également
acceptés. Il ne peut pas avoir la même syntaxe qu’un objet du langage.
La première lettre est en majuscule et les autres lettres sont en minuscules.
Objets symbolisables
Tous les objets PL7-3 sont symbolisables sauf:
• les bits et mots indexés
• les étiquettes
• les SRi
• les tableaux de bits et de mots
On classe les objets à symboliser en trois types :
• Objet de type simple : c’est un objet auquel on peut associer un symbole.
exemples :
bloc fonction
module
bit interne
mot interne
bit de mot interne
bit de mot système
TXT1
I2
B1
W1
W1,1
SW2,3
Imprim
Brul_1
Temp_ok
Ad_emis0
Mem_fct
Raz_prod
• Objet de type complexe : c’est un objet que l’on peut décomposer en sous- objet
sans que ce sous-objet existe dans la table des symboles.
exemples :
bit d’entrée/sortie
bit de mot interne
bit de bloc fonction
I2,1
W1,3
TXT1,E
Brul_1,1
Ad_emis0,3
Imprim,E
cas d'impossibilité :
- bit d’étape : si X1 est symbolisé par Etape1, on ne pourra pas symboliser X1,2
par Etape1,2 (Etape1 symbolise le bit d’activité de l’étape 1 du CHART, alors
que dans X1,2, X1 représente la macro-étape 1).
- mot d’étape : si X1,2 est symbolisé par Bitx12, on ne pourra pas symboliser
X1,2,V par Bitx12,V (Bitx12 symbolise le bit d’activité de l’étape 2 de la macroétape 1, alors que dans X1,2,V, X1,2 représente l’étape 2 de la macro-étape1).
• Objet composé : c’est un objet composé de plusieurs objets.
exemples :
bit interne indexé
bit de mot interne
B1(W1)
Temp_ok(Ad_emis0)
W1(W1),1 Ad_emis0(Ad_emis0),1
Remarque : pour les bits extraits de mots : bit de mot interne, bit de mot constant,
bit extrait d'un élément d'OFB, etc. on utilise, s'il existe, le symbole de
l'objet dont la syntaxe est la plus complexe : symbole associé au bit
de mot et non celui associé au mot.
2/5
A
2.2
Objets bits
2.2-1 Liste des objets bits
Les différentes notations utilisées sont : R pour lecture, W pour écriture, F pour
forçage.
Bits
Nature
direct
indexé
limite
Bits E/S des
modules TOR
en bac
entrées
Ixy,i
Ixy,i(Wj)
0≤i≤F
R/W/F
sorties
Oxy,i
Oxy,i(Wj)
0≤i≤F
R/W/F
Bits E/S des
modules TOR
distants
entrées
RIx,y,i
RIx,y,i(Wj)
0≤i≤15
R
sorties
ROx,y,i
ROx,y,i(Wj)
0≤i≤15
R/W/F
Bits entrées/
sorties des
coupleurs
entrées
Ixy,i
Ixy,i(Wj)
0≤i≤F
R/W
sorties
Oxy,i
Oxy,i(Wj)
0≤i≤7
R/W
Bits internes
Bi
Bi(Wx)
0≤i≤3935
R/W/F
Bits système
SYi
0≤i≤127
R/W selon i
Bits associés
au Grafcet
étape i du
graphe principal
0≤i≤127
0≤j≤63
Adressage
Possibilités
Xi
R/W
macro-étape j
XMj
R
étape i
de la macro-étape j
Xj,i
R/W
étape d’entrée
de la macro-étape j
Xj,I
R/W
étape de sortie
de la macro-étape j
Xj,O
R
Bit défaut des modules
TOR en bac et coupleurs
I/Oxy,S
R
Bits défaut des
modules TOR
distants
0≤i≤15
RDx,y,i
R
disjonction voie
de sortie
TRIPx,y,i
R
réarmement voie
de sortie
RSTx,y,i
R/W
défaut voie
Remarques
Lecture/écriture : par programme ou par le terminal.
Forçage des entrées/sorties : le forçage est prioritaire sur l’acquisition des entrées et
sur le positionnement des sorties défini par programme et ce jusqu’à sa suppression.
Forçage des bits internes : le forçage est prioritaire sur l’état défini par le
programme utilisateur.
2/6
Les objets adressables du logiciel PL7-3
2
A
2.2-2 Définition des principaux objets bits
Bits d’entrées/sorties
Ces bits donnent l’état des entrées/sorties des modules.
Indexation :
Elle porte sur le rang du bit.
Exemple : O5,9 (W6)L’incrémentation du mot W6 permet d’adresser, à partir du bit
de sortie O5,9, tous les bits des modules d’entrées/sorties
placés à la suite dans la configuration.
Remarque : l’optimisation de la mémoire bits conduit lors d’une indexation des
bits d’entrées/sorties, à tenir compte de la configuration physique des
modules (occupation selon la modularité des modules et emplacement vide : 1 module 8 entrées = 8 bits, 1 emplacement vide = 0 bit).
Voir annexe page 9/10.
Bits défauts des modules
Chaque module dispose d’un bit adressable qui est positionné à 1 par le système,
lors de l’apparition d’un défaut. Par exemple :
• configuration physique du module non conforme à la configuration logicielle
déclarée en configuration,
• échange avec le processeur non valide,
• bornier débroché ou en cours de débrochage,
• surintensité sur l’une des voies ou groupe de voies de certains modules de
sorties, etc...
Cas particulier des modules d'E/S en bac 4 voies et d'E/S à distance
Les modules 4 voies TSX DET 466 et TSX DET 417 ainsi que les modules d'entrées/
sorties TOR à distance disposent d’un bit défaut par voie :
• modules 4 voies : bit 4 -> voie 0, 5 -> voie 1, 6 -> voie 2 et 7 -> voie 4,
Exemple : O41,5
Bit de défaut de la voie 1 du module de sortie situé dans
l’emplacement 1 du bac 4.
• modules d'E/S distants : RDx,y,i avec i numéro de la voie,
Exemple : RD4,1,5 Bit de défaut de la voie 5 du module d'extension connecté à
l'adresse 4 du bus FIPIO.
Bits internes
Les bits internes mémorisent des états intermédiaires durant l’exécution du
programme.
Nota : 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 SY0 à SY127 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 6 du présent manuel.
2/7
A
2.3
Objets mots
2.3-1 Généralités
Les objets mots sont adressés par le logiciel PL7-3 sous deux formats :
• mots de simple longueur : ces mots de 16 bits contiennent une valeur algébrique
comprise entre -32 768 et 32 767,
• mot de 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.
Valeurs immédiates
Ce sont des valeurs algébriques de format homogène avec celui des mots simple
et double longueur (16 ou 32 bits), qui permettent d’affecter des valeurs à ces mots.
Elles sont stockées dans la mémoire programme et peuvent représenter des
valeurs comprises entre -32 768 et 32 767 en simple longueur, -2 147 483 648 et
2 147 483 647 en double longueur et ±3,402824 E+38 et ±1.175494 E-38 en format
flottant (double longueur).
Format des mots
Le contenu des mots ou valeurs est rangé en mémoire utilisateur en code binaire
avec la convention suivante :
Mots de 16 Bits
F E DC B A 9 8
7 6 5 4
3 2 1 0
0 1 1 1
0 0 1 1
0 1 0 0
0 1 1 1
^
Poids Forts
Mots de 32 Bits
1 0 1 0
0
Rang du Bit
^
Poids Faibles
0 0 1 0
Poids Forts
Poids Faibles
0 0 1 1
1 0 1 0
Rang n
Rang n+1
En simple longueur, les mots et valeurs immédiates peuvent être saisis ou restitués
à l’écran sous forme :
• décimale
maxi
mini
1579
32767
-32768
• BCD
• binaire
L’0101001100011010' • message (ASCII)
• hexadécimal
maxi
mini
H’A536'
H’FFFF’
H’0000'
B’1439'
maxi B’9999'
mini B’0000'
M’JM’
En double longueur, les mots et valeurs immédiates ne peuvent être saisis et
restitués qu’en décimal ou flottant.
2/8
2
Les objets adressables du logiciel PL7-3
A
2.3-2 Liste des objets mots et bits associés
Les différentes notations utilisées sont : R pour lecture et W pour écriture
Mots et bits
associés
Mots internes
Mots constants
Mots registres
Nature
Adressage
direct
indexé
simple longueur
Wi
Wi(Wj)
0≤i≤32596
R/W
double longueur
DWi
DWi(Wj)
0≤i≤32595
R/W
simple longueur
CWi
CWi(Wj)
0≤i≤26206
R/W (1)
double longueur
CDWi
CDWi(Wj)
0≤i≤26205
entrées
IWxy,i
0≤i≤7
sorties
OWxy,i
0≤i≤7
Mots communs mot commun j de
la station i
Mots système
COMi,j X = B, C, ou D
ou COMXi,j
0≤i≤n
0≤j≤m
SWi
étape i du
graphe principal
Xi,V
Xj,i,V
0≤i≤127
étape i de la
macro-étape j
étape d’entrée
de la macro-étape j
Xj,I,V
étape de sortie
de la macro-étape j
Xj,O,V
Mot d'état associé aux modules
TOR distants
R/W
R/W (2)
(4)
(4)
R/W
R
R
R
R
STS,x,y,i
0≤i≤15
Bits extraits
des mots
bit j du mot
interne i
Wi,j
Wi(Wk),j
0≤j≤F
simple
longueur
bit j du mot
constant i
CWi,j
CWi(Wk),j
0≤j≤F
bit j du mot
registre i
I/OWxy,i,j
0≤j≤F
COMi,j,k
ou COMXi,j,k
0≤k≤F
SWi,j
0≤j≤F
bit k du mot
commun j de
la station i
bit j du mot
système i
R/W (1)
R/W
0≤i≤127
Mots associés
au Grafcet
0≤j≤63
Possibilités
limites
R
R/W (3)
R
R/W (3)
R/W (2)
R/W
Remarques : Lecture/écriture : par programme ou par le terminal :
(1)
(2)
écriture uniquement par le terminal,
écriture par le programme de la station i,
Nombre de stations
33 à 64
17 à 32
9 à 16
5à8
2à4
Taille des COMs
4
8
16
32
64
(3)
(4)
écriture uniquement par le programme,
voir tableau ci-dessous :
N°de station : i
0 à 63
0 à 31
0 à 15
0à7
0à3
Rang du mot : j
0à3
0à7
0 à 15
0 à 31
0 à 63
2/9
A
2.3-3 Définition des différents objets mots
Mots internes : destinés à stocker des valeurs en cours de programme
Les mots internes simple et double longueur sont rangés à l’intérieur de l’espace données dans
une même zone mémoire. Ainsi,
le mot double longueur DWn correspond aux mots simple longueur
Wn et Wn+1 (le mot Wn renfermant les poids faibles et le mot
Wn+1 les poids forts du mot DWn).
DW0
DW1
DW3
DW2
W0
W1
W2
W3
W4
Exemples :
DW0 correspond à W0 et W1
DW543 correspond à W543 et
W544
Wi
DWi
Wi + 1
Mots constants :
les 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 peuvent
avoir comme support de la mémoire EPROM.
Les mots constants simple et
double longueur sont rangés dans
un même espace mémoire. Ainsi,
le mot double longueur CDWn
correspond aux mots simple longueur CWn et CWn+1 (le mot
CWn renfermant les poids faibles
et le mot CWn+1 les poids forts du
mot CDWn).
CDW0
CDW1
CDWi
CW0
CW1
CW2
CWi
CWi + 1
Mots registres d’entrées/sorties
Les mots registre sont des objets mots de 16 bits associés aux coupleurs
intelligents.
Chacun de ces coupleurs dispose de 8 mots registres d’entrées IWxy,i et de 8 mots
registres de sorties OWxy,i.
Mots communs
Les mots communs sont des objets mots de 16 bits communs à toutes les stations
connectées au réseau de communication TELWAY, MAPWAY, ETHWAY ou FIPWAY.
Ils constituent dans chaque automate une table de 64 mots maximum (TELWAY ), 128
mots maximum (FIPWAY) ou 256 mots maximum (MAPWAY ou ETHWAY).
2/10
2
Les objets adressables du logiciel PL7-3
A
Mots système
Ces mots de 16 bits 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 (mode de marche Grafcet, etc...).
Les mots système sont décrits chapitre 6.2.
Mots associés au Grafcet
Ces mots représentent le temps d’activité des étapes Grafcet. La valeur maximale
du temps est de 9999 incréments, la base de temps étant de 100 ms. Le nombre
de mots temps d’activité est à déclarer lors de la configuration des données,
indépendamment du nombre d’étapes.
Objets bits extraits de mots simple longueur
Le logiciel PL7-3 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 séparé par une virgule.
2.4
Objets blocs fonctions
2.4.1 Généralités
Le langage à contacts et le langage littéral utilisent une ressource commune :
les blocs fonctions, qui sont de deux types :
• les blocs fonctions standards qui se répartissent en trois groupes :
- les blocs fonctions d’automatismes : ils mettent à disposition de l’utilisateur des
fonctions pré-programmées telles que temporisateurs, monostables, compteurs, etc...
- le bloc fonction texte : il permet d’échanger des données entre programme
utilisateur et coupleur intelligent, ou prise terminal, ou système, ou autre
programme utilisateur. Ces communications peuvent s’effectuer localement
ou au travers des réseaux TELWAY, MAPWAY, ETHWAY et FIPWAY.
- le bloc fonction contrôle : spécifique au traitement multitâche, il permet l'activation ou la désactivation des tâches périodiques (rapide ou auxiliaires).
Les autres types de blocs, comparaison et opérations portent sur les mots définis
précédemment et ci-après.
• les blocs fonctions optionnels (OFBs) qui permettent une extension du langage
PL7-3, sous forme de blocs fonctions spécifiques (communication, commande
d’axes, ...).
2/11
A
2.4-2 Liste des mots et bits des blocs fonctions standards
Les blocs fonctions standards mettent en oeuvre des objets bits de sortie et mots
spécifiques. Les notations suivantes sont utilisées R pour lecture, W pour écriture.
Bloc fonction
Mots et bits associés
Temporisateur
mot valeur de présélection
Ti,P
valeur courante
Ti,V
R
temporisateur en cours
Ti,R
R
temporisateur écoulé
Ti,D
R
Ti
0≤i≤127
bit
Monostable
mot valeur de présélection
Mi,P
valeur courante
Mi,V
monostable en cours
Mi,R
Mi
0≤i≤31
bit
Compteur/
décompteur
Ci
0≤i≤255
Adressage
Possibilités
R/W (1)
R/W (1)
R
R
R/W (1)
mot valeur de présélection
Ci,P
valeur courante
Ci,V
R
débordement comptage
Ci,E
R
présélection atteinte
Ci,D
R
débordement décomptage
Ci,F
R
bit
Registre
mot mot d’entrée
Ri,I
R/W
Ri
0≤i≤127
mot de sortie
Ri,O
R/W
registre plein
Ri,F
R
registre vide
Ri,E
R
TXTi,L
W
bit
Texte
mot longueur de table en octets
TXTi
status
TXTi,S
R
0≤i≤63
adresse coupleur et n° voie
TXTi,M
W
code requête
TXTi,C
W
adresse station TELWAY
TXTi,A
W
n° du bloc texte en communic.
TXTi,T
W
compte rendu d’échange
TXTi,V
R
échange terminé
TXTi,D
R
échange erroné
TXTi,E
R
CTRLi,R
R
bit
Contrôle
bit
CTRLi
1≤i≤7
sauf 3 (tâche maître)
tâche activée
Ces mots et bits ne sont pas indexables
(1)
Si YES en mode CONFIGURATION
2/12
2
Les objets adressables du logiciel PL7-3
A
2.5
Indexation des objets
2.5-1 Adressage direct
L’adressage des objets est dit direct, quand l’adresse de ces objets est fixe et définie
à l’écriture du programme : B126 désigne le bit interne d’adresse 126.
2.5-2 Adressage indexé
En adressage indexé, l’adresse 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 par un mot interne simple
longueur Wi. Le nombre de "mots index" n’est pas limité.
Exemple : W108(W2) mot d’adresse (108 + contenu du mot W2).
Si le mot W2 a pour contenu la valeur 45, écrire W108(W2)
équivaut donc à écrire W153.
Ce type d’adressage permet de parcourir successivement une suite d’objets de
même nature (mots internes, mots constants...), en modifiant par programme le
contenu du mot index. Le contenu de l’index peut être négatif.
Exemple : B80(W4)
Si le contenu de W4 évolue par programme de la valeur 0
à la valeur 20, B80(W4) désigne successivement les bits
internes B80 à B100.
Les objets bits et mots indexables sont présentés dans les chapitres 2.2-2 et 2.3-2
Débordement d’index, bit système SY20
Il y a débordement d’index dès que l’adresse d’un objet indexé dépasse les limites
de la zone incluant ce même type d’objet, c’est-à-dire quand :
• l’adresse de base + le contenu de l’index est inférieur à la valeur zéro,
• l’adresse de base + le contenu de l’index est supérieur au nombre d’objets
déclarés lors de la configuration de l’application (exemple : 1000 mots internes Wi).
En cas de débordement d’index, le système provoque :
• la mise à l’état 1 du bit système SY20,
• la remise à 0 du contenu de l’index.
La surveillance du débordement est à la charge de l’utilisateur : le bit SY20 doit être
lu par le programme utilisateur pour traitement éventuel. Sa remise à zéro est
également à la charge de l’utilisateur.
SY20 : • état initial 0,
• sur débordement d’index : mise à 1 par le système,
• acquittement débordement : mise à 0 par le programme utilisateur.
2/13
A
2/14
Mémoire utilisateur
3
A
Mémoire utilisateur
Sous chapitre
Chapitre 3
Page
3.1 Généralités
3/2
3.2 Mémoire bits
3/2
3.2-1 Composition
3.2-2 Structure
3.3 Mémoire mots
3.3-1
3.3-2
3.3-3
3.3-4
Espace programme
Espace constantes
Espace données
Identificateur de programme IDP
3.4 Structure mémoire et application
3.4-1
3.4-2
3.4-3
3.4-4
Automate TSX et PMX 47-40
Automate TSX et PMX 67-40
Automates TSX/PMX 87-40 et TSX/PMX 107-40
Règles de configuration mémoire
Ce chapitre se termine à la page
3/2
3/3
3/4
3/4
3/5
3/5
3/6
3/7
3/7
3/8
3/9
3/10
3/10
3/1
A
3.1
Généralités
L’espace mémoire des automates TSX/PMX 47/67/87/107-40, accessible à l’utilisateur est découpé en deux ensembles distincts :
• la mémoire bits : RAM CMOS intégrée au module processeur contenant l’image
de 4096 objets bits.
• la mémoire mots : mots de 16 bits (programme, donnée et constante) supportée
par :
- une mémoire RAM CMOS intégrée au module processeur
(RAM on board),
- la cartouche mémoire utilisateur RAM ou EPROM de 32 ou
64 ou 128 ou 256K mots.
Ces 2 ensembles, de structure différente selon les applications, sont configurables
dans des limites maximales imposées par le type d’automate.
Ces limites sont données dans le chapitre 3.4.
Les mémoires RAM CMOS sont secourues par batterie Cadnium-nickel, supportée
par le module processeur pour la mémoire bit et RAM on board et par chacune des
cartouches mémoire utilisateur.
3.2
Mémoire bits
3.2-1 composition
Cette mémoire contient 4096 objets bits quel que soit le type de l’automate.
Hormis les deux premières zones, la taille des zones suivante
est définie par la configuration demandée par l’utilisateur.
La structure de la mémoire bit est
définie chapitre 3.4.
Il est conseillé lors de la configuration des objets ci-contre de ne
pas déclarer la totalité des bits
non utilisés en bits internes, afin
de laisser du disponible pour des
extensions futures en modules
d’entrées/sorties ou en étapes
Grafcet.
3/2
Réservé système
Bits système
SYi
Bits d'E/S en bac
I/Oxy
Bits étapes Grafcet
Xi
Bits macro-étapes Grafcet
Bits internes
Bits d'E/S distantes
Bits objets d'OFBs
XMi
Bi
RI/ROx,y
Mémoire utilisateur
3
A
3.2-2 Structure
Chaque objet bit contenu dans la mémoire bits est mémorisé à l’aide de 3 bits
affectés de la façon suivante :
Réservé
F
A
C
Etat courant (seul bit accessible par le
logiciel PL7-3)
Etat antérieur
Etat de forçage
Lors de la mise à jour de la mémoire bits, le système assure :
• le transfert de l’image de l’état courant dans l’état antérieur,
• la réactualisation de l’état courant par le programme, le système ou le terminal
(lors du forçage d’un bit).
Front montant ou descendant
Cette structure de la mémoire bits permet le test de front montant ou de front
descendant sur :
• les bits d’entrées/sorties (hors bit défaut S),
• les bits internes,
Conseils d’utilisation des fronts montants ou descendants
La logique de fonctionnement des contacts front montant ou descendant n’est
respectée que dans les conditions suivantes :
• dans tous les cas, traiter pour un même objet :
- bit d’entrée : le contact de front dans la tâche où le module d’entrée est échangé,
- bit de sortie ou interne : traiter sa lecture et son écriture à l’intérieur d’une même
tâche.
• en langage à contacts, écrire une seule fois la bobine d’un objet lorsque un
contact de front de cet objet est utilisé dans un programme.
Etats de forçage
Sur une demande de forçage par le terminal :
• l’état de forçage F est mis à l’état 1
F=1
• l’état courant C est mis à l’état :
1 si le forçage à 1 est demandé C=1
0 si le forçage à 0 est demandé C=0
• l’état antérieur est figé à la valeur qu’il avait au moment du forçage.
Ces états n’évoluent plus jusqu’à ce que :
• le forçage soit supprimé et le bit concerné mis à jour,
• le forçage inverse soit demandé, seul l’état courant est modifié.
3/3
A
3.3
Mémoire mots
Cette mémoire mots de 16 bits est structurée en 4 espaces logiques :
• 3 espaces (données, programme, et constantes) dont la
Données application
taille est définie par les besoins
de l’application,
Données OFBs
• l’espace identificateur.
Les 3 espaces données, programme
et constantes comprennent chacun une partie standard associée
à l’application et une partie associée aux Blocs Fonctions Optionnels (OFBs).
Programme application
Programme OFBs
Constantes application
Tous ces espaces logiques sont
répartis sur les 2 espaces physiques existants (voir chapitre 3.4)
• la RAM on board dont le taille
dépend du processeur utilisé,
• l’espace cartouches (1 seule
cartouche).
Constantes OFBs
IDP
3.3-1 Espace programme
Découpé en segments, il comprend les segments UCSi, UGSi, CPS associés à
l’application et les segments OESi et OPSi associés aux OFBs :
• les segments UCSi comprennent
Segment (s) Interpréteur Grafcet
le code exécutable :
si Grafcet déclaré
UCS
- l’interpréteur Grafcet si celuicode
ci est déclaré en configuration, exécutable
Programme utilisateur
- le code d’ordre des instructions
code d'ordre PL7-3
PL7-3.
• les segments UGSi comprennent le code non exécutable :
- les informations graphiques
des instructions PL7-3,
- les commentaires.
• le segment CPS comprend les
paramètres communs :
- les paramètres de configuration,
- les liens entre les informations
du code exécutable et du code
non exécutable.
3/4
Segment (s)
UGS
code non
exécutable
Programme utilisateur
• Informations graphiques,
réseaux, phrases, pages,
• commentaires
Segment
CPS
Paramètres de configuration
de l'application
Segment (s)
OES
code
exécutable
OFBs
code d'ordre
Segment (s)
OPS
Paramètres de configuration
des OFBs
Mémoire utilisateur
3
A
• les segments OESi comprennent le code exécutable des OFBs :
- le code d’ordre associé aux OFBs,
- les sections constantes initiales.
• les segments OPSi comprennent les paramètres de configuration des OFBs.
Le nombre de segments UCSi et UGSi dépend de la structure de l’application
(monotâche ou multitâche, avec ou sans Grafcet). Le nombre de segments OESi
et OPSi dépend du nombre et de la taille des OFBs. Tout segment ne peut dépasser
la taille de 32 Kmots. La gestion de ces segments est assurée d’une manière
transparente par le terminal.
3.3-2 Espace constantes
Il comprend le segment CCS associé à l’application et les segments OCSi associés
aux OFBs :
• le segment CCS contient les
objets mots constants (simple et
double longueur) de l’application. Le nombre total de ces
objets est défini par l’utilisateur
en configuration. Leur contenu
est défini en mode CONSTANTES.
Segment CCS Mots constants de l'application
1,25 mot par
mot simple
Simple longueur : CWi
longueur
Double longueur : CDWi
2 mots par
mot double
longueur
Segment (s)
OCS
Constantes internes des OFBs
• les segments OCSi contiennent les objets mots constants des OFBs (une section
par type d’OFBs configuré).
Le nombre de segments OCSi dépend du nombre de types d’OFBs utilisés
(1 segment au maximum par type d’OFB, soit 32 Kmots).
3.3-3 Espace données
Il comprend le segment STACK, les segments CDSi associés à l’application et les
segments ODSi associés aux OFBs :
• le segment STACK contient les piles des tâches configurées,
• les segments CDSi, découpés
en zone, comprennent toutes
les données évolutives de
l’application. Leur ordre de
rangement et leur occupation
mémoire sont définis ci-après.
Hormis les 2 premières zones
(système), la taille des zones
suivantes est définie par la configuration demandée par l’utilisateur.
Segment
STACK
Piles des tâches configurées
Segment (s)
CDS
Données de l'application
(voir page suivante)
Segment (s)
ODS
Données internes des OFBs
• les segments ODSi comprennent toutes les données évolutives des OFBs.
3/5
A
Le nombre de segments ODSi dépend du nombre de types d’OFBs utilisés
(1 segment au maximum par type d’OFBs, soit 32 Kmots).
• Entrées/sorties : correspond
aux bits défaut des modules
d’entrées/sorties, 1 mot par bac
simple repère pair,
• Blocs fonctions : correspond
aux mots de ceux-ci (valeurs
courante, de réglage...).
• Grafcet : si celui-ci est déclaré
présent, il occupe :
- 550 mots au minimum,
- 1050 mots par défaut,
- 5658 mots au maximum.
• Tâches utilisateur : la tâche
maître (MAST) est systématiquement présente, les autres
tâches sont à déclarer en configuration. Toutes ces tâches occupent deux zones différentes
dans l’espace données.
• Mots internes : taille définie par
le nombre déclaré en configuration.
• Mots registres coupleurs : 8
mots IW et 8 mots OW par coupleur intelligent et par module de
sorties analogiques 12 bits.
• Mots communs TELWAY/
MAPWAY/ETHWAY/FIPWAY
si le(s) coupleur(s) réseau est
déclaré dans les entrées/sorties, occupation de 64/128/256
mots par coupleur.
• Temps d’activité Grafcet :
1 mot par Xi,V déclaré en configuration.
32 mots
Réservé système
128 mots
Mots système
1 mot / d. bac
Entrées / Sorties
par bloc :
T
: 4 mots
M : 5 mots
C : 3 mots
R : 6 mots (*)
TXT : 64 mots
Blocs fonctions
• Temporisateur
• Monostable
• Compteur
• Registre
• Texte
SWi
I/Oxy, S
Grafcet déclaré Grafcet
par tâche :
Mast : 3 mots
IT
: 2 mots
Fast : 3 mots
Aux : 3 mots
Tâches utilisateur
Wi : 1 mot
DWi : 2 mots
Mots internes
par module :
ASR
AEM : 16 mots
SCM
AXM
Registres coupleurs Iwxy, i
Owxy,i
0
64 mots
(TELWAY)
256 mots
(MAPWAY)
Mots communs
TELWAY ou
MAPWAY
par Xi, V
déclaré :
1 mot
Temps d'activité
des étapes
ETHWAY ou
FIPWAY
Wi
DWi
COMi, j
COMBi, j
COMCi, j
COMDi, j
Xi, V
(*) pour les registres, à l'occupation de 6 mots, il y a lieu d'ajouter 1 mot par pas déclaré.
3.3-4 Identificateur de programme IDP
L’identificateur de programme, non accessible à l’utilisateur, est géré d’une
manière transparente par le terminal. Indispensable à la gestion de la mémoire
utilisateur par le processeur, il contient l’organisation des espaces et des zones de
cette dernière. Sa taille : 333 mots au maximum, dépend des tâches et du nombre
d’OFBs configurés.
3/6
3
Mémoire utilisateur
A
3.4
Structure mémoire et application
3.4-1 Automate TSX et PMX 47-40
• Structure de la mémoire bit
Mémoire bits
Maxi
taille disponible sur carte processeur
4096
type
bits système SYi
128
d’objets bits entrées/sorties I/Oxy,i et RI/ROx,y,i
(1)
(2)
Grafcet
étapes Xi
512
1024
512
macro-étapes XMi
64
bits internes Bi : dans la limite de la mémoire disponible
• Structure de la mémoire mot
RAM on board
Mémoire cartouche
RAM ou EPROM
24 Kmots (1)
48 Kmots (2)
32 Kmots (1)
32/64 Kmots (2)
Données
Programme
Constantes
Données (*)
Programme
Constantes
(*) en RAM seulement
(1)
(2)
avec processeur TSX et TPMX P47 400/405
avec processeurs TSX et TPMX P47 410/411/420/415/425/455
• structure application :
- tâche interruption : 1
- tâche maître
: 1
- tâche rapide : 1
- tâche auxiliaire : 2
3/7
A
3.4-2 Automate TSX et PMX 67-40
• Structure de la mémoire bit
Mémoire bits
Maxi
taille disponible sur carte processeur
4096
type
bits système SYi
128
d’objets bits entrées/sorties I/Oxy,i et RI/ROx,y,i
Grafcet étapes Xi
512
macro-étapes XMi
64
bits internes Bi : dans la limite de la mémoire disponible
• Structure de la mémoire mot
RAM on board
Mémoire cartouche
RAM ou EPROM
96 Kmots
32/64/128 Kmots
Données
Programme
Constantes
Données (*)
Programme
Constantes
(*) en RAM seulement
• structure application :
- tâche interruption : 1
- tâche maître
: 1
3/8
2048
- tâche rapide : 1
- tâche auxiliaire : 4
Mémoire utilisateur
3
A
3.4-3 Automates TSX/PMX 87-40 et TSX/PMX 107-40
• Structure de la mémoire bit
Mémoire bits
Maxi
taille disponible sur carte processeur
4096
type
bits système SYi
128
d’objets bits entrées/sorties I/Oxy,i et RI/ROx,y,i
Grafcet étapes Xi
2048
512
macro-étapes XMi
64
bits internes Bi : dans la limite de la mémoire disponible
• Structure de la mémoire mot
RAM on board
Mémoire cartouche
RAM ou EPROM
96 Kmots
64/128/256 Kmots
Données
Programme
Constantes
Données (*)
Programme
Constantes
(*) en RAM seulement
• structure application :
- tâche interruption : 1
- tâche maître
: 1
- tâche rapide : 1
- tâche auxiliaire : 4
3/9
A
3.4-4 Règles de configuration mémoire
Les règles de configurations suivantes doivent être observées :
Pour tous les automates V3
• la mémoire RAM on board ne peut supporter que des données.
Pour tous les automates V4 et V5
• la mémoire RAM on board supporte des données, mais également du programme ou/et des constantes.
• le type de cartouches utilisées est pour les espaces mémoires,
- Données : mémoire RAM CMOS,
- Programme : mémoire EPROM ou RAM CMOS; cette dernière étant nécessaire
en phase d’écriture et de mise au point du programme,
- Constantes et IDP : mémoire EPROM ou RAM CMOS,
• l’espace Constantes est facultatif.
3/10
Structure logicielle monotâche
4
A
Structure logicielle monotâche
Sous chapitre
Chapitre 4
Page
4.1 Description tâche maître
4/2
4.2 Traitement du programme
4/3
4.2-1 Modules programme
4/3
4.3 Fonctionnement structure monotâche
4.3-1 Cycle de fonctionnement
4.3-2 Débordement de tâche
Ce chapitre se termine à la page
4/4
4/4
4/5
4/6
4/1
A
4.1
Description tâche maître
Le programme d’une application monotâche est contenu dans une seule tâche
utilisateur : la tâche maître MAST. Cette tâche, d’exécution périodique se présente
comme ci-dessous.
L’exécution de la tâche maître est effectuée de façon périodique selon un temps
défini à la configuration par l’utilisateur (de 15 à 255 ms). Ce temps doit permettre
le déroulement de l’ensemble des fonctions suivantes :
Acquisition des entrées :
Le système assure implicitement :
• prise en compte par le système des bits et
mots système (1),
• photo des données demandées par le terminal connecté à l’automate en mode mise au
point (1),
• prise en compte en mémoire de données des
messages en provenance des coupleurs intelligents et des coupleurs TELWAY, MAPWAY,
ETHWAY, FIPWAY et/ou FIPIO (2),
• écriture en mémoire de données des mots
communs TELWAY, MAPWAY, ETHWAY
et/ou FIPWAY (COM),
• écriture en mémoire bits des bits d'entrées (I
et RI), des bits de défaut des E/S à distance
(RD),
• écriture en mémoire de données des mots
registres d’entrées (IW) des coupleurs,
• traitement des requêtes terminal (1),
Période
Acquisition
des entrées
Traitement
du programme
Mise à jour
des sorties
Envoi
des messages
Traitement du programme
Le programme écrit par l’utilisateur est alors
exécuté.
Mise à jour des sorties
Le système assure implicitement :
• mise à jour par le système des bits et mots système (1),
• émission des messages vers les coupleurs intelligents et les coupleurs TELWAY
ou MAPWAY ou ETHWAY (2),
• émission vers le coupleur TELWAY ou FIPWAY des 4 mots communs (COM),
• émission vers chaque coupleur MAPWAY ou ETHWAY de 64 mots commums au
maximum (COM, COMB, COMC, COMD),
• écriture des bits de sorties (O et RO) des modules d’entrées/sorties,
• écriture des mots registres de sorties (OW) dans les coupleurs.
(1)
(2)
seules ces fonctions sont assurées quand l’automate est en arrêt exécution.
à chaque cycle de la tâche maître, celle-ci peut traiter jusqu’à un message en réception et
un message en émission par coupleur configuré (intelligent ou réseau).
4/2
4
Structure logicielle monotâche
A
4.2
Traitement du programme
4.2-1 Modules programme
Le programme de la tâche maître est structuré en plusieurs modules programme.
Sans Grafcet
Avec Grafcet
Traitement Préliminaire
Lit ou Lad
PRL
Traitement Principal
MAIN
Sous-Programme
Sous-Programme SRi
Sous-Programme SR1
Lit
ou
SR0
Lit Lad
ou
Lit Lad
ou
128 SR
Lad
maxi.
Lit
ou
Lad
Traitement Séquentiel
CHART
XM
Grafcet :
avec
transitions
et actions
Lit ou Lad
Sous-Programme
Sous-Programme SRi
Sous-Programme SR1
Lit
ou
Lit Lad
ou
Lit Lad
ou
128 SR
Lad
maxi.
SR0
Traitement Postérieur
Lit ou Lad
POST
Modules programme MAIN, SR, PRL, POST :
• chaque module est écrit avec un seul langage (contacts ou littéral),
• des modules, écrits avec des langages différents peuvent être mixés dans une
même tâche maître (exemple : le module MAIN écrit en littéral peut appeler un
sous-programme écrit en langage à contacts qui peut lui même appeler un autre
sous-programme en langage littéral).
• les sous-programmes sont affectés à l’ensemble de la tâche. Ils permettent 8
niveaux d’imbrications.
Module traitement séquentiel CHART
Il est réservé aux pages GRAFCET et fait appel pour l’écriture de chaque transition
ou action au langage à contacts ou langage littéral.
Dans l’espace programme, les modules programme de la tâche maître sont inclus
dans 2 segments UCS code exécutable et 1 segment UGS code non exécutable
Sans Grafcet
Avec Grafcet
1er
segment UCS
MAIN
Interpréteur, CHART, XM et SR
2eme
segment UCS
SR
PRL, POST, Actions et Transitions
3eme
segment UGS
Ensemble du code non exécutable de la tâche MAST
4eme
segment
Source programme pour les OFBs de surveillance avec
mémorisation
• Le nombre de réseaux de contacts ou de phrases littérales programmés dans un
module n’est limité que par la longueur des segments le renfermant :
32 K maximum par segment.
• Chaque module comporte au maximum 255 réseaux ou phrases repérés par une
étiquette (repères compris entre 1 à 999).
4/3
A
4.3
Fonctionnement structure monotâche
4.3-1 Cycle de fonctionnement
Afin que le processeur assure toutes ces fonctionnalités, la tâche maître est
entourée d’une tâche de surveillance et d’une tâche pilote. Ces deux dernières,
gérées par le superviseur, sont transparentes pour l’utilisateur.
La tâche pilote, prioritaire par
rapport aux tâches maître et de
surveillance, n’est exécutée que sur
apparition d’événements externes
ou internes (changement de mode
de marche automate, défauts matériel ou logiciel...).
La tâche de surveillance assure le
contrôle de la totalité des modules
d’E/S en bac ou à distance, inclus
dans la configuration matérielle.
Cette tâche est exécutée à la demande de la tâche pilote (reprise à
chaud, changement d'application)
ou en continu à la suite de la tâche
maître dans l’attente du prochain
appel période. Ainsi il apparaît qu’un
temps minimum (différence entre la
période de la tâche maître et son
temps d’exécution) doit exister afin
d’assurer la gestion de la tâche de
surveillance. Sur chaque appel
période, le système assure :
• l’exécution de la tâche maître
dans sa totalité puis,
• l’exécution de la tâche de surveillance, dans l’attente du prochain appel période.
Evénements Evénements
Externes
Internes
-Commande -Défaut
RUN/STOP logiciel
-Disparition
secteur
-Changement
de cartouche
+
Tâche Pilote
Période
Tâche Maitre
Superviseur
Priorité
Entrées
Programme utilisateur
Sorties
Tâche de surveillance
L’exécution de la tâche maître peut
être occasionnellement allongée
Surveillance et contrôle des
modules de configuration
du fait de :
• la scrutation de sous-programme,
• l’exécution d’une phrase itérative,
• l’exécution d’un saut de programme amont,
• une activation importante d’étapes Grafcet,
• une messagerie (coupleur ou terminal) trop importante,
• une reprise à froid demandée par le terminal.
Ainsi, cette exécution pouvant devenir supérieure à la période configurée, il y a alors
débordement de tâche. (signalé par le bit système SY19).
4/4
Structure logicielle monotâche
4
A
4.3-2 Débordement de tâche
Dès que le temps d’exécution de la tâche maître dépasse le temps alloué par la
période définie par l’utilisateur :
• la tâche maître termine son exécution avec mise à l’état 1 du bit système SY19
"débordement tâche (OVERRUN)" en fin de celle-ci puis,
• afin d’absorber la charge occasionnelle, les cycles de la tâche maître sont alors
repris en exécution "enchaînée" (sans exécution de la tâche de surveillance et
sans attente du top horloge de la période),
• selon la nature de la surcharge de traitement, 2 cas peuvent se présenter :
la surcharge est occasionnelle : le système peut alors l’absorber sur un ou
quelques cycles de la tâche maître. Pendant tout ce temps le bit système SY19
est positionné à l’état 1 à chaque fin de cycle de la tâche maître. Sa mise à l’état
0 est à la charge du programme utilisateur.
Attention : une surcharge occasionnelle importante peut provoquer une
désynchronisation entre la tâche maître et le cadencement des échanges
périodiques sur FIPIO, ce qui peut amener :
- l'absence de mise à jour de une ou plusieurs données utilisées par la tâche maître,
- la perte d'état "transitoire" positionné pendant un cycle tâche sur une sortie de la
tâche.
la surcharge est trop importante ou permanente : le système ne peut l’absorber, entraînant ainsi une dérive du nombre d’appel période par rapport au
nombre d’exécution de tâche maître. La différence atteignant 8, l’automate passe
alors dans l’état "défaut logiciel non bloquant" soit :
• arrêt immédiat de l’exécution de la tâche maître, passage en STOP de
l’automate,
• le voyant MEM est allumé, le voyant RUN est éteint,
La relance de la tâche nécessite :
• la connexion du terminal,
• une initialisation du processeur,
• le lancement de la tâche maître (RUN). La mise à l’état 0 du bit système SY19,
si elle n’est pas assurée par le programme, doit être effectuée par le terminal.
Le cycle de la tâche est alors repris en son début, le contexte données étant
inchangé.
Afin d’éviter ce type de défaut, sauf s’il s’agit d’erreur de programmation, il est
conseillé de :
• augmenter la période de la tâche maître ou mieux,
• restructurer son programme en utilisant les tâches rapide et auxiliaires.
Note : cas d’une période tâche maître > 125 ms
Si l’exécution de la tâche maître dépasse 1 s (boucle dans le programme), le débordement
tâche entraîne un défaut logiciel bloquant soit :
• arrêt immédiat de l’automate,
• le voyant RUN est éteint et les 3 voyants CPU, MEM et I/O sont allumés.
La relance de l’automate nécessite :
• coupure de la tension d’alimentation,
• reprise secteur, celle-ci étant du type reprise à froid.
4/5
A
4/6
Structure logicielle multitâche
5
A
Structure logicielle multitâche
Sous chapitre
5.1 Traitement multitâche
5.1-1 Description
5.1-2 Tâches utilisateur et tâches système
5.2 Tâches périodiques
5.2-1
5.2-2
5.2-3
5.2-4
5.2-5
5.2-6
Principe
Organisation des tâches utilisateur
Etat d’une tâche périodique
Fonctionnement des tâches périodiques
Gestion des temps
Débordement d’une tâche
5.3 Mise en oeuvre du traitement multitâche
5.3-1 Influence des tâches entre elles
5.3-2 Gains apportés par les tâches auxiliaires
Chapitre 5
Page
5/2
5/2
5/3
5/4
5/4
5/4
5/5
5/5
5/7
5/8
5/9
5/9
5/10
5.4 Modes de marche des tâches périodiques
5/12
Ce chapitre se termine à la page
5/14
5/1
A
5.1
Traitement multitâche
5.1-1 Description
Les fonctions de dialogue nécessaires à la conduite d’installation, les fonctions de
communication nécessaires aux besoins de répartition et de hiérarchisation de
l’automatisme, les fonctions de régulation, les fonctions de positionnement sont
autant de programmes indépendants et simultanément exécutés par l’automate.
Ces besoins ont définis une nouvelle structure, appelée multitâche où chaque tâche
est spécialisée et effectue un traitement de façon périodique.
Des niveaux de priorité sont fixés pour chaque tâche afin de privilégier certains
traitements.
Superviseur
Période
Période
Période
Evénements
externes
Période
Période
Période
Tâche
IT
Tâche
Rapide
Tâche
Maître
Tâches
Auxiliaires
AUX 3
AUX 3
AUX 1
IT
Tâche
Interruption
FAST
MAST
AUX 0
Séquentiel
Mesure
••••
••••
Dial.
Tâches Périodiques
+
Priorité
-
L’utilisateur dispose de 6 tâches périodiques afin de gérer son application. La tâche
maître (MAST) reste à la base de l’application et permet l’activation ou non des
autres tâches. La répartition des différentes tâches selon le type d’automate est
définie au chapitre 3.4.
De façon asynchrone aux tâches périodiques, une tâche interruption peut être
activée par un ordre en provenance d’événements extérieurs. Son traitement est
le plus prioritaire et impose l’arrêt du traitement en cours.
5/2
Structure logicielle multitâche
5
A
5.1-2 Tâches utilisateur et tâches système
Comme en structure logicielle monotâche, les tâches utilisateur sont entourées par
deux tâches système : la tâche pilote et la tâche de surveillance.
Chaque tâche, dans la structure multitâche, possède une priorité qui lui permet,
soit :
• d’interrompre l’exécution de toute tâche moins prioritaire,
• d’être interrompue par l’appel d’une tâche plus prioritaire.
Tâche pilote : tâche asynchrone
exécutée que sur événement provoquant un changement du mode
de marche de l’automate (RUN,
STOP, défaut...). Cette tâche est
la plus prioritaire.
Tâche interruption : tâche utilisateur asynchrone dont l’exécution est déclenchée par un ordre
en provenance d’événements
extérieurs qui doivent être traités
prioritairement (exemple : coupleur de positionnement).
Tâche rapide : tâche périodique la
plus prioritaire réservée aux traitements de courte durée à fréquence
d’exécution élevée. Période
configu-rable de 5 à 255 ms.
Tâche maître : tâche périodique
obligatoire exécutant le traitement
séquentiel programmé principalement en langage Grafcet. Elle
est activée systématiquement par
le superviseur et permet l’activation des autres tâches par l’intermédiaire du bloc fonction contrôle
CTRL. Période configurable de
5 à 255 ms.
Tâches auxiliaires : tâches périodiques destinées aux traitements plus lents tels que mesure,
régulation, dialogue opérateur,
aide au diagnostic... Période configurable de 10 à 2550 ms.
+
Tâche
Pilote
(Système)
Tâche
IT
Tâche
Rapide
Superviseur
Priorité
Tâches
utilisateur
Tâche
Maitre
0
Tâches
1
Auxiliaires
2
3
-
Tâche de
Surveillance
(Système)
Tâche de surveillance : tâche système périodique transparente pour l’utilisateur
Elle assure le contrôle de tous les modules de la configuration.
Important : les objets bits et mots de la mémoire bits, de l’espace Données et de
l’espace Constantes sont communs à l’ensemble des tâches utilisateur.
5/3
A
5.2
Tâches périodiques
5.2-1 Principe
Le traitement multitâche est basé sur l’exécution de plusieurs tâches périodiques dont les
valeurs des périodes sont fixées par l’utilisateur à la configuration du système.
L’exécution de chaque tâche est lancée de
façon périodique (sur présence des tops horloge) et le programme affecté à la tâche doit
être exécuté dans sa totalité entre les deux
tops horloge définissant la période de la tâche.
Période
t
Top Horloge
Exécution
de la tâche
A la configuration du système, l’utilisateur déclare la présence ou non de la tâche rapide et
des tâches auxiliaires.
L’ existence des tâches auxiliaires et leur valeur de période doivent être croissantes
et suivre l’ordre de priorité (FAST → MAST → AUX0 → AUX3).
5.2-2 Organisation des tâches utilisateur
Le superviseur pilote les différentes tâches
périodiques, selon une périodicité et une priorité qui leur sont propres.
Tâche maître : la structure et le fonctionnement de cette tâche restent identiques à ceux
présentés en structure monotâche (chapitre 4.1).
Tâches rapide et auxiliaires : toutes ces
tâches possèdent la même structure (schéma
ci-contre). Cinq zones peuvent être distinguées
au sein d’une même tâche, dont :
• période d’exécution : propre à chaque tâche,
• échange avec le terminal : photo des données nécessaires au terminal pour l’animation temps réel d’un écran en mode mise au
point,
• acquisition des entrées : pour les modules
affectés à la tâche lors de la configuration du
système (ces modules sont alors retirés de
la table des échanges de la tâche maître).
Ces acquisitions portent uniquement sur les
bits TOR et sur les registres IW.
5/4
Période
Echange
avec le terminal
Entrées I, IW
Traitement
Main
Sorties O, OW
SR
SR
5
Structure logicielle multitâche
A
• traitement du programme : il est composé d’un module principal MAIN et de
modules sous programme affectés à chaque tâche (128 SR maximum).
Chaque module est monolangage : langage littéral ou à contacts.
Les règles d’utilisation des langages ainsi que la capacité des modules sont
identiques à la tâche maître (chapitre 4.2-1 sans Grafcet).
• mise à jour des sorties : pour les modules affectés à la tâche, même définition
que pour l’acquisition des entrées.
Remarque : le traitement des messages coupleurs intelligents ou coupleur
TELWAY, MAPWAY, ETHWAY ou FIPWAY et des mots communs
s’effectue toujours en tâche maître.
5.2-3 Etat d’une tâche périodique
Deux paramètres définissent l’état d’une tâche, automate sous tension :
• exécutée ou non exécutée : ordre en provenance du terminal (RUN ou STOP)
peut porter sur un ou sur l’ensemble des tâches.
• activée ou désactivée : événement en provenance du programme utilisateur
par exécution du bloc fonction contrôle CTRL écrit dans une tâche.
5.2-4 Fonctionnement des tâches périodiques
▼
Oui
RUN tâche
Oui
▼
Activation de
la tâche
▼
Activation process
de recopie des valeurs
de la Ram réseau
(uniquement FIPIO)
▼
Oui
▼
Mise à jour des
entrées en bac
▼
▼
Période top
horloge
▼
• mise sous tension de l’automate :
seule la tâche maître est active.
Les périodes des autres tâches
configurées sont lancées.
• activation de la tâche i :
elle est demandée par l’exécution du bloc fonction contrôle
CTRLi écrit dans toute tâche
active et exécutée. La tâche i est
alors exécutée à partir du premier
top reçu de son horloge et quand
la ou les tâches plus prioritaires
ont terminé leur cycle.
• tâche activée :
l’exécution de la tâche i se fait
jusqu’à une demande d’exécution émanant d’une tâche plus
prioritaire. Elle va alors suspendre son exécution pour la poursuivre par la suite.
▼
Activation
de la tâche
▼
Fin du process
de recopie des valeurs
de la Ram réseau
Oui
▼
Mise à jour des
entrées distantes
▼
Exécution du
programme utilisateur
▼
Mise à jour des sorties
en bac et à distance
(uniquement FIPIO)
▼
Activation process
de recopie des valeurs
de la Ram réseau
(uniquement FIPIO)
▼
5/5
A
• désactivation de la tâche i :
elle est demandée par le bloc CTRLi. La tâche termine son cycle (après mise à
jour des sorties) avant d’être effectivement désactivée.
La mise à jour implicite des entrées et des sorties des modules affectées à une
tâche n’est plus assurée quand celle-ci est désactivée ou en STOP.
Soit un programme multitâche dans lequel sont configurées trois tâches périodiques. La tâche système de surveillance est exécutée quand les tâches utilisateur
ont terminé leur cycle (entrées, programme et sorties).
Exemple :
Enchaînement des tâches
Rapide 2,5ms 10ms
Maître
Aux.
15ms 40ms
10ms 100ms
Système
CTRL
AUX
0
CTRL
RAP
2,5ms
▲
▲
0
10
40
80
100
120
ms
Période
Temps d'exécution
Remarque
La répartition des entrées/sorties : en bac ou à distance, créée des incidences
sur le temps d'exécution d'une tâche utilisateur (l'attente du signal de fin de
process de recopie des valeurs de la Ram réseau pouvant devenir important).
5/6
Structure logicielle multitâche
5
A
5.2-5 Gestion des temps
Chaque top horloge affecté à une tâche périodique va demander son exécution.
Le schéma ci-dessous montre l’influence de l’introduction d’une tâche rapide sur
l’exécution de la tâche maître.
MONOTACHE
Tâche
Maître
MULTITACHE
Tâches
Maître
Rapide
Entrées
Entrées
Traitement
Entrées
Sorties
Entrées
Traitement
Traitement
Sorties
Entrées
Sorties
Traitement
Sorties
Sorties
Entrées
Traitement
Sorties
5/7
A
Chaque tâche est interruptible par une tâche dont la période est plus petite. La tâche
interrompante est alors exécutée soit jusqu’à son exécution totale pour reprendre
ensuite la tâche interrompue, soit jusqu’à son interruption par une tâche encore plus
prioritaire.
Le cumul de tous ces temps doit autoriser une charge du processeur principal
inférieure à 90% (sinon le dépassement va engendrer l’arrêt de l’automate) car il
faut réserver au système environ 10% du temps afin que s’effectuent les tâches
système, le dialogue avec le terminal...
Remarque : il faut cependant noter que la gestion des messages véhiculés par bloc
texte, reste affectée à la tâche maître, ce qui rend donc inutile la
gestion par programme, de blocs fonctions texte dans une tâche plus
rapide que la tâche maître.
5.2-6 Débordement d’une tâche
Les tâches rapide ou auxiliaires étant périodiques, leur comportement sur débordement est identique à celui décrit pour la tâche maître (voir sous-chapitre 4.3.2).
Cependant, chaque tâche possède son propre bit système "débordement tâche"
SY19. Celui-ci n’a de signification que pour la tâche dans laquelle il est testé. Il est
donc conseillé, afin de pouvoir effectuer un diagnostic par programme ou par le
terminal, de transférer dans chaque tâche configurée l’image du bit SY19 dans des
bits internes. Le diagnostic s’effectue alors sur ces bits internes "image de SY19".
• Comportement des tâches sur débordement de l’une d’elles :
Par rapport à la tâche en débordement :
- les tâches plus prioritaires poursuivent leur cycle normalement,
- les tâches moins prioritaires ont leur cycle interrompu pendant le temps où le
système résorbe la surcharge de la tâche en débordement.
Si la surcharge ne peut être absorbée (différence entre le nombre d’appel période
de la tâche en débordement et son nombre de cycle d’exécution atteignant 8),
l’automate passe en STOP : "défaut logiciel non bloquant" (identique au chapitre 4.3-2).
• Diagnostic
Par lecture des bits internes "image des SY19", il est possible de déterminer la
tâche origine du défaut (bit à l’état 1 = tâche en défaut). Dans le cas où plusieurs
bits internes "image SY19" sont à l’état 1, indiquant ainsi plusieurs tâches en
débordement, la tâche à l'origine du défaut est celle de priorité la plus élevée.
5/8
Structure logicielle multitâche
5
A
5.3
Mise en oeuvre du traitement multitâche
5.3-1 Influence des tâches entre elles
Le chronogramme de gestion des temps précédemment décrit permet de montrer
aisément l’influence de l’introduction d’une tâche, sur les temps d’exécution des
autres tâches. En effet lorsqu’un temps d’exécution de tâche périodique approche
la valeur de la période de cette tâche, le temps libre pour l’exécution des autres
tâches (système ou utilisateur) tend vers zéro. Il devient donc impossible au
processeur d’assurer le fonctionnement de l’automatisme.
La courbe représentée ci-dessous montre l’influence d’une tâche sur une tâche
moins rapide. Considérons une utilisation optimum des ressources du processeur,
soit un taux de charge constant et égal à 90%. Une tâche périodique est caractérisée par deux temps :
• tr
• te
période (ou temps de récurrence),
exécution (temps d’exécution de la tâche).
Pour un traitement multitâche, la somme des rapports te/tr de chaque tâche doit être
inférieure à 90% :
tr
te
te/tr < 90%
L’hyperbole ci-dessous montre l’influence d’une tâche par rapport à
une tâche moins prioritaire :
• en abscisse se trouvent les caractéristiques d’une tâche plus
prioritaire que celles qui figurent en ordonnées,
• Il est facile d’observer qu’un
rapport tr/te inférieur à 2 d’une
tâche plus prioritaire impose à
la tâche moins prioritaire un
rapport tr/te tendant vers des
valeurs inacceptables.
Exemple avec :
• tâche rapide tr=15 ms et te= 4 ms
ce qui donne tr/te = 3,75.
• tâche maître te = 60 ms.
La courbe définie pour la tâche
maître un tr/te = 1,55 d’où :
une période tâche maître tr :
60 x 1,55 = 93 ms soit environ
95 ms.
5
4
3
2
tr
te
1
2
3
4
1
Exemple de l'influence de la tâche rapide sur la tâche maitre
5/9
A
5.3-2 Gains apportés par les tâches auxiliaires
Les tâches auxiliaires affectées à des traitements particuliers vont donc permettre
de décharger la tâche maître dont la période pourra alors être réduite.
Tous les chiffres et démonstrations annoncés s’entendent avec une utilisation
optimale des ressources du processeur (taux de charge constant égal à 90%).
Le réseau de courbes ci-contre indique le gain apporté par la création d’une tâche
auxiliaire sur la tâche maître. En abscisse figure le gain souhaité en pour cent sur
la période de la tâche maître.
Les différentes courbes ont été définies en fonction de la quantité de programme
transféré (ou temps d’exécution) de la tâche maître vers une tâche auxiliaire.
Le résultat en ordonnées indique le ratio existant alors entre la période de la tâche
auxiliaire créée et celle de la nouvelle tâche maître.
Période auxiliaire
Période mast.
15
10% 20% 30% 40% 50% 60% 70% 80% 90%100%
10
5
0
0
5/10
10
20
30
40
50
60
70
80
90 100
Gain% Mast.
5
Structure logicielle multitâche
A
Exemple
Soit un programme monotâche dont la période de la tâche maître est 100 ms.
Nous désirons un gain de 20% sur cette période donc qu’elle atteigne une valeur
de 80 ms. Une tâche auxiliaire est crée à cet effet.
De part la structure et la connaissance du programme, une certaine quantité de
programme (représentée par le temps d’exécution de ce morceau de programme)
peut être transférée de la tâche maître vers la tâche auxiliaire déclarée.
Dans l’exemple, 30% du temps d’exécution du programme est transféré d’une
tâche à l’autre.
Période auxiliaire
Période mast.
10%
20%
30%
40%
50%
60%
5
3
0
0
10
20
30
40
50
Gain% Mast.
Le rapport des période vaut alors 3 suivant l’extrait de courbe ci-dessus, ce qui
définit la période de la tâche auxiliaire 0 :
tr = 3 x 80 (tr tâche maître) = 240 ms.
Le même raisonnement peut être reconduit pour la création de la tâche auxiliaire 1
vis à vis de la tâche auxiliaire 0 et ainsi de suite.
5/11
A
5.4
Modes de marche des tâches périodiques
Les différents états que peut prendre une application PL7-3 sont les suivants :
N_CONF, IDLE, STOP, RUN, DEFAUT.
N_CONF
APPLI
SY0
STOP
APPLI
▲
▲
▼
IDLE
APPLI
Init
▲
Run application
Run/Stop application
▼
▲
N_CONF TASK
RUN TASK
STOP TASK
BREAK TASK
INACTIVE TASK
5/12
RUN
APPLI
DEFAUT
APPLI
▲
Défaut application
Structure logicielle multitâche
5
A
N_CONF APPLI
Il n'existe aucune tâche utilisateur. Seules sont actives les tâches système qui
assurent les fonctions de communication sur TELWAY, MAPWAY, ETHWAY,
FIPWAY ou FIPIO. Le processeur ne commande aucun module en bac ou distant
et l'état des sorties TOR est à 0 (1).
IDLE APPLI
Les tâches utilisateur et les objets PL7-3 sont positionnés sur des valeurs de repli.
Aucun échange d'entrées/sorties n'est réalisé, les valeurs image du processeur et
les sorties TOR sont positionnées à 0, les valeurs images du processeur, autre que
TOR, sont spécifiques de la fonction gérée.
STOP APPLI
Les tâches utilisateur sont arrêtées en début de cycle. Les sorties des modules en bac
sont positionnées à 0 ou dans l'état de sécurité des sorties (suivant la valeur de SY8
et des bits SY32 à SY39). Les sorties des modules distants sont positionnées à la valeur
de repli, définie en configuration : maintient ou repli à 0 ou à 1(2).
(1) Un module d'E/S distant TBX peut appliquer des valeurs de repli ou de maintient, s'il a été
antérieurement configuré puis piloté par une application PL7-3. Il perdra sa configuration
sur une coupure de son alimentation.
(2) Sur un passage en STOP, un groupe de voies prend les valeurs de repli configurées,
lorsque la tâche qui le pilote a envoyé des valeurs application. Le groupe de voies perd
ses valeurs de repli lorsqu'il est reconfiguré (le système ne reconfigure pas
systématiquement un groupe de voies). Une phase préliminaire d'apprentissage assure
les contrôles.
5/13
A
RUN APPLI
Chaque tâche utilisateur possède un état local, dépendant des actions programmées et des requêtes de mise au point provenant de l'utilisateur.
• N_CONF TASK : la tâche est non configurée. Aucun module d'entrées/sorties ne
peut lui être affecté.
• RUN TASK : les sorties de la mémoire image sont cycliquement transmises vers
les modules de sortie. Ces valeurs sont positionnées sur l'interface physique du
module, excepté pour les modules en bac, lorsque le bit SY9 (mise à zéro des
sorties) ou le bit SY116 (suspension de la commande des sorties) sont à l'état 1.
• STOP TASK : arrêt partiel de l'application. L'ensemble des sorties des modules
en bac prennent la valeur de sécurité 0, excepté pour les bac ou un maintient a
été demandé : dans ce cas, le module garde la dernière valeur de la sortie. Les
modules pilotés dans une tâche toujours en RUN continus d'être rafraîchis. Les
sorties à distance pilotées par la tâche en STOP prennent leur valeur de repli; les
autres sorties à distance ne sont pas impactées.
• BREAK TASK : arrêt pour la mise au point de la tâche. Celle-ci est strictement
arrêtée à l'endroit défini par le point d'arrêt. Le comportement des sorties est
identique à celui de l'état STOP TASK.
• INACTIVE TASK : état initial sur un RUN provenant de l'état application IDLE
(excepté pour la tâche maître qui lance l'exécution de la tâche). Pour sortir de
l'état inactif, il est nécessaire de programmer l'action START CTRL de la tâche.
Sur une action RESET CTRL (retour à l'état inactif), les entrées/sorties en bac de
la tâche ne sont plus rafraîchies et reste en l'état quel que soit la consigne de
sécurité. Les entrées/sorties distantes prennent les valeurs de repli ou les valeurs
de sécurité (si l'application n'a pas encore envoyée une valeur significative).
• DEFAUT TASK : les sorties qui ont été pilotées au moins une fois, pour une tâche
en RUN, prennent leur valeur de repli, sinon la valeur de sécurité. Lors de la
reprise, chaque tâche en RUN appliquera les valeurs définies par l'application
(toutes les tâches, sauf la tâche maître sont positionnées dans l'état inactif).
Lorsque la coupure secteur est générale, les modules d'E/S distants TBX TOR
perdent leur configuration et applique de ce fait des valeurs de sécurité jusqu'à
ce qu'ils reçoivent une première valeur application.
5/14
Rôle des bits et mots système
6
A
Rôle des bits et des mots système
Sous chapitre
Chapitre 6
Page
6.1 Bits système
6/2
6.2 Mots système
6/10
6.3 Bits et mots système associés aux E/S distantes
6/16
Ce chapitre se termine à la page
6/16
6/1
A
6.1
Bits système
Les automates TSX/PMX 47/67/87/107-40 disposent de 128 bits système (SY0 à
SY127) qui indiquent l’état de l’automate ou permettent d’agir sur le fonctionnement
de celui-ci.
L’état de ces bits est à tester dans le programme utilisateur afin de détecter tout
événement de fonctionnement devant entraîner une procédure particulière de
traitement. Certains d’entre eux doivent être remis dans leur état initial ou normal
par programme. Cependant, les bits système qui sont remis dans leur état initial ou
normal par le système ne doivent pas l’être par programme ou par le terminal.
Bits
système
Fonction
Désignation
SY0
Reprise
à froid
normalement à l’état 0, ce bit est mis à l'état 1 par :
• changement d’une cartouche utilisateur,
• reprise secteur avec perte des données (défaut
batterie),
• programme utilisateur,
• le terminal.
Il est remis à 0 par le système après un cycle
d’exécution normale du programme.
Sur reprise à froid, l’automate repart en exécution, si cela est défini en configuration
(RUN AUTO) .
Fonctionnement : voir chapitre 7.2-3 "comportement sur reprise à froid".
SY1
Reprise
à chaud
normalement à l’état 0, ce bit est mis à l' état 1 par :
• action sur un verrou cartouche utilisateur,
• reprise secteur avec sauvegarde des données,
• programme utilisateur,
• le terminal.
Il est remis à 0 par le système avant la première mise
à jour des sorties.
Fonctionnement : voir chapitre 7.2-2 "comportement sur reprise à chaud".
SY2
6/2
Reprise
immédiate
normalement à l’état 1, ce bit doit être mis à 0 par
programme après chaque reprise immédiate, pour
que le système traite ces reprises. Il est mis à l’état 1
sur reprise secteur sans perte d’autonomie de l’alimentation. Le temps de la coupure est contenu dans
le mot système SW5.
Fonctionnement : voir chapitre 7.2-1 "comportement sur reprise immédiate".
Rôle des bits et mots système
6
A
Bits
système
Fonction
SY3
Désignation
/
bit non utilisé
SY4
SY5
SY6
SY7
10 ms
100 ms
1s
1 mn
Base
de
temps
bits dont le changement d’état est cadencé par une
horloge interne. Ils sont asynchrones par rapport à
l’automate.
SY8
Sécurité des
sorties en bac
(général)
normalement à l’état 1, ce bit peut être mis à l'état 0
par programme ou par le terminal :
• état 1 : provoque la mise à zéro des sorties en bac
de l’automate, selon l’état des bits SY32 à SY39;
en cas de non exécution normale du programme,
• état 0 : maintient les sorties en bac dans l’état défini,
en cas de non exécution normale du programme (les
bits SY32 à SY39 sont alors sans effet).
SY9
Mise à zéro
des sorties
en bac
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
en bac de l’automate, celui-ci exécutant son programme (RUN),
• état 0 : les sorties en bac sont mises à jour
normalement.
SY10
Défaut
entrées/sorties
(général)
normalement à l’état 1, ce bit est mis à l'état 0 sur
détection d'une des anomalies suivantes :
• défaut sur un module d’entrées/sorties d'un bac
de configuration de base ou d’extension (configuration non conforme, défaut d'échange, absence
bornier ou module, défaut module),
• défaut sur un bac d’extension (coupure ou défaut
alimentation, défaut liaison ou défaut numéro de
bornier).
• défaut sur un des équipements connecté sur FIPIO
(configuration d'un des modules non conforme, défaut
d'échange, défaut sur un des modules composant
l'équipement, coupure secteur, défaut d'alimentation
sur l'équipement ou point de connexion incorrect).
• défaut sur la liaison FIPIO (défaut liaison, codage
raccordement processeur incorrect, conflit maître
de voie sur FIPIO).
La présence de SY10 à 0, implique que l'un des bits
SY118 ou SY119 est également à 0.
L’un des bits défauts sorties SY40 à SY47 correspondant au bac en défaut (de base ou extension) est
également mis à l’état 0. Ce bit est remis à l’état 1 à
la disparition du défaut.
6/3
A
(*)
Bits
système
Fonction
Désignation
SY11
Rafraîchissement
mots communs
TELWAY, MAPWAY,
ETHWAY ou FIPWAY
normalement à l’état 0, ce bit est mis à l'état 1 dès
qu’une station a émis ces variables communes sur
le réseau.
Il peut être mis à 0 par programme ou par le terminal
afin de vérifier le cycle d’échange des mots communs.
SY12
Réseau 1 en
fonctionnement
normalement à l’état 0, ce bit est mis à l'état 1 dès
que le coupleur est opérationnel.
Il n’indique pas que toutes les stations fonctionnent.
Il est mis à l’état 0 sur défaut du coupleur.
SY13
Réseau 2 en
fonctionnement
idem SY12
SY14
Réseau 3 en
fonctionnement
idem SY12
SY15
Réseau 4 en
fonctionnement
idem SY12
SY16
Défaut
entrées/sorties (*)
(tâche)
normalement à l’état 1, ce bit est mis à l'état 0 sur
défaut d’un module d’entrées/sorties configuré dans
la dite tâche :
• comportement identique au bit SY10 pour les
modules en bac,
• pour les modules distants : défaut d'échange
entre le processeur et l'équipement sur FIPIO,
défaut interne à l'équipement, défaut process TOR
sur au moins une des entrées ou sorties d'un
module (disjonction d'une sortie ou de toutes les
sorties, défaut bornier, défaut d'alimentation
process).
SY16 doit être mis à l’état 1 par le programme
utilisateur.
SY17
Dépassement
de capacité (*)
(carry)
normalement à l’état 0, ce bit est mis à l'état 1 sur
dépassement de capacité lors d'une opération en
arithmétique non signé. Il représente alors la valeur
absolue maximale (65536 en simple longueur et
4 294 967 296 en double longueur).
Lors d’un décalage circulaire, il signale la sortie d’un
bit à 1.
Il doit être testé, par le programme utilisateur, après
chaque opération où il y a risque de dépassement
puis remis à 0 en cas de dépassement.
bit système significatif que pour la tâche dans laquelle il est testé
(voir fin de ce chapitre).
6/4
Rôle des bits et mots système
6
A
(*)
Bits
système
Fonction
Désignation
SY18
Débordement ou
erreur arithmétique (*)
"Overflow"
normalement à l’état 0, ce bit est mis à l'état 1 sur
débordement de capacité lors d'une opération soit :
• un mot simple longueur : résultat supérieur à
+ 32767 ou inférieur à - 32 768
• un mot double longueur : résultat supérieur à
+ 2 147 483 647 ou inférieur à - 2 147 483 648
Il doit être testé, par le programme utilisateur, après
chaque opération où il y a risque de débordement
puis remis à 0 en cas de débordement.
SY19
Débordement
tâche (*)
"Overrun"
normalement à l’état 0, ce bit est mis à l'état 1 en cas
de dépassement de la période exécution (temps
d’exécution de la tâche supérieur à la période définie
par l’utilisateur en configuration).
Un débordement prolongé de la tâche provoque le
passage en STOP de l’automate (voyant MEM
allumé).
Il est remis à l’état 0 par le programme utilisateur.
Fonctionnement : voir chapitre 4.3-2 "débordement
tâche".
SY20
Débordement
index (*)
(tâche)
normalement à l’état 0, ce bit est mis à l'état 1 lorsque
l’adresse de l’objet indexé devient inférieur à 0 ou
dépasse le nombre d'objets déclarés lors en configuration.
Il doit être testé, par le programme utilisateur, après
chaque opération où il y a risque de débordement,
puis remis à 0 en cas de débordement.
Fonctionnement : voir chapitre 2.5-2 "débordement
d’index".
SY21
Initialisation
Grafcet
(général)
normalement à l’état 0, ce bit est mis à l'état 1 par :
• reprise à froid, SY0 = 1,
• le programme utilisateur uniquement dans le
traitement préliminaire (PRL),
• le terminal.
A l’état 1, il provoque l’initialisation du Grafcet. Les
étapes actives sont désactivées et les étapes initiales sont activées
Il est remis à 0 par le système lors de l’exécution du
traitement séquentiel.
bit système significatif que pour la tâche dans laquelle il est testé
(voir fin de ce chapitre).
6/5
A
Bits
système
Fonction
Désignation
SY22
Remise à zéro
Grafcet
normalement à l’état 0, ce bit ne peut être mis à l'état
1 par programme, que dans le traitement préliminaire (PRL).
A l’état 1, il provoque la désactivation des étapes
actives sur l’ensemble du Grafcet.
Il est remis à 0 par le système lors de l'exécution du
traitement séquentiel
SY23
Figeage Grafcet
normalement à l’état 0, ce bit ne peut être mis à
l'état 1 par le programme utilisateur, que dans le
traitement préliminaire (PRL).
A l’état 1, il permet de maintenir le Grafcet dans un
état stable (aucune évolution d’étapes).
Il doit être remis à 0 par le programme, uniquement
dans le traitement préliminaire (PRL), afin de
permettre l’évolution du Grafcet à partir de la situation
figée.
SY24
Remise à zéro
macro-étapes
normalement à l’état 0, ce bit ne peut être mis à l'état
1 par le programme utilisateur que dans le traitement préliminaire (PRL).
A l’état 1, il permet de remettre à 0 les macro-étapes
désignées par les mots systèmes SW8 à SW11 :
• SW8 : bits 0 à F → macro-étapes 0 à 15,
• SW9 : bits 0 à F → macro-étapes 16 à 31,
• SW10 : bits 0 à F → macro-étapes 32 à 47,
• SW11 : bits 0 à F → macro-étapes 48 à 63,
Une macro-étape est mise à 0 lors du passage à 1
de SY24 et quand le bit qui la représente est à 0.
Les bits des mots SW8 à SW11 sont positionnés à 1
sur initialisation du Grafcet (SY21 = 1).
Il est remis à 0 par le système lors de l'exécution du
traitement séquentiel.
SY25
Multiactivité
normalement à l’état 0, ce bit est mis à l'état 1 dès
qu’une macro-étape monoactive devient multiactive.
Sans incidence sur le traitement séquentiel, il permet
à l’utilisateur de surveiller les étapes qu’il a déclarées
monoactives. Il peut connaître la macro-étapes
devenue multiactive par la lecture du contenu des
mots système SW12 à SW15 (voir chapitre 6.2).
Il est remis à 0 par programme ou par le terminal.
6/6
6
Rôle des bits et mots système
A
Bits
système
Fonction
Désignation
SY26
Dépassement
activation
normalement à l’état 0, ce bit est mis à l'état 1 lorsque les possibilités d’activation (étapes ou transitions) sont dépassées (voir langage Grafcet "traitement séquentiel").
Un dépassement provoque le passage en STOP de
l’automate (voyant MEM allumé).
La mise en exécution (RUN) par le terminal doit être
précédée d’une initialisation (mise à 1 de SY21) par
ce même terminal.
Il est ainsi remis à l’état 0 sur initialisation du terminal
Les mots système SW6 et SW7 contiennent les
nombres de postes occupés dans les tables d’activité Grafcet (SW6 postes étapes et SW7 postes
transitions). Lors d'un dépassement, les mots SW6
et SW7 contiennent le nombre de postes correspondants au cycle avant dépassement.
SY27 à
SY31
SY32 à
SY39
bits système non utilisés
Sécurité des
sorties en bac
normalement à l’état 1, ces bits peuvent être mis à
l’état 0 par programme ou par le terminal.
Ils sont complémentaires au bit "Sécurité des sorties
en bac" SY8 et sont affectés aux sorties des configurations de base ou d’extension :
bacs 0/1
2/3
4/5
6/7
8/9
A/B
bits SY32 SY33 SY34 SY35 SY36 SY37
bacs C/D
E/F
bits SY38 SY39
Ils permettent selon leur état et si le bit système SY8
est à 1 de forcer à 0 ou de maintenir en l’état les
sorties en bac de la configuration sur non exécution
normale du programme :
• SY 3x = 1 force à 0 les sorties des bacs correspondants,
• SY 3x = 0 maintien les sorties dans l'état avec
2 < x < 9.
Fonctionnement : voir chapitre 9.3.
6/7
A
Bit
système
Fonction
Désignation
SY40 à
SY47
Défaut
entrées/sorties
en bac
normalement à l’état 1, ce bit est mis à l'état 0 sur
défaut d’entrées/sorties de la configuration à laquelle
il est affecté :
bacs 0/1
2/3
4/5
6/7
8/9
A/B
bits SY40 SY41 SY42 SY43 SY44 SY45
bacs C/D
E/F
bits SY46 SY47
La mise à 0 sur défaut de l’un de ces bits entraîne:
• la mise à 0 du bit général SY10 (voir SY10),
• le voyant I/O du processeur est allumé,
• le voyant I/O du module gestion d’un bac d’extension est allumé si le défaut porte sur un bac 2
à F,
• le bit I/Oxy,S du module en défaut est mis à
l’état 1.
Ils sont remis à l’état 1 à la disparition du défaut.
Les différents bits défauts d’entrées/sorties, SY10,
SY40 et I/Oxy,S permettent d'élaborer, par programme une structure de traitement des défauts
(voir chapitre 9.4).
SY48
Validation temps
d’exécution ou
temps maximal
des tâches
périodiques
à l’état 0 par défaut, ce bit est mis à 1 ou 0 par programme ou par le terminal.
Si SY48 = 0, les mots système SW40 à SW46 indiquent le temps d’exécution du cycle le plus long,
pour chacune des tâches.
Si SY48 = 1, les mots système SW40 à SW46
indiquent le temps d’exécution du dernier cycle,
pour chacune des tâches. (voir définition mots système SW40 à SW46 chapitre 6.2).
SY49 et
SY50
Gestion du temps
à l’état 0 par défaut, ce bit est mis à 1 ou 0 par programme ou par le terminal.
SY49 = 0 et SY50 = 0 : accès à la date et à l'heure
par lecture des mots système SW50 à SW57.
SY49 = 0 et SY50 = 1 : mise à jour de la date et de
l’heure par écriture des mots système SW50 à
SW57 (nécessaire après coupure secteur).
SY49 = 1 et SY50 = 0 : accès à la date, à l’heure et
au code du dernier arrêt de l’exécution par lecture
des mots SW50 à SW57.
(voir définition mots système SW50 à SW57 chapitre 6.2).
6/8
Rôle des bits et mots système
6
A
Bits
système
SY51
SY52
Fonction
Désignation
/
RAZ compteurs de
messages
bit système réservé
bit système réservé
SY53 à
SY99
/
SY100 à
SY115
Option UNI-TELWAY
intégrée
bits système réservés
SY116
Suspension de la
commande des
sorties en bac
ce bit à l'état 1 provoque la suspension de la
mise à jour des sorties TOR et Registres de
l'ensemble des modules en bac.
SY117
Suspension de
l'acquisition des
entrées en bac
ce bit à l'état 1 provoque la suspension de l'acquisition des entrées TOR et Registres de l'ensemble des
modules en bac.
SY118
Défaut d'E/S
distantes
normalement à l'état 1, ce bit est mis à 0 sur détection
d'un défaut avec un équipement sur FIPIO. Les causes
du défaut sont listées dans la description de SY10.
SY119
Défaut d'E/S
en bac
normalement à l'état 1, ce bit est mis à 0 sur détection
d'un défaut avec un module en bac. Les causes du
défaut sont listées dans la description de SY10.
SY120 à
SY127
/
bits système non utilisés
bits système non utilisés
(*)
Bits affectés à chaque tâche
Les bits SY16, SY17, SY19 et SY20 sont affectés à chacune des tâches configurées (IT, FAST, MAST, AUX0 à AUX3). De ce fait, ils ne sont significatifs que pour
la tâche dans laquelle ils sont testés.
Exemple : si dans la tâche rapide (FAST) une opération arithmétique entraîne un
débordement de capacité, le bit système SY18 est mis à l’état 1, soit :
• SY18 testé par le programme dans la tâche FAST vaut 1,
• SY18 testé par le programme dans la tâche MAST ou AUXi vaut 0 puisque le débordement en question n’est pas du à une opération écrite dans l’une de ces tâches.
L’initialisation de ces bits doit être assurée dans la tâche origine de leur
changement d’état.
Dans le cas où l’exploitation de ces bits doit être faite dans une autre tâche, il est
nécessaire de :
• dans la tâche origine, recopier l’état des bits système SY16 à SY20 dans 5 bits
internes Bi,
• dans l’autre tâche, tester ces bits internes pour exploitation.
Remarques : • les bits système SY16 à SY20, accessibles par le terminal,
correspondent aux bits affectés à la tâche maître.
• les bits système SY21 à SY26 sont affectés seulement à la tâche
maître.
6/9
A
6.2
Mots système
Les automates TSX/PMX 47/67/87/107-40 disposent de 128 mots système (SW0
à SW127) décrits ci-après :
Mots
système
Fonction
Désignation
SW0
Mise à jour des
mots communs du
réseau principal
les 16 bits de ce mot (0 à F) représente les 16 premières stations du réseau.
L’état 1 d’un bit indique que la station correspondante à émis ses mots communs.
Ce mot permet ainsi de s’assurer que l'automate de
cette station est en RUN.
Il est réinitialisé à la valeur 0 par programme seulement.
SW1
/
mot système réservé
SW2
Adresse principale
de la station
ce mot indique pour le réseau principal :
• le numéro de station (octet de poids faible)
= 0 à 127,
• le numéro de réseau (octet de poids fort) = 0 à 63.
Les bits non utilisés sont à 0.
SW3
Table des 16
stations du
réseau principal
ces mots indiquent pour le réseau principal, l'état des
16 premières stations. L’état 1 d'un bit indique que
le coupleur de la station correspondante fonctionne
(sur TELWAY uniquement).
Ces mots sont remis à jour par le système.
SW4
/
mot système réservé
SW5
Temps reprise
immédiate
ce mot contient le temps en ms de la coupure secteur
dans le cas d’une reprise immédiate (coupure sans
perte d’autonomie de l’alimentation de la configuration de base).
Voir chapitre 6.1 : SY2.
Il est initialisé à une nouvelle valeur sur chaque
reprise immédiate.
SW6
Table d’activité des
étapes Grafcet
ce mot contient le nombre de postes occupés dans
la table des étapes actives; soit les étapes actives,
à activer et à désactiver.
Ce mot est mis à jour par le système lors de chaque
évolution du graphe en fin de tâche maître.
Voir chapitre 6.1 : SY26.
6/10
Rôle des bits et mots système
6
A
Mots
système
Fonction
Désignation
SW7
Table de validité des
transitions Grafcet
ce mot contient le nombre de postes occupés dans
la table des transitions, soit les transitions valides,
franchies et devenant valides sur un cycle.
Ce mot est mis à jour par le système lors de chaque
évolution du graphe en fin de tâche maître.
Voir chapitre 6.1 : SY26
SW8 à
SW11
Remise à zéro
des macro-étapes
Grafcet
chaque bit de ces 4 mots représente l’une des 64
macro-étapes du Grafcet.
Normalement à l’état 1, ces bits mis par programme
à l’état 0 et associés au passage à l’état 1 du bit
SY24, permettent la remise à zéro des macroétapes correspondantes.
Voir chapitre 6.1 : SY24
SW12 à
SW15
Table de surveillance
des macro-étapes
Grafcet
chaque bit de ces 4 mots représente l’une des 64
macro-étapes du Grafcet.
Normalement à l’état 0, le bit correspondant à la
macro-étape monoactive devenue multiactive est
mis à l’état 1, ce qui entraîne la mise à 1 du bit SY25.
Après test, ces mots doivent être initialisés à 0 par
programme ou par le terminal.
La mise à l’état 1 du bit SY21 provoque également
une initialisation à 0 des mots SW12 à SW15.
SW16 à
SW18
Recopie d’une
partie de la
RAM_SYSTEM
ces mots permettent de recopier une partie de la
RAM_SYSTEM dans des mots internes Wi:
• SW16 contient l’adresse Wi de début de destination,
• SW17 contient l’adresse de début de la
RAM_SYSTEM à copier,
• SW18 le nombre d’octets à copier.
SW19
Modification de la
période des tâches
périodiques
ce mot permet de modifier la période d’une tâche
utilisateur. Il doit contenir pour cela :
• la nouvelle période définie dans la base temps
configurée pour la tâche correspondante (octet
de poids faible), exprimée en hexadécimal,
• le numéro de la tâche à modifier ( 2 = tâche rapide,
3 = tâche maître, 4 à 7 = tâches auxiliaires 0 à 3).
n° tâche
Période
FAST/MAST : en ms,
AUX
: en x10ms
6/11
A
Mots
système
Fonction
SW20 et
SW21
Temps de
fonctionnement
système
ces mots contiennent le temps écoulé depuis la
dernière reprise à froid, coupures secteur non
comprise (*) (base de temps 100 ms).
Ils sont mis à jour par le système.
SW22 et
SW23
Temps de
fonctionnement
application
ces mots contiennent le temps écoulé depuis la dernière reprise à froid ou mise à l’état 1 de SY0,
coupures secteur comprises (base de temps 100
ms). Ils sont mis à jour par le système.
SW24
SW25
Désignation
/
mot système réservé
/
mot système réservé
SW26 à
SW39
Compteurs de
messages
mots système réservés
SW40 à
SW46
Temps maximum ou
temps d’exécution
des tâches
le système gère un mot par tâche, accessible en lecture :
• si SY48 = 0 ces mots indiquent le temps d’exécution du cycle le plus long, pour chaque tâche.
• si SY48 = 1 ces mots indiquent le temps d’exécution du dernier cycle, pour chaque tâche.
Le temps correspond au temps écoulé entre le début
(acquisition des entrées) et la fin (mise à jour des
sorties) d’un cycle de la tâche, en tenant compte des
interruptions dues aux tâches plus prioritaires.
SW40
SW41
SW42
SW43
SW44
SW45
SW46
SW47 à
SW49
(*)
/
: tâche rapide
: tâche maître
: tâche auxiliaire 0
: tâche auxiliaire 1
: tâche auxiliaire 2
: tâche auxiliaire 4
: tâche interruption
mots système réservés.
La mise à l'état 1 de SY0 par le terminal n'est pas à considérer comme une reprise à froid
6/12
Rôle des bits et mots système
6
A
Mots
système
Fonction
Désignation
SW50 à
SW57
Gestion du temps
ces mots contiennent selon l’état des bits système
SY49 à SY50 :
• la date et l’heure courante,
• la date, l’heure et le code du dernier arrêt de
l’exécution.
SW50 = mot toujours à 0
SW51 = secondes (0 à 59)
SW52 = minutes (0 à 59)
SW53 = heures 0 à 23)
SW54 = jours (1 à 31)
SW55 = mois (1 à 12)
SW56 = années (0 à 9999)
SW57 = jour de la semaine (0 à 6) si lecture ou
mise à jour de la date et de l’heure,
SW57 = code arrêt si lecture date et heure du dernier arrêt exécution,
1 = passage de RUN à STOP par le terminal,
2 = arrêt sur défaut logiciel (débordement
tâche ou débordement Grafcet),
3 = réservé,
4 = coupure secteur ou action verrou
cartouche,
5 = arrêt sur défaut matériel,
6 = arrêt sur instruction HALT.
SW58 à
SW59
/
mots système réservés
SW60
Code d’erreur fatale
mot système réservé
SW61 à
SW63
Code NPCALL
inconnu
mots système réservés
SW64 à
SW72
Premier coupleur
réseau géré
(multi-réseau)
• SW64 à SW67 : ces mots contiennent les indicateurs de rafraîchissement des mots communs
pour les stations (0 à 63) de ce réseau (voir
description SW0),
• SW68 à SW71 : ces mots contiennent l'état des
coupleurs (0 à 63) du réseau (TELWAY uniquement) (voir description SW3).
• SW72 : ce mot contient l’adresse réseau du
premier coupleur (voir description SW2).
6/13
A
Mots
système
Fonction
Désignation
SW73 à
SW81
Deuxième coupleur
réseau géré
(multi-réseau)
SW73 à SW76 : ces mots contiennent les indicateurs de rafraîchissement des mots communs pour
les stations (0 à 63) de ce réseau (voir description
SW0),
• SW77 à SW80 : ces mots contiennent l’état des
coupleurs (0 à 63) du réseau (TELWAY uniquement) (voir description SW3),
• SW81 : ce mot contient l’adresse réseau du
deuxième coupleur (voir description SW2).
SW82 à
SW90
Troisième coupleur
réseau géré
(multi-réseau)
• SW82 à SW85 : ces mots contiennent les indicateurs de rafraîchissement des mots communs
pour les stations (0 à 63) de ce réseau (voir description SW0),
• SW86 à SW89 : ces mots contiennent l’état des
coupleurs (0 à 63) du réseau (TELWAY uniquement) (voir description SW3),
• SW90 : ce mot contient l’adresse réseau du
troisième coupleur (voir description SW2).
SW91 à
SW99
Quatrième coupleur
réseau géré
(multi-réseau)
• SW91 à SW94 : ces mots contiennent les indicateurs de rafraîchissement des mots communs
pour les stations (0 à 63) de ce réseau (voir
description SW0),
• SW95 à SW98 : ces mots contiennent l’état des
coupleurs (0 à 63) du réseau (TELWAY uniquement) (voir description SW3),
• SW99 : ce mot contient l’adresse réseau du
quatrième coupleur (voir description SW2).
SW100 à
SW115
Registres pour
prise UNI-TELWAY
intégrée
ces mots servent de mots registres d’E/S pour le
prise UNI-TELWAY, située en face avant de certains processeurs :
• SW100 : mot d’état,
• SW101 et SW102 : mot d’état des données
événementielles,
• SW103 à SW107 : mots réservés,
• SW108 : mot de commande,
• SW109 à SW115 : mots réservés.
6/14
Rôle des bits et mots système
6
A
Mots
système
Fonction
Désignation
SW116
Défaut E/S distantes
(tâche)
ce mot signale un défaut de dialogue sur FIPIO entre
le processeur et un module dans la dite tâche.
Chaque bit à 1 signale un défaut spécifique :
• B0 Invalidité globale : défaut grave avec l'ensemble des équipements de la tâche (ensemble des
modules absent, FIPIO non opérationnel),
• B1 Existence de valeurs invalides : une ou plusieurs variables n'a jamais été échangées avec un
TBX (TBX absent ou incompatible avec le type
configuré),
• B2 Absence totale de mise à jour : l'ensemble des
données n'a pas été remis à jour depuis le cycle
précédent. Il démontre une incohérence importante
entre la période de la tâche et l'activité du bus,
• B3 Absence partielle de mise à jour : existence de
données qui n'ont pas été remise à jour depuis le
cycle précédent. Il démontre une incohérence entre
la période de la tâche et l'activité du bus,
• B4 Défaut total de dialogue : défaut de dialogue
entre le processeur et l'ensemble des équipements
(réseau parasité, rupture d'une dérivation, équipements absents),
• B5 Défaut partiel de dialogue : défaut de dialogue
entre le processeur et certains de ses équipements
(réseau parasité, rupture d'une dérivation, équipements absents),
• B6 Défaut de rafraîchissement global : ensemble
des équipements en phase de configuration,
• B7 Défaut de rafraîchissement partiel : existence
d'équipement(s) en phase de configuration ou
équipement(s) partiellement présent(s) (extension
absente).
SW117
SW118 à
SW121
SW122 à
/
mot système non utilisé
Défaut d'E/S distantes chaque bit de ce groupe de mots est significatif de
(équipement)
l'état d'un point de connexion. La présence d'un bit
à 0 indique l'apparition d'un défaut d'échange ou de
process TOR avec un équipement : SW118,0 =
équipement au point de connexion 0, etc.
/
mots système non utilisés
SW127
6/15
A
6.3
Bits et mots système associés aux E/S distantes
Les bits et mots système, associés aux entrées/sorties distantes, sont mis à jour par
les tâches utilisateur ou par la tâche de surveillance, en respectant l'algorithme
suivant :
Tâche de surveillance
Si
Absence d'un module ou défaut de configuration sur un équipement,
Détection d'un défaut interne à l'équipement ou relatif aux échanges,
Détection d'un défaut externe à l'équipement (court-circuit, circuit ouvert, ...).
Alors SW11i,j positionné à l'état 0,
SY118 positionné à l'état 0,
SY10 positionné à l'état 0,
Voyant I/O allumé.
Sinon SW11i,j positionné à l'état 1,
Remise à jour des objets globaux de l'ensemble des périphériques.
Tâche périodique
Si
Détection d'un défaut d'échange ou d'un défaut sur une voie de l'équipement.
Alors SY16 positionné à 0,
SW11i,j positionné à 0,
SY118 positionné à l'état 0,
SY10 positionné à l'état 0.
6/16
Coupure et reprise secteur
7
A
Coupure et reprise secteur
Chapitre 7
Sous chapitre
7.1 Principe
Page
7/2
7.1-1 Fonctionnement de l’automate à la coupure secteur
7.1-2 Sauvegarde du contexte système et application
7.1-3 Fonctionnement de l’automate à la reprise secteur
7/2
7/2
7/3
7.2 Comportement sur reprise secteur en structure monotâche
7/4
7.2-1 Comportement de l’automate sur reprise immédiate
7.2-2 Comportement de l’automate sur reprise à chaud
7.2-3 Comportement de l’automate sur reprise à froid
7/4
7/6
7/8
7.3 Comportement sur reprise secteur en structure multitâche
7/10
7.3-1 Comportement sur reprise immédiate
7.3-2 Comportement sur reprise à chaud
7.3-3 Comportement sur reprise à froid
Ce chapitre se termine à la page
7/10
7/10
7/10
7/10
7/1
A
7.1
Principe
Pour éviter tout aléa de fonctionnement de l’automatisme en cas de coupure secteur
ou de sous tension anormale, les modules alimentation des automates TSX/PMX 47/
67/87/107-40 disposent d’un ensemble détectant la présence de la tension secteur. De
plus ces alimentations sont équipées d’un dispositif de surveillance de la disparition
secteur (dispositif au fonctionnement optionnel connecté sur le primaire des alimentations). Ce dispositif permet de traiter chaque coupure secteur en supprimant la prise en
compte d’états d’entrées erronés suite à la disparition secteur, et ceci tout en réduisant
au maximum les délais de reprise de l’exécution du programme utilisateur.
D’origine ce dispositif de surveillance secteur est en service.
7.1-1 Fonctionnement de l’automate à la coupure secteur
Durée de la coupure secteur
Comportement de l’automate
Inférieur à 10 ms
• Exécution normale du programme
Supérieur à 10ms et inférieur à
l’autonomie de l’alimentation
(environ 200ms).
• Arrêt de la scrutation du programme avant la
disparition de la tension sur les entrées.
• Sauvegarde du contexte système et application.
• Comptage du temps d’arrêt application dans le
mot système SW5.
• Suivant l’état du bit SY8 (sécurité) : forçage
des sorties en bac à zéro (SY8 = 1) ou maintient des sorties en bac dans l’état (SY8 = 0).
• Positionnement des sorties à distance déjà commandées à une valeur de repli, définie en configuration. Positionnement des autres sorties à
distance à la valeur de sécurité.
Supérieure à l’autonomie de
l’alimentation (200ms).
• Processeur arrêté hors tension.
7.1-2 Sauvegarde du contexte système et application
Cette sauvegarde consiste pendant l’autonomie de l’alimentation à :
• calculer la valeur du checksum de la mémoire RAM du processeur (pointeur
d’instruction, registres internes,...),
• transférer le contenu de cette mémoire et de son checksum dans la mémoire
RAM secourue du processeur de l’automate.
A la réapparition du secteur, cette sauvegarde est comparée au contexte présent
et selon le résultat, le type de la reprise secteur est immédiat, à chaud ou à froid.
7/2
Coupure et reprise secteur
7
A
7.1-3 Fonctionnement de l’automate à la reprise secteur
Type de reprise secteur
Comportement de l’automate
Reprise après coupure inférieure
à l’autonomie de l’alimentation (200ms) :
• avec choix pour reprise immédiate
(SY2 positionné à 0),
• sans choix pour reprise immédiate
(SY2 positionné à 1).
• Reprise immédiate, avec contexte
cohérent vis-à-vis de l’application.
• Reprise à chaud, avec contexte
cohérent vis-à-vis de l’application.
Reprise après coupure supérieure
à l’autonomie de l’alimentation :
• batteries correctes et cartouches
inchangées (SY1 = 1),
• batteries défectueuses ou changement de cartouche (SY0 = 1).
• Reprise à chaud, avec contexte
cohérent vis-à-vis de l’application.
• Reprise à froid, avec initialisation
des données du langage.
Synoptique
RUN
Application
Défaut secteur
Retour secteur
Défaut >
10ms
OUI STOP
Appli
Défaut >
Autonomie
NON
NON
(1)
Choix reprise
immédiate (SY2=0)
OUI
Exécution normale
du programme
(1)
Reprise
immédiate
OUI
Batterie
OK
NON
OUI
Changement
NON cartouche?
NON
Reprise
à chaud
OUI
Reprise
à froid
le choix reprise immédiate, fixé par l’utilisateur, est imposé dès lors que sur reprise secteur,
le bit SY2 est mis à 0 par le programme .
7/3
A
7.2
Comportement sur reprise secteur en structure monotâche
7.2-1 Comportement de l’automate sur reprise immédiate : SY2 = 0
Il n’y a pas eu perte d’autonomie de l’alimentation et le bit système SY2 était à
l’état 0 au moment de la disparition du secteur.
Synoptique
Acquisition
des entrées
Exécution du programme
TOP
L1
L2
L3
Coupure
secteur
Ln
Ln + 1
OUI
Retour secteur *
sans perte d'autonomie
NON
Attente 40 ms
Traitement éventuel
de la reprise immediate
! RESET SY2
BOT
Mise à jour
des sorties
7/4
• Arrêt du processeur*
• Sauvegarde du
contexte application
*
• Mise à 1 de SY2 *
• Mémorisation du
temps de coupure
(SW5)
Coupure et reprise secteur
7
A
Attente 40 ms
Ce temps permet aux tensions d’alimentation des entrées et des sorties de se
stabiliser, ce qui évite de prendre en compte des valeurs aléatoires lors de
l’acquisition des entrées.
Mémorisation du temps de coupure
Le temps de coupure secteur (en ms) est mémorisé dans le mot système SW5 pour
exploitation éventuelle dans le programme utilisateur. L’exécution du programme
reprend à partir de l’élément où a eu lieu la coupure secteur, avec mise à jour des
sorties en fin de cycle.
Traitement éventuel de la reprise immédiate
Si l’utilisateur désire un traitement particulier vis-à-vis de l’application en cas de
reprise immédiate (utilisation de SW5), il doit alors écrire en fin de programme
(avant mise à jour des sorties), le programme correspondant. Les modules à
distance qui perdent leur configuration seront reconfigurés en continu. Dans tous
les cas, l’utilisateur doit remettre à 0 le bit système SY2 pour prendre en compte la
prochaine coupure secteur d’une éventuelle reprise immédiate.
Evolution des sorties
Pendant la coupure secteur, l’état des sorties en bac dépend de l’état dans lequel
l’utilisateur aura forcé le bit système SY8.
SY8 = 0 les sorties sont maintenues dans l’état,
SY8 = 1 les sorties sont forcées à 0 pendant les états repérés par * sur le
synoptique, si les bits "sécurité bacs" SY32 à SY39 correspondants
sont à 1.
Les sorties à distances déjà commandées prennent la valeur de repli et les autres
sorties la valeur de sécurité.
7/5
A
7.2-2 Comportement de l’automate sur reprise à chaud : SY1 = 1
Synoptique
Acquisition
des entrées
Exécution du programme
TOP
L1
L2
L3
L5
SY1 = 1
Traitement éventuel
de la reprise à chaud
Coupure
secteur
• Arrêt du processeur
• Sauvegarde du
contexte application
Retour secteur
> autonomie
OUI
Auto-tests de la
configuration (150ms)
NON
Ln
Mise à 1 de SY1
Mise à 0
de SY1
Mise à jour
des sorties
7/6
Coupure et reprise secteur
7
A
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 en bac et à distance (avec reconfiguration des modules à
distance s'il y a lieu de le faire) puis il relance la tâche maître avec le bit SY1
positionné à 1 pendant un cycle de la tâche.
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 SY1 à 1 en
début de programme de la tâche maître.
Evolution des sorties
Pendant une coupure secteur, l’état des sorties dépend de l’état dans lequel
l’utilisateur aura forcé le bit système SY8.
SY8 = 0 les sorties sont maintenues dans l’état pendant l’autonomie de l’alimentation,
SY8 = 1 les sorties sont forcées à 0, à partir de l’arrêt du processeur et cela jusqu’à
la mise à jour de ces sorties si les bits SY32 à SY39 sont égal à 1.
Les sorties des modules à distance reconfigurés (coupure secteur locale) ou les
sorties jamais commandés prennent la valeur de sécurité 0, les autres sorties
prennent la valeur de repli.
7/7
A
7.2-3 Comportement de l’automate sur reprise à froid : SY0 = 1
Synoptique
Acquisition
des entrées
Exécution du programme
TOP
• Arrêt du processeur
• Sauvegarde du
contexte application
SY0 = 0 alors,
Traitement éventuel
de la reprise à froid
Retour secteur
Coupure
secteur
OUI
Auto-tests de la
configuration (500ms)
NON
Initialisation des
données et du système
Mise à jour
des sorties
7/8
Mise à 1 de SY0
Coupure et reprise secteur
7
A
Initialisation des données et du système ce qui correspond à :
• remise à zéro dans la mémoire bits des bits I/O, Bi,
• initialisation des bits système,
• mise à l’état 1 du bit système SY21 pour initialisation du Grafcet lors de l’exécution
du traitement séquentiel CHART,
• mise à zéro de l’espace données, donc perte des valeurs de présélection des
blocs temporisateurs, monostables et compteurs acquises en mode REGLAGE
ou DONNEES. Le contenu des mots Wi et DWi reste inchangé ou est mis à zéro,
suivant le choix de l’utilisateur fait en configuration.
• annulation des forçages de bits et des blocages d’étapes.
Traitement de la reprise à froid
Après la phase d’initialisation du démarrage à froid, aucune étape du Grafcet n’est
active et SY21 est à 1.
Le système effectue un cycle de reprise à froid qui provoque la configuration des
modules à distance, à partie de la tâche pilote. Lors de l’exécution du premier cycle
de la tâche maître plusieurs cas de redémarrage de l’application sont possibles :
• SY21 = 1, les étapes initiales sont activées,
• SY21 a été positionné à 0 par programme dans le préliminaire ou par un terminal
(RESET SY21). Dans ce cas aucune étape n’est active,
• Dans le préliminaire, SY21 à été positionné à 0 (RESET SY21) et des étapes ont
été activées (SET Xi). Dans ce cas l’exécution du Grafcet démarre sur les étapes
activées.
Si l’utilisateur désire un traitement particulier vis-à-vis de l’application en cas de
reprise à froid (par exemple envoi de la configuration aux coupleurs intelligents,...),
il a la possibilité de tester SY0 (si SY0 = 1, alors traitement de la reprise à froid).
Sur reprise à 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
Quel que soit l’état du bit système SY8, les sorties en bac sont initialisées à l’état
0 et seront positionnées lors de la mise à jour de celle-ci.
Les sorties à distance sont initialisées à la valeur de sécurité 0, jusqu'à ce qu'elles
reçoivent une première valeur application.
7/9
A
7.3
Comportement sur reprise secteur en structure multitâche
De la même façon qu’en structure monotâche, les informations fournies par le
module alimentation de la configuration de base et destinées au processeur
automate sont gérées avec les mêmes incidences. Le principal objectif reste
d’éviter tout aléa de fonctionnement de l’automatisme.
Le principe de fonctionnement des coupures et reprises secteur est alors affecté à
l’ensemble des tâches configurées.
7.3-1 Comportement sur reprise immédiate
Le comportement de l’automate est identique à celui décrit au chapitre 7.2-1. Il y a
reprise de l’exécution du programme à partir de l’élément où a eu lieu la coupure
quelle que soit la tâche exécutée.
7.3-2 Comportement sur reprise à chaud
Le comportement de l’automate est identique à celui décrit au chapitre 7.2-2.
Cependant lors de la reprise secteur les séquences suivantes sont déroulées :
• chaque tâche en cours à la coupure secteur termine son cycle sans mise à jour
des sorties,
• les tâches interruption, rapide et auxiliaires sont désactivées,
• le cycle de la tâche maître est relancé normalement, acquisition des entrées,
traitement programme avec mise à jour des sorties (identique au chapitre 7.2-2).
Lors du traitement programme, l’exécution des fonctions Contrôle réactive les
tâches périodiques correspondantes. Dès leur appel période, leur cycle est assuré
normalement (acquisition des entrées, traitement programme avec mise à jour des
sorties).
7.3-3 Comportement sur reprise à froid
Il est identique à celui décrit au chapitre 7.2-3. La tâche maître est la seule tâche
relancée. Les autres tâches périodiques seront activées par programme (exécution
du bloc fonction CTRL correspondant). Leur cycle sera alors exécuté normalement
dès l’appel de leur top horloge.
7/10
Modification en connecté
8
A
Modification en connecté
Sous chapitre
Chapitre 8
Page
8.1 Principe
8/2
8.2 Modification en connecté, automate en STOP
8/2
8.2-1 Généralités
8.2-2 Redémarrage de l’application
8.3 Modification en connecté, automate en RUN
8.3-1 Généralités
8.3-2 Perturbation des tâches
8.4 Limitations
8.4-1 Limites des modifications
8.4-2 Modifications simultanées
Ce chapitre se termine à la page
8/2
8/2
8/3
8/3
8/3
8/6
8/6
8/7
8/8
8/1
A
8.1
Principe
En connecté (ou en ligne) le terminal est raccordé à l’automate et la modification
intervient directement dans la mémoire de l’automate.
Cette modification peut s’appliquer à des paramètres de configuration, au programme ou aux constantes standards et internes des OFBs.
Modification des paramètres de configuration
Elle ne s’applique qu’aux paramètres de repli qui sont utilisés sur démarrage à froid
et n’a aucun effet immédiat sur l’exécution du programme application (aussi bien
en STOP qu’en RUN).
Modification du programme
Si en local les modifications du programme sont inoffensives, en mode connecté il
est nécessaire de prendre en compte leurs répercussions sur le processus qui est
commandé. On distingue alors deux fonctionnements différents selon que le
programme application est en exécution (RUN) ou à l’arrêt (STOP).
8.2
Modification en connecté, automate en STOP
8.2-1 Généralités
L’application n’étant plus exécutée, les modifications seront sans effet sur le
process jusqu’au redémarrage de l’application. Celui-ci dépend du type de
modifications et n’est pas forcé sur les étapes initiales (SY21 reste à 0).
8.2-2 Redémarrage de l’application
Le redémarrage de l’application se fera autant que possible sur l’état qui existait
avant les modifications :
• toute modification hors du Grafcet n’a aucune influence sur l’état du process,
• si certaines modifications du graphe peuvent par contre affecter la situation
enregistrée (par exemple effacement d’une étape active), une nouvelle situation
qui considère que cette étape a été désactivée est alors évaluée.
Au choix de l’utilisateur, le redémarrage peut se faire :
• sur l’état qui existait avant les modifications,
• sur les étapes initiales (SET SY21),
• sur un prépositionnement d’étapes (SET/RESET Xi).
8/2
Modification en connecté
8
A
8.3
Modification en connecté, automate en RUN
8.3-1 Généralités
La modification d’une application en RUN est une opération dangereuse, car elle
a une répercussion directe sur le process commandé. Elle ne doit donc être utilisée
que pour des évolutions mineures (par exemple ajout d’une condition de sécurité
dans une équation) et lorsque le processus est dans un état stable donc l’UC peu
chargée. Elle est sous l’entière responsabilité de celui qui la pratique.
8.3-2 Perturbation des tâches
Principe simplifié d’une modification en Run
Un programme PL7-3 se décompose (succinctement) en plusieurs parties :
•
•
•
•
•
les données,
le programme exécutable compacté,
l’espace mémoire disponible pour le programme (trou),
le programme non exécutable (commentaires, graphique,...),
divers (programme OFB, constantes, ...)
Tâche IT
Tâche FAST (MAIN)
Données
Programme
exécutable
Tâche FAST (SR)
EXECUTABLE
Tâche MAST (MAIN)
Tâche MAST (SR)
Tâche AUX0 (MAIN)
Trou
Tâche AUX0 (SR)
Programme
non exécutable
Trou
Divers
Tâche IT
NON EXECUTABLE
Tâche FAST (MAIN)
Tâche FAST (SR)
Tâche MAST (MAIN)
Tâche MAST (SR)
Tâche AUX0 (MAIN)
Tâche AUX0 (SR)
8/3
A
Lorsque l’utilisateur ajoute, par exemple, une ligne de programme dans l’une des
tâches, l’automate doit avant d’effectuer cette modification, décaler toutes les
autres tâches moins prioritaires afin de pouvoir insérer le nombre d’octets correspondant à la modification dans la tâche concernée.
Rappel sur le cycle de scrutation d’un automate
Acquisition des
entrées
Traitement
Temps
de cycle
Mise à jour
des sorties
Messagerie
Temps
libre
Si l’automate est en Run, ce décalage s’effectue dans le temps libre laissé par
l’UC.
Le traitement d’une modification induit donc une surcharge du processeur qu’il
convient d’apprécier, car elle peut dans certains cas entraîner une perturbation
temporaire de l’application. Toute la difficulté consiste à évaluer les surcharges car
elles dépendent à la fois de l’emplacement de la modification et de la taille de
l’application.
8/4
Modification en connecté
8
A
On peut considérer qu’il existe deux types de modifications :
• la modification d’un objet par un autre objet de même type. Dans ce cas, la
surcharge est négligeable car il n’y a pas de décalage (nombre d’octets identique),
• la modification entraînant un changement de la taille du code exécutable (par
exemple par l’insertion ou la suppression d’un élément, voire d’une phrase, dans
une équation). Dans ce cas, la surcharge va se répartir sur différentes tâches de
l’application et pendant 5 cycles environ).
Comportement de l’automate
Lors de la modification en RUN d’une application, le processeur inhibe provisoirement
le chien de garde logiciel pendant 3 à 5 tours de cycle.
Si la modification demandée est importante et que l’automate n’a pas le temps
nécessaire de la traiter correctement (temps libre trop faible), l’automate passe en
défaut CPU-MEM-I/O et le programme est perdu.
Conseils
Pour éviter de telles conséquences, il est conseillé de :
•
•
•
•
•
ne pas faire de modification en Run dans la tâche IT,
ne pas faire de modification en Run dans la tâche FAST,
faire des modifications les plus courtes possibles,
éviter les boucles (WHILE et JUMP),
laisser du temps libre à l’UC en ayant un temps de cycle suffisamment grand vis
à vis du temps d’exécution du programme. La gestion des temps d’exécution des
différentes tâches périodiques peut être effectuée à l’aide des mots systèmes
SW19 et SW40 à SW46 (se reporter au chapitre 6.2 de l’intercalaire A).
8/5
A
8.4
Limitations
8.4-1 Limites des modifications
Suivant le mode de fonctionnement, toutes les modifications ne sont pas possibles
(par exemple : modification du graphe en connecté, automate en RUN). Le tableau
ci-dessous présente ces limites :
Mode de fonctionnement
Localisation de la modification
Local
Configuration
paramètre de configuration
valeur de replis
OFB
Programme
Constante
(1)
Connecté
STOP
RUN (1)
reconf
oui
reconf
non
oui
non
non
oui
non
MAIN
SR
PRL
POST
CHART/XMi
• graphe
• étape
- type
- Xi,V
- action
• transition
- réceptivité
oui
oui
oui
oui
oui
oui
oui
oui
oui
oui
oui
oui
oui
oui
non
oui
oui
oui
oui
oui
oui
non
non
oui
oui
oui
oui
mot constant
constante interne d’OFBs
oui
oui
oui
oui
oui
oui
Restrictions en RUN :
Générales
• les modifications "importantes" sont à éviter en RUN,
• chaque réseau de contacts ou phrase en littéral est immédiatement exécutable (pas de modifications groupées).
Grafcet
• la structure du Grafcet n’est pas modifiable (on ne peut pas ajouter ou
supprimer des étapes ou transitions),
• une action ou réceptivité qui n’a jamais été programmée ne peut pas être
programmée pour la première fois en RUN,
• une action ou réceptivité qui est déjà programmée ne peut pas être totalement
détruite,
• une surveillance avec mémorisation du source ne peut pas être créée pour
la première fois sur une action ou une réceptivité,
• la dernière surveillance avec mémorisation du source ne peut pas être
détruite sur une action ou une réceptivité,
8/6
Modification en connecté
8
A
Etiquettes
• le saut (JUMP) à une étiquette inexistante provoque le passage de l'automate
en défaut CPU-MEM-I/O et le programme est perdu.
8.4-2 Modifications simultanées
Quel que soit le mode de fonctionnement : local, connecté automate en STOP ou
connecté automate en RUN, la modification ne peut s’appliquer qu’à une seule
phrase ou réseau de contacts à la fois. Il n’y a pas possibilité de valider plusieurs
modifications en même temps. Cela implique pour les modifications en RUN de
procéder de la manière suivante :
• ajouter un saut vers la phrase ou le réseau de contacts suivant (JUMP en Littéral
ou bobine saut en langage à contacts),
• insérer successivement les modifications (phrases ou réseaux de contacts),
entre le JUMP et sa destination,
• lorsque toutes les modifications sont validées, supprimer le saut pour qu’elles
soient exécutées par le programme.
Attention : cette restriction interdit également l’effacement d’un module en bloc.
Procéder comme pour l’insertion : insérer un saut puis effacer les
phrases ou réseaux de contacts les uns après les autres.
8/7
A
8/8
Conseils de programmation
9
A
Conseils de programmation
Sous chapitre
Chapitre 9
Page
9.1 Organisation des programmes application
9/2
9.2 Traitement des modes de marches et d’arrêts
9/3
9.2-1 Structure d’accueil
9/3
9.2-2 Introduction au manuel "MODE DE MARCHES ET D’ARRETS" 9/3
9.3 Comportement des sorties en cas de dysfonctionnement automate 9/5
9.3-1
9.3-2
9.3-3
9.3-4
Définition
Comportement des sorties sur dysfonctionnement
Diagnostic sur les bacs d’extension
Diagnostic sur les modules distants
9.4 Traitement des défauts d’entrées/sorties
9.4-1
9.4-2
9.4-3
9.4-4
Rappel des défauts sur les modules TOR
Principe
Procédure proposée
Cas d’un coupleur intelligent
Ce chapitre se termine à la page
9/5
9/5
9/6
9/6
9/7
9/7
9/7
9/8
9/9
9/10
9/1
A
9.1
Organisation des programmes application
Cahier des charges, analyse et structuration d’un automatisme sont les garants de
réussite en mise en route et en maintenance d’une installation pilotée à partir
d’automates programmables.
Chaque fonction doit être dissociée des autres, et sa spécificité va définir ses
entrées/sorties éventuellement affectées, ainsi qu’une valeur de période.
Traitement analogique
Utilisé généralement dans les processus de régulation, ce type de traitement est
caractérisé par sa "lenteur" et sa périodicité. Par exemple les coupleurs AEM 4
voies (chaîne de mesure industrielles) adaptés à ce type de traitement permettent
une acquisition des quatre voies selon une période minimale de 400 ms. Cette
valeur correspond implicitement à la période de la tâche effectuant le traitement :
il paraît évidemment inutile de réitérer des calculs sur des valeurs ou mesures
n’ayant pas encore été remises à jour.
Fonction de communication
La communication automate ↔ périphérique s’effectuant par l’intermédiaire de
liaisons séries assure généralement l’échange d’un nombre important de données
ou le dialogue avec un opérateur par un écran-clavier. Dans le premier cas,
l’échange dure quelque centaine de millisecondes (voir exemple ci-après). Dans le
second type d’application la réponse d’un opérateur est de l’ordre de la seconde.
Exemple d’envoi de message :
Soit un message de 200 caractères à émettre à la vitesse de 9600 bits par seconde
dont les données ont le format suivant :
• 1 bit de start, 8 bits de données, 1 bit de parité et 1 bit de stop.
Le temps d’émission vaut : (200*11)/9600 = 230 ms.
Les coupleurs TSX SCM gérant d’une manière autonome ces échanges, l’initialisation de ceux-ci, seul traitement restant à la charge du programme application,
reste à une fréquence faible.
Tâche rapide
La création d’une tâche rapide est nécessaire si des évolutions rapides d’entrées
doivent être surveillées. Des modules d’entrées/sorties vont être affectés à cette
tâche, et dans la mesure du possible toutes les entrées ou sorties doivent être
localisées sur les mêmes modules afin de réduire les temps d’acquisition ou de mise
à jour entraînés par ces modules. Le traitement dans cette tâche doit être le plus
court possible, afin de ne pas pénaliser les autres tâches moins prioritaires.
Par exemple, une série de conditions et de tests dont les éléments sont mis à jour
ou calculés en tâche maître (donc à fréquence plus faible) ne doivent figurer que
sous forme d’un résultat représenté par l’état d’un bit interne.
De la sorte, le temps d’exécution de la tâche rapide est beaucoup plus faible.
9/2
Conseils de programmation
9
A
Conclusion
Les remarques mentionnées ci-dessus amènent ainsi à définir des ordres de
grandeur pour les périodes de tâches :
• tâche rapide
: 10 à 20 ms,
• tâche maître
: 40 à 80 ms,
• tâches auxiliaires : 150 à 500 ms, pour les fonctions de communication et de
mesure régulation,
• tâche interruption : activée seulement sur événements externes asynchrones,
ex : coupleur de positionnement TSX AXM.
9.2
Traitement des modes de marches et d’arrêts
9.2-1 Structure d’accueil
Les automates TSX/PMX 47/67/87/107-40 présentent une structure d’accueil
permettant d’intégrer facilement et méthodiquement dans les programmes les
modes de marches et d’arrêts de l’application :
• tâche maître avec ses 3 traitements : préliminaire, séquentiel et postérieur,
• bits et mots systèmes agissant sur le déroulement du traitement séquentiel ou
indiquant les conditions d’une reprise secteur.
Cette structure et la méthode pour son utilisation sont développées dans le manuel
TSX D42615 " MODES DE MARCHES ET D’ARRETS, Structure de programme
application".
L'OFB MSITi, de la famille Grafcet, permet également d'améliorer par l'application
la gestion des modes de marche Grafcet. Il permet notamment de :
• définir un Grafcet partiel, partition du Grafcet global,
• forcer un graphe,
• sauvegarder ou restituer la situation courante d'un Grafcet partiel.
9.2-2 Introduction au manuel "MODES DE MARCHES ET D’ARRETS"
Etablie à partir du guide "GEMMA" (Guide pour l’étude des modes de marches et
d’arrêts), une grille simplifiée permet de retenir les principaux modes de marches
et d’arrêts à prendre en compte par l’automate. 3 grandes familles de modes sont
à distinguer :
• vérification,
• marche ou production,
• arrêt.
9/3
A
Automate
Hors Energie
VERIFICATION
MARCHE
ARRET
Marche de
préparation
Vérification
dans l'ordre
Marche de production normale
Vérification
dans le désordre
Arrêt sur
incidents
Arrêt
normal
Marche de
clôture
Marche
dégradée
Une fois les modes définis, il faut ensuite détailler l’analyse afin de définir les causes
voulues ou subies entraînant le passage d’un mode à l’autre.
Avec les automates TSX 7, que
ce soit sur une reprise secteur ou
sur un changement de modes de
marches, les comportements et
les besoins sont analysés puis
traités dans le traitement préliminaire. Celui-ci est alors structuré en trois sous ensembles :
• mise sous tension : analyse des
bits systèmes et traitement reprise à froid, à chaud ou immédiate,
• demande de changement de
modes : les demandes d’arrêts
et de changement de modes de
marches entraînent des actions
sur le Grafcet par positionnement de bits système,
• logique d’entrée, selon l’application.
Se reporter au manuel MODES
DE MARCHES ET D’ARRETS.
9/4
Mise
sous tension
initialisation
OUI
NON
Traitement
Demande
de
chargement
de modes
OUI
NON
Traitement
Logique
d'entrée
9
Conseils de programmation
A
9.3
Comportement des sorties en cas de dysfonctionnement
automate
9.3-1 Définition
Il y a dysfonctionnement automate lorsque celui-ci n’est plus en mesure d’assurer
l’exécution normale de son programme. L’origine du dysfonctionnement peut
provenir du bac configuration de base ou d’un bac d’extension.
Sur le bac configuration de base, l’origine peut être :
•
•
•
•
•
un défaut automate; défaut mémoire (MEM) ou défaut processeur (CPU),
un débordement tâche (bit SY19) ou débordement capacité Grafcet (bit SY26),
une tâche en STOP (au moins une), mise en STOP demandée par le terminal,
un point d’arrêt effectif (BP), demandé par le terminal en mode MISE AU POINT,
une coupure secteur ou défaut d’alimentation de la configuration de base.
Sur un bac extension, l’origine peut être :
• une coupure secteur ou défaut d’alimentation de l’un des bacs extension,
• une coupure de la liaison série ou défaut module d’extension TSX LES 20.
9.3-2 Comportement des sorties en bac sur dysfonctionnement
En cas de dysfonctionnement, le système réagit, par sécurité, sur les sorties en bac
en fonction du positionnement effectué par l’utilisateur des bits système "sécurité
des sorties en bac" : SY8, bit général et SY32 à SY39 bits associés à chaque
configuration d’extension (tous à l’état 1 par défaut) :
Bacs extension
Général
Bits système
SY8
0/1
2/3
4/5
6/7
8/9
A/B
C/D
E/F
SY32 SY33 SY34 SY35 SY36 SY37 SY38 SY39
Le comportement des sorties est, selon les cas, le suivant :
Positionnement
des bits système
Dysfonctionnement sur
configuration de base
Dysfonctionnement sur configuration d’extension
SY8 = 1 avec
SY32 à SY39 = 1
remise à zéro des sorties
de tous les bacs.
remise à zéro des sorties du bac
concerné.
SY8 = 1, SY3x = 1
et
remise à zéro des sorties
des bacs correspondants.
remise à zéro des sorties du bac
concerné.
SY3y = 0
les sorties des bacs correspondants restent dans
l’état.
les sorties du bac concerné restent dans l’état.
les sorties de tous les
bacs restent dans l’état.
les sorties du bac concerné restent dans l’état.
SY8 = 0 et
SY32 à SY39 = 1 ou 0
Sur dysfonctionnement de la configuration d’extension, seules les sorties du bac
concerné sont influencées et le programme est toujours exécuté (RUN).
9/5
A
9.3-3 Diagnostic sur les bacs d’extension
En cas de dysfonctionnement sur bac d’extension, des bits systèmes spécifiques
permettent d’établir un diagnostic par programme ou par le terminal (en mode
REGLAGE ou DONNEES). Ces bits sont :
• SY10 "défaut entrées/sorties général", mis à l’état 0 sur défaut. Le voyant I/O est
également allumé,
• SY119 " défaut entrées/sorties en bac", mis à l'état 0 sur défaut.
• SY40 à SY47 "défaut bac entrées/sorties", mis à l’état 0 sur défaut du bac
concerné :
Bacs
Général/en bac
Bits
SY10/SY119
0/1
2/3
4/5
6/7
8/9
A/B
C/D
E/F
SY40 SY41 SY42 SY43 SY44 SY45 SY46 SY47
Ces bits sont remis à 1 par le système dés disparition du défaut.
Sur défaut d’un module d’entrées/sorties en bac, le bit S du module est mis à l’état
1, et entraîne la mise à l’état 0 des bits SY10 et SY4x (0 < x < 7) du bac concerné.
9.3-4 Diagnostic sur les modules distants
En cas de dysfonctionnement d'un module distant, des bits système spécifiques
permettent d'établir un diagnostic par programme ou par le terminal (en mode
REGLAGE ou DONNEES). Ces bits sont :
• SY10 "défaut entrées/sorties général", mis à l’état 0 sur défaut. Le voyant I/O est
également allumé,
• SY118 " défaut entrées/sorties distantes", mis à l'état 0 sur défaut,
• SW118,0 à SW121,F "défaut équipement entrées/sorties distantes", mis à l'état
0 sur défaut de l'équipement concerné :
Equipt
Général/à distance
0
Bits
SY10/SY118
/
1
2
.......
61
SW118,1 SW118,2 ....... SW121,D SW121,E
Ces bits sont remis à 1 par le système dés disparition du défaut.
9/6
62
63
/
Conseils de programmation
9
A
9.4
Traitement des défauts d’entrées/sorties
9.4-1 Rappel des défauts sur les modules TOR
Un module d’entrées/sorties TOR en bac est déclaré en défaut sur :
• défaut d’échange avec le processeur,
• configuration matérielle non conforme à la configuration logicielle ou absence
module,
• bornier en cours de débrochage ou absent,
• surintensité sur l’une des voies de certains modules 4 ou 8 voies.
Dans l’un de ces cas, hors surintensité :
• le module est retiré de la table des échanges avec le processeur,
• pour un module d’entrées; mise à 0 des bits image dans la mémoire bits,
• pour un module de sorties; forçage à 0 des sorties du module, les bits image de
la mémoire bits restant dans l’état,
• les bits I/Oxy,S=1, SY10, SY119, SY16 et SY4x=0 avec le ou les voyants I/O allumés.
Sur surintensité, seul le dernier point cité ci-dessus est exécuté avec mise à 0 de la voie
en défaut : une voie en défaut est sans effet sur les autres voies du même module.
Un module d'entrées/sorties TOR distantes est déclaré en défaut sur :
•
•
•
•
•
•
panne du module de base ou d'extension,
bornier de raccordement absent ou défectueux,
point de raccordement FIPIO incorrect ou défaut de communication,
plusieurs arbitres sur le bus,
module absent ou incompatible avec le type configuré,
coupure d'alimentation ou défaut d'alimentation d'un module.
Dans l’un de ces cas :
• le module est retiré de la table des échanges avec le processeur,
• pour un module d’entrées; mise à 0 des bits image dans la mémoire bits,
• pour un module de sorties; mise à la valeur de repli des sorties déjà commandées
et mise à la valeur de sécurté 0 des autres sorties. Les bits image de la mémoire
bits restant dans l’état,
• les bits SY10, SY118 et SW118,0 à SW121,F=0 avec le ou les voyants I/O allumés.
9.4-2 Principe
La procédure de traitement des défauts proposée dans ce paragraphe permet, lors de
l’apparition d’un défaut sur un des modules d’entrées/sorties, de localiser rapidement
le ou les modules responsables de ce défaut. Ceci afin d’agir par programme pour :
• provoquer une marche dégradée, lancer un cycle de dégagement, etc,
• renseigner l’exploitant du processus sur le module en cause.
Le programme correspondant peut être par exemple implanté dans une tâche
auxiliaire ou dans un sous programme de la tâche maître.
9/7
A
9.4-3 Procédure proposée
1• surveiller l’apparition du défaut général d’entrées/sorties
en testant par programme
l’état 0 du bit système SY10.
La même opération peut être
effectuée avec le bit système
SY16, mais la surveillance des
défauts ne concerne alors que
les modules affectés à la tâche.
Dans ce cas, en traitement
multitâche, le test de SY16
doit être effectué impérativement dans la tâche concernée.
SY10 = 0
SY16 = 0
2
▼
SY119 = 0
▼ Oui
2
SY40 = 0
Défaut bacs 0,1
NON
I13,S = 1
Exemple : SY119= 0 signale un
défaut sur un module en bac.
• repérer le bac où est apparu le
défaut, en testant l’état 0 des
bits système SY40 à SY47.
Exemple : SY40 = 0 signale un
défaut sur le bac 0 ou 1.
OUI
Défaut général
2• si SY10 = 0 rechercher le ou
les modules en cause. Cette
opération s’effectue en deux
temps :
• déterminer le type de module
en défaut (en bac ou distant),
en testant les bits système
SY118 et SY119.
OUI
NON
Autre module
SY41 = 0
Module 13
en défaut
Défaut bacs 2, 3
NON
Autre bac
• repérer le module en défaut dans ce bac. Il suffit alors de tester l’état 1 des bits
défaut Ixy,S des modules configurés dans ces bacs. Exemple :
Le bit I13,S = 1 indique un défaut sur le module emplacement 3 du bac 1.
3• lancer le programme de reprise de modes de marches application et celui
d’affichage destiné à l’exploitant.
Le dernier peut alors intervenir, aidé d’un terminal en mode REGLAGE ou
DIAGNOSTIC afin de supprimer le défaut.
9/8
Conseils de programmation
9
A
9.4-4 Cas d’un coupleur intelligent
La procédure d’analyse est identique à celle d’un module d’entrées/sorties TOR. Si
l’on désire analyser l’ensemble des défauts coupleurs il est nécessaire de tester en
plus des bits Ixy,S les bits IWxy,0,7 de chaque coupleur.
En effet, plusieurs catégories de défauts sont à distinguer (voir manuels de mise en
oeuvre de chaque coupleur). En synthèse :
• défaut "bloquant": le bit IWxy,0,8 est mis à l’état 1. Ce défaut correspond à une
configuration non conforme, à un défaut de l’unité de traitement du coupleur ou
à un défaut d’échange.
Le coupleur se met en arrêt exécution . Le processeur le retire de la table des
échanges, les bits Ixy,X et les mots IWxy,X (hors IWxy,0,8) sont mis à 0.
• défaut coupleur : le bit IWxy,0,6 est mis à l’état 1. Ce défaut correspond à un
défaut des circuits d’acquisition ou d’adaptation ou bornier débroché.
Le processeur automate met le coupleur en STOP. Les échanges sont alors
figés, les bits Ixy,X et les mots IWxy,X ( hors IWxy,0,6) conservent la valeur qu’ils
avaient au moment de la mise en STOP.
• défaut application : le bit IWxy,0,7 est mis à l’état 1. Ce défaut correspond au
contrôle assuré par le coupleur vis-à-vis des capteurs ou pré-actionneurs qui lui
sont directement connectés. Le coupleur reste en RUN.
Le bit défaut Ixy,S est à l’état 1 lorsqu’un défaut "bloquant" ou un défaut coupleur
est présent.
Les défaut coupleur ou application pouvant être fugitifs, les bits IWxy,0,6 et 7 sont
mémorisés à 1 sur l’apparition d’un défaut. Leur mise à 0 s’effectue par lecture de
la chaîne de bits défaut (envoi requête BDEF par bloc fonction texte).
9/9
A
9/10
Annexes
9
A
Annexes
Chapitre 10
Sous chapitre
Page
10.1 Optimisation de la mémoire bit
10/2
10.2 Règles de compatibilité des automates TSX et PMX
10/3
10.2-1 Compatibilité automate/niveau d'application
10.2-2 Changement de processeur
10/3
10/3
10.3 Gestion des objets du langage PL7-3, associés aux modules TBX 10/4
10.3-1 Rappel des objets associés aux modules TBX
10.3-2 Utilisation des objets
10.3-3 Algorithmes préconisés pour la détection des défauts
Ce chapitre se termine à la page
10/4
10/6
10/6
10/8
10/1
A
10.1 Optimisation de la mémoire bit
Dans le but d’une utilisation maximale des possibilités de la mémoire bits,
l’automate effectue un "retassage" automatique des octets correspondants à
l’ensemble des bits TOR des modules d’entrées/sorties (interfaces et coupleurs
intelligents).
Type de module
Référence
Occupation bits
Interface d’entrées/sorties
4 bits TSX DET/DST4..
Interface d’entrées/sorties
8 bits TSX DET/DST 8..
Interface d’entrées/sorties
16 bits TSX DET/DST 16..
Interface de sorties
24 bits TSX DST 24..
Interface d’entrées/sorties
32 bits TSX DET/DST 32..
Interface de comptage
TSX AXT 200
Interface d’entrées analogiques
TSX ADT ...
Interface de sorties analogiques
TSX ASR 200
Coupleurs intelligents
TSX AEM/AXM/SCM
TSX DMR/CTM/ASR
8
8
16
24 (16+8)
32 (16+16)
8
8
16
16
16
Exemple d’optimisation de la mémoire :
0
0
16 ENTREES
0
8 SORTIES
0
8 SORTIES
X
8 SORTIES
Les 8 bits de sorties des modules
O02 et O04 sont rangés dans le
deuxième mot de la mémoire.
00 01 02 03 04 05 06 07
16 ENTREES
Les 16 bits d’entrées du module
I01 sont rangés dans le premier
mot de la mémoire bits.
0
Les 8 bits de sorties du module
O05 et les 8 premiers bits d’entrées (0 et 7) du module I06 sont
rangés dans le troisième mot de la
mémoire.
1 F
2 7
Bits 0 à 7 du
module O04
0 7
Bits 0 à 7 du
module O02
0
Les 8 derniers bits d'entrées (8 à
F) du module I06 sont rangés dans
le quatrième mot de la mémoire.
3 7
Bits 0 à 7 du
module I06
0 7
Bits 0 à 7 du
module O05
0
0 F
Un emplacement libre dans la 4 7
Bits du 1er
Bits 8 à F du
module du bac 2
module I06
configuration matèrielle ne génère
donc aucun "trou" en mémoire.
Mémoire bits correspondante
8
10/2
F
7
7
7
F
Bits 0 à F du module I01
0
9
Annexes
A
10.2 Règles de compatibilité des automates TSX et PMX
10.2-1 Compatibilité automate/niveau d'application
Le logiciel PL7-3 permet la programmation, la mise au point et la documentation
d'application PL7-3 de niveau V5, V4, V3 ou V2 :
• les automates TSX V2 : TSX 67-30/87-10/87-20, exécutent des applications de
niveau V2,
• les automates TSX V3 : TSX 47-30/67-20/87-30, exécutent des applications de
niveau V3,
• les automates TSX V4 : TSX 47-400/47-410/47-411/47-420/67-410/67-420/
87-410/87-420/107-410/107-420, exécutent des applications de niveau TSXV4,
• les automates PMX V4 : PMX 47-420/67-420/87-420/107-420/107-430, exécutent des application de niveaux TSXV4 et PMXV4,
• les automates TSX V5 : TSX 47-405/47-415/47-425/47-455/67-425/67-455/
87-425/67-455/107-425/107-455, exécutent des application de niveau TSXV5,
• les automates PMX V5 : PMX 47-425/47-455/67-425/67-455/87-425/87-455/
107-425/107-455, exécutent des applications de niveaux TSXV5 et PMXV5.
10.2-2 Changement de processeur
Lors d'un changement de processeur, le logiciel PL7-3 vérifie la compatibilité :
• de l'application courante avec le processeur ciblé : nombre de tâches auxiliaires,
nombre des bacs d'E/S,...,
• de l'occupation mémoire de l'application courante avec la taille disponible dans
l'automate cible. Cette comparaison s'effectue après transformation de l'application courante et optimisation de la configuration obtenue.
Passage V2 → V3
Une application V2 peut être passée au niveau V3, en mode configuration. Cette
transformation est irréversible.
Passage V3 → V4 ou V4 → V4
Une application V3 peut être passée au niveau V4, après définition préalable de la
cartographie de l'application V4 (.APP). Cette transformation est irréversible.
Il est possible de passer toute application de niveau TSX V4 au niveau PMX V4. Par
contre, l'inverse nécessite qu'aucun OFB de la famille Régulation ne soit configuré
dans l'application.
Passage V4 → V5 ou V5 → V5
Une application V4 peut être passée au niveau V5. Cette transformation est
irréversible.
Il est possible de passer toute application de niveau TSX V5 au niveau PMX V5. Par
contre, l'inverse nécessite que l'application ne contienne pas d'OFBs de la famille
Régulation ni d'instructions au format flottant.
10/3
A
___________________________________________________________________________
10.3 Gestion des objets du langage PL7-3, associés aux modules TBX
________________________________________________________________________________________
10.3-1 Rappel des objets associés aux modules TBX
Bits et mots système
Bits et mots Fonction
système
Désignation
SY10
Défaut d'E/S normalement à l'état 1, ce bit est positionné à 0 lors d'un
général
défaut d'un module d'E/S en bac ou d'un module d'E/S
distantes.
SY16
Défaut d'E/S normalement à l'état 1, ce bit est positionné à 0 lors d'un
dans la tâche défaut d'un module d'E/S en bac ou d'un module d'E/S
distantes, configuré dans la tâche. Ce bit doit être remis
à l'état 1 par le programme utilisateur.
Un bit SY16 est affecté à chacune des tâches configurées
(IT, FAST, MAST, AUX0 à AUX3). De ce fait, il n'est
significatif que pour la tâche dans laquelle il est testé.
SY118
Défaut d'E/S normalement à l'état 1, ce bit est positionné à 0 lors d'un
distantes
défaut d'un équipement connecté sur FIPIO ou lors d'un
défaut sur la liaison FIPIO.
SW116
Défaut d'E/S ce mot signale un défaut de communication sur FIPIO,
distantes
entre le processeur et un module, dans la tâche. Chaque
dans la tâche bit 0 à 7 est significatif d'un défaut :
bit 0 : invalidité globale 1,
bit 1 : existence de valeurs invalides 2,
bit 2 : absence totale de mise à jour 4,
bit 3 : absence partielle de mise à jour 4,
bit 4 : défaut total de dialogue 3,
bit 5 : défaut partiel de dialogue 3,
bit 6 : défaut de rafraîchissement global 5,
bit 7 : défaut de rafraîchissement partiel 5.
SW118 à
SW121
Défaut d'E/S chaque bit de ces 4 mots système est significatif de l'état
distantes
d'un point de connexion. La présence d'un bit à 0 indique
(équipement) l'apparition d'un défaut d'échange ou de procédé avec un
équipement : par exemple SW118,0 pour le point de
connexion 0, etc...
Notes
Invalidité globale : la fonction FIPIO ne peut être activée par le processeur. Le défaut est matériel
(panne d'un constituant de la carte fille, bornier de raccordement absent ou défectueux, coupure
d'un câble, bus non adapté : absence de terminaison de ligne, court-circuit, point de connexion du
processeur incorrect) ou provient d'un défaut de communication (présence de plusieurs arbitres de
bus sur le médium).
1
___________________________________________________________________________
10/4
Annexes
10
____________________________________________________________________________
2
3
4
5
Valeur invalide : il existe un ou plusieurs TBX qui n'ont jamais été configurés par le processeur
(TBX absent ou incompatible avec le type configuré).
Défaut de dialogue : le défaut est externe au processeur et au bornier de raccordement. Il
résulte de défauts physiques répétés, avec un ou plusieurs équipements pilotés par le
processeur (TBX déconnecté en cours de fonctionnement, coupure secteur sur un TBX,
problème sur le médium).
Absence de mise à jour : les échanges s'effectuent correctement sur le bus, mais des
informations n'ont pas été rafraîchies depuis le dernier cycle de la tâche (le cycle réseau est
trop lent par rapport à la période de la tâche : période réseau > période tâche). Il est nécessaire
de lancer l'outil XTEL-CONF, afin de modifier la période des tâches utilisateur).
Défaut de rafraîchissement : le TBX ne rafraîchit plus la valeur des ses bits d'entrées et de
défaut voies. Le défaut est ponctuel et provient d'une micro-coupure.
Objets PL7-3 liés aux entrées/sorties TOR distantes
Objets
Désignation
RI
Bit d'entrée distante. Il indique l'état de l'entrée TOR si le bit RD
est à 0.
RO
Bit de sortie distante. Ce bit commande la sortie TOR.
RD
Bit de défaut de la voie. Il est positionné à l'état 1 pour signaler que la
voie (entrée ou sortie) est en défaut.
TRIP
Bit de sortie disjonctée. Il est positionné à l'état 1, lorsque la sortie
statique est disjonctée.
RST
Bit de réarmement. Ce bit, effectif sur 8 voies à la fois, commande le
réarmement de la sortie disjonctée et n'a aucun effet sur les voies non
disjonctées.
STS
Mot d'état associé à la voie. Ce mot indique la nature du défaut :
bit 0 : court-circuit capteur/pré-actionneur.
bit 1 : défaut de ligne capteur/pré-actionneur.
bit 2 : non utilisé.
bit 3 : non utilisé.
bit 4 : non utilisé.
bit 5 : non utilisé.
bit 6 : non utilisé.
bit 7 : non utilisé.
bit 8 : non utilisé.
bit 9 : réservé.
bit 10 : réservé.
bit 11 : défaut d'alimentation du procédé (capteurs/pré-actionneurs)
bit 12 : défaut interne au module (module de communication ou embase).
bit 13 : défaut d'association matérielle.
bit 14 : défaut de dialogue entre le processeur et le TBX.
bit 15 : réservé.
___________________________________________________________________________
10/5
A
A
___________________________________________________________________________
10.3-2 Utilisation des objets
Les objets associés aux modules d'entrées/sorties distantes, dépendent du type de
module utilisé : TBX monobloc, TBX modulaire sans option de diagnostic, TBX
modulaire avec option de diagnostic :
TBX monobloc
Interface
RI, RO, RD
application (objets SWi,j
de contrôle de la
voie)
TBX modulaire
Sans diagnostic
TBX modulaire
Avec diagnostic
RI, RO, RD
SWi,j
TRIP, RST
RI, RO, RD
SWi,j
TRIP, RST
Interface
diagnostic (mot
d'état de la voie)
STS
_______________________________________________________________________
10.3-3 Algorithmes préconisés pour la détection des défauts
Si la détection des défauts est programmée au niveau de l'application : la commande
(utilisation des RI, RO) s'effectue dans la tâche MAST et la surveillance dans une tâche
AUX; il est recommandé d'utiliser l'algorithme suivant pour la détection des défauts :
Tester le bit de défaut d'E/S général SY10
SY10 = 0
▼
Rechercher le segment en défaut :
défaut sur les E/S distantes (SY118)
défaut sur les E/S en bac (SY119)
SY118 = 0
SY119 = 0
▼
▼
Rechercher le module distant en défaut : Rechercher le module en bac en défaut :
SW118,0 à SW118,F - pt connex. 0 à 15, SY40 - bac 0/1,
SW119,0 à SW119,F - pt connex. 16 à 31, SY41 - bac 2/3,
SW120,0 à SW120,F - pt connex. 32 à 47, SY42 - bac 4/5,
SW121,0 à SW121,F - pt connex. 48 à 63. SY43 - bac 6/7,
SY44 - bac 8/9,
SWi,j = 0
SY45 - bac A/B,
SY46 - bac C/D,
▼
Identifier le type de défaut : STSx,y,i
SY47 - bac E/F.
___________________________________________________________________________
10/6
Annexes
10
____________________________________________________________________________
Si la détection des défauts est programmée au niveau de la tâche : la commande
(utilisation des RI, RO) s'effectue dans le module MAIN et la surveillance dans un
module SR; il est recommandé d'utiliser l'algorithme suivant pour la détection des
défauts :
Tester le bit de défaut d'E/S dans la tâche
SY16
SY16 = 0
▼
Tester SW116, après masquage des bits
d'absence de mise à jour : bits 2 et 3. (*)
Positionner SY16 à 1
SW116 <> 0
▼
Identifier le type de défaut (SW116)
Rechercher le module distant en défaut:
SW118,0 à SW118,F - pt connex. 0 à 15,
SW119,0 à SW119,F - pt connex. 16 à 31,
SW120,0 à SW120,F - pt connex. 32 à 47,
SW121,0 à SW121,F - pt connex. 48 à 63.
SWi,j = 0
▼
Rechercher la voie en défaut :
bit RDx,y,i = 1
En cas de défaut le bit RD est positionné à
1 pendant au moins un cycle de la tâche.
Lorsque RD = 1, le bit RI de la voie d'entrée
correspondante est positionné à 0.
Remarque (*)
Lorsque seul le bit SW116,2 ou SW116,3 (absence de mise à jour) est à l'état 1, cela ne correspond
pas à un défaut mais uniquement à un "avertissement" pour signaler un désaccord entre les
périodes de la tâche et du réseau.
___________________________________________________________________________
10/7
A
A
___________________________________________________________________________
___________________________________________________________________________
10/8
Dialogue
Langage Grafcet
Intercalaire B
Chapitre
1
5
Page
Présentation du langage Grafcet
Sommaire
1/1
1.1 Rappel des principes Grafcet
1.2 L’analyse progressive : les macro-représentations
2
Le langage Grafcet PL7-3
Sommaire
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3
Les symboles graphiques
Les objets spécifiques au Grafcet
Les possibilités du langage Grafcet
La page Grafcet
L’utilisation des renvois
Règles graphiques
Les macro-étapes
Les actions associées aux étapes
Les réceptivités associées aux transitions
Organisation de la tâche maître
Sommaire
3.1
3.2
3.3
3.4
3.5
4
2/1
3/1
Le cycle de base
Le traitement préliminaire
Utilisation des bits système dans le traitement préliminaire
Le traitement séquentiel
Le traitement postérieur
OFBs de la famille Grafcet
Sommaire
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4/1
Rappels sur les Grafcets
Fonctions de l'OFB
Présentation de l'OFB MSIT
Description des paramètres
Liste des défauts
Utilisation de l'OFB MSIT
Exemple d'utilisation
B/1
B
B
B/2
Présentation du langage Grafcet
Présentation du langage Grafcet
Sous chapitre
1
Chapitre 1
Page
1.1 Rappel des principes du Grafcet
1/2
1.2 L’analyse progressive : les macro-représentations
1/3
Ce chapitre se termine à la page
1/4
1/1
Sans titre-2
1
15/01/96, 11:52
B
1.1
B
Rappel des principes du Grafcet
Le Grafcet permet de représenter graphiquement et de façon structurée le fonctionnement 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 :
Etape : à laquelle sont associées les actions
à effectuer.
1
Transition : à laquelle sont associées des
réceptivités (conditions logiques).
Liaison orientée : reliant les étapes aux transitions et les transitions aux étapes.
2
Etape initiale : définit la situation
initiale de l’automate.
1
Transition : les réceptivités
associées indiquent les conditions
logiques nécessaires au franchissement de cette transition.
2
3
Actions
6
Actions
4
Actions
7
Actions
5
9
8
Activation simultanée des étapes 3 et 6. Les sous ensembles
formés par les étapes 3, 4, 5 et 6,
7, 8 constituent deux séquences
dites simultanées.
Aiguillage à partir de l’étape 3
vers l’étape 4 ou vers l’étape 5.
Etape de fin de séquence :
permet la synchronisation des
séquences simultanées.
Désactivation simultanée des
étapes 5 et 8.
Actions
Etape : les actions associées ne
s’exécutent que lorsque l’étape
est active.
Les transitions et les liaisons orientées symbolisent les possibilités d’évolution
des étapes actives.
Les actions associées aux étapes traduisent d’une façon générale "ce qui doit
être fait" lorsque celles-ci sont actives.
Elles décrivent en particulier les ordres qu’il faut transmettre à la partie opérative
(processus à automatiser) ou à d’autres systèmes automatisés.
L’ensemble des étapes actives à un moment donné définit la situation du Grafcet.
1/2
Sans titre-2
2
15/01/96, 11:52
1
Présentation du langage Grafcet
1.2
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
B
C
B
0
0
B
C
A
Tremie
peseuse
B1
A l’expiration de ce temps, le
mélange final pourra être évacué dès qu’une autorisation
extérieure sera donnée.
Mélangeur
Tremie
peseuse
B2
Evacuation
• 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
repré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.
Début
1
cycle par cycle
Dosage
Séquence Dosage
10
fin de dosage
Remplissage
20
Séquence Remplissage
fin de remplissage
Mélange
Séquence Mélange
30
fin de mélange
Evacuation
40
Séquence Evacuation
fin d'évacuation
• Les macro-représentations
Le Grafcet de premier niveau décrivant l'enchainement 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
1/3
Sans titre-2
3
15/01/96, 11:52
niveau peut être complété, modifié sans remettre en cause les autres niveaux.
• Représentation graphique
B
Macro-étapes
Séquence dosage
Séquence remplissage
Graphe principal
Séquence
mélange
Séquence évacuation
1/4
Sans titre-2
4
15/01/96, 11:52
Le langage Grafcet PL7-3
Le langage Grafcet PL7-3
Sous chapitre
2
Chapitre 2
Page
2.1 Les symboles graphiques
2/3
2.2 Les objets spécifiques au Grafcet
2/4
2.2-1 Les objets bits
2.2-2 Les objets mots
2/4
2/5
2.3 Les possibilités du langage Grafcet
2/6
2.4 La page Grafcet
2/7
2.5 L’utilisation des renvois
2/8
2.5-1 Définition
2.5-2 Utilisation
2/8
2/8
2.6 Règles graphiques
2/10
2.7 Les macro-étapes
2/11
2.7-1
2.7-2
2.7-3
2.7-4
2.7-5
2.7-6
2.7-7
Principe
Caractéristiques
Etats d’une macro-étape
Macro-étape monoactive
Macro-étape multiactive
Etapes initiales
Activation d’une macro-étape déjà active
2.8 Les actions associées aux étapes
2.8-1 Actions à l’activation ou à la désactivation
2.8-2 Actions continues
2.8-3 Ordre d’exécution des actions
2/11
2/12
2/13
2/14
2/14
2/14
2/15
2/16
2/17
2/17
2/18
2/1
B
Le langage Grafcet PL7-3
B
Sous chapitre
2.9 Les réceptivités associées aux transitions
2.9-1 Règles de programmation en langage à contacts
2.9-2 Règles de programmation en langage littéral
2.9-3 Réceptivité utilisant le temps d’activité
Ce chapitre se termine à la page
2/2
Chapitre 2
Page
2/19
2/20
2/20
2/21
2/22
2
Le langage Grafcet PL7-3
2.1
Les symboles graphiques
Désignation
Etapes
Symbole
Nombre
Etapes initiales
bit
mot
64 max
Xi
Xi,V
64 actives
simultanément
Xi
Xj,i
Xi,V
Xj,i,V
i
Etapes ou étapes de
macro-étapes
Etapes IN-OUT
Macroétapes
64
max
XMj
Mj
Symbole
Commentaires
d’une étape vers
une autre
d’une étape vers
plusieurs étapes :
activation simultané
de plusieurs étapes
vers une étape :
désactivation
simultanée
de plusieurs étapes
vers plusieurs
étapes
vers le haut
vers le bas
vers la droite
1024 max
vers 8 étapes maximum par écran
96 transitions
valides
simultanément
venant de 8 étapes
maximum par écran
de 8 étapes vers 8
étapes maximum
d’origine
de destination
Liaisons
orientées
Xj,I
Xj,O
IN
Mj
Désignation
Renvois
1024
max
Monoactives
Multiactives
Transitions
i
n
(n) numéro de l’étape ou de la macroétape d’où l’on vient (étape d'origine)
n
(n) numéro de l’étape ou de la macroétape où l’on va (étape de destination)
Ces liaisons permettent de réaliser :
• un aiguillage
• un saut d'étapes
• une reprise d’étapes
(séquence)
vers la gauche
2/3
B
2.2
Les objets spécifiques au Grafcet
L’utilisateur dispose d’objets bits associés aux étapes et macro-étapes, de bits
système spécifiques au langage Grafcet et d’objets mots indiquant le temps
d’activité des étapes.
B
2-2.1 Les objets bits
Désignation
Adresse
Bits associés
aux étapes
et macroétapes
Xi
Etapes i du Grafcet principal
XMj
Xj,i
Bits système
associés
au Grafcet
Description
Macro-étape j
0≤i≤127
0≤j≤63
Etape i de la macro-étape j
Xj,I
Etape d’entrée IN de la macro-étape j
Xj,O
Etape de sortie OUT de la macro-étape j
SY21
Provoque l’initialisation du Grafcet
SY22
SY23
L’utilisation
de ces bits
est détaillée
chapitre 3.3
Provoque la remise à zéro générale des Grafcet
Provoque le figeage des Grafcet
SY24
Valide le changement de la table des mots
système SW8 à SW11
SY25
Signale la non monoactivité d’une ou plusieurs
macro-étapes monoactives
SY26
Indique un dépassement des possibilités d’activités (étapes et transitions)
Les bits associés aux étapes et macro-étapes sont à 1 lorsque celles-ci sont actives.
Ces bits peuvent être testés dans toutes les tâches, mais ne peuvent être écrits que
dans le traitement préliminaire de la tâche maître. Ces tests et actions sont
programmés soit en langage à contacts, soit en langage littéral.
Remarques : • ces objets bits ne sont pas indexables.
• XMj ne peut être que testé.
2/4
2
Le langage Grafcet PL7-3
2.2-2 Les objets mots
Désignation
Adresse
Mots temps
d’activité
des étapes
Xi,V
Temps d’activité de l’étape i du graphe principal
Xj,i,V
Temps d'activité de l'étape i de la macro-étape j
Xj,I,V
Temps d’activité de l’étape d’entrée de la macro- étape j
Xj,O,V
Temps d’activité de l’étape de sortie de la macro-étape j
SW12
à
SW15
SW8
à
SW11
SW6
Table de 4 mots permettant de connaître le numéro de la
macro-étape qui n’est plus monoactive
SW7
Mot permettant de connaître le nombre de transitions valides
(nombre de postes occupés dans la table des transitions
valides ou à valider, soit 96 max)
Mots
système
associés
au Grafcet
Description
B
Table de 4 mots permettant de remettre ou non à zéro les
macro-étapes
Mot permettant de connaître le nombre d’étapes actives
(nombre de postes occupés dans la table des étapes actives
ou à activer, soit 64 max)
Mots temps d’activité
• ils sont incrémentés toutes les 100 ms et peuvent prendre la valeur 0 à 9999,
• incrémentation du mot : pendant l’activité de l’étape associée,
• comportement à l’activation et à la désactivation de l’étape :
- à la désactivation : le contenu est figé,
- à l’activation : remise à zéro et incrémentation toutes les 100 ms,
• le nombre de mots temps d’activité est configurable,
• ces mots ne sont pas indexables.
Nota : un temps d’activité non déclaré ou non affecté pourra être lu dans le programme mais
conservera la valeur 0.
2/5
2.3
Les possibilités du langage Grafcet
Le traitement séquentiel est structuré en :
• 1 sous ensemble : Graphe principal,
• 64 sous ensembles : Macro-étapes
B
Ces sous-ensembles sont eux-mêmes divisés en pages (voir schéma ci-dessous).
Macro-Etape 0
Graphe Principal
Page 8
Page 8
8 pages
8 pages
Page 3
Page 2
128 étapes
maximum
Page 3
Page 2
+ Macroétapes
Page 1
Page 1
128 étapes
maximum
+ Etape IN
+ Etape OUT
+ Macroétapes
Macro-Etape 12
Page 8
8 pages
Possibilités maximum
offertes par le
traitement séquentiel:
1024
étapes++
512 étapes
64
64 macro-étapes
macro-étapes
Page 3
Page 2
Page 1
128 étapes
maximum
+ Etape IN
+ Etape OUT
+ Macroétapes
Macro-Etape 63
Page 8
8 pages
Page 3
Page 2
Page 1
128 étapes
maximum
+ Etape IN
+ Etape OUT
+ Macroétapes
2/6
Le langage Grafcet PL7-3
2.4
2
La page Grafcet
Le graphe principal et les macro-étapes se programment chacun sur 8 pages.
Une page correspond à un écran du terminal et à un formulaire de programmation.
La page se décompose en deux zones :
• la zone commentaire,
• la zone graphique.
Zone commentaire
Elle est visualisée en partie sur la droite de l’écran et
comporte au maximum 13 lignes de 60 caractères (20
caractères visualisés).
Les commentaires sont mémorisés dans l’automate
et font partie de la page. La suppression d’une page
entraîne la suppression des commentaires.
Zone graphique
les limites de l'écran donnent celles de la page, soit
48 étapes ou macro-étapes au maximum.
Formulaire programmation Grafcet
MAST
CHART
1
0
2
XM
3
4
COMMENTAIRES
Page
5
6
OBSERVATIONS
7
0
1
2
3
4
5
6
7
X
8
8 colonnes
9
10
11
12
13
14
15
16
17
18
19
TSX 67/87
Mise à jour
Par
Date
Etude :
Dessin :
Date :
A
B
C
T
Folio
6 lignes étapes ou macro-étapes (L1, L4, L7, L10, L13 et L16) alternant avec 6
lignes transitions (L2, L5, L8, L11, L14 et L17).
Lorsque l’ensemble du Grafcet ne peut pas se représenter sur une page, le langage
Grafcet PL7-3 permet de réaliser :
• une macro-représentation, c’est-à-dire une découpe fonctionnelle de l’application. La macro-étape donne alors accès à un deuxième niveau de Grafcet (voir
chapitre 2.7),
• une répartition du Grafcet sur plusieurs pages. Les liens entre les différentes
pages sont réalisés par des renvois (voir chapitre 2.5).
Nota : dans une page les lignes 0 et 19 permettent de programmer les renvois.
2/7
B
2.5
L’utilisation des renvois
2.5-1 Définition
B
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.
Renvoi d’origine
i
Renvoi de destination
j
le renvoi qui lui est associé indique l’étape ou
la macro-étape de départ,
le numéro qui lui est associé indique l’étape ou
la macro-étape d’arrivée.
• à chaque renvoi est associé un numéro d’étape ou de macro-étape,
• un renvoi s’effectue en interrompant obligatoirement une liaison transition vers
étape.
2.5-2 Utilisation
0
1
2
renvois sur une page
ils permettent d’assurer la continuité du Grafcet dans le cas d'un
tracé complexe.
renvois sur deux pages
la répartition du graphe sur 2 pages permet une répartition graphique claire.
renvoi d’origine en page 0
9 l’étape 9 est située sur une
page différente,
3
4
5
6
7
9
0
1
1
2
Page 0
3
4
9
2
5
6
7
3
13
4
14
5
15
8
9
10
11
12
13
14
15
1
renvoi de destination en
page 0
6 l’étape 7 de destination est
en page 1,
6
16
17
18
7
19
0
0
1
1
2
3
4
5
6
6
1
7
2
7
renvoi de destination en
page 1
l’étape 1 de destination est
9
en page 0,
15
3
4
8
5
6
7
9
8
9
1
2/8
10
11
1
16
Page 1
7
2
Le langage Grafcet PL7-3
MAST
CHART
1
0
2
XM
3
4
5
3
0
1
6
2
3
4
7
5
6
7
B
8
8
9
10
Début d’aiguillage
9
11
12
Les transitions et les envois de
destination ( 23 et 24) doivent être
écrits dans la même page.
10
13
14
11
15
11
16
17
18
23
Fin d’aiguillage
Les renvois d’origine (11) doivent
être dans la même page que
l’étape de destination.
2
24
3
11
23
19
MAST
4
CHART
1
0
11
2
XM
3
11
0
1
23
24
4
5
11
23
2
3
4
24
5
24
6
7
25
8
9
10
Activations simultanées
26
11
12
L’étape et la transition de divergence qui suit cette étape doivent
se trouver dans la même page
que les renvois de destination
(29, 35 et 41).
27
13
14
28
15
28
16
17
18
29
35
41
29
19
MAST
41
CHART
1
0
35
2
0
1
XM
3
4
5
28
28
28
29
35
41
30
36
42
31
37
43
32
38
44
33
39
45
34
40
2
3
4
5
6
7
8
9
10
Désactivations simultanées
Les étapes et la transition de
convergence qui suivent ces étapes doivent se trouver dans la
même page que le renvoi de
destination (46).
Lorsque plusieurs étapes convergent sur une étape le renvoi d’origine porte le numéro de l’étape
amont la plus à gauche (34).
11
12
13
14
34
40
15
16
17
18
46
46
19
MAST
0
0
1
CHART
1
2
XM
3
4
5
34
46
2
3
4
0
5
2/9
2.6
Règles graphiques
Les cinq règles suivantes doivent être respectées lors de la programmation de la
zone graphique.
• Règle 1
B
Toute étape doit être repérée. Le repère s’inscrit à droite du carré symbolisant
l’étape.
• Règle 2
Deux repères identiques d’étape ne peuvent pas être programmés dans un
même module de programmation.
• Règle 3
Un aiguillage peut se tracer de la droite vers la gauche ou de la gauche vers la
droite.
• Règle 4
L’activation ou la désactivation simultanée d’étapes se représente toujours de la
gauche vers la droite.
• Règle 5
Les liaisons orientées horizontales et verticales peuvent, lorsqu’elles sont prolongées :
- se croiser 1 :
les liaisons sont alors de
nature différente,
- se rencontrer 2 :
les liaisons sont alors de
même nature,
Le croisement de deux traits horizontaux symbolisant l’activation
ou la désactivation simultanée
d’étapes avec une liaison orientée est impossible.
2/10
MAST
CHART
1
0
2
XM
3
4
Page
5
6
7
0
1
20
2
3
4
21
25
29
5
6
7
22
8
1
9
10
11
12
2
26
27
2
Le langage Grafcet PL7-3
2.7
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.
B
2.7-1 Principe
Une macro-étape est la symbolisation graphique d’une séquence.
IN
Elle se distingue d’une étape par un ou deux
traits horizontaux.
1
1
11
L’étape d’entrée répond aux mêmes règles
que les autres étapes.
M1
2
12
L’étape de sortie ne peut avoir d’actions associées.
2
13
OUT
3
Lorsque la macro-étape est active, l’évolution
du Grafcet respecte les règles énoncées lors
des chapitres précédents.
1
La macro-étape M1 est activée quand l’étape 1
est active et que sa réceptivité aval est vraie.
IN
Elle est désactivée quand son étape de sortie
est active et que la réceptivité M1>2 est vraie.
1
11
2
12
L’étape 2 est alors activée.
M1
13
OUT
2
3
2/11
2.7-2 Caractéristiques
Le langage Grafcet PL7-3 autorise la programmation de 64 macro-étapes M0 à
M63.
B
L’expansion d’une macro-étape, constituée d'une ou plusieurs séquences, est
programmable au plus sur 8 pages et comprend au maximum 128 étapes plus
l’étape IN et l’étape OUT.
Une macro-étape peut contenir une ou plusieurs macro-étapes. Les macro-étapes
appelées sont obligatoirement d’indice supérieur à la macro-étape appelante.
Cette hiérarchie est possible jusqu’à concurrence de 64 niveaux.
L’analyse d’une application peut être structurée de façon à fournir une approche
globale puis détaillée des différentes opérations à réaliser.
0
IN
IN
M0
M1
1
M4
1
1
M2
12
2
2
OUT
OUT
Vers une analyse détaillée
2/12
2
Le langage Grafcet PL7-3
2.7-3 Etats d’une macro-étape
Une macro-étape peut prendre trois états : l’état repos, l’état actif et l’état fini qui
peuvent être visualisés en temps réel sur l’écran du terminal.
Dans ce qui suit, les parties noircies représentent les états actifs.
• Etat repos 1
Aucune étape active dans l’expansion de la macro-étape.
MAST
B
CHART
1
0
2
3
1
0
1
IN
2
3
4
1
M1
5
6
7
OUT
8
• Etat actif 2
MAST
Au moins une étape active autre que l’étape OUT, dans l’expansion de la macro- étape. Dès
l’activation de la macro-étape,
l’étape d’entrée (IN) est activée, puis l’expansion évolue en
fonction de l’application.
2
3
2
0
2
3
3
5
5
6
6
7
OUT
8
3
2
IN
4
1
M1
2
1
IN
2
4
CHART
1
0
0
1
• Etat fini 3
L’étape de sortie de la macroétape est active.
L’expansion est à l’état actif mais
terminé.
MAST
CHART
1
0
1
M1
7
OUT
8
MAST
CHART
1
0
2
3
3
0
1
IN
2
3
4
1
M1
5
6
7
OUT
8
• Désactivation 4
Pour que la macro-étape passe
de l’état actif à l’état repos, il
faut que :
- l’étape de sortie (OUT) de la
macro-étape soit la seule active (la transition aval de la
macro-étape est alors valide),
- la réceptivité associée à la
transition soit vraie.
MAST
MAST
CHART
1
0
0
2
3
4
1
IN
2
1
1
4
5
6
6
8
3
IN
3
M1
5
7
2
4
2
3
4
CHART
1
0
0
OUT
7
M1
1
OUT
8
La transition est alors franchie, la macro-étape est désactivée ainsi que l’étape
de sortie (OUT).
2/13
2.7-4 Macro-étape monoactive
B
L’expansion d’une macro-étape
monoactive ne peut pas
comprendre d’activations ou de
désactivations simultanées
d’étapes. Dans le cas où plusieurs
transitions non exclusives sont
simultanément franchies dans un
aiguillage (ex : B1 = 1), l’évolution
du graphe admet l’activation
simultanée de plusieurs étapes,
mais cette multiactivité est
signalée à l’utilisateur par le bit
système SY25.
1
2
3
4
5
6
7
IN
B0+B1
B2+B1
1
M6
2
SY25 = 1
3
OUT
2.7-5 Macro-étape multiactive
1
2
3
4
L’expansion d’une macro-étape
multiactive peut comprendre des
activations et des désactivations
simultanées d’étapes.
L’expansion d’une macro-étape
peut contenir une ou plusieurs
étapes initiales.
Ces étapes initiales sont activées
à la mise sous tension ou lors
d’une initialisation par programme.
La macro-étape est alors visualisée à l’état actif.
1
M4
7
6
7
2
3
OUT
1
2
3
4
5
Initialisation
1
IN
M3
11
22
12
13
2/14
6
IN
Dans le cas où plusieurs réceptivités non exclusives sont franchies dans un aiguillage et que
l’évolution du graphe entraîne
l’activation simultanée de plusieurs étapes, aucun contrôle de
monoactivité n’est effectué.
2.7-6 Etapes initiales
5
21
Le langage Grafcet PL7-3
2
2.7-7 Activation d’une macro-étape déjà active
L’activation d’une macro-étape XMi déjà active entraîne l’activation de son étape
d’entrée Xi,I
Deux cas peuvent alors se présenter :
• l’étape d’entrée Xi,I est déjà
active : le déroulement de l’expansion de la macro-étape XMi
n’est pas modifiée.
• l’étape d’entrée Xi,I n’est pas
active : la réactivation de XMi
entraîne l’activation de Xi,I sans
pour autant bloquer le déroulement de l’expansion de XMi :
Exemple :
Ce graphe en évolution, présente
l’état suivant:
1 la macro-étape XM1 est active,
l’étape 2 de son expansion est
active.
2 la macro-étape XM1 est réacti-
vée (l’étape initiale 10 est active
et T:10>M1 est vraie) :
- l’étape d’entrée X1,I, devient
active,
- l’expansion XM1 suit son
cours.
3 l’expansion de XM1 est en cours
d’évolution :
- T:2>OUT est vraie,
- l’étape OUT devient active.
XM1 est à la fois à l’état "fini"
et "actif"; elle est visualisée à
l’état "fini".
4 la transition T:IN>11 est vraie :
10
IN
B
M1
1
11
M2
2
12
11
OUT
1
10
IN
M1
1
11
M2
2
12
11
OUT
2
10
IN
M1
1
11
M2
2
12
11
OUT
3
10
IN
l’étape 11 devient active. La
transition T:M1>M2 est vraie :
M1
1
11
XM1 est visualisée à l’état "actif", XM2 devient active.
M2
2
12
11
OUT
Pour contrôler ce phénomène,
il suffit de déclarer monoactive
la macro-étape XM1 et de surveiller par programme le bit système SY25.
4
2/15
2.8
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 littéral. Ces actions ne sont scrutées que si
l’étape à laquelle elles sont associées est active. Le logiciel PL7-3 autorise trois
types d’action :
B
• les actions à l’activation : actions exécutées une fois lorsque l’étape à laquelle
elles sont associées passe de l’état repos à 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 repos.
• les actions continues : ces actions sont exécutées tant que l’étape à laquelle
elles sont associées est active.
Une même page peut utiliser ces trois types d’action.
Pour une même action, le nombre de ligne de programmation en langage littéral ou
le nombre de réseaux en langage à contacts n’est pas limité.
Repérage des actions
Ces actions, directement associées à l’étape sont mémorisées dans l’automate
avec le même repère que celui de l’étape :
Module S (x)i
module : CHART ou XMi,
x : = A : Activation,
= C : Continue,
= D : Désactivation,
i : repère de l’étape
Exemple : XM2 S (D) 3 : action à la désactivation de l’étape 3 de XM2.
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 devront être programmées dans
le traitement postérieur (traitement exécuté à chaque scrutation voir chapitre 3
"Organisation de la tâche maître").
2/16
2
Le langage Grafcet PL7-3
2.8-1 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...
Formulaire programmation
schéma à contacts
Exemples :
• appel à un sous-programme,
• incrémentation du mot W10, et
remise à zéro de W0 et W25.
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
XM
CHART
B
L
B25
SR4
C
W0 → W4
Formulaire programmation
Litteral
<
!
L
I F
: WH I L E
IT
MAI
T H E N
E L S E
D O
I NC W1 0 ; 0 → W0 → W2 5
2.8-2 Actions continues
• Action conditionnelle
Exemple :
Le bit W4,5 est asservi à l’entrée I4,7 ou au bit interne B55 et
à l’entrée I3,6.
Tant que l’étape est active et
que ces conditions sont présentes, W4,5 est positionné à 1.
Le dernier état lu à la désactivation de l’étape est mémorisé
puisque les actions associées
ne sont plus scrutées.
Il est donc nécessaire de remettre à 0 le bit W4,5.
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
XM
CHART
L S(C)10
I4,7
W4,5
B35 I3,6
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
XM
CHART
L S(D)10
W4,5
R
• Action conditionnelle temporisée : c’est un cas particulier, le temps intervenant comme condition logique. Cet asservissement peut être réalisé simplement
en testant le temps d’activité associé à l’étape.
Exemple :
Le bit B9 est piloté tant que le
temps d’activité de l’étape1 est
inférieur à 10 s (base de temps :
100 ms).
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
CHART
XM
L S(C)1
B9
X1,V<100
Ces actions peuvent également
être inconditionnelles.
2/17
2.8-3 Ordre d’exécution des actions
Pour l’exemple suivant, sur un tour de cycle, l’ordre d’exécution des actions est le
suivant :
Lorsque l’étape 51 est activée, les actions sont exécutées dans l’ordre suivant :
B
1 actions à la désactivation de l’étape 50,
2 actions à l’activation de l’étape 51,
3 actions continues de l’étape 51.
50
Activation X50
Continue X50
Désactivation X50
51
Activation X51
Continue X51
Désactivation X51
Dès la désactivation de l’étape 51, les actions continues associées ne sont plus
scrutées.
2/18
Le langage Grafcet PL7-3
2.9
2
Les réceptivités associées aux transitions
• à chaque transition est associée une réceptivité qui peut être programmée soit
en langage à contacts, soit en langage littéral,
• une réceptivité n’est scrutée que si la transition à laquelle elle est associée est
valide,
• une réceptivité correspond à un réseau de contacts ou à une expression littérale,
comprenant une série de tests sur bits et/ou sur mot,
• une réceptivité non programmée est une réceptivité toujours vraie. La
transition, visualisée alors en vidéo inverse, est franchie dès qu’elle est validée.
Repérage de la réceptivité
Le système mémorise les réceptivités en les repérant par rapport au numéro de
l’étape amont et au numéro de l’étape aval :
Module T : m>n
module : CHART ou XMi,
m : numéro d’étape ou
de macro-étape
amont
Exemple :
CHART T:12 > 13; réceptivité
associée à la transition entre les
étapes 12 et 13 du graphe principal.
Lors d’une activation simultanée
ou d’une désactivation simultanée d’étapes, le repère indiqué
est celui de l’étape de la colonne
principale (étape située le plus à
gauche).
n : numéro d’étape ou
ou de macro-étape
aval
0
1
12
2
3
4
13
33
53
5
6
XM2 T:12 > 13
7
9
10
25
40
58
11
12
13
M6
14
15
CHART T:25 > M6
16
2/19
B
2.9-1 Règles de programmation en langage à contacts
La réceptivité associée à la transition se programme sous la forme d’un réseau
comprenant une zone test et une zone action.
2
Formulaire programmation
schéma à contacts
3
B
4
5
6
59
Fdc bas• Valeur Pesée <10
(I3,1 • W26
<10)
7
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
CHART
XM
T:59>60
I3,1
#
W26<10
8
9
La structure du réseau est identique à celle d’un réseau programmé dans un
module de programme.
Seuls les éléments suivants peuvent être utilisés :
• éléments graphiques de test : contacts (Bi, I/O, Ti,D...), blocs comparaisons,
• éléments graphiques d’action : bobine "dièse" uniquement (les autres bobines
n’étant pas significatives dans ce cas).
2.9-2 Règles de programmation en langage littéral
La réceptivité associée à la transition se programme sous la forme d’une expression
boléenne ou d’une expression arithmétique ou d’une association des deux.
2
3
4
5
6
59
Formulaire programmation
Litteral
Fdc bas• Valeur Pesée <10
(I3,1 • W26
<10)
<
!
7
8
9
CHART
T:59>60
L
I F
: WH I L E
T H E N
E L S E
D O
I 3 , 1 . [ W2 6 < 1 0 ]
L’expression admise pour l’écriture d’une réceptivité diffère d’une ligne de programmation en langage littéral par :
• la structure générale :
- pas de symbole début de ligne (!),
- pas d’étiquette (L),
- pas de phrase actions, de phrase conditionnelle ou de phrase itérative.
• la liste des instructions :
- pas d’action sur objet bit,
- pas de saut, d’appel sous programme,
- pas de transfert (→), pas d’instruction d’action sur blocs.
2/20
2
Le langage Grafcet PL7-3
2.9-3 Réceptivité utilisant le temps d’activité
Dans certaines applications, des actions sont pilotées sans contrôle d’information
de retour (fin de course, détecteur...). La durée de l’étape est conditionnée par un
temps; le langage PL7-3 permet d’utiliser le temps d’activité associé à chaque
étape.
B
MAST
CHART
1
0
2
XM
3
4
5
Formulaire programmation
Litteral
6
0
1
2
3
4
19
t = 15s
<
!
20
CHART
T:19>20
5
I F
: WH I L E
L
T H E N
E L S E
D O
X1 9 , V>= 1 5 0
6
Formulaire programmation
schéma à contacts
L
IT
MAIN
FAST
SR
MAST
PRE
ASY
AUX
POST
CHART
XM
T : 19>20
X19,V>=150
#
2/21
B
2/22
Organisation de la tâche maître
Organisation de la tâche maître
3
Chapitre 3
Sous-chapitre
Page
3.1 Le cycle de base
3/2
3.2 Le traitement préliminaire
3/3
3.2-1 Prépositionnement du Grafcet
3.3 Utilisation des bits système dans le traitement préliminaire
3.3-1
3.3-2
3.3-3
3.3-4
Initialisation du Grafcet : SY21
Remise à zéro du Grafcet : SY22
Figeage du Grafcet : SY23
Remise à zéro des macro-étapes : SY24
3.4 Le traitement séquentiel
3.4-1
3.4-2
3.4-3
3.4-4
Caractéristiques
Principe d’évolution
Dépassement des possibilités d’activation
Surveillance par l’utilisateur
3.5 Le traitement postérieur
3.5-1 Actions associées au Grafcet
3.5-2 Actions indépendantes du Grafcet
3.5-3 Contrôle de l’exécution du Grafcet
Ce chapitre se termine à la page
3/3
3/4
3/4
3/4
3/5
3/5
3/6
3/6
3/6
3/7
3/8
3/9
3/9
3/10
3/10
3/10
3/1
B
3.1
Le cycle de base
Un programme écrit en langage Grafcet comporte trois traitements consécutifs : le
traitement préliminaire, le traitement séquentiel et le traitement postérieur.
Leur scrutation s’effectue selon le cycle de base suivant :
B
Période :
Temps entre deux scrutations de la tâche,
défini par configuration.
Période
Acquisition des entrées :
Acquisition de l’état physique des modules
d’entrées de l’automate (valeurs figées pendant le traitement).
Acquisition
des entrées
Traitement préliminaire :
Il permet de traiter :
• les initialisations sur reprise secteur ou défaillance,
• le prépositionnement du Graphe,
• les modes de marche de l’application,
• la logique d’entrée.
Traitement Préliminaire
Langage littéral
ou
Langage à contacts
Traitement Séquentiel
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,
• les surveillance et sécurités indirectes spécifiques aux sorties.
Grafcet
Traitement Postérieur
Langage littéral
ou
Langage à contacts
Mise à jour
des sorties
Mise à jour des sorties :
Mise à jour de l’état physique des module de
sorties de l’automate (valeurs figées pendant
le traitement).
Incidence du traitement multitâche
Cette structure reste identique, que le traitement soit monotâche ou multitâche.
3/2
3
Organisation de la tâche maître
3.2
Le traitement préliminaire
Saisi en langage à contacts 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 et macro-étapes Xj,i par les
instructions Set et Reset).
Exemple : Ces actions réalisent un prépositionnement du Grafcet.
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
B29
AUX
POST
ASY
CHART
XM
X12
S
X1Ø
R
X11
R
Nota : l’action de mise à 1 ou à 0 d’une étape n’est effective que sur une étape programmée.
3.2-1 Prépositionnement du Grafcet
Il peut être nécessaire de prépositionner un Grafcet lors du passage d’un fonctionnement 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 :
! IF RE(I4,5) THEN SET X1 ; RESET X2 ; RESET X0
• par remise à 0 générale (SY22) puis, dans le cycle suivant, positionnement à 1
des étapes,
• par utilisation de l'OFB MSITi (se reporter au chapitre 4).
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.
3/3
B
3.3
B
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é (SY21 à SY24), 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.
3.3-1 Initialisation du Grafcet : SY21
Normalement à l’état 0, la mise à l’état 1 de SY21 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 SY0
• Par le programme utilisateur
• Par le terminal (en mode DONNEES
ou REGLAGE)
• Par le système au début du traitement
séquentiel
• Par le programme utilisateur
• Par le terminal
• Utilisation
lorsqu’il est géré par le programme utilisateur, SY21 ne peut être positionné à 0
ou 1 que dans le traitement préliminaire.
3.3-2 Remise à zéro du Grafcet : SY22
Normalement à l’état 0, la mise à l’état 1 de SY22 provoque la désactivation des
étapes actives de l’ensemble du traitement séquentiel.
Mis à l’état 1
• Par le programme utilisateur
Remis à l’état 0
• Par le système à la fin du traitement
postérieur
• Utilisation
- ce bit doit être écrit à 1 uniquement dans le traitement préliminaire,
- la remise à 0 de SY22 est géré par le système; il est donc interdit 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.
3/4
Organisation de la tâche maître
3
3.3-3 Figeage du Grafcet : SY23
Normalement à l’état 0, la mise à l’état 1 de SY23 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 SY23 est à 1.
Mis à l’état 1
Mis à l’état 0
• Par le programme utilisateur
B
• Par le programme utilisateur
• Utilisation
- géré par le programme utilisateur, ce bit est positionné à 1 ou 0 uniquement
dans le traitement préliminaire,
- le bit SY23 associé aux bits SY21 et SY22 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 SY23.
3.3-4 Remise à zéro des macro-étapes : SY24
Normalement à l’état 0, la mise à l’état 1 de SY24 provoque la mise à zéro des
macro-étapes choisies dans une table de 4 mots système (SW8 à SW11).
Mis à l’état 1
Remis à l’état 0
• Par le programme utilisateur
• Par le système au début du traitement
séquentiel
• Utilisation
- ce bit doit être écrit à 1 uniquement dans le traitement préliminaire,
- la mise à 0 de SY24 est géré par le système, il est donc interdit de le remettre
à 0 par programme ou par le terminal.
Table de mots SW8 à SW11
A chaque bit de cette table correspond une macro-étape.
L’utilisation en est la suivante :
• chargement de la table des mots
SW8 à SW11 (bit à mettre à 1
lorsque la macro-étape correspondante ne doit pas être mise
à zéro),
• validation par SY24.
F
SW8
0
F
XM15 . . . . . . . . . . . . . . XM0
SW9
SW10
SW11
0
XM63 . . . . . . . . . . . . . . XM48
Exemple : ! IF I14,2 . T3,D
THEN H’AF8F’ → SW8 ; H’F3FF’ → SW9;
H’FFEF’ → SW10 ; H’FFFF’ → SW11;
SET SY24
Ces quatre mots sont initialisés à H’FFFF’ si SY21 = 1.
3/5
3.4
Le traitement séquentiel
3.4-1 Caractéristiques
B
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 et 128 étapes maximum,
• les macro-étapes : 64 macro-étapes ouvrant chacune 8 pages de 128 étapes
plus l’étape IN et l’étape OUT.
Le traitement séquentiel permet la programmation maximum de 512 étapes et 1024
transitions. Au sein du graphe principal ou d’une macro-étape, plusieurs Grafcets
non connexes peuvent être programmés et se dérouler simultanément.
3.4-2 Principe d’évolution
L’évolution du Grafcet est géré de la façon suivante :
• Phase 1
A chaque tour de cycle, après évaluation des transitions franchissables, le système
met à jour :
une table d’activité des étapes :
cette table mémorise, pour le tour
de cycle concerné :
• les étapes actives,
• les étapes à activer,
• les étapes à désactiver.
Les étapes restant au repos dans
le tour de cycle ne sont pas prises
en compte dans cette table.
MAST
0
CHART
1
2
XM
3
4
Page
5
6
7
0
1
2
3
=1
=0
4
5
6
7
Etapes mémorisées durant le cycle
8
9
une table des transitions valides :
cette table mémorise, pour le tour
de cycle concerné, les transitions
aval aux étapes mémorisées cidessus
Ces deux tables sont configurées
par défaut :
• table des étapes : 64 postes
maximum,
• table des transitions : 96 postes
maximum.
3/6
10
11
=1
=0
12
13
14
15
16
17
18
Transitions mémorisées durant le cycle
3
Organisation de la tâche maître
• Phase 2
Les actions associées aux étapes
actives sont exécutées, dans l’ordre suivant :
MAST
0
CHART
1
2
XM
3
4
Page
5
6
7
0
1
- actions à la désactivation des
étapes à désactiver.
Exemple : S(D)10 et S(D)51.
2
- actions à l’activation des étapes à activer.
Exemple : S(A)11 et S(A)52.
6
- actions continues des étapes
actives.
Exemple : S(C)11 et S(C)52.
10
3
4
5
7
10
=1
50
11
51
=1
12
52
8
B
9
11
12
13
14
• Phase 3
Le système contrôle la monoactivité des macro-étapes monoactives et positionne
le bit système SY25 à 1 ainsi que le bit correspondant dans les mots systèmes
SW12 à SW15 si ce critère n’est pas respecté.
Remarques : • l’état des entrées/sorties est invariant pendant l’interprétation du
traitement séquentiel,
• la mise à jour des sorties n’est effective qu’en fin de cycle automate
après le traitement postérieur.
3.4-3 Dépassement des possibilités d’activation
Le dépassement des possibilités d’activation du système (dépassement du nombre
de postes d’une ou des deux tables) entraîne :
• l’arrêt de l’exécution de l’application (passage en "STOP" de toutes les tâches),
• le passage à 1 du bit système SY26 (dépassement des possibilités d’activation)
et du bit système SY19 (dépassement du temps alloué aux tâches),
• une signalisation au niveau de l’automate (voyant "MEM" allumé).
L’utilisateur doit alors modifier puis initialiser et relancer l’application à l’aide du
terminal (voir manuel "MODES OPERATOIRES").
3/7
3.4-4 Surveillance par l’utilisateur
Le système met à disposition de l’utilisateur (pour lecture) deux mots système :
B
SW6 : donne le nombre de postes
occupés dans la table d’activité
des étapes.
Exemple : SW6 passe de 4 à 5.
MAST
0
CHART
1
2
XM
3
4
Page
5
6
7
0
1
2
3
SW7 : donne le nombre de postes
occupés dans la table des transitions valides.
4
5
6
7
Exemple : SW7 passe de 1 à 4.
8
9
10
11
12
13
14
15
16
17
18
Remarque : en cas de dépassement (SY26=1), les mots SW6 et SW7 contiennent
le nombre de postes correspondant au cycle avant déplacement.
3/8
3
Organisation de la tâche maître
3.5
Le traitement postérieur
Saisi en langage à contacts 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.
B
3.5-1 Actions associées au Grafcet
L’équation d’une sortie activée plusieurs fois dans le traitement séquentiel peut être
programmée dans le traitement postérieur.
Exemple : ! X1 + X7 + X24 + X3,12 → O10,7
(la sortie O10,7 est conditionnée à l’activité des étapes X1 ou X7 ou X24
ou X3,12).
De même 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 marches
et d’arrêts et les sécurités indirectes spécifiques à l’action.
I2,4 :sécurité indirecte spécifique au pilotage de la sortie O11,3.
B26 :bit interne résultat de la logique d’entrée traitant des modes de marches et
d’arrêts.
I1,0 :bouton poussoir.
D’une manière générale il est recommandé de programmer les actions
agissant directement sur le process dans le traitement postérieur
Formulaire programmation
schéma à contacts
I2,4
X5
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
CHART
XM
O11,3
X8
X59
B26
I1,Ø
3/9
3.5-2 Actions indépendantes du Grafcet
Le traitement postérieur permet également de programmer les sorties indépendantes du traitement séquentiel.
B
3.5-3 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,V > 10] . X2 THEN SET O10,2.
3/10
OFBs de la famille Grafcet
Sous-chapitre
Chapitre 4
Page
4.1 Rappels sur les Grafcets
4/2
4.2 Fonctions de l'OFB
4/4
4.3 Présentation de l'OFB MSIT
4/6
4.4 Description des paramètres
4/7
4.5 Liste des défauts
4/9
4.6 Utilisation de l'OFB MSIT
4/10
4.7 Exemple d'utilisation
4/11
4.7-1 Description de l'équipement
4/11
4.7-2 Fonctionnement de l'équipement
4/12
4.7-3 Description des capteurs et pré-actionneurs
4/13
4.7-4 Programme
4/14
4.7-5 Saisie du programme
4/17
4.7-6 Utilisation de l'OFB MSIT
4/19
Ce chapitre se termine à la page
4/22
___________________________________________________________________________
4/1
B
4.1 Rappels sur les Grafcets
_________________________________________________________________________________________________________________________
B
Grafcet connexe
On appelle Grafcet connexe un Grafcet tel qu'il existe toujours des liaisons explicites
entre deux éléments quelconques : étapes ou transitions.
La prise en compte de l'état d'une étape, dans une réceptivité associée à une transition,
ne constitue pas une liaison au sens de la connexité, alors que l'expansion d'une macroétape est une liaison connexe non représentée.
▲
1
7
_
_
2
3
_
_
4
5
_
▲
8
_
9
_
6
_
Par exemple :
L'ensemble des étapes 1, 2, 3, 4, 5, 6 est un Grafcet connexe,
L'ensemble des étapes 7, 8, 9 est un Grafcet connexe.
L'ensemble des étapes 1, 2, 3, 4, 5, 6, 7, 8, 9 n'est pas un Grafcet connexe, car il n'existe
pas une suite de liaison entre les étapes 1 et 9.
Grafcet partiel
On appelle Grafcet partiel un Grafcet connexe ou un ensemble de plusieurs Grafcets
connexes, qui représente une partie du Grafcet global. Cette partition du Grafcet global
en plusieurs Grafcets partiels peut être nécessaire afin de définir les différents modes
de marche d'un automatisme : elle permet d'associer un Grafcet partiel à chaque état
de l'équipement.
Un Grafcet partiel est dit actif quand au moins une de ses étapes est active. Dans le cas
contraire, il est dit inactif.
___________________________________________________________________________
4/2
4.2 Fonctions de l'OFB
_________________________________________________________________________________________________________________________
B
Les OFBs MSIT V5.0 et MSITN V5.5 de la famille Grafcet permettent de faciliter la
gestion des modes de marche et d'arrêt d'une application séquentielle décrite en
Grafcet. Ils permettent notamment de :
• définir explicitement le descripteur du Grafcet partiel (étapes et macro-étapes du
Grafcet partiel),
• forcer le Grafcet partiel,
• sauvegarder la situation courante,
• positionner le Grafcet partiel dans une situation sauvegardée au préalable,
• signaler une erreur signée,
• disposer de la caractéristique "diagnostic", donc être exploitable par APPLIDIAG.
De plus, l'OFB MSITN V5.5 propose les fonctionnalités suivantes :
• prise en compte des étapes de sorties des macro-étapes (OUT) lors d'un forçage. Le
traitement étant le même que pour les étapes IN : désactivation et blocage,
• désactivation d'un Grafcet partiel sans la nécessité de définir au préalable une
situation,
• figeage d'un Grafcet partiel,
• description de l'état du Grafcet partiel : forcé, figé ou libre,
• description de la dernière fonction correctement effectué par l'OFB.
Descripteur du Grafcet partiel
Le descripteur d'un Grafcet partiel identifie celui-ci. Il contient l'ensemble des étapes et
des macro-étapes qui le composent ainsi que son niveau de hiérarchie, indispensable
à la gestion des ordres de forçage.
Forçage d'un Grafcet
Cette fonction est très utile pour gérer les modes de marche d'un automatisme :
•
•
•
•
mise en situation initiale ou activation de Grafcets,
déblocage d'une situation après analyse de défauts,
traitement d'un arrêt d'urgence,
gel d'un Grafcet partiel après dysfonctionnement et reprise d'une situation précédente
permettant un redémarrage de l'installation,...
Attention : les étapes IN et OUT des macro-étapes ne sont pas prises en compte. Elles
sont systématiquement désactivées lors d'un forçage ou d'un positionnement.
La fonction libération du Grafcet permet de quitter son état forcé.
Sauvegarde et restitution d'une situation
Durant les phases de mise au point d'une application, il peut être intéressant de
mémoriser la situation courante d'un Grafcet partiel, afin de la restituer ultérieurement
et vérifier ainsi le comportement de l'application vis à vis de cette situation. Contrairement
au forçage, il n'y a pas lieu de définir de notion de hiérarchie.
___________________________________________________________________________
4/4
1
10
_
_
_
20
_
11
21
22
_
_
B
2
3
_
_
_
5
12
23
24
_
_
_
▲
▲
▲
4
_
6
G1
G10
G20
_
Par exemple :
Supposons les 3 Grafcets G1, G10 et G20, composés respectivement des étapes 1 à
6, 10 à 12 et 20 à 24. La réunion de G1 et G10 constitue un Grafcet partiel, de même
que G20 constitue un autre Grafcet partiel.
Grafcet global
Le Grafcet global, décrivant un système, est composé de tous ses Grafcets partiels.
Dans l'exemple ci-dessus, l'ensemble des 3 Grafcets G1, G10 et G20 constitue le
Grafcet global.
Situation d'un Grafcet
On appelle situation d'un Grafcet, la liste de ses étapes actives , à un instant donné. Il
existe quatre types de situation pour un Grafcet :
•
•
•
•
situation initiale : ensemble des étapes actives à l'instant initial,
situation courante : ensemble des étapes actives à l'instant considéré,
situation vide : situation pour laquelle aucune étape n'est active,
situation donnée : situation déterminée pour laquelle seules les étapes désirées sont
actives.
Forçage d'un Grafcet partiel
Cela consiste à modifier la situation d'un Grafcet partiel de manière interne, à partir d'un
autre Grafcet partiel.
Le forçage d'un Grafcet partiel est soumis à deux règles importantes :
1
2
Si un Grafcet partiel force un autre Grafcet partiel, la réciproque est impossible.
A tout instant du fonctionnement, un Grafcet partiel ne peut être forcé que par
un seul et unique Grafcet.
Cette relation de dépendance entre les Grafcets partiels implique une hiérarchie entre
ceux-ci :
Un Grafcet partiel ne peut forcer qu'un autre Grafcet partiel dont le niveau de
hiérarchie est inférieur.
___________________________________________________________________________
4/3
Caractéristique "diagnostic"
Cette caractéristique inhérente à la structure de l'OFB, fait que celui-ci est exploitable
par le logiciel APPLIDIAG par le biais de ses sorties ERROR et STATUS :
1
2
3
Bit ERROR : si ce bit n'est pas inhibé, il est positionné à 1 en cas de défaut. La
scrutation permanente des bits d'erreur, par programme ou par le logiciel APPLIDIAG,
permet de déterminer les OFBs signalant un défaut.
Mot STATUS : ce mot indique la ou les causes du défaut ayant provoqué la mise à
1 du bit ERROR. Il peut être exploité par programme ou par le logiciel APPLIDIAG,
afin de signaler par un message le défaut. C'est l'OFB qui, lors de son exécution,
positionne les bits du mot STATUS inhérents aux défauts détectés.
Bit INHIB : ce bit permet lorsqu'il est à 1, d'inhiber la sortie ERROR. Celle-ci est alors
figée dans l'état dans lequel elle se trouve au moment de l'inhibition et ceci jusqu'à
la prochaine mise à 0 du bit INHIB.
Désactivation d'un Grafcet partiel
Désactiver un Grafcet partiel revient en fait à le positionner dans une situation vide. Pour
cela, il est obligatoire que le graphe ne soit ni forcé, ni figé.
Figeage d'un Grafcet partiel
Figer un Grafcet partiel revient en fait à le forcer dans sa situation courante. C'est un
ordre de forçage particulier qui nécessite donc une hiérarchie entre les différents
Grafcets partiels.
La fonction libération d'un Grafcet permet de quitter son état figé.
Indication sur l'état d'un Grafcet partiel
Il peut être intéressant dans certains cas de disposer de l'état d'un Grafcet partiel. Pour
cela, l'OFB MSITN V5.5 dispose d'un paramètre de sortie réservé à cet effet.
Indication sur la dernière fonctionnalité effectuée
Durant le fonctionnement de l'application, il peut être nécessaire de connaître la
dernière opération effectuée sur la situation d'un Grafcet partiel. Pour cela, l'OFB MSITN
V5.5 dispose d'un paramètre de sortie réservé à cet effet.
___________________________________________________________________________
4/5
B
4.3 Présentation des OFBs MSIT et MSITN
______________________________________________________________________________________________________________________
B
Les OFBs MSIT et MSITN permettent de réaliser les fonctions décrites précédemment :
forçage d'un Grafcet ou sauvegarde d'une situation, figeage d'un Grafcet (V5.5 uniquement).
Il dispose pour cela de paramètres d'entrées : initialisation, fonction à réaliser, hiérarchie du
Grafcet partiel qui émet l'ordre de forçage et adresse de la situation et de paramè e sorties
: erreur, code d'erreur, état du Grafcet (V5.5 uniquement) et dernière fonction effectuée
(V5.5 uniquement). Le descripteur du Grafcet (niveau de hiérarchie du Grafcet forcé, étapes
et macro-étapes qui le composent) est contenu dans les constantes internes de l'OFB.
OFB MSIT V5.0
Entrées
Données internes
Constantes internes
MSIT
RESET : bit
ERROR : bit
FUNCT0 : bit
STATUS : word
FUNCT1 : bit
HIERAR : word
ADDRESS : word
Sorties
INHIB : bit
PART : ar_word[13]
OFB MSITN V5.5
Entrées
Données internes
Constantes internes
MSITN
RESET : bit
ERROR : bit
FUNCT0 : bit
STATUS : word
FUNCT1 : bit
STATE : bit
FUNCT2 : bit
LSTFCT : word
HIERAR : word
ADDRESS : word
Sorties
INHIB : bit
PART : ar_word[13]
Note
La programmation de l'OFB MSIT ou MSITN s'effectue en langage à contacts ou Littéral, dans le
module préliminaire.
___________________________________________________________________________
4/6
4.4
Description des paramètres
______________________________________________________________________________________________________________________
Paramètres d'entrées
Paramètre
Type
Description
________________________________________________________________________________________________________________________
RESET
bit
Ce bit permet d'initialiser à 0 le flag "forçage en
cours" de l'OFB. Ce bit est à mettre à 1, par
exemple, suite à la mise à 1 du bit système SY 21.
Si RESET est à 1, tous les autres paramètres de
l'OFB sont ignorés. Les paramètres de sorties
ERROR et STATUS sont égaux à 0.
________________________________________________________________________________________________________________________
FUNCT0 à
bit
FUNCT2
Ces bits permettent de choisir la fonction à réaliser :
OFB MSIT V5.0
si FUNCT0 = 0
- FUNCT1 = 0; libération du Grafcet,
- FUNCT1 = 1; forçage du Grafcet,
si FUNCT0 = 1
- FUNCT1 = 0; sauvegarde de situation,
- FUNCT1 = 1; positionnement de situation.
OFB MSITN V5.5
si FUNCT0 = 0 et FUNCT1 = 0
- FUNCT2 = 0; libération du Grafcet,
- FUNCT2 = 1; forçage du Grafcet,
si FUNCT0 = 0 et FUNCT1 = 1
- FUNCT2 = 0; sauvegarde de situation,
- FUNCT2 = 1; positionnement de situation,
si FUNCT0 = 1 et FUNCT1 = 0
- FUNCT2 = 0; désactivation du Grafcet,
- FUNCT2 = 1; figeage du Grafcet,
si FUNCT0 = 1 et FUNCT1 = 1
- Fonctions inopérantes.
FUNCT0
FUNCT1
FUNCT2
forç.
libé.
fige.
0
0
1
0
0
0
1
0
1
désa. sauv. posit.
situ. situ.
1
0
0
0
1
1
0
0
1
________________________________________________________________________________________________________________________
HIERAR
word
Ce mot permet de communiquer à l'OFB, le niveau
de hiérarchie du Grafcet "forçant" ou "maître".
Ce niveau de hiérarchie est compris entre 0 (niveau le plus élevé) et 255 (niveau le plus faible).
___________________________________________________________________________
4/7
B
Paramètres d'entrées
Paramètre
___
__________________________________________________________Type
_________________________________________Description
__________________________________________________________________________________________________________________________________________
B
ADDRESS
word
Ce mot indique à l'OFB, l'adresse à partir de
laquelle est mémorisée, soit la situation de forçage,
soit la situation sauvegardée. La situation de
forçage (FUNCT0 = 0 si V5.0 ou FUNCT1 = 0 si
V5.5) est définie dans les mots constants CWi
alors qu'une situation sauvegardée (FUNCT0 = 1
si V5.0 ou FUNCT1 = 1 si V5.5) est définie dans
les mots internes Wi.
La taille mémoire occupée par une situation de
forçage ou une situation sauvegardée est de :
(9 mots x nbre de modules CHART ou XM) + 1.
Paramètres de sorties
Paramètre
Type
Description
________________________________________________________________________________________________________________________
ERROR
bit
Ce bit de défaut signale si la fonction choisie s'est
déroulée correctement :
• ERROR = 0; aucune erreur,
• ERROR = 1; un ou plusieurs défauts détectés.
________________________________________________________________________________________________________________________
STATUS
word
Si le bit ERROR est à 1, ce mot indique le ou les
défauts détectés (se reporter au sous-chapitre 4.5).
________________________________________________________________________________________________________________________
STATE
bit
Description de l'état du Grafcet partiel :
• STATE = 0; Grafcet partiel libre,
• STATE = 1; Grafcet partiel forcé ou figé.
________________________________________________________________________________________________________________________
LSTFCT
word
Description de la dernière fonction effectuée :
• LSTFCT = 0; initialisation de l'OFB,
• LSTFCT = 1; libération de Grafcet partiel,
• LSTFCT = 2; forçage de Grafcet partiel,
• LSTFCT = 3; sauvegarde de situation,
• LSTFCT = 4; positionnement de situation,
• LSTFCT = 5; figeage de Grafcet partiel,
• LSTFCT = 6; désactivation de Grafcet partiel.
Données internes
Paramètre
Type
Description
________________________________________________________________________________________________________________________
INHIB
bit
Ce bit d'inhibition, permet lorsqu'il est positionné à
1, de figer la valeur du paramètre de sortie ERROR
et cela jusqu'à ce que INHIB soit à nouveau à l'état
0. Par défaut INHIB = 0.
___________________________________________________________________________
4/8
Constantes internes
Paramètre
Type
Description
________________________________________________________________________________________________________________________
PART
ar_word[13]
Ce tableau de 13 mots contient le descripteur du
Grafcet :
• le premier mot contient des bits de contrôle ainsi
que le niveau de hiérarchie du Grafcet,
• les huit mots suivants permettent de référencer
les 128 étapes configurables,
• les quatre derniers mots permettent de référencer
les 64 macro-étapes configurables.
4.5 Liste des défauts
________________________________________________________________________________________________________________________
Mot STATUS
bit 0 = 1
bit 1 = 1
bit 2 = 1
bit 3 = 1
bit 4 = 1
bit 5 = 1
bit 6 = 1
bit 7 = 1
:
:
:
:
:
:
:
:
partition non cohérente,
situation de forçage non cohérente,
hiérarchie non cohérente,
fonction rejetée,
overrun,
exécution avortée,
mauvais adressage de la situation,
situation sauvegardée non cohérente.
___________________________________________________________________________
4/9
B
4.6
Utilisation des OFBs MSIT et MSITN
________________________________________________________________________________________________________________________
B
La gestion des situations de Grafcets, par l'utilisation des OFBs MSIT et MSITN, peut
se concevoir en 6 phases. Deux phases de spécifications et quatre phases de définition
de l'OFB :
1
2
3
4
5
6
Partitionnement du Grafcet global en Grafcets partiels. Cette partition doit se
faire sur papier et doit être unique.
Définition de la hiérarchie entre les différents Grafcets partiels. Cette hiérarchie
doit être totale.
Configuration de l'OFB MSIT (se reporter au chapitre 6 - Mode configuration de la
documentation TXT DM PL7 3 V5F).
Celui-ci n'est configurable que si l'application est de niveau V5 et si elle contient du
Grafcet (défini en configuration de l'application).
Inversement si l'OFB MSIT ou MSITN est configuré, il n'est plus possible de
supprimer le Grafcet de la configuration.
Il faudra définir autant d'OFB MSIT ou MSITN que de Grafcets partiels à forcer ou
à positionner. De même pour optimiser le temps de traitement, il ne faudra pas
configurer plus d'étapes et de macro-étapes que ce qui est nécessaire à l'application.
Définition des descripteurs des Grafcets partiels (se reporter au chapitre 10 Mode constante de la documentation TXT DM PL7 3 V5F). Cette opération consiste
à définir pour chaque Grafcet partiel : l'OFB associé, les étapes et macro-étapes qui
le composent et le niveau du hiérarchie.
Initialisation des différentes situations de forçage pour les Grafcets partiels
concernés par des ordres de forçage (se reporter au chapitre 10 - Mode constante).
Cette opération consiste à définir l'adresse de début de la zone CWi dans laquelle
sera mémorisée la situation de forçage. Il faut ensuite pour chaque module (CHART,
XMi) définir la situation de forçage; c'est-à-dire les étapes actives.
Programmation de l'exécution des OFBs MSIT ou MSITN. Cette opération
s'effectue dans le traitement préliminaire de l'application.
Pour ne pas ordonner un forçage à un Grafcet qui est déjà forcé, ce qui provoquerait
une erreur, l'exécution de l'OFB MSIT ou MSITN doit être conditionnée par une
opération sur front : par exemple IF FE(B0) THEN EXEC MSITN1(....).
___________________________________________________________________________
4/10
4.7
Exemple d'utilisation
_________________________________________________________________________________________________________________________
4.7-1 Description de l'équipement
Il s'agit d'un équipement qui permet de convoyer les palettes, en provenance de 3 lignes
de production, vers un transbordeur de sortie. Cet équipement se compose de :
• un transbordeur de ligne, en fin de chaque ligne de production, qui permet le
chargement des palette sur la navette,
• une navette qui assure le transport des palettes vers le transbordeur de sortie,
• un transbordeur de sortie qui permet le déchargement des palettes.
Palette
Transbordeur
de ligne
Navette
Transbordeur
de sortie
Cet exemple s'inspire d'un exemple donné dans le document LE GRAFCET
ADEPA/AFCET.
___________________________________________________________________________
4/11
B
4.7-2 Fonctionnement de l'équipement
Le cycle de fonctionnement de l'équipement est le suivant :
B
La présence d'une palette en fin de ligne de production provoque l'appel de la navette
en face de cette ligne. La palette est ensuite chargée sur la navette qui transporte celleci vers la ligne de sortie, où elle sera déchargée.
Le chargement de la palette sur la navette nécessite la mise en marche simultanée du
transbordeur de ligne et du transbordeur de la navette. De même que le déchargement
de la palette nécessite le fonctionnement simultané du transbordeur de la palette et du
transbordeur de la ligne de sortie.
1
_
2
_
3
_
4
(*Attente d'un appel*)
Appel de la navette
Transfert de la navette vers la ligne appelante
Navette en face de la ligne
Chargement de la palette sur la navette
Palette chargée
_
Retour de la navette vers la ligne de sortie
Navette en face de la ligne
5
_
Déchargement de la palette si la ligne de sortie libre
Palette déchargée
Sécurité
• deux chasse-corps, placés de part et d'autre de la navette, permettent un arrêt
immédiat de celle-ci en cas de collision avec un obstacle. Deux capteurs de sécurité
Cs1 et Cs2 sont associés aux chasse-corps,
• deux contacts de fin de course Cf1 et Cf2 sont prévus en bout de voie,
• un capteur de présence navette par ligne : Nav1 à Nav3 évite le transbordement de
la palette lorsque la navette est absente.
Modes de marche
L'exploitation de cet équipement nécessite deux modes de marche :
• marche normale qui permet le transfert des palettes à la demande des différentes
lignes de production, sans intervention de l'opérateur,
• marche manuelle destinée à la maintenance.
___________________________________________________________________________
4/12
4.7-3 Description des capteurs et pré-actionneurs
I0,0
I0,1
I0,2
I0,3
I0,4
I0,5
I0,6
I0,7
I0,8
I0,9
I0,10
I0,11
I0,12
I1,1
I1,2
I1,3
I1,4
I1,5
O2,1
O2,2
O2,3
O2,4
O2,5
O2,6
O2,7
O2,8
O2,9
Urge
Rear
Auto
Manu
Pal1
Pal2
Pal3
Pals
Paln
Nav1
Nav2
Nav3
Navs
Cs1
Cs2
Cf1
Cf2
Ret
Klax
VMan
Av
Ar
Tr1
Tr2
Tr3
Trs
Trn
Arrêt d'urgence
Réarment
Marche automatique
Marche manuelle
Présence d'une palette en fin de ligne de production 1
Présence d'une palette en fin de ligne de production 2
Présence d'une palette en fin de ligne de production 3
Présence d'une palette sur la ligne de sortie
Présence d'une palette sur la navette
Présence de la navette en bout de ligne de production 1
Présence de la navette en bout de ligne de production 2
Présence de la navette en bout de ligne de production 3
Présence de la navette en bout de ligne de sortie
Détection d'un obstacle sur la voie
Détection d'un obstacle sur la voie
Navette en limite de voie
Navette en limite de voie
Retour manuel de la navette
Avertisseur sonore de présence d'une palette en fin de ligne
Voyant de marche manuelle
Marche avant de la navette
Marche arrière de la navette
Commande moteur transbordeur de ligne de production 1
Commande moteur transbordeur de ligne de production 2
Commande moteur transbordeur de ligne de production 3
Commande moteur transbordeur de ligne de sortie
Commande moteur transbordeur de la navette
___________________________________________________________________________
4/13
B
4.7-4 Programme
Le Grafcet global suivant spécifie le comportement de l'équipement suivant le cahier de
charge. Il se décompose en 3 Grafcets partiels :
B
• le Grafcet de sécurité (GS) qui assure la gestion des éléments de sécurité : arrêt
d'urgence (Urge), réarmement (Réar), capteurs de sécurité et de fin de course (Cs1,
Cs2, Cf1, Cf2). Lorsque l'étape 1 est active, les Grafcets de conduite (GC) et de
production (GP) sont respectivement forcés aux étapes 10 et 100,
• le Grafcet de conduite (GC) qui assure le gestion des modes de marche et d'arrêt.
L'étape initiale 10, qui peut également être activée par forçage, correspond à la
marche de sécurité pour laquelle les étapes 1 et 100 sont également actives.
Si la situation du Grafcet de sécurité le permet (étape 2 active), l'opérateur peut choisir
soit un fonctionnement manuel, soit une initialisation automatique de la partie
opérative : émission d'un signal sonore pendant 5 s (étape 12), retour de la navette
en face du transbordeur de sortie (étape 13) et si une palette est présente sur la
navette, déchargement de celle-ci (étape 15).
L'activation de l'étape 16 permet la marche de production normale, en permettant
l'activation de l'étape 101,
• le Grafcet de production (GP) qui permet le fonctionnement automatique de l'équipement : transbordeurs et navette. Si au moins une palette est présente sur un
transbordeur de ligne de production (Pal1 à Pal3), l'étape 101 est activée. Si plusieurs
palettes sont présentes en fin de ligne de production, elle seront traitées par ordre
croissant (d'abord transbordeur de ligne 1, puis transbordeur de ligne 2, etc.). Le
déplacement de la navette (étape 110, 112 ou 114) s'effectue jusqu'à ce que celleci soit en face de la ligne appelante. Les transbordeurs de ligne et de la navette sont
alors activés jusqu'à la détection de la palette sur la navette (Paln).
Les étapes 102, 103 et 104 constituent la séquence de retour et de déchargement de
la navette (identique aux étapes 13, 14 et 15 du Grafcet de conduite). La détection de
la palette sur le transbordeur de sortie provoque le retour à l'étape 100 donc la
possibilité de traiter un nouvel appel.
___________________________________________________________________________
4/14
1
▲
F/GC: {10}
F/GP: {100}
- Rear.Not Urge.Not Cs1.Not Cs2.Not Cf1.Not Cf2
2
Grafcet de Sécurité (GS)
- Urge + Cs1 + Cs2 + Cf1 + Cf2
10
- Auto.Ret
- Manu
11
VMan
F/GP : {100}
- Auto.Ret
12
Klax
- t=5s
13
▲
- Navs.Not Paln
Ar
- Navs.Paln
14
- Not Pals
15
Trs
Trn
- Pals
16
- Manu
Grafcet de Conduite (GC)
Note
F/GC : {10} signifie forçage du Grafcet GC à la situation : {10},
F/GP : {100} signifie forçage du Grafcet GP à la situation : {100}.
___________________________________________________________________________
4/15
B
100
- (Pal1 + Pal2 + Pal3).X16
B
101
- Pal1
110
- Pal2.Not Pal1
Av
112
- Nav1
▲
111
Tr1
114
- Nav2
Trn
- Paln
102
Av
113
Tr2
- Paln
- Pal3.Not Pal1.Not Pal2
Av
- Nav3
Trn
115
Tr3
Trn
- Paln
Ar
- Navs
103
- Not Pals
104
Trs
Trn
Grafcet de Production (GP)
- Pals
___________________________________________________________________________
4/16
4.7-5 Saisie du programme
Saisie du Grafcet
▼ 2
▼ 16
1
10
-
2
-
▼ 13
-
▼ 104
▼ 103
16
100
104
-
-
▼ 10
11
-
▼ 1
▼ 15
12
-
13
-
-
-
-
114
-
113
-
▼ 16
-
▼ 100
112
111
-
14
101
110
-
-
115
-
102
-
15
103
▼ 16
▼ 104
Saisie des réceptivités associées aux transitions
X1 -> X2
!I0,1.NOT I0,0.NOT I1,1.NOT I1,2.NOT I1,3.NOT I1,4
X2 -> X1
!I0,0 + I1,1 + I1,2 + I1,3 + I1,4
X10 -> X11
!I0,3
X10 -> X12
!I0,2.I1,5
X11 -> X12
!I0,2.I1,5
X12 -> X13
!X12,V = 50
X13 -> X14
!I0,12.I0,8
X13 -> X16
!I0,12.NOT I0,8
___________________________________________________________________________
4/17
B
X14 -> X15
!NOT I0,7
X15 -> X16
B
!I0,7
X16 -> X10
!I0,3
X100 -> X101
!(I0,4 + I0,5 + I0,6).X16
X101 -> X110
!I0,4
X101 -> X112
!I0,5.NOT I0,4
X101 -> X114
!I0,6.NOT I0,4.NOT I0,5
X110 -> X111
!I0,9
X112 -> X113
!I0,10
X114 -> X115
!I0,11
X111 -> X102
!I0,8
X113 -> X102
!I0,8
X115 -> X102
!I0,8
X102 -> X103
!I0,12
X103 -> X104
!NOT I0,7
X104 -> X100
!I0,7
___________________________________________________________________________
4/18
Saisie des actions dans la Postérieur
<
!
<
!
<
!
<
!
<
!
<
!
!
!
Marche manuelle
X11 -> O2,2
Avertisseur sonore
X12 -> O2,1
Retour navette
X13 + X102 -> O2,4
Dechargement palette
X15 + X104 -> O2,8 -> O2,9
Deplacement navette
X110 + X112 + X114 -> O2,3
Chargement palette
X111 -> O2,5 -> O2,9
X113 -> O2,6 -> O2,9
X115 -> O2,7 -> O2,9
B
________________________________________________________________________
4.7-6 Utilisation de l'OFB MSIT ou MSITN
Les forçages à réaliser sont les suivants :
▼
F/GP : {100}
▼
F/GP : {100}
•
GP
▼
F/GC : {10}
▼
▼
•
GC
▼
GS
Le Grafcet de sécurité aura donc le niveau de hiérarchie le plus élevé et le Grafcet de
production le niveau le plus faible. Par exemple :
• 0 (niveau le plus élevé) pour le Grafcet de sécurité,
• 1 pour le Grafcet de conduite,
• 2 pour le Grafcet de production.
Pour effectuer ces forçage, il est nécessaire d'utiliser 2 OFBs :
• MSITN0 qui permet de forcer le Grafcet de conduite (GC) à la situation : {10}. Cet OFB
est exécuté lorsque l'étape 1 de GS est active. La situation de forçage est mémorisée
à l'adresse CW10 et occupe 10 mots constants (un seul module : CHART),
• MSITN1 qui permet de forcer le Grafcet de production (GP) à la situation : {100}. Cet
OFB est exécuté lorsque les étapes 1 ou 11 sont actives. La situation de forçage est
mémorisée à l'adresse CW50 et occupe 10 mots constants (un seul module :
CHART).
Remarque
GS n'étant pas forcé, il n'est pas nécessaire de lui associer un OFB MSITNi, contrairement à GC et GP.
___________________________________________________________________________
4/19
Paramétrage des OFBs
MSITN0
B
B0
B0
B0
X1
10
10
RESET
ERROR
FUNCT0
STATUS
FUNCT1
STATE
FUNCT2
LSTFCT
HIERAR
ADDRESS
MSITN1
B10
W10
B0
B0
B0
X1
10
50
GS => F/GC : {10}
RESET
ERROR
FUNCT0
STATUS
FUNCT1
STATE
FUNCT2
LSTFCT
HIERAR
ADDRESS
B100
W100
GS => F/GP : {100}
MSITN1
1
2
Niveau de hiérarchie de GS.
Niveau de hiérarchie de GC.
B0
B0
B0
X11
21
50
RESET
ERROR
FUNCT0
STATUS
FUNCT1
STATE
FUNCT2
LSTFCT
HIERAR
ADDRESS
B100
W100
GC => F/GP : {100}
Notes
• Les paramètres d'entrées et de sorties des OFBs MSITN0 et MSITN1 ne sont pas définis par
câblage, mais par programme saisi dans le préliminaire.
• Le paramètre HIERAR permet de matérialiser le lien entre le Grafcet forçant et le Grafcet forcé.
• L'utilisation des fronts montant et descendant pour conditionner l'exécution de l'OFB MSITN
permet de générer un ordre unique de forçage ou de libération de GP et GC. Ceci permet aux
paramètres de sortie ERROR et STATUS de détecter un dysfonctionnement de l'automatisme.
L'utilisation de ce type de conditionnement pour l'exécution de l'OFB n'est pas obligatoire et
l'automatisme aurait le même fonctionnement avec des EXEC non conditionnés (des tests de
pertinence des fonctions sont effectués par l'OFB pour permettre un forçage ou une libération
unique par Grafcet). Ceci étant, les paramètres de sortie ERROR et STATUS perdent de leur
intérêt, car il devient impossible de distinguer une erreur liée à un dysfonctionnement de
l'automatisme.
Saisie du programme dans le préliminaire
!
!
<
!
RESET B0
X1 -> B1; X11 -> B2
Forcage de GC et GP depuis GS
IF RE(B1) + FE(B1) THEN EXEC MSITN0(B0;B0;B0;X1;0;10 => B10;W10;;);
EXEC MSITN1(B0;B0;B0;X1;0;50 => B100;W100;;)
< Forcage de GP depuis GC
! IF RE(B2) + FE(B2) THEN EXEC MSITN1(B0;B0;B0;X11;1;50 => B100;W100;;)
___________________________________________________________________________
4/20
Définition des descripteurs des Grafcets partiels, associés aux OFBs
Elle s'effectue en mode CONSTANTE, à partir de l'écran CONFIGURATION DES
BLOCS FONCTIONS OPTIONNELS ou à partir du mode PROGRAMME, par Zoom sur
les lignes contenant l'OFB MSIT ou MSITN (se reporter aux modes opératoires PL7-3).
B
X0
0 1
..
2
3
..
4
..
7
..
8
..
9
..
XM0
0
//
1
//
2
//
3
//
4
//
5
//
6
//
7
//
8
//
9
//
X1
** ** ** ** ** ** ** ..
..
..
XM1
//
//
//
//
//
//
//
//
//
//
X2
.. ..
..
..
..
..
..
..
..
..
XM2
//
//
//
//
//
//
//
//
//
//
X3
.. ..
..
..
..
..
..
..
..
..
XM3
//
//
//
//
//
//
//
//
//
//
X4
.. ..
..
..
..
..
..
..
..
..
XM4
//
//
//
//
//
//
//
//
//
//
X5
.. ..
..
..
..
..
..
..
..
..
XM5
//
//
//
//
//
//
//
//
//
//
X6
.. ..
..
..
..
..
..
..
..
..
XM6
//
//
//
//
X7
.. ..
..
X8
.. ..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
MSITN0 -> GC
X9
.. ..
..
..
..
..
..
..
..
..
HIERARCHIE : 1
1
..
..
..
..
..
..
..
..
..
X10
5
..
X11
6
..
X12
.. ..
..
..
..
..
..
..
0 1
..
2
X0
3
..
4
..
5
..
6
..
7
..
8
..
9
..
XM0
0
//
1
//
2
//
3
//
4
//
5
//
6
//
7
//
8
//
9
//
..
..
..
XM1
//
//
//
//
//
//
//
//
//
//
X1
X2
.. ..
..
..
..
..
..
..
..
..
XM2
//
//
//
//
//
//
//
//
//
//
X3
.. ..
..
..
..
..
..
..
..
..
XM3
//
//
//
//
//
//
//
//
//
//
X4
.. ..
..
..
..
..
..
..
..
..
XM4
//
//
//
//
//
//
//
//
//
//
X5
.. ..
..
..
..
..
..
..
..
..
XM5
//
//
//
//
//
//
//
//
//
//
X6
.. ..
..
..
..
..
..
..
..
..
XM6
//
//
//
//
X7
.. ..
..
..
..
..
..
..
..
..
X8
.. ..
..
..
..
..
..
..
..
..
MSITN1 -> GP
X9
.. ..
..
..
..
..
..
..
..
..
HIERARCHIE : 2
X10
** ** ** ** ** ..
..
..
..
..
1
1
Pour accéder à la saisie du niveau de
hiérarchie, utiliser la touche F9 - "HIERA."
de l'écran PARTITION.
X12 .. .. .. .. .. .. .. ..
___________________________________________________________________________
X11
** ** ** ** ** ** ..
..
..
..
4/21
Définition des descripteurs des Grafcets partiels, associés aux OFBs
Elle s'effectue en mode CONSTANTE, à partir de l'écran CONFIGURATION DES
BLOCS FONCTIONS OPTIONNELS ou à partir du mode PROGRAMME, par Zoom sur
les lignes contenant l'OFB MSIT ou MSITN (se reporter aux modes opératoires PL7-3).
B
0
..
1
X0
X1
1
0
X2
..
X3
2
3
..
4
..
5
..
6
..
7
..
8
..
9
..
XM0
0
//
1
//
2
//
3
//
4
//
5
//
6
//
7
//
8
//
9
//
0
0
0
0
0
..
..
..
XM1
//
//
//
//
//
//
//
//
//
//
..
..
..
..
..
..
..
..
..
XM2
//
//
//
//
//
//
//
//
//
//
..
..
..
..
..
..
..
..
..
..
XM3
//
//
//
//
//
//
//
//
//
//
X4
..
..
..
..
..
..
..
..
..
..
XM4
//
//
//
//
//
//
//
//
//
//
X5
..
..
..
..
..
..
..
..
..
..
XM5
//
//
//
//
//
//
//
//
//
//
X6
..
..
..
..
..
..
..
..
..
..
XM6
//
//
//
//
X7
..
..
..
..
..
..
..
..
..
..
X8
..
..
..
..
..
..
..
..
..
..
MSITN0 -> GC
X9
..
..
..
..
..
..
..
..
..
..
CW10 à CW19
..
..
..
..
..
..
..
X10
X11
1
..
..
X12
..
..
..
..
..
..
..
..
0
..
1
2
X0
3
..
4
..
5
..
6
..
7
..
8
..
9
..
XM0
0
//
1
//
2
//
3
//
4
//
5
//
6
//
7
//
8
//
9
//
..
..
..
XM1
//
//
//
//
//
//
//
//
//
//
X1
X2
..
..
..
..
..
..
..
..
..
..
XM2
//
//
//
//
//
//
//
//
//
//
X3
..
..
..
..
..
..
..
..
..
..
XM3
//
//
//
//
//
//
//
//
//
//
X4
..
..
..
..
..
..
..
..
..
..
XM4
//
//
//
//
//
//
//
//
//
//
X5
..
..
..
..
..
..
..
..
..
..
XM5
//
//
//
//
//
//
//
//
//
//
X6
..
..
..
..
..
..
..
..
..
..
XM6
//
//
//
//
X7
..
..
..
..
..
..
..
..
..
..
X8
..
..
..
..
..
..
..
..
..
..
MSITN1 -> GP
X9
..
..
..
..
..
..
..
..
..
..
CW50 à CW59
X10
1
0
0
0
0
..
..
..
..
..
X11
0
0
0
0
0
0
..
..
..
..
1
1
Ces 10 mots constants mémorisent la situation de forçage.
X12 .. .. .. .. .. .. .. ..
___________________________________________________________________________
4/22
Dialogue
Langage à contacts
Intercalaire C
Chapitre
1
5
Page
Présentation du langage à contacts PL7-3
Sommaire
1/1
1.1 Principe
1.2 Le langage à contact : traitement monotâche et multitâche
C
2
Les éléments du langage à contacts PL7-3
Sommaire
2/1
2.1 Les éléments graphiques de base
2.2 Les objets bits adressables
2.3 Les objets mots adressables
2.4 Les blocs fonctions standards
2.5 Les blocs Comparaison
2.6 Les blocs opérations
2.7 Les blocs fonctions optionnels
3
Réseau de contacts
Sommaire
3/1
3.1 Structure d’un réseau de contacts
3.2 Règles d’exécution d’un réseau de contacts
4
Blocs fonctions d’automatisme et de commande
Sommaire
4/1
4.1 Généralités
4.2 Bloc fonction : Temporisateur
4.3 Bloc fonction : Monostable
4.4 Bloc fonction : Compteur
4.5 Bloc fonction : Registre
4.6 Bloc fonction : Contrôle
C/1
Langage à contacts
Chapitre
5
Page
Blocs comparaison
Sommaire
5/1
5.1 Bloc comparaison : comparateur vertical
C
5.2 Bloc comparaison : comparateur horizontal
6
Blocs opérations
Sommaire
6/1
6.1 Présentation
6.2 Utilisation
7
Bloc fonction texte
Sommaire
7/1
7.1 Présentation
7.2 Description
7.3 Utilisation des entrées de commande
7.4 Fonctionnement
7.5 Télégrammes (bloc texte TLG)
8
Blocs fonctions optionnels
Sommaire
8.1 Présentation
8.2 Description
8.3 Utilisation des entrées/sorties
8.4 Fonctionnement
C/2
8/1
Présentation du langage à contacts PL7-3
1
Présentation du langage à contacts Chapitre 1
PL7-3
Sous-chapitre
Page
1.1 Principe
1/2
1.2 Le langage à contacts : traitement monotâche et multitâche
1/3
1.2-1 Traitement monotâche
1.2-2 Traitement multitâche
1/3
1/4
Ce chapitre se termine à la page
1/4
1/1
Sans titre-3
1
15/01/96, 11:54
C
1.1
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 :
•
•
•
•
C
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.
Ces éléments graphiques sont
reliés entre eux par des connexions horizontales et verticales
et occupent au maximum un écran
du terminal.
Chaque réseau ainsi constitué
comporte au plus 7 lignes et 11
colonnes et s’organise en 2 zones :
Formulaire programmation
schéma à contacts
L
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
CHART
XM
A T T ENT E DU SECHAGE
I1,0
B12 I0,7
O17,5
T4,D B17
↓
W4<50
I3,F O15,5 B27
T0
I1,4
TB :100ms
I2,0
T.P 200
B25 W10,4
SY1
W15 * W18 + 3 → W2
O15,7
R
SR2
C
• la zone test, dans laquelle figurent les conditions nécessaires
à une action,
• la zone action, qui sanctionne le résultat consécutif à un enchaînement de test.
1/2
Sans titre-3
2
15/01/96, 11:54
1
Présentation du langage à contacts PL7-3
1.2
Le langage à contacts : traitement monotâche et multitâche
1.2-1 Traitement monotâche
La tâche maître est exécutée périodiquement de façon cyclique.
Elle comprend un programme principal appelant, si nécessaire des sous programmes qui lui sont affectés.
Tâche Maître
Programme principal
Sous-programmes
SR0
SR0
C
↑
C
SR3
C
SR0
C
SR3
EOP
1/3
Sans titre-3
3
15/01/96, 11:54
1.2-2 Traitement multitâche
Le programme se compose de :
•
•
•
•
une tâche interruption,
une tâche périodique rapide,
une tâche périodique maître,
quatre tâches périodiques auxiliaires.
Les différentes tâches se composent d’un programme principal exécuté périodiquement de façon cyclique, associé ou non à des sous programmes locaux.
Les modules principaux et les sous programmes sont écrits en langage à contacts.
Il est nécessaire dans une telle structure de programmer la tâche maître.
C
Tâches Périodiques
Tâche Interruption
Tâche Rapide
Tâche Maître
Tâches Auxiliaires
Sous-programmes
Sous-programmes
Sous-programmes
Sous-programmes
Programme
Principal
Programme
Principal
Programme
Principal
Programme
Principal
1/4
Sans titre-3
4
15/01/96, 11:54
Les éléments du langage à contacts PL7-3
2
Les éléments du langage à contacts Chapitre 2
PL7-3
Sous-chapitre
Page
2.1 Les éléments graphiques de base
2/2
2.2 Les objets bits adressables
2/4
2.3 Les objets mots adressables
2/4
2.4 Les blocs fonctions standards
2/4
2.4-1 Blocs fonctions d’automatisme
2.4-2 Bloc fonction de communication
2.4.3 Bloc fonction de commande
2/5
2/6
2/6
2.5 Les blocs comparaison
2/6
2.6 Les blocs opérations
2/7
2.6-1
2.6.2
2.6-3
2.6-4
2.6-5
2.6-6
2.6-7
2.6-8
2.6-9
Transfert
Décalage
Transcodage
Opérations logiques
Opérations arithmétiques
Opérations sur chaînes de bits
Opérations sur tableaux de mots
Echanges explicites
Gestion des interruptions
2.7 Les blocs fonctions optionnels (OFBs)
2.7-1 Exécution d’un OFB
Ce chapitre se termine à la page
2/7
2/8
2/8
2/9
2/9
2/10
2/11
2/12
2/13
2/14
2/14
2/14
2/1
C
2.1
Les éléments graphiques de base
Désignation
Eléments de
test
Graphe
Contact passant quand l’objet bit qui le pilote
est à l’état 1.
• Contact à
ouverture
Contact passant quand l’objet bit qui le pilote
est à l’état 0.
• Contact
détection de
changement
d’état
C
↑
↓
Eléments de
liaison
Eléments
d’action
2/2
Fonctions
• Contact à
fermeture
Front montant : détection du passage de 0 à 1
de l’objet bit qui le pilote
Front descendant : détection du passage de 1
à 0 de l’objet bit qui le pilote.
• Connexion
horizontale
Permet de relier en série les éléments graphiques de test et d’action entre les deux barres
de potentiel.
• Connexion
verticale
Permet de relier en parallèle les éléments graphiques de test et d'action.
• Bobine
directe
L’objet bit associé prend la valeur du résultat
de la zone test.
• Bobine
inverse
L’objet bit associé prend la valeur inverse du
résultat de la zone test.
• Bobine
d’enclenchement
S
L’objet bit associé est mis à 1 lorsque le résultat de la zone test est à 1.
• Bobine de
déclenchement
R
L’objet bit associé est mis à 0 lorsque le résultat de la zone test est à 1.
Les éléments du langage à contacts PL7-3
Désignation
Eléments
d’action
(suite)
Graphe
• Bobine
saut à un
autre réseau
(JUMP)
J
2
Fonctions
Permet un branchement à un réseau étiqueté,
amont ou aval.
Les sauts ne sont effectifs qu’au sein d'une
même entité de programmation (programme
principal, sous-programme, traitement préliminaire...)
L’exécution d’un saut provoque :
• l’arrêt de la scrutation du réseau en cours,
• l’exécution du réseau étiqueté demandé,
• la non scrutation de la partie du programme
située entre l’action de saut et le réseau
désigné.
• Bobine
C
appel à un
sous-programme
(CALL).
Permet un branchement en début de sous-programme local.
L'éxécution d'un appel à un sous-programme provoque:
• l’arrêt de la scrutation du réseau en cours,
• l’exécution du sous-programme,
• la reprise de la scrutation du réseau interrompu.
Un sous-programme peut en appeler un autre.
Le nombre d’appels en cascade est limité à 8.
• Bobine
dièse
Proposée en langage Grafcet, utilisée lors de
la programmation des réceptivités associées
aux transitions, provoque le passage à l’étape
suivante.
#
Nota : l’état des bits associés aux bobines directes, inverses, d’enclenchement et de
déclenchement est sauvegardé suite à une coupure secteur, sur "reprise à chaud" ou
"immédiate".
2/3
C
2.2
Les objets bits adressables
Le langage à contacts permet de manipuler les objets bits :
• contenus dans la mémoire bits :
- bits d’entrées/sorties,
- bits associés aux étapes Grafcet
• bits internes,
• bits système.
• extraits de l’espace mémoire de données :
- bits d’état des modules
• bits extraits de mots communs,
- bits d’extraits de mots
• bits associés aux blocs fonctions.
• extraits de l’espace mémoire "constantes" :
- bits extraits de mots constants.
C
Ces bits peuvent, selon le cas, être lus ou écrits par l’utilisateur.
L’adressage et la liste des objets bits sont définis dans "Généralités" intercalaire A,
chapitre 2.
2.3
Les objets mots adressables
Le langage à contacts accède aux objets mots lors de l’utilisation de blocs fonctions
d’automatismes ou de blocs opérations.
Ces mots, selon leur nature, peuvent être lus et/ou écrits.
L’adressage et la liste des objets mots sont définis dans "Généralités" intercalaire A,
chapitre 2.
2.4
Les blocs fonctions standards
Chacun des blocs fonctions standards représentés ci-après utilise :
• des entrées et des sorties permettant de le relier à des éléments graphiques dans
un réseau,
• des paramètres de configuration, accessibles ou non par le programme utilisateur,
• des paramètres courants (objets bits de sortie, mot de valeur courante, mot
d’entrée), lus ou écrits par l’utilisateur ( voir "Généralités" intercalaire A, chapitre 2).
2/4
Les éléments du langage à contacts PL7-3
2
2.4-1 Blocs fonctions d’automatisme
Désignation
Nombre
Temporisateur Configurable
0≤i≤127
Graphe
E
Ti
C TB:1mn
Fonctions
D
R
Ti,R
T,P:9999
MODIF:Y
Monostable
Configurable
0≤i≤31
S
Mi
Ti,P
Ti,V
R
TB:1mn
Configurable
0≤i≤255
R
Ci
P
E
D
C,P:9999
U MODIF:Y
S
Mi,R
Mi,P
Mi,V
M,P:9999
MODIF:Y
Compteur/
décompteur
E
C
Ti,D
R
P
U
D
Ci,E
F
Ci,D
D
Ci,F
Ci,P
Ci,V
Registre
LIFO/FIFO
Configurable
0≤i≤127
R
I
O
Ri
LIFO
LEN:16
F
E
R
I
O
Ri,F
Ri,E
Ri,I
Ri,O
L
entrée "armement"
entrée "contrôle"
bit de sortie temporisation écoulée
bit de sortie temporisation en
cours
mot valeur de présélection
mot valeur courante
entrée sur front "départ"
bit de sortie monostable en
cours
mot valeur de présélection
mot valeur courante
entrée "remise à zéro"
entrée "présélection"
entrée sur "front comptage"
entrée sur "front décomptage"
bit de sortie "débordement décomptage"
bit de sortie "présélection atteinte"
bit de sortie "débordement
comptage"
mot valeur de présélection
mot valeur courante
entrée "remise à zéro"
entrée sur front "stockage"
entrée sur "front déstockage"
bit de sortie "registre plein"
bit de sortie "registre vide"
mot d’entrée du registre
mot de sortie du registre
nombre de mots du registre
(999 max)
2/5
C
2.4-2 Bloc fonction de communication
Désignation
Nombre
Bloc fonction
texte
Configurable
0≤i≤63
Graphe
R
TXTi
Fonctions
D
TER
TA:0000H
S
entrée validation arrêt échange
S
E
T,C:0
T,V:0
O W10
12
T,L:0
I T,S:?
C
R
Bloc texte
entrée sur front lancement
échange
O
entrée sur état "émission"
I
entrée sur état "réception"
TXTi,D bit de sortie transfert terminé et
reçu
TXTi,E bit de sortie erreur de transfert
TXTi,C mot de définition de l’échange
TXTi,L mot définissant la longueur du
message
TXTi,S mot status compte-rendu de
l’échange
2.4-3 Bloc fonction de commande
Désignation
Nombre
Bloc de
contrôle
Configurable
1≤i≤7
Graphe
E
CTRLi
Fonctions
R
Bloc contrôle
2.5
R
i
1
2
4
5
6
7
entrée activation de la tâche
(sauf tâche maître)
sortie tâche activée
définit la tâche à activer
tâche interruption
tâche rapide
tâche auxiliaire 0
tâche auxiliaire 1
tâche auxiliaire 2
tâche auxiliaire 3
Les blocs comparaison
Désignation
Nombre
Bloc
comparaison
horizontal
Non configurable
(illimité)
2/6
E
Graphe
OP1 OP OP2
Fonctions
OP : opérateur
<, <=, =, >, >=, <>
OP1 : objet mot pouvant être lu
OP2 : objet mot pouvant être lu ou
valeur immédiate
Les éléments du langage à contacts PL7-3
Désignation
Nombre
Bloc
comparaison
vertical
non
configurable
(illimité)
Graphe
Fonctions
>
COMPARE
W0
>
=
W25
2
<
#
OP1 strictement supérieur à
OP2
=
OP1 égal à OP2
<
OP1 strictement inférieur à OP2
#
OP1 différent de OP2
OP1 : mot simple longueur pouvant
être lu : Wi-CWi
OP2 : mot simple longueur pouvant
être lu : Wi-CWi ou valeur immédiate simple longueur.
C
2.6
Les blocs opérations
Les blocs opérations font appel au langage littéral, résidant dans le terminal.
Ces blocs peuvent contenir :
• une expression de forme simple ; ex : OP1 + OP2 → OP3,
• une expression de forme complexe ; ex : (OP1 + OP2) OP3 - OP4 → OP5.
*
Ce sous chapitre a pour but de rappeler les différentes possibilités d’écriture des
expressions simples dans les blocs opérations.
Ces blocs peuvent être utilisés en quantité non limitée, celle-ci dépend de la taille
de la mémoire "utilisateur".
Les opérations arithmétiques et de transfert peuvent être indifféremment effectuées
sur des mots simple ou double longueur.
2.6-1 Transfert
→:
OP1 → OP2
symbolise le transfert de OP1 dans
OP2
OP1 : objet mot pouvant être lu ou valeur
immédiate
OP2 : objet mot pouvant être écrit
2/7
2.6-2 Décalage
Décalage logique vers la gauche
SHLi(OP1) → OP2
Décalage logique vers la droite
SHRi(OP1) → OP2
Décalage circulaire vers la gauche
SLCi(OP1) → OP2
C
i
: compris entre 1 et 15
OP1 : objet mot pouvant être lu
OP2 : objet mot pouvant être écrit
Décalage circulaire vers la droite
SRCi(OP1) → OP2
2.6-3
Transcodage
BCD → Binaire
DTB(OP1) → OP2
Binaire → BCD
BTD(OP1) → OP2
OP1 : objet mot pouvant être lu
OP2 : objet mot pouvant être écrit
Ces mots sont obligatoirement
simple longueur
Si OP1 est supérieur à 9999, seules
les 4 décades de poids faible sont
transférées dans OP2
ASCII → Binaire
ATB(OP1) → OP2
OP1 : tableau de 3 mots ou de 6 mots
OP2 : mot simple ou double longueur
Binaire → ASCII
BTA(OP1) → OP2
OP1 : mot simple ou double longueur
OP2 : tableau de 3 mots ou de 6 mots
Gray → Binaire
GTB(OP1) → OP2
2/8
OP1 : objet mot pouvant être lu
OP2 : objet mot pouvant être écrit
Les éléments du langage à contacts PL7-3
2
2.6-4 Opérations logiques
Ces opérations ne sont possibles que sur des mots simple longueur.
ET
OP1 AND OP2 → OP3
OP1 : objet mot pouvant être lu ou valeur
immédiate
OU inclusif
OP1 OR OP2 → OP3
OU exclusif
OP2 : objet mot pouvant être lu ou valeur
immédiate
OP3 : objet mot pouvant être écrit (mot
résultat des opérations logiques)
C
OP1 XOR OP2 → OP3
Complément logique
CPL (OP1) → OP2
OP1 : objet mot pouvant être lu
OP2 : objet mot pouvant être écrit
2.6-5 Opérations arithmétiques
Incrémentation
INC OP1
Décrémentation
OP1 : objet mot pouvant être écrit
DEC OP1
Addition
OP1 + OP2 → OP3
OP1 : objet mot pouvant être lu ou valeur
immédiate
Soustraction
OP1 - OP2 → OP3
Multiplication
OP2 : objet mot pouvant être lu ou valeur
immédiate
OP3 : objet mot pouvant être écrit (résultat de l’opération)
OP1 * OP2 → OP3
2/9
Division (quotient)
OP1 / OP2 → OP3
OP1 : objet mot pouvant être lu ou valeur
immédiate
OP2 : objet mot pouvant être lu ou valeur
immédiate (OP2 doit être différent
de zéro)
OP3 : objet mot pouvant être écrit (quotient de la division)
Division (reste)
OP1 REM OP2 → OP3
C
OP1 : objet mot pouvant être lu ou valeur
immédiate
OP2 : objet mot pouvant être lu ou valeur
immédiate (OP2 doit être différent
de zéro)
OP3 : objet mot pouvant être écrit (reste
de la division)
Racine carrée
SQRT(OP1) → OP2
OP1 : objet mot pouvant être lu et dont la
valeur algébrique est positive
OP2 : objet mot pouvant être écrit
2.6-6 Opérations sur chaînes de bits
Transfert chaîne de bits
→ chaîne de bits
Bit i[n] → Bit j[n]
Transfert chaîne de bits
→ mot
Bit i[n] → OP2
Bit i,
Bit j : les objets bits manipulés
peuvent être des bits internes, des
bits extraits de mots, des bits d’entrées/sorties
n
: constante entière positive, dépend
de la configuration et des objets
manipulés. Définit la longueur de la
chaîne de bits
OP1 : objet mot pouvant être lu ou valeur
immédiate
Transfert de mots
→ chaîne de bits
OP1 → Bit j[n]
2/10
OP2 : objet mot pouvant être écrit
2
Les éléments du langage à contacts PL7-3
2.6-7 Opérations sur tableaux de mots
Un tableau de mots, ou chaîne de mots, est une suite continue de mots de même
type.
Initialisation de tableau de mots
OP1 → OP4[n]
OP1 : objet mot ou valeur immédiate simple ou double longueur
OP2, : objet mot simple ou double longueur
OP3 pouvant être écrit
Transfert d'un tableau dans un autre
OP2[n] → OP4[n]
OP4 : objet mot simple ou double longueur pouvant être écrit
C
Opérations entre tableaux
OP2[n] OP OP3[n] → OP4[n]
n
: constante entière positive dépend
de la configuration et des objets
manipulés. Définit la longueur du
tableau de mots
Opérations sur tous les mots d'un
tableau
OP1 OP OP2[n] → OP4[n]
OP : +, -, *, /, REM, AND, OR, XOR
Sommation des mots d'un
tableaux
OP2[n] + → OP4
Comparaison de deux
tableaux
OP1
OP2
OP3
OP4
n
même définition que précédement
EQUAL(OP2[n];OP3[n]) → OP4
Recherche d’un mot dans un
tableau
SEARCH(OP2[n];OP3) → OP4
Transfert d’un tableau indexé
dans un autre
OP2(Wi)[n] → OP4(Wj)[n]
Wi, Wj : mots indexés
2/11
2.6-8 Echanges explicites
Les opérations suivantes permettent l’échange entre :
• une chaîne de bits (internes ou entrées/sorties) et un module. La longueur de la
chaîne de bits est implicite (16 bits), il suffit de déclarer le premier bit la
composant,
• les 8 registres d’un coupleur intelligent et un tableau de 8 mots internes. Ce
tableau est spécifié par le premier des mots le composant.
Ces échanges sont immédiats, par opposition aux échanges implicites effectués
par le système en début et en fin de cycle.
C
Transfert immédiat d’une chaîne
de bits → module de sortie
WRITEBIT(1er bit;Ixy)
Ixy :
adresse du module de sortie
Ixy :
adresse du module d’entrée
Ixy :
adresse du coupleur
Ixy :
adresse du coupleur
Transfert immédiat des bits d’un
module d’entrée → chaîne de bits
READBIT(Ixy;1er bit)
Transfert immédiat d’un tableau
de 8 mots → 8 registres d’un coupleur
WRITEREG(1er mot;Ixy)
Transfert immédiat des 8 registres
d’un coupleur → tableau de 8 mots
READREG(Ixy;1er mot)
2/12
Les éléments du langage à contacts PL7-3
2
2.6-9 Gestion des interruptions
Les opérations suivantes permettent de gérer les bits d’interruption d’un module
intelligent (TSX DTM 100 par exemple) :
Masquage du bit interruption
MASKINT(Ixy)
Démasquage du bit interruption
Ixy :
adresse du coupleur
DEMASKINT(Ixy)
Lecture du bit interruption
READINT(Ixy,Bn)
C
Bn = 0 : IT absente
Bn = 1 : IT présente
Acquittement du bit interruption
ACKINT(Ixy)
2/13
2.7
Les blocs fonctions optionnels (OFBs)
Pour qu’un OFB soit utilisé dans un programme application, il faut au préalable que
son type soit chargé en mémoire et que le nombre d’OFBs à utiliser soit défini en
configuration.
Pour être exécuté dans le programme application, un OFB fait appel à un bloc
opération, donc au langage littéral résidant dans le terminal (voir blocs opérations).
Le nombre de caractères contenus dans un bloc opération est limité à 512.
C
2.7-1 Exécution d’un OFB
EXEC OFBi(Ent1;Ent2;..;Entm → Sort1;Sort2;..;Sortn)
OFBi
Ent1 à Entm
Sort1 à Sortn
=>
;
2/14
:
:
:
:
:
type et numéro de l’OFB
paramètres d’entrées
paramètres de sorties
séparateur entre les paramètres d’entrées et de sorties
séparateur de paramètres
Réseau de contacts
Réseau de contacts
Chapitre 3
Sous-chapitre
3.1 Structure d’un réseau de contacts
3.1-1
3.1-2
3.1-3
3.1-4
3.1-5
Généralités
Etiquette
Commentaire
Réseau de contacts
Réseau de contacts avec blocs fonctions et opérations
3.2 Règles d’exécution d’un réseau de contacts
3.2-1
3.2-2
3.2-3
3.2-4
3.2-5
3.2-6
Cycle d’une tâche périodique
Principe d’exécution d’un réseau
Saut amont ou aval à un autre réseau (JUMP)
Appel à un sous programme (CALL)
Exécution d’un réseau comportant des blocs fonctions
Scrutation d’un réseau comportant des blocs opérations
Ce chapitre se termine à la page
3
Page
3/2
3/2
3/3
3/4
3/5
3/7
3/9
3/9
3/9
3/10
3/11
3/11
3/12
3/12
3/1
C
3.1
Structure d’un réseau de contacts
3.1-1 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 est limité à la dimension d’un écran du terminal, soit 7 lignes et 11
colonnes maximum réparties en deux zones : la zone test et la zone action.
Les éléments graphiques énumérés précédemment peuvent s’implanter soit dans
la zone action, soit dans la zone test sur l’ensemble des lignes et colonnes d’un
réseau.
1
C
2
3
4
5
6
7
8
9
10
11
lignes
1
2
3
Barres de
potentiel
4
5
6
7
zone test
zone action
Chaque réseau peut être repéré par une étiquette, et précédé par un commentaire.
3/2
Réseau de contacts
3
3.1-2 Etiquette
L’étiquette permet de repérer un réseau dans une entité de programme (programme principal, sous-programme, traitement préliminaire...) mais n’est pas
obligatoire.
Cette étiquette comprend 3 caractères numériques maximum 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 programme.
Par contre il est nécessaire d’étiqueter un réseau afin de permettre un branchement
après un saut de programme.
C
L245
J
L
2
4
5
B3
I0,6 W13,0
T4,D
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.
3/3
3.1-3 Commentaire
Le commentaire est intégré au réseau et comprend 222 caractères alphanumérique au maximum. Il facilite l’interprétation du réseau auquel il est affecté, mais n’est
pas obligatoire.
réseau
commenté
C
X
TSX 67/87
réseau
non
commenté
Mise à jour
A
B
C
Par
Date
Etude :
Dessins :
Date :
T
Folio
Les commentaires s’affichent dans la zone réservée à la première ligne du réseau,
les éléments graphiques s’inscrivent alors sur 6 lignes et 11 colonnes.
En cas de suppression d’un réseau, le commentaire qui lui est associé est
également supprimé.
Les commentaires sont mémorisés dans l’automate et sont accessibles à tout
moment par l’utilisateur. A ce titre, ils consomment de la mémoire programme.
3/4
3
Réseau de contacts
3.1-4 Réseau de contacts
Sa représentation est proche de celle d’un schéma électrique à relais.
Les éléments graphiques simples
de test et d’action occupent chacun une ligne et une colonne au
sein d’un réseau.
Toute ligne de contacts commence sur la ligne de potentiel
gauche et doit se terminer sur la
ligne de potentiel droite.
L
O21,B I11,4 W22,9 I11,3
B16
O21,7
X12 T3,D
↑
SR4
C
C16,E
O21,0 W13,0 B3 I11,2
B155
S
↓
I11,3 I3,1 B13 O21,7
Les tests sont toujours situés sur
les colonnes 1 à 10.
C
Les actions sont toujours situées
sur la colonne 11.
Le sens de circulation du courant
est le suivant :
• pour les liaisons horizontales,
de la gauche vers la droite,
• pour les liaisons verticales, dans
les deux sens.
Zone test
On y trouve :
• les contacts, auxquels peuvent
être affectés tous les objets bits
définis précédemment,
• les blocs fonctions,
• les blocs comparaison.
L
B16 T3,D
I11,4
C13,E
L
B9
MP :9999
Les fronts ne peuvent être associés qu’aux objets bits entrées/
sorties, bits internes ou bits système.
Zone action
On y trouve :
• les bobines directes, inverses,
d’enclenchement et de déclenchement, qui peuvent être affectées de tous les objets bits
pouvant être écrits par l’utilisateur.
• les blocs opérations.
I6,8 C2,D
S M0 R
W8,4
TB :1mn
O2,6
85
↓
↓
SY6
↑
L
B52
W8,B
W8,A
/
O6,5
S
B8
COM 32F
R
WO+1 → W2
3/5
Réseau simple
Pilotage d’une bobine conditionnée
par un contact.
Utilisation de 10 contacts maximum en série sur une ligne.
C
Possibilité de tester 7 contacts
maximum en parallèle sur une
colonne, de placer 7 bobines en
parallèle.
X53
O16,E
B1
I3,2 W18,4 O13,2 B15 T2,D I4,5 W1,F B5 C0,D O6,3
↑
/
↓
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
CHART
XM
L
B5
Dans un réseau intégrant un
commentaire, 6 contacts ou 6
bobines peuvent être mis en parallèle.
Q11,2
I6,9
B25
W15
W8,0
/
SR9
↓
C6,E
O5,2
L20
I3,7
B12
R
O2,6
S
SY4
Réseau utilisant plusieurs chaînes de contacts
Un réseau peut être divisé en
plusieurs chaînes de contacts indépendantes pilotant des bobines indépendantes
L
I13,2 W6,F B88
↓
C2,E
SY4
I6,5
O13,3
/
W3,6
X53
7 lignes indépendantes de contacts.
Réseaux utilisant les différents
principes énoncés.
Les éléments à l’état logique 1
sont cerclés. Le courant peut
passer des éléments A et C vers
la bobine F, il ne peut pas passer
de l’élément C vers les éléments
D et E. La bobine G n’est donc pas
activée.
3/6
L12
J
SR0
C
O13,2
W8,4
B27
B12
B68
S
L
A
C
B
D
F
G
E
Réseau de contacts
3
3.1-5 Réseau de contacts avec blocs fonctions et opérations
• Les blocs fonctions se positionnent dans la zone test et s’insèrent dans un réseau
de contacts.
Il existe quatre dimensions de graphisme pour représenter l’ensemble des autres
blocs fonctions du langage PL7-3
C4
Compteur/Décompteur
Comparateur "vertical"
Bloc texte
2 colonnes
4 lignes
C
T10
Temporisateur
Monostable
Registre
2 colonnes
3 lignes
Bloc contrôle
2 colonnes
2 lignes
Comparateur "horizontal"
2 colonnes
1 ligne
CTRL
COMPARE
• Les blocs opérations se positionnent toujours en zone action. Ils utilisent 1 ligne
et 4 colonnes, font appel au langage littéral et sont toujours directement reliés à
la barre de potentiel droite.
W10,F
W1 + W9 → W22
3/7
Les blocs fonctions sont "cascadables"
Comme pour les éléments graphiques du type contacts, il est possible de réaliser
des combinaisons de blocs fonctions.
Mise en série de blocs fonctions :
L
I4,6
M1
S R
O12,3
T12
E D
C
C
Les blocs fonctions et blocs opérations sont mixables
L
I2,5
B28
W1 C1,V
I2,2
W2 C1,V
3450 → T2,P
Autres possibilités des blocs fonctions
Quel que soit le type de bloc fonction utilisé, il doit obligatoirement être relié en
entrée à la barre de potentiel gauche, en direct ou à travers d’autres éléments
graphiques.
• sorties "en l’air" : il n’est pas nécessaire de relier à d’autres éléments graphiques les sorties des blocs fonctions suivants :
- temporisateur,
- registre,
- monostable,
- bloc texte,
- compteur/décompteur,
- bloc contrôle.
• sorties testables : les sorties des blocs fonctions sont accessibles à l’utilisateur
sous forme d’objet bit :
T12,D C5,E
3/8
O14,F
Réseau de contacts
3.2
3
Règles d’exécution d’un réseau de contacts
3.2-1 Cycle d’une tâche périodique
Période : définie par configuration, temps entre deux scrutations de la tâche (exécution,
acquisition des entrées).
Période
écoulée
Acquisition des entrées : lecture et mémorisation dans la mémoire image des bits d’entrées
des modules associés par configuration à la
tâche en cours.
oui
Acquisition
des entrées
Le programme est exécuté réseau par réseau
de manière séquentielle selon l’ordre d’écriture des réseaux en mémoire. La lecture se fait
de haut en bas sauf lors de l’exécution d’un
saut ou de l’appel à un sous-programme.
C
Traitement
du programme
Mise à jour des sorties : écriture de l’état des
bits de la mémoire image sur les modules de
sorties associés à la tâche en cours.
Mise à jour
des sorties
Par défaut, seule la tâche maître est configurée, en traitement monotâche.
3.2-2 Principe d’exécution d’un réseau
L’exécution d’un réseau s’effectue colonne par colonne, du haut vers le bas, la
colonne d’origine étant la barre de potentiel située à gauche.
Exemple :
L’ordre d’exécution des éléments
de ce réseau est le suivant :
1A, 1D, 3A, 4C, 5A et 8A.
1
2
3
4
5
6
7
8
9 10 11
L
A
B
C
D
E
F
Les bobines sont exécutées après le traitement de la zone test.
3/9
En respectant cet ordre d’exécution, le système met à jour :
• l’état logique de chaque contact en fonction de l’état des entrées acquis en début
de cycle,
• l’état logique des objets bits associés aux bobines afin de mettre à jour les sorties
en fin de cycle.
Les cas spécifiques des bobines "J" et "C", des blocs fonctions et des blocs
opérations sont traités ci-après.
Conséquences : lorsqu’un objet est utilisé plusieurs fois dans un même réseau,
son état logique est, selon le cas, celui acquis pendant le cycle en cours ou celui
acquis dans le cycle précédent.
C
Dans l’exemple suivant B89 est
utilisé deux fois dans le même
réseau.
L
B89
La valeur du contact B89 n’est
pas celle donnée par la bobine
B89 dans le cycle en cours mais
celle acquise au cycle précédent.
Pour que la bobine et le contact
aient la même valeur dans un
cycle, il faut décomposer le réseau précédent en deux réseaux
distincts.
B89
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
ASY
AUX
POST
XM
CHART
L
6
4
B89
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
ASY
AUX
POST
CHART
XM
L
B89
3.2-3 Saut amont ou aval à un autre réseau (JUMP)
Lors du traitement de la zone action, 2 cas sont possibles :
• la bobine "J" est activée : le saut
au réseau concerné est immédiat et la bobine B10 n’est pas
activée,
• la bobine "J" n’est pas activée :
la bobine B10 est traitée normalement.
L
L29
J
B10
Pour qu’une bobine soit traitée indépendamment de l’état d’une bobine "J" située
dans le même réseau, il convient donc de la placer sur une ligne située au dessus
de la bobine "J".
3/10
Réseau de contacts
3
3.2-4 Appel à un sous-programme (CALL)
Lors du traitement d’une bobine "C" à l’état logique 1, la scrutation du réseau
s’interrompt et reprend son cours après l’exécution du sous-programme appelé :
Sous Programme SR1
L
SR1
C
B8
O11,3
C
3.2-5 Exécution d’un réseau comportant des blocs fonctions
Les fonctions associées à ce type
de bloc sont exécutées au moment
de la scrutation du coin
supérieur gauche du bloc
concerné.
L
1
3
V
4
6
C0
2
5
Conséquence : lorsque le bloc fonction et l’un des objets bits qui lui sont associés
sont utilisés dans le même réseau, cet objet peut prendre la valeur donnée par le
bloc dans le cycle précédent ou dans le cycle en cours :
L’état de l’objet bit C0,D est celui
acquis dans le cycle précédent.
L
C0
C0,D
L’état de l’objet bit C0,D est celui
acquis dans le cycle en cours.
L
C0
C0,D
3/11
3.2-6 Scrutation d’un réseau comportant des blocs opérations
Le bloc opération, situé en zone action, suit les mêmes règles que les blocs
fonctions.
Exemple :
Ce réseau s’exécute dans l’ordre
présenté ci-contre.
1
2
3
4
Formulaire programmation
schéma à contacts
Colonnes
5 6 7
IT
MAIN
8
FAST
SR
9 10 11
MAST
PRE
AUX
POST
ASY
CHART
XM
L
1
2
3
4
5
10
6
11
8
C
7
9
12
L’opération associée au bloc n’est lancée qu’au moment de la scrutation de la partie
gauche du bloc.
Tout bloc opération est donc exécuté :
• avant toutes les bobines (colonne 11),
• avant les contacts des colonnes 9 et 10 lorsque ceux-ci sont situés au-dessus du
bloc,
• avant les contacts des colonnes 8, 9 et 10 lorsque ceux-ci sont situés en-dessous
du bloc.
Rappel : le programme peut être organisé en plusieurs tâches périodiques. A
chaque tâche est affectée une période d’exécution. Plus cette période est
faible, plus l’exécution de la tâche est prioritaire.
Incidence sur le réseau en cours de scrutation : la scrutation du réseau en cours
est interruptible sur bloc comparaison ou opération. L’apparition d’un "appel
horloge" prioritaire sur l’exécution de la tâche en cours interrompt donc celle-ci.
3/12
Blocs fonctions d'automatisme et de commande
Blocs fonctions d'automatisme et
de commande
Sous-chapitre
4
Chapitre 4
Page
4.1 Généralités
4/2
4.1-1 Présentation
4/2
4.2 Bloc fonction : Temporisateur
4/4
4.2-1 Présentation
4.2-2 Caractéristiques
4.2-3 Fonctionnement
4/4
4/4
4/5
4.3 Bloc fonction : Monostable
4/9
4.3-1 Présentation
4.3-2 Caractéristiques
4.3-3 Fonctionnement
4/9
4/9
4/9
4.4 Bloc fonction : Compteur
4/11
4.4-1 Présentation
4.4-2 Caractéristiques
4.4-3 Fonctionnement
4/11
4/11
4/12
4.5 Bloc fonction : Registre
4/13
4.5-1 Présentation
4.5-2 Caractéristiques
4.5-3 Fonctionnement
4/13
4/13
4/14
4.6 Bloc fonction : Contrôle
4/16
4.6-1 Présentation
4.6-2 Caractéristiques
4.6-3 Fonctionnement
4/16
4/16
4/16
Ce chapitre se termine à la page
4/16
4/1
Sans titre-4
1
15/01/96, 11:56
C
4.1
Généralités
4.1-1 Présentation
Les blocs fonctions d’automatisme
sont pré-programmés dans l’automate et occupent donc une zone
particulière de la mémoire utilisateur.
C
Afin d’optimiser l’occupation mémoire, il est nécessaire de définir
au préalable le type et le nombre
de blocs fonctions utilisés, dans
les limites imposées par le système.
L’écran du mode CONFIGURATION, représenté ci-dessus, permet cette définition.
Il existe 5 types de blocs fonctions d’automatisme :
•
•
•
•
•
temporisateur
monostable
compteur/décompteur
registre
comparateur COMPARE
T : 128 maximum,
M : 32 maximum,
C : 256 maximum,
R : 128 maximum,
: non limités.
Chaque bloc possède :
• des entrées (Ex : E,C) qui permettent de le commander,
• des sorties (Ex : D,R) qui
indiquent son état. A chaque
sortie est associé un bit de sortie
(Ex : T0,D) qui peut être testé
par le programme utilisateur.
De plus, chaque sortie peut
piloter une ou plusieurs bobines
(Ex : O1,2 et SR2),
• des paramètres qui permettent
de l’adapter à l’application (présélection, base de temps...).
Les paramètres des blocs fonctions (présélection, valeur courante...) sont visualisés à l’intérieur du bloc.
4/2
Sans titre-4
2
15/01/96, 11:56
Blocs fonctions d'automatisme et de commande
4
L’accès aux paramètres en écriture et en lecture est possible dans les modes
suivants :
• Mode CONFIGURATION,
• Mode PROGRAMMATION,
• Mode MISE AU POINT,
• Mode REGLAGE.
C
(La description de ces modes est faite dans le manuel "MODES OPERATOIRES").
Sur certains blocs fonctions d’automatisme (Temporisateur, Monostable, Compteur) l’utilisateur peut modifier certains paramètres dans les modes DONNEES et
REGLAGE.
Nota : il n’est pas possible d’utiliser simultanément plus de 8 temporisateurs et/ou monostables avec une base de temps de 10ms, ce en raison des limites du système.
4/3
Sans titre-4
3
15/01/96, 11:56
4.2
Bloc fonction : Temporisateur
4.2-1 Présentation
Le bloc fonction temporisateur permet de
commander avec retard des actions
spécifiques.
La valeur de ce retard est programmable et
peut être modifiable ou non en mode
REGLAGE.
E
Ti
C TB:1mn
D
R
T,P:9999
MODIF:Y
Bloc temporisateur
C
4.2-2 Caractéristiques
Numéro temporisateur
Ti
Ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 127 (limite du système)
Base de temps
TB
1mn, 1s, 100ms, 10ms (1mn par défaut)
Valeur courante
Ti,V
Mot qui décroît de Ti,P vers 0 sur écoulement du
temporisateur. Peut être lu, testé, mais non écrit
Valeur de présélection
Ti,P
0 < Ti,P ≤ 9999. Mot qui peut être lu, testé, écrit. Est
mis à la valeur 9999 par défaut
Modification MODIF
YES/NO
YES : possibilité de modification de la valeur de
présélection en mode REGLAGE.
NO : pas d’accès en mode REGLAGE.
Entrée "Armement"
E(Enable)
Sur état 0 réinitialise le temporisateur Ti,V = Ti,P
Entrée "Contrôle"
C(Control)
Sur état 0 gèle la valeur courante Ti,V
Sortie "Temporisateur
écoulé"
D(Done)
Le bit associé Ti,D = 1, si temporiteur écoulé Ti,V = 0
Sortie "Temporisateur
en cours"
R(Running)
Le bit associé Ti,R = 1 si temporisateur Ti,P > Ti,V > 0
et si entrée C est à l’état 1
Dimensions à l’écran
2 colonnes de contacts sur 3 lignes
4/4
Sans titre-4
4
15/01/96, 11:57
4
Blocs fonctions d'automatisme et de commande
4.2-3 Fonctionnement
Le temporisateur évolue lorsque
ses 2 entrées (E et C) sont à
l’état 1. Il se comporte comme un
décompteur.
• la valeur courante Ti,V décroît
de la présélection Ti,P vers 0,
d’une unité à chaque impulsion
de la base de temps TB.
E
C
Ti,P
Ti,V
Ti,D
Ti,R
• le bit de sortie Ti,R (Temporisateur en cours) associé à la sortie R est alors à l’état 1, le bit de
sortie Ti,D (Temporisateur écoulé) associé à la sortie D est à
l’état 0.
• lorsque la valeur courante
Ti,V= 0, Ti,D passe à l’état 1 et
Ti,R repasse à l’état 0.
E
0
0
1
1
C
0
1
0
1
Ti,P
Ti,V
Ti,V
=
Ti,P
Ti,V
=
Ti,P
Ti,V
gelée
Ti,V
décroît de
Ti,P → 0
Ti,D
0
0
0
1 si Tempo
écoulée
Ti,R
0
0
0
1 si Tempo
en cours
C
Cas types
Selon sa programmation, le bloc fonction "Temporisateur" peut réaliser les fonctions suivantes :
- Retard à l’enclenchement
I1,0=E,C
R
PRESET
PRESET
D=O0,0
Formulaire programmation
schéma à contacts
L
1
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
T EMPO TRAV A I L T B = 1 S
PRESE T : 3 0
MOD I F YES
I1,0
XM
O0,0
E T0 D
C
ASY
CHART
PRE 30
TB : 1S
MOD YES
4/5
Sans titre-4
5
15/01/96, 11:57
- Retard au déclenchement
I1,1
E,C
R
PRESET
D
O0,1
C
L
2
T EMPO REPOS T B = 1 S
PR ESE T : 1 2 0
MOD I F YE S
I1,1
O0,1
E T7 D
C
PRE 120
TB : 1S
R
MOD YES
- Retard cumulé à l’enclenchement
I0,2=E
I0,3=C
O1,5=R
D1
D2
D3
O1,4=D
L
3
T EMPO RE T ARD CUMU L E A L ' ENC L ENCHEMENT
T B = 1mn PRESE T : 3 MOD I F : NO
I0,2
I0,3
O1,4
E T5 D
O1,5
PRE:3
C TB:1mn R
MOD:NO
4/6
Sans titre-4
6
15/01/96, 11:57
4
Blocs fonctions d'automatisme et de commande
- Retard cumulé au déclenchement
I0,0
E
I0,1
C
R
D1
D2
D3
D
C
O10,1
L
4
T EMPO RE T ARD CUMU L E AU DE C L ENCHEMENT
T B = 1 0mn PRESE T : 4 0 MOD I F : YES
I0,0
I0,1
O10,1
/
E T12 D
PRE:40
C TB:10mm
MOD:YES
Cas spécifiques
- Incidence d’une reprise "à froid" : (SY0 = 1) provoque le chargement de la
valeur de présélection (définie en mode CONFIGURATION) dans la valeur
courante et la mise à 0 de la sortie Ti,D, la valeur de présélection éventuellement
modifiée par le terminal (mode REGLAGE ou DONNEES) étant perdue,
- Incidence d’une "reprise à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur la valeur courante du temporisateur,
- Incidence d’un passage en stop : le passage en stop de l’automate ne fige pas
la valeur courante. Il en va de même lorsque la tâche en cours est désactivée par
le bloc contrôle CTRLi ou lors de l’exécution d’un point d’arrêt,
- Incidence d’un saut de programme : le fait de ne pas scruter le réseau où est
programmé le bloc temporisateur ne fige pas la valeur courante Ti,V qui continue
à décroître vers 0,
De même les bits Ti,D et Ti,R associés aux sorties D et R du bloc temporisateur
conservent leur fonctionnement normal et peuvent être ainsi testés dans un autre
réseau,
Par contre les bobines directement "raccordées" aux sorties du bloc ne seront
pas activées puisque non scrutées par l’automate,
- Test des bits Ti,D et Ti,R : ces bits peuvent changer d’état en cours de cycle.
4/7
Sans titre-4
7
15/01/96, 11:57
Exemple d’utilisation
• Modification de présélection en fonction d’un événement extérieur :
La connaissance des blocs opérations "comparaison" et "transfert" est nécessaire à la compréhension de cet exemple.
Si T2,D = 1 et I1,9 = 1 alors ranger le contenu du mot interne W0 dans T2,P.
Si T2,D = 1 et I1,9 = 0 alors ranger le contenu du mot constant CW31 dans T2,P.
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
XM
CHART
L
C
I0,7
B12
E T2 D
C
R
I1,9
W0 → T2,P
T2,D
I1,9
CW31 → T2,P
Note : la modification ne s’effectue que si le temporisateur n’est pas en cours T2,D = 1 et
T2,R = 0.
• Surveillance de la valeur courante d’un temporisateur :
Si T2,V > 12s, alors mettre le bit interne B15 à l’état 1.
B15
S
T2,V>12s
4/8
Sans titre-4
8
15/01/96, 11:57
4
Blocs fonctions d'automatisme et de commande
4.3
Bloc fonction : Monostable
4.3-1 Présentation
Le bloc fonction monostable permet d’élaborer une impulsion de durée précise.
Cette durée est programmable et peut être
modifiable ou non en mode REGLAGE.
S
Mi
R
TB:1mn
M,P:9999
MODIF:Y
Bloc monostable
4.3-2 Caractéristiques
Numéro monostable
Mi
C
Ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 31 (limite du système)
Base de temps
TB
1mn, 1s, 100ms, 10ms (1mn par défaut)
Valeur courante
Mi,V
Mot qui décroît de Mi,P vers 0 sur écoulement
du temporisateur. Peut être lu, testé, mais non écrit
Valeur de présélection
Mi,P
0 < Mi,P ≤ 9999. Mot pouvant être lu, testé, écrit
Modification MODIF
YES/NO
YES : possibilité de modification de la valeur de
présélection en mode REGLAGE.
NO : pas d’accès en mode REGLAGE.
Entrée "Départ"
S(Start)
Sur front montant Mi,V = Mi,P puis Mi,V décroît
vers 0
Sortie "Monostable
en cours"
R(Running)
Le bit associé Mi,R est à 1 si Mi,V > 0 (écoulement
monostable)
Mi,R = 0 si Mi,V = 0
Dimensions à l’écran
2 colonnes de contacts sur 3 lignes
4.3-3 Fonctionnement
Lors de l’apparition d’un état 1 (front montant) sur l’entrée S du monostable, la
valeur courante Mi,V prend la valeur de présélection Mi,P et décroît vers 0, d’une
unité à chaque impulsion de la base de temps TB. Le bit de sortie Mi,R (Running)
associé à la sortie R passe à l’état 1 dès que la valeur courante Mi,V est différente
de 0.
Lorsque la valeur courante Mi,V = 0, le bit de sortie Mi,R repasse à l’état 0.
4/9
Sans titre-4
9
15/01/96, 11:57
Entrée "départ" S :
S↑
Valeur courante Mi,V :
Mi,V
Sortie "en cours" R :
R
PRESET
PRESET
PRESET
Cas spécifiques
C
- Incidence d’une reprise "à froid" : (SY0 = 1) provoque le chargement de la
valeur de présélection (définie en mode CONFIGURATION) dans la valeur
courante Mi,V, la valeur de présélection éventuellement modifiée par le terminal
(mode REGLAGE ou DONNEES) étant perdue,
- Incidence d’une "reprise à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur la valeur courante du monostable (Mi,V),
- Incidence d’un passage en stop : le passage en stop de l’automate ne fige pas
la valeur courante. Il en va de même lorsque la tâche en cours est désactivée par
le bloc contrôle CTRLi ou lors de l’exécution d’un point d’arrêt.
- Incidence d’un saut de programme : le fait de ne plus scruter le réseau où est
programmé le bloc monostable ne fige pas la valeur courante Mi,V qui continue
à décroître vers 0,
De même le bit Mi,R associé à la sortie du bloc monostable conserve son
fonctionnement normal et peut être ainsi testé dans un autre réseau,
Par contre les bobines directement "raccordées" à la sortie du bloc (ex O10,0) ne
seront pas activées puisque non scrutées par l’automate,
- Test du bit Mi,R : ce bit peut changer d’état en cours de cycle.
• Exemple d’utilisation
- clignotant à périodes cycliques variables : la valeur de
présélection de chaque monostable définit la durée de
chaque impulsion.
O10,0
5s
5s
2s
2s
L
M1,RO10,0
O10,0
S M0 R
TB:1s
S M1 R
M,P:5
MOD:YES
TB:1s
M,P:2
M0,R O10,0
MOD:YES
Dans l’exemple ci-dessus, la sortie O10,0 est mise à l’état 1 pendant 5s (M0,P) et
remise à l’état 0 pendant 2s (M1,P).
4/10
Sans titre-4
10
15/01/96, 11:57
4
Blocs fonctions d'automatisme et de commande
4.4
Bloc fonction : Compteur
4.4-1 Présentation
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.
R
Ci
P
E
D
C,P:9999
U MODIF:Y
F
D
Bloc compteur
4.4-2
C
Caractéristiques
Numéro de compteur
Ci
Ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 255 (limite du système)
Valeur courante
Ci,V
Mot incrémenté ou décrémenté en fonction des
entrées U et D. Lu, testé, non écrit
Valeur de présélection
Ci,P
0 < Ci,P ≤ 9999. Mot pouvant être lu testé, écrit
Modification MODIF
YES/NO
YES : possibilité de modification de la valeur de
présélection en mode REGLAGE.
NO : pas d’accès en mode REGLAGE.
Entrée "remise à zéro"
R(Reset)
Sur état 1 : valeur courante Ci,V = 0
Entrée "présélection"
P(Preset)
Sur état 1 : valeur courante Ci,V = valeur de présélection Ci,P
Entrée "comptage"
U(Up)
Incrémente Ci,V sur front montant
Entrée "décomptage"
D(Down)
Décrémente Ci,V sur front montant
Sortie "débordement
décomptage"
E(Empty)
Le bit associé Ci,E = 1, lorsque Ci,V passe de 0 à
9999 (Débordement)
Sortie "présélection
atteinte"
D(Done)
Le bit associé Ci,D = 1 lorsque Ci,V = Ci,P
Sortie "débordement
comptage"
F(Full)
Le bit associé Ci,F = 1 lorsque Ci,V passe de 9999
à 0 (Débordement)
Dimensions à l’écran
2 colonnes de contacts sur 3 lignes
4/11
Sans titre-4
11
15/01/96, 11:57
4.4-3 Fonctionnement
• Présélection-remise à zéro : si l’entrée "présélection" est à l’état 1 et l’entrée
"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. L’entrée "remise à zéro" est prioritaire. Dès la mise à
l’état 1 de cette entrée la valeur courante Ci,V est forcée à 0, les sorties Ci,E, Ci,D
et Ci,F sont à 0,
• Comptage : à l’apparition d’un front montant sur l’entrée "comptage" U la valeur
courante Ci,V 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 est à l’état 1. Le bit de sortie Ci,F (débordement comptage) passe à 1
pendant un tour de programme lorsque Ci,V passe de 9999 à 0,
C
• Décomptage : à l’apparition d’un front montant sur l’entrée "décomptage" D la
valeur courante Ci,V est décrémentée d’une unité. Le bit de sortie Ci,E
(débordement décomptage) passe à 1 pendant un tour de programme lorsque
Ci,V passe de 0 à 9999
• Comptage/décomptage : pour utiliser simultanément les fonctions comptage et
décomptage, il est nécessaire de programmer les deux entrées correspondantes
U et D. Ces deux entrées sont alors scrutées successivement. Si les deux entrées
sont à 1, la valeur courante reste inchangée,
Cas spécifique
- Incidence d’une "reprise à froid" : (SY0 = 1) provoque la mise à zéro de la
valeur courante Ci,V La valeur de présélection éventuellement modifiée par le
terminal (mode REGLAGE ou DONNEES) étant perdue. Les bits de sortie
Ci,E,Ci,D,Ci,F sont à 0,
- Incidence d’une "reprise à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur la valeur courante du compteur (Ci,V).
• Exemple d’utilisation
Comptage d’un nombre de
pièces > 9999 : il est nécessaire
de mettre deux blocs fonction
compteurs en cascade.
Chaque impulsion de l’entrée I0,3
provoque l’incrémentation du
compteur C0 et ce jusqu’à sa valeur de présélection. C0,D passe
alors à 1, ce qui incrémente le
compteur C1 et remet à 0 le compteur C0 (valeur courante = 0), etc...
Lorsque la valeur de présélection
du compteur C1 est atteinte, C1,D
passe à 1, ce qui arrête le comptage et active la sortie O10,0.
Formulaire programmation
schéma à contacts
IT
FAST
MAIN
SR
MAST
PRE
AUX
POST
12
XM
L
I0,0
I0,0
C0,D
I0,3 C1,D
R C1 E
R C0 E P
P
U
PRE 1000
MOD: Y
D U
PRE 50
MOD: Y
O10,0
D
F
F D
D
4/12
Sans titre-4
ASY
CHART
15/01/96, 11:57
4
Blocs fonctions d'automatisme et de commande
4.5
Bloc fonction : Registre
4.5-1 Présentation
Un registre est un ensemble de mots de 16 bits
permettant de stocker des informations de
deux manières différentes :
• file d’attente (premier entré, premier sorti)
ou file FIFO,
• pile (dernier entré, premier sorti) ou pile
LIFO.
Ri
R
LIFO
LEN:16
I
F
E
O
Bloc registre
C
4.5-2
Caractéristiques
Numéro Registre
Ri
Ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 127 (limite du système)
Type
FIFO
LIFO
File d’attente (First In, First Out).
Pile (Last In, First Oust)
Longueur
L
Nombre de mots 16 bits 1 ≤ L ≤ 255.
Non modifiable par programme. Le nombre total de
mots défini pour l’ensemble des registres ne doit pas
dépasser 1024
Mot d’entrée
Ri,I
Mot d’accès au registre. Peut être testé, lu, écrit
Mot de sortie
Ri,O
Mot de sortie du registre. Peut être lu, testé, écrit
Entrée "Stockage"
I(In)
Sur front montant provoque le stockage du contenu
du mot Ri,I dans le registre
Entrée "Déstockage"
O(Out)
Sur front montant provoque le rangement d’un mot
d’information dans le mot Ri,O
Entrée "Remise à zéro" R(Reset)
Sur l’état 1 initialise le registre
Sortie "Plein"
F(Full)
Le bit Ri,F associé indique que le registre est plein.
Peut être testé
Sortie "Vide"
E(Empty)
Le bit Ri,E associé indique que le registre est vide.
Peut être testé
Dimensions à l’écran
2 colonnes de contacts sur 3 lignes
Nota : lorsque les deux entrées I et O sont activées simultanément, le stockage est réalisé
avant le déstockage.
4/13
Sans titre-4
13
15/01/96, 11:57
4.5-3 Fonctionnement
• FIFO (First In, First Out)
Exemple
La première information entrée est la pre- • stockage du contenu de Ri,I dans
mière à être sortie.
un registre vide
Lorsqu’une demande d’entrée est prise en
(a)
compte (front montant sur l’entrée I), le
contenu du mot d’entrée Ri,I préalablement
Ri,I
chargé est stocké au plus haut de la file
50
50
(fig a et b).
Lorsque la file est pleine (sortie F = 1), le
stockage est impossible.
C
Lorsqu’une demande de sortie est prise en
compte (front montant sur entrée O) le mot • stockage du contenu de Ri,I au
d’information le plus bas de la file est rangé
plus haut de la file
dans le mot de sortie Ri,O et le contenu du
20
20
registre est décalé d’un pas vers le bas
Ri,I
80
(fig. c).
(b)
90
Lorsque le registre est vide (sortie E = 1) le
50
déstockage est impossible (le mot de sortie
Ri,O n’évolue plus et conserve sa valeur).
La file peut être réinitialisée à tout moment
(état 1 sur l’entrée R). L’élément pointé est • déstockage de la première inforalors le plus haut dans la pile.
mation et rangement de cette
dernière dans Ri,O
20
80
90
• LIFO (Last In, First Out)
La dernière information entrée est la première à être sortie.
Lorsqu’une demande d’entrée est prise en
compte (front montant sur l’entrée I), le
contenu du mot d’entrée Ri,I préalablement
chargé est stocké au plus haut de la pile
(fig. d).
(c)
Ri,O
50
Exemple
• stockage du contenu de Ri,I au
plus haut de la pile
20
Ri,I
(d)
20
80
90
50
Lorsque la pile est pleine (sortie F à 1), le
stockage est impossible.
4/14
Sans titre-4
14
15/01/96, 11:57
4
Blocs fonctions d'automatisme et de commande
Lorsqu’une demande de sortie est prise en • déstockage du mot d'information le plus haut de la pile
compte (front montant sur l’entrée O), le mot
d'information le plus haut (dernière
20
information entrée) est rangé dans le
Ri,O
80
mot Ri,O (fig e et f).
90
50
Lorsque le registre est vide (sortie E = 1), le
déstockage est impossible, le mot de sortie
Ri,O n’évolue plus et conserve sa dernière
valeur.
La pile peut être réinitialisée à tout moment
(état 1 sur entrée R). L’élément pointé est
alors le plus haut dans la pile.
(e)
Ri,O
80
(f)
90
50
C
Cas spécifiques
- Incidence d’une reprise "à froid" : (SY0 = 1) provoque l’initialisation du contenu
du registre. Le bit de sortie Ri,E associé à la sortie E est mis à 1.
- Incidence d’une reprise "à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur le contenu du registre ainsi que sur l’état des bits de sorties.
• Exemple
La connaissance des blocs opérations "calcul et transfert" est nécessaire pour la
compréhension de cet exemple.
Le programme ci-contre montre
le chargement de R2,I par le mot
W34 et la demande d’entrée (B1)
dans le registre R2 si l’événement
B0 est présent et si le registre R2
n’est pas plein (B10 = 0).
La demande de sortie est faite par
le bit B2 et le rangement de R2,O
dans W20 s’effectue si le registre
n’est pas vide (B11 = 0).
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
2
MAST
PRE
ASY
AUX
POST
CHART
XM
L
B0
B10
W34 → R2,1
B1
B2
B11
R2,0 → W20
B10
R R2 F
B1
B2
I
B11
E
O
4/15
Sans titre-4
15
15/01/96, 11:57
4.6
Bloc fonction : Contrôle
4.6-1 Présentation
Le bloc fonction contrôle permet d’activer ou
de désactiver une tâche périodique.
Le numéro du bloc définit la tâche périodique
à commander
E
CTRLi
R
Bloc contrôle
C
CTRL1
CTRL2
CTRL4
CTRL5
CTRL6
CTRL7
: commande la tâche interruption
: commande la tâche rapide
: commande la tâche auxiliaire 0
: commande la tâche auxiliaire 1
: commande la tâche auxiliaire 2
: commande la tâche auxiliaire 3
(IT)
(FAST)
(AUX0)
(AUX1)
(AUX2)
(AUX3)
L’accès au bloc CTRLi est conditionné par la configuration de la tâche i.
4.6-2
Caractéristiques
Numéro du bloc
CTRLi
Ce numéro est nécessairement compris entre 1 et 7
et indique le numéro de la tâche à commander
Entrée "Activation"
E
A l’état 1 cette entrée active la tâche i. A l’état 0 cette
entrée provoque la désactivation de la tâche i. La
désactivation de la tâche n’est effective qu’en fin
d’exécution de celle-ci
Sortie "Tâche activée"
R
Le bit associé CTRLi,R est à l’état 1 quand la tâche i
est active
Dimensions à l’écran
2 colonnes de contacts sur 2 lignes
4.6-3 Fonctionnement
La mise à l’état 1 de l’entrée E provoque l’activation de la tâche définie par le numéro
du bloc.
La mise à l’état 0 de l’entrée E provoque la désactivation de la tâche définie par le
numéro du bloc.
La désactivation d’une tâche n’est effective qu’en fin d’exécution de celle-ci.
Cas spécifique
- Incidence d’un saut de programme : le fait de ne pas scruter le réseau où est
programmé le bloc contrôle i ne désactive pas la tâche i.
4/16
Sans titre-4
16
15/01/96, 11:57
Blocs comparaison
Blocs comparaison
Sous-chapitre
5.1 Bloc comparaison : comparateur vertical
5.1-1 Présentation
5.1-2 Caractéristiques
5.1-3 Fonctionnement
5
Chapitre 5
Page
5/2
5/2
5/2
5/2
C
5.2 Bloc comparaison : comparateur horizontal
5/3
Ce chapitre se termine à la page
5/4
5/1
5.1
Bloc comparaison : Comparateur vertical
5.1-1 Présentation
Le bloc comparateur vertical permet d’effectuer
la comparaison entre 2 opérandes (OP). Ces
opérandes peuvent être :
• soit deux mots de 16 bits éventuellement
indexés,
• soit un mot de 16 bits éventuellement indexé
et une valeur immédiate.
Le nombre de blocs comparateur vertical n’est
pas limité, ce bloc n’est donc pas numéroté.
COMPARE
W0
>
=
W25
<
#
C
5.1-2
Caractéristiques
Entrée de commande
Sur état 1 provoque la comparaison des deux opérandes
Sortie "Supérieur"
>
Est à l’état 1 si le contenu de OP1 est supérieur à
celui de OP2
Sortie "Egal"
=
Est à l’état 1 si le contenu de OP1 est égal à celui de
OP2
Sortie "Inférieur"
<
Est à l’état 1 si le contenu de OP1 est inférieur à celui
de OP2
Sortie "Différent"
#
Est à l’état 1 si le contenu de OP1 est différent de
celui de OP2
Opérande n°1
Cet opérande est un mot interne (W).
Il est indexable : Wi(Wx)
Opérande n°2
Cet opérande est soit un mot interne (W), soit un mot
constant (CW), soit une valeur immédiate. Dans le
cas ou cet opérande est un mot, il est possible de
l’indexer.
5.1-3 Fonctionnement
La mise à 1 de l’entrée de commande provoque la comparaison des deux
opérandes, les quatre sorties sont activées en fonction du résultat de la comparaison. La mise à 0 de l’entrée de commande provoque la mise à zéro des sorties
activées.
5/2
5
Blocs comparaison
Cas spécifiques
- Incidence d’une reprise "à froid" : (SY0) provoquant une remise à zéro de
l’opérande OP1 et éventuellement OP2 (si OP2 est un mot interne), les sorties
sont activées en fonction de la comparaison avec les nouvelles valeurs,
- Incidence d’une reprise "à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur le bloc comparaison.
• Exemple d’utilisation
Le programme ci-contre montre la comparaison du mot W2
indexé par le mot W40 et de la
valeur immédiate 150.
Formulaire programmation
schéma à contacts
IT
MAIN
FAST
SR
MAST
PRE
AUX
POST
ASY
CHART
XM
L
Dans le cas où le contenu de
W2(W40) est supérieur à 150 et
si I0,3 = 1 la bobine O10,7 est
commandée.
CMPV
>
W2
(W40)
=
I0,3
O10,7
W10,4
<
150
B5
≠
Si ce contenu est égal à 150 la
bobine W10,4 est commandée.
La bobine B5 n’est pilotée que
si le contenu est différent de
150 (< ou >).
5.2
Bloc comparaison : Comparateur horizontal
Ce bloc permet d’effectuer la comparaison de deux opérandes. Il fait appel à des
expressions du langage littéral et est comparable quant à sa forme aux blocs
opérations, mais il est exclusivement placé en zone test. Sa sortie est à 1 lorsque
la comparaison demandée est vraie.
Les blocs "comparateur horizontal" ne sont pas limités en nombre.
Le bloc est constitué de la manière suivante :
OP1>,<,=,<>,<=,=<OP2
Opérande 1 (OP1) : objet mot simple ou
double longueur ou expression complexe
Opérande 2 (OP2) : objet mot ou valeur
immédiate en simple ou double longueur
Exemple :
Comparaison du mot W241 avec la
valeur immédiate 100.
W241 > 100
La sortie de ce bloc passe à 1 lorsque
que le contenu du mot W241 est supérieur à 100.
5/3
C
C
5/4
Chapitre
Blocs opérations
6
Chapitre 6
Sous-chapitre
Page
6.1 Présentation
6/2
6.2 Utilisation
6/2
Ce chapitre se termine à la page
6/2
6/1
Sans titre-5
1
15/01/96, 11:58
C
6.1
Présentation
Les blocs opérations font appel au langage littéral résidant dans le langage PL7-3.
Ces blocs, à la différence des blocs fonctions d’automatismes ne sont pas préprogrammés dans l’automate et ne sont donc pas limités en nombre.
Les blocs opérations permettent d’effectuer les opérations suivantes :
C
•
•
•
•
•
•
•
•
•
•
•
opérations de transfert d’un mot dans un autre,
opérations de décalages logiques et circulaires,
opérations de transcodage,
opérations logiques : AND, OR, XOR, CPL
incrémentation et décrémentation d’un mot,
opérations arithmétiques : +, -, *, /, reste, racine carrée,
opérations sur chaînes de bits,
opérations sur tableaux de mots,
échanges explicites,
gestion des bits interruption coupleur,
exécution d’une instance d’OFB.
Ces opérations étant généralement la conséquence de tests, les blocs opérations
sont toujours situés dans la zone "Action" du réseau de contacts.
Ces opérations font toutes appel à la notion de transfert, à l’exception de celles
permettant l’incrémentation et la décrémentation d’un mot et des échanges
explicites.
Le bloc opération se présente sous
la forme d’un rectangle occupant
les 4 dernières colonnes d’une
ligne. Un réseau de contacts
comporte donc au maximum 7
blocs opérations.
6.2
Utilisation
L’utilisation des blocs opérations est décrite dans "COMMUNS LANGAGE A
CONTACTS ET LITTERAL" intercalaire E, chapitre 1 à 5.
6/2
Sans titre-5
2
15/01/96, 11:58
Bloc fonction texte
Bloc fonction texte
Sous-chapitre
7
Chapitre 7
Page
7.1 Présentation
7/2
7.2 Description
7/3
7.3 Utilisation des entrées de commande
7/4
7.4 Fonctionnement
7/5
7.5 Télégrammes (bloc texte TLG)
7/5
Ce chapitre se termine à la page
7/6
7/1
C
7.1
Présentation
Le bloc fonction "Texte" permet au programme utilisateur de communiquer avec :
• un périphérique (imprimante,
clavier, automate, terminal) par
l’intermédiaire de la "prise terminal" de l’automate : le bloc est
alors de type "TER".
R
TXT0
D
TER
S T,C :0
Local
E
T,N :0
W0
O
10
T,L :0
T,S :?
I
C
Réseau
Bloc Texte
• un coupleur intelligent : le bloc
est alors de type "CPL".
R
TXT0
D
CPL
S T,C :0
Local
E
T,V :0
W0
O
10
T,L :0
T,S :?
I
Réseau/Bus
Bloc Texte
• un autre bloc fonction texte implanté dans le programme utilisateur : les deux blocs sont alors
de type "TXT".
R
TXT0
D
TXT
S T,C :0
Réseau
E
T,N :0
W0
O
10
T,L :0
T,S :?
I
Local
Bloc Texte
R
TXT0
Local
E
Réseau
Bloc Texte
7/2
D
T,V :0
W0
O
10
T,L :0
T,S :?
I
I
Bloc Texte
SYS
S T,C :0
TXT1
D
TXT
S T,C :0
T,N :0
W0
O
10
T,L :0
T,S :?
• certaines fonctions système,
par exemple celles qui donnent
accès aux données de diagnostic d’un coupleur intelligent :
le bloc est alors de type "SYS".
R
E
7
Bloc fonction texte
• un autre bloc fonction texte de
type Télégramme, implanté dans
le programme utilisateur d’un
autre automate, situé sur le
même réseau MAPWAY,
ETHWAY, FIPWAY.
Les deux blocs sont alors de
type "TLG".
R
TXT0
D
TLG
S T,C :0
R
Réseau
E
D
S T,C :0
T,N :0
W0
O
10
T,L :0
T,S :?
I
TXT1
TLG
E
T,N :0
W0
O
10
T,L :0
T,S :?
I
Local
Bloc Texte
Bloc Texte
Note : les télégrammes ne peuvent pas s’échanger localement, mais uniquement
avec un réseau de type MAPWAY, ETHWAY ou FIPWAY.
Les autres communications peuvent s’effectuer localement ou en utilisant le
réseau TELWAY, MAPWAY, ETHWAY ou FIPWAY ou le bus UNI-TELWAY
ou FIPIO.
7.2
Description
Le bloc texte étant commun aux langages à contacts et littéral, la description
détaillée des différents paramètres hormis les entrées de commande est décrite
dans "COMMUNS LANGAGES A CONTACTS ET LITTERAL" intercalaire E,
chapitre 6.
Le bloc "Texte" comporte :
• un numéro de bloc
TXTi
• un type d’échange (CPL/TER/SYS/TXT/TLG)
• un type de communication (LOCAL/RESEAU)
(seulement RESEAU pour bloc TLG)
• une adresse de début de table
ex : W10
• une longueur de table de réception
ex : 12
• une longueur de table d’émission
TXTi,L
• un mot status
TXTi,S
• une sortie "Echange terminé"
D
• une sortie "Echange erroné"
E
• quatre entrées de commandes
R/S/O/I
décrites ci-après.
R
TXTi
D
TER
S TM :0000H E
LOCAL
T,C :0
O T,N :0
W0
10
I T,L :0
T,S :?
7/3
C
C
Entrée Reset
R
La mise à l’état 1 de cette entrée empêche la prise
en compte de l’entrée S.
De la même manière, la mise à l’état 1 de cette entrée
durant un échange interrompt l’échange et positionne
les bits de sortie TXTi,D (échange terminé) et TXTi,E
(échange erroné) à l’état 1. Le code de l’erreur est
alors contenu dans le mot status TXTi,S.
Entrée Départ
S
Un front montant sur l’entrée S provoque le lancement
de l’échange défini par les entrées I (réception) et O
(Emission) si le bit de sortie D est à l’état 1 et si
l’entrée R est à l’état 0.
Entrée Emission
O
La mise à l’état 1 de cette entrée positionne le bloc
en émission.
Entrée Réception
I
La mise à l’état 1 de cette entrée positionne le bloc
en réception.
7.3
Utilisation des entrées de commande
La mise à l’état 1 des entrées I ou O permet de positionner le bloc en lecture ou en
écriture. La réception ou l’émission est alors déclenchée par un front montant sur
l’entrée S (départ), si l’entrée R (Reset) est à l’état 0 et la sortie D est à l’état 1 (aucun
échange en cours). En fin d’écriture ou de lecture et si l’échange a été correct, la
sortie D est mise à l’état 1.
De la même manière la mise à l’état 1 simultanée des entrées I et O permet
l’émission et la réception simultanées. L’échange est déclenché par un front
montant de l’entrée S. La sortie D est mise à l’état 1 lorsque l’émission et la réception
se sont déroulées de manière correcte et sont terminées.
A tout instant, la mise à l’état 1 de l’entrée R permet d’interrompre l’échange en
cours. Les bits de sortie D (échange terminé) et E (échange erroné) sont mis à
l’état 1 et le mot status TXTi,S indique alors le type d’erreur jusqu’au prochain
échange. L’entrée R est prioritaire.
Etat des entrées
Actions
7/4
R
S
O
I
0
1
1
0
Emission
0
1
0
1
Réception
0
1
1
1
Emission suivie de réception
1
1
0/1
0/1
Pas de possibilité d’échange ou interruption de
l’échange en cours
Bloc fonction texte
7.4
7
Fonctionnement
Le fonctionnement du bloc texte est décrit dans "COMMUNS LANGAGES A
CONTACTS ET LITTERAL" intercalaire E, chapitre 6.
7.5
Télégrammes (bloc texte TLG)
Un télégramme est un message destiné à transmettre des informations urgentes,
prioritaires et peu fréquentes. C’est un message court (32 octets au maximum)
échangé entre les programmes utilisateur de deux stations, situées sur un même
réseau MAPWAY, ETHWAY ou FIPWAY. Les blocs texte TLG, permettant l’envoi
des télégrammes seront programmés dans les tâches MAST, FAST ou IT (pas dans
les tâches AUX).
Emission d’un télégramme
L’émission d’un télégramme est immédiate, il n’est pas nécessaire d’attendre la fin
d’exécution du programme application. Celui-ci est directement envoyé au coupleur
dès que les commandes d’émission du bloc TLG sont activées (mise à 1 de l’entrée
O et front montant sur l’entrée S).
Réception d’un télégramme
Cette opération se fait en deux temps :
• positionnement du bloc texte TLG en réception (mise à 1 de l’entrée I et front
montant sur l’entrée S),
• lecture du télégramme par l’instruction READTLG :
dès que le coupleur reçoit un télégramme, il envoie une interruption au processeur
qui exécute alors la tâche IT du programme application. Cette tâche permet :
- la reconnaissance de l’IT par l’instruction READINT,
- le transfert du télégramme depuis le coupleur jusque dans le buffer de
réception du bloc TLG, par l’instruction READTLG,
- l’exécution des actions associées.
Emission/réception d’un télégramme
Elle est provoquée par la mise à 1 simultanée des entrées I et O. Elle fonctionne
comme une émission suivie d’une réception.
Remarques :
• les télégrammes peuvent s’utiliser sans les interruptions. La tâche MAST ou
FAST demande de façon explicite sa lecture à chaque cycle. On a alors
l’équivalent d’une messagerie rapide.
• en réception, on ne peut traiter qu’un seul télégramme par cycle automate et par
coupleur. Par contre il est possible dans un même cycle automate d’émettre un
télégramme sur chaque coupleur réseau d’un automate routeur.
7/5
C
C
7/6
Blocs fonctions optionnels
Blocs fonctions optionnels
Sous-chapitre
8
Chapitre 8
Page
8.1 Présentation
8/2
8.2 Description
8/2
8.3 Utilisation des entrées/sorties
8/3
8.4 Fonctionnement
8/4
Ce chapitre se termine à la page
8/4
8/1
C
8.1
Présentation
Les blocs fonctions optionnels (OFBs) permettent une extension du langage PL7-3,
sous forme de blocs fonctions spécifiques. La bibliothèque des OFBs, disponible
par famille (diagnostic process, communication, commande d'axes, régulation,
Grafcet...) sera fournie par la catalogue Telemecanique.
Chaque OFB chargé et configuré peut être utilisé plusieurs fois dans une application.
La seule limite sur le nombre d’OFBs ést la taille mémoire utilisée (par exemple 32
Kmots maximum pour les constantes de chaque type d’OFBs). Il est possible pour
certains types d’OFBs d’utiliser jusqu’à 1000 OFBs.
C
8.2
Description
Chaque type d’OFBs étant spécifique, la description à ce niveau se veut volontairement générale. La description détaillée de chaque type d’OFBs sera fournie avec
la documentation accompagnant l’OFB.
Comme les blocs fonctions standards, un type d’OFBs utilise des paramètres qui
seront définis pour chaque OFB :
• des paramètres d’entrées et de sorties,
• des paramètres de configuration accessibles ou non par programme,
• des paramètres internes (données et constantes) lus ou lus/écrits par l’utilisateur.
OFBi
Ent1
Ent2
Ent3
Ent4
Ent5
Ent6
Sort1
Sort2
Sort3
Sort4
Sortn
Entm
OFB
i
Ent(1 à m)
Sort(1 à n)
Data1
:
:
:
:
:
type de l’OFB
numéro de l’OFB
paramètres d’entrées
paramètres de sorties
paramètre interne
Data1
Le type de chacun des paramètres de l’OFB est défini parmi les types suivants :
•
•
•
•
•
•
•
bit (BIT)
mot de 16 bits (WORD)
double mot (DWOR)
tableau de mots (AR_W)
tableau de doubles mots (AR_D)
chaîne de caractères (MSG)
pointeur sur bit (PT_B)
8/2
•
•
•
•
•
•
•
pointeur sur mot (PT_W)
pointeur sur double mot (PT_D)
module d’entrées/sorties (MOD)
référence catalogue (REF_CAT)
mot flottant (FDWR)
tableau de bits (AR_B)
tableau de bits d'E/S à distance (AR_I)
Blocs fonctions optionnels
8.3
8
Utilisation des entrées/sorties
L’utilisation des entrées/sorties de chaque OFB sera décrite dans la documentation
accompagnant l’OFB. Les OFBs de la famille Grafcet sont décrit au chapitre 4 de
l'intercalaire B.
Objets extraits des OFBs
Ces nouveaux objets s’intègrent aux expressions et aux actions du programme
application, comme les objets standards PL7-3. Ils sont utilisés en lecture ou
lecture/écriture selon la définition de l’OFB. Ces objets sont :
•
•
•
•
les paramètres d’entrées,
les paramètres de sorties,
les données internes,
les constantes internes.
C
Le tableau suivant donne pour ces objets, les types autorisés et leur accès (écriture
et/ou lecture) :
Objet
(*)
Type
Accès
Paramètre d’entrée
Bit, Mot, Double mot
Module,
Pointeur sur bit,
Pointeur sur mot ou double mot
R
Pas d’accès
Pas d’accès
Pas d’accès
Paramètre de sortie
Bit, Mot, Double mot
R
Donnée interne
Bit, Mot, Double mot
Tableau de mots ou doubles mots
Chaîne de caractères (message)
Mot flottant
Tableau de bit
R, W (*)
R, W (*)
R, W (*)
R, W (*)
R, W (*)
Constante interne
Bit, Mot, Double mot
Tableau de mots ou doubles mots
Chaîne de caractères (message)
R
R
R
selon autorisation du concepteur de l’OFB
La syntaxe de ces objets est la suivante :
OFBi,objet
OFB
i
objet
: type de l’OFB
: numéro de l’OFB
: nom de l’objet
Notes :
• les éléments d’OFB de type pointeur sur bit, pointeur sur mot, pointeur sur double
mot et module ne sont pas accessibles par le programme utilisateur,
• les éléments de type message sont traités comme des tableaux de mots par le
programme utilisateur,
8/3
Les éléments d’OFBs de type tableau de mots ou doubles mots
• définition :
OFBi,TABLEAU
type tableau de mots ou doubles mots
longueur n <> 0
• représentations
C
OFBi,TABLEAU
représente le premier élément du tableau.
OFBi,TABLEAU[m]
représente un tableau extrait de OFBi,TABLEAU
composé des éléments compris entre le premier
et l’élément m du tableau source.
m est une valeur immédiate (0 < m < n).
OFBi,TABLEAU(Wj)
représente l’élément d’index Wj du tableau
OFBi,TABLEAU.
Wj est un mot interne PL7-3.
OFBi,TABLEAU(Wj)[m]
représente un tableau extrait de OFBi,TABLEAU
composé des éléments compris entre l’élément
d’index Wj et l’élément d’index Wj+m du tableau
source.
m est une valeur immédiate (0 < m < n).
Wj est un mot interne PL7-3.
• Opérations
- Affectation indexée
OFBi,TABLEAU(Wi) → Wj
Wj → OFBi,TABLEAU(Wi)
OFBi,TABLEAU(Wi) → OFBi,TABLEAU(Wj)
- Transfert de tableau
OFBi,TABLEAU[m] → Wj[m]
Wj[m] → OFBi,TABLEAU[m]
OFBi,TABLEAU[m] → OFBj,TABLEAU[m] (avec OFBi,TABLEAU <>
OFBj,TABLEAU)
- Transfert de tableau indexé
OFBi,TABLEAU(Wi)[m] → Wj[m]
Wj[m] → OFBi,TABLEAU(Wj)[m]
OFBi,TABLEAU(Wi)[m] → OFBj,TABLEAU(Wj)[m]
(avec OFBi,TABLEAU <> OFBj,TABLEAU)
8.4
Fonctionnement
Le fonctionnement étant spécifique à chaque OFB, il sera décrit dans la documentation correspondante.
8/4
Dialogue
Langage littéral
Chapitre
1
5
Intercalaire D
Page
Présentation du langage littéral PL7-3
Sommaire
1/1
1.1 Principe
1.2 Liste des instructions
2
Les phrases du langage littéral
Sommaire
2/1
2.1 Généralités
2.2 Structure générale
D
2.3 Commentaires
2.4 Etiquette
2.5 Phrase action
2.6 Phrase conditionnelle
2.7 Phrase itérative
3
L’expression booléenne
Sommaire
3/1
3.1 Généralités
3.2 Structure
3.3 Adressage des objets bits
3.4 Test sur bit
3.5 Expression de front
3.6 Comparaison numérique
3.7 Inversion logique
3.8 ET/OU logique
3.9 Parenthèse
D/1
Langage littéral
Chapitre
4
Intercalaire D
Page
L’expression arithmétique
Sommaire
4/1
4.1 Généralités
4.2 Adressage des objets mots
4.3 Structure
4.4 Parenthèses
5
Actions
Sommaire
D
5/1
5.1 Utilisation
5.2 Actions sur bits
5.3 Actions sur chaîne d’octets
5.4 Actions sur programme
5.5 Actions sur interruptions
5.6 Actions explicites
5.7 Lecture d’un télégramme
6
Fonctions d’automatismes
Sommaire
6.1 Fonction temporisateur
6.2 Fonction monostable
6.3 Fonction compteur
6.4 Fonction registre
6.5 Fonction contrôle
6.6 Fonction texte
D/2
6/1
Présentation du langage littéral PL7-3
Présentation du langage littéral
PL7-3
Sous chapitre
1
Chapitre 1
Page
1.1 Principe
1/2
1.2 Liste des instructions
1/3
1.2-1
1.2-2
1.2-3
1.2-4
1.2-5
1.2-6
1.2-7
1.2-8
1.2-9
Instructions sur bits
Instructions sur mots
Instructions sur chaîne de bits
Instructions sur chaîne d’octets
Instructions sur tableaux de mots
Instructions sur programme
Instructions sur interruptions
Instructions d’entrées/sorties explicites
Instructions sur blocs fonctions
1/3
1/3
1/4
1/4
1/5
1/5
1/6
1/6
1/7
Ce chapitre se termine à la page
1/8
1/1
Sans titre-6
1
15/01/96, 11:59
D
1.1
Principe
Le langage littéral permet la réalisation de programmes par écriture de lignes de
programmation, constituées de caractères alphanumériques.
La ligne de programmation constitue l’entité du langage littéral. L’association de
plusieurs lignes de programmation définit un programme.
L’élément principal de la ligne de programmation est constituée par la phrase
littérale.
Il existe 3 types de phrase :
• la phrase action,
• la phrase conditionnelle,
• la phrase itérative.
<
!
L
I F
: WH I L E
T H E N
E L S E
D O
< P HR A S E A C T I ON
Les principales instructions du langage littéral sont :
D
Formulaire programmation
Litteral
• les actions sur bit ou sur mot,
• les instructions conditionnelles,
• les opérations logiques ou arithmétiques en simple ou double
longueur,
• les comparaisons,
• les branchements,
• les opérations sur tableaux,
• les tests et les actions sur les
différents blocs fonctions (Temporisateur, Monostable, Compteur, Registre...).
!
SET O1 5 , 3
< P HR A S E COND I T I ONN E L L E
!
IF
I1,4
THEN SET O1 7 , 2
ELSE SET O1 7 , 1
< PHRA S E
I TERAT I VE
!
WH I L E
B5
D O W 1 * 3→W 2
Le langage littéral peut être utilisé pour programmer n’importe quelle tâche. Il peut
être mixé avec les autres langages (Contacts ou Grafcet).
1/2
Sans titre-6
2
15/01/96, 11:59
1
Présentation du langage littéral PL7-3
1.2
Liste des instructions
1.2-1 Instructions sur bits
Désignation
Exemple
Fonction
Bit
NOT (bit)
RE (bit)
FE (bit)
→
SET
RESET
+
.
( )
I1,3
NOT W4,3
RE (I17,9)
FE (I4,F)
→ O24,A
SET B27
RESET SY17
I1,3+NOT B4
O14,5 . B28
NOT (B12.I1,4)
O1,7.(I4,4+B12)
Test de l’état du bit
Test de l’état inverse du bit
Test du front montant du bit
Test du front descendant du bit
Affectation du résultat logique dans bit
Mise à l’état 1 du bit dans phrase action
Mise à l’état 0 du bit dans phrase action
Somme logique de deux instructions
Produit logique de deux instructions
Permet de considérer une expression
booléenne comme un objet
D
1.2-2 Instructions sur mots
Désignation
Exemple
Fonction
mot simple longueur
mot double longueur
→
W1450
CDW128
→ DW164
→ W1680
Lecture du contenu d’un mot simple ou
double longueur
Transfert du résultat d’une expression
arithmétique dans un mot
INC mot
DEC mot
INC W28
DEC W340
Incrémentation du contenu du mot
Décrémentation du contenu du mot
SHL i (mot)
SHR i (mot)
SLC i (mot)
* SHL 8 (W20)
* SHR 6 (COM3,2)
* SLC 3 (W0)
SRC i (mot)
* SRC 10 (W1)
Décalage logique à gauche de i positions
Décalage logique à droite de i positions
Décalage circulaire à gauche de i positions
Décalage circulaire à droite de i positions
DTB (mot)
BTD (mot)
ATB (tableau) → mot
BTA (mot) → tableau
GTB (mot)
* DTB (CW9)
* BTD (T3,V)
ATB (W20[3])
BTA (C9,V)
* GTB (W20)
Transcodage BCD → binaire
Transcodage binaire → BCD
Transcodage ASCII → binaire
Transcodage binaire → ASCII
Transcodage Gray → binaire
>
>=
<
<=
=
<>
[W20>1460]
[DW4>=DW9]
[DW7<CDW10]
[W6<=T4,V]
[W0=CW27]
[C4,V<>140]
Comparaison supérieure à
Comparaison supérieure ou égale à
Comparaison inférieure à
Comparaison inférieure ou égale à
Comparaison égale à
Comparaison différente de
1/3
Sans titre-6
3
15/01/96, 11:59
Désignation
Exemple
Fonction
+
*
/
REM
SQRT
CW29+500
DW48-W66
W33*CW4
DW4 / 16
W61 REM W12
SQRT (W5)
Addition
Soustraction
Multiplication
Division
Reste d’une division
Extraction de racine carrée
AND
OR
XOR
CPL
* W24 AND W5
* W103 OR CW4
* W32 XOR W3
CPL (W459)
ET logique (intersection)
OU logique inclusif (union)
OU logique exclusif (disjonction)
Complément logique
( )
(W5 OR W6) + W7
Permet de considérer une expression
arithmétique comme un seul objet
Les instructions sur objets mots portent sur des mots simple ou double longueur.
Les instructions repérées * ne portent que sur des mots simple longueur.
D
1.2-3 Instructions sur chaîne de bits
Désignation
Exemple
Fonction
Chaîne de bits →
chaîne de bits
Chaîne de bits →
mot
Mot → chaîne de
bits
Valeur immédiate
→ chaîne
I0,0[8] → B2[8]
Transfert de l’état de n bits dans n autres
bits
Transfert de l’état de n bits dans un mot
I14,4[9] → W9
W6 → O4,0[16]
H’00FF’ → B20[16]
Transfert du contenu d’un mot dans n
bits
Transfert d’une valeur immédiate dans
n bits
Une chaîne de bits est un ensemble de n bits de même type : entrées I, sorties O,
bits interne B.
1.2-4
Instructions sur chaîne d’octets
Désignation
Exemple
Fonction
SLCWORD
SLCWORD(W1;W100)
Décalage circulaire de 1 octet vers la
gauche, sur une zone de n octets définie
à partir d’une adresse source
1/4
Sans titre-6
4
15/01/96, 11:59
1
Présentation du langage littéral PL7-3
1.2-5 Instructions sur tableaux de mots
Désignation
Exemple
Fonction
Initialisation
d’un tableau
0 → W0[150]
Transfert d’une valeur immédiate ou du
contenu d’un mot dans tous les mots du
tableau
Transfert dans un
autre tableau
→
W20[16]
→
W30[30]
Transfert des contenus des mots origines dans les mots correspondants du
tableau destinataire
Opérations
arithmétiques
+ - * / REM
W140[25]
+W200[25]
Opérations arithmétiques entre les mots
de même rang de deux tableaux
Opérations logiques
AND OR XOR
W40[10]
OR W12[10]
Opérations logiques entre les mots de
même rang de deux tableaux
Opérations sur tous
les mots d’un
tableau + - * / REM
AND OR XOR
W10+W34[8]
Opérations entre le contenu d’un mot,
ou une valeur immédiate ou le résultat
d’une expression arithmétique et tous
les mots du tableau
Sommation des mots
d’un tableau
CW30[30] +
Addition de tous les mots du tableau
EQUAL
EQUAL (W4[15];
W20[15]) → W0
Recherche d’égalité entre les mots de
même rang de deux tableaux. Le rang
des premiers mots dissemblables est
rangé dans le mot résultat
SEARCH
SEARCH (W4[15];
W43) → W0
Recherche du contenu d’un mot dans
tous les mots d’un tableau. Le rang du
premier mot identique est rangé dans le
mot résultat
D
Un tableau est un ensemble de n mots de même type : mots internes simple ou
double longueur, mots constants simple ou double longueur.
Dans les opérations de transfert ou d’initialisation des tableaux, ceux-ci sont
indexables.
Exemples : CW3(W2)[10] → W15(W100)[10]
CW3(W2)[10] → W15[10]
CW3[10]
→ W15(W100)[10]
1.2-6
Instructions sur programme
Désignation
Exemple
Fonction
JUMP Li
JUMP L145
Saut à la phrase étiquetée
CALL SRi
CALL SR11
Appel de sous-programme
HALT
HALT
Arrêt de l’application. Relancer l’exécution de l’application par INIT
1/5
Sans titre-6
5
15/01/96, 11:59
1.2-7
Instructions sur interruptions
Désignation
Fonction
READINT
READINT (I3;B1)
Test de l’interruption
MASKINT
MASKINT (I3)
Masquage de l’interruption
DMASKINT
DMASKINT (I3)
Démasquage de l’interruption
ACKINT
ACKINT (I3)
Acquittement de l’interruption
SETIT
SETIT (I3)
Génération d’une interruption vers un
coupleur
1.2-8
D
Exemple
Instructions d’entrées/sorties explicites
Désignation
Exemple
Fonction
READBIT
READBIT (I14;B0)
Acquisition explicite des entrées T.O.R
d’un module
WRITEBIT
WRITEBIT (B20;I27)
Mise à jour explicite des sorties T.O.R
d’un module
READREG
READREG (I16;W4)
Acquisition explicite des registres coupleur
WRITEREG
WRITEREG (W8;I127)
Mise à jour explicite des registres coupleur
READEXT
READEXT(I16;W50;W1)
Acquisition explicite de n mots de la
zone message de la mémoire partagée
d’un coupleur
WRITEEXT
WRITEEXT(W50;I15;W1)
Mise à jour explicite de n mots de la
zone message de la mémoire partagée
d’un coupleur
1/6
Sans titre-6
6
15/01/96, 11:59
1
Présentation du langage littéral PL7-3
1.2-9
Instructions sur blocs fonctions
Désignation
Exemple
PRESET
START
RESET
Fonction
Type de bloc
PRESET T12
Mise à la valeur de présélection
[T] [C]
START TXT0
Commande
[T] [M]
START CTRL2
Lancement tâche périodique
[CTRL]
RESET C34
Remise à zéro
[C] [R]
[CTRL] [TXT]
UP
UP C4
Incrémentation compteur
[C]
DOWN
DOWN C4
Décrémentation compteur
[C]
STOP
STOP T103
Arrêt évolution temporisateur
[T]
PUT
PUT R25
Stockage dans registre
[R]
GET
GET R25
Déstockage dans registre
[R]
INPUT
INPUT TXT12
Réception message
[TXT]
OUTPUT
OUTPUT TXT12
Emission message
[TXT]
EXCHG
EXCHG TXT12
Emission et réception d'un
message
[TXT]
EXEC
EXEC DGAXM1
Exécution d’un OFB
[OFB]
READTLG
READTLG(I15;W1)
Lecture de la zone télégramme
d’un coupleur MAPWAY,
ETHWAY ou FIPWAY et recopie de son contenu dans le buffer
réception du bloc texte TLG
[TLG]
D
1/7
Sans titre-6
7
15/01/96, 11:59
D
1/8
Sans titre-6
8
15/01/96, 11:59
Les phrases du langage littéral
Les phrases du langage littéral
Sous chapitre
2
Chapitre 2
Page
2.1 Généralités
2/2
2.2 Structure générale
2/3
2.3 Commentaires
2/4
2.4 Etiquette
2/5
2.5 Phrase action
2/6
2.6 Phrase conditionnelle
2/7
2.7 Phrase itérative
2/8
Ce chapitre se termine à la page
2/8
2/1
D
2.1
Généralités
Un programme écrit en langage littéral se compose d’une suite de lignes de
programmation.
Lignes de programmation
Dans sa forme générale, la ligne de programmation comprend un commentaire et
une phrase littérale débutant par un point d’exclamation et repérée par une
étiquette.
Le commentaire et l’étiquette sont optionnels.
< Commentaire
! Etiquette:phrase littérale
< Démarrage pompe
! L16 : SET O3,2
< Commentaire
! Phrase littérale
< Quantité écoulée
!
W6 + W7 → W8
! Etiquette:Phrase litterale
! L19 : SET B5; RESET O3,5
! Phrase littérale
!
IF [W8 > 130]
THEN JUMP L32
D
Les phrases littérales
Les trois types de phrases du langage littéral sont : la phrase action, la phrase
conditionnelle, la phrase itérative.
Phrase action
Action unique
Action; action; action
!
!
RESET B6
B1.B3 → O4,6; W4+W5 → W9; SET B9
!
!
IF B3 THEN JUMP L5
IF B4
THEN SET B6 ELSE RESET B4
!
WHILE [W5 > 8]
DO INC W5...
Phrase conditionnelle
IF... THEN...
IF... THEN... ELSE...
Phrase itérative
WHILE... DO...
Règles
L’ensemble des caractères de la phrase littérale ne doit pas dépasser 512
caractères.
2/2
2
Les phrases du langage littéral
2.2
Structure générale
Ligne de programmation
< COMMENTAIRES
! ETIQUETTE
:
PHRASE LITTERALE
PHRASE
ACTION
Elle permet d'agir
directement sur les
objets et d'effectuer
une action ou une
suite d'actions
EXPRESSION BOOLEENNE
Objet bit
EXPRESSION ARITHMETIQUE
Objet mot
Actions sur bits
Ex. SET B10; T4,D → 01,A
Actions sur mots
Ex. INC W10; CW16 → W0
Actions sur programme
Ex. CALL SR63
D
Actions sur blocs fonctions Ex. START T14; UP C0
Actions sur tableaux
PHRASE
: IF
CONDITIONNELLE
EXPRESSION BOOLEENNE
Les actions sont
asservies au résultat
d'un ou de plusieurs
tests.
PHRASE
ITERATIVE
:WHILE
Elle permet d'effectuer
des actions conditionnées au résultat d'un
test. Ces actions sont
exécutées tant que le
test est vrai.
L'expression booléenne
Ex. 0 → W140[34]
THEN
Phrase action
ELSE
Phrase action
DO
Phrase action
EXPRESSION BOOLEENNE
: elle se caractérise par son résultat logique : 1 ou 0.
L'expression arithmétique : elle se caractérise par son résultat qui est une valeur numérique sur 16 ou 32 bits, donc obtenu par des opérations sur
mots.
2/3
2.3
Commentaires
Un commentaire peut être associé à chaque ligne de programmation.
Structure
Dans un dossier ou en lecture de programme, le commentaire apparaît devant la
phrase littérale et débute par le signe <.
→ Début de commentaire
< Commentaire
(78 caractères maximum)
Ligne de programmation
! Phrase littérale
Règles
• Le commentaire n’est pas obligatoire dans une ligne de programmation,
• Le commentaire peut définir à lui seul une ligne de programmation,
• En cas de suppression d’une ligne de programmation, le commentaire qui lui est
associé est également supprimé,
D
• Le nombre maximum de caractères d’un commentaire est de 78,
• Tous caractères alphanumériques et signes sont possibles dans un commentaire,
à l’exception des caractères : return et line feed,
• Le commentaire est mémorisé dans l’espace programme de la mémoire utilisateur.
Il n’interfère pas sur les temps d’exécution du programme mais consomme de la
mémoire.
Exemples :
< Séquence de calcul
! W5 + W4 → W6
ligne avec commentaire
! W6 * 12 → W7
ligne sans commentaire
< Contrôle fonctionnement pompe
! IF I4,6
THEN SET B3
ELSE JUMP L12
2/4
ligne avec commentaire
Les phrases du langage littéral
2.4
2
Etiquette
L’étiquette permet de repérer une ligne de programmation dans un module de
programme, ce qui permet d’utiliser les instructions de branchement (JUMP) et de
lire rapidement un programme à partir du terminal.
Structure
L’étiquette se situe devant la phrase à repérer à la suite du point d’exclamation.
Elle débute par la lettre L (Label) suivie d’un repère compris entre 1 et 999 et est
séparée de la phrase par deux points.
Chaque entité de programme (tâche, sous-programme, étape...) peut contenir
jusqu’à 256 étiquettes.
! L 230 : Phrase littérale
Séparateur
Repère d'étiquette: 1 à 999
Début d'étiquette
Début de phrase
D
Règles
• L’étiquette n’est pas obligatoire dans la phrase littérale,
• L’ordre des repères peut être quelconque dans un programme et ne modifie pas
l’ordre de scrutation,
• Dans une même entité de programme (tâche, sous-programme, étape...), un
repère d’étiquette ne peut être utilisé qu’une seule fois.
• Le branchement vers une étiquette se fait par l’instruction JUMP suivie du repère
d’étiquette (exemple : JUMP L18),
• Dans une même entité de programme, le branchement peut indifféremment
s’effectuer vers une étiquette amont ou aval.
Exemples :
! L122 : IF I2,3
THEN JUMP L18
! L17 : W2 + W5 → W12
! L18 : SET B15
2/5
2.5
Phrase action
La phrase action permet d’agir sur des bits, des mots, des blocs fonctions ou le
programme de l’automate. Elle est utilisée dans la phrase conditionnelle, dans la
phrase itérative ou seule.
! Phrase action
! IF... THEN...
Phrase action
! WHILE...DO...
Phrase action
ELSE...
Phrase action
Structure
La phrase action est constituée d’une action ou d’une suite d’actions séparées par
des points virgules.
Action
Action
;
Action
;
Action
;
Action
;
→
Objet bit
B1 + I4,8 → O1,7
→
Objet mot
W5 * W10 → W14
Types d’actions
D
. Affection de bit
Expression booléenne
. Affection de mot
Expression arithmétique
. Action sur bit
SET O12,5
. Action sur mot
DEC DW32
. Action sur programme
CALL SR4
. Actions diverses
READBIT (I4,8;B112)
. Action sur tableau
CW10[30] → W100[30]
. Action sur bloc fonction
START T12
Règles
• Le nombre d’actions d’une phrase action n’est limité que par le nombre de
caractères admis dans la phrase littérale (512),
• Les actions sont exécutées dans l’ordre de leur écriture.
Exemples :
! L27 : SET B2; W3 + 4 → W7; PRESET C2; B3.I4,3 → O2,6
2/6
Les phrases du langage littéral
2.6
2
Phrase conditionnelle
La phrase conditionnelle permet d’exécuter ou non des actions en fonction du
résultat d’une expression booléenne (voir chapitre 3).
Structure
Il existe deux structures de phrase conditionnelle :
! IF
Expression booléenne
THEN Phrase Action
! IF
Expression booléenne
THEN Phrase action
ELSE
alors actions
sinon actions
! Si condition vérifiée
Phrase action
Règle
• Dans les phrases conditionnelles, la complexité de l’expression booléenne à la
suite du IF et le nombre d’actions à la suite du THEN et du ELSE ne sont limités
que par le nombre de caractères admis dans la phrase littérale.
Exemples :
! IF I2,4 . B15
THEN SET O4,3
! IF B12
THEN SET O5,2; INC W18
ELSE I3,4 → O4,7
Si l’entrée I2,4 et le Bit B15 sont à 1,
alors la sortie O4,3 est mise à 1.
Si le bit B12 est à 1, alors la sortie O5,2
est mise à 1 et le mot W18 est
incrémenté, sinon (bit B12 à 0) l’image de
I3,4 est transférée dans O4,7.
2/7
D
2.7
Phrase itérative
La phrase itérative permet d’effectuer des actions tant que le résultat d’une expression booléenne est vérifiée.
Structure
La phrase itérative débute par le mot WHILE (tant que) suivi d’une expression
booléenne, puis du mot DO (faire) qui précède la phrase action.
! WHILE
Expression booléenne
! Tant que condition vérifiée
DO
Phrase action
faire actions
Traitement
While
Expression
Booléenne
0 non vérifié
1 vérifié
D
Do
Exécution
des actions
Vers exécution
ligne suivante
Règle
• L’utilisation de cette phrase nécessite une attention particulière du fait qu’au sein
d’une tâche, tant que l’expression booléenne est vérifiée, seule la phrase itérative
à l’exception de toute autre est exécutée. Il est donc nécessaire de limiter la durée
d’exécution de cette phrase afin de ne pas dépasser la période définie lors de la
configuration de la dite tâche.
Exemple :
! WHILE B10 . [W5<8]
DO INC W5; W6 + 12 → W6
Tant que le bit 10 est à l’état 1 et que le
mot W5 est inférieur à 8, le mot W5 est
incrémenté et la valeur 12 est additionnée au mot W6. Quand W5 atteint la
valeur 8 ou que le bit B10 est à l’état 0,
les actions ne sont plus exécutées et la
ligne de programmation suivante est
alors exécutée.
! IF [W2 = 0]
Cet exemple permet de ranger dans le
THEN JUMP L18
mot W3 le rang du premier bit à 1 renELSE 0 → W3
contré dans le mot W2.
! WHILE NOT W2,0
DO SHR 1 (W2) → W2; INC W3
2/8
L'expression booléenne
L'expression booléenne
Sous chapitre
3
Chapitre 3
Page
3.1 Généralités
3/2
3.2 Structure
3/2
3.3 Adressage des objets bits
3/3
3.4 Test sur bit
3/4
3.5 Expression de front
3/5
3.6 Comparaison numérique
3/7
3.7 Inversion logique
3/9
3.8 ET/OU logique
3/10
3.9 Parenthèse
3/11
Ce chapitre se termine à la page
3/12
3/1
D
3.1
Généralités
L’expression booléenne est caractérisée par son résultat logique 0 ou 1.
Elle peut être utilisée :
Dans la phrase action
Expression booléenne
→
Objet bit
→ Signe d'affectation
Dans la phrase conditionnelle
! IF Expression booléenne
THEN Action
! IF Expression booléenne
THEN Action
ELSE Action
Dans la phrase itérative
! WHILE
Expression booléenne
DO
Action
D
3.2
Structure
Opérande booléen
L’expression booléenne se compose d’opérandes booléens et d’opérateurs.
Opérande booléen
Exemples : B8
RE(I4,5)
[W5 < 12]
(B1+I2,3)
L’opérande booléen peut être :
•
•
•
•
un objet bit (indexé ou non)
une expression de front
une comparaison numérique
une expression booléenne entre
parenthèse
Inversion logique
L’opérateur NOT effectue l’inversion logique de l’opérande booléen.
NOT
Opérande booléen
Exemple : NOT I13,9
3/2
L’instruction NOT porte sur l’ensemble des opérandes booléens
décrits ci-dessus.
3
L'expression booléenne
ET logique
L’opérateur • effectue le produit logique entre deux opérandes
Opérande 1
•
Opérande 2
Exemple : B12 . NOT B15
Les opérandes du ET logique
peuvent être :
• un opérande booléen,
• un opérande booléen inversé.
OU logique
L’opérateur + effectue la somme logique de deux opérandes.
Opérande 1
+ Opérande 2
Exemples : I2,1 + B4
B1 . B2 + B5
Les opérandes du OU logique peuvent être :
• un opérande booléen,
• un opérande booléen inversé,
• le résultat d’un ET logique.
Règles générales
• Dans sa forme la plus élémentaire, l’expression booléenne ne comporte qu’un
seul opérande : I4,5,
• Dans sa forme la plus générale, l’expression booléenne est composée des
différentes instructions et des différents opérandes décrits précédemment :
I4,7 . RE(I4,8) +[W14 * CW1 < 1250] + B12 . (I3,5 + O6,2),
• Le nombre d’instructions et d’opérandes d’une expression booléenne n’est limité
que par le nombre de caractères admis dans la phrase littérale la composant,
• Tous les objets bits décrits précédemment peuvent être utilisés dans l’expression
booléenne. Ces bits sont indexables.
Priorité d’exécution des instructions
Dans l’expression booléenne, la priorité d’exécution des différentes instructions
respecte l’ordre suivant :
ordre de priorité :
1
instructions
: NOT
3.3
2
•
3
+
Adressage des objets bits
Les caractéristiques et la signification détaillé des objets bits sont données dans
"Généralités" Intercalaire A chapitre 2.
3/3
D
3.4
Test sur bit
Test de l’état direct d’un bit :
Objet bit
Exemple de test :
I5,3
Etat du bit
Résultat du test
1
1
0
0
Exemples de phrases :
! IF I2,4
THEN....
ELSE......
Si I2,4 vaut 1 les actions situées à la suite du
THEN sont effectuées.
Si I2,4 vaut 0 les actions situées à la suite du
ELSE sont effectuées.
! B15 → O3,7
D
L’image du bit B15 (1 ou 0) est recopiée dans
l’état courant du bit 7 du module de sortie 3.
Test de l’état inverse d’un bit
Le test de l’état inverse d’un bit s’exprime par l’objet bit concerné, précédé de NOT
ou de N
NOT
ou
N
Objet bit
Exemple de test :
NI5,3
Etat du bit
Résultat du test
1
0
0
1
Nota : Les autres utilisations du NOT sont développées dans le chapitre 3.7.
Exemple de phrase :
! IF NOT B12
THEN
3/4
Les actions situées après le THEN ne sont
effectuées que si le bit B12 est à l'état 0.
3
L'expression booléenne
3.5
Expression de front
L’expression de front est un opérande booléen qui permet de détecter le Front Montant
(Rising Edge) ou le Front Descendant (Falling Edge) d’un bit.
Structure
Front montant
RE (Bit)
Les bits sur lesquels peuvent être testés les
front montants ou descendants sont :
Exemple : RE(I3,5)
Front descendant
• les bits internes
• les bits d’entrées
• les bits de sorties
B10,
I3,2,
O7,5.
FE (Bit)
Ces bits sont indexables.
Exemple : FE(B15)
Rappel sur les états d’un bit
Dans la mémoire bits de l’automate, les bits internes et d’entrées/sorties sont
représentés par trois états : courant, antérieur et forçage.
F
A
C
Etat de forçage
Etat antérieur
Etat courant
La mise à jour de ces bits se fait pour :
• les bits d’entrées; par le système lors de l’acquisition des entrées en début de
tâche,
• les bits de sorties et internes; par le programme lors de l’exécution des instructions
SET, RESET ou → .
Lors de la mise à jour d’un bit, l’image de l’état courant (correspondant à la mise à
jour précédente) est transférée dans l’état antérieur, l’état courant prenant l’état
actuel du bit.
Mise à jour par programme ou système
0 1 1 0 0 1 1
Etat courant
0 0 1 1 0 0 1
Etat antérieur
t
3/5
D
Remarques :
Lorsque les instructions SET, RESET et → sont dans une phrase conditionnelle ou
itérative, la mise à jour des bits affectés n’est assurée que si l’expression booléenne
de la phrase est :
• vérifiée lorsque ces instructions sont situées après THEN ou DO,
• non vérifiée lorsque ces instructions sont situées après ELSE.
Le résultat du test du front montant (ou descendant) d’une entrée est à 1 :
• à partir de la détection par le système du passage de 0 à 1 (ou 1 à 0) du bit
concerné,
• jusqu’à la nouvelle exécution de l’instruction de ce bit, séparé par une mise à jour
de celui-ci;
Front sur une entrée
• Front montant : le résultat logique d’un test de front montant est égal à 1 quand
l’état courant vaut 1 et que l’état antérieur vaut 0,
Exemple : ! IF RE(I3,4) THEN.......
D
Etat réel de l'entrée I2,1
1
0
Acquisition par le système
Etat courant
1
0
Etat antérieur
1
0
Valeur du front montant
1
0
t
• Front descendant : le résultat logique d’un test de front descendant est égal à 1
quand l’état courant vaut 0 et que l’état antérieur vaut 1,
Exemple : ! FE(B1(W35)) → O3,2
Ecriture ou forçage de bit par le terminal
• Lors du forçage à 1 ou 0 du bit à partir du terminal, l’état forçage est mis à 1, l’état
courant prend la valeur du forçage demandé (0 ou 1) et l’état antérieur est figé.
Ces états n’évoluent plus jusqu’à ce que :
- le forçage soit supprimé et le bit concerné mis à jour,
- le forçage inverse soit demandé, seul l’état courant est modifié.
• La mise à 1 (SET) ou à 0 (RESET) d’un bit par le terminal provoque la mise à jour
des états courants et antérieur de ce bit (cette mise à jour est assurée avant
l’acquisition des entrées dans la tâche maître).
3/6
L'expression booléenne
3.6
3
Comparaison numérique
Cette instruction permet de comparer deux termes numériques. Elle constitue un
opérande booléen utilisable dans une expression booléenne.
Structure
La comparaison numérique est composée de 2 termes numériques à comparer et
d’une instruction de comparaison saisis entre crochets.
[ Opérande numérique
>
Opérande numérique
]
→ Instruction de comparaison
Exemple : [W12 > 180]
[ Expression arithmétique
>
Opérande numérique
]
→ Instruction de comparaison
Exemple : [W12 * W11 < 10]
• Opérande numérique
L’opérande numérique peut être :
D
- un objet mot simple ou double longueur, indexé ou non,
- une valeur immédiate.
• Expression arithmétique
L’expression arithmétique permet d’effectuer une suite d’opérations numériques
portant sur plusieurs opérandes numériques (voir chapitre 4).
Instructions de comparaison
Les différentes instructions de comparaison possibles sont les suivantes :
> : Test si premier terme supérieur au deuxième terme,
>= : Test si premier terme supérieur ou égal au deuxième terme,
< : Test si premier terme inférieur au deuxième terme,
<= : Test si premier terme inférieur ou égal au deuxième terme,
= : Test si premier terme égal au deuxième terme,
<> : Test si premier terme différent du deuxième terme.
3/7
Règles
• Les deux termes de la comparaison sont considérés comme des valeurs
algébriques,
• Les deux termes de la comparaison peuvent être exprimés dans la même
longueur ou dans des longueurs différentes 1,
• Le résultat de l’expression arithmétique pouvant être erroné à la suite d’un débordement, le résultat de la comparaison peut s’avérer incorrect. La gestion et le
test du bit système de débordement permettent de résoudre ce problème (voir
"COMMUNS LANGAGES A CONTACTS ET LITTERAL" intercalaire E chapitre 2.5).
• Les objets mots utilisés dans les deux termes sont indexables.
Exemples :
D
! IF [W5 > 25] THEN....
Si W5 est plus grand que 25 alors...
! WHILE [(W6+W12) * 3 = W9] DO....
Tant que le résultat de l’expression
arithmétique est égal au contenu
de W9 effectuer...
! [DW9 - DW15 <> CDW0] → O4,3
Si le résultat de l’opération DW9DW15 est différent du contenu de
CDW0, la sortie O4,3 est à l’état 1.
! IF [W9(W5) <= T2,V] THEN....
ELSE....
Si W9(W5) est égal ou inférieur à la
valeur courante du temporisateur
T2 alors... sinon...
Si le contenu de W5 est égal à 6,
W9(W5) représente le mot W15.
1
3/8
DWi > Wj : si le contenu du double mot n'appartient pas au domaine de définition des simples
mots (-32768 à +32767), il y a débordement lors de cette comparaison (SY18 = 1).
L'expression booléenne
3.7
3
Inversion logique
L’inversion logique permet de tester l’état inverse d’un opérande booléen.
Structure
L’inversion logique d’un opérande est obtenue en le faisant précéder de l’opérande
NOT
NOT
Objet bit
NOT B6
NOT
Expression de front
NOT RE (I2,4)
NOT
Comparaison numérique
NOT [W12 * 8 < W2]
NOT
Expression booléenne
NOT (B2 • I3,6 + I7,2)
Règles
• L’inversion logique n’affecte qu’un seul opérande booléen,
• Le nombre d’opérateurs NOT n’est pas limité dans une même expression
booléenne,
• L’indexation des objets des opérandes précédés de l’opérateur NOT est possible.
Exemples :
! NOT I4,3 → B5
Le bit B5 prend l’état inverse de celui
de l’entrée I4,3,
! IF NOT I5,4.B5 THEN...
Si l’entrée I5,4 est à l’état 0 et si le
bit B5 est à l’état 1 alors...
! IF NOT (I2,6.B2) THEN...
Si l’entrée I2,6 ou le bit B2 est à l’état
0 alors...
! IF NOT(B12.NOT[W2>6])+NOT B8 THEN... Utilisation de plusieurs opérateurs
ELSE
NOT dans une même expression.
3/9
D
3.8
ET/OU logique
Structure
Opérande 1
D
•
Opérande 2
Opérande 1
+
Opérande 2
→ Opérateur ET logique
→ Opérateur OU logique
Le résultat du ET logique de deux opérandes booléens n’est égal à 1 que si
ces 2 opérandes sont à l'état 1.
Le résultat du OU logique de deux opérandes booléens est égal à 1 si au moins
l'un des 2 opérandes est à l'état 1.
Opérations
Opérateur
Opérandes 1 et 2
ET logique
OU logique
•
+
•
•
•
•
•
Exemples
B8 . I1,2
RE(I12,9) . B23
I2,5 . [W12<20]
(B5+B6) . (B12+I4,2)
objet bit (ET/OU)
expression de front (ET/OU)
comparaison numérique (ET/OU)
expression booléenne (OU)
expression booléenne entre parenthèse
(ET)
• résultat d’un ET logique (OU)
B1 + I4,5
FE(I3,6) + B7
I3,4 + [W7>=9]
(B4+B5.B12) + I7,4
B7 . I3,2 + B18
Règles
• le nombre de ET/OU logiques à l’intérieur d’une expression booléenne n’est pas
limité,
• l’opérateur NOT peut précéder les opérandes,
• l’indexation est possible sur les objets des opérandes.
Traitement
Dans une même expression booléenne comprenant plusieurs opérateurs logiques,
le traitement est réalisé suivant l’ordre indiqué ci-dessous.
B1 . B2 . B3
1
2
B1 . (I2,3 + B4) . (B6 + B7)
1
3
2
4
B1 + B2 +
1
2
B1 + (B2 . I3,2) + (B7 . B9)
1
3
2
4
3/10
B3
ET logique
OU logique
3
L'expression booléenne
3.9
Parenthèse
Les parenthèses facilitent l’écriture d’expressions booléennes complexes.
Elles permettent de considérer une expression booléenne comme le résultat
booléen (1 ou 0) d’une expression booléenne de niveau supérieur (le niveau 0 est
considéré comme le niveau le plus élevé).
Structure
( ( ( ( a + b ) . NOT c ) + ( ( d . NOT ( e + f ) ) + g ) ) + ....
Exp.
bool.
Niv. 4
Exp. booléenne
Niv. 3
Niv. 2
Niv. 1
Niv. 0
....
Les opérandes a, b, c, d, e, f, g peuvent être :
D
• un objet bit,
• une expression de front,
• une comparaison numérique
Exemple : (I2,4 + [W5>2].(B1 + RE(I2,6)))
Règles
• Toute ouverture de parenthèse nécessite une fermeture,
• Une fermeture de parenthèse se rapporte à l’ouverture précédente non fermée,
• Le nombre de parenthèses dans une expression booléenne n’est pas limité,
• Chaque parenthèse située à l’intérieur d’autres parenthèses apporte un niveau
de traitement supplémentaire,
• Le nombre de niveaux de parenthèses dans une expression booléenne n’est pas
limité,
• Un NOT devant une parenthèse inverse le résultat de l’expression booléenne
entre parenthèses.
Traitement
Dans une expression booléenne comprenant plusieurs niveaux de parenthèses le
traitement est réalisé suivant l’ordre de numérotation indiqué ci-dessous :
( ( (B1 + B2) . I3,2) + ( (B6 . NOT (I4,6 + I2,1) ) + I3,2) )...
1
3
2
4
5
6
7
8
3/11
Exemples :
! IF B15 + (I3,2 . (I3,5 + I3,7)) THEN...
niv.2
niv.1
niv.0
Le résultat de l’expression ( niveau
0) est obtenu par le traitement suivant :
• Résultat niv.2 = I3,5+I3,7
• Résultat niv.1 = niv.2.I3,2
• Résultat niv.0 = niv.1+B15
! IF NOT ([W5>2] . B6 + I3,2) THEN...
L’opérateur NOT devant la
parenthèse inverse le résultat
logique de l’expression booléenne
entre parenthèses.
D
3/12
L'expression arithmétique
L'expression arithmétique
Sous chapitre
4.1 Généralités
4.1-1 Utilisation dans la phrase action
4.1-2 Utilisation dans l’expression booléenne
4
Chapitre 4
Page
4/2
4/2
4/2
4.2 Adressage des objets mots
4/3
4.3 Structure
4/3
4.3-1
4.3-2
4.3-3
4.3-4
4.3-5
4.3-6
4/3
4/3
4/4
4/4
4/5
4/5
Opérandes numériques
Opérations à un seul opérande
Opérations arithmétiques
Opérations logiques
Règles générales
Priorité d’exécution des instructions
4.4 Parenthèses
4/6
Ce chapitre se termine à la page
4/8
4/1
D
4.1
Généralités
L’expression arithmétique permet d’effectuer une suite d’opérations numériques
portant sur plusieurs opérandes numériques.
4.1-1 Utilisation dans la phrase action
Transfert dans un objet mot :
Le résultat numérique des opérations effectuées dans l’expression arithmétique est
transféré dans un objet mot.
Expression arithmétique
→
Objet mot
→ Instruction de transfert
Exemples : W8 * (W12 + 7) → W6(W125)
W9 * DW5 - 6 / 3 → DW15
Transfert dans un tableau de mots :
D
Le résultat numérique des opérations effectuées dans l’expression arithmétique est
transféré dans les mots du tableau.
Expression arithmétique
→
Tableau de mots
→ Instruction de transfert
Exemple : W426 + W8 AND H’00FF’ → W250[13]
Il est également possible d’effectuer d’autres opérations numériques entre tableaux
de mots. Ces opérations sont explicitées dans "COMMUNS LANGAGES A
CONTACTS ET LITTERAL" intercalaire E, chapitre 3.
4.1-2 Utilisation dans l’expression booléenne
L’expression booléenne permet d’effectuer des comparaisons numériques.
Celles-ci peuvent faire appel à l’expression arithmétique quand il est nécessaire
d’effectuer un traitement numérique avant la comparaison.
[ Expression arithmétique
> Opérande numérique
]
→ Instruction de comparaison
Exemple : ! IF [DW8 + CW12 - 150 < CDW4] . I12,3 THEN....
expression booléenne
expression arithmétique
4/2
L'expression arithmétique
4.2
4
Adressage des objet mots
Les caractéristiques et la signification détaillée des objets mots sont données dans
"Généralités" intercalaire A, chapitre 2.
4.3
Structure
L’expression arithmétique est composée d’un ou plusieurs opérandes numériques
et d’opérateurs arithmétiques et logiques.
4.3-1 Opérandes numériques
L’opérande numérique représente une valeur qui peut s’exprimer sur 16 bits (simple
longueur) ou 32 bits (double longueur).
Opérande numérique
Exemples : W237
CDW6(W4)
B’4952'
(W6 * CW7 + 150)
L’opérande numérique peut être :
• un objet mot simple ou double
longueur (indexé ou non),
• une valeur immédiate,
• une expression arithmétique
entre parenthèses.
4.3-2 Opérations à un seul opérande
Opérateur
( Opérande )
Opérations
Opérateurs
Opérandes
décalage logique
décalages circulaires
Transcodages
SHL i - SHR i
SLC i - SRC i
• objets mots simple longueur (indexé ou
non)
• expression arithmétique simple longueur
DTB - BTD
BTA - GTB
SQRT
extraction de racine
carré
complément logique CPL
Exemples : SHL 8 (W18)
DTB (W15 AND H’00FF’)
SQRT (DW56)
L’utilisation de ces opérations est développée dans "COMMUNS LANGAGES A
CONTACTS ET LITTERAL" intercalaire E chapitre 2.
4/3
D
4.3-3 Opérations arithmétiques
Opérande 1
Opérateur
Opérande 2
Opérations
Opérateurs
Opérandes 1 et 2
addition
soustraction
multiplication
division
reste
+
*
/
REM
• objets mots simple longueur (indexé ou
non)
• valeur immédiate
• expression arithmétique simple longueur
entre parenthèses
• résultat d’une opération à un opérande
• résultat d’une opération arithmétique
Exemples : W15 + DW12
(W27 - 15) * SQRT (W9)
L’utilisation de ces opérations est développée dans "COMMUNS LANGAGES A
CONTACTS ET LITTERAL" intercalaire E chapitre 2.
D
4.3-4 Opérations logiques
Opérande 1
Opérateur
Opérande 2
Opérations
Opérateurs
Opérandes
ET logique
OU logique
OU exclusif
AND
OR
XOR
• objets mots simple longueur (indexé ou
non)
• valeur immédiate
• expression arithmétique simple longueur
entre parenthèses
• résultat d’une instruction à un opérande
• résultat d’une opération arithmétique
logique
Exemples : SHR 3 (W2) AND H’3000'
H’FF00' OR W3 * 5
L’utilisation de ces opérations est développée dans "COMMUNS LANGAGES A
CONTACTS ET LITTERAL" intercalaire E chapitre 2.
4/4
4
L'expression arithmétique
4.3-5 Règles générales
• Dans sa forme la plus élémentaire, l’expression arithmétique ne comporte qu’un
seul opérande numérique. Exemple : W8
• Dans sa forme la plus générale, l’expression arithmétique est composée des
différents opérateurs et des différents opérandes décrits précédemment.
Exemple : W25 * 3 - DTB (W10) + SLC8 (W15 + W18) AND H’FF’
• Le nombre d’opérateurs et d’opérandes d’une expression arithmétique n’est
limité que par le nombre de caractères admis dans la phrase littérale (512
maximum) qui inclut l’expression arithmétique.
• L’ensemble des opérateurs porte sur des opérandes simple longueur dont le
contenu peut varier de -32 768 à 32 767.
Les opérateurs arithmétiques (addition, soustraction, multiplication, division,
reste, extraction de racine carrée) portent également sur des opérandes double
longueur. Le contenu d'un opérande double longueur peut varier de -2 147 483 648
à 2 147 483 647.
• Les opérandes d’une même expression arithmétique peuvent être indifférement
en simple ou double longueur :
W6 * W15 + SQRT(DW6) / (W149(W8) + CDW29) AND H’FF’
• Un opérande ou une opération à un seul opérande peut être précédé du signe +
ou - (par défaut, signe +)
DTB (W5) * - W9
• Tous les objets mots peuvent être utilisés à l’intérieur d’une expression arithmétique. L’indexation de certains mots est possible.
4.3-6 Priorité d’exécution des instructions
Dans l’expression arithmétique, la priorité des différentes instructions est respectée.
L’exécution s’effectue dans l’ordre décrit ci-après :
1
→
instruction à
un opérande
2
*
/
REM
→
3
+
→
4
AND
→
5
OR
→
6
XOR
Dans l’exemple ci-dessous l’exécution est réalisée suivant l’ordre de la numérotation :
SQRT (W3) + W5 * 7 AND W8 XOR W5 OR W10
1
2
3
4
5
6
4/5
D
4.4
Parenthèses
Les parenthèses facilitent l’écriture d’expression arithmétiques complexes. Elles
permettent de considérer une expression arithmétique comme opérande d’une
expression arithmétique de niveau supérieur. Le niveau 0 est considéré comme le
niveau le plus élevé.
Structure
( ( ( ( a + b ) * c ) - d ) + ( e / ( f AND g ) ) ) * SQRT ( h * i ) ....
Niv. 4
Niv. 3
Niv. 3
Niv. 2
Niv. 2
Niv. 1
Niv. 2
Niv. 1
Niv. 0
D
....
Les opérandes a, b, c, d, e, f, et g peuvent être :
• un objet mot,
• une valeur immédiate,
• une instruction à un seul opérande.
Règles
• Toute ouverture de parenthèse nécessite une fermeture,
• Une fermeture de parenthèse se rapporte à l’ouverture précédente non fermée,
• Le nombre de parenthèses dans une expression arithmétique n’est pas limité,
• Chaque parenthèse située à l’intérieur d’autres parenthèses apporte un niveau
de traitement supplémentaire,
• Le nombre de niveaux de parenthèses dans une expression arithmétique n’est
pas limité,
• Une instruction à un opérande peut précéder une expression entre parenthèses,
elle agit sur le résultat de cette expression SLC 3 (W7 * W5),
• Le résultat d’une expression entre parenthèses est de longueur identique à
l’opérande le plus long qui la compose.
Dans une expression arithmétique comportant des parenthèses, le traitement est
réalisé dans l’ordre de numérotation indiqué ci-dessous.
((W5 AND W6) + W7) * W8
1
2
3
4/6
SHL 3 ((W9-W15)*W6)
1
2
3
L'expression arithmétique
4
Exemples :
(W5 + (W6 * (W7 - W2))
niv.2
niv.1
niv.0
SQRT(W5 * DW2 / (W8 + DW12)) → DW6
Le résultat de l’expression (niveau
0) est obtenu par le traitement suivant :
• Résultat niv.2 = W7-W2
• Résultat niv.1 = W6*niv.2
• Résultat niv.0 = W5+niv.1
Le calcul de la racine carrée porte
sur l’expression arithmétique entre
parenthèses.
D
4/7
D
4/8
Actions
Actions
Sous chapitre
5.1 Utilisation
5.1-1 Généralités
5.1-2 Types d’actions
5.2 Actions sur bits
5.2-1 Affectation d’un bit
5.2-2 Mise à 1 ou 0 d’un bit
5.3 Actions sur chaîne d’octets
5.3-1 Décalage circulaire à gauche
5.4 Actions sur programme
5.4-1
5.4-2
5.4-3
5.4-4
Appel d’un sous-programme
Retour de sous-programme
Saut dans le programme
Arrêt du programme
5.5 Actions sur interruptions
5.5-1 Génération d’une interruption
5.6 Actions explicites
5.6-1 Lecture immédiate de la zone message
5.6-2 Ecriture immédiate de la zone message
5
Chapitre 5
Page
5/2
5/2
5/2
5/4
5/4
5/5
5/5
5/5
5/6
5/6
5/6
5/7
5/7
5/8
5/8
5/9
5/9
5/9
5.7 Lecture d’un télégramme
5/10
Ce chapitre se termine à la page
5/10
5/1
D
5.1
Utilisation
5.1-1 Généralités
Une action permet d’agir sur des objets bits ou mots, sur des blocs fonctions, sur
des tableaux ou sur le programme.
La phrase action est constituée d’une action ou d’une suite d’actions séparées entre
elles par des points virgules (;). Elle peut être utilisée dans une phrase conditionnelle, une phrase itérative ou seule.
Les différents types d’actions peuvent être intégrés dans une même phrase.
! IF
D
Expression Booléenne
! WHILE
Expression booléenne
!
Action
;
Action
THEN
Action ;
ELSE
Action ;....
DO
;
Action
;....
Action ;
Action
;....
Action ;
Action
;
5.1-2 Types d’actions
Actions spécifiques au langage littéral
Désignation
Instructions
Types d’actions
Utilisation
Actions sur bits
→ Bit
SET
RESET
Affectation
Mise à 1
Mise à 0
Voir chapitre 5.2
Actions sur
chaîne d’octets
SLCWORD
Décalage circulaire
Voir chapitre 5.3
Actions sur
programme
JUMP
CALL
RET
HALT (*)
Saut
Appel sous-programme
Retour sous-programme
Arrêt du programme
Voir chapitre 5.4
Actions sur
interruptions
SETIT (*)
Génération d’une interruption
Voir chapitre 5.5
5/2
(*)
5
Actions
Désignation
Actions
explicites
Instructions
READEXT
(*)
WRITEEXT (*)
Actions sur
blocs
fonctions
PRESET, SET,
RESET
START
STOP
PUT, UP
DOWN, GET
READTLG (*)
Types d’actions
Utilisation
Echange explicite zone
message
Echange explicite zone
message
Voir chapitre 5.6
Initialisation
Voir chapitre 6
Voir chapitre 5.6
Démarrage
Arrêt ou initialisation
Autres
Lecture télégramme
Voir chapitre 6.7
Nota : les actions qui ne sont pas suivies de (*) sont également utilisables en langage à contacts mais leur écriture étant différentes, se reporter à "LANGAGE A CONTACTS"
intercalaire C.
Actions communes aux langages littéral et à contacts
D
Ces actions sont développées dans "COMMUNS LANGAGES A CONTACTS ET
LITTERAL" intercalaire E
Désignation
Instructions
Types d’actions
Utilisation
Actions sur
chaîne de bits
→ Bit [i]
Transfert
Mise à 1
Mise à 0
Voir "COMMUNS
LANGAGES" intercalaire E chapitre 1
Actions sur mots
→ Mot
INC
DEC
Affectation
Incrémentation
Décrémentation
Voir "COMMUNS
LANGAGES" intercalaire E chapitre 2
Actions de
Transcodage
ASCII
BTA
ATB
Binaire → ASCII
ASCII → Binaire
Actions sur
→ Mot [i]
tableaux de mots +,-,*,/,REM
AND, OR, XOR
SEARCH
EQUAL
Actions sur
programme
MASKINT
DEMASKINT
READINT
ACKINT
Transfert
Voir "COMMUNS
Opérations arithmétiques LANGAGES" intercalaire E chapitre 3
Opérations logiques
Recherches
Comparaison
Masquage interruption
Démasquage interruption
Test interruption
Acquitt. interruption
Voir "COMMUNS
LANGAGES" intercalaire E chapitre 4
5/3
Désignation
Instructions
Types d’actions
Utilisation
Actions explicites
READBIT
Echange explicite bit
entrée TOR
Echange explicite bit
sortie TOR
Echange explicite registres d’entrée
Echange explicite registre de sortie
Voir "COMMUNS
LANGAGES" intercalaire E chapitre 5
Exécution d’un OFB
Voir "COMMUNS
LANGAGES" intercalaire E chapitre 6
WRITEBIT
READREG
WRITEREG
Actions sur
bloc fonctions
5.2
D
EXEC
Actions sur bits
5.2-1 Affectation d’un bit
L’instruction d’affectation représentée par → attribue à l’objet bit associé le résultat
d’une expression booléenne (1 ou 0).
Expression booléenne
→
Objet bit
Le résultat d’une expression booléenne peut être transféré dans plusieurs objets
bits par affectations successives.
Expression booléenne
... → B8
... → O4,2
... → X78
... → W7,2
→
Objet bit
→
Objet bit
L’instruction d’affectation agit sur
l’ensemble des bits pouvant être
écrits.
Les principaux bits sont :
• les bits internes,
• les bits de sorties,
• les bits systèmes (sans signification pour certains),
• les bits étapes (uniquement dans
le traitement préliminaire),
• les bits extraits de mots internes,
de mots constants ou de mots
registres.
Exemple : phrase action comprenant plusieurs affectation :
! I3,2 → O4,5 ; [W5 > 6] . (B1 + B14) → B7 → W15,2
5/4
→
5
Actions
5.2-2 Mise à 1 ou 0 d’un bit
L’instruction SET permet de positionner un objet bit à l'état 1
SET
L’instruction RESET permet de positionner un objet bit à l'état 0
Objet bit
RESET
! IF B6 THEN SET O3,2; SET B9
Objet bit
! IF [W5 > 8] THEN RESET B15
ELSE RESET O7,8
Le bit reste dans l’état tant que l’instruction inverse n’est pas exécutée.
5.3
Actions sur chaîne d’octets
5.3-1 Décalage circulaire à gauche
L’instruction SLCWORD permet d’effectuer un décalage circulaire de 1 octet vers
la gauche sur une zone de longueur Lg_octets, débutant à l’adresse Source.
SLCWORD (Source;Lg_octets)
D
Opérandes
• le nombre d’octets (Lg_octets) est contenu dans un mot interne,
• l’adresse Source est définie par un mot interne.
Exemple :
SLCWORD(W1;W100)
avec W100 = 5
SLCWORD
W1
01
00
•
W2
03
02
•
W3
FF
04
•
▲
pf
▲
PF
•
•
▼
PF
pf
W1
02
01
W2
04
03
W3
FF
00
5/5
5.4
Actions sur programme
5.4-1 Appel d’un sous-programme
L’instruction CALL (appel) permet d’appeler un sous-programme.
CALL
Sous-programme SRi
SRi représente le sous-programme appelé : i (repère de 0 à 127).
Règles
• Le retour d’un sous-programme se fait sur l’action suivant immédiatement
l’instruction CALL. Dans le cas où l’instruction CALL est la dernière action d’une
phrase, le retour s’effectue au début de la phrase suivante,
• Un sous-programme peut appeler un autre sous-programme; le nombre d’appels
en cascade est limité à 8,
• Les sous-programmes sont affectés à une tâche, ils ne peuvent être appelés qu’à
partir de la même tâche,
• Le nombre de sous-programme affecté à une tâche doit être déclaré lors du mode
configuration (voir Manuel "Modes Opératoires").
D
Principe
Call SR10
SR10
SR12
Call SR12
Call SR10
RET
RET
5.4-2 Retour de sous-programme
L’instruction RET (retour) est réservée aux sous-programmes et permet le retour
vers le module appelant.
Règle d’utilisation
• L’instruction RET est implicite à la fin de chaque sous-programme, mais peut être
utilisée pour un retour vers le module appelant avant la fin du sous-programme.
Exemple : <
!
!
!
5/6
SOUS PROGRAMME SR12
IF W5>3 THEN 0 → W5;RET
(W4 * CDW3) + W49 → DW26
RET
Actions
5
5.4-3 Saut dans le programme
L’instruction JUMP (saut) permet un branchement à une ligne de programmation
repérée par une étiquette.
JUMP Etiquette Li
Li représente l’étiquette de la ligne sur laquelle est effectuée le branchement (i repère
de 1 à 999 avec 256 étiquettes maximum).
Règles
• Un saut de programme se fait à l’intérieur d’une même entité de programmation
(module principal d’une tâche MAIN, sous-programme SR, traitement préliminaire PRL...),
• Un saut de programme se fait vers une ligne de programmation située en aval ou
en amont.
Dans le cas de saut amont, il faut faire attention au temps d’exécution du
programme :
le temps d’exécution du programme est alors allongé et peut entraîné un
dépassement de la période de la tâche incluant le saut amont,
• L’action de saut est immédiate; en conséquence, il est conseillé d’écrire,
l’instruction JUMP en fin de phrase littérale,
• L’instruction JUMP ne peut être employée dans un programme que si l’étiquette
appelée à été préalablement déclarée.
5.4-4 Arrêt du programme
L’instruction HALT dans un programme application permet l’arrêt de son exécution,
ce qui a pour effet de figer les objets variables de ce programme.
Pour être à nouveau exécuté, un programme ainsi arrêté, devra être initialisé (par
la commande INIT). Les instructions qui suivent l’instruction HALT ne seront donc
pas exécutées.
5/7
D
5.5
Actions sur interruptions
5.5-1 Génération d’une interruption
L’instruction SETIT permet de générer une interruption vers un module intelligent.
SETIT (Module)
Opérande
• le module est spécifié par Ixy avec :
- x : numéro du bac,
- y : emplacement du module dans le bac.
Exemple : SETIT (I3)
D
5/8
Actions
5.6
5
Actions explicites
5.6-1 Lecture immédiate de la zone message
L’instruction READEXT permet la lecture immédiate de n_mots de la zone message de la mémoire partagée d’un Module, et le transfert de leur contenu dans un
tableau de n mots débutant à l’adresse Destination.
READEXT (Module;Destination;n_mots)
Opérandes
• le module est spécifié par Ixy avec :
- x : numéro du bac,
- y : emplacement du module dans le bac,
• l’adresse Destination est définie par un mot interne,
• le nombre de mots (n_mots) est contenu dans un mot interne.
Exemple : READEXT (I3;W50;W1)
D
5.6-2 Ecriture immédiate de la zone message
L’instruction WRITEEXT permet l’écriture immédiate de n_mots de la zone message de la mémoire partagée d’un Module, à partir d’un tableau de n mots débutant
à l’adresse Source.
WRITEEXT (Source;Module;n_mots)
Opérandes
• l’adresse Source est définie par un mot interne,
• le module est spécifié par Ixy avec :
- x : numéro du bac,
- y : emplacement du module dans le bac,
• le nombre de mots (n_mots) est contenu dans un mot interne.
Exemple : WRITEEXT (W20;I17;W1)
5/9
5.7
Lecture d’un télégramme
L’instruction READTLG permet de lire un télégramme. Ceci revient à lire une zone
message de taille fixe d’un coupleur réseau et à recopier son contenu dans le buffer
de réception d’un bloc fonction texte TLG, initialisé en réception.
READTLG (Module;Compte-rendu)
Opérandes
D
• le module est spécifié par son adresse Ixy, avec :
- x : numéro du bac,
- y : emplacement du module dans le bac,
• le compte-rendu est contenu dans un mot interne :
0 réception du télégramme réussie
4 télégramme trop long pour le buffer de réception du bloc TLG
5 adresse destinataire erronée
6 coupleur de réception en défaut
7 système de communication instable (en reconfiguration, ...)
8 télégramme déjà en cours de réception
9 pas de télégramme en attente
10 coupleur absent
11 coupleur présent mais non configuré
12 réception d’un télégramme refusé
13 pas de ressource en attente du télégramme (bloc TLG initialisé en réception)
14 télégramme reçu avec un mauvais BCC
15 problème d’accès à la file d’attente de réception des télégrammes
Exemple : READTLG (I12;W10)
5/10
Fonctions d'automatismes
6
A
Fonctions d'automatismes
Sous chapitre
Chapitre 6
Page
6.1 Fonction temporisateur
6/2
6.2 Fonction monostable
6/6
6.3 Fonction compteur
6/8
6.4 Fonction registre
6/10
6.5 Fonction contrôle
6/13
6.6 Fonction texte
6/15
Ce chapitre se termine à la page
6/18
6/1
B
C
D
6.1
Fonction temporisateur
La fonction "Temporisateur" permet de commander avec retard des actions
spécifiques.
La valeur de ce retard est programmable et peut être modifiable ou non en mode
REGLAGE ou DONNEES.
Cette fonction comporte :
• un numéro de fonction
• une base de temps
• une valeur courante
• une valeur de présélection
• une instruction "Préselection"
• une instruction "Lancement"
• une instruction "Arrêt"
• un bit de sortie "Temporisateur en cours"
• un bit de sortie "Temporisateur écoulé"
Ti
TB
Ti,V
Ti,P
PRESET Ti
START Ti
STOP Ti
Ti,R
Ti,D
Fonctionnement
D
La valeur courante est égale à la valeur de présélection tant que l’instruction
PRESET Ti est exécutée,
La fonction temporisateur évolue dès l’exécution de l’instruction START Ti et si les
instructions PRESET Ti et STOP Ti ne sont pas exécutées :
• la valeur courante Ti,V décroît de la présélection Ti,P vers 0, d’une unité à chaque
impulsion de la base de temps TB,
• le bit de sortie Ti,R (temporisateur en cours) est alors à l’état 1, le bit de sortie Ti,D
(temporisateur écoulé) est à l’état 0,
• lorsque la valeur courante Ti,V = 0, le bit de sortie Ti,D passe à l’état 1 et le bit
de sortie Ti,R repasse à l’état 0.
L’exécution de l’instruction STOP Ti permet de :
• geler l’évolution de la valeur courante si celle-ci évolue,
• forcer à l’état 0 les bits de sortie Ti,R et Ti,D; ces bits reprenant leur état lorsque
l’instruction STOP n’est plus exécutée.
PRESET Ti
Ti,V = Ti,P
Ti,R = 0
Ti,D = 0
STOP Ti
Ti,V gelée
Ti,R = 0
Ti,D = 0
START Ti
Ti,V décroît de Ti,P → 0
Ti,R = 1 si temporisateur en cours
Ti,D = 1 si temporisateur écoulé
6/2
Fonctions d'automatismes
6
A
Caractéristiques
Numéro de la fonction
temporisateur
Ti
Ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 127 (limite du système)
Base de temps (*)
TB
1 mn, 1 s, 100 ms, 10 ms, (1 mn par défaut)
Valeur courante
Ti,V
Mot qui décroît de Ti,P vers 0 sur écoulement du
temporisateur. Peut être lu, testé, mais non écrit
Valeur de présélection
Ti,P
0 < Ti,P ≤ 9999. Mot qui peut être lu, testé, écrit. Il est
mis à la valeur 9999 par défaut
Modification MODIF
YES/NO
YES : possibilité de modification de la valeur de
présélection en mode REGLAGE ou DONNEES.
NO : accès à la valeur de présélection en mode
CONFIGURATION uniquement
B
Instruction Présélection PRESET
L’exécution de cette instruction réinitialise la fonction
temporisateur Ti,V = Ti,P
Instruction Arrêt
STOP
L’exécution de cette instruction gèle la valeur courante de Ti,V
Instruction Lancement
START
L’exécution de cette instruction provoque
l’écoulement du temporisateur si les instructions
PRESET et STOP ne sont pas exécutées
Sortie "Temporisateur
écoulé"
D(Done)
Le bit Ti,D = 1 si le temporisateur est écoulé (Ti,V=0)
et si l’instruction STOP n’est pas exécutée
Sortie "Temporisateur
en cours"
R(Running)
Le bit Ti,R = 1 si Ti,P > Ti,V > 0 et si l'instruction STOP
n’est pas exécutée
(*)
il n’est pas possible d’utiliser plus de 8 temporisateurs et/ou monostables avec une base de
temps de 10 ms.
6/3
C
D
Cas types
La fonction temporisateur peut être programmée de différentes manières afin de
réaliser les fonctionnements suivants :
Retard à l’enclenchement
! IF RE(I1,0)
THEN PRESET T0; START T0
! I1,0 . T0,D → O0,0
I1,0
Ti,R
PRESET
PRESET
Ti,D
O0,0
Retard au déclenchement
D
! IF FE(I1,1)
THEN PRESET T7; START T7
! I1,1 + T7,R → O0,1
I1,1
Ti,R
Ti,D
PRESET
O0,1
Retard cumulé à l’enclenchement
! IF FE(I0,2) . NOT T5,R
THEN PRESET T5
! IF I0,3
THEN START T5
ELSE STOP T5
! I0,3 . T5,D → O1,4
I0,2
I0,3
Ti,R
D1
O1,4=Ti,D
6/4
D2
D1+D2+D3 = PRESET
D3
Fonctions d'automatismes
6
A
Cas spécifiques
• Incidence d’une "reprise à froid" : (SY0 = 1) provoque le chargement de la
valeur de présélection (définie en mode CONFIGURATION) dans la valeur
courante et la mise à 0 du bit de sortie Ti,D; la valeur de présélection éventuellement
modifiée par le terminal (mode REGLAGE ou DONNEES) étant perdue.
• Incidence d’une "reprise à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur l’évolution du temporisateur.
B
• Incidence d’un passage en stop : le passage en stop de l’automate ou de la
tâche en cours ne fige pas la valeur courante. Il en est de même lorsque la tâche
en cours est désactivée par le fonction CTRLi ou lors de l’exécution d’un point
d’arrêt.
• Incidence d’un saut de programme : le fait de ne plus exécuter la phrase action
où est activée la fonction temporisateur ne fige pas la valeur courante Ti,V qui
continue à décroître vers 0.
De même les bits Ti,D et Ti,R conservent leur fonctionnement normal et peuvent
être testés dans une autre ligne de programme.
C
• Test des bits Ti,D et Ti,R : ces bits peuvent changer d’état en cours de cycle.
D
Exemples d’utilisation
Modification de présélection en fonction d’un événement extérieur :
! IF I1,9 . NOT T2,R
THEN W0 → T2,P
! IF NOT I1,9 . NOT T2,R
THEN CW21 → T2,P
Si T2,D=1 et I1,9=1 alors ranger le
contenu du mot interne W0 dans
T2,P.
Si T2,D=1 et I1,9=0 alors ranger le
contenu du mot constant CW21
dans T2,P.
! IF RE(I1,5)
THEN PRESET T2; START T2
Nota : la modification ne s'effectue que si le temporisateur n'est pas en cours (T2,R = 0).
Surveillance de la valeur courante d’un temporisateur
! IF [T2,V > 12]
THEN SET B15
Si T2,V > 12 s, alors mise à l'état 1
du bit interne B15.
6/5
6.2
Fonction monostable
La fonction "Monostable" permet d’élaborer une impulsion de durée précise.
Cette durée est programmable et peut être modifiable ou non en mode REGLAGE
ou DONNEES.
Cette fonction comporte :
• un numéro de fonction
• une base de temps
• une valeur courante
• une valeur de présélection
• une instruction "Lancement"
• un bit de sortie "Monostable en cours"
Mi
TB
Mi,V
Mi,P
START Mi
Mi,R
Fonctionnement
D
Dès l’exécution de l’instruction START Mi, la valeur courante Mi,V prend la valeur
de présélection Mi,P. Si l’instruction START n’est exécutée que sur un cycle la
valeur courante Mi,V décroît d’une unité à chaque impulsion de la base de temps
TB sinon Mi,V est figée.
Le bit de sortie Mi,R (Running) passe à l’état 1 dès que la valeur courante Mi,V est
différente de 0. Lorsque la valeur courante Mi,V = 0 le bit de sortie Mi,R repasse à
l’état 0.
Lancement START Mi
Valeur courante
Mi,V
Bit de sortie
Mi,R
PRESET
PRESET
PRESET
Caractéristiques
Numéro monostable
Mi
Ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 31
Base de temps (*)
TB
1 mn, 1 s, 100 ms, 10 ms, (1 mn par défaut)
Valeur courante
Mi,V
Mot qui décroît de Mi,P vers 0. Il peut être lu, testé,
mais non écrit
Valeur de présélection
Ti,P
0 < Mi,P ≤ 9999. Mot qui peut être lu, testé, écrit
Modification MODIF
YES/NO
YES : possibilité de modification de la valeur de
présélection en mode REGLAGE ou DONNEES.
NO : accès à la valeur de présélection en mode
CONFIGURATION uniquement
Instruction Lancement
START
Mi,V = Mi,P puis Mi,V décroît vers 0 si START n’est
plus exécuté
Bit de sortie en cours"
Mi,R
Mi,R = 1 si Mi,V est différent de 0 (écoulement monostable) Mi,R=0 si Mi,V=0
(*)
il n’est pas possible d’utiliser plus de 8 temporisateurs et/ou monostables avec une base de
temps de 10 ms.
6/6
6
Fonctions d'automatismes
A
Cas spécifiques
• Incidence d’une "reprise à froid" : (SY0 = 1) provoque la remise à zéro de la
valeur courante Mi,V. La valeur de présélection éventuellement acquise en mode
REGLAGE ou DONNEES est perdue, seule la valeur de présélection définie en
mode CONFIGURATION est conservée. Le bit de sortie Mi,R est mis à l’état 0.
• Incidence d’une "reprise à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur l’évolution du monostable.
B
• Incidence d’un passage en stop : le passage en stop de l’automate ou de la
tâche en cours ne fige pas la valeur courante. Il en va de même lorsque la tâche
en cours est désactivée par la fonction CTRLi ou lors de l’exécution d’un point
d’arrêt.
• Incidence d’un saut de programme : le fait de ne plus scruter la ligne où est
programmé le monostable ne fige pas la valeur courante qui continue de décroître
vers 0. Le bit de sortie Mi,R conserve son fonctionnement normal et peut être
testé dans une autre ligne de programmation.
C
Exemple d’utilisation
Clignotant à périodes cycliques variables : la valeur de présélection de chaque
monostable définit la durée de chaque impulsion.
Dans l’exemple ci-dessous, la sortie O10,0 est mise à l’état 1 pendant 5 s (M0,P)
puis mise à l’état 0 pendant 2 s (M1,P) et ainsi de suite.
! L1 : IF NOT (M1,R + O10,0)
THEN START M0; SET O10,0
! L2 : IF NOT (M0,R . O10,0)
THEN START M1; RESET O10,0
O10,0
5s
5s
2s
2s
6/7
D
6.3
Fonction compteur
La fonction "compteur" permet d’effectuer le comptage ou le décomptage d’événements, ces deux opérations pouvant être simultanées ou non.
Cette fonction comporte :
• un numéro de fonction
• une valeur courante
• une valeur de présélection
• une instruction de "Remise à zéro"
• une instruction de "Présélection"
• une instruction de lancement "Comptage"
• une instruction de lancement "Décomptage"
• un bit de sortie "Débordement décomptage"
• un bit de sortie "Présélection atteinte"
• un bit de sortie "Débordement comptage"
Ci
Ci,V
Ci,P
RESET Ci
PRESET Ci
UP Ci
DOWN Ci
Ci,E
Ci,D
Ci,F
Fonctionnement
• Présélection : dès l’exécution de l’instruction PRESET Ci, la valeur courante
Ci,V prend la valeur Ci,P. Le bit de sortie Ci,D est mis à l’état 1,
D
• Remise à zéro : dès l’exécution de l’instruction RESET Ci, la valeur courante Ci,V
est mise à la valeur zéro,
• Comptage : à chaque exécution de l’instruction UP Ci, la valeur courante Ci,V 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) est à l’état 1,
Le bit Ci,F (débordement comptage) est mis à l’état 1 lorsque Ci,V passe de 9999
à 0 (il est remis à 0 lorsque Ci,V passe de 0 à 1 ou de 0 à 9999),
• Décomptage : à chaque exécution de l’instruction DOWN Ci, la valeur courante
Ci,V est décrémentée d’une unité,
Le bit de sortie Ci,E (débordement décomptage) est mis à l’état 1 lorsque Ci,V
passe de 0 à 9999 (il est remis à 0 lorsque Ci,V passe de 9999 à 9998 ou de 9999
à 0),
• Comptage/décomptage : pour utiliser simultanément les fonctions comptage et
décomptage, il est nécessaire de programmer les instructions UP Ci et DOWN Ci.
Les instructions RESET et PRESET sont prioritaires par rapport aux instructions UP
et DOWN. La priorité entre les instructions RESET et PRESET est donnée par le
dernière instruction exécutée dans un même cycle tâche.
Il en est de même pour la priorité entre les instructions UP et DOWN.
6/8
6
Fonctions d'automatismes
A
Caractéristiques
Numéro de compteur
Ci
Ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 255
Valeur courante
Ci,V
Mot incrémenté ou décrémenté en fonction des
instructions UP et DOWN. Il est lu, testé mais non
écrit
Valeur de présélection
Ci,P
0 < Ci,P ≤ 9999. Mot qui peut être lu, testé, écrit
Modification MODIF
YES/NO
YES : possibilité de modification de la valeur de
présélection en mode REGLAGE ou DONNEES.
NO : accès à la valeur de présélection en mode
CONFIGURATION uniquement
Instruction
"remise à zéro"
RESET
La valeur courante Ci,V passe à 0
Instruction
"présélection"
PRESET
La valeur courante Ci,V prend la valeur de préselection Ci,P
Instruction "comptage"
UP
Incrémente Ci,V à chaque exécution
Instruction
"décomptage"
DOWN
Décrémente Ci,V à chaque exécution
Bit de sortie
"débordement
décomptage"
Ci,E
Le bit Ci,E passe à 1 lorsque Ci,V passe de 0 à 9999
(Débordement)
Bit de sortie
"présélection atteinte"
Ci,D
Le bit Ci,D passe à 1 lorsque Ci,V est égal à la valeur
Ci,P
Bit de sortie
"débordement
comptage"
Ci,F
Le bit Ci,F passe à 1 lorsque Ci,V passe de 9999 à 0
(Débordement)
B
C
D
Cas spécifiques
• Incidence d’une "reprise à froid" : (SY0 = 1) provoque la remise à zéro de la valeur
courante Ci,V. La valeur de présélection éventuellement acquise en mode REGLAGE ou DONNEES est perdue, seule la valeur de présélection définie en mode
CONFIGURATION est conservée. Les bits Ci,E, Ci,D et Ci,F sont à l’état 0.
• Incidence d’une "reprise à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur la valeur courante Ci,V.
6/9
Exemple d’utilisation
! IF I13,1
THEN RESET C0; RESET C1
Comptage d’un nombre de pièces
supérieur à 9999 : utilisation de deux
fonctions compteur, en cascade.
! IF RE(I0,3) . NOT O17,2
THEN UP C0
Chaque impulsion de l’entrée I0,3
provoque l’incrémentation du compteur C0.
Ce compteur, à chaque débordement comptage, provoque, l'incrémentation du second compteur C1
et sa propre remise à zéro.
Lorsque C0 et C1 ont atteint leur
valeur de présélection (ce qui correspond à 35000 pieces), la sortie
O17,2 est mise à l’état 1 et bloque
le comptage. Une remise à zéro par
l’entrée I13,1 de C0 et C1 permet de
relancer le comptage.
! IF C0,F
THEN UP C1; RESET C0
! IF C0,D . C1,D → O17,2
avec C0,P = 5000 et C1,P = 7
D
Nota : cette fonction peut être également assurée avec l’instruction INC Wi.
6.4
Fonction registre
Un registre est un ensemble de mots de 16 bits permettant de stocker des
informations de deux manières différentes :
• File d’attente (premier entré, premier sorti) : file FIFO,
• Pile (dernier entré, premier sorti) : pile LIFO.
Cette fonction comporte :
• un numéro de fonction
• un type de configuration
• une longueur
• un mot d’entrée 16 bits
• un mot de sortie 16 bits
• une instruction de lancement "Stockage"
• une instruction de lancement "Déstockage"
• une instruction de "Remise à zéro"
• un bit de sortie "Registre vide"
• un bit de sortie "Registre plein"
6/10
Ri
LIFO/FIFO
LENGTH
Ri,I
Ri,O
PUT Ri
GET Ri
RESET Ri
Ri,E
Ri,F
Fonctions d'automatismes
6
A
Fonctionnement
FIFO (First In, First Out)
Exemple :
La première information entrée est la pre- stockage du contenu de Ri,I dans
un registre vide
mière à être sortie.
Lorsqu’une demande d’entrée est prise en
(a)
compte (à chaque exécution de l’instruction
PUT Ri), le contenu du mot d’entrée Ri,I
Ri,I
préalablement chargé est stocké au plus haut
50
50
de la file (fig a et b).
B
Lorsque la file est pleine (bit de sortie Ri,F=1),
le stockage est impossible.
Lorsqu’une demande de sortie est prise en stockage du contenu de Ri,I au
compte (à chaque exécution de l’instruction plus haut de la file
GET Ri), le mot d’information le plus bas de la
20
20
file est transféré dans le mot de sortie Ri,O et
Ri,I
80
le contenu du registre est décalé d’un pas vers
le bas (fig. c).
90
(b)
50
Lorsque le registre est vide (bit de sortie
Ri,E=1) le déstockage est impossible (le mot
de sortie Ri,O n’évolue plus et conserve sa
valeur).
La file peut être initialisée à tout moment déstockage du contenu de la pre(exécution de l’instruction RESET Ri). Le mot mière information et rangement de
pointé est alors le plus haut de la pile.
cette dernière dans Ri,0
20
80
90
(c)
Ri,O
50
LIFO (Last In, First Out)
Exemple :
La dernière information entrée est la première
à être sortie.
stockage du contenu de Ri,I au
plus haut de la pile
Lorsqu’une demande d’entrée est prise en
compte (à chaque exécution de l’instruction
PUT Ri), le contenu du mot d’entrée Ri,I
préalablement chargé est stocké au plus haut
de la pile (fig.d).
20
Ri,I
(d)
20
80
90
50
Lorsque la pile est pleine (bit de sortie Ri,F = 1),
le stockage est impossible.
6/11
C
D
Lorsqu’une demande de sortie est prise en destockage du mot d'information le
compte (à chaque exécution de l’instruction plus haut de la pile
GET Ri), le mot d’information le plus haut
20
(dernière information entrée) est transféré dans
le mot Ri,O (fig. e et f).
Ri,O
80
90
50
Lorsque le registre est vide (bit de sortie
Ri,E=1), le déstockage est impossible, le mot
de sortie Ri,O n’évolue plus et conserve sa
dernière valeur.
La pile peut être réinitialisée à tout moment
(exécution de l’instruction RESET Ri). L’élément pointé est alors le plus haut de la pile.
90
50
(e)
Ri,O
80
(f)
Caractéristiques
D
Numéro Registre
Ri
Ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 127
Type
FIFO
LIFO
File d’attente (First In, First Out)
Pile (Last In, First Out)
Longueur
LENGTH
Nombre de mots de 16 bits 1≤ L ≤ 255.
Il est non modifiable par programme. Le nombre total
de mots défini pour l’ensemble des registres ne doit
pas dépasser 1024
Mot d’entrée
Ri,I
Mot d’accès au registre. Il peut être testé lu, écrit
Mot de sortie
Ri,O
Mot de sortie du registre. Il peut être lu, testé, écrit
Instruction
"Stockage"
PUT
Provoque le stockage du contenu du mot Ri,I dans le
registre
Instruction
"Déstockage"
GET
Provoque le transfert du mot d’information dans le
mot Ri,O
Instruction
"remise à zéro"
RESET
Remet à zéro la file ou la pile du registre
Bit de sortie
"Registre plein"
Ri,F
Le bit Ri,F indique que le registre est plein
Bit de sortie
"Registre vide"
Ri,E
Le bit Ri,E indique que le registre est vide
6/12
Fonctions d'automatismes
6
A
Cas spécifiques
• Incidence d’une "reprise à froid" : (SY0 = 1) provoque l’initialisation de la file
(registre FIFO) ou de la pile (registre LIFO) du registre. Le bit de sortie Ri,E
(registre vide) est mis à 1,
• Incidence d’une "reprise à chaud" ou "immédiate" : (SY1 ou SY2) n’a pas
d’incidence sur le contenu et l’état du registre.
B
Exemple d’utilisation
Registre FIFO de 137 pas :
! IF RE(I13,A)
THEN W34 → R2,I; PUT R2
Le front montant de I13,A provoque
le chargement de W34 dans le mot
d’entrée R2,I puis son stockage
dans le registre R2.
! IF RE(I13,9)
THEN GET R2; R2,0 → W20
Le front montant de I13,9 provoque
le transfert du premier mot entré
dans le mot de sortie R2,O puis son
chargement dans W20 pour exploitation.
! IF I13,F
THEN RESET R2;
0 → W34 → W20
L’entrée I13,F provoque la remise à
zéro de la file du registre R2 et des
mots de chargement et d’exploitation.
Les paramètres à saisir en configuration pour le registre R2 sont :
N°
LENGTH
TYPE
avec
0
1
2
16
16
137
LIFO
LIFO
FIFO
- N° :
numéro du registre
- LENGTH : longueur du registre
- TYPE :
FIFO ou LIFO
6.5
Fonction contrôle
La fonction "Contrôle" permet d’activer ou de désactiver une tâche.
Cette fonction comporte :
• un numéro de fonction
• une instruction "activation"
• une instruction "désactivation"
• un bit de sortie "tâche activée"
CTRLi
START CTRLi
RESET CTRLi
CTRLi,R
6/13
C
D
Le numéro de fonction définit la tâche à commander :
CTRL1 : commande la tâche interruption
(IT)
CTRL2 : commande la tâche rapide
(FAST)
CTRL4 : commande la tâche auxiliaire 0 (AUX0)
CTRL5 : commande la tâche auxiliaire 1 (AUX1)
CTRL6 : commande la tâche auxiliaire 2 (AUX2)
CTRL7 : commande la tâche auxiliaire 3 (AUX3)
L’accès à la fonction CTRLi est conditionné par la déclaration de la tâche i effectuée
dans le mode opératoire CONFIGURATION.
Fonctionnement
L’exécution de l’instruction START CTRLi provoque l’activation de la tâche définie
par le numéro i,
L’exécution de l’instruction RESET CTRLi provoque la désactivation de la tâche
définie par le numéro i,
La désactivation d’une tâche n’est effective qu’en fin d’exécution de celle-ci.
Caractéristiques
D
Numéro de la
fonction
CTRLi
Ce numéro est nécessairement compris entre 1 et 7
et indique le numéro de la tâche à commander
Instruction
"activation"
START CTRLi
Exécutée, cette instruction active la tâche i. Le cycle
de la tâche i est alors lancé (Entrées, Programmes,
Sorties)
Instruction
"Désactivation"
RESET CTRLi
Exécutée, cette instruction demande la désactivation
de la tâche i. Celle-ci n’est effective qu’en fin d’exécution du cycle de la tâche considérée
Sortie "Tâche
activée"
CTRLi,R
Le bit de sortie CTRLi,R est à l’état 1 quand la tâche
i est active
6/14
6
Fonctions d'automatismes
A
6.6
Fonction texte
La fonction "Texte" permet au programme utilisateur de communiquer avec :
• un périphérique (imprimante, clavier, automate, terminal) par la "prise terminal".
Le bloc fonction texte est alors de type "TER",
• un coupleur intelligent. Le bloc fonction texte est alors de type "CPL",
• une autre fonction texte implantée dans le programme utilisateur. Les deux blocs
fonctions texte sont alors de type "TXT",
B
• certaines fonctions système, par exemple celles qui donnent accès aux données
de diagnostic d’un coupleur intelligent. Le bloc fonction texte est alors de type
"SYS".
• une autre fonction texte de type télégramme, implantée dans le programme
utilisateur d’un autre automate, situé sur le même réseau MAPWAY, ETHWAY
ou FIPWAY. Les deux blocs fonctions texte sont alors de type "TLG".
C
Les communications de type télégramme ne peuvent s’effectuer qu’à distance à
travers le réseau MAPWAY, ETHWAY ou FIPWAY. Par contre les autres communications peuvent s’effectuer localement ou à distance en utilisant les réseau
TELWAY, MAPWAY, ETHWAY ou FIPWAY ou le bus UNI-TELWAY ou FIPIO.
D
Cette fonction "texte" comporte :
• un numéro de bloc fonction
• un type d’échange
• un type de communication
(seulement RESEAU pour le bloc TLG)
• une adresse de début de table
• une longueur de table de réception
• une longueur de table d’émission
• un mot status
• des bits de sortie :
- "échange terminé"
- "échange erroné"
• en type "CPL", une adresse coupleur
et numéro de voie
• en type "CPL" ou "SYS"
- un mot code requête
- un mot compte rendu d’échange
• en type "TXT" ou "TLG", un mot
numéro du bloc texte destinataire
• avec le réseau TELWAY, MAPWAY,
ETHWAY ou FIPWAY un mot numéro
de réseau et station
TXTi
(CPL, TER, SYS, TXT ou TLG)
(LOCAL ou RESEAU)
ex : W10
ex : 12
TXTi,L
TXTi,S
TXTi,D
TXTi,E
TXTi,M
TXTi,C
TXTi,V
TXTi,T
TXTi,A
• quatre instructions de commande (RESET TXTi, OUTPUT TXTi, INPUT TXTi,
EXCHG TXTi) décrites page suivante :
6/15
Annulation de
l'échange
RESET TXTi
L’exécution de cette instruction empêche la prise en
compte des instructions INPUT, OUTPUT et EXCHG,
interrompt un échange en cours et positionne les bits
de sortie TXTi,D (échange terminé) et TXTi,E
(échange erroné) à l’état 1. Le code de l’erreur est
alors contenu dans le mot status TXTi,S
émission
OUTPUT TXTi
Cette instruction provoque l’envoi de la table d'émission, si le bit de sortie D est à l’état 1
réception
INPUT TXTi
Cette instruction positionne le bloc texte en réception
pour permettre le stockage des informations
attendues,dans sa table de réception, si TXTi,D est
à l’état 1
émission/réception EXCHG TXTi
D
Cette instruction provoque l’envoi de la table d’émission suivi de la mise en réception du bloc texte, pour
permettre le stockage d’un message dans sa table
de réception, si TXTi,D est à l’état 1
Utilisation des entrées de commande
L’exécution de l’instruction OUTPUT TXTi provoque l’émission d’une table,
L’exécution de l’instruction INPUT TXTi provoque la mise en réception d’une table,
L’exécution de l’instruction EXCHG TXTi provoque successivement l’émission puis
la mise en réception d’une table,
Avant de lancer un échange, le programme utilisateur doit initialiser les éléments
mots (selon le type d’échange TXTi,L, TXTi,M, TXTi,C...),
Le lancement d’un échange est impossible si le bit de sortie TXTi,D est à l’état 0
(échange en cours). En fin d’échange, si celui-ci s’est avéré correct, ce bit reprend
l’état 1.
Lorsque l’échange s’est avéré erroné, les bits TXTi,E et TXTi,D passent à 1.
L’échange est interrompu et le mot status indique alors le type d’erreur jusqu’au
prochain échange.
A tout moment, l’exécution de l’instruction RESET TXTi interrompt l’échange en
cours. Les bits de sortie TXTi,D et TXTi,E sont alors mis à l’état 1. Cette instruction
est prioritaire
Echange en cours
Echange terminé
Echange erroné
TXTi,D
0
1
1
TXTi,E
0
0
1
Fonctionnement
Le fonctionnement du bloc texte est développée dans "COMMUNS LANGAGES A
CONTACTS ET LITTERAL" intercalaire E, chapitre 6.
6/16
Fonctions d'automatismes
6
A
Cas particulier : émission et/ou réception d’un télégramme
Emission d’un télégramme
L’émission d’un télégramme est immédiate, il n’est pas nécessaire d’attendre la fin
d’exécution du programme application. Celui-ci est directement envoyé au coupleur dès que les commandes d’émission du bloc TLG sont activées (OUTPUT
TXTi).
B
Réception d’un télégramme
Cette opération se fait en deux temps :
• positionnement du bloc texte TLG en réception (INPUT TXTi),
• lecture du télégramme par l’instruction READTLG :
dès que le coupleur reçoit un télégramme, il envoie une interruption au processeur
qui exécute alors la tâche IT du programme application. Cette tâche permet :
- la reconnaissance de l’IT par l’instruction READINT,
- le transfert du télégramme depuis le coupleur jusque dans le buffer de
réception du bloc TLG, par l’instruction READTLG,
- l’exécution des actions associées.
Emission/réception d’un télégramme
Elle est provoquée par la commande EXCHG TXTi et fonctionne comme une
émission suivie d’une réception.
Remarques :
• les télégrammes peuvent s’utiliser sans les interruptions. La tâche MAST
ou FAST demande de façon explicite sa lecture à chaque cycle. On a alors
l’équivalent d’une messagerie rapide.
• en réception, on ne peut traiter qu’un seul télégramme par cycle automate et par
coupleur. Par contre il est possible dans un même cycle automate d’émettre un
télégramme sur chaque coupleur réseau d’un automate routeur.
6/17
C
D
D
6/18
Dialogue
Communs langage à contacts
langage littéral
Intercalaire E
Chapitre
1
5
Page
Opérations sur chaîne de bits
Sommaire
1/1
1.1 Transfert d’une chaîne de bits dans une autre
1.2 Transfert d’une chaîne de bits dans un mot
1.3 Transfert d’un mot dans une chaîne de bits
1.4 Transfert d’une valeur immédiate dans une chaîne de bits
2
Opérations sur mots
Sommaire
2/1
2.1 Transfert
2.2 Incrémentation et décrémentation
2.3 Décalage
2.4 Comparaison
2.5 Opérations arithmétiques
2.6 Extraction de racine carrée
E
2.7 Opérations logiques
2.8 Transcodage
3
Opérations sur tableaux de mots
Sommaire
3/1
3.1 Initialisation d’un tableau de mots
3.2 Transfert d’un tableau dans un autre
3.3 Opérations entre deux tableaux
3.4 Opérations sur tous les mots d’un tableau
3.5 Sommation des mots d’un tableau
3.6 Comparaison de deux tableaux
3.7 Recherche de tous les mots différents lors d’une comparaison
de deux tableaux
3.8 Recherche dans un tableau du premier mot égal à une valeur
3.9 Recherche dans un tableau de tous les mots égaux à une valeur
E/1
Communs langage à contacts
langage littéral
Intercalaire E
Chapitre
4
Page
Opérations sur programme
Sommaire
4/1
4.1 Gestion des interruptions coupleur
5
Echanges explicites
Sommaire
5/1
5.1 Echanges explicites des bits d’entrées et de sorties T.O.R.
5.2 Echanges explicites des registres d’entrées et de sorties
6
Opérations sur fonctions
Sommaire
6.1 Fonction texte
6.2 Exécution d’un OFB
E
E/2
6/1
Opérations sur chaîne de bits
Opérations sur chaîne de bits
1
Chapitre 1
Sous chapitre
Page
1.1 Transfert d’une chaîne de bits dans une autre
1/2
1.2 Transfert d’une chaîne de bits dans un mot
1/4
1.3 Transfert d’un mot dans une chaîne de bits
1/5
1.4 Transfert d’une valeur immédiate dans une chaîne de bits
1/7
Ce chapitre se termine à la page
1/8
E
1/1
1.1
Transfert d’une chaîne de bits dans une autre
Cette opération consiste à recopier l’état de n bits d’une chaîne origine dans les
n bits d’une chaîne destination.
Structure
• en langage à contacts le transfert est réalisé par un bloc opération, constitué
de la manière suivante :
chaîne de bits origine → chaîne de bits destination
• en langage Littéral le transfert est réalisé par une phrase action qui peut être
utilisée :
- seule :
! chaîne de bits origine → chaîne de bits destination
- dans une phrase conditionnelle :
! IF ... THEN chaîne de bits origine → chaîne de bits destination
- dans une phrase itérative :
! WHILE ... DO chaîne de bits origine → chaîne de bits destination
Opérandes
Objet
E
Chaîne de bits
origine
destination
Exemple
bit interne Bi
*
*
bit d’entrée Ixy,i
*
*
bit de sortie Oxy,i
*
*
bit d’étape Xi
*
X8[4]
bit de macro-étape XMj
*
X21,3[2]
(1)
B14[16]
(1)
I3,5[7]
O15,0[3]
voir règles d’utilisation
Exemple :
• recopie du contenu des bits I0,0 à I0,5 dans les bits internes B20 à B25 :
I0,0[6] → B20[6]
! I0,0[6] → B20[6]
Règles d’utilisation
• les chaînes de bits origine et destination ne sont pas forcément de longueur
identique. Dans le cas où la chaîne origine est plus longue que la chaîne
destination, seuls les bits de poids faible seront transférés.
• l’utilisation de chaîne de bits d’entrée comme destination est possible, mais doit
être employée avec précaution (modification de l’état réel des entrées jusqu’à la
prochaine acquisition des entrées par l’automate).
1/2
1
Opérations sur chaîne de bits
Cas spécifiques
• la longueur de la chaîne destination est supérieure à la modularité du module
considéré :
juxtaposition de 2 modules
d’entrées ou de sorties :
dans l’exemple ci-contre, une
chaîne de bits du type O04,0[16]
adresse les bits de sorties correspondants aux modules O04
et O05 (de O04,0 à O05,7).
00 01 02 03 04 05 06 07
F
juxtaposition de 2 modules
de type différent :
dans l’exemple ci-contre, une
chaîne de bits du type O05,4[8]
adresse les bits de sorties O05,4
à O05,7 puis les bits d’entrées
I06,0 à I06,3.
7
0
8 SORTIES
0
7
0
16 ENTREES
0
8 SORTIES
0
8 SORTIES
16 ENTREES
X
7
F
00 01 02 03 04 05 06 07
F
cas d’un emplacement vide :
dans l’exemple ci-contre une
chaîne de bits du type O02,0[10]
adresse les bits de sorties O02,0
à O02,7 puis les bits de sorties
O04,0 et O04,1.
7
0
8 SORTIES
0
7
0
16 ENTREES
0
8 SORTIES
0
8 SORTIES
16 ENTREES
X
7
F
0
F
7
0
8 SORTIES
0
8 SORTIES
0
8 SORTIES
16 ENTREES
X
7
16 ENTREES
00 01 02 03 04 05 06 07
7
0
E
F
• chevauchement des 2 chaînes de bits : dans ce cas le transfert doit être
conditionné par une expression de front (un transfert seulement)
1er cas : IF RE(B83) THEN B0[5] → B3[5]
Afin de ne pas modifier le tableau origine pendant l’opération, le transfert
s’effectue en partant du bit de rang le plus élevé (B4 → B7) jusqu’aux bit de rang
le plus faible (B0 → B3) :
état des bits
avant opération
état des bits
après opération
B0
B1
B2
B3
B4
0
1
0
1
1
1
1
B5
*
B6
*
B7
*
B0
B1
B2
B3
B4
0
1
0
0
1
0
1
B5
B6
B7
0
1
1
1/3
2eme cas : IF RE(B112) THEN B5[5] → B3[5]
Afin de ne pas modifier le tableau origine pendant l’opération, le transfert
s’effectue en partant du bit de rang le plus faible (B5 → B3) jusqu’au bit de rang
le plus élevé (B9 → B7) :
état des bits
avant opération
B3
B4
*
*
1.2
état des bits
après opération
B5
B6
B7
B8
B9
0
1
0
1
1
0
1
0
B3
0
B4
1
B5
B6
B7
B8
B9
0
1
1
1
1
0
1
1
Transfert d’une chaîne de bits dans un mot
Cette opération consiste à recopier l’état de n bits d’une chaîne dans les 16 bits d’un
mot. La longueur n de la chaîne de bits ne devra pas être supérieure à 16.
Structure
• en langage à contacts le transfert est réalisé par un bloc opération, constitué
de la manière suivante :
chaîne de bits → mot
E
• en langage Littéral le transfert est réalisé par une phrase action qui peut être
utilisée :
- seule :
! chaîne de bits → mot
- dans une phrase conditionnelle :
! IF ... THEN chaîne de bits → mot
- dans une phrase itérative :
! WHILE ... DO chaîne de bits → mot
Opérandes
Objet
Chaîne
de bits
Mot de
destination
Exemple
bit interne Bi
*
B14[16]
bit d’entrée/sortie I/Oxy,i
*
I3,5[7]
bit d’étape ou de macro-étape Xi, XM,j
*
mot interne simple longueur Wi
1/4
X8[4]
*
W12
1
Opérations sur chaîne de bits
Exemple :
• transfert du contenu des bits d’entrée I1,4 à I1,7 dans le mot W7 :
! I1,4[4] → W7
I1,4[4] → W7
I1,4
5
6
7
1
0
1
1
F
W7
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
Règles d’utilisation
• les bits de la chaîne sont transférés dans le mot en commençant par la
droite (1er bit de la chaîne dans bit 0 du mot, ...).
• les bits d’un mot non concerné par le transfert (longueur < 16) sont positionnés
à l’état 0.
1.3
Transfert d’un mot dans une chaîne de bits
Cette opération consiste à recopier bit à bit les 16 bits d’un mot dans une chaîne de
bits. Lorsque la chaîne de bits est de longueur inférieure à 16, seuls les bits de poids
faible sont recopiés.
Structure
• en langage à contacts le transfert est réalisé par un bloc opération, constitué
de la manière suivante :
mot → chaîne de bits
• en langage Littéral le transfert est réalisé par une phrase action qui peut être
utilisée :
- seule :
! mot → chaîne de bits
- dans une phrase conditionnelle :
! IF ... THEN mot → chaîne de bits
- dans une phrase itérative :
! WHILE ... DO mot → chaîne de bits
1/5
E
Opérandes
Objet
Mot
source
Chaîne
de bits
bit interne Bi
*
bit d’entrée Ixy,i
*
bit de sortie Oxy,i
*
Exemple
B14[16]
(1)
I3,5[7]
O5,5[7]
mot interne simple longueur Wi
*
W12
mot constant simple longueur CWi
*
CW10
(1)
voir règles d’utilisation
Exemple :
• transfert des bits 0 à F du mot constant CW14 dans les bits B10 à B25 :
CW14 → B10[16]
! CW14 → B10[16]
Règles d’utilisation
• l’utilisation de bits d’entrées dans la chaîne de bits destination est possible mais
doit être employée avec précaution (inhibition de l’état réel des entrées jusqu’à
la prochaine acquisition des entrées par l’automate).
• les bits du mot origine sont transférés à partir de la droite (bit 0 du mot dans le
premier bit de la chaîne).
E
Cas spécifiques
• transfert d’un mot dans une chaîne de bits de sorties : ce type de transfert
affecte une chaîne de bits de longueur 16. Dans le cas où le module de sortie n’est
pas un module 16 bits ou que le premier bit de la chaîne n’est pas le bit 0 du
module, il y a débordement sur le module suivant.
1/6
Opérations sur chaîne de bits
1.4
1
Transfert d’une valeur immédiate dans une chaîne de bits
Cette opération consiste à recopier bit à bit la représentation binaire sur 16 bits d’une
valeur immédiate dans une chaîne de bits.
Structure
• en langage à contacts le transfert est réalisé par un bloc opération, constitué
de la manière suivante :
valeur immédiate → chaîne de bits
• en langage Littéral le transfert est réalisé par une phrase action qui peut être
utilisée seule, dans une phrase conditionnelle ou itérative :
! valeur immédiate → chaîne de bits
Opérandes
• la chaîne de bits destination peut être constituée par des bits internes ou par des
bits de sorties. L’utilisation de bits d’entrées est possible mais doit être employée
avec précaution (inhibition de l’état réel des entrées jusqu’à la prochaine
acquisition des entrées par l’automate).
• la valeur immédiate est nécessairement comprise entre -32768 et +32767.
Exemple :
• mise à l’état 1 des bits B30 à B37 :
H' FFFF' → B30[8]
! H’FFFF’ → B30[8]
E
1/7
E
1/8
Opérations sur mots
Opérations sur mots
2
Chapitre 2
Sous chapitre
Page
2.1 Transfert
2/2
2.2 Incrémentation et décrémentation
2/4
2.3 Décalage
2/5
2.4 Comparaison
2/8
2.5 Opérations arithmétiques
2/10
2.6 Extraction de racine carrée
2/15
2.7 Opérations logiques
2/16
2.8
2/18
E
Transcodage
Ce chapitre se termine à la page
2/22
2/1
2.1
Transfert
L’instruction de transfert, symbolisée par → , permet de transférer le contenu d’un
opérande 1 dans un opérande 2.
L’opérande 1 peut être une expression arithmétique (enchaînement d’opérations de
décalage, de transcodage, logiques et arithmétiques).
Structure
• en langage à contacts le transfert est réalisé par un bloc opération, constitué
de la manière suivante :
OP1 → OP2
512 caractères peuvent être saisis dans un bloc opération.
• en Littéral le transfert est réalisé par une phrase action qui peut être utilisée :
- seule :
! opérande 1 → opérande 2
- dans une phrase conditionnelle :
! IF ... THEN opérande 1 → opérande 2
ELSE opérande 3 → opérande 4
- dans une phrase itérative :
! WHILE ... DO opérande 1 → opérande 2
Opérandes
Objet
E
mot constant CWi
Opérandes
OP1
OP2
*
mot constant double longueur CDWi
*
mot interne Wi
*
Exemple
CW3
*
CDW7
CDW7(W0)
W12(W11)
DW31(W4)
*
*
DW31
mot commun COMi,j
*
*
COM3,2
mot registre entrée/sortie IW/OWxy,i
*
*
OW7,5
mot système SWi
*
*
valeur immédiate
*
SW4
3476
valeur immédiate double longueur
*
73421
temps d’activité d’une étape Xi,V
*
X67,V
temps d’activité d’étape de
macro-étape Xj,i,V
*
X21,3,V
mot extrait de bloc fonction Ti,P
*
expression arithmétique
*
(1)
sauf valeur courante de bloc fonction.
2/2
CW3(W45)
W12
mot interne double longueur DWi
* (1)
Exemple
indexé
T3,P
W8*(W12+7)
Opérations sur mots
2
Exemples en langage à contacts
• transfert du mot constant CW2 dans le mot W6 :
CW2 → W6
• transfert de l’expression arithmétique (W1 AND W2) * 12 dans le mot de
présélection du compteur C3 :
(W1 AND W2) * 12 → C3,P
• transfert du temps d’activité de l’étape 3 dans le mot commun COM4,6 :
X3,V → COM4,6
Exemples en Littéral :
• transfert du mot constant CW2 dans le mot W6 :
! CW2 → W6
• transfert de l’expression arithmétique W8 * (W12 + 7) dans le mot Wx (avec x = 6
indexé du contenu de W125) :
! W8 * (W12 + 7) → W6(W125)
Transferts multiples
Il est possible de transférer successivement le contenu d’un objet mot dans
plusieurs objets mots.
• en langage à contacts :
CW5 → W6 → T1,P
• en Littéral :
! CW5 → W6 → T1,P
Transfert d’un mot simple longueur dans un mot double longueur
Le transfert d’un mot simple longueur dans un mot double longueur s’effectue sur
la valeur algébrique du mot simple longueur : une valeur négative en simple longueur (bit F ou bit 15 à l’état 1) reste négative en double longueur (bit 31 à l’état 1).
• transfert du mot W20 positif dans le mot double DW100 :
ou ! W20 → DW100
W20 → DW100
F E D C B A 9 8 7 6 5 4 3 2 1 0
0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1
W20
signe
31
0
DW100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1
2/3
E
• transfert du mot W21 négatif dans le mot double DW102 (complément à 2) :
ou ! W21 → DW102
W21 → DW102
F E D C B A 9 8 7 6 5 4 3 2 1 0
1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1
W21
signe
0
31
DW102 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1
Transfert d’un mot double dans un mot simple longueur
Le transfert d’un mot double longueur dans un mot simple longueur ne sera correct
que si le contenu du mot double longueur est compris entre -32768 et +32767. Si
ce n’est pas le cas, le contenu du mot simple longueur après transfert, sera erroné.
Le bit système SY18 (overflow) est mis à 1. Ce bit peut être testé et doit être remis
à 0 par le programme utilisateur.
2.2
Incrémentation et décrémentation
L’instruction d’incrémentation INC augmente de 1 le contenu d’un objet mot.
L’instruction de décrémentation DEC diminue de 1 le contenu d’un objet mot.
E
Structure
• en langage à contacts les opérations d’incrémentation et de décrémentation
sont réalisées par un bloc opération, constitué de la manière suivante :
INC opérande
DEC opérande
• en Littéral l’incrémentation et la décrémentation sont réalisées par une phrase
action, qui peut être utilisée :
- seule :
! INC opérande
- dans une phrase conditionnelle :
! IF ... THEN INC opérande ELSE DEC opérande
- dans une phrase itérative :
! WHILE ... DO INC opérande
2/4
Opérations sur mots
2
Opérandes
Les opérations d’incrémentation et de décrémentation agissent seulement sur les
mots internes simple longueur. Ces mots peuvent être indexés.
Exemples en langage à contacts :
• incrémentation du mot W30 :
INC W30
• décrémentation du mot W10 :
DEC W10
Exemples en Littéral :
• incrémentation du mot W8 :
! INC W8
• décrémentation du mot Wx (avec x = 6 indexé du contenu de W125) :
! DEC W6(W125)
2.3
Décalage
L’opération de décalage consiste à déplacer les bits d’un opérande simple longueur
d’un certain nombre de positions vers la droite ou vers la gauche. Cette opération
peut être associée à une opération de transfert, qui permet de transférer le contenu
de l’opérande dans un objet mot.
En Littéral l’opération de décalage peut être utilisée dans une expression arithmétique.
On distingue deux types de décalages :
• le décalage logique : cette opération peut être réalisée dans les deux sens à
l’aide des deux instructions :
- SHL i : décalage logique à gauche de i positions (SHift Left),
- SHR i : décalage logique à droite de i positions (SHift Right).
L’opérande à décaler étant un opérande simple longueur, la variable i sera
nécessairement comprise entre 0 et 16 (1 ≤ i ≤ 15).
L’opérande à décaler est saisi entre parenthèses.
2/5
E
- décalage logique à gauche : SHL i
F
0
0
SY17: valeur du dernier bit sorti à gauche
- décalage logique à droite : SHR i
F
0
0
SY17: valeur du dernier bit sorti à droite
L’ensemble des bits est décalé de i positions. L’état du dernier bit sorti est
mémorisé par le bit système SY17.
• le décalage circulaire : cette opération peut être réalisée dans les deux sens à
l’aide des deux instructions :
- SLC i : décalage circulaire à gauche de i positions (Shift Left Circular)
- SRC i : décalage circulaire à droite de i positions (Shift Right Circular).
L’opérande à décaler étant un opérande simple longueur, la variable i sera
nécessairement comprise entre 0 et 16 (1 ≤ i ≤ 15).
L’opérande à décaler est saisi entre parenthèses.
E
- décalage circulaire à gauche : SLC i
F
0
SY17: valeur du dernier bit sorti à gauche
et entré à droite
- décalage circulaire à droite : SRC i
F
0
SY17: valeur du dernier bit sorti à droite
et entré à gauche
L’ensemble des bits est décalé de i positions. L’état du dernier bit sorti, donc du
dernier bit entré, est mémorisé par le bit système SY17.
2/6
2
Opérations sur mots
Structure
Dans tous les cas, une opération de décalage est caractérisée par :
- son type : SHL, SHR, SLC, SRC
- le nombre de positions de décalage i (1 ≤ i ≤ 15)
- l’opérande à décaler
• en langage à contacts le décalage est réalisé par un bloc opération, constitué
de la manière suivante :
SHL
i(OP1) →
→OP2
SHLi(OP1)
OP2
• en Littéral le décalage est réalisé par une phrase action qui peut être utilisée :
- seule :
! SHL i (opérande)
- dans une phrase conditionnelle :
! IF ... THEN SHR i (opérande 1) → opérande 2
- dans une phrase itérative :
! WHILE ... DO SLC i (opérande 1) → opérande 2
Opérandes
Objet
Opérandes
OP1
OP2
Exemple
mot constant CWi
*
mot interne Wi
*
*
mot commun COMi,j
*
mot registre entrée/sortie IW/OWxy,i
*
*
OW7,5
mot système SWi
*
*
valeur immédiate
*
mot interne double longueur DWi
Exemple
indexé
CW3
CW3(W45)
W12
W12(W11)
*
DW31
DW31(W4)
*
COM3,2
SW4
3476
temps d’activité d’une étape Xi,V
*
X67,V
temps d’activité d’étape de
*
X21,3,V
macro-étape Xj,i,V
mot extrait de bloc fonction Ti,P
*
expression arithmétique
*
(1)
* (1)
T3,P
W8*(W12+7)
sauf valeur courante de bloc fonction.
Exemple en langage à contacts :
• décalage logique du mot W3 de 8 positions vers la gauche, avec transfert du
résultat dans W7 :
SHL
8(W3) →→W7
SHL8(W3)
W7
2/7
E
Exemples en Littéral :
• décalage circulaire du mot W3 de 8 positions vers la droite, avec transfert du
résultat dans W7 et transfert de l’état du dernier bit sorti à droite dans O31,0 :
! IF ... THEN SRC 8 (W3) → W7; SY17 → O31,0
• addition des valeurs décalées de W15 et 19, avec transfert du résultat dans
W125 :
! IF ... THEN SHL 5 (W15) + SHR 2 (W19) → W125
2.4
Comparaison
L’instruction de comparaison permet de comparer deux opérandes.
Elle constitue en langage Littéral un opérande booléen utilisable dans une expression
booléenne.
Les différentes instructions de comparaison sont les suivantes :
• >
: test si l’opérande 1 est supérieur à l’opérande 2,
• >= : test si l’opérande 1 est supérieur ou égal à l’opérande 2,
• <
: test si l’opérande 1 est inférieur à l’opérande 2,
• <= : test si l’opérande 1 est inférieur ou égal à l’opérande 2,
• =
: test si l’opérande 1 est égal à l’opérande 2,
• <> : test si l’opérande 1 est différent de l’opérande 2.
Structure
E
• en langage à contacts la comparaison est réalisé par un bloc comparaison
horizontale. Il fait appel à des expressions du langage Littéral et est comparable
quant à sa forme aux blocs opérations. Le bloc comparaison est toujours placé
en zone test. Sa sortie est à 1 lorsque la comparaison demandée est vraie.
Ce bloc est constitué de la manière suivante :
OP1 > OP2
• en Littéral la comparaison est une expression booléenne et se trouve entre
crochets. Elle peut être utilisée :
- seule :
! [opérande 1 <> opérande 2] → bit
- dans une phrase conditionnelle :
! IF [opérande 1 > opérande 2] THEN ...
- dans une phrase itérative :
! WHILE [opérande 1 = opérande 2] DO ...
2/8
2
Opérations sur mots
Opérandes
Objet
Opérandes
OP1
OP2
Exemple
Exemple
indexé
mot constant CWi
*
*
CW3
CW3(W45)
mot constant double longueur CDWi
*
*
CDW7
CDW7(W0)
mot interne Wi
*
*
W12
W12(W11)
mot interne double longueur DWi
*
*
DW31
DW31(W4)
mot commun COMi,j
*
*
COM3,2
mot registre entrée/sortie IW/OWxy,i
*
*
OW7,5
mot système SWi
*
*
SW4
valeur immédiate
*
*
3476
valeur immédiate double longueur
*
*
73421
temps d’activité d’une étape Xi,V
*
*
X67,V
temps d’activité d’étape de
macro-étape Xj,i,V
*
*
X21,3,V
mot extrait de bloc fonction Ti,P
*
*
expression arithmétique
*
T3,P
W8*(W12+7)
Exemples en langage à contacts :
• comparaison du mot W241 avec la valeur immédiate 100 :
W241 > 100
E
La sortie de ce bloc passe à 1 lorsque la comparaison est vraie (contenu du mot
W241 supérieur à 100).
• comparaison de l’expression arithmétique (W6 + W12) * 3 avec le contenu du mot
Wx (x = 1 indexé du contenu de W5) :
(W6 + W2) * 3 = W1(W5)
Exemples en Littéral :
• si W5 est plus grand que 25 alors ... :
! IF [W5 > 25] THEN ...
• tant que le résultat de l’expression arithmétique est égal au contenu de W9,
effectuer ... :
! WHILE [(W6 + W12) * 3 = W9] DO ...
• si le résultat de l’opération DW9 - DW15 est différent du contenu de CDW0, la
sortie O4,3 est à l’état 1 :
! [DW9 - DW15 <> CDW0] → O4,3
• si W9(W5) est égal ou inférieur à la valeur courante du temporisateur T2, alors ...
sinon ... :
! IF [W9(W5) <= T2,V] THEN ... ELSE ...
2/9
Règles d’utilisation
• les deux termes de la comparaison sont considérés comme des valeurs algébriques.
• les deux termes de la comparaison peuvent être exprimés dans la même
longueur ou dans des longueurs différentes.
• le résultat de l’expression arithmétique pouvant être erroné à la suite d’un
débordement, le résultat de la comparaison peut s’avérer incorrect.
La gestion et le test du bit système de débordement permettent de résoudre ce
problème.
• les objets mots utilisés dans les deux opérandes sont indexables.
2.5
Opérations arithmétiques
Les instructions associées permettent de réaliser une opération arithmétique entre
deux opérandes. Ces instructions sont :
• +
: réalise l’addition de deux opérandes,
• : réalise la soustraction de deux opérandes,
• *
: réalise la multiplication de deux opérandes,
• /
: réalise la division d’un opérande par un autre,
• REM : calcule le reste d’une division d’un opérande par un autre.
Structure
E
• en langage à contacts une opération arithmétique est réalisée par un bloc
opération, constitué de la manière suivante :
OP1 * OP2 → OP3
• en Littéral une opération arithmétique peut être utilisée dans une expression
arithmétique ou associée à une opération de transfert. Sa structure est la
suivante :
opérande 1 + opérande 2
2/10
2
Opérations sur mots
Opérandes
Objet
Opérandes
OP1
OP2
OP3
Exemple
Exemple
indexé
mot constant CWi
*
*
CW3
CW3(W45)
mot constant double longueur
CDWi
*
*
CDW7
CDW7(W0)
mot interne Wi
*
*
*
W12
W12(W11)
mot interne double longueur
DWi
*
*
*
DW31
DW31(W4)
mot commun COMi,j
*
*
*
COM3,2
mot registre entrée/sortie
IW/OWxy,i
*
*
*
OW7,5
*
mot système SWi
*
*
valeur immédiate
*
*
3476
SW4
valeur immédiate double
longueur
*
*
73421
temps d’activité d’une étape Xi,V
*
*
X67,V
temps d’activité d’étape de
macro-étape Xj,i,V
*
*
X21,3,V
mot extrait de bloc fonction Ti,P
*
*
expression arithmétique
*
*
(1)
* (1)
T3,P
W8*(W12+7)
sauf valeur courante de bloc fonction.
E
Exemples en langage à contacts :
• addition du contenu de CW12 et de la valeur immédiate 1300. Le résultat de
l’addition est rangé dans le mot de présélection du compteur C5 :
CW12 + 1300 → C5,P
• soustraction du contenu du mot W20 au mot double longueur CDW 35. Le résultat
est rangé dans le mot DW10 :
CDW35 - W20 → DW10
Exemples en Littéral :
• division du contenu du mot W61 par le contenu du mot W12 et rangement du reste
dans W35 :
! W61 REM W12 → W35
• expression arithmétique dans une opération de comparaison :
! IF [(W1 + W2) * 3 = 100] THEN ...
Rappel sur les priorités
• l’addition et la soustraction ont la même priorité.
• la multiplication, la division et le calcul du reste ont la même priorité et sont
prioritaire sur l’addition et la soustraction.
2/11
Règles d’utilisation
Addition : opérande 1 + opérande 2
• dépassement de capacité pendant l’opération :
Dans le cas où le résultat dépasse la longueur du plus long des opérandes (-32768
à +32767 pour un opérande en simple longueur, -2147483648 à +2147483647
pour un opérande double longueur) le bit SY18 (overflow) est mis à l’état 1. Le
résultat est donc non significatif. La gestion du bit SY18 est à la charge du
programme utilisateur.
Exemple : W0 + W1 → W2
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1 W0
23241
+
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1 W1
21853
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0 W2
-20442
SY18
Le résultat réel (45094) ne peut pas être exprimé dans un mot simple longueur, le
bit système SY18 est mis à l’état 1. Le résultat obtenu (-20442) est erroné.
E
• Dépassement de la capacité absolue du mot de résultat (arithmétique non
signée) :
Lors de certains calculs, il est parfois intéressant d’interpréter un opérande en
arithmétique non signée (le bit F représente alors la valeur 32768). La valeur
absolue maximale pour un opérande simple longueur est de 65535.
L’addition de 2 valeurs absolues (non signées) dont le résultat est supérieur à
65535 provoque un débordement. Ce débordement en arithmétique non signée
est signalé par la mise à 1 du bit système SY17 (carry) qui représente la valeur
65536. La gestion de SY17 est à la charge du programme utilisateur.
Dans le cas d’opérandes double longueur, le bit SY17 symbolise le débordement
du 32ième bit et représente la valeur 4294967296.
Exemple : W0 + W1 → W2
contenu en arithmétique
Non signé
signé
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0 W0 65086 -450
+
1
SY17
2/12
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1 W1 65333 -203
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1 W2
Opérations sur mots
2
Le bit SY17 est mis à l’état 1 et représente la valeur 65536. Le résultat
en arithmétique non signée est donc égal à : 65536 + 64883 soit 130419.
Le résultat en arithmétique signée n’est pas erroné.
Les deux cas décrits ci-dessus peuvent se produire simultanément. Dans ce cas
les deux bits système SY17 et SY18 sont mis à l’état 1. La gestion de ces bits est
à la charge du programme utilisateur.
Exemple : W0 + W1 → W2
contenu en arithmétique
Non signé
signé
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0 W0 45736 -19800
+
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0 W1 38336 -27200
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0 W2 18536 18536
SY18 SY17
Les deux bits système SY17 et SY18 sont mis à l’état 1.
Le résultat en arithmétique signée (+18536) est erroné. En arithmétique non
signée, le résultat (18536 + valeur de SY17, soit 84072) est correct.
• Addition de deux mots de longueur différente
L’addition d’un opérande simple longueur et d’un opérande double longueur est
systématiquement effectuée en double longueur.
Afin d’éviter tout risque de débordement le résultat de l’addition doit être transféré
dans un opérande double longueur.
Soustraction : opérande 1 - opérande 2
• Résultat négatif
Dans le cas où le résultat de la soustraction est inférieur à 0, le bit système SY17
est mis à l’état 1. La gestion de ce bit est à la charge du programme utilisateur.
Multiplication : opérande 1 * opérande 2
• Signe du résultat
Il dépend du signe des opérandes à multiplier :
2 * 3 → 6
2 * -3 → -6
-2 * 3 → -6
-2 * -3 → 6
2/13
E
• Débordement de capacité pendant l’opération
Dans le cas où le résultat dépasse la capacité du plus long des opérandes, le bit
SY18 (overflow) est mis à l’état 1 et le résultat est non significatif. La gestion de
ce bit est à la charge du programme utilisateur.
Division : opérande 1 / opérande 2
• Opérandes
Le dividende est représenté par l’opérande 1 et le diviseur par l’opérande 2.
Le quotient peut être transféré dans un opérande 3 ou être utilisé dans une
expression arithmétique.
• Signe du résultat
Le signe du quotient dépend des signes du dividende (OP1) et du diviseur (OP2) :
8 / 2 → 4
8 / -2 → -4
-8 / 2 → -4
-8 / -2 → 4
• Division par 0
Dans le cas où le diviseur est égal à 0, la division est impossible et le bit système
SY18 est mis à l’état 1. Le résultat sera donc erroné. La gestion du bit SY18 est
à la charge du programme utilisateur.
• Débordement de capacité durant l’opération
Dans le cas où le quotient de la division dépasse la capacité du mot de
rangement, le bit SY18 est mis à l’état 1. La gestion de ce bit est à la charge du
programme utilisateur.
E
Reste de la division : opérande 1 REM opérande 2
• Opérandes
Le dividende est représenté par l’opérande 1 et le diviseur par l’opérande 2.
Le reste peut être transféré dans un opérande 3 ou être utilisé dans une
expression arithmétique.
• Signe du résultat
Le signe du reste est toujours identique à celui du dividende.
• Division par 0
Dans le cas où le diviseur est égal à 0, la division est impossible et le bit système
SY18 est mis à l’état 1. Le résultat sera donc erroné. La gestion du bit SY18 est
à la charge du programme utilisateur.
2/14
2
Opérations sur mots
2.6
Extraction de racine carrée
L’instruction SQRT (square root) permet d’extraire la racine carrée d’un opérande.
Structure
• en langage à contacts l’extraction de racine carrée est réalisée par un bloc
opération, constitué de la manière suivante :
SQRT(OP1) → OP2
Dans le cas où le contenu de l’opérande 1 n’est pas exploité dans la suite du
programme, OP1 et OP2 peuvent être constitués par le même objet mot.
• en Littéral l’extraction de racine carrée peut être utilisée dans une expression
arithmétique ou associée à une opération de transfert. Sa structure est la
suivante :
SQRT (opérande)
Opérandes
Objet
Opérandes
OP1
OP2
mot constant CWi
*
mot constant double longueur CDWi
*
mot interne Wi
*
Exemple
CW3
*
CW3(W45)
CDW7
CDW7(W0)
W12
W12(W11)
DW31(W4)
mot interne double longueur DWi
*
*
DW31
mot commun COMi,j
*
*
COM3,2
mot registre entrée/sortie IW/OWxy,i
*
*
OW7,5
mot système SWi
*
*
SW4
valeur immédiate
*
valeur immédiate double longueur
*
73421
temps d’activité d’une étape Xi,V
*
X67,V
temps d’activité d’étape de
macro-étape Xj,i,V
*
X21,3,V
mot extrait de bloc fonction Ti,P
*
expression arithmétique
*
(1)
Exemple
indexé
E
3476
* (1)
T3,P
W8*(W12+7)
sauf valeur courante de bloc fonction
Exemple en langage à contacts :
• extraction de la racine carrée du mot W5 et rangement du résultat dans le
mot W6 :
SQRT(W5) → W6
2/15
Exemple en Littéral :
• extraction de la racine carrée du mot W1 et rangement du résultat dans le
mot W2 :
! SQRT (W1) → W2
Règles d’utilisation
• Signe de l’opérande
L’extraction de racine carrée ne s’effectue que sur des valeurs positives.
Le résultat est donc toujours positif.
Dans le cas où l’opérande de la racine carrée est négatif, le bit système SY18 est
mis à l’état 1 et le résultat est erroné. La gestion du bit système SY18 est à la
charge du programme utilisateur.
2.7
Opérations logiques
Les instructions associées permettent de réaliser une opération logique entre deux
opérandes. Ces instructions sont :
• AND : réalise le ET (intersection) entre deux opérandes,
• OR : réalise le OU inclusif (union) entre deux opérandes,
• XOR : réalise le OU exclusif (disjonction) entre deux opérandes,
• CPL : réalise le complément logique d’un opérande.
Une opération logique entre deux opérandes est effectuée bit à bit (bit 0 au bit F)
sur le contenu des deux opérandes.
E
Structure
• en langage à contacts une opération logique est réalisée par un bloc opération,
constitué de la manière suivante :
OP1 AND OP2 → OP3
CPL(OP1) → OP2
Dans le cas où le contenu de l’un des deux opérandes OP1 ou OP2 n’est pas
exploité dans la suite du programme, l’opérande 3 (OP3) peut être constitué par
le même objet mot que OP1 ou OP2.
• en Littéral une opération logique peut être utilisée dans une expression arithmétique ou associée à une opération de transfert. Sa structure est la suivante :
opérande 1 OR opérande 2
CPL (opérande)
2/16
2
Opérations sur mots
Opérandes
Le complément logique ne s’effectue que sur des mots internes simple longueur Wi.
Les autres opérations logiques ne s’effectuent que sur les opérandes simple longueur suivants :
Objet
mot constant CWi
Opérandes
OP1
OP2
OP3
*
*
Exemple
CW3
CW3(W45)
W12(W11)
mot interne Wi
*
*
*
W12
mot commun COMi,j
*
*
*
COM3,2
mot registre entrée/sortie
IW/OWxy,i
*
*
*
OW7,5
*
mot système SWi
*
*
valeur immédiate
*
*
SW4
3476
temps d’activité d’une étape Xi,V
*
*
X67,V
temps d’activité d’étape de
macro-étape Xj,i,V
*
*
X21,3,V
mot extrait de bloc fonction Ti,P
*
*
expression arithmétique
*
*
(1)
Exemple
indexé
* (1)
T3,P
W8*(W12+7)
sauf valeur courante de bloc fonction.
Rappel sur les opérations logique
• ET logique : le résultat bit à bit est égal à 1 si les deux bits correspondants sont
à l’état 1 :
0 AND 0 → 0
0 AND 1 → 0
1 AND 0 → 0
1 AND 1 → 1
• OU logique : le résultat bit à bit est égal à 1 si au moins un des deux bits
correspondants est à l’état 1 :
0 OR 0 → 0
0 OR 1 → 1
1 OR 0 → 1
1 OR 1 → 1
• OU exclusif logique : le résultat bit à bit est égal à 1 si un seul des bits
correspondants est à l’état 1 :
0 XOR 0 → 0
0 XOR 1 → 1
1 XOR 0 → 1
1 XOR 1 → 0
• Complément logique : le résultat est l’inversion bit à bit du mot à complémenter :
CPL (0) → 1
CPL (1) → 0
2/17
E
Exemple en langage à contacts :
• OU logique entre W32 et W12 avec rangement du résultat dans le mot W15 :
W32 OR W12 → W15
W32
OR
W12
W15
1100 1100 1101 1011
0100 1011 1111 0000
1100 1111 1111 1011
Exemples en Littéral :
• masquage des 8 bits de poids fort du mot W94 avec rangement du résultat dans
W95 :
! H’00FF’ AND W94 → W95
H’00FF’ 0000 0000 1111 1111
AND
W94
0100 1110 1010 1001
W95
0000 0000 1010 1001
• complément logique du mot W0 avec rangement du résultat dans W1 :
! CPL(W0) → W1
W0
0110 1000 1110 1011
W1
1001 0111 0001 0100
2.8
E
Transcodage
Une valeur numérique peut être représentée de plusieurs manières dans un mot.
Ces différentes représentations sont appelées codes. Le passage d’une représentation à une autre est appelé transcodage.
Cette opération peut être utilisée dans une expression arithmétique ou être
associée à une opération de transfert afin de transférer le contenu transcodé dans
un mot ou un tableau de mots.
Les transcodages possibles sont les suivants :
•
•
•
•
•
DTB : transcodage BCD → binaire,
BTD : transcodage binaire → BCD,
ATB : transcodage ASCII → binaire,
BTA : transcodage binaire → ASCII,
GTB : transcodage Gray → binaire.
Structure
• en langage à contacts un transcodage est réalisé par un bloc opération,
constitué de la manière suivante :
DTB(OP1) → OP2
• en Littéral un transcodage peut être utilisée dans une expression arithmétique
ou associée à une opération de transfert. Sa structure est la suivante :
BTD (opérande)
2/18
2
Opérations sur mots
Opérandes
Les conversions de codes ne sont effectives que sur des opérandes simple
longueur, sauf pour la conversion binaire → ASCII.
Objet
Opérandes
OP1
OP2
Exemple
mot constant CWi
*
mot interne Wi
*
*
mot commun COMi,j
*
mot registre entrée/sortie IW/OWxy,i
*
*
OW7,5
mot système SWi
*
*
valeur immédiate
*
mot interne double longueur DWi
CW3
CW3(W45)
W12
W12(W11)
*
DW31
DW31(W4)
*
COM3,2
SW4
3476
temps d’activité d’une étape Xi,V
*
X67,V
temps d’activité d’étape de
macro-étape Xj,i,V
*
X21,3,V
mot extrait de bloc fonction Ti,P
*
expression arithmétique
*
(1)
Exemple
indexé
* (1)
T3,P
W8*(W12+7)
sauf valeur courante de bloc fonction
Rappel sur le code BCD :
Le code BCD (Binary Coded Décimal) qui signifie Décimal codé binaire permet de
représenter un chiffre décimal 0 à 9 par un ensemble de 4 bits. Un objet mot de 16
bits peut donc contenir un nombre exprimé sur 4 décades (0 < N < 9999).
Décimal
0
1
2
3
4
5
Binaire
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Exemple :
6
7
8
9
0
F
Mot W5 code en BCD :
0010 0100 0101 0000
Valeur en BCD du mot W5 :
2
4
5
0
Valeur en décimal du mot W5 : 9296
Mot W12 codé en binaire et
exprimant la valeur 2450 :
0000 1001 1001 0010
Le passage du mot W5 au mot W12 s’effectue par l’instruction DTB,
Le passage du mot W12 au mot W5 s’effectue par l’instruction BTD.
2/19
E
Rappel sur le code ASCII :
L’ensemble des 256 caractères alphanumériques et de contrôle peut être codé sur
8 bits. Ce code appelé ASCII (American Standard Code for Information Interchange)
est compatible avec la notion d’octets. Tout mot de 16 bits peut donc être formé par
2 codes ASCII définissant 2 caractères.
Rappel sur le code Gray :
Le code Gray ou "binaire réfléchi" permet de coder une valeur digitale en cours
d’évolution en une suite de configurations binaires se différenciant l’une de l’autre
par le changement d’état d’un et d’un seul bit. Ce code permet par exemple d’éviter
l’aléas suivant : en binaire pur, le passage de la valeur 0111 à 1000 peut engendrer
des valeurs aléatoires comprises entre 0 et 1000, les bits ne changeant pas de
valeur de façon parfaitement simultanée.
Décimal
0
1
2
3
4
5
6
7
8
9
Binaire
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Gray
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101
Exemples en langage à contacts :
• transcodage de la valeur binaire du mot W15 et rangement dans les mots W20
à W22 :
BTA(W15) → W20[3]
E
valeur décimale
de W15 : +128
valeur décimale
de W15 : -128
valeur décimale
de W15 : 0
2/20
0
+
0
W20 H30 H2B
1
0
W21 H31 H30
8
2
W22 H38 H32
0
-
W20 H30 H2D
1
0
W21 H31 H30
8
2
W22 H38 H32
0
0
W20 H30 H30
H2B
0
0
W21 H30 H30
0
0
W22 H30 H30
Opérations sur mots
2
• transcodage de la valeur binaire du mot DW1 et rangement dans les mots W10
à W15 :
BTA(DW1) → W10[6]
valeur décimale
de DW1 : -54643
0
-
W10 H30 H2D
0
0
W11 H30 H30
0
0
W12 H30 H30
5
0
W13 H35 H30
6
4
W14 H36 H34
3
4
W15 H33 H34
Exemples en Littéral :
• transcodage des codes ASCII rangés dans les mots W30 à W32 et transfert dans
W40 :
! ATB (W30[3]) → W40
→
W40 = +128
W30
H30 H2B
W31
H31 H30
W32
H38 H32
W30
H30 H2D
W31
H31 H30
W32
H38 H32
→
W40 = -128
E
• transcodage Gray → binaire du contenu du mot W124 et rangement dans le mot
d’entrée du registre R3 :
valeur en code Gray : 27
! GTB (W124) → R3,I
W124
0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0
R3,I
0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1
valeur en décimal : 27
Règles d’utilisation
• Transcodage BCD → binaire
- le transcodage s’effectue sur l’ensemble des bits de l’opérande à transcoder.
- un contrôle est effectué automatiquement par l’automate sur chaque quartet
(4 bits) de l’opérande. Chaque quartet ne doit pas représenter une valeur
décimale supérieure à 9. Cette vérification a pour but d’effectuer l’opération de
transcodage sur un opérande contenant bien une valeur exprimée en code
BCD.
Dans le cas où la valeur n’est pas une valeur BCD, le bit système SY18
(débordement) est positionné à 1. La gestion de ce bit est à la charge du
programme utilisateur.
2/21
• Transcodage binaire → BCD
- l’opération de transcodage ne peut s’effectuer que sur un opérande dont le
contenu est compris entre 0 et 9999.
Dans le cas contraire le résultat du transcodage est erroné et l’automate
positionne le bit système SY18 à l’état 1. La gestion de ce bit est à la charge
du programme utilisateur.
Exemple :
- transcodage d’une valeur supérieure à 9999 : 21023 → H’521F’ ou B’521?’
- transcodage d’une valeur négative : -18 → H’FFEE’ ou B’????’
- BTD (W9) → W182 :
si contenu binaire de W9 est : 0000 0101 1100 1011,
le résultat de la conversion BTD dans W182 sera : 0001 0100 1000 0011
1
4
8
3
• Transcodage ASCII → binaire
- le résultat du transcodage d’un tableau de 3 mots sera toujours rangé dans un
mot simple longueur.
- le résultat du transcodage d’un tableau de 6 mots sera toujours rangé dans un
mot double longueur.
- le code H30 (0) est le code neutre.
• Transcodage binaire → ASCII
- le contenu d’un mot simple longueur pouvant être compris entre -32768 et
+32767, soit 5 chiffres plus signe, la destination devra être un tableau constitué
de 6 octets (3 mots).
E
- le contenu d’un mot double longueur (-2147483648 à +2147483647) pouvant
comprendre 10 chiffres plus signe, le tableau de destination devra être
constitué par 12 octets, soit 6 mots.
- le rangement des caractères est réalisé de manière à effectuer aisément un
échange de caractères via une liaison série asynchrone.
• Transcodage Gray → binaire
- l’opération de transcodage s’effectue sur l’ensemble des bits de l’opérande à
transcoder.
- le contenu de l’opérande doit être compris entre 0 et 9999. Dans le cas
contraire, le résultat du transcodage est erroné et l’automate positionne le bit
système SY18 à 1. La gestion de ce bit est à la charge du programme utilisateur.
2/22
Opérations sur tableaux de mots
Opérations sur tableaux de mots
3
Chapitre 3
Sous chapitre
Page
3.1 Initialisation d’un tableau de mots
3/2
3.2 Transfert d’un tableau dans un autre
3/3
3.3 Opérations entre deux tableaux
3/5
3.4 Opérations sur tous les mots d’un tableau
3/6
3.5 Sommation des mots d’un tableau
3/8
3.6 Comparaison de deux tableaux
3/9
3.7 Recherche de tous les mots différents lors d’une comparaison de
deux tableaux
3/11
3.8 Recherche dans un tableau du premier mot égal à une valeur
3/12
3.9 Recherche dans un tableau de tous les mots égaux à une valeur 3/13
Ce chapitre se termine à la page
3/14
3/1
E
3.1
Initialisation d’un tableau de mots
Cette opération consiste à transférer une valeur immédiate ou le contenu d’un mot
dans tous les mots constituant le tableau à initialiser.
Structure
• en langage à contacts l’initialisation est réalisée par un bloc opération,
constitué de la manière suivante :
OP1 → tableau
• en Littéral l’initialisation est réalisée par une phrase action qui peut être utilisée
seule, dans une phrase conditionnelle ou itérative :
! opérande → tableau
Opérandes
Objet
OP1
mot constant CWi
Tableau
*
mot constant double longueur CDWi
*
mot interne Wi
*
CW3
CDW7
*
W12[6]
mot interne double longueur DWi
*
DW31
valeur immédiate
*
H’FFFF’
Exemples :
E
Exemple
• mise à 0 des mots W0 à W99 :
0 → W0[100]
• chargement du contenu du mot CW3 dans les mots W30 à W41 :
! CW3 → W30[12]
3/2
3
Opérations sur tableaux de mots
3.2
Transfert d’un tableau dans un autre
Cette opération consiste à transférer le contenu des mots du tableau origine dans
les mots correspondants du tableau destination.
Structure
• en langage à contacts le transfert est réalisé par un bloc opération, constitué
de la manière suivante :
tableau origine → tableau destination
• en Littéral le transfert est réalisé par une phrase action qui peut être utilisée
seule, dans une phrase conditionnelle ou itérative :
! tableau origine → tableau destination
Opérandes
Objet
Tableaux
origine
destinat.
Exemple
Exemple
indexé
mot constant CWi
*
CW3[3]
CW3(W5)[3]
mot constant double longueur
CDWi
*
CDW7[5]
CDW7(W1)[5]
mot interne Wi
*
*
W12[6]
W12(W10)[6]
mot interne double longueur
DWi
*
*
DW31[5]
DW31(W2)[5]
Exemple :
E
• transfert du contenu des mots DW1 à DW3 dans les mots DW10 à DW12 :
DW1[3] → DW10[3]
! DW1[3] → DW10[3]
DW1 → DW10
DW2 → DW11
DW3 → DW12
Règle d’utilisation
• les deux tableaux doivent être de longueur identique et de type similaire.
Cas spécifiques
• chevauchement de deux tableaux : dans ce cas, l’opération de transfert doit
être conditionné par une expression de front (un transfert seulement)
3/3
1er cas : IF RE(B72) THEN W0[6] → W3[6]
Afin de ne pas modifier le tableau origine pendant l’opération, le transfert s’effectue
en partant du mot de rang le plus élevé (W5 → W8) jusqu’au mot de rang le plus
faible (W0 → W3) :
avant opération
après opération
W0
23
W0
23
W1
255
W1
255
W2
34
destination
W2
34
destination
W3
50
50
W3
23
23
W4
63
63
W4
255
255
W5
71
71
W5
34
34
W6 origine *
W6 origine 50
W7
*
W7
63
W8
*
W8
71
2eme cas : IF RE(B85) THEN W7[5] → W5[5]
Afin de ne pas modifier le tableau origine pendant l’opération, le transfert s’effectue
en partant du mot de rang le plus faible (W7 → W5) jusqu’au mot de rang le plus
élevé (W11 → W9) :
E
avant opération
avant opération
W5
W5
*
W6 origine *
W6 origine 56
W7
45
45
W7
12
12
W8
56
56
W8
25
25
W9
12
12
W9
530
W10 25
W11 530
3/4
45
destination
W10 25
W11 530
530
destination
3
Opérations sur tableaux de mots
3.3
Opérations entre deux tableaux
Les instructions associées permettent de réaliser une opération arithmétique ou
logique entre les mots de deux tableaux et d’en transférer le résultat dans un tableau
destination. Ces opérations sont réalisées mot à mot (entre les mots de même
rang) :
• +
: addition mot à mot de tableaux et transfert des résultats,
• : soustraction mot à mot de tableaux et transfert des résultats,
• *
: multiplication mot à mot de tableaux et transfert des résultats,
• /
: division mot à mot de tableaux et transfert des résultats,
• REM : division mot à mot de tableaux et transfert des restes,
• AND : ET logique bit à bit des mots des tableaux et transfert des résultats,
• OR : OU logique bit à bit des mots des tableaux et transfert des résultats,
• XOR : OU exclusif logique bit à bit des mots des tableaux et transfert des
résultats.
Structure
• en langage à contacts une opération arithmétique ou logique entre deux tableaux
est réalisée par un bloc opération, constitué de la manière suivante :
tableau 1 AND tableau 2 → tableau destination
• en Littéral une opération arithmétique ou logique entre deux tableaux est
réalisée par une phrase action qui peut être utilisée seule, dans une phrase
conditionnelle ou itérative :
! tableau 1 + tableau 2 → tableau destination
Opérandes
E
Objet
mot constant CWi
1
Tableaux
2
*
*
Exemple
destinat.
CW3[3]
mot constant double longueur CDWi
*
*
mot interne Wi
*
*
*
W12[6]
mot interne double longueur DWi
*
*
* (1)
DW31[5]
(1)
CDW7[5]
sauf pour les opérations logiques AND, OR, XOR
3/5
Exemple :
• addition mot à mot de tableaux et transfert du résultat :
! W15[4] + W25[4] → W35[4]
W15 12
+
W25 3
→ W35 15
W16 37
+
W26 20
→ W36 57
W17 44
+
W27 1
→ W37 45
W18 0
+
W28 3524
→ W38 3524
Règles d’utilisation
• les tableaux doivent être de longueur identique et de type similaire.
• toutes les règles d’utilisation relatives aux opérations logiques et arithmétiques
sur mots (masquage, carry, overflow) restent vraies lors des opérations entre
tableaux de mots.
• si l’un des tableau peut être perdu, il est possible de le réutiliser comme tableau
de destination (exemple : W10[5] * W15[5] → W15[5]).
• dans le cas de chevauchement du tableau 1 ou 2 avec le tableau de destination,
les opérations sont réalisées dans un ordre différent (voir chapitre 3.2 - transfert
d’un tableau dans un autre).
3.4
E
Opérations sur tous les mots d’un tableau
Ces opérations permettent de réaliser une opération arithmétique (+, -, *, /, REM)
ou logique (AND, OR, XOR) entre un opérande et les mots d’un tableau origine et
d’en transférer le résultat mot à mot dans un tableau de destination.
Structure
• en langage à contacts cette opération est réalisée par un bloc opération,
constitué de la manière suivante :
OP1 * tableau origine → tableau destination
• en Littéral cette opération est réalisée par une phrase action qui peut être
utilisée seule, dans une phrase conditionnelle ou itérative :
! opérande + tableau origine → tableau destination
3/6
3
Opérations sur tableaux de mots
Opérandes
Objet
OP1
Tableaux
origine
destinat.
Exemple
indexé
mot constant CWi
*
*
CW3[3]
mot constant double longueur CDWi
*
*
CDW7[5]
mot interne Wi
*
*
*
W12[6]
mot interne double longueur DWi
*
*
* (1)
DW31[5]
valeur immédiate
*
135
expression arithmétique
*
6+W4
(1)
sauf pour les opérations logiques AND, OR, XOR
Exemples :
• multiplication du contenu des mots d’un tableau par le contenu de W10 et
rangement du résultat dans un autre tableau :
W10 * W20[4] → W30[4]
W10 2
*
W20 3
→ W30 6
*
W21 20
→ W31 40
*
W22 1
→ W32 2
*
W23 3524
→ W33 7048
• multiplication du contenu des mots d’un tableau par une expression arithmétique
et rangement du résultat dans un autre tableau :
! 6 + W4 * W100[4] → W200[4]
le traitement réalisé est le suivant :
(6 + W4) * W100 → W200
(6 + W4) * W101 → W201
(6 + W4) * W102 → W202
(6 + W4) * W103 → W203
3/7
E
Règles d’utilisation
• toutes les règles d’utilisation relatives aux opérations arithmétiques et logiques
(masquage, carry, overflow) restent vraies (voir chapitres 2.5 et 2.7).
• l’opération sur tableau n’est pas prise en compte dans les priorités d’exécution
des instructions de l’expression arithmétique.
• les règles d’utilisation sur les tableaux sont identiques à celles décrites pour les
opérations entre deux tableaux (voir chapitre 3.3).
• si le tableau d’origine peut être perdu, il est possible de le réutiliser comme
tableau de destination (exemple : 155 * W125[200] → W125[200]).
• dans le cas d’un chevauchement du tableau origine avec le tableau de destination,
les opérations sont réalisées dans un ordre différent (voir chapitre 3.2 - transfert
d’un tableau dans un autre).
• le type d’opérande (simple ou double longueur doit être identique à celui des
tableaux).
3.5
Sommation des mots d’un tableau
Cette opération consiste à réaliser l’addition de tous les mots d’un tableau
(checksum) et à transférer le résultat dans un mot.
Structure
E
• en langage à contacts la sommation des mots d’un tableau est réalisée par un
bloc opération, constitué de la manière suivante :
tableau + → mot
• en Littéral cette opération est réalisée par une phrase action qui peut être
utilisée seule, dans une phrase conditionnelle ou itérative :
! tableau + → mot
Opérandes
Objet
Tableau
Mot
Exemple
mot constant CWi
*
CW3
mot constant double longueur CDWi
*
CDW7
mot interne Wi
*
*
W12[6]
mot interne double longueur DWi
*
*
DW31
3/8
3
Opérations sur tableaux de mots
Exemple :
• checksum d’un tableau et rangement du résultat dans W0 :
! CW30[5]+ → W0
CW30
3
+
CW31
7
+
CW32
10
+
CW33
1
+
CW34
2
→ W0
23
Règles d’utilisation
• la longueur du mot de rangement doit être identique à celle des mots du tableau.
• les règles d’utilisation relatives à l’addition (carry, overflow) restent vraies dans
le cas de la sommation (voir chapitre 2.5).
• l’affectation multiple de la sommation d’un tableau est possible :
! DW5[4]+ → DW12 → DW1
3.6
Comparaison de deux tableaux
Cette opération consiste à comparer mot à mot le contenu de deux tableaux.
Si une différence apparait, le rang des premiers mots dissemblables est rangé dans
un mot de résultat, sinon ce mot est égal à -1.
Structure
• en langage à contacts la comparaison de deux tableaux est réalisée par un bloc
opération, constitué de la manière suivante :
EQUAL(tableau1 ; tableau2) → mot résultat
• en Littéral cette opération est réalisée par une phrase action qui peut être utilisée seule, dans une phrase conditionnelle ou itérative :
! EQUAL (tableau1 ; tableau2) → mot résultat
3/9
E
Opérandes
• les mots qui constituent les deux tableaux sont obligatoirement des mots internes
simple ou double longueur.
• le mot résultat est un mot pouvant être écrit, de préférence un mot interne.
Exemples :
• comparaison de deux tableaux identiques :
! EQUAL (W10[4] ; W26[4]) → W30
W10
12
W26
12
W11
37
W27
37
W12
44
W28
44
W13
3524
W29
3524
→ W30 -1
• comparaison de deux tableaux différents :
! EQUAL (W10[4] ; W18[4]) → W30
E
W10
12
W18
12
W11
37
W19
37
W12
44
W20
43
W13
3524
W21
3524
→ W30 2
La comparaison de W13 avec W21 n’est pas effectuée.
L’utilisation du mot W30 comme index permet de rechercher le mot différent
W10(W30) ou W18(W30).
Règle d’utilisation
• les tableaux à comparer doivent être constitués de mots de longueur identique
et de type similaire.
3/10
Opérations sur tableaux de mots
3.7
3
Recherche de tous les mots différents lors d’une comparaison
de deux tableaux
Cette opération consiste à comparer mot à mot le contenu de deux tableaux.
Si une différence apparait, le rang des premiers mots dissemblables est rangé dans
un mot de résultat, sinon ce mot est égal à -1.
Cette opération s’effectue en partant des mots dont le rang est contenu dans le mot
d’indice. La modification du mot d’indice permet donc de rechercher l’adresse de
tous les mots différents.
Structure
• en langage à contacts la comparaison de deux tableaux est réalisée par un bloc
opération, constitué de la manière suivante :
EQUAL(tableau1 ; tableau2 ; mot indice) → mot résultat
• en Littéral cette opération est réalisée par une phrase action qui peut être utilisée seule, dans une phrase conditionnelle ou itérative :
! EQUAL (tableau1 ; tableau2 ; mot indice) → mot résultat
Opérandes
• les mots qui constituent les deux tableaux sont obligatoirement des mots internes
simple ou double longueur.
• les mots indice et résultat sont obligatoirement des mots internes.
Exemples :
• comparaison de deux tableaux différents :
! EQUAL (W50[6] ; W60[6] ; W0) → W1
E
W50
500
W60
500
W51
36
W61
35
W52
44
W62
44
W53
10256
W63
10256
W54
67
W64
68
W55
541
W65
541
→
W1 = 1
→
W1 = 4
Si le mot indice W0 = 0, le mot de résultat W1 contiendra le rang des deux premiers
mots différents trouvés à partir des mots de rang 0 (W50 et W60), soit W1 = 1.
Si le mot indice W0 = 2, le mot de résultat W1 contiendra le rang des deux premiers
mots différents trouvés à partir des mots de rang 2 (W52 et W62), soit W1 = 4.
Règle d’utilisation
• les tableaux à comparer doivent être constitués de mots de longueur identique
et de type similaire.
3/11
3.8
Recherche dans un tableau du premier mot égal à une valeur
Cette opération consiste à comparer une valeur écrite dans un mot avec le contenu
des mots d’un tableau et de ranger le rang du premier mot égal à cette valeur dans un
mot de résultat. Si aucun mot n’est égal à cette valeur, le mot de résultat sera -1.
Cette opération s’effectue toujours en partant du premier mot du tableau (mot
de rang 0).
Structure
• en langage à contacts cette recherche est réalisée par un bloc opération,
constitué de la manière suivante :
SEARCH(tableau ; mot à rechercher ) → mot résultat
• en Littéral cette opération est réalisée par une phrase action qui peut être utilisée seule, dans une phrase conditionnelle ou itérative :
! SEARCH (tableau ; mot à rechercher) → mot résultat
Opérandes
• les mots qui constituent le tableau sont des mots internes simple ou double
longueur.
• le mot résultat est un mot pouvant être écrit, de préférence un mot interne.
Exemples :
E
• recherche dans un tableau du mot dont le contenu est celui du mot W10 , puis
rangement du résultat dans W30 :
! SEARCH (W18[4] ; W10) → W30
W10
43
W18
12
W19
37
W20
43
W21
3524
→ W30 2
Le contenu du mot W10 étant égal au contenu du mot W20, le rang de ce mot (2)
est rangé dans le mot W30. La comparaison du mot W10 avec le mot W21 n’est pas
effectuée.
L’utilisation du mot W30 comme index permet de rechercher le mot du tableau égal
à la valeur : W18(W30).
Règle d’utilisation
• les mots qui constituent le tableau doivent être de longueur identique au mot
recherché.
3/12
Opérations sur tableaux de mots
3.9
3
Recherche dans un tableau de tous les mots égaux une valeur
Cette opération consiste à comparer une valeur écrite dans un mot avec le contenu
des mots d’un tableau, et à ranger le rang du premier mot égal à cette valeur dans
un mot de résultat. Si aucun mot n’est trouvé égal à cette valeur, le mot de résultat
est égal à -1.
Cette opération s’effectue en partant des mots dont le rang est contenu dans le mot
d’indice. La modification du mot d’indice permet donc de rechercher l’adresse de
tous les mots dont le contenu est égal à la valeur recherchée.
Structure
• en langage à contacts cette opération est réalisée par un bloc opération,
constitué de la manière suivante :
SEARCH(tableau ; mot à rechercher ; mot indice) → mot résultat
• en Littéral cette opération est réalisée par une phrase action qui peut être utilisée
seule, dans une phrase conditionnelle ou itérative :
! SEARCH (tableau ; mot à rechercher ; mot indice) → mot résultat
Opérandes
• les mots qui constituent le tableau sont des mots internes simple ou double
longueur.
• les mots indice et résultat sont obligatoirement des mots internes.
Exemples :
• recherche dans un tableau, de la valeur contenue dans W10 :
! SEARCH (W50[6] ; W10 ; W0) → W1
W10
36
W50
500
W51
36
W52
44
W53
10256
W54
36
W55
541
E
→
W1 = 1
→
W1 = 4
Si le mot indice W0 = 0, le mot de résultat W1 contiendra le rang du premier mot égal
au contenu de W10, trouvé à partir du mot de rang 0 dans le tableau (W50),
soit W1 = 1.
Si le mot indice W0 = 2, le mot de résultat W1 contiendra le rang du premier mot égal
au contenu de W10, trouvé à partir du mot de rang 2 dans le tableau (W52),
soit W1 = 4.
Règle d’utilisation
• les mots qui constituent le tableau doivent être de longueur identique au mot
recherché.
3/13
E
3/14
Opérations sur programme
Opérations sur programme
Sous chapitre
4
Chapitre 4
Page
4.1 Gestion des interruptions coupleur
4/2
Ce chapitre se termine à la page
4/4
E
4/1
4.1
Gestion des interruptions coupleur
Lorsqu’une application comporte plusieurs coupleurs intelligents, le programme doit
permettre de gérer les demandes d’interruption une par une, gérer leur
reconnaissance, leur priorité, leur acquittement et leur traitement.
Les instructions possibles sont les suivantes :
MASKINT
: cette instruction permet de masquer la demande d’interruption
provenant du coupleur. Celle-ci est alors sans effet sur le déroulement de la tâche en cours.
Par défaut, les interruptions sont masquées.
DMASKINT : cette instruction permet de démasquer la demande d’interruption
provenant du coupleur, validant ainsi sa prise en compte par le
système (si la tâche IT a été activée).
READINT
: cette instruction provoque la recopie du bit d’interruption du coupleur
dans un bit interne. Ecrit dans la tâche IT, elle permet d’associer un
traitement à chaque coupleur demandant une interruption.
ACKINT
: écrite en tâche IT, cette instruction permet au coupleur concerné
d’acquitter sa demande d’interruption. Elle entraîne la mise à 0 du bit
interruption coupleur.
Cette instruction est obligatoire afin que chaque demande d’interruption ne provoque qu’une seule exécution de la tâche IT. Dans le cas
contraire, la tâche IT est exécuté en permanence d’où dépassement
de la période (arrêt de l’automate, voyant MEM allumé).
Structure
E
• en langage à contacts ces opérations sont réalisées par un bloc opération,
constitué de la manière suivante :
MASKINT(Ixy)
masquage des interruptions
DEMASKINT(Ixy)
démasquage des interruptions
READINT(Ixy,Bi)
lecture des interruptions
ACKINT(Ixy)
acquittement des interruptions
Opérandes
• le coupleur est défini par son adresse Ixy avec :
- x : numéro du bac,
- y : emplacement du coupleur dans le bac.
• lorsqu’une lecture des interruptions est effectuée (READINT), la présence d’une
interruption depuis le coupleur Ixy est signalée par le bit Bi qui passe à 1.
4/2
Opérations sur programme
4
• en Littéral ces opérations sont réalisées par une phrase action qui peut être
utilisée seule, dans une phrase conditionnelle ou itérative :
! MASKINT (Ixy)
masquage des interruptions
! DMASKINT (Ixy)
démasquage des interruptions
! READINT (Ixy; Bi)
lecture des interruptions
! ACKINT (Ixy)
acquittement des interruptions
x : numéro du bac
y : emplacement du coupleur dans le bac
Bi : bit de présence d’IT
Exemple d’utilisation :
gérer les demandes d’interruption émises par les coupleurs I4, I5 et I6 :
en tâche maître MAST :
Les lignes de programme ci-dessous, écrites en tâche maître, permettent de
conditionner la prise en compte des demandes d’interruption à des conditions
logiques. La ligne L5 permet d’activer la tâche IT (obligatoire pour son exécution).
< GESTION DES IT COUPLEURS I4 A I6
! L5 : IF SY0
THEN START CTRL1; DMASKINT(I4)
!
IF I5,9
THEN DMASKINT(I5)
ELSE MASKINT(I5)
!
IF B143 . XM8
THEN DMASKINT(I6)
ELSE MASKINT(I6)
E
4/3
en tâche interruption IT :
La ligne de programme L1 ci-dessous permet de reconnaître le coupleur ayant
demandé l’exécution de la tâche interruption.
Si l’interruption est demandée par le coupleur I4, la ligne L2 permet de l’acquitter.
Si ce n’est pas le cas le programme saute à la ligne L3 qui permet le test de
l’interruption du coupleur suivant (coupleur I5).
Le traitement associé au coupleur I4 exécuté, le programme saute en fin de
tâche IT.
Les lignes L3 et L4 permettent un traitement de même type sur les coupleurs I5 et I6.
< LECTURE DES IT COUPLEUR I4 A I6
! L1 : READINT(I4;B8); READINT(I5;B9); READINT(I6;B10)
< TRAITEMENT ET ACQUITTEMENT DE L’IT COUPLEUR I4
! L2 : IF B8
THEN ACKINT(I4)
ELSE JUMP L3
!
OW4,0 → W55; 0W4,1 → W55; ...
... traitement de l’interruption; JUMP L5
< TRAITEMENT ET ACQUITTEMENT DE L’IT COUPLEUR I5
! L3 : IF B9
THEN ACKINT(I5)
ELSE JUMP L4
!
E
WRITEREG (W32;I5); ...
... traitement de l’interruption; JUMP L5
< TRAITEMENT ET ACQUITTEMENT DE L’IT COUPLEUR I6
! L4 : IF B10
THEN ACKINT(I6)
ELSE JUMP L5
!
... traitement de l’interruption
! L5
! EOP(fin de tâche IT)
Règle d’utilisation
• les deux instructions MASKINT et DMASKINT s’utilisent dans les tâches périodiques et permettent d’établir une hiérarchie de la prise en compte des interruptions
en fonction de l’application.
4/4
Echanges explicites
Echanges explicites
5
Chapitre 5
Sous chapitre
Page
5.1 Echanges explicites des bits d’entrées et de sorties T.O.R.
5/2
5.2 Echanges explicites des registres d’entrées et de sorties
5/4
Ce chapitre se termine à la page
5/6
E
5/1
5.1
Echanges explicites des bits d’entrées et de sorties T.O.R.
Ces opérations permettent la lecture ou l’écriture immédiate (sans attendre leur mise
à jour implicite) des bits T.O.R. des interfaces d’entrées/sorties ou des coupleurs
intelligents :
READBIT : cette instruction permet la lecture immédiate des bits T.O.R. d’un
interface ou d’un coupleur et le transfert de l’état de ces bits dans une
chaîne de bits internes.
WRITEBIT : cette instruction permet l’écriture immédiate d’une chaîne de bits dans
les bits T.O.R. d’un module de sortie ou d’un coupleur intelligent.
Structure
• en langage à contacts ces opérations sont réalisées par un bloc opération,
constituée de la manière suivante :
- lecture immédiate des bits d’entrées T.O.R. :
READBIT(module à lire ; adresse de rangement)
- écriture immédiate dans les bits de sorties T.O.R. :
WRITEBIT(adresse de la chaîne de bits ; module à écrire)
• en Littéral ces opérations sont réalisées par une phrase action qui peut être
utilisée seule, dans une phrase conditionnelle ou itérative :
E
- lecture immédiate des bits d’entrées T.O.R. :
! READBIT(module à lire ; adresse de rangement)
- écriture immédiate dans les bits de sorties T.O.R. :
! WRITEBIT(adresse de la chaîne de bits à transférer ; module à écrire)
Opérandes
• le module à lire ou à écrire est spécifié par Ixy, avec :
- x : numéro du bac,
- y : emplacement du module dans le bac.
• l’adresse de rangement est le premier bit de la chaîne de bits destination. Cette
chaîne est constituée de bits internes Bi. Sa longueur, implicite, est fixée par la
modularité du module lu :
- 8 bits pour interfaces TSX DET 8 .., ou coupleurs,
- 16 bits pour interfaces TSX DET 16 ...
• l’adresse de la chaîne de bits internes à transférer est donnée par le premier bit
de cette chaîne. Sa longueur, implicite, est fixée par la modularité du module à
écrire :
- 8 bits pour interfaces TSX DST 8 .., ou coupleurs,
- 16 bits pour interfaces TSX DST 16 ...
• l’indexation n’est pas permise.
5/2
Echanges explicites
5
Note : la lecture ou l’écriture d’un module 24 ou 32 bits s’effectue en deux temps :
• lecture (ou écriture) des 16 premiers bits : READBIT(Ixy,Bi),
• lecture (ou écriture) des bits restants : READBIT(I(x+1)y,Bi+16).
Exemples d’utilisation :
• lecture immédiate des bits d’entrées du module I14, de modularité 8 :
! READBIT(I14;B5)
cette instruction provoque les transferts suivants :
- état de l’entrée I14,0 → B5,
- état de l’entrée I14,1 → B6,
- ...
- état de l’entrée I14,7 → B12.
• écriture immédiate des bits de sorties du module O12, de modularité 16 :
! WRITEBIT(B20;I12)
cette instruction provoque instantanément :
- B20 = 1 → mise à 1 de la sortie O12,0,
- B21 = 0 → mise à 0 de la sortie O12,1,
- ...
- B29 = 0 → mise à 0 de la sortie O12,9,
- B30 = 1 → mise à 1 de la sortie O12,A,
- B31 = 1 → mise à 1 de la sortie O12,B,
- ...
- B35 = 0 → mise à 0 de la sortie O12,F.
Précautions d’utilisation de l’instruction WRITEBIT
Afin d’éviter tout conflit avec l’écriture des bits de sorties, effectuée systématiquement
en fin de tâche (celle où est configuré le module), l’utilisation de l’instruction WRITEBIT
doit être accompagnée de la mise à jour par programme, des bits O inclus dans la
mémoire bits et concernés par cet échange implicite.
Exemple : provoquer l’écriture immédiate des sorties T.O.R. 2 et A du module O17,
sans modifier l’état des autres sorties :
! IF ...
THEN RESET O17,2; SET O17,A (1)
(2)
O17,0[16] → B50[16];
(3)
WRITEBIT(B50;I17)
(1)
positionner les bits O17,2 et O17,A dans la mémoire bits,
(2)
transférer la nouvelle image du module dans la chaîne de bits B50 à B65,
(3)
provoquer l’échange explicite du module O17. La nouvelle image est écrite immédiatement
dans les bits de sorties O17,0 à O17,F.
5/3
E
5.2
Echanges explicites des registres d’entrées et de sorties
Ces opérations permettent la lecture ou l’écriture immédiate (sans attendre leur mise
à jour implicite) des mots registres des coupleurs intelligents :
READREG : cette instruction permet la lecture immédiate des 8 registres d’entrées
d’un coupleur intelligent et le transfert de leur contenu dans un
tableau de 8 mots.
WRITEREG : cette instruction permet l’écriture immédiate des 8 registres de
sorties d’un coupleur intelligent, à partir d’un tableau de 8 mots.
Structure
• en langage à contacts ces opérations sont réalisées par un bloc opération,
constituée de la manière suivante :
- lecture immédiate des registres d’entrées :
READREG(coupleur à lire ; adresse de rangement)
- écriture immédiate des registres de sorties :
WRITEREG(adresse des mots à échanger ; coupleur à écrire)
• en Littéral ces opérations sont réalisées par une phrase action qui peut être
utilisée seule, dans une phrase conditionnelle ou itérative :
- lecture immédiate des registres d’entrées :
! READREG(coupleur à lire ; adresse de rangement)
E
- écriture immédiate des registres de sorties :
! WRITEREG(adresse des mots à échanger ; coupleur à écrire)
Opérandes
• le coupleur à lire ou à écrire est spécifié par Ixy, avec :
- x : numéro du bac,
- y : emplacement du coupleur dans le bac.
• l’adresse de rangement est définie par le premier mot du tableau destination. Ce
tableau est constitué de 8 mots internes Wi.
• l’adresse des mots à échanger est donnée par le premier mot du tableau.
• l’indexation n’est pas permise.
5/4
Echanges explicites
5
Exemples d’utilisation
• lecture immédiate des registres d’entrées du coupleur I26 :
! READREG(I26;W130)
cette instruction provoque les transferts suivants :
- contenu du registre 0 → W130,
- contenu du registre 1 → W131,
- ...
- contenu du registre 7 → W137.
• écriture immédiate des registres de sorties du coupleur situé à l’emplacement 7
du bac 0 :
! WRITEREG(W25;I7)
cette instruction provoque instantanément :
- W25 → registre 0,
- W26 → registre 1,
- ...
- W32 → registre 9.
Précautions d’utilisation de l’instruction WRITEREG
Afin d’éviter tout conflit avec l’écriture des mots registres, effectuée systématiquement
en fin de tâche (celle où est configuré le module), l’utilisation de l’instruction
WRITEREG doit être accompagnée de la mise à jour par programme, des mots
registres OW concernés par cet échange implicite.
Exemple : provoquer l’écriture immédiate des registres de sorties 3, 4, 5 et 6 du
coupleur I23, sans modifier l’état des autres registres :
! IF ...
(1)
THEN OW23,0 → W2; OW23,1 → W3;
OW23,2 → W4; OW23,7 → W9;
5500
250
1044
-700
→
→
→
→
OW23,3
OW23,4
OW23,5
OW23,6
→
→
→
→
WRITEREG(W2;I23)
W5;
W6;
W7;
W8;
(2)
(3)
(1)
recopier les mots registres qui ne doivent pas être modifiés dans les mots du tableau à
transférer,
(2)
transférer les nouvelles valeurs à écrire dans les mots registres OW (pour mise à jour) et
dans les mots correspondants du tableau à transférer,
(3)
provoquer l’écriture explicite des 8 registres de sorties du coupleur 23 par transfert du
tableau de mots W2 à W9.
5/5
E
E
5/6
Opérations sur fonctions
Opérations sur fonctions
Sous chapitre
6.1 Fonction texte
6.1-1
6.1-2
6.1-3
6.1-4
Présentation et structure
Fonctionnement
Tables de données
Paramètres d’utilisation
6.2 Exécution d’un OFB
Ce chapitre se termine à la page
6
Chapitre 6
Page
6/2
6/2
6/2
6/3
6/6
6/9
6/12
E
6/1
6.1
Fonction texte
6.1-1 Présentation et structure
Se reporter :
• "Langage à contacts", Intercalaire C, Chapitre 7,
• "Langage Littéral", Intercalaire D, Chapitre 6.6.
6.1-2 Fonctionnement
• en langage en contacts :
La mise à 1 des entrées I ou O permet de positionner le bloc en lecture ou en
écriture. La réception ou l’émission est alors déclenchée par un front montant sur
l’entrée S (départ), si l’entrée R (Reset) est à l’état 0 et si la sortie D est à l’état 1
(aucun échange en cours). En fin d’écriture ou de lecture si l’échange a été
correct, la sortie D est mise à l’état 1. De même si l’échange n’est pas correct, la
sortie E (échange erroné) est mise à 1.
De la même manière la mise à l’état 1 simultanée des entrées I et O permet
l’émission suivie de la réception. L’échange est déclenché par un front montant
sur l’entrée S, si l’entrée R est à 0 et la sortie D à 1.
Lorsque l’émission et la réception sont terminées la sortie D est mise à l’état 1.
De même si l’échange est incorrect, la sortie E est mise à 1.
E
A tout instant, la mise à 1 de l’entrée R permet d’interrompre l’échange en cours.
Les bits de sortie D (échange terminé) et E (échange erroné) sont mis à 1. Le mot
status TXTi,S indique alors le type d’erreur, jusqu’au prochain échange. L’entrée
R est prioritaire.
R=0
S=1
I=0
O=1
Emission
R=0
S=1
I=1
O=0
Réception
R=0
S=1
I=1
O=1
Emission suivie de réception
R=1
S = 0/1
I = 0/1
O = 0/1
Pas de possibilité d’échange ou
interruption de l’échange en
cours.
• en Littéral :
L’exécution de l’instruction OUTPUT TXTi provoque l’émission d’une table.
L’exécution de l’instruction INPUT TXTi provoque la mise en réception d’une
table.
L’exécution de l’instruction EXCHG TXTi provoque successivement l’émission
puis la réception d’une table.
6/2
Opérations sur fonctions
6
Avant de lancer un échange, le programme utilisateur doit initialiser les éléments
mots (selon le type d’échange, TXTi,L; TXTi,M; TXTi,C; ...)
Le lancement d’un échange est impossible si le bit de sortie TXTi,D est à l’état 0
(échange en cours). En fin d’échange ce bit passe à l’état 1.
Lorsque l’échange est incorrect, les bits TXTi,D et TXTi,E passent à 1.
L’échange est interrompu et le mot status indique alors le type d’erreur jusqu’au
prochain échange.
A tout moment, l’exécution de l’instruction RESET TXTi interrompt l’échange en
cours. Les bits de sortie TXTi,D et TXTi,E sont mis à 1.
Cette instruction est prioritaire.
Echange en cours
Echange terminé
Echange erroné
TXTi,D
0
1
1
TXTi,E
0
0
1
6.1-3 Tables de données
La fonction texte échange des données sous forme de tableaux de mots organisés
de la façon suivante :
• une table d’émission permet d’envoyer les données au destinataire. Elle est
constituée de mots interne Wi ou constants CWi.
• une table de réception permet d’effectuer l’opération inverse, c’est à dire de
stocker les données envoyées par le destinataire. Elle est nécessairement
constituée de mots internes Wi.
En réception le nombre de mots acquis est limité par la longueur de la table de
réception.
Ces modalités de fonctionnement sont définies lors de la configuration du bloc et
ne sont pas modifiables par le programme utilisateur.
L’adresse du tableau de mots à émettre et celle du tableau où sont stockés les mots
reçus peuvent être spécifiés de deux façons :
• par adressage direct (l’adresse est le premier mot du tableau),
• par adressage indirect (l’adresse est contenue dans une table).
Adressage direct :
Les tables à recevoir et à émettre sont juxtaposées et constituent une table dont
l’adresse de début est saisie lors de la configuration.
La longueur de la table de réception est définie par un nombre d’octets saisi pour
le bloc en mode configuration. La longueur de la table d’émission est définie par la
variable TXTi,L qui doit être écrite par programme (nombre d’octets).
Dans le cas ou la table de réception est fixée par l’utilisateur à la valeur 0, la fonction
texte n’adresse qu’une table émission.
6/3
E
Seuls les mots internes Wi pouvant être écrits par programme (réception), il est à
noter que les deux tables (réception et émission) seront obligatoirement formées
par des mots internes. Dans le cas ou il est souhaitable d’avoir la table de réception
en mots internes Wi et la table d’émission en mots constants CWi, il est nécessaire
d’utiliser l’adressage indirect.
Exemple :
- bloc texte TXT0,
- adresse de début de table: W10,
- longueur de la table de réception: 12 octets
soit 6 mots
- TXT0,L (longueur de la table d'émission):
8 octets soit 4 mots,
W10
W11
W12
W13
W14
W15
Réception
W16
W17
W18
W19
Emission
la table adressée par la fonction texte TXT0 est donc constituée par les mots W10
à W19 :
• table de réception W10 à W15 (12 octets),
• table d’émission W16 à W19 (8 octets).
Adressage indirect
Les tables à émettre et à recevoir sont définies à l’aide d’une table d’adressage dont
l’adresse est saisie dans le bloc. Cette table d’une longueur fixe de 6 mots doit
contenir les informations suivantes :
E
Type de mot de la table d'émission
(0 = mot interne, 1 = mot constant)
Adresse début de table à émettre
Longueur de la table à émettre
(nombre d'octets)
Type de mot de la table de réception
(obligatoirement 0 : mot interne)
Adresse début de la table de réception
Longueur de la table de réception
(nombre d'octets)
6/4
6
Opérations sur fonctions
Exemple :
- bloc texte TXT1,
- adressage indirect,
- adresse de la table d'adressage: W20
W20
1
40
W21
12
W22
0
W23
W24
80
18
W25
Table d'adressage
CW40
CW41
CW42
CW43
CW44
CW45
Emission
W80
W81
W82
W83
W84
W85
W86
W87
W88
Réception
La table d’adressage définissant les tables d’émission et de réception est constituée
par les mots internes W20 à W25 :
• W20 indique la nature des mots de la table d’émission : 1 = CWi (mots constants),
• W21 indique l’adresse de début de la table d’émission : 40 → CW40,
• W22 indique la longueur de la table d’émission : 12 octets soit 6 mots; le dernier
mot de la table d’émission sera donc CW45,
• W23 indique la nature des mots de la table de réception : 0 = Wi (mots internes),
• W24 indique l’adresse de début de la table de réception : 80 → W80,
• W25 indique la longueur de la table de réception : 18 octets soit 9 mots; le dernier
mot de la table de réception sera donc le mot interne W88.
Il est à noter que la table d’adressage peut être réalisée avec des mots internes
(donc possibilité de modification par programme) ou par des mots constants.
6/5
E
6.1-4 Paramètres d’utilisation
Numéro de la
fonction texte
TXTi
ce numéro est inférieur au nombre défini lors de la
configuration et est nécessairement compris entre 0
et 63 (limite du système).
Support de
communication
LOCAL
RESEAU
échange de données localement,
échange de données par réseau TELWAY,
MAPWAY, ETHWAY ou FIPWAY.
Type d’échange
TER
échange de données avec prise terminal (cet échange
peut s’effectuer localement ou par réseau TELWAY,
MAPWAY, ETHWAY ou FIPWAY).
TXT
échange de données par le réseau TELWAY, MAPWAY,
ETHWAY ou FIPWAY avec autre fonction texte, située
dans un autre automate. Ce type d’échange est explicité dans la documentation du réseau concerné.
CPL
configuration et échange de données avec un coupleur intelligent (cet échange peut s’effectuer localement ou par le réseau TELWAY, MAPWAY,
ETHWAY ou FIPWAY et est explicité dans la documentation du coupleur concerné).
SYS
échange de requêtes avec le système, par exemple
requêtes de diagnostic cet échange peut s’effectuer
localement ou par le réseau TELWAY, MAPWAY
ETHWAY ou FIPWAY et est explicité dans la
documentation du coupleur concerné).
TLG
échange de télégrammes (messages prioritaires et
urgents) avec une autre fonction texte TLG, située
dans un autre automate du même réseau MAPWAY,
ETHWAY ou FIPWAY (cet échange est explicité
dans la documentation du réseau concerné.
D:direct
la table à émettre ou à recevoir est définie dans le
bloc (adresse de début et longueur de la table de
réception). La longueur de la table d’émission est
donnée par la variable TXTi,L.
I:indirect
les tables à émettre ou à recevoir sont définies dans
une table d’adressage mots dont l’adresse de début
est saisie lors de la configuration.
Wi ou CWi
en adressage direct elle définit le premier mot de la
table à émettre ou à recevoir,
E
Type d’adressage
Adresse de début
de table
en adressage indirect elle définit le premier mot de la
table d’adressage; elle-même définissant les tables
d’émission et de réception.
Ce paramètre est défini lors de la configuration.
6/6
Opérations sur fonctions
6
Longueur de la table de réception
lors de la configuration et en adressage direct, ce
paramètre permet de définir (en nombre d’octets) la
longueur maximale de la table de réception.
Ce paramètre n’est pas modifiable par programme.
Longueur de la table
d'émission
en émission ou en émission/réception, ce mot écrit
par le programme utilisateur définit le nombre d’octets
à émettre (longueur de la table d’émission).
TXTi,L
La valeur maximale de ce mot dépend de la nature
de l’échange
• 30 octets pour tout échange sur réseau TELWAY,
• 256 octets pour tout échange sur réseau MAPWAY
ou ETHWAY,
• 128 octets pour tout échange sur réseau FIPWAY,
• 254 octets pour l’échange de type CPL,
• 126 octets pour l’échange de type SYS,
• 126 octets pour l’échange de type TER,
• 254 octets pour l’échange de type TXT,
• 32 octets pour l’échange de type TLG.
En adressage indirect ce mot n’est pas utilisé, les
différentes longueurs étant définies dans la table
d’adressage de la fonction texte.
Adresse coupleur et
numéro de voie
TXTi,M
utilisé seulement par les blocs de type CPL.
Ce mot doit être écrit par programme avant tout
échange, il contient l’adresse du coupleur destinataire de l’échange :
E
numéro de bac
0àF
emplacement 0 à F
numéro de voie :
voie 0 : 00
voie 1 : 01
Code requête
TXTi,C
utilisé seulement par les blocs de type CPL et SYS.
Ce mot écrit par programme contient sous forme de
code le type de travail à effectuer (envoi de la
configuration, écriture d’une table, ...). Pour la signification de ces codes, se reporter aux manuels
spécifiques.
Compte-rendu
d'échange
TXTi,V
utilisé seulement par les blocs de type CPL et SYS.
Après un échange, ce mot contient un code écrit par
le coupleur ou le système indiquant la validité de
l’échange (erroné ou correct). Ce mot ne peut être
que lu.
6/7
Numéro du bloc
TXTi,T
utilisé seulement par les blocs de type texte TXT ou
TLG. Ce mot écrit par programme contient le numéro
du bloc texte destinataire de l’échange (voir documentation du réseau concerné). Le bloc texte destinataire doit être de même type (TXT ou TLG) que le
bloc émetteur.
Adresse réseau
TXTi,A
utilisé par tous les types de blocs, lorsque le support
de communication est le réseau TELWAY, MAPWAY,
ETHWAY ou FIPWAY. Ce mot écrit par programme
contient les numéros de réseau et de station
supportant le destinataire de l’échange :
numéro de réseau
0 à 127
numéro de station
0 à 15 (TELWAY)
01 à 63 (MAPWAY)
(MAPWAY, ETHWAY ou FIPWAY)
Mot status
TXTi,S
Entrée Reset
R
Entrée Départ
S
Entrée Réception
I
E
contient le nombre de caractères reçus si le bit de
sortie E (échange erroné) est à l’état 0. Si le bit de
sortie E est à l’état 1, ce mot contient le code de
l’erreur produite lors de l’échange. Ce mot ne peut
être que lu par le programme.
Code d’erreur status :
1 échange en cours détruit par RESET,
2 erreur de longueur table d’émission,
3 défaut secteur,
4 coupleur en défaut (CPL),
5 problème système
6 longueur du message reçu supérieure à celle
prévue,
10 table à émettre ou à recevoir incohérente en
adressage indirect.
Entrée Emission
O
Annulation de
l'échange
RESET TXTi
Lancement émission
OUTPUT TXTi
Lancement réception
INPUT TXTi
Lancement
émission/réception
EXCHG TXTi
6/8
voir "Langage à contacts"
Intercalaire C
Chapitre 7
voir "Langage littéral"
Intercalaire D
Chapitre 6.6
Opérations sur fonctions
6
Bit de sortie
Echange terminé
TXTi,D
ce bit est mis l’état 1 lorsque l'échange est terminé.
Si le bit TXTi,E (échange erroné) est à l’état 0, TXTi,D
indique que le message a été correctement émis et/
ou reçu. Si le bit TXTi,E est à l’état 1, TXTi,D indique
que l’échange est terminé mais erroné.
Bit de sortie
TXTi,E
ce bit est mis à l’état 1 si l’échange ne s’est pas
terminé. Le mot status indique alors le type d’erreur
qui s’est produite.
6.2
Exécution d’un OFB
L’exécution d’un OFB correspond à un nouveau type d’action; l’action sur OFB qui
consiste à :
• faire l’acquisition des entrées de l’OFB,
• exécuter l’OFB,
• mettre à jour les objets PL7-3 de sorties.
Structure
• en langage à contacts l’exécution d’un OFB est réalisée par un bloc opération,
constitué de la manière suivante :
EXEC OFBi (Ent1;Ent2;Ent3;...;Entn → Sort1;Sort2;...;Sortm)
• en Littéral l’exécution d’un OFB est réalisée par une phrase action, qui peut être
utilisée seule, dans une phrase conditionnelle ou dans une phrase itérative. La
syntaxe de cette phrase est la suivante :
! EXEC OFBi (Ent1;Ent2;Ent3;..;Entn => Sort1;Sort2;..;Sortm)
Dans les deux langages le nombre de caractères est limité à 512.
Opérandes
• le type et le numéro de l’OFB sont spécifiés par OFBi, avec :
- OFB : type de l’OFB,
- i
: numéro de l’OFB,
• les paramètres Ent1 à Entn définissent les expressions d’entrées. Ils sont du type
bit, mot, double mot, pointeur sur bit, pointeur sur mot, pointeur sur double mot,
et module (voir tableau suivant),
• les paramètres Sort1 à Sortm définissent les expressions de sorties.
Ils sont du type bit, mot et double mot (voir tableau suivant),
• ; sert de séparateur entre paramètres,
• => sert de séparateur entre les paramètres d’entrées et les paramètres de sorties.
6/9
E
Paramètres d’entrées
Type
Paramètres d’entrées
Bit
Expression Booléenne
Objet bit PL7-3
Objet bit d’OFB
Mot
Double mot
Expression arithmétique simple longueur
Expression arithmétique double longueur
Objet mot PL7-3
Objet double mot PL7-3
Objet mot d’ OFB, de type :
• mot, double mot
• tableau de mots ou double mots
Module
Module d’entrées ou de sorties
Pointeur sur bit
Objet bit PL7-3 (non indexé)
Pointeur sur mot
Objet mot PL7-3 (non indexé)
Pointeur sur double mot
Objet double mot PL7-3 (non indexé)
Paramètres de sorties
Type
E
Paramètres de sorties
Bit
Objet bit PL7-3
Mot
Objet mot PL7-3
Double mot
Objet double mot PL7-3
Exemple de paramètres d’entrées :
TRSF1
W1,2.B2+PID1,VALID
DW1(W10)+PID1,TABMOT
CW1
W10
DIAG1,TABDMOT
MANU
: bit
COMMAND : word
CONSIGNE : dword
PILE
: pt_w
PILEDW
: pt_d
Exemple de paramètres de sorties :
TRSF1
ERROR :
bit
STATUS : word
RESULT : dword
6/10
W1(W2),2
DW1
PID1,TABMOT(W1)
Opérations sur fonctions
6
Limitations
• un paramètre d’entrée de type pointeur sur bit ne peut pas être un bit extrait de
mot,
• on ne peut pas utiliser dans une expression arithmétique un paramètre d’entrée
de type pointeur ou module,
• on ne peut pas affecter une expression logique ou arithmétique à un paramètre
de sortie (sauf objet indexé),
• les opérations suivantes ne sont pas possibles sur les données et constantes
internes d’un OFB :
- opérations sur front avec un élément interne de type bit,
- opérations d’incrémentation, de décrémentation, de conversion binaire/ASCII
et ASCII/binaire avec un élément interne de type mot,
- opérations sur tableaux suivantes, avec un élément interne de type tableau :
opérations arithmétiques entre deux tableaux,
opérations sur tous les mots d’un tableau,
sommation des mots d’un tableau,
comparaison de deux tableaux,
recherche dans un tableau.
• un élément interne de type message doit être de longueur paire avec un
maximum de 78 caractères.
E
6/11
E
6/12
Opérations sur les objets d'OFBs Intercalaire F
sur les objets d'E/S à distance
Chapitre
1
Page
Opérations sur bits et chaîne de bits
Sommaire
1/1
1.1 Opérations sur bits
1.2 Transfert d'une chaîne de bits dans une autre
1.3 Transfert d'une chaîne de bits dans un mot
1.4 Transfert d'un mot dans une chaîne de bits
1.5 Transfert d'une valeur immédiate dans une chaîne de bits
2
Opérations sur mots
Sommaire
2/1
2.1 Transfert
2.2 Incrémentation et décrémentation
2.3 Décalage
2.4 Comparaison
2.5 Opérations arithmétiques
2.6 Extraction de racine carrée
2.7 Opérations logiques
2.8 Transcodage
3
Opérations sur tableaux de mots
Sommaire
3/1
3.1 Initialisation d'un tableau de mots
3.2 Transfert d'un tableau dans un autre
3.3 Opérations entre tableaux
3.4 Opérations sur tous les mots d'un tableau
3.5 Sommation des mots d'un tableau
3.6 Comparaison de deux tableaux
3.7 Recherche dans un tableau du premier mot égal à une valeur
F/1
F
F
F/2
Opérations sur bits et chaîne de bits
1
Opérations sur bits et chaîne de bits Chapitre 1
Sous chapitre
Page
1.1 Opérations sur bits
1/2
1.2 Transfert d'une chaîne de bits dans une autre
1/3
1.3 Transfert d'une chaîne de bits dans un mot
1/3
1.4 Transfert d'un mot dans une chaîne de bits
1/3
1.5 Transfert d'une valeur immédiate dans une chaîne de bits
1/4
Ce chapitre se termine à la page
1/4
F
1/1
1.1
Opérations sur bits
Inversion logique
NOT Opérande booléen
Se reporter Int. D, chapitre 3.7
Mise à 1 ou à 0 d'un bit
SET Objet bit
Se reporter Int. D, chapitre 5.2-2
RESET Objet bit
Se reporter Int. D, chapitre 5.2-2
Expression de front
RE (Bit)
Se reporter Int. D, chapitre 3.5
FE (Bit)
Se reporter Int. D, chapitre 3.5
Affectation
Expression booléenne
→ Objet bit
Se reporter Int. D, chapitre 3.1
ET/OU logique
Opérande 1 . Opérande 2
Se reporter Int. D, chapitre 3.8
Opérande 1 + Opérande 2
Se reporter Int. D, chapitre 3.8
Opérandes
Objet
bit d'OFB
F
NOT
SET
RESET
*
*
bit d'E/S à distance
*
*
tableau de bit d'OFB (premier élément)
*
*
tableau de bit d'E/S à distance (premier
élément)
*
*
tableau de bit d'OFB indexé (premier
élément indexé)
*
*
tableau de bit d'E/S à distance (premier
élément indexé)
*
*
bit extrait de mot
*
bit extrait d'un mot indexé
(1)
indexation d'un bit extrait de mot (2)
(1)
(2)
Instruction
RE
->
FE
*
*
.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
<élément d'E/S><cnx>,<mod>,<voie>(<index>),<bit extrait>
<élément d'E/S><cnx>,<mod>,<voie>,<bit extrait>(<index>)
1/2
+
Opérations sur bits et chaîne de bits
1.2
1
Transfert d'une chaîne de bits dans une autre
chaîne de bits origine
→ chaîne de bits destination
Se reporter Int. E, chapitre 1.1
Opérandes
Objet
Chaîne de bits
origine destinat.
Exemple
tableau de bit d'OFB
*
*
<OFBi>,<élément>[8] → B0[8]
tableau de bit d'E/S
à distance
*
*
<élémt><cnx>,<mod>,<voie>[7] → B10[7]
1.3
Transfert d'une chaîne de bits dans une mot
chaîne de bits origine
→ mot
Se reporter Int. E, chapitre 1.2
Opérandes
Objet
Chaîne
de bits
Exemple
tableau de bit d'OFB
*
<OFBi>,<élément>[6] → W0
tableau de bit d'E/S
à distance
*
<élémt><cnx>,<mod>,<voie>[4] → W1
F
1.4
Transfert d'un mot dans une chaîne de bits
mot
→ chaîne de bits destination
Se reporter Int. E, chapitre 1.3
Opérandes
Objet
Chaîne
de bits
Exemple
tableau de bit d'OFB
*
W0 → <OFBi>,<élément>[16]
tableau de bit d'E/S
à distance
*
W1 → <élémt><cnx>,<mod>,<voie>[8]
1/3
1.5
Transfert d'une valeur immédiate dans une chaîne de bits
valeur immédiate
→ chaîne de bits destination
Se reporter Int. E, chapitre 1.4
Opérandes
Objet
Chaîne
de bits
Exemple
tableau de bit d'OFB
*
H'4FB2' → <OFBi>,<élément>[14]
tableau de bit d'E/S
à distance
*
- 45 → <élémt><cnx>,<mod>,<voie>[8]
F
1/4
Opérations sur mots
Opérations sur mots
2
Chapitre 2
Sous chapitre
Page
2.1 Transfert
2/2
2.2 Incrémentation et décrémentation
2/3
2.3 Décalage
2/3
2.4 Comparaison
2/3
2.5 Opérations arithmétiques
2/4
2.6 Extraction de racine carrée
2/5
2.7 Opérations logiques
2/5
2.8 Transcodage
2/6
Ce chapitre se termine à la page
2/6
F
2/1
2.1
Transfert
OP1 → OP2
Se reporter Int. E, chapitre 2.1
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot d'OFB
*
*
<OFBi>,<élément> → W0
mot d'E/S à distance
*
*
<élémt><cnx>,<mod>,<voie> → W0
mot d'OFB indexé
*
*
<OFBi>,<élément>(<index>) → W0
mot d'E/S à distance indexé
*
*
<élémt><cnx>,<mod>,<voie>(<index>) → W0
double mot d'OFB
*
*
<OFBi>,<élément> → DW0
double mot d'E/S à distance
*
*
<élémt><cnx>,<mod>,<voie> → DW0
double mot d'OFB indexé
*
*
<OFBi>,<élément>(<index>) → DW0
double mot d'E/S à distance
indexé
*
*
<élémt><cnx>,<mod>,<voie>(<index>) → DW0
2.2
Incrémentation et décrémentation
INC opérande
DEC opérande
Se reporter Int. E, chapitre 2.2
Se reporter Int. E, chapitre 2.2
Opérandes
F
Objet
Exemple
mot d'OFB
INC <OFBi>,<élément>
mot d'E/S à distance
DEC <élémt><cnx>,<mod>,<voie>
mot d'OFB indexé
DEC <OFBi>,<élément>(<index>)
mot d'E/S à distance indexé
INC <élémt><cnx>,<mod>,<voie>(<index>)
2/2
Opérations sur mots
2.3
2
Décalage
SHL i(OP1) → OP2
SHR i(OP1) → OP2
Se reporter Int. E, chapitre 2.3
Se reporter Int. E, chapitre 2.3
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot d'OFB
*
*
SHL i(<OFBi>,<élément>) → W0
mot d'E/S à distance
*
*
SHR i(<élémt><cnx>,<mod>,<voie>) → W0
mot d'OFB indexé
*
*
SHR i(<OFBi>,<élément>(<index>)) → W0
mot d'E/S à distance
indexé
*
*
SHL i(<élémt><cnx>,<mod>,<voie>(<index>)) → W0
2.4
Comparaison
OP1
OP1
OP1
OP1
OP1
OP1
> OP2
>= OP2
< OP2
<= OP2
= OP2
<> OP2
Se reporter Int. E, chapitre 2.4
Se reporter Int. E, chapitre 2.4
Se reporter Int. E, chapitre 2.4
Se reporter Int. E, chapitre 2.4
Se reporter Int. E, chapitre 2.4
Se reporter Int. E, chapitre 2.4
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot d'OFB
*
*
<OFBi>,<élément> > W0
mot d'E/S à distance
*
*
<élémt><cnx>,<mod>,<voie>) <> W0
mot d'OFB indexé
*
*
W0 <> <OFBi>,<élément>(<index>)
mot d'E/S à distance
indexé
*
*
<élémt><cnx>,<mod>,<voie>(<index>) = W0
double mot d'OFB
*
*
W0 >= <OFBi>,<élément>
double mot d'E/S
à distance
*
*
W0 <= <élémt><cnx>,<mod>,<voie>
double mot d'OFB
indexé
*
*
DW0 <> <OFBi>,<élément>(<index>)
double mot d'E/S
à distance indexé
*
*
<élémt><cnx>,<mod>,<voie>(<index>) < DW0
F
2/3
2.5
Opérations arithmétiques
OP1
OP1
OP1
OP1
+
*
/
OP2
OP2
OP2
OP2
Se reporter Int. E, chapitre 2.5
Se reporter Int. E, chapitre 2.5
Se reporter Int. E, chapitre 2.5
Se reporter Int. E, chapitre 2.5
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot d'OFB
*
*
<OFBi>,<élément> + W0
mot d'E/S à distance
*
*
<élémt><cnx>,<mod>,<voie> - W0
mot d'OFB indexé
*
*
W0 * <OFBi>,<élément>(<index>)
mot d'E/S à distance
indexé
*
*
<élémt><cnx>,<mod>,<voie>(<index>) / W0
double mot d'OFB
*
*
W0 + <OFBi>,<élément>
double mot d'E/S
à distance
*
*
W0 - <élémt><cnx>,<mod>,<voie>
double mot d'OFB
indexé
*
*
DW0 * <OFBi>,<élément>(<index>)
double mot d'E/S
à distance indexé
*
*
<élémt><cnx>,<mod>,<voie>(<index>) / DW0
F
2/4
Opérations sur mots
2.6
2
Extraction de racine carrée
SQRT(OP1) → OP2
Se reporter Int. E, chapitre 2.6
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot d'OFB
*
*
SQRT(<OFBi>,<élément>) → W0
mot d'E/S à distance
*
*
SQRT(<élémt><cnx>,<mod>,<voie>) → W0
mot d'OFB indexé
*
*
SQRT(W0) → <OFBi>,<élément>(<index>)
mot d'E/S à distance
indexé
*
*
SQRT(W0) → <élémt><cnx>,<mod>,<voie>(<index>)
double mot d'OFB
*
*
SQRT(W0) → <OFBi>,<élément>
double mot d'E/S
à distance
*
*
SQRT(W0) → <élémt><cnx>,<mod>,<voie>
double mot d'OFB
indexé
*
*
SQRT(<OFBi>,<élément>(<index>)) → DW0
double mot d'E/S
à distance indexé
*
*
SQRT(<élémt><cnx>,<mod>,<voie>(<index>)) → DW0
2.7
Opérations logiques
OP1 AND OP2
OP1 OR OP2
OP1 XOR OP2
CPL(OP1)
Se reporter Int. E, chapitre 2.7
Se reporter Int. E, chapitre 2.7
Se reporter Int. E, chapitre 2.7
Se reporter Int. E, chapitre 2.7
F
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot d'OFB
*
*
<OFBi>,<élément> OR W0
mot d'E/S à distance
*
*
<élémt><cnx>,<mod>,<voie>) AND W0
mot d'OFB indexé
*
*
W0 XOR <OFBi>,<élément>(<index>)
mot d'E/S à distance
indexé
*
*
CPL(<élémt><cnx>,<mod>,<voie>(<index>))
2/5
2.8
Transcodage
DTB(OP1)
BTD(OP1)
ATB(OP1)
BTA(OP1)
GTB(OP1)
→
→
→
→
→
OP2
OP2
OP2
OP2
OP2
Se reporter Int. E, chapitre 2.8
Se reporter Int. E, chapitre 2.8
Se reporter Int. E, chapitre 2.8
Se reporter Int. E, chapitre 2.8
Se reporter Int. E, chapitre 2.8
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot d'OFB
*
*
BTD(<OFBi>,<élément>) → W0
mot d'E/S à distance
*
*
DTB(<élémt><cnx>,<mod>,<voie>) → W0
mot d'OFB indexé
*
*
GTB(<OFBi>,<élément>(<index>)) → W0
mot d'E/S à distance
indexé
*
*
BTA(<élémt><cnx>,<mod>,<voie>(<index>) ) → W0[3]
tableau de mots
d'OFB
*(1)
BTA(W0) → <OFBi>,<élément>[3]
tableau de mots
d'E/S à distance
*(1)
BTA(W0) → <élémt><cnx>,<mod>,<voie>[3]
(1)
uniquement pour le transcodage BTA
F
2/6
Opérations sur tableaux de mots
Opérations sur tableaux de mots
1
Chapitre 3
Sous chapitre
Page
3.1 Initialisation d'un tableau de mots
3/2
3.2 Transfert d'un tableau dans un autre
3/3
3.3 Opérations entre tableaux
3/4
3.4 Opérations sur tous les mots d'un tableau
3/5
3.5 Sommation des mots d'un tableau
3/6
3.6 Comparaison de deux tableaux
3/7
3.7 Recherche dans un tableau du premier mot égal à une valeur
3/8
Ce chapitre se termine à la page
3/8
F
3/1
3.1
Initialisation d'un tableau de mots
OP
→ tableau
Se reporter Int. E, chapitre 3.1
Opérandes
Objet
Opérandes Exemple
OP tabl.
mot d'OFB
*
<OFBi>,<élément> → W0[5]
mot d'E/S à distance
*
<élémt><cnx>,<mod>,<voie> → W0[9]
mot d'OFB indexé
*
<OFBi>,<élément>(<index>) → W0[4]
mot d'E/S à distance
indexé
*
<élémt><cnx>,<mod>,<voie>(<index>) → W0[12]
double mot d'OFB
*
<OFBi>,<élément> → W0[16]
double mot d'E/S
à distance
*
<élémt><cnx>,<mod>,<voie> → W0[6]
double mot d'OFB
indexé
*
<OFBi>,<élément>(<index>) → W0[11]
double mot d'E/S
à distance indexé
*
<élémt><cnx>,<mod>,<voie>(<index>) → W0[10]
tableau de mots
d'OFB
*
*
W0 → <OFBi>,<élément>[<taille>]
tableau de mots
d'E/S à distance
*
*
W0 → <élémt><cnx>,<mod>,<voie>[<taille>]
tableau de doubles
mots d'OFB
*
*
W0 → <OFBi>,<élément>[<taille>]
tableau de doubles
mots d'E/S à distance
*
*
W0 → <élémt><cnx>,<mod>,<voie>[<taille>]
F
3/2
1
Opérations sur tableaux de mots
3.2
Transfert d'un tableau dans un autre
tableau origine
→ tableau destination
Se reporter Int. E, chapitre 3.2
Opérandes
Objet
Tableaux Exemple
orig. dest.
tableau de mots
d'OFB
*
*
W0[4] → <OFBi>,<élément>[4]
tableau de mots
d'E/S à distance
*
*
W0[8] → <élémt><cnx>,<mod>,<voie>[8]
tableau de mots
d'OFB indexé
*
*
<OFBi>,<élément>(<index>)[7] → W0[7]
tableau de mots d'E/S
à distance indexé
*
*
W0[12] → <élémt><cnx>,<mod>,<voie>(<index>)[12]
tableau de doubles
mots d'OFB
*
*
<OFBi>,<élément>[5] → DW0[5]
tableau de doubles
mots d'E/S à distance
*
*
DW0[9] → <élémt><cnx>,<mod>,<voie>[9]
tableau de doubles
mots d'OFB indexé
*
*
DW0[6] → <OFBi>,<élément>(<index>)[6]
tableau de doubles
mots d'E/S à distance
indexé
*
*
<élémt><cnx>,<mod>,<voie>(<index>)[7] → DW0[7]
F
3/3
3.3
Opérations entre tableaux
tableau
tableau
tableau
tableau
tableau
tableau
tableau
tableau
1
1
1
1
1
1
1
1
+ tableau 2 → tableau destination
- tableau 2 → tableau destination
* tableau 2 → tableau destination
/ tableau 2 → tableau destination
REM tableau 2 → tableau destination
AND tableau 2 → tableau destination
OR tableau 2 → tableau destination
XOR tableau 2 → tableau destination
Se reporter Int. E, chapitre 3.3
Opérandes
Objet
1
Tableaux
Exemple
2 dest.
tableau de mots
d'OFB
*
<OFBi>,<élément>[4] AND W0[4] → W6[4]
tableau de mots
d'E/S à distance
*
<élémt><cnx>,<mod>,<voie>[8] OR W0[8] → W10[8]
tableau de doubles
mots d'OFB
*(1)
tableau de doubles
*(1)
mots d'E/S à distance
(1)
<OFBi>,<élément>[5] / DW12[5] → DW0[5]
<élémt><cnx>,<mod>,<voie>[9] - DW0[9] → DW15[9]
sauf pour les opérations AND, OR et XOR.
F
3/4
1
Opérations sur tableaux de mots
3.4
Opérations sur tous les mots d'un tableau
OP
OP
OP
OP
OP
OP
OP
OP
+ tableau origine → tableau destination
- tableau origine → tableau destination
* tableau origine → tableau destination
/ tableau origine → tableau destination
REM tableau origine → tableau destination
AND tableau origine → tableau destination
OR tableau origine → tableau destination
XOR tableau origine → tableau destination
Se reporter Int. E, chapitre 3.4
Opérandes
Objet
OP Tableaux Exemple
orig. dest.
mot d'OFB
*
<OFBi>,<élément> AND W0[4] → W10[4]
mot d'E/S à
distance
*
<élémt><cnx>,<mod>,<voie> * W0[6] → W10[6]
mot d'OFB indexé
*
<OFBi>,<élément>(<index>) XOR W20[7] → W0[7]
mot d'E/S à
distance indexé
*
<élémt><cnx>,<mod>,<voie>(<index>) AND W0[12] → W20[12]
double mot d'OFB
*
<OFBi>,<élément> / DW12[5] → DW0[5]
double mot d'E/S
à distance
*
<élémt><cnx>,<mod>,<voie> - DW0[9] → DW20[9]
double mot d'OFB
indexé
*
<OFBi>,<élément>(<index>) REM DW0[6] → DW7[6]
double mot d'E/S
à distance indexé
*
<élémt><cnx>,<mod>,<voie>(<index>) + DW0[7] → DW10[7]
F
3/5
3.5
Sommation des mots d'un tableau
tableau+
→ mot
Se reporter Int. E, chapitre 3.5
Opérandes
Objet
F
Opérandes Exemple
tabl. mot
mot d'OFB
*
W0[10]+ → <OFBi>,<élément>
DW0[8]+ → <élémt><cnx>,<mod>,<voie>
mot d'E/S à distance
*
mot d'OFB indexé
*
DW0[6]+ → <OFBi>,<élément>(<index>)
mot d'E/S à distance
indexé
*
W0[4]+ → <élémt><cnx>,<mod>,<voie>(<index>)
double mot d'OFB
*
DW0[12]+ → <OFBi>,<élément>
double mot d'E/S
à distance
*
W0[7]+ → <élémt><cnx>,<mod>,<voie>
double mot d'OFB
indexé
*
W0[5]+ → <OFBi>,<élément>(<index>)
double mot d'E/S
à distance indexé
*
DW0[5]+ → <élémt><cnx>,<mod>,<voie>(<index>)
tableau de mots
d'OFB
*
* (1)
<OFBi>,<élément>[<taille>]+ → W0
tableau de mots
d'E/S à distance
*
*(1)
<élémt><cnx>,<mod>,<voie>[<taille>]+ → W0
tableau de doubles
mots d'OFB
*
*(1)
<OFBi>,<élément>[<taille>]+ → DW0
tableau de doubles
mots d'E/S à distance
*
*(1)
<élémt><cnx>,<mod>,<voie>[<taille>]+ → DW20
(1)
3/6
premier élément du tableau
1
Opérations sur tableaux de mots
3.6
Comparaison de deux tableaux
EQUAL(tableau1;tableau2)
→ mot
Se reporter Int. E, chapitre 3.6
Opérandes
Objet
Tab. Mot Exemple
1 2
mot d'OFB
*
EQUAL(W0[10];W20[10]) → <OFBi>,<élément>
mot d'E/S à distance
*
EQUAL(DW0[8];DW10[8]) → <élémt><cnx>,<mod>,<voie>
mot d'OFB indexé
*
EQUAL(W0[6];W11[6]) → <OFBi>,<élément>(<index>)
mot d'E/S à distance
indexé
*
EQUAL(W0[4];W10[4]) → <élémt><cnx>,<mod>,<voie>(<index>)
double mot d'OFB
*
EQUAL(DW0[12];DW20[12]) → <OFBi>,<élément>
double mot d'E/S
à distance
*
EQUAL(W0[7];W10[7]) → <élémt><cnx>,<mod>,<voie>
double mot d'OFB
indexé
*
EQUAL(W0[5];W10[5]) → <OFBi>,<élément>(<index>
double mot d'E/S
à distance indexé
*
EQUAL(DW0[5];DW10[5]) → <élémt><cnx>,<mod>,<voie>(<index>)
tableau de mots
d'OFB
* * * (1) EQUAL(<OFBi>,<élément>[2];W10[2]) → W0
tableau de mots
d'E/S à distance
* * *(1) EQUAL(W10[5];<élémt><cnx>,<mod>,<voie>[5]) → W0
tableau de doubles
mots d'OFB
* * *(1) EQUAL(<OFBi>,<élément>[8];DW12[8]) → DW0
tableau de doubles
* * *(1) EQUAL(DW0[7];<élémt><cnx>,<mod>,<voie>[7]) → DW20
mots d'E/S à distance
(1)
F
premier élément du tableau
3/7
3.7
Recherche dans un tableau du premier mot égal à une valeur
SEARCH(tableau;mot1 à rechercher)
→ mot2 résultat
Se reporter Int. E, chapitre 3.8
Opérandes
Objet
F
Tab. Mots Exemple
1 2
mot d'OFB
* SEARCH(W0[10];W20) → <OFBi>,<élément>
mot d'E/S à distance
* SEARCH(W10[8];W0) → <élémt><cnx>,<mod>,<voie>
mot d'OFB indexé
* SEARCH(W0[6];W10) → <OFBi>,<élément>(<index>)
mot d'E/S à distance
indexé
* SEARCH(W0[4];W10) → <élémt><cnx>,<mod>,<voie>(<index>)
double mot d'OFB
* SEARCH(W0[12];W20) → <OFBi>,<élément>
double mot d'E/S
à distance
* SEARCH(W0[7];W10) → <élémt><cnx>,<mod>,<voie>
double mot d'OFB
indexé
* SERACH(W0[5];W10) → <OFBi>,<élément>(<index>
double mot d'E/S
à distance indexé
* SEARCH(W0[5];W10) → <élémt><cnx>,<mod>,<voie>(<index>)
tableau de mots
d'OFB
*
*(1) SEARCH(<OFBi>,<élément>[2];W10) → W0
tableau de mots
d'E/S à distance
*
*(1) SEARCH(<élémt><cnx>,<mod>,<voie>[5];W10) → W0
tableau de doubles
mots d'OFB
*
*(1) SEARCH(<OFBi>,<élément>[8];DW12) → DW0
tableau de doubles
mots d'E/S à distance
*
*(1) SEARCH(<élémt><cnx>,<mod>,<voie>[7];DW0) → DW20
(1)
3/8
premier élément du tableau
Opérations au format flottant
Chapitre
1
Intercalaire G
Page
Opérations sur mots
Sommaire
1/1
1.1 Transfert
1.2 Comparaison
1.3 Opérations arithmétiques
1.4 Extraction de racine carrée
1.5 Transcodage
G
G/1
G
G/2
Opérations sur mots
Opérations sur mots
2
Chapitre 1
Sous chapitre
Page
1.1 Transfert
1/2
1.2 Comparaison
1/2
1.2 Opérations arithmétiques
1/3
1.4 Extraction de racine carrée
1/4
1.5 Transcodage
1/5
Ce chapitre se termine à la page
1/6
G
1/1
1.1
Transfert
OP1 → OP2
Se reporter Int. E, chapitre 2.1
Opérandes
Objet
Opérandes Exemple
OP1 OP2
valeur immédiate
*
1.42E+2
mot interne double longueur
*
1.42E+2 → DW25
double mot d'OFB
*
435.26 → <OFBi>,<élément>
double mot d'E/S à
distance
*
1.285e-5 → <élémt><cnx>,<mod>,<voie>
1.2
Comparaison
SUPF(OP1;OP2)
INFF(OP1;OP2)
EQUF(OP1;OP2)
test si l'opérande 1 est supérieur à l'opérande 2,
test si l'opérande 1 est inférieur à l'opérande 2,
test si l'opérande 1 est égal à l'opérande 2.
Le résultat vaut 1 si la comparaison est vraie, sinon il est égal à 0 (se reporter
Int. E, chapitre 2.4).
Opérandes
Objet
G
Opérandes Exemple
OP1 OP2
mot interne double longueur
*
*
SUPF(DW20;DW30) → B3
mot constant double longueur
*
*
IF SUPF(CDW10;DW10) THEN
double mot d'OFB
*
*
WHILE SUPF(<OFBi>,<élément>;DW10) DO
double mot d'E/S à
distance
*
*
INFF(DW2;<élémt><cnx>,<mod>,<voie>) → B5
Note
Il est possible de combiner la fonction de comparaison avec d'autres fonctions ou objets, par
l'intermédiaire des opérateurs logiques ET, OU et NOT. Par exemple :
• IF EQUF(DW20;DW30) . B6 + B3 THEN ...
• B6 . INFF(DW10;DW20) + B10 → B20
1/2
2
Opérations sur mots
1.3
Opérations arithmétiques
ADDF(OP1;OP2)
SUBF(OP1;OP2)
MULF(OP1;OP2)
DIVF(OP1;OP2)
réalise l'addition des deux opérandes,
réalise la soustraction des deux opérandes,
réalise la multiplication des deux opérandes,
réalise la division des deux opérandes.
Le résultat des opérations est un nombre flottant qui est forcément transféré dans
un double mot pouvant être écrit (se reporter Int. E, chapitre 2.5). Si ce nombre
n'appartient pas au domaine de définition des nombres flottants, le bit système
SY18 est mis à 1 par le système et la valeur du nombre résultant est égale à celle
du deuxième opérande.
Si l'un des deux opérandes ne fait pas partie du domaine de définition des nombres
flottants, la valeur du résultat est indéterminée, mais aucune erreur n'est signalée.
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot interne double longueur
*
*
ADDF(DW10;DW20) → DW30
mot constant double longueur
*
*
SUBF(CDW10;DW10) → DW30
double mot d'OFB
*
*
MULF(<OFBi>,<élément>;DW10) → DW30
double mot d'E/S à
distance
*
*
DIVF(DW2;<élémt><cnx>,<mod>,<voie>) → DW5
Note
On ne peut pas imbriquer les fonctions de calcul dans une autre fonction.
G
1/3
1.4
Extraction de racine carrée
SQRTF(OP)
réalise l'extraction de la racine carrée de l'opérande.
Le résultat de l'opération est un nombre flottant qui est forcément transféré dans un
double mot pouvant être écrit (se reporter Int. E, chapitre 2.6). Si l'opérande a une
valeur négative, le bit système SY18 est mis à 1 par le système et la valeur du
nombre résultant est égale à celle de l'opérande.
Opérandes
Objet
Opérandes Exemple
OP1 OP2
mot interne double longueur
*
*
SQRTF(DW10) → DW30
mot constant double longueur
*
*
SQRTF(CDW10) → DW30
double mot d'OFB
*
*
SQRTF(<OFBi>,<élément>) → DW30
double mot d'E/S à
distance
*
*
SQRTF(<élémt><cnx>,<mod>,<voie>) → DW30
Note
On ne peut pas imbriquer la fonction d'extraction de racine carrée dans une autre fonction.
G
1/4
Opérations sur mots
1.5
2
Transcodage
BTF(OP1)
ATF(OP1)
DTF(OP1)
FTB(OP1)
FTA(OP1)
FTD(OP1)
→
→
→
→
→
→
OP2
OP2
OP2
OP2
OP2
OP2
transcodage binaire → flottant
transcodage ASCII → flottant
transcodage BCD → flottant
transcodage flottant → binaire
transcodage flottant → ASCII
transcodage flottant → BCD
Lors d'une conversion au format flottant : BTF, ATF ou DTF, le résultat de l'opération
étant un nombre flottant, il est forcément transféré dans un double mot pouvant être
écrit.
Pendant la conversion d'une chaîne de caractères en nombre flottant : ATF,
l'opérande à convertir OP1 est obligatoirement un tableau de 7 mots. Il en est de
même pour l'opérande OP2, lors d'une conversion d'un nombre flottant en chaîne
de caractères ASCII : FTA.
Pendant la conversion d'un nombre codé BCD en nombre flottant : DTF, l'opérande
OP1 est obligatoirement un tableau de 5 mots (10 octets) représentant le nombre
codé BCD. Il en est de même pour l'opérande OP2, lors d'une conversion d'un
flottant en nombre codé BCD : FTD.
Si une erreur "overflow" ou "underflow" intervient pendant une conversion, le bit
SY18 est mis à 1 par le système et le résultat est indéterminé :
• la valeur flottante obtenue ne fait pas partie du domaine de définition des nombres
flottants,
• la valeur du double mot, obtenue lors d'une conversion FTB est supérieure à
2 147 483 647 ou inférieure à - 2 147 483 648,
• la valeur obtenue lors d'une conversion FTD ne peut pas être codée en BCD.
Lors d'une conversion d'un nombre flottant en double mot entier, le résultat est
tronqué à la valeur entière inférieure la plus proche. Par exemple :
• 1234.25 → 1234,
• -1234.25 → -1235,
• 1234.75 → 1234,
• -1234.75 → -1235.
Opérandes
Objet
Opérandes Exemple
OP1 OP2
*
mot constant double longueur
*
double mot d'OFB
*
*
FTA(<OFBi>,<élément>) → W10[7]
double mot d'E/S à
distance
*
*
DTF(W10[5]) → <élémt><cnx>,<mod>,<voie>
*(1)
*(2)
tableau de mots internes
(1)
uniquement ATF ou DTF
(2)
*
FTB(DW20) → DW30
mot interne double longueur
BTF(CDW10) → DW30
G
ATF(W20[7]) → DW10
FTD(CDW20) → W30[5]
uniquement FTA ou FTD
1/5
G
1/6

Manuels associés