Vous êtes sur la page 1sur 458

Sommaire

CPU 928
Instructions de programmation
1
C79000-B8577-C633-01

CPU 928
Communication multiprocesseur
Instructions de Guide d'utilisation
2
programmation C79000-B8577-C468-05

Liste d'opérations, CPU 9 2 X P U 928/CPU 928B/


CPU 948

No de réf. :6ES5 997-3UA32, léreédition


livrée avec le manuel
SIMATIC S5
CPU 928
Instructions de programmation N o de réf . C79000-B8577-C633-01

1 Introduction: AG 135U .mde de fonctionriement et dmnaine


dvapplicaticm ..............................................1-1
1.1 Nouvelles propriétés et fonctions de la CPU 928 ............1-7

2 Prqyame utilisateur ......................................2-1


2.1 Langage de programmation STEP5 .............................2-1
2.1.1 Modes de représentation CONT. U G et LIST ..................2-2
2.1.2 Programmation structurée ...................................2-3
2.1.3 Instructions STEP5 ......................................... 2-4
2.1.4 Représentation des valeurs numériques ......................2-5
2.1.5 Blocs STEP5 ................................................2-9

2.2 Blocs d'organisation. de programme et séquentiels . . . . . . . . .2-13


2.2.1 Programmation .............................................2-13
2.2.2 Appel .................................................... 2-14
2.2.3 Blocs d'organisation spéciaux..............................2-16
2.2.4 Blocs d'organisation à fonction spéciale...................2-18

2.3 Blocs fonctionnels ........................................2-19


2.3.1 Structure de blocs fonctionnels ...........................2-20
2.3.2 Programmation de blocs fonctionnels .......................2-22
2.3.3 Appel et paramétrage de blocs fonctionnels ................ 2-26
2.3.4 Blocs fonctionnels spéciaux ...............................2-29

2.4 Blocs de données ..........................................2-31


2.4.1 Structure d'un bloc de données ............................ 2-31
2.4.2 Programmation de blocs de do~inées .........................2-32
2.4.3 Appel de blocs de données .................................2-33
2.4.4 Blocs de données spéciaux ................................ 2-35

3 Traitement du prqyame ....................................3-1


3.1 Vue d'ensemble .............................................3-1
3.1.1 Organisation du programme ..................................3-1
3.1.2 Mémorisation du programme ..................................3-5
3.1.3 Traitement du programme utilisateur STEP5 ..................3-6
3.1.4 Détermination du traitement du programme ...................3-9
3.2 Liste des opérations STEP5 avec exemples de programmation .3-10
3.2.1 Opérations de base ........................................
3-13
3.2.2 Opérations étendues .......................................3-37
4 Etats de fonctionnement ....................................4-1
4.1 Etats de fonctionnement et niveaux de traitement du
progranune..................................................4-1
4.2 Etat de fonctionnement STOP ................................4-6

4.3 Mode de fonctionnement DEMARRAGE ...........................4-9


4.3.1 Démarrage et redémarrage manuel ...........................4-11
4.3.2 Redémarrage automatique ...................................4-13
4.3.3 Interruptions en cours de DEMARRAGE .......................4-14

4.4 Etat de fonctionnement RUN ............................... 4-16


4.4.1 CYCLE: traitement cyclique du progranune ...................4-17
4.4.2 ALARMES D'HORLOGE: traitement déclenché par horloge .......4-18
4.4.3 ALARME DE REGUIATEUR: traitement de régulateurs ...........4-23
4.4.4 ALARME PROCESS : traitement d'alarmes process .............4-24

5 Traitement des interruptions et des défauts ................5-1


5.1 Erreurs fréquentes du progranune utilisateur ................. 5-1

5.2 Exploitation des informations de défaut ....................5-2


5.3 Bits de commande et pile d'interruptions ................... 5-7

5.4 Traitement des défauts à l'aide des blocs d'organisation ..5-18

5.5 Défaut au DEMARRAGE ..................................... .5.21


5.5.1 DEFDBO ................................................... 5-22
5.5.2 DEFDBl ................................................... 5-22
5.5.3 DEFDB2 .................................................... 5-24
5.5.4 DEFDXO ....................................................5-25

Défaut en RUN et au DEMARRAGE ............................. 5-26


DCO (Code instruction erroné) ............................. 5.27
DPT (dépassement temps) ................................... 5-30
DAD (erreur d'adressage) ..................................5-34
ACQ (retard d'acquittement) ...............................
5.35
CYC (dépassement du temps de cycle) .......................5-36
Collision d'alarmes d'horloge (>100) ......................5-37
REG (erreur dans le programme de régulation) ..............5-37
ABANDON ...................................................5-40

6 Fonctions spéciales intégrées .............................. 6-1


6.1 Manipulations de registres ................................. 6-5
6.1.1 Accès à l'octet des indicateurs (OB 110) ................... 6-5
6.1.2 Effacement des accus 1. 2. 3 et 4 (OB 111) ................. 6-7
6.1.3 Décalage des contenus d'accus dans le sens croissant
(Roll up. OB 112) et décroissant (Roll down. OB 113) .......6-8

6.2 Instructions de structure ................................. 6-10


6.2.1 Comptage de boucles (OB 160 à 163) ........................ 6-10
6.4 Manipulation des blocs ....................................6-16
6.4.1 Accès variable aux blocs de données (OB 180) ..............
6-16
6.4.2 Test des blocs de données DB/DX (OB 181) ..................6-20
6.4.3 Transfert de mémentos dans un bloc de données
(OB 190 et OB 192) ........................................6-22
6.4.4 Transfert de données dans la zone de mémentos
(OB 191 et OB 193) ........................................
6-24
6.4.5 Transfert de blocs de données dans la RAM DB
(OB 254.OB 255) .......................................... 6-29

6.5 Communication multiprocesseurs (OB 200 à OB 205) ..........6-31


6.6 Accès aux pages mémoires ..................................6-32
6.6.1 Ecriture dans une page mémoire (OB 216) ................... 6-35
6.6.2 Lecture à partir d'une page mémoire (OB 217) ..............6-37
6.6.3 Réservation d'accès à une page mémoire (OB 218) ...........6-39

6.7 Extension du signe (OB 220) ............................... 6-43


Fonctions système .........................................6-44
Activation/désactivation de "1' inhibition générale
des alarmes" (OB 120) et de "l'ajournement général
des alarmes" (OB 122) .....................................6-44
Activation/désactivation de "l'inhibition sélective
d'alarmes d'horloge" (OB 121) et de "l'ajournement
sélectif d'alarmes d'horloge" (OB 123) ....................6-46
Réglage du temps de cycle (OB 221) ........................ 6-49
Réarmement du chien de garde (OB 222) .....................6-49
Comparaison des types de démarrage (OB 223) ...............6-50
Transfert en bloc de mémentos de couplage (OB 224) ........6-50
Lecture d'un mot dans le programme système (OB 226) .......6-51
Lecture du checksum du programme système (OB 227) .........6-52
Lecture de l'information d'etat concernant le niveau de
traitement du programme (OB 228) .......................... 6-54

6.9 Fonctions pour les blocs fonctionnels standard


(OB 230 à OB 237) ......................................... 6-56

6.10 Registres à décalage ........................ .


.
...........6.57
6.10.1 Initialisation du registre à décalage (OB 240) ............6-60
6.10.2Traitement du registre à décalage (OB 241) ................6-63
6.10.3 Effacement du registre à décalage (OB 242) ................6-64

6.11 Régulation: algorithme PID ................................ 6-65


6.11.1 lnitialisation de l'algorithme PID (OB 250) ...............6-72
6.11.2 Traitement de l'algorithme PID (OB 251) ...................6-73

7 Bloc de damées étendu DX O ................................7-1


8 Contenu et organisation de la mémoire ......................8.1
8.1 Topogramme de la mémoire de la CPU 928 .....................8-2
8.1.1 Topogramme de la RAM système .............................. 8-3
8.1.2 Topogramme de la zone de périphérie ........................ 8-4
8.2 Organisation de la mémoire dans la CPU 928 .................8-7
8.2.1 En-têtes de blocs dans la mémoire utilisateur et la
RAM des DB .................................................8-7
8.2.2 Tables d'adresses de blocs dans le bloc de données DB O ....8-8
8.2.3 Zones EA/BB ...........................................
...8-12
8.2.4 Zones BS/BT ...............................................
8-12

9 Accès à ia mémoire par les adresses absolues ...............9.1


9.1 Accès aux registres avec adressage indirect par accu 1 .....9-5

9.2 Transfert de blocs de mémoire ............................ 9-13

9.3 Opérations avec le registre de base BR .................... 9-19


9.3.1 Chargement du registre de base BR .........................9-19
9.3.2 Opérations de transfert entre registres ................... 9-20
9.3.3 Accès à la mémoire locale ................................ 9-21
9.3.4 Accès à la mémoire commune ................................ 9-21
9.3.5 Accès aux pages mémoire ................................... 9-24

10 Configuration. multiprocesseur/Ekploitatïcm avec


processeurs de cammmïcation ..............................10-1
10.1 Avertissements ............................................10-1

10.2 Echange de données entre processeurs....................... 10-3


10.2.1 Mémentos de couplage ......................................10-4
10.2.2 Communication multiprocesseur .............................10-8
10.2.3 Transfert de paquets de données cohérents ................. 10-8

10.3 Affectation de la périphérie ..............................10-9


10.3.1 Bloc de données DB 1 ......................................10-9

10.4 Démarrage en fonctionnement multiprocesseur............. ..10-12

10.5 Mode de fonctionnement TEST .............................. 10-13

11 ....................11-1
M i a i r e s de test: fonctions on-line

11.1 Fonction on-line "ETAT VAR" ...............................11-3


11.2 Fonction on-line "VISUDYN" ................................11-4
11.3 Fonctionon-line "CONTROLE PASAPAS" .....................11-5
11.4 Fonction on-line "FORCAGE" ................................11-9
11.5 Fonctionon-line wFORCAGEVARw ............................11-9
11.6 Fonction on-line "COMPRESSION MEMOIRE" ...................11-10
11.7 ..........................11-10
Fonction on-line llSTART1l/"STOP1l
11.8 Fonction on-line "EFFACEMENT GENERAL" .................... 11-11
11.9 Fonction on-line "LECTURE ADRESSEv1....................... 11-11
11.10 Fonction on-line llORGANISATIONMEMOIRE" ..................11-11
11.11 Tableau: Activités exécutées aux points de contrôle ......11-12
A Caractéristiques techniques de l'AG 135U ...................A-1
B Vue d'ensemble des codes d'erreur ..........................B-1
C Vue d'ensemble des instructions STEP5 ......................C-1
D Vue d'ensemble (alphabétique) des instructions STEP5 .......D-1

E Instructions STEP5 de la CPU 928, classées dans l'ordre


des codes instructions ........................................

F Instructions STEP5 qui ne peuvent être exécutées par


la CPU 928 ...........................................,,,,,.F-l

G Codes des niveaux de traitement de programme ...............G-1


H Exemple d'explication de la pile des interruptions .........H-1

Index

Vue d'ensemble des figures et synoptiques


Où trouver moi?

Le Qiapitre 1 décrit le mode de fonctionnement et la structure interne d'un


processeur. Il donne une esquisse de la structure typique d'une application
mettant en oeuvre un automate programmable S5-135U et renseigne sur les
nouvelles propriétés les fonctions de la CPU 928.

Le chapitre 2 décrit la structure du programme utilisateur et met en relief


les particularités du langage de programmation STEP5. Il présente ensuite
les différents types de blocs logiciels STEP5 et décrit leur programmation.

Le chapitre 3 contient des informations sur l'exécution cyclique du pro-


gramme dans la CPU 928 ainsi que sur l'organisation et la mémorisation du
programme. Il explique l'ensemble du jeu d'instructions STEP5 et contient
de nombreuses exemples de programme. (Des informations supplémentaires
concernant les instructions STEP5 se trouvent dans la liste d'opérations
STEP5.)

Le chapitre 4 décrit les différents états de fonctionnement de la CPU 928


(démarrage, run, stop) et définit la notion de "niveau de traitement de
progamme". Il explique les différents niveaux de traitement possible dans
les divers états de fonctionnement du processeur. Il fournit en outre
d'importantes informations sur le traitement d'alarmes process et d'alarmes
d'horloge.

Le chapitre 5 traite en détail le sujet "localisation et traitement des


défauts". Il décrit des défauts typiques se présentant au démarrage et en
fonctionnement, et donne des conseils pour la localisation des défauts et
les moyens de réaction possibles. Il explique la constitution et l'exploi-
tation de la pile des interruptions (ITPILE) à l'appui des exemples.

Le chapitre 6 décrit les fonctions spéciales intégrées de la CPU 928 et


contient de nombreux exemplesd'application.

Le chapitre 7 aborde la constitution et la programmation du bloc de données


DX O qui met à votre disposition un moyen simple pour adapter les fonction-
nalités de la CPU 928 à vos besoins particuliers (également avec des
exemples de programme).

Le chapitre 8 foumit des informations détaillées sur les différentes zones


mémoire de la CPU 928. Les utilisateurs expérimentés y trouveront des
renseignements précieux concernant l'affectation des données système.

Le chapitre 9 concerne plus particulièrement les utilisateurs expérimentés,


qui disposent de très bonnes connaissances du système. Il présente toutes
les instructions STEP5 qui vous permettent d'accéder à l'ensemble de l'es-
pace mémoire par des adresses absolues et décrit les différent registres de
la CPU 928.

Le chapitre 10 fournit des informations complémentaires concernant le


fonctionnement multiprocesseur et décrit la constitution et la programma-
tion du bloc de données DB 1 qui est nécessaire en exploitation multipro-
cesseur. Il présente en outre les particularités du mode test.

Le chapitre 11 décrit quelques fonctions on-line que vous pouvez appeler sur
la console de programmation pour tester votre programme et attire l'atten-
tion sur les particularités en liaison avec la CPU 928.
Abréviations

ABAND Abandon
ACCU 1 (2,3,4)-L mot de poids faible (low word) dans l'accumulateur 1
(2,3,4), 16 bits
ACCU 1 (2,3,4)-H mot de poids fort (high word) dans l'accurmilateur 1
(2,3,4), 16 bits
ACCU 1 (2,3,4)-L;L octet de poids faible (low byte) du low word dans
l'accumulateur 1 (2,3,4), 8 bits
ACCU 1 (2,3,4)-IH octet de poids fort (high byte) du low word dans
l'accumulateur 1 (2,3,4), 8 bits
ACQ retard d'acquittement
ADF erreur d'adressage
AG automate programmable
BASP inhibition des sorties
BCD nombre décimal codé binaire
BCF erreur de code d'instruction
BLPILE pile des blocs
CAD compteur d'adresses STEP (dans le registre 15)
CONT schéma à contacts
CP processeur de communication
CYC dépassement du temps de cycle
D, DL/DR, DW,DD donnée (1 bit), donnée de gauche/de droite
(8 bits), mot-donnée (16 bits), mot-donnée double
(32 bits)
DB bloc de données
DBA adresse de début du bloc de données (dans le
registre 6)
DBL longueur du bloc de données (dans le registre 8)
DX bloc de données étendu
EPROM Erasable Programmable Read ûnly Memory
(mémoire morte effaçable et programmable)
ETAT état (indicateur bit)
FB bloc fonctionnel
FL O, FL 1 indicateurs de résultat mot
FX bloc fonctionnel étendu
IP carte périphérique intelligente
ITPILE pile des interruptions
KOR coordinateur
LIST liste d'instructions
LOG logigramme
LZF erreur de temps d'exécution
M, MB, MW, MD bit de mémento, octet de mémento, mot-mémento, mot-
mémento double
MIE mémoire image des entrées
MIS mémoire image des sorties
OB bloc d'organisation
OR OU (indicateur bit)
os merflow mémorisé (indicateur mot)
ov merflow (indicateur mot)
PB bloc de programme
PB,PW octet de périphérie (console de programmation PG 675),
mot de périphérie
PG console de programmation
l.? première scrutation (bit indicateur)
Proc . processeur
PY octet de périphérie (console de programmation PG 685)
QB, QW octet, mot de la zone 'périphérie étendue'
QVZ retard d'acquittement
Random Access Memory (mémoire à accès au libre choix)
résultat d ' équation logique
module séquentiel
fonction spéciale
temporisations
compteur (cellules de comptage)

Documents de référence

Les documents suivants permettent de se familiariser avec la programmation


en langage STEPS et l'emploi des blocs fonctionnels standards:

Programmation en langage STEP5 des automatismes


Tome 1, programmation des fonctions de base
Siemens AG, ISBN 3-8009-1407-1
Tome 2, utilisation des blocs fonctionnels standards
Siemens AG, ISBN 3-8009-1373-9
Tome 3, programmation des blocs fonctionnels
Siemens AG, ISBN 3-8009-1366-9

N'oubliez pas de consulter dans le manuel les chapitres relatifs à la


CPU 928 (notice d'emploi, liste des instructions STEPS).
1 Introduction: AG 135U -
mode de fonctionnement
et domaine d'application
Ce chapitre est destiné aux utilisateurs qui travaillent pour la première
fois avec un automate programmable mais qui connaissent déjà d'autres
microordinateurs.

Structure de llins+iillatian

ün automate progranmiable (AP) est un système informatique qui est spéciale-


ment conçu pour une utilisation industrielle, p.ex. pour la connnande d'une
machine automatique. Les automates programables sont de conception moh-
laire et ils sont constitués d'un châssis équipé d'une carte de processeur
au minimum (désignée simplement par 'processeur1 ou CPU) et de plusieurs
cartes de périphérie. C'est de la tâche d'automatisation que dépend finale-
ment le nombre de processeurs et de cartes de périphérie utilisés.

L'automate programmable S5 - 135U fait partie de la gamme des automates


programmables SIMATIC S5. II s'agit d'un appareil mltiprocesseurs efficace
destiné à l'automatisation des processus (commande, signalisation, surveil-
lance, régulation, listage) et il peut être utilisé aussi bien pour la
constitution d'automatismes simples avec des signaux binaires que pour la
solution de problèmes d'automatisation plus complexes.

L'appareil de base du S5-135U peut être équipé au choix

- d'un processeur pour le fonctionnement manoprocesseur ou


- d'un coordinateur (KOR) et de 4 processeurs au maximum lorsqulils'agit
du fonctionnement mltiprocesseurs;

- de processeurs de communication (CP) supplémentaires:


de 1 à 7 CP en fonctionnement monoprocesseur; de 4 à 6 (7) CP en fonc-
tionnement multiprocesseurs.

Les emplacements inoccupés dans le châssis de base du S5-135U sont dispo-


nibles pour des cartes d'entrées et de sorties. La périphérie peut être
élargie en raccordant des châssis d'extension (EG) à l'appareil de base.

Veuillez vous reporter au catalogue "Automate programmable S5-135U1'


ST 54.1, no de référence E86010-K4654-Aill-A3-7700.
L'illustration suivante représente la configuration typique d'une applica-
tion mettant en oeuvre un S5-135U. Les cartes entourées d'un cadre gras
suffisent pour le mode de fonctionnement monoprocesseur.

Appareils périphériquesp. ex.: Processusàcommander/


moniteur, imprimante, etc. àrégler

Figure 1-1: Structure t w i ~ u ed'une installation AG 135U

Dainaine d'application

En fonctionnement monoprocesseur l'un des processeurs suivants doit être


utilisé en fonction de la spécificité des tâches d'automatisation à ré-
soudre:

- processeur S destiné plus particulièrement aux tâches de commande


(traitement rapide sur bits)

- processeur R destiné plus particulièrement aux tâches de réguiation


(traitement sur mots)

- processeur M destiné au traitement de mesures; programmable en assembleur


et dans des langages de programmation évolués (BASIC, C)

- CPU 928, à utilisation universelle, traitement rapide sur bits et sur


mots.

Pour résoudre des problèmes d'automatisation plus complexes, la puissance


de l'appareil de base S5-135U peut être étendue par l'utilisation simulta-
née de plusieurs processeurs pour former ainsi un automate multiproces-
seurs.

Le fonctionnement multiprocesseurs est toujours utile lorsque le processus


est trop complexe pour un seul processeur et que l'application peut être
scindée en plusieurs tâches partielles quasiment indépendantes les unes des
autres. A chaque tâche partielle peut être affecté un processeur spécifique
(voir ci-dessus). Dans ce cas, chaque processeur exécute son propre pro-
gramme d'application, indépendamment des autres processeurs.
ün bus commun (= bus S5) permet aux processeurs d'accéder successivement
aux cartes périphériques. üne carte supplémentaire - le coordinateur - gère
l'accès au bus S5 des différents processeurs. Seul le processeur auquel est
attribué le bus S5 peut accéder à la périphérie.

Le bus S5 permet aux processeurs d'échanger des données. Cet échange de


données transite par une mémoire de travail incorporée dans le coordina-
teur.

Le cycle suivant se répète continuellement au sein d'un processeur:

1. Toutes les cartes d'entrée attribuées au processeur sont scrutées et les


valeurs lues sont transférées dans la mémoire image des entrées (MIE):
phase d'acquisition des entrées.

2. Les valeurs contenues dans cette MIE sont traitées par le programme
d'application et les valeurs à sortir sont inscrites dans la mémoire
image des sorties (MIS).

3. Les valeurs contenues dans cette MIS sont transférées aux cartes de
sortie dépendant du processeur: phase d'émission des sorties.

Le temps nécessaire au processeur pour l'exécution de ces trois phases est


désigné par temps de cycle.

Le cycle doit se dérouler de manière suffisamment rapide. Les états de


processus ne doivent pas évoluer plus vite que le temps de réaction requis
par le processeur, sinon, le processus échappe au contrôle. Le temps de
réaction maximal doit s'élever au double du temps de cycle. Le temps de
cycle dépend de la structure et de la longueur du programme d'application
(voir ci-dessous) et il n'est souvent pas constant.

Pour les applications nécéssitant des signaux de commande à des intervalles


de temps constants, il peut être prévu des programmes périodiques addition-
nels, déclenchés par horloge. Pour la CPU 928, 9 programmes d'horloge sont
possibles. Après écoulement de l'intervalle de temps, le traitement cy-
clique du programme est interrompu pour permettre le traitement du pro-
gramme d'horloge. Le temps de cycle est majoré du temps d'exécution du
programme d'horloge.

Un signal de processus qui requiert une réaction extrêmement rapide peut se


voir affecté un programme d'alarme spécifique. En présence d'une alarme, le
processeur interrompt le programme cyclique et exécute le programme
d'alarme. Le temps de cycle est majoré du temps d'exécution de ce programme
d'alarme.

Dans le cas le plus défavorable, le temps de cycle correspond à la sonmie


des temps d'exécution du programme cyclique et des programmes d'horloge et
d'alarme qui sont même susceptibles d'être appelés plusieurs fois au cours
d'un cycle. Chaque processeur surveille son temps de cycle. brsque la
valeur limite programmée du temps de cycle est dépassée, le processeur
interrompt l'exécution du programme, il passe à l'arrêt ainsi que les
autres processeurs et il inhibe les signaux de sortie.
Le programme existant dans chaque processeur se compose d'un programme
d'application et d'un programme système.

Les programes d'application STEP5 de l'automate programmable AG 135U sont


élaborés en lan~aaede ~ronrammationSTEP5 spécialement développé pour les
automates programmables (exception: processeur M). Le progrannne d'applica-
tion est de structure modulaire et se compose au moins d'un module de
programme (bloc). Il existe deux types de blocs fondamentaux:

a) les blocs d'instructions (ou blocs codes) qui contiennent les ins-
tructions STEP5;

b) les blocs de données: blocs contenant les constantes et les variables


du programme STEP5.

L'utilisateur n'a pas accès au programme système. Celui-ci assiste toutes


les fonctions typiques d'un automate programmable telles que

- l'actualisation des mémoires images de processus (entrées, sorties, mé-


mentos de couplage),
- l'actualisation des temporisations,
- l'appel des programmes cyclique, d'horloge et d'alarme.

Accésdirectà la~éri~hérie
!

Blocsde code
avec lespro-
grarnmesd'appli-
-El-
- MIS
~Gualisermé-

cation :
- cyclique
- d'horloge
- d'alarme

Blocsdedonnées
libre

i
I
1

1
I1

I
F I Processeur 1 I1

:-----------------------------------------------------------------1

autres
processeurs
!

Schéma fonctionnel d'un processeur dans S5-135U (rmiltiprocesseur)


C o n s t r u c t i o n inteme d'un processeur

La mémoire d'un processeur est divisée en plusieurs zones. Voici quelles


sont les zones les plus importantes:

- Mémoire utilisateur (32 Kmots m.)


La mémoire utilisateur se trouve sur une cartouche RAM ou EPRûM enfi-
chable et contient les blocs de code et de dannées.

- RAM de blocs de données (= RAM DB, 23,375 Kmots max.)

La RAM DB est une zone de mémoire destinée aux blocs de données. Les
blocs de données dont le contenu devra être modifié par le programme
d'application doivent être copiés dans la RAM DB à partir de la cartouche
EPROM.
- Zone de mémentos M (256 octets)

La zone de mémentos est une zone de mémoire à laquelle le programme


d'application peut accéder très rapidement. La zone de mémentos devrait
être réservée aux données de travail souvent requises.
Il est possible d'accéder aux formats de données suivants : bits, octets,
mots, doubles mots.
Certains octets de mémento peuvent être utilisés en tant que mémentos de
couplage pour l'échange de données entre les processeurs. Les mémentos de
couplage sont actualisés par le programme système à la fin du cycle par
l'intermédiaire de la mémoire-tampon implantée sur le coordinateur.

- Mémoire image des entrées et des sorties MïE/MIS (128 octets chacune)
Le programme d'application peut accéder à la mémoire image de la même
manière qu'à la zone de mémentos. La mémoire image est actualisée à la
fin du cycle par le programme système.

- Zone de périphérie (512 octets)

~râceau bus S5, le programme d'application peut accéder directement


aux cartes périphériques sans devoir passer par la mémoire image du
processus. Les formats de données suivants sont possibles: octets et
mots.

- Temporisations T (128 temporisations pour les processeurs S et R,


256 temporisations pour la CPU 928)

Les temporisations sont chargées par le programe d'application avec une


valeur de temps entre 10 ms et 9990 s et sont ensuite décrementées par le
programme système à intervalles de 10 m s .

- Compteurs Z (128 compteurs pour les processeurs S et R, 256 compteurs


pour la CPU 928)

Les compteurs sont chargés par le programme d'application avec une valeur
de présélection (999 m.) et sont ensuite incrémentés ou décrémentés.
Les instructions STEP5 peuvent accéder aux zones d'opérandes suivantes:

- zone de mémentos
- mémoire image des entrées et sorties
- zone de périphérie
- temporisations
- compteurs
- bloc de données actuel
Pour accéder à ces zones d'opérandes, les instructions STEP5 utilisent deux
mécanismes différents:

- La majorité des instructions STEP5 procèdent à l'adressage relatif d'une


cellule de mémoire par référence au début d'une zone d'opérandes. Tant
que dure le traitement de ces instructions, le programme ne peut pas, par
suite d'une erreur, écraser les opérandes d'une autre zone.

- Certaines instructions STEP5 utilisent l'adressage absolu. Ces ins-


tructions permettent d'accéder à la totalité de l'espace mémoire.

Contrairement aux autres zones d'opérandes, le bloc de données actuel ne


possède pas d'adresse de début et pas de longueur fixe. Le bloc de données
actuel est le bloc dont l'adresse de début et la longueur sont inscrites
dans des registres spéciaux (voir ci-dessus). Dans la mesure où aucune
instruction à adressage absolu n'est utilisée, le programme d'application
ne peut accéder qu'au bloc de données actuel. Les formats de données sui-
vants sont possibles: bits, octets, mots et doubles mots. Les accès au bloc
de données actuel se déroulent plus lentement que les accès à la zone de
mémentos.

Outre les zones de mémoire mentionnées ci-dessus, le processeur contient


plusieurs registres:

- 4 accumulateurs (32 bits) faisant office de registres polyvalents, p.ex.


de registres auxiliaires pour le transfert mémoire-mémoire ou de re-
gistres pour les opérandes et les résultats de calcul.

- 1 compteur d'instructions (compteur d'adresses STEP=CAD) qui contient


l'adresse de l'instruction suivante à exécuter.

- 1 pointeur de pile de blocs (=PBL) qui gère les inscriptions dans la


pile de blocs.

- 1 registre DBA (DBA = adresse de début du bloc de données) qui contient


l'adresse de début du bloc de domées actuel.

- 1 registre DBL (DBL = longueur de bloc de données) qui contient le nombre


de mots de données (longueur) du bloc de données actuel.

- 1 registre indicateur.
- 1 registre BR (registre de base) pour les instructions utilisant l'adres-
sage absolu.
1.1 Nouvelles propriétés et fonctions de l a CPU 928
(pour les utilisateurs du processeur S ou R)

Processeur S : Processeur R :
traitement rapide sur bits traitement rapide sur mots
--> Commande -> Régulation,calcul, communication

CPU 928:
tempsde cycle amélioré
pour programmationmixte
(traitementsur bits et sur mots)
-->Commande g t régulation, calcul,
communication

La CPU 928 étant une carte de 40 mm de large, elle occupe deux emplacements
d'enfichage sur le châssis de base 135U. Elle associe les avantages du
processeur S (traitement rapide sur bits, pour le séquentiel) et du proces-
seur R (traitement rapide sur mots pour la régulation). La CPU 928 se prête
en outre particulièrement bien à la surveillance et à la signalisation, à
la communication en fonctionnement rmiltiprocesseurs ainsi qu'à la conduite
et à 1' observation. La CPU 928 est par conséquent un processeur pouvant
être utilisé de manière universelle pour résoudre les problèmes d1automati-
sation .
Si vous êtes déjà familiarisé avec l'utilisation du processeur S ou R dans
l'automate S5-135U, vous accorderez une attention particulière à la des-
cription des nouvelles propriétés et fonctions de la CPU 928 qui sont
présentées aux chapitres suivants (les indications écrites en italique ne
concernent que la version 3UA12!) :

Chapitre 3.1.1 : Organisation du programme

La profondeur d'imbrication maximale des blocs a été portée à '62' sur


la CPU 928 (30 : niveau d'imbrication pour CPU 928-3UAl1,20: pour proces-
seur R).
Le temps de cycle maximal permis est de 6000 ns (CPU 928-3UAll et
processeur A : 4000 ms).

Chapitre 3.3 : Opérations étendues

Le jeu d'instructions STEP5 a été étendu. Les instructions suivantes sont


venues s'ajouter:

- Instructions pour l'addition et la soustraction de nombres à virgule


fixe 32 bits: +D, -D, ADD DF (opérations systèmes) 11

- Instructions pour le chargement et le transfert d'un mot dans les


zones de données de couplage BB et de données système BT: L BB, T BB,
L BT, T BT (opérations étendues)
La programmation de ces instructions dépend du type de console et de la
version du logiciel système.
Chapitre 4.4.2: Alarmes d'horloge

Il est possible dorénavant de déclencher 9 programmes d'horloge. Ces pro-


grammes sont écrits ou appelés dans les blocs d'organisations OB 10 à OB
18. Chaque OB est appelé avec une périodicité différente: L'OB 10, par ex.,
est traité toutes les 10 ms, et 1 'OB 15 toutes les 500 m. Les alarmes
d'horloge sur période courte sont prioritaires sur les alarmes de période
plus longue; c'est ainsi que l'OB 10 pourra interrompre l'OB 15.

Chapitre 5 . 6 : Erreurs au DPiARRAGE et au RUN

Les codes d'errreur dans les accus 1 et 2 ont été étendus.

Chapitre 6 : Fonctions spéciales intégrées

Des fonctions spéciales ont été intégrées dans la CPU 928, à savoir:

OB 110 : Accès à 1 'octet d'indicateur


OB 111 : Effacement des accus 1, 2, 3 et 4
OB 112 : Décalage des contenus des accus d a m le sens
croissant (Roll Up)
OB 113 : Décalage des contenus d'accus dans le sens
décroissant (Roll dom)
OB 120 : "Activation/désactivation de l'inhibition
générale des alarmes"
OB 121 : "Activation/désactivation de l'inhibition
sélective d'alarmes d'horloges"
OB 122 : "Activation/désactivation de 1 'ajournement
général des alannes"
OB 123 : "Activation/désactivation de l'ajournement
sélectif d'alannes d'horloge"
OB 160 à OB 163 : Comptage de boucles
OB 170 : Lecture de la pile des blocs (BL pile)
OB 180 : Accès variable à un bloc de données
OB 181 : Contrôle des blocs de donnés (DB/DX)
OB 190 et OB 192 : Transfert de mémentos dans des blocs de données
OB 191 et OB 193 : Transfert de données d'un DB dans la zone des
mementos
OB 228 : Lecture de l'information d'état concernant le
niveau de traitement du programme

Chapitre 7: Bloc de données DX O

Dans la CPU 928, il est possible de programmer 256 compteurs et 256 tempo-
risations (processeur R: 128 compteurs, 128 temporisations).

Les paramètres pour le traitement déclenché par alarme process ont été
étendus.

Pour les calculs en virgule flottante, il est possible de définir dans le


DX O si le processeur doit opérer avec une mantisse de 16 bits ou de
24 bits.

Chapitre 8.1: Organisation de l'espace d'adresses de la CPU 928

La RAM de DB de la CPU 928 a été étendue à 23,375 Kmots (processeur R,


11,125 Kmots) . Ceci permet de traiter un nombre de blocs de données
supérieur à celui traité jusqulàprésent.
On dispose en plus de deux nouvelles zones d'opérandes ayant chacune une
longueur de 256 mots et qui sont à la libre disposition de l'utilisateur:
les zones BB et BT. Le jeu dlinstructionsSTEP 5 a été complété avec de
nowelles instructions pour llacccèsà ces zones.

Qiapitre 9: Accès à la mémoire en adressage absolu

Les zones accessibles par les instructions STEP5 Lm, TIR, TNB et TNW ont
été étendu dans la CPü 928 et contiennent moins de lacunes.

Chapitre 9.3: Opérations avec le registre de base (registre BR)

Pour faciliter l'accès à la méimire en adressage absolu, on a introduit le


registre de base BR.

Il existe
- de nouvelles instructions permettant de charger le registre BR ou d'en
mdifier le contenu (cf.9.3.1), 1)

- de nouvelles instructions permettant de décaler les contenus des diffé-


rents registres (cf.9.3.2), 1)

- de.nouvelles instructions permettant d'accéder aux zones mémoires locales


ou globales (cf.9.3.3 et 9.3.4), 1)

- de nouvelles instructions pour les accès aux pages mémoires. ')

La programmation de ces instructions dépend du type de console et de la


version du logiciel-système installé dans la console de progranunation.
2 Programme utilisateur

2.1 Langage de programmation STEP5

Le langage de programmation STEP5 permet à l'utilisateur de transcrire son


problème d'automatisme en un programme exécutable sur les autoniates program-
mables SIMATIC S5. Le langage STEP5 convient à la programmation de fonctions
binaires simples ainsi que de fonctions numériques complexes et d'opérations
arithmétiques de base.

Le jeu d'instructions du langage de programmation STEP5 se compose en

o~érationsde base:

- utilisables dans tous les blocs


- modes de représentation:
schéma à contacts (CONT), logigramme (LOG) et liste d'instructions
(LIST)

opérations complémentaires:

- uniquement utilisables dans des blocs fonctionnels


- mode de représentation exclusif: liste d'instructions (LIST).
opérations système:

- celles-ci comptent parmi les opérations complémentaires.


- uniquement utilisables dans les blocs fonctionnels.

- mode de représentation exclusif: liste d'instructions (LIST).


- uniquement pour les utilisateurs connaissant très bien le système!
b r s de la programmation en langage STEP5, vous avez la possibilité de
choisir entre trois modes de représentation, à savoir schéma à contacts
(CONT) , logigramme (LOG) et liste d'instructions (LIST) permettant ainsi
d'adopter la méthode de programmation la mieux adaptée à chaque cas d'appli-
cation.

Le code machine créé par les consoles de programmation (PG) est identique
pour les trois modes de représentation.

En respectant certaines règles l o r s de l a programnation STEP5, l a console


peut assurer l a conversion du programne u t i l i s a t e u r d'un mode de représenta-
t i o n à un autre!

Le "schéma à contacts" et le "logigramme" permettent de représenter graphi-


quement le programme STEP5, alors que la "liste d'instructionsw propose des
abréviations mémotechniques des différentes instructions STEP5.

Scherna de coritacts Liste dirisbuctions Logigramme


Prognmmetbn avec Programmation avec Programmation avec
des symboles gmphiqun des abr4visiions mnbmo- des symboles
comme un schema d u niques des désignations graphlqua
circuiB IonctionneNes
conforme b conlorme b conlame b
DIN 19239 DIN 19223 CE! 117-15
DIN 40700
DlN 40719
DIN 1 9 2 3

U t
ON t

Figure 2-1: Modes de représentation du lanzane de ~ro~rammation


STEP5

GRAPH 5 est un language de programmation pour la représentation graphique de


commandes séquentielles. Il se situe à un niveau supérieur à celui des modes
de représentation CONT, LOG, LIST. Le programme saisi sous forme graphique
avec GRAPH 5 est converti automatiquement par la console PG en un progrme
STEP 5.
2.1.2 Programmation structurée

Le programme global d'un processeur comprend le

programme système: il contient toutes les instructions et conventions


permettant l'exploitation des fonctionnalités internes
de l'automate (p.ex. sauvegarde de données dans le cas
d'une panne secteur, déclenchement de réactions utili-
sateur dans le cas d'interruptions, etc.).

Il est contenu dans des EPROM (Erasable Programmable


Read ûnly Memory) et fait donc partie intégrante du
processeur. En tant qu'utilisateur, vous n'avez pas la
possibilité d'accéder à ce programme système.

programme d'application: il contient toutes les instructions et conventions


progransnées par l'utilisateur pour le traitement
des signaux et qui servent à commander une instal-
lation (processus) conformément au cahier des
charges. Le programme d'application est divisé en
blocs.

La totalité du programme d'application peut être divisée en sections défi-


nies de programme (blocs). La division de votre programme d'application
permet de se faire une idée rapide de la structure générale du programme et
met en évidence les sous-ensembles de l'installation liés au niveau de
programme.

Ce procédé de 'prograxmmtiai structurée' a les avantages suivants:

- élaboration simple et claire de programmes même importants,

- possibilité de standardiser des parties du programme,


- organisation simple du programme,

- facilité de modification,
- simplicité de test du programme par parties,
- facilité de mise en service.

Qu'est-ce qu'un bloc?

ün bloc est une partie du programme utilisateur ayant une fonction, une
structure et un emploi bien définis. Il faut distinguer les blocs qui con-
tiennent des instructions de traitement des informations (blocs d'organisa-
tion, blocs de programme, blocs fonctionnels, blocs séquentiels) et les
blocs qui contiennent des données (blocs de données).
Une instruction STEP5 est le plus petit élément du programme utilisateur.
Elle impose le traitement à effectuer par la CPU. üne instruction STEP5 se
compose d'un code opération et d'un opérande.

Exemple : :O M54.1
/ \
code opération opérande
(quoi faire?) (avec quoi?)

L'opérande peut être défini sous forme absolue ou symbolique (suivant une
liste d'assignation).

Exemple de représentation absolue: :U E 1.4


Exemple de représentation symbolique: :U Moteur1

Pour la programmation absolue ou symbolique, veuillez vous référez à la


notice d'utilisation "console de programmation PG 685" numéro de référence:
C79000-B8577-C640-01.

L'ensemble des opérations du language STEP5 permet de réaliser les fonc-


tions suivantes:

- combinaison de valeurs binaires,


- chargement, sauvegarde et transfert de valeurs,
- comparaison et traitement arithmétique de valeurs,
- définition de valeurs de présélection pour temporisation et compteurs,
- transcodage de nombres,
- structuration du programme utilisateur,

- influence de l'exécution du programme, etc.

La plupart des opérations STEPS utilisent deux registres en tant que source
ou destination des opérandes et en tant que destination du résultat d'une
opération: l'accumulateur 1 (accu 1) et l'accuniulateur 2 (accu 2). Un accu-
mlateur a une largeur de 32 bits (1 double mot).

Toutes les opérations STEP5 sont décrites en détail au chapitre 32 qui


contient également des exemples de programmation pour chaque instruction
STEP5.

L'annexe C contient en plus, sous forme de liste, une vue d'ensemble de


toutes les opérations STEP5 existantes ainsi que de leurs paramètres admis-
sibles.
2.1.4 Représentation des valeurs mdr5ques

Afin que le processeur puisse combiner, modifier ou comparer des valeurs


numériques, celles-ci doivent être chargées dans les accumulateurs en code
binaire.

En STEP5, la représentation des nombres dépend des opérations à effectuer:

Nombres binaires : a) nombres à virgule fixe 16 bits

b) nombres à virgule fixe 32 bits

c) nombres à virgule flottante

Nombres décimaux: d) nombres en code BCD

Lors de l'introduction et de la lecture de valeurs numériques, on réglera


sur la console de programmation le format de données (p.ex. K . pour virgule
fixe) souhaité pour l'introduction ou l'affichage de la valeur numérique.
Ainsi la PG se charge de la cornersion de la représentation numérique in-
terne en un mode de représentation permettant la lecture directe.

Les nombres à virgule fixe 16 bits et les nombres à virgule flottante se


prêtent à l'exécution de toutes les mérations arithmétiques, telles que la
comparaison, l'addition, la soustraction, la multiplication et la division.

Les nombres en code BCD sont uniquement utilisés pour l'introduction et la


lecture; il n'est pas possible d'effectuer directement des opérations
arithmétiques sur des nombres codés BCD.

Les nombres à virgule fixe 32 bits servent à effectuer des opérations de


comparaison. Ils sont en outre nécessaires en tant qu'étape intermédiaire
lors du transcodage de nombres codés BCD en des nombres à virgule flottante.
Les nouvelles instructions +D et -D les rendent également utilisables pour
les additions et les soustractions.

Le langage STEP5 contient des instructions de transcodage permettant de con-


vertir directement des nombres dans les représentations numériques les plus
importantes.

Nombres à virgule fixe 16 bits et 32 b i t s

Il s'agit de nombres binaires entiers pourvus d'un signe.

Ils ont une longueur de 16 bits (= 1 mot) ou de 32 bits (= 2 mots), le bit


15 ou 31 contenant le signe; "0" = nombre positif; "1" = nombre négatif.

Les nombres négatifs sont représentés par leur complément à deux.


Nombre à virgule fixe 32 bits:

31 30

Format de données pour les nombres


à virgule fixe 16 bits sur la PG:

Format de données pour les nombres


à virgule fixe 32 bits: uniquement KH

Plage numérique admissible: -32768 à +32767 (16 bits)

-2147483648 à +2147483647 (32 bits)

(Pour convertir un nombre à virgule fixe 16 bits en un nombre à virgule fixe


32 bits, cf. chapitre 3.2.2)

Les nombres à virgule fixe sont utilisés pour les opérations de calcul
simple et pour la comparaison de valeurs numériques. Etant donné que les
nombres à virgule fixe sont toujours des entiers, il faut tenir compte du
fait qu'aucun reste ne peut être formé lors de l'exécution de divisions!

Nombres à virgule flottante

Les nombres à virgule flottante sont des nombres décimaux positifs ou néga-
tifs. Ils occupent toujours.un double mot (32 bits). Un nombre à virgule
flottante est représenté sous forme de nombre exponentiel. La mantisse est
codée sur 24 bits et l'exposant sur 8 bits.

L'exposant indique l'ordre de grandeur du nombre à virgule flottante. Le


signe de l'exposant indique si le nombre à virgule flottante est supérieur
ou inférieur à 0,l.

La mantisse indique la précision du nombre à virgule flottante:

- précision pour une mantisse de 24 bits: 2-24 = 0,000000059604


(correspond à 7 chiffres après la virgule)

- précision pour une mantisse de 16 bits: 2-l6 = 0,000015258


(correspond à 4 chiffres après la virguïe)

Lorsque le signe de la mantisse est "O", le nombre est positif; dans le cas
contraire, il s'agit d'un nombre négatif en représentation en complément à
deux.

Nombre à virgule flottante:

Exposant Mantisse
La CPU 928 est préréglée pour effectuer les additions, soustractions, multi-
plications et divisions avec une mantisse de 16 bits (bit 8 à bit 23). Les
bits de poids faible (se trowant à droite) O à 7 ont dans ce cas toujours
la valeur "O"!

Si l'on désire effectuer les calculs en virgule flottante avec une précision
accrue (et si rien ne s'oppose à un léger allongement des temps d1exécu-
tion), il est possible de paramétrer le DX O pour une "arithmétique à
virgule flottante avec mantisse de 24 bits" (cf. chapitre 7).

Format de données pour nombre à virgule flottante sur la PG:

Plage numérique admissible: -+ 0,1469368 x 1 0 à ~ ~ ~


-+ 0,1701412 x 103'

Introduction de Iiombres à virgule flottante Z au moyen de la PG

Mantisse Exposant (base 10) avec signe

Mantisse Exposant (base 10) avec signe

Il est recommandé d'utiliser des nombres à virgule flottante pour résoudre


des problèmes de calcul plus complexes, plus particulièrement pour des
multiplications et divisions, ainsi que pour les calculs portant sur des
nombres très grands ou très petits!
Nombres en code BCD

Les nombres décimaux sont représentés en code BCD. Avec 3 chiffres et le


signe, ils occupent 16 bits (lemot) dans l'accumuïateur.

Bit 15 à 12 11 à 8 7 à 4 3 à 0
signe centaines dizaines unités

S S S S
I
Les différents chiffres du nombre décimal sont représentés par des nombres
binaires à 4 bits entre 0000 et 1001 (O et 9).

Plage de valeurs admissible: -999 à +999

Les bits de gauche sont réservés au signe:

signe pour un nombre positif: "0000"


signe pour un nombre négatif: "1111"
2.1.5 Blocs SEP5

Un bloc est une section du programme utilisateur qui se caractérise par sa


fonction, sa structure et son but.

Un bloc est identifié par


- le type de bloc (OB, PB, FB, SB, FB, FX, DB, DX),
- le numéro de bloc (chiffre entre O et 255).

Les blocs STEP5 peuvent être subdivisés comme suit:

Blocs STEP5

I
6
e code
B~OCS
I
Blocs de dorinées
(contenant des instructions (contenant des variables et
STEP5) constantes)

I
~locs onctionnels
(jeu d'instructions
1
Blocs "normaux"
(jeu dl instructions
complet; de base)

- --
paramétrables)

I 1 I I I I 1
FB FX OB SB PB DB DX

Le langage de programmation STEP5 distingue les types de blocs suivants:

- Blocs d'organisation (OB)

Les blocs d'organisation constituent l'interface entre le programme sys-


tème et le programme utilisateur. Ils peuvent être divisés en deux
groupes:

Les OB 1 à 39 sont appelés par le programme système et servent à la


commande de l'exécution du programme ainsi que du comportement du proces-
seur au démarrage et en cas d'erreur. Ces OB sont programmés par l'utili-
sateur.

Les OB 40 à 255 contiennent des fonctions spéciales du programme système.


Ils sont appelés par l'utilisateur en cas de besoin.

- Blocs de programme (PB)


Ils sont utilisés pour structurer le programme utilisateur et ils con-
tiennent les sous-programmes scindés suivant des aspects technologiques ou
fonctionnels. En règle générale, les blocs de programe contiennent la
plus grande partie du programme d'application.
- Blocs séquentiels (SB)

Il s'agit là de blocs de programme spéciaux utilisés pour le traitement


étape par étape de graphes séquentiels.

- Blocs fonctionnels (FBW)

Ils servent à programmer des fonctions complexes ou répétitives, p.ex.


fonctions numériques, commandes séquentielles, régulations, fonctions de
signalisation. Un même bloc fonctionnel peut être appelé plusieurs fois
par les blocs susmentionnés, avec à chaque fois d'autres opérandes ac-
tuels (paramétrage de 1'appel) .
- Blocs de données (DB/DX)

Les blocs de données contiennent les données (constantes ou variables)


qu'utilise le programme d'application. Ce type de bloc ne contient pas
d'instructions STEP5 et sa fonction est fondamentalement différente de
celle des autres blocs.

Construction d'un bloc:

Tous les types de blocs comprennent - un en-tête de bloc


- un corps de bloc.
L'en-tête a toujours une longueur de 5 mots-données. La console de pro-
grammation y écrit automatiquement

- l'indicatif de début du bloc


- le type de bloc (OB, FB ...)
- le numéro de bloc
- l'indentification de la console de programmation PG
- le numéro de bibliothèque
- la longueur de bloc (en-tête compris)

En-tête dans la
mémoire de programme : Indicatif de début

Type de bloc Numéro de bloc

Indentif. PG Numéro de

bibliothèque

Longueur de bloc y compris en-tête (mots)

Les indicatifs des types de bloc et sont indiqués au chapitre 8.2.1.


Suivant le type de bloc, le corps & bloc contient

- les instructions STEP5 (pour DB, PB, FB, FX, SB)


- les données constantes ou variables (pour DB, DX)
- la liste des opérandes formels (pour FB, FX)

Pour les types de bloc DB, DX, FB et FX, la PG crée en plus un bloc
étiquette (DV, DXV, FV, FXV). Ces blocs étiquettes contiennent des
informations relatives au format de données (pour DB et DX) ou aux repères
de saut (pour FB et FX) qui ne peuvent être exploitées que par la console
de programmation. C'est pourquoi les blocs étiquettes ne sont pas transfé-
rés dans la mémoire de l'automate programmable. L'utilisateur n'a pas
d'influence directe sur le contenu des blocs étiquettes.

ün bloc STEP5 peut occuper 4096 mots au naaximum dans la mémoire de pro-
gramme du processeur. Il faut tenir compte, lors de l'introduction ou du
transfert de blocs de la capacité de mémoire de la console utilisée!

Pour la programmation, vous disposez des types de blocs suivants:

Les blocs de données DB 1, DB 2 et DX O contiennent des paramètres. Ils


sont réservés à certaines fonctions et ne peuvent donc pas être utilisés au
libre gré de l'utilisateur.

Tous les blocs programmés sont transférés en ordre indifférent de la con-


sole PG dans la mémoire de programme qui est constituée par une cartouche
RAM ou EPROM enfichable dans le processeur. Les adresses de début des blocs
mémorisés sont consignées dans le bloc de données DB O.

J Cartouche RAM ou
EPROM

Figure 2-2: Blocs dans la mémoire de programme


b r s de la correction de blocs, l'ancien bloc est déclaré non valable et un
nouveau bloc est inscrit dans la mémoire. Il en est de même lors de 1'effa-
cement de blocs: les blocs ne sont pas vraiment effacés, mais ils sont
simplement déclarés non valables.

IMPDRTBNT!
Ies blocs effacés et corrigés occupent a j o u r s & la capacité de mémoire!

La fonction "on line" " C O M P R P W mémoire" permet de récupérer de la place


mémoire: cette fonction élimine tous les blocs non valables et retasse les
blocs valables (cf. chapitre 11.6).
2.2 Blocs d'organisation, de programme et séquentiels
Ces trois types de blocs ne présentent aucune différence quant à la pro-
grammation et à 1'appel. Tous les trois peuvent être programmés au choix
dans les modes de représentation CONT, LOG et LIST.

Voici comment procéder lors de la programmation de blocs d'organisation, de


programme et séquentiels:

a Indiquer d'abord le type de bloc et ensuite le numéro du bloc que vous


désirez programmer.

Les numéros suivants sont disponibles:

Blocs de programme O à 255


Blocs séquentiels O à 255
Blocs d'organisation l à 39

e Introduire le programme utilisateur en langage STEP5.

llPoKMa!
hrs de la progranmation de PB, de SB et d'OB, seules les opérations de
base SlEP5 peuvent être utilisées.
Terminer l'introduction du programme avec l'instruction "BE" (fin de
bloc).

3Hlmamr!
Un bloc STEP5 doit toujours contenir un pragpumue complet. Une suite de
combinaisons logiques doit être terminée au sein d'un bloc.

Vous pouvez écrire dans un bloc un maximum de 4096 mots (selon la console
de programmation utilisée).

L'en-tête créé automatiquement par la PG occupe 5 mots dans la mémoire de


programme.

En-tete

.Programme STEP 5

Figure 2-3: Structure d'un bloc dlornanisation,de programme et


séuuentiel
Un bloc doit être validé avant de pouvoir être traité. Ceci est réalisé par
1'appel du bloc (figure) .

Ces appels de blocs pewent être programmés au sein d'un bloc d'organi-
sation, de programme, fonctionnel ou séquentiel. Ils sont comparables à des
branchements ou sauts vers un sous-programme. Chaque saut donne lieu à un
changement de bloc.

Les sauts pewent être exécutés de manière conditionnelle ou incondition-


nelle :

- Appel inconditionnel: SPA xx

Le bloc appelé est traité indépendanment du résultat logique (= RLG)


précédent.

Le EüX est un état de signal dans le processeur qui est utilisé pour la
suite du traitement de signaux binaires. Le RLG peut par exemple être
combiné à l'état logique d'opérandes ou conditionner l'exécution d'opéra-
.
tions Les opérations "inconditionnellesl~ sont toujours exécutés, les
opérations "~onditionnelles~~ne le sont que lorsque RU= = 1.

L'instruction de saut SPA fait partie des opérations inconditionnelles et


n'exerce pas d'influence directe sur le R U . Lors du branchement, ce
résultat est repris dans le nouveau bloc où il peut être exploité sans
toutefois pouvoir être combiné avec d'autres instructions.

- Appel conditionnel: SPB xx

L'instruction de saut SPB fait partie des opérations conditionnelles,


c.-à-d.que le bloc appelé n'est traité que si le résultat logique (FXG)
précédent = 1. Lorsque EüX = 0, l'instruction de saut n'est pas exécutée.
Le R E se trouve cependant mis à "ll'!

Figure 2-4: Appels de blocs de programme


A la suite de l'instruction BE (fin de bloc), il y a retour dans le bloc
appelant, c.-à-d.dans lequel l'appel a été progrmé. L'exécution du
progrme est poysuivie par la première instruction STEP5 qui suit l'appel
de bloc.

L'instruction de fin de bloc BE est exécutée indépendamment du résultat


logique RU=. A la suite de l'instruction BE, le résultat logique ne peut
plus être combiné. Le résultat logique/de calcul existant immédiatement
avant l'exécution de l'instruction BE est cependant transmis au bloc appe-
lant où il peut être exploité. Lors du retour à partir du bloc appelé, les
contenus des accumulateurs accu 1, accu 2, accu 3 et accu 4, les indica-
teurs J?Lû et FL1 ainsi que le résultat logique RLG ne sont pas modifiés.
2.2.3 Blocs d'organisation spéciaux

Les blocs d'organisation sont les interfaces entre le programme système et


le programme utilisateur. Les blocs d'organisation OB 1 à 39 font partie du
programme utilisateur et sont programmés de la même manière que les blocs
de programme, fonctionnels ou séquentiels. La programmation de ces OB vous
permet d'influencer le comportement du processeur lors du démarrage, au
cours de l'exécution du programme et en cas de défaut. Les blocs d'orga-
nisation sont actifs dès qu'ils ont été chargés dans la mémoire de l'au-
tomate programmable, ce qui est également possible en cours de fonctioxme-
ment.

Ces blocs d'organisation sont appelés par le Dropramme système en réaction


à certains événements.

Bloc d'or- Fonction et critère d'appel


ganisation
- --- -

Organisation du traitement du progrme cyclique


Appel à la fin d'un démarrage

Organisation du traitement des programmes d'alarme


Appel par un signal sur bus S5 (alarme process)

Organisation du traitement des programmes déclenchés


par horloge (alarmes d'horloge)

Appel toutes les 10 ms


Appel toutes les 20 ms
Appel toutes les 50 m s
Appel toutes les 100 ms
Appel toutes les 200 ms
Appel toutes les 500 ms
Appel toutes les 1 sec
Appel toutes les 2 sec
Appel toutes les 5 sec

Organisation du comportement au démarrage

Appel sur demande "démarrage"


Appel sur demande "redémarrage manuel1'
Appel après rétablissement du secteur ("redém.aut.")

Réaction aux défauts hardware et aux errreurs dans le


:

Erreur de temps d'exécution: appel d'un bloc non chargé


Retard d'acquittement lors d'un accès direct aux cartes
périphériques ou à d'autres adresses de bus S5)
Retard d'acquittement lors de l'actualisation de l'image
de processus et du transfert de mémentos de couplage
Erreur d'adressage
Dépassement du temps de cycle
Erreur de code d'instruction: erreur de substitution

Lorsqu'en cas d'erreur, le bloc d'organisation n'est pas programmé, le


processeur passe en STOP. EXCEPTION :lorsque les OB 23 et 24 n'existent
pas (retard d'acquittement), aucune réaction n'a lieu!
Bloc d'or- Fonction et critère d'appel
ganisation

S M P par fonction PG/comtateur de modems ) '


5
~
Erreur de code d'instruction: code opération incorrect
Erreur de code d'instruction: paramètre incorrect
Autres erreurs de temps d'exécution
Erreur de temps d'exécution: erreur de transfert pour
blocs de données
Erreur de traitement d'alarme d'horloge
Erreur de traitement du régulateur

L'OB 28 est appelé avant le passage en STOP. Le processeur est toujours


mis en STOP peu importe si et comment l'OB 28 a été programmé.

Après que le programme système a appelé le bloc d'organisation en question,


le programme utilisateur qui y est contenu est exécuté. En règle générale,
l'exécution de ce progrme utilisateur est suivie du retour au programme
interrompu par l'OB de réaction au défaut (exception: OB 28). Pour la
réaction en cas de non programmation de l'OB de réaction au défaut, voir
chapitre 5.4.

A des fins de test, ces blocs d'organisation peuvent également être appelés
par le programme utilisateur (SPA/SPB OB-). Il n'est cependant pas pos-
sible de déclencher la mise en STOP par l'appel de l'OB 28 ou le redémar-
rage automatique en appelant l'OB 22!

lHmKwm!
Ies blocs dvorgadsation spéciaux sont programmés par llutilisateuret
appelés automatiquement par le p n w z systéme!
2.2.4 B ï o c s d'organisation a fonctions spéciales
Les OB suivants contiennent des fonctions spéciales. Ils ne peuvent pas
être programmés mais uniquement appelés par 1'utilisateur (ceci s'applique
à tous les OB ayant des numéros entre 40 et 255). Ils ne contiennent pas de
programme STEP5. Les OB à fonction spéciale peuvent être appelés au sein de
tous les blocs OB, PB, FB, FX, SB.

Tableau 2-5: Blocs d'organisation à fonction spéciale dans la CPU 928

OB 110 Accès à l'octet indicateur


OB 111 Effacement des accus 1, 2, 3 et 4
OB 112 Décalage des contenus d'accus dans le sens croissant
OB 113 Décalage des contenus d'accus dans le sens décroissant

OB 120 Activation/désact . de "1' inhibition générale des alarmes"


OB 121 Activation/désact. de "l'inhibition sélective d'alarmes
d'horloge1'
OB 122 Activation/désact. de "l'ajournement général des alarmes"
OB 123 Activation/désact . de "1'ajournement sélectif d'alarmes
d 'horloge"

OB 160 - 163 Comptage de boucles


OB 170 Lecture de la pile de blocs (BLPILE)

OB 180 Accès variable à un bloc de données


OB 181 Test des blocs de données

OB 190, 192 Transfert de mémentos dans les blocs de données


OB 191, 193 Transfert de données d'un DB dans la zone des mémentos

OB 200, 202-205 Communication muïtiprocesseurs

OB 216 - 218 Accès aux pages mémoires


Conversion dans l'accumulateur accu 1 du nombre à virgule
fixe 16 bits en 32 bits par extension de signe
Réglage d'un nouveau temps de cycle et réarmement du
chien de garde
Réarmement du chien de garde
Mise en STOP si modes de démarrage divergents en fonction-
nement multiprocesseurs
Transfert en bloc des mémentos de couplage en fonctionne-
ment multiprocesseurs
Lecture octet par octet du contenu d'une cellule mémoire
du programme système
Lecture du checksum de la mémoire du programme système
Lecture de l'information d'état d'un niveau de traitement
programme

OB 230 - 237 Fonctions pour blocs fonctionnels standard

OB 240 Initialisation du registre à décalage


OB 241 Appel du registre à décalage
OB 242 Effacement du registre à décalage

OB 250 Initialisation du régulateur PID


OB 251 Traitement du régulateur PID
OB254, 255 Transfertdeblocs dedonnéesdanslaRAMDB
La description exhaustive de ces fonctions spéciales figure au chapitre 6.
2.3 Blocs fonctionnels
Les blocs fonctionnels (FB/FX) sont également des parties du programme
utilisateur au même titre que les blocs de programme. Les blocs fonction-
nels FX ont la même structure que les blocs fonctionnels FB et sont pro-
grammés de la même manière.

Les blocs fonctionnels servent à réaliser des fonctions très complexes ou


répétitives.

Par rapport aux blocs d'organisation, de programme et séquentiels, les


blocs fonctionnels présentent quatre différences essentielles:
- Les blocs fonctionnels peuvent être m t r é s , c.-à-d.que les opé-
randes formels d'un bloc fonctionnel peuvent être remplacés, à chaque
appel, par d'autres opérandes actuels. Il est ainsi possible de réutili-
ser des blocs fonctionnels élaborés pour un cas d'application général.
- Les blocs fonctionnels peuvent être programmés en faisant appel à l'en-
semble des opérations du langage de progranmation STEPS, c'est-à-dire
non seulement les opérations de base mais également les opérations com-
plémentaires et les opérations système.

lHmwmT!
h s opérations complémentaires ainsi que les opérations système pewent
exclusivement être prograndes dans les blocs fcmctionnels.

- Les blocs fonctionnels ne peuvent être programmés et documentés qu'en


mode de représentation l i s t e d'instructions (LIST).

L'appel des blocs fonctionnels peut cependant également être réalisé


dans les modes de représentation ïûG et CONT. Le bloc fonctionnel est
alors représenté graphiquement par un cadre.
- Les blocs fonctionnels peuvent être pourvus d'un nom de 8 caractères au
maxirmmi.

Chaque bloc fonctionnel représente une fonction complexe et indépendante au


.
sein du programme utilisateur Les blocs fonctionnels
- peuvent être commandés auprès de SIEMENS en tant que produit logiciel
(blocs fonctionnels standard sur mini-disquette); ces blocs fonctionnels
standard permettent d'élaborer rapidement des programmes d'application
destinés à la commande, à la signalisation, à la régulation et au lis-
tage;

- peuvent être programmés par l'utilisateur lui-même.


2.3.1 S m u c h n e des blocs fonctïcxmeïs

L'en-tête (5 mots) d'un bloc fonctionnel présente la même structure que


celui des autres blocs STEP5.

La structure d'un coms de bloc est fondamentalement différente de celle


des autres types de blocs. En effet, le corps de bloc ne contient pas
uniquement le progrme utilisateur sous forme de liste d'instructions
STEP5 mais commence par le nom du bloc (4 mots) et par une liste des
paramètres du bloc (3 mots par paramètre). Cette liste ne contenant aucune
instruction exécutable par la CPU, elle est franchie par un saut incondi-
tionnel, celui-ci étant élaboré automatiquement par la console. Cette
instruction de saut n'est pas visualisée à l'écran de la console lors de la
lecture du bloc.

Les opérandes peuvent être introduits de façon formelle (par exemple =


ENTl), absolue (par exemple M 2.5) ou symbolique (par exemple : MOTEUR.1).
L'affectation des opérandes symboliques aux opérandes absolus doit être
définie dans une liste d'assignation qui devra être créée au préalable.

b r s d'un appel du bloc fonctionnel, seule la partie principale est sujette


à traitement.

Le bloc fonctionnel se trouvant dans l'automate, se présente de la manière


suivante:

5 mots

En-tête

Saut defranchissement 1 CDA b 1 mot


de la liste des opérandes
formels
4 mots
Nom du FBIFX

Opérande formel 1 3 mots

Opérande formel 2 II Corpsde


bloc
II
Opérande formel 3

Programme
utilisateurSTEP 5

Figure 2-6 : Structure d'un bloc fonctionnel (FB/FXl


Ia mémoire contient ainsi toutes les indications requises par la console de
programmation pour la représentation graphique du bloc fonctionnel lors de
son appel et pour le contrôle des opérandes lors du paramétrage et de la
programmation du bloc fonctionnel. Toute introduction erronée est refusée
par la console de prograrmnation.

llmxbwT!
Pour les blocs fonctionnels, il faut distinguer entre

b) l'appel et le paramétrage du FB/i?X.

b r s de la prog.ramation, on définit la fonction du bloc. Les opérandes


introduits sont dans ce cas des opérandes formels exerçant une fonction de
réservation.

b r s de l ' a ~ ~ ed'un
l bloc par un autre bloc (OB, P B , SB, FB, FX), les
opérandes formels sont remplacés par des opérandes actuels: le bloc fonc-
tionnel se trouve paramétré.

Les pages suivantes vous fournissent de plus amples explications à ce


propos.
2.3.2 Programaation de blocs fonctionnels

b r s de l'introduction d'un bloc fonctionnel sur la PG, il convient de


procéder comme suit.

Introduire le numéro du bloc fonctionnel.

MH)nCBKII!
U s blocs fonctiarnels élaborés par llutilisateurdevraient être mmiéro-
tés & façon décroissante à partir üu FB 255 afin de ne pas se recatper
avec les blocs faictionnels standard portant les znmaéros de FB 1 à
FB 199.

e Le numéro & bibliothèque peut être un nombre compris entre O et 99 9 9 9 .


Ce numéro est attribué au bloc fonctionnel indépendamnent de son numéro
de bloc ou de son nom.

Cependant, un numéro de bibliothèque ne devrait être affecté qu'une seule


fois afin de pouvoir identifier sans équivoque le bloc fonctionnel.

O Introduire le m m du bloc fonctionnel. Il peut avoir une longueur de


8 caractères au maximum.

O Introduire les paramètres du bloc (max.40 paramètres).

Chaque paramètre du bloc nécessite les indications suivantes:

1. nom du paramètre de bloc (= opérande formel)

2. type du paramètre de bloc,

3. format du paramètre de bloc.

Le nan peut avoir une longueur de 4 caractères au maximum.

ïa console de programmation vous offre le choix suivant pur le type


du paramètre de bloc.

E = paramètre d'entrée
A = paramètre de sortie
D = donnée
B = instruction
T = temporisation (TIMER)
Z= compteur

E, D, B, T ou Z sont des paramètres qui, lors de la représentation


graphique, apparaissent du côté gauche du symbole de fonction, tandis que
le paramètre A apparaît du côté droit du symbole.

Pour les types de paramétres de bloc E, A et D, il faut indiquer en plus


le format du paramètre:

BI/BY/W/D pour les paramètres E, A


wWKVC/KF/KT/Kz/KG pour le paramètre D
Le format indique pour les paramètres E et A s'il s'agit de bits, d'oc-
tets, de mots ou de doubles mots et précise pour les paramètres D, le
format de donnée (par exemple: configuration binaire ou hexadécimale).

Type de Format du paramètre Opérandes actuels admis


paramètre

E, A BI si l'opérande E n.m entrée


est un bit A n.m sortie
M n.m mémento

BY si 1'opérande EB n octet d'entrée


est un octet AB n octet de sortie
MB n octet de mémento
DL n octet de gauche
DR n octet de droite
PY n octet de périphérie
QB n octet de périphérie
étendue
W si 1' opérande EW n mot d'entrée
est un mot AW n mot de sortie
MW n mot de mémento
DW n mot de donnée
PW n mot de périphérie
QW n mot de périphérie
étendue
D si l'opérande ED n double mot d'entrée
est un double mot AD n double mot de sortie
MD n double mot de mémento
DD n double mot de donnée

D KM pour une configuration constantes


binaire (16 bits)

KY pour deux nombres


compris chacun entre
O et 255

D KH pour un nombre
hexadécimal jusqulà
4 digits
KC pour 2 caractères
alphamériques

KT pour une valeur de


temporisation (codée
BCD), avec code de
base de temps (.O à .3)
et facteur de
O à 999
Type de Format du paramètre Opérandes actuels admis
paramètre

D KZ pour une valeur de


compteur (en code BCD)
entre O et 999

KF pour un nombre à
virgule fixe de -32768
à +32767

KG pour un nombre à
virgule flottante

B Pas d'indication de DB n bloc de données;


format l'instruction DB n
est exécutée

FB n les blocs fonctionnels


(nécessairement sans para-
mètres) sont appelés de
manière inconditionnelle
.
(SPA .n)

PB n les blocs de programme sont


appelés de manière incondi-
tionnelle (SPA . .n)

SB n les blocs séquentiels sont


appelés de manière incondi-
tionnelle (SPA .n) .
T Pas d'indication de T O à 255 temporisation1)
format

Z Pas d'indication de Z O à 255 compteur1)


format

La valeur de temporisation ou de comptage doit être paramétrée dans le


bloc fonctionnel en tant que donnée ou y être programmée en tant que
constante.

e Introduire ensuite le programme STEP5 en liste d'instructions.

Les opérandes formels sont écrits en les faisant précéder du signe


d'égalité (ex. U =XI). Ils peuvent intervenir plusieurs fois à diffé-
rents endroits du bloc fonctionnel.

lHmR!mm!
En cas de modification de l'ordre ou du nombre des opéraudes f d s
dans la liste des paramètres du bloc, il est nécessaire de modifier
également les ïnstruçtiais de substitution du programme SEP5 du bloc,
ainsi que la liste de paramétrage dans le bloc appelant!
llwamwr!
il est recannandé de toujours programmer e t modifier l e s blocs fcmctioa-
nels sur la disquette ou sur l e disque dur e t de l e s transférer ensuite
dans l'automate p.mggr-ble!

o Terminer 1'introduction du programme par 1' instrution "BE" (fin de bloc).

Exemple 2-7 : Programmation d'un bloc fonctionnel

NOM: EXEWïi?
DESIG: ANNE E/A/D/B/T/Z: E BI/BY/W/D: BI

zT
DESIG: MARC E/A/D/B/T/Z: E BI/BY/W/D: BI Liste des paramètres
DESIG: JEAN E/A/D/B/T/Z: A BI/BY/W/D: BI de bloc

T - e STEP5

;.- =JEAN

t
Opérandes
formels
Type du
paramètre
Format de paramètre
2.3.3 Appel et paramétrage de blocs fcmctïormeïs

Chaque bloc fonctionnel peut être appelé autant de fois que vous le désirez
et à des endroits quelconques au sein du programme utilisateur STEP5:
Tandis que le programme STEP5 d'un bloc fonctionnel est toujours écrit sous
forme de liste d'instructions, les appels de blocs fonctionnels peuvent
également avoir lieu dans une représentation graphique ( U X ou CONT).

Marche à suivre pour l'appel et le paramétrage

e Introduire dans le bloc appelant l'instruction d'appel du bloc fonction-


nel .
L'appel d'un bloc fonctionnel peut être programmé au sein d'un bloc
d'organisation, de programme ou séquentiel ou au sein d'un autre bloc
fonctionnel.

L'appel peut être conditionnel ou inconditionnel:

- Appel inconditionnel (SPA FBn pour blocs fonctionnels ou BA FXn pour


blocs fonctionnels étendus):

Le bloc fonctionnel appelé est traité indépendamment du résultat


logique (RU:) précédent.

- Appel conditionnel (SPB FBn pour blocs fonctionnels ou BAB FXTi pour
blocs fonctionnels étendus) :

Le bloc fonctionnel appelé n'est traité que lorsque le résultat lo-


gique précédent R U = 1. brsque RU: = 0, l'instruction de saut n'est
pas exécutée, le RU: se trouve cependant mis à 1.

A la suite de l'appel inconditonnel et conditionnel, le résultat logique


ne peut plus être combiné. b r s du saut, il est cependant repris dans le
bloc fonctionnel adressé pour y être évalué.

L'introduction de l'instruction d'appel (par exemple SPA FB200), est suivie


automatiquement de l'affichage du nom, puis, après confirmation, de la
première ligne de la liste de paramétrage, c'est à dire, du premier opé-
rande formel de la liste de paramètres du bloc fonctionnel en question:

On affecte alors successivement à chaque opérande formel un opérande


actuel, ce qui revient à paramétrer le bloc fonctionnel.

Les opéraides actuels peuvent être différents pour chaque appel: par
exemple, entrées et sorties lors du premier appel du FB200 et des mémen-
tos lors du deuxième appel.

La liste de paramétrage qui suit l'appel du bloc fonctionnel peut com-


porter au maximum 40 opérandes formels, conformément aux max. 40 para-
mètres de bloc powant être définis dans le FB/FX.
ll!mmlm!
&mit d'appeler et de paramétrer un bloc fmctionnel, il faut que ce bloc
fonctiamel ait été pmgrand et qu'il ait été transféré sur la disquette
de programne ou directement dans la d i r e de pragr-? de l*autcmate
p r c m 3 l e!

Après le saut dans le bloc fonctionnel, le traitement du programme de ce


bloc porte sur les opérandes actuels affectés aux opérandes formels dans la
liste de paramétrage du bloc appelant.

Grâce à cette possibilité de paramétrage des blocs fonctionnels, ceux-ci


peuvent être utilisés de façon multiple au sein du programme d'application.

Exemple: Appel et e t r a g e d'un bloc fcmctiamel en mode de représenta-


ticm = et C û i ? l ! p dans ini bloc de programoe

- Mode de représentation LIST

NOM
ZU-E
RME
ESB
UEZ
ZEIT
ZU-A
B U
ZSL

Opérandes Opérandes
formels actuels

- Modes de représentation CONT/LOG

FB 201

rx7 1 ZLLE ZZF-A rH1


A 2.3
M 2.5 A 6.0
T 2 UEZ
KT10.1 ZEIT

Figure 2-8: A D D ~et~ paramétrage d'un bloc fonctionnel


L'exemple pratique suivant illustre encore une fois la programmation,
l'appel et le paramétrage d'un bloc fonctionnel.

Programmation du bloc fonctionnel FB 202

NOM: EXEMPLE
DES: ANNE E/A/D/B/T/Z : E BI/BY/ü/D: BI
DES: MARC E/A/D/B/T/Z: E BI/BY/W/D: BI Liste des paramètres
DES: JEAN E/A/D/B/T/Z: A BI/BV/ü/D:BI de bloc

::
:= =JEAN
progrme smp5

t
Opérandes Type de
formels paramètre
Format de paramètre

Appel et paramétrage du bloc fonctionel FB 202 dans le bloc de pro-


gramme PB 25 :

- Mode de représentation LIST - Mode de représentation CONT/LOG

PB25
: SPA FB 202
NOM : EXEMPLE
ANNE: E 13.5
MARC: M 17.7
JEAN: A 23.0
II
Opérandes Opérandes
formels actuels

Le programme suivant est exécuté à la suite du saut au FB 202:


2.3.4 B l o c s fcmctionnels spéciaux

- Blocs foncticnme1.s standard

Outre les blocs fonctionnels programmés par l'utilisateur, il existe des


blocs fonctionnels standard pouvant être commandés en tant que produit
logiciel fini. Ils contiennent les fonctions standard d'emploi général
(p.ex. fonctions de signalisation, commandes séquentielles etc.).

Les blocs fonctionnels standard occupent les numéros FB 1 à FB 199.

ZIorsque vous achetez des blocs fonctionnels standard, veuillez tenir compte
des remarques particulières contenues dans la description afférente (zones
occupées, conventions, etc.).

Les blocs fonctionnels standard destinés au S5-135U, leur temps d'exé-


cution, la place de mémoire requise ainsi que les variables qu'ils occupent
sont décrits dans le catalogue ST 57 "bgiciel pour les automates program-
mables de la série U" .

Exemple de bloc fonctionnel standard

Extracteur de la racine carrée


d'mi nombre à virgule flottante RAD:GP FB 6 pour S5-115U
FB 6 pour S5-135U
FB 19 pour S5-15OU

Le bloc fonctionnel RAD:GP sert à l'extraction de la racine carrée d'un


nombre à virgule flottante (exposant 8 bits et mantisse 24 bits). Le résul-
tat de cette opération est également un nombre à virgule flottante (expo-
sant 8 bits et mantisse 24 bits), le bit de poids faible de la mantisse
n'étant pas arrondi.

En cas dlimpossibilitéde calcul, le bloc fonctionnel met à "1" l'indicatif


"radical négatif", permettant ainsi la poursuite du traitement.

Nombres limites:

Radical
Racine carrée

Fonction Y = )TA
Y = SQRT; A = RAD1
Amel du bloc fonctionnel FB 6

- Mode de représentation LIST - Mode de représentation CONT

: SPA FB 6
NOM : RAD:GP
RAD1 : DD 5
J : D 15.0
SQRT : DD 10

DD = m t -donnée double

Dans l'exemple ci-dessus,on extrait la racine carrée d'un nombre à virguie


flottante pris dans le DD 5 (exposant de 8 bits et mantisse de 24 bits).
Le résultat - également un nombre à virgule flottante de 32 bits - est
transféré dans le DD 10 après que le bloc de données correspondant ait été
ouvert. Le paramètre J (type de paramètre: A, format de paramètre : BI)
indique le signe du radical: J = 1 pour un radical négatif. Mots de mémen-
tos occupés: MW 238 à 254

- B l o c fonctionnel FB O

Lorsque le bloc d'organisation OB 1 n'a pas été programmé, le programne


système appelle le FB O de manière cyclique au lieu de l'OB 1.

lnJmmva!
Ie FB O ne devrait par conséquent être utilisé que pour prq,--r le
traitement cyclique! (Il ne doit pas ccmtenir de paramètres).

Etant donné qu'un bloc fonctionnel permet d'utiliser l'ensemble des opéra-
tions du langage STEP5, la programmation du FB O à la place de l'OB 1 se
prête plus particulièrement au cas où vous désireriez exécuter un pro-
gramme court, à temps critique.

Lorsque les deux blocs OB 1 et FB O ont été programmés, seul le bloc


d'organisation OB 1 est traité cycliquement.
2.4 Blocs de données

Les blocs de données (DB/DX) contiennent les données constantes ou va-


riables utilisées par le programme utilisateur. Aucune instruction STEP5
n'est traitée dans les blocs de données.

Les données d'un bloc de données peuvent être

- des configurations binaires quelconques, p.ex. des mots d'état du process

- des nombres (hexadécimaux, binaires, décimaux) pour des valeurs de temps,


des résultats de calculs,

- des caractères alphanumériques, p.ex pour des textes de messages.

2.4.1 Structure d'un bloc de b é e s

Ihi bloc de données est constitué par les parties suivantes:

- un bloc étiquette (DV, DXV)

- un en-tête de bloc

- un corps de bloc

Le bloc étiquette est créé automatiquement. Il contient les formats des


mots de données introduits dans le corps de bloc. L'utilisateur ne peut pas
influer sur la création du bloc étiquette.

lmoR!Mm!
En transférant un bloc de données sur la disquette à partir de l'atrtamate
ou de la c a r t m x h EPRCBI, le bloc étiquette correspodant est effacé. C'est
pourquoi il ne faut jamais modifier, dans l'automate un bloc de h é e s
contenant des formats de daniees différents et le retransférer ensuite sur
la disquette, sinni tous les mots de dannées de ce DB sont autunatiquement
pourvus du format de dormées que mxis asez sélection& dans le niasque de
préréglage.

L'en-tête occupe 5 mots dans la mémoire et contient

- l'identification du bloc
- l'identification de la console de programnation
- le numéro du bloc
- le numéro de bibliothèque
- la longueur du bloc (y compris la longueur de l'en-tête).

Le corps de bloc contient, en ordre croissant, à partir de DU O, les mots


de données qu'utilise le programme d'application. Chaque mot de donnée
occupe 1 mot (16 bits) en mémoire.
Ihi bloc de données peut occuper jusqu'à 2000 mots dans la mémoire du pro-
cesseur. Veuillez donc tenir compte de la capacité mémoire de votre console
de programmation lorsque vous procédez à l'introduction et au transfert de
blocs de données au moyen de la PG.

I Mots de donnees

Figure 2-9 : Structure d'un bloc de données

2.4.2 Rogramatiai de blocs & damées

Elaboration d'un bloc de données:

o Introduire un d m de bloc de données entre 3 et 255 (pour les blocs


de données DB) ou entre 1 et 255 (pour les blocs de données DX).

m-!
h s blocs de damées DB O, DB 1, DB 2 et DaL O sont r é s e h à des fonc-
tions déterminées et ne peuvent dom: pas être utilisés lib-t (cf.
chapitre 2.4.4.)!

Introduire les différents mots de h é e s dans le format de données sou-


haité.

Formats de données admissibles: Exemples

KM configuration binaire
=
KH nombre hexadécimal
=
KY octet
=
KF = nombre à virgule fixe
KG = nombre à virtde flottante
KC = caractère
KT = valeur de temporisation
KZ = valeur de comptage
ZL = affectation suivant liste
d'assignation
(pas avec le logiciel S5DOS)

Im'Orn!
L1intrcductionde mots de donnees ne sera pas tenninée avec l'ins-
truction de fin de bloc -BEw!
2.4.3 Appel de blocs de damées

Un bloc de données (DB/DX) ne peut être appelé que de manière incondition-


nelle. Ceci peut être réalisé au sein d'un bloc d'organisation, de pro-
gramme, séquentiel ou fonctionnel. Un même bloc de données peut être
appelé plusieurs fois dans un même programme.

L'appel d'un bloc de données s'effectue par les instructions suivantes:

Les blocs de données DB avec l'instruction A DB..

e Les blocs de données DX avec l'instruction AX DX..

L'accès aux données enregistrées dans le bloc de données owert est réalisé
lors de l'exécution du programme au moyen d'instructions de chargement et
de transfert:

L'instruction de m e m e n t permet de transférer le contenu du mot de


donnée adressé dans l'accumulateur ACCU 1 en vue de son traitement par le
processeur.

Instructions de chargement L DW.. (mot)


L DR.. (octet de droite)
L DL.. (octet de gauche)
L DD.. (double mot)

L'instructian de transfert permet de transférer les données à partir de


l'ACCU 1 dans le mot de donnée adressé.

Instructions de transfert: T DW..


T DR..
T DL..
T DD..

h r s du chargement, le contenu d'un mot de donnée n'est pas modifié.

Lors du transfert, l'ancien contenu d'un mot de donnée est écrasé.

llnmmm!!
- Avant d'accéder à un mot & donnée, il faut appeler le bloc de damées
concerné dans le programne d'applicatiai, pour que le processeur puisse
retrouver le mot & donnée correct! Ie mot & donnée adressé doit être
contenu dans le bloc ouvert, sinai le progranme système décèle une erreur
de transfert dans le cas & l'instruction T k ou il charge des vaïeurs
aléatoires dans le cas & l'instruction L k.

- U s instructions de chargement et de transfert permettent iaiiquement


dlacccéder aux mots de dainées jusqu'au d r o 2551
Exemple: Riansfert de mots de h é e s

Il s'agit de transférer le contenu du mot de donnée DU 1 du bloc de données


DB 10 dans le mot de donnée DU 1 du bloc de données DB 20 (cf. figure).

Introduire à cet effet les instructions suivantes:

A DBlO (appel du DB 10)


L DWl (transfert du DU 1 dans l'accrmnilateur)
A DB20 (appel du DB 20)
T DW1 (transfert du contenu de l'accumulateur dans DW 1)

Figure 2-10 : Owerture de blocs de données et accès aux mots de


données

Après avoir appelé un bloc de données, toutes les instructions suivantes


relatives à la zone d'opérande D se rapportent au bloc ouvert.
Le bloc de données ouvert conserve sa validité même si l'exécution du
progrme est poursuivie dans un autre bloc code en raison d'une
i n s t r u c t i o n de saut (p.ex. SPA/SPB PB 20).

brsqu'un autre bloc de données est alors appelé dans ce nouveau bloc code,
celui-ci est unimement valable dans le bloc code appelé (PB 20). Après le
retour dans le bloc code appelant, c'est de nokeau l'ancien bloc de don-
nées qui est valable.

llawmmr!
Un bloc de données owest conserve sa validité jusqu'à ce

a) qulun autre bloc de données soit appelé


ou b) qulil y ait retour dans un bloc code & niveau supérieur
ou c) qu'un bloc code appelant soit terminé avec "BEw
Exemple: Validité des blocs de dornaées

Le bloc de données DB 10 est appelé dans le bloc de programme PB 7 (A DB10).


la suite du traitement porte sur les données de ce bloc de données.

Après l'appel du bloc de programme PB 20 (SPA PB20), le bloc de données DB


10 conserve cependant sa validité. Ce n'est qu'après l'appel du bloc de
données DB 11 (A DB11) qu'il y a changement de la zone de données. Le bloc
de données DB 11 reste valable jusqu'à la fin du bloc de programme PB 20
(BE).
Après le retour dans le bloc de programme PB 7, c'est de nouveau le bloc de
données DB 10 qui est valable.

/// validité du DB 10
\\\ validité du DB 11
Figure 2-11 : Validité d'un bloc de données appelé

2.4.4 B l o c s de h é e s spéciaux

Les blocs de données DB O, DB 1, DB 2 et DX O sont réservés à des fonctions


particulières. Ils sont gérés par le programme système et ne peuvent pas
être utilisés librement par l'utilisateur.

- B l o c de données DB O (cf. chapitre 8.2.2)

Le bloc de données DB O contient la liste des adresses de début de tous


les blocs qui se trouvent dans la mémoire utilisateur ou dans la RAM de
DB du processeur. Cette liste d'adresses est générée par le programme
système lors de l'initialisation (à la mise sous tension et lors d'un
effacement général) et elle est actualisée automatiquement lors de
1'introduction ou de la modification de blocs au moyen de la PG.

- B l o c de daniées DB 1 (cf. chapitre 10.3)

Le bloc de données DB 1 contient la liste des entrées et sorties TOR


(périphérie P avec adresses d'octets relatives de O à 127) ainsi que des
mémentos de couplage d'entrée et de sortie ayant été attribués au
processeur et, le cas échéant, le nombre de temporisations à actualiser
(longueur du bloc de temporisation).
En fonctionnement rmiltiprocesseurs, l'utilisateur doit élaborer le DB 1
pour chaque processeur. En fonctionnement monoprocesseur, le DB 1 est
utilisé afin de réduire le temps de cycle, étant donné que seuls les
entrées et sorties, les mémentos de couplage d'entrée et de sortie et
les temporisations indiqués dans le DB 1 sont actualisés.

- Bloc de données DB 2 (cf.chapitre 4.4.3)

Le bloc de données DB 2 permet à l'utilisateur de paramétrer la struc-


ture de régulation R64. La fonction de régulation peut être commandée en
tant que produit de logiciel; elle fonctionne avec assistance par le
programme système .
Prière de se reporter à la description "Régulation structurée au sein du
processeur R de l'AG 135U1'no de référence C79000-B8577-C365-03.

- Bloc de données ïlX O (cf.chapitre 7)

Le bloc de données DX O contient les préréglages de certaines fonctions


de programme système (p.ex. lors du traitement du démarrage). L'utili-
sateur peut modifier les valeurs par défaut dans le DX O et peut ainsi
adapter le programme système à ses besoins personnels.
3 Traitement du programme
3.1 Vue d'ensemble
Le programme utilisateur STEP5 peut être traité de différentes manières.

La manière la plus courante est le traitement cyclique: le bloc d'organisa-


tion OB 1 est parcouru cycliquement, et le programme utilisateur qui y est
écrit est traité à partir du début, au travers de différents appels de
blocs, jusqu'à l'instruction de fin du bloc OB 1 ("BE").

L'organisation programme sert à définir l'ordre et le niveau de traitement


des blocs élaborés, elle consiste à programmer dans les blocs d'organisa-
tion des appels conditionnels ou inconditionnels des blocs désirés. Vous
programmez, dans les blocs d'organisation, des appels conditionnels ou
inconditionnels des blocs souhaités.

Dans le programme de chaque bloc d'organisation, de programme, fonctionnels


et séquentiels, il est possible d'appeler d'autres blocs de programme,
fonctionnels et séquentiels dans un ordre quelconque (successivement ou de
façon imbriquée).
Le programme utilisateur doit être organisé de manière à faire ressortir
les structures principales du programme ou les interdépendances entre les
différentes parties de l'installation,
Exemple 3-1: Organisation du programme utilisateur suivant la structure du
programme

Automat~sm Commande de la
réquenliel
séquenlielle

\
w

SPA PB 'C'
Exemple 3-2: Or~anisationdu Dronramme utilisateur suivant la structure de
l'installation

SPA PB '' Y -
llmmlwr!
n est possible d'imbriquer 62 blocs. Rans le cas où il ya plus de 62
niveaux d'imbrication, le processeur sipnale un défaut.

Procédure de calcul de la profondeur d'imbrication du programme:

Dénombrer tous les blocs d'organisation que vous avez programmés (4


pour l'exemple cité dans les pages suivantes).

e Additionner la profondeur d'imbrication de chaque bloc d'organisation


de votre programme STEP5 (dans l'exemple : 2 + 2 + 1 + O = 5)

e L'addition des deux résultats précédents donne la profondeur d'imbrica-


tion du programme (dans l'exemple suivant: 4 + 5 = 9).
Cette valeur ne doit pas dépasser 62!

La localisation d'un bloc dans la mémoire utilisateur est déterminée par


l'adresse de début du bloc: c'est l'adresse de la cellule mémoire qui
renferme la première instruction STEP5 du bloc.

Pour permettre au processeur de retrouver dans la mémoire le bloc recherché


lors d'un appel (SPA/SPB xx, A DB), toutes les adresses de début des blocs
programmés se trouvent dans une liste d'adresses située dans le bloc de
données DB O. Le bloc DB O est géré par le programme système. L'utilisateur
n'y a pas accès.

Pour retrouver le bloc appelant après avoir effectué le traitement dans le


bloc appelé, le processeur mémorise, lors de chaque appel d'un nouveau
bloc, l'adresse de retour: cette adresse de retour est l'adresse de la
cellule mémoire contenant l'instruction qui suit l'instruction de saut
réalisée précédemment. En plus de cela, le processeur mémorise aussi
l'adresse de début et la laigueur du bloc de données en cours de traitement
à cet endroit.

OB 1 PB 5 PB 20
A DB30
A 0820

SPA PB20

SPA PB5
,* SPA FB30
2291 *
BE BE 4 BE
9; Adresses de retour
Toutes ces données sont reportées dans la pile de blocs (BLPILE). Cette
pile est chargée par le bas: la première introduction correspond à l'élé-
ment 62 de la BLPILE, la deuxième introduction à l'élément 61, etc...
Lorsque le bloc appelé est totalement traité et que le retour dans le bloc
appelant a été effectué, toutes les introductions correspondantes sont
effacées.

Après 62 introductions (élément 1 de la BLPILE), la pile est remplie. Le


dépassement de la profondeur d'imbrication admissible provoque la mise en
STOP de la CPU.

Exemple: Imbrication de blocs et pile de blocs (BPILE)

Niveau de
traitement
programme 4
/
3

2 0813-PB131-FB131
/OB2 - FB21
/'

Profondeurd'imbrication 1 2 3 4 5 6 7 8 9
Elément de BLPILE 62 61 6O 59 58 57 56 55 54

Afin que le processeur puisse exécuter le programme utilisateur, celui-ci


doit être chargé dans la mémoire de programme. Il existe pour cela deux
possibilités différentes:

a) Lorsque vous utilisez une amomhe RâH, le programme utilisateur,


peut être transféré directement dans le processeur à partir de la
console de programmation.

Dans le cas de cette cartouche RAM, le contenu de la mémoire peut être


modifié rapidement et fréquement. TJne pile de sauvegarde empêche la
perte du progrme utilisateur en cas de coupure de la tension secteur
(cf. instructions de l'appareil de base S5-135U, au chapitre traitant
de la pile de sauvegarde).

Tous les blocs programmés sont mémorisés dans la cartouche RAM en ordre
quelconque. Dès qu'un bloc est modifié, l'ordre des blocs dans la mé-
moire se trouve également modifié :

Les blocs de données DB et DX sont transférés dans la cartouche FUM


juçqu'à ce que celle-ci soit remplie et ensuite, dans la RAM DB du
processeur.
b) La totalité du programme d'application est mémorisée dans une caaouche
EPROBI. üne cartouche EPROM assure la conservation du programme utilisa-
teur, même en cas de panne de secteur et en 1'absence d'une pile de
sauvegarde.

Le contenu d'une cartouche EPROM ne peut pas etre modifié facilement. Au


démarrage, les blocs de données, contenant des données variables qui
seront modifiées en cours d'exécution du programme utilisateur devront
donc être copiées de la cartouche EPROM dans la RAM DB du processeur
(cf. OB à fonction spéciale 254 et 255, chapitre 6.4.5).

brsque le processeur détecte une erreur en consultant la mémoire utilisa-


teur, il demande l'effacement général et passe en STOP.
Après l'effacement général, il suffit de recharger le programne utilisateur
dans la mémoire.

PB1
Cartouche RAM ou
P02 EPROM

FB1

DBl

SBU

OB1

Figure 9-4: Ran~ementdes blocs dans la mémoire de programme

3.1.3 Traitement du programme utilisateur S'ET5

TR programme utilisateur peut être traité de différentes manières.Ie m i -


tement cyclique est de règle pour les automates programmables.

A la fin de la procédure de démarrage, le programne système appelle le bloc


d'organisation OB 1 (ou le FB O). Là, le processeur traite dans l'ordre,
toutes les instructions du programme utilisateur en commençant par la
première. En fin de programme, elle recommence le cycle à la première
instruction.

A chaque cycle, le programme système exécute les fonctions suivantes:

- Armement de la surveillance du temps de cycle (chien de garde).


- Actualisation de la mémoire image des entrées.

- Actualisation des mémentos de couplage d'entrée.


- Appel du bloc d'organisation OB 1 (ou du FBO)

- Actualisation de la mémoire image des sorties.

- Actualisation des mémentos de couplage de sortie.

Temps de cycle

Le programme système surveille le temps que met le processeur pour effec-


tuer le traitement du programme utilisateur. Au début du programme, le
programme système déclenche la surveillance du temps de cycle (armement du
chien de garde).
Le chien de garde est préréglé sur un temps de cycle standard de
150 m .

Il est possible, à l'utilisateur, de modifier cette valeur en paramétrant


le bloc de données DX O et de réarmer le chien de garde en cours de traite-
ment cyclique (cf. OB 221 et 222)

Le temps de cycle total est la samme du temps nécéssaire au traitement du


programme utilisateur et du temps d'exécution de la partie cyclique du pro-
gramme système (cf. figure page suivante).

Le temps de traitement du programme utilisateur est lui-même la somme des


temps de traitement de tous les blocs appelés au cours d'un cycle (de
l'appel de l'OB 1 ou du FB O jusqu'à la fin de son traitement). Si un bloc
est appelé plusieurs fois, il faut totaliser les temps de traitement de ce
bloc.

Mémire image des entrées et sorties (MIE et HïS)

Avant d'exécuter le programme STEP5, l'état des entrées des cartes de


périphérie est lu et transféré dans la mémoire image des entrées qui est
implantée dans la zone des données système du processeur (acquisition des
entrées). A partir de la mémoire image des entrées, le pro-gramme utilisa-
teur établit, à l'aide des instructions STEP5, la mémoire image des sor-
ties. Son contenu est émis vers les cartes de périphérie de sortie au terme
de l'exécution du programme STEP5 (émission des sorties).

La mémoire image est une zone mémoire dont le contenu est acquis et émis,
qu'une fois par cycle.

RlKxDwr!
ïa mémoire image n'existe que pour les octets d'entrées et de sorties
adressés en périphérie P de O à 127!

Mémentos de coupLage

Les mémentos de couplage servent à l'échange de données entre les diffé-


rents processeurs (fonctionnement en multiprocesseur) ou entre les
processeurs centraux et les procèsseurs de communication.
Avant le démarrage du traitement du programme STEP5, les mémentos de cou-
plage d'entrée du processeur sont lus. Après le traitement du programme
STEP5, les mémentos de couplage de sortie sont transférés au coordinateur
et aux processeurs de comrmniication.

I1I i i
OB1 OU FBO
Armement du chien
degarde

Actualisation
mémentosde cou- PB 20
plaged'entrées
Acquisitiondes
entrées (MIE)

Appel du OBIIFBO
Appel du PB 20
BE
1
Emiçsiondessorties
(MIS)
Actualisation
mémentosde cou-
plagedesorties
\I

Programmesystème Programmed'application

Figure 3-5 : Exécution du Dronramme cvcliaue

Points d' interruption

Le traitement cyclique du programme peut être interrompu pendant une courte


durée par

- le traitement d'un programme de réaction à une alarme process

- le traitement d'un programme de réaction à une alarme horloge.

Le traitement peut être interrompu ou être totalement arrêté par

- l'apparition d'un défaut dans l'équipement ou dans le programme

- une intervention externe (fonction console, commutateur RUN-STOP)


3.1.4 Détermination du traitenent du progranme

L'utilisateur a deux possibilités pour définir le comportement de la CPü


lors du démarrage, pendant le traitement cyclique et en cas de défaut:

a) par la programmation des blocs d'organisation OB 1 à OB 3 4 (ce sont


les interfaces entre le programme système et le programme utilisateur,
cf. chapitre 2.2.3) et

b) par le paramétrage du bloc de données DX O (cf. chapitre 7).

Les blocs dlorganisaticm OB 1 à OB 34 sont les interfaces entre les pro-


grammes système et utilisateur, car bien qu'ils peuvent être appelés par le
programme système, ils peuvent être programmés par l'utilisateur comme les
blocs STEP5 "normaux". A partir de ces blocs d'organisation, on peut appe-
ler d'autres blocs. Le programme STEP5 contenu dans ces derniers, permet à
l'utilisateur de définir la réaction du processeur à certains événements.

Les blocs d'organisation OB 1 à OB 3 4 peuvent être appelés par le programme


système dès qu'ils sont chargés dans la mémoire de programme (nAœ pendant
le dérusi-t du progranm~).

Si ces blocs ne sont pas programmés par l'utilisateur, le processeur peut


ne pas réagir, mais dans la plupart des cas il passera en STOP (cf. cha-
pitre 5.4).

üne autre possibilité pour définir le comportement du processeur consiste à


paramétrer le ïX O. Les fonctions réalisées par le programme système sont
préréglées dans le DX O. En modifiant certains paramètres dans le DX O, il
est possible de modifier les fonctions standards du programme système.

De même que les blocs d'organisation, le DX O peut être chargé en mémoire


de programme pendant le déroulement cyclique. Bis i l n l e s t activé que lors
du prochain dénrarrage.

Si le DX O n'est pas paramétré par l'utilisateur, les fonctions standards


préréglées sont validées.
3.2 Liste des opérations STEP5 avec exemples de
programmation
Les opérations STEP5 peuvent être classées en différents groupes:

- Les fonctions binaires comprenant: les opérations combinatoires, les


opérations de mémorisation, les temporisations et les compteurs.

- Les fonctions mériciues comprenant: les opérations de transfert et


de chargement, les comparaisons et les opérations arithmétiques.

- Les fonctions d'oreanisation comprenant: les opérations de saut, les


opérations d'arrêt et de fin de bloc, les instructions de création
ou d'appel de bloc de données etc..

ütilisatian des accumulateurs cornne registre auxïïiaire

La majorité des opérations STEP5 sur mot utilisent, comme source pour
les opérandes et comme destination pour les résultats, deux registres
(32 bits): l'accumulateur 1 (ACCU 1) et l'accumulateur 2 (ACCU 2).

<-Mot de poids fort-%-Mot de poids faible->


ACCU 1
Octet de Octet de Octet de Octet de
poids fort poids faible poids fort poids faible

Deux autres registres de 32 bits sont disponibles; il s'agit des accus 3 et


4. L'utilisation des accumulateurs dépend de l'instruction STEP5 à exécu-
ter.

Exemples:
- lors des opérations de changement, l'accu 1 est toujours utilisé corne
destination. L'ancien contenu de l'accu 1 est transféré dans l'accu 2
(empilage). Les accumulateurs 3 et 4 ne sont pas utilisés pour les
opérations de chargement.
- les instructions arithmétiques opèrent avec les contenus de l'accu 1 et
de l'accu 2, écrivent le résultat dans l'accu 1 et transfèrent le con-
tenu de l'accu 3 dans l'accu 2 et celui de l'accu 4 dans l'accu 3
(dépilage).
- en additionnant une constante au contenu de l'accu 1 (ADD BF/KF), les
accus 2, 3 et 4 ne sont pas modifiés.
Indicateurs de résultat

Il existe des instructions pour le traitement sur bits et des instructions


pour le traitement sur mots (8, 16 et 32 bits) .
Dans ces deux groupes, il y a des instructions de positionnement des indi-
cateurs et des instructions de traitement des indicateurs (voir liste des
opérations et leur influence sur les indicateurs). Il existe des indica-
teurs d'opérations sur bits (bits O à 3) et des indicateurs d'opérations
sur mots (bits 4 à 7) correspondant aux deux groupes ci-dessus. L'octet
indicateur peut être lu à la console et se présente de la manière suivante

Indicateurs d'opérations Indicateurs d'opérations


sur mots sur bits

Bit 7 6 5 4 3 2 1 O

Indicateurs drapérations sur bits

l.? Première interrogation


Cet indicateur marque le début d'une combinaison logique. A la fin
d 'une séquence d'opérations combinatoires ( o p é ~ion
t de mémorisation)
1 7 est mis à O. Les instructions qui mettent l.? = O (p.ex. affecta-
tion du résultat = A2.4) ont une action inhibitrice sur le RLG (voir
liste des opérations), c.-à-d.que le RLG n'est pas modifié, mais
qu'il peut être exploité (par exemple par des instructions dépendantes
du RLG), sans toutefois pouvoir être repris pour la combinaison sui-
vante. C'est seulement après la pro-chaine instruction combinatoire (=
première interrogation que le RLG est reconstitué et que 1 3 est mis à
un.

RU: Résultat d'une combinaison logique


Résultat de combinaisons de bits. Bit de vérité lors de comparaisons
(voir: liste des opérations, opérations combinatoires sur bits ou
opérations de comparaison).

ETAT Etat
Indique, dans le cas des instructions sur bits, l'état logique du
dernier bit testé ou commandé. "Etatl'est actualisé lors des opéra-
tions combinatoires sur bits - sauf U(, O(, ) , O - et des opérations
de mémorisation.

OR Ou
Indique au processeur que les combinaisons ET suivantes doivent être
traitées avant une combinaison OU (ET avant OU).
Indicateurs dvopératians sur mots:

OV Overflow (dépassement)
Signale le dépassement de capacité de format de données retenu pour
1 'opération arithmétique qui vient d' être exécutée.

OS Overflow mémorisé
Le bit de dépassement est mémorisé. Il signale qu'il y a eu dépassse-
ment de capacité dans une suite d'opérations arithmétiques.

FLl et FLO
Indicateurs codés de résultat:

Décalage:
dernier bit
décalé

Des opérations de saut sont disponibles pour une exploitation inmédiate des
indicateurs (voir chapitre 3.2.2).
3.2.1 opérations de base
(programmables dans tous les types de blocs)

a Opérations cornbiaatoires sur bits

Opération Paramètre Fonction

1 Fermer la parenthèse
Il ( Opération ET d'expressions entre parenthèses
0 ( Opération OU d'expressions entre parenthèses
O Opération OU de fonctions ET

U Combinaison ET
O Combinaison OU

E 0.0 à 127.7 Test à "1" d'une entrée

A 0.0 à 127.7 Test à "1" d'une sortie

M 0.0 à 255.7 Test à "1" d'un mémento

D 0.0 à 255.15 Test à "1" d'un bit d'un mot de données

NE 0.0 à 127.7 Test à "0" d'une entrée

NA 0.0 à 127.7 Test à "0" d'une sortie

NM 0.0 à 255.7 Test à "0" d'un mémento

N D 0.0 à 255.15 Test à "0" d'un bit d'un mot de données

T O à 255 Test à "1" d'une temporisation

NT O à 255 Test à "0" d'une temporisation

Z O à 255 Test à "1" d'un compteur

NZ O à 255 Test à "0" d'un compteur

Les opérations combinatoires sur bits fournissent le résutat logique (RU;).

Au début d'une séquence de combinaisons (première kterrogation), le RU= ne


dépend que de l'état du signal testé (Etat) et du fait qu'il est camplémen-
té ou non, mais non de la fonction combinatoire (ET, OU).

Dans la séquence de combinaisons, l'état de RU; dépend du type de combinai-


son, de l'état antérieur du F U et l'état du signal testé. La séquence se
termine par une instruction assurant l'inhibition du R E (1.?= O) (p.ex.
une opération de mémorisation) .
Le F U reste alors inchangé jusqu'au début de la prochaine opération (pre-
mière interrogation). Le RU= peut être exploité mais ne peut être repris
dans la combinaison suivante.
Programme Etat R U l.?

=A 0.0 O O O <- RLG inhibé


U E1.0 1 > 1 1 <- première interrogation
U El.l 1 > 1 1
U E1.2 O > O 1
=A 0.1 O O O <- RLG inhibé, fin de la
séquence de combinaisons

e Opérations de mémorisation, sur b i t s

Opération Paramètre Fonction

S Mise à 1 (SET)
R Mise à O (RESET)
-
- Assignation

E 0.0 à 127.7 d'une entrée dans la MIE


A 0 .O à 127.7 d'une sortie dans la MIS
M 0.0 à 255.7 d'un mémento
D 0.0à255.15 dlunbitdemotde&nnée
dans le DB/DX ouvert

a ûpérations & chargement, de transfert et de canparaison

Opération Paramètre Fonction

L Charger
T Transférer

E B 0 à 127 un octet d'entrée de/vers la MIE


EW 0à126 un mot d'entrée de/vers la MIE
A B 0 à 127 un octet de sortie de/vers la MIS
AW 0à126 un mot de sortie de/vers la MIS
AD 0à124 un double mot de sortie de/vers la MIS
M B O à 255 un octet de mémentos
MW O à 254 un mot de mémentos
M D O à 252 un double mot de mémentos
DR O à 255 d'une donnée (octet droit) de DB, DX
DL O à 255 d'une donnée (octet gauche) de DB, DX
DW O à 255 d'un mot de données de DB, DX
DD O à 254 d'un double mot de données de DB, DX
P B/ O à 127 un octet dlentrées/sorties TOR de la
PY périphérie P
P B/ 128 à 255 un octet d1entrées/sorties analogiques
PY ou TOR de la périphérie P
QB O à 255 un octet de la périphérie étendue Q
Opérations de charg-t, de transfert et de camparaisai

ûpération Paramètre Fonction

L Charger
T Transférer

PW 0à126 d'un mot drentrées/sorties


TOR de la périphérie P
PW 128à254 d'unmotd'entrées/sorties
analogiques ou TOR de la périphérie P
QW O à 254 d'un mot de la périphérie étendue Q

L Charger

K M structure une constante binaire


16 bits
KH OàFFFF une constante hexadécimal
KF -32 768 à constante à virgule fixe
+32 767
KY O à 255 une constante à 2 octets
pour chaque
octet
KB O à 255 une constante à 1 octet
KC 2 caractères une constante en ASCII
alphanumér.
T 0.0 à 999.3 une valeur de temporisation (constante)
K Z O à 999 une valeur de comptage (constante)
K G une constante en virgule flottante
(32 bits)
O à 255 une valeur de temporisation
Z O à 255 une valeur de comptage
LC T O à 255 une valeur de temporisation codée BCD
LC Z O à 255 une valeur de comptage codée BCD

! = Comparaison: égalité
>< Comparaison: inégalité
> Comparaison: supérieur à
>= Comparaison: supérieur ou égal à
< Comparaison: inférieur à
<= Comparaison: inférieur ou égal à

F de deux nombres à virgule fixe (16 bits)


D de deux nombres à virgule fixe (32 bits)
G de deux nombres à virgule flottante (32 bits)

Les instructions de chargement écrivent la valeur adressée dans l'accu 1


dont le contenu précédent est transféré dans l'accu 2 (empilage).

Les instructions de transfert écrivent le contenu de l'accu 1 dans la(1es)


cellule(s) mémoire adressée(s).
Ejremple: Chargement / transfert d'un octet, mot ou double mot de/ vers une
zone mémoire organisée en octets (MIE, Mis, Mémentos, Périphé-
rie).

:L EW 5 Chargement des octets 5 et 6 de la mémoire image des entrées


dans l'accu 1
:L MD 10 Chargement des octets mémentos 10 à 13
31 23 15 7 O
Accu 1
O O O i

Adresses -
croissantes i
31 23 15 7 O
O O 1 j j +1 ACCU 1
I f

Exemple: Chargement / transfert d'un octet, mot ou double mot de/vers


une zone mémoire organisée en mots.

31 23 15 7 O
Octet de
droite O O O i Accu 1

I l p
Octet de
gauche
I
i 1 31 15
I
O
O k Accu 1
1

I 1+1 Accu 1

I
1+ 1

Dans la mémoire, les mots ou double mots sont organisés dans le sens des
adresses croissantes en commençant par les octets ou mots de poids fort.
b r s du changement d'un octet ou d'un mot, les bits non utilisés de lrac-
cumulateur sont mis à zéro.
Les opérations de chargement n'ont aucune influence sur les indicateurs.
Les opérations de transfert effectuent une remise à zéro du bit OS. Le
résultat des instructions de comparaison est donné par le RLG et les indi-
cateurs FL1 et F U . La comparaison est toujours effectuée entre les con-
tenus des accus 1 et 2 (voir les exemples et la liste des opérations).

Il est possible d'accéder à la périphérie par les opérations de chargement


et de transfert.

1. directement:
avec L/T PY, PW, QB, QW ou

2. par la mémoire image:


avec L/T EB, EW, ED, AB, AW, AD et les opérations combinatoires.

Les opérations de transfert T PY O à 127 et TPW O à 126, s'accompagnent


d'une actualisation de la mémoire image des sorties.

Ia mémoire image est située dans une zone dont le contenu nrest.émisà la
périphérie (mémoire image des sorties MIS) et acquis de la périphérie
(mémoire image des entrées MIE) qu'une seule fois par cycle. On évite ainsi
que le changement d'état fréquent d'un bit pendant un cycle, provoque un
battement de la sortie correspondante.

En ce qui concerne la périphérie, tenir compte des points suivants:

- Il existe une mémoire image des entrées/sorties pour les 128 octets
d'entrées et les 128 octets de sortie (adresse de O à 127).

- Pour l'ensemble de la zone de périphérie entendue Q et pour la périphérie


P avec les adresses d'octets de 128 à 255, il n'existe pas de mémoire
image (pour le partage de l'espace d'adressage de la périphérie, se
reporter au chapitre 8.1.2).

- Les cartes ayant des adresses en périphérie Q ne peuvent être embrochées


que dans des châssis d'extension (et non dans le châssis de base).

- -
Un même châssis d'extension ne peut renfermer que des cartes de la péri-
phérie P, ou que des cartes de la périphérie Q.

- Si un ou plusieurs châssis d'extension renferment des cartes adressées


dans la périphérie P, ces adresses ne sont alors plus disponibles pour
des cartes utilisées dans l'appareil de base (double adressage!).
Opérations de temporisation et de comptage

Pour pouvoir charger une temporisation par une instruction de lancement ou


un conpteur par une instruction de positionnement, il faut que la valeur de
temporisation/comptage soit chargée dans l'accu 1 en format BCD.

De préférence utiliser les opéraions de chargement suivantes:

Pour les temporisations: L KT, L EW, LAW, L MW, L DU.

Pour les compteurs: L KZ, L EW, L AU, L MW, L DW

Opération Paramètre Fonction

S1 T O à 255 Lancement d'une tempo. sous forme d'impulsion


S V T O à 255 Lancement d'une tempo. sous forme d'impulsion
prolongée
S E T O à 255 Lancement d'une temporisation retard à la
montée
S S T O à 255 Lancement d'une temporisation retard à la montée
avec mémorisation
S A T O à 255 Lancement d'une temporisation retard à la retom-
bée
R T O à 255 Remise à zéro d'une temporisation
S Z O à 255 Positionnement d'un compteur
R Z O à 255 Remise à zéro d'un compteur
ZV Z O à 255 Incrémentation d'un compteur
ZR Z O à 255 Décrémentation d'un compteur

En effectuant les opérations de temporisation ou de comptage SI, SE, SV,


SS, SA et S, la valeur contenue dans l'accu 1 est transcodée de BCD en
binaire naturel puis transférée dans la cellule de temporisation ou de
comptage avant de réaliser l'opération suuhaitée.

La cellule de temprisation/de comptage est souvent désignée par


"temporisation/compteur" tout court.
Quant la valeur de temporisation ou de comptage est chargée par les ins-
tructions EW, AW, MW ou DW, le mot correspondant doit être structuré de la
manière suivante:

Pour la valeur de temparisation

Bit no
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
\ A A A A /
1 1 I
1O2 10' 1O0

I l
Facteur en code BCD 0...999

Code de base de temps en


code BCD:
O: 0,Ol s
1:OI s
2: 1 s
3: 10 s
Bits non significatifs
(non utilisés)

Exemple: La valeur de temporisation présélectionnée est de 127 S.

Affectation des bits:

1 temr;Sd:s
non uti-
Facteur 127

lisés

Charrue démmape de temporisation est effectué avec me précision d'une


unité de base de temps!
Donc, s i on dénrarre n fois une temporisation ayant la base de temps '1'
(= 100 ms), on obtient une imprécisim de n x 100 m s .

il faut dune choisir, de préférence, des temporisations avec la base de


temps la plus faible possible (base de temps << valeur de temporisation)!

Exemple: pour 4 secondes, ne pas prendre: 1 seconde x 4


mais : 10 ms x 400
Pour une valeur de ccmwwze

Valeur de comptage en code


BCD 0...999

Bits non significatifs


(non utilisés)

Exemple: La valeur de comptage préselectionnée est: 127.

Affectation des bits:

I L /
non uti- \ /
1
lisés
Valeur de comptage 127

Les valeurs de temporisation/comptage contenues dans les temporisations/


compteurs sont codées en binaire naturel. Pour tester une temporisation ou
un compteur, leur contenu respectif peut être chargé dans l'accu 1, soit
directement, soit en valeur codée BCD.

Exem~les:

Chargement direct du facteur d'une valeur de temporisatiai:

Facteur
r-------'-----"
/ .
I
L,,-------,-----
9 O Cellulede
0 temporisation T 10
r-"--'-----"-- V

I "O" 9 0 ACCU
L--,-,----------

L T 10 Chargement direct dans l'accu du facteur en code binaire


naturel.

La base du temps n'est pas chargée.


Chargement direct d'une valeur de comptage:

Valeur de comptage
/ \
r---'-----------
I
L---------,-----
"O" 9 O Cellule de comptage Z 10
r----------""- 0
I
L-------------,,
"O" 9 0 ACCU

L Z 10 Chargement direct dans l'accu de la valeur de comptage du


compteur Z 10

Chargement en code BCD d'une valeur de t e w . t i o n :

Base de temps Facteur

1 - - - - 1 2 - - - -
I
L---- ---- O Cellule de
n n
U'
I I
temporisation T 10
* BCD

r---- ACCU
1
L----
"O" 13 12 11 8 7 4 3 0

Base de temps Facteur

LC T 10 Chargement dans l'accu du facteur codé BCD et de la base de


temps de la temporisation T 10

La base de temps est également chargée.

Chargement en code BCD d'une valeur de canptage:

Valeur de comptage
I
/ \

I I

Binaire * BCD

r---------
0
I "O" 11 8 7 4 3 0 ACCU
L,-,,-----
I I

182 1O' 1O0


\ /
I

Valeur de comptage cod6e BCD


LC Z 10 Chargement dans l'accu de la valeur de comptage codée BCD du
compteur Z 10
b r s du chargement codé BCD, les états des bits 14 et 15 pour les tempori-
sations ou des bits 12 à 15 pour les compteurs, ne sont pas chargés. Les
bits correspondants de l'accu 1 sont à zéro. Ainsi la valeur située dans
l'accu peut être traitée par ailleurs.

Opérations arithmétiques

Opération Paramètre Fonction

+ F Addition de deux nombres en virgule fixe (16 bits)


- F Soustraction de deux nombres en virgule fixe
(16 bits)
x F Multiplication de deux nombres en virgule fixe
(16 bits)
: F Division de deux nombres en virgule fixe (16 bits)
+ G Addition de deux nombres en virgule flottante
(32 bits)
- G Soustraction de deux nombres en virgule flottante
(32 bits)
x G Multiplication de deux nombres en virgule
flottante (32 bits)
: G Division de deux nombres en virgule flottante
(32 bits)

Les opérations arithmétiques réalisent la combinaison entre les contenus


des accus 1 et 2 (voir liste des opérations). Le résultat est stocké
ensuite dans l'accu 1. Une opération arithmétique modifie les registres de
calcul comme suit:

avant: <accu 1> <accu 2> <accu 3>

après:

Le contenu de l'accu 2 est perdu!

Noter que les opérations système renferment des instructions d'addition et


de soustraction de nombre à virgule fixe codés sur deux mots.
B8577633-01

e Appels de blocs

-- -

Opération Paramètre Fonction

SPA Saut inconditionnel


SPB Saut conditionnel (uniquement lorsque RLG = 1)
O B vers un bloc d'organisation
O B vers une fonction spéciale du programme système
P B vers un bloc de programme
F B vers un bloc fonctionnel FB
S B vers un bloc séquentiel

BA F X Saut inconditionnel vers un bloc fonctionnel FX


BABFX Saut conditionnel vers un bloc fonctionnel FX
(uniquement lorsque RLG = 1)

Appel d'un bloc de données DB


Appel d'un bloc de données DX

BE Fin de bloc
BEB Fin de bloc conditionnelle (uniquement lorsque
RU: = 1)
BEA Fin de bloc absolue

e Opérations nuiles

1 Paramètre
-- ---

Opération Fonction

NOP O Opération nulle


NOP 1 Opération nulle
BLD O à 255 Instruction de composition d'image pour la PG
(est traitée par le processeur comme une opé-
ration nulle)

e Instruction d~arrêt

Opération Paramètre Fonction

STP Le processeur se met en STOP


Exemples de prog-tion pour les opératians d i n a t o k e s , de mémorisa-
tion de temporisation. & comptage e t & canparaisai

Combinaison ET

Exemple Reprdsentation STEP 5


LIST CONT LOG

U E 1.1 ~ 3 ~ 1 . 7 MY
U E 1.3
u E 1.7 H H H
= A 3.5 A3.S

La sortie A 3.5 est à I'état " 1 " quand toutes les entrées sont simulta-
nément à I'état "1".
La sortie A 3.5 est à I'état "0" quand une des entrées au moins est A
I'état "0".
Le nombre des entrées e t l'ordre d e leur p r o g r a m m a t i o n est quel-
conque.

Combinaison W

Exemple Reprksentation STEP 5


LIST CONT LOG

O E1.2
E 1 2 1.7 1.5 O E 1.7
O E1.5
= A 3.2
A3 2

A3.2

La sortie A 3.2 est a " 1" quand une entrée au moins est à I'état " 1 ".
La sortie A 3.2 est b I'état "0" quand toutes les entrées sont simulta-
nément à l'état "0".
Le nombre des entrées e t l'ordre d e leur p r o g r a m m a t i o n est quel-
conque.
B8577633-01

e Opérations canbinatoires (suite)

Combinaison E 3 avant OU

Exemple Reprksentation STEP 5


LIST CONT LOG

El5 €16

AJI
€14 tlJ
U E 1.5
O
U
U
1.6

E 1.4
E
1.3
= A3.1
El4 ElJ
~ 1 ~ 1 6 r A J ~
:!:a
E l b
AJI

La sortie A 3.1 est à I'état " 1 " quand la sortie d'une combinaison ET au
moins est à I'état " 1 " .
La sortie A 3.1 est à I'état "0" quand aucune des sorties des cornbinai-
sons ET n'est à I'état " 1 ".

Combinaison ûü avant ET

Exemple Reprbsentation STEP 5


LIST CONT LOG

t 6 0 €61 € 6 1 €65 €60 t62 t 6 1 O E 6.0


O

€61 a-1
O €6.2
O E 6.3
I A?!
= .A 5.1

r21 AI 1

Ca sortie A 2.1 est a I'état " 1 " quand l'entrée E 6.0 ou l'entrée E 6.1 est
l'une des entrées E 6.1 ou E 6.3 sont à " 1 ".
La sortie A 2.1 est à I'état " 0 " quand I'entrée E 6.0 est à "O" e t que la
sortie de la combinaison ET est à I'état "0".
a Opérations ccmbïnatoires (suite)

Combinaison CU avant ET
-- .- -.- -. .- -..---- -- - --
Exemple Representation STEP 5
LIST CONT LOG
- --
tld 115 t l o t?l 1l4270r~31
O
UI E 1.4
O E 1.5 El5 €21
I
.VI € 2 0 8.1
€21 A30
O E 2.0
O €2.1
I
= A 3.0

A 30

La sortie A 3.0 est à I'état " 1" quand les sorties des deux combinaisons
OU sont à I'état " 1 . "

La sortie A 3.0 est à I'état "0" quand aucune des sorties des combinai-
sons OU n'est à I'état "1".

Test d'un signal logique Q "O"

Exemple Representation STEP 5


LIST CONT LOG
--
U E 1.5
UN E 1.6 "E l 65 a A 3 0
= A 3.0

A30

La sortie A 3.0 est à I'etat " 1 " si, e t seulement si l'entrée E 1.5 est à " 1"
(contact fermeture actionné et quand l'entrée E 1.6 est a "O" (contact
à ouverture non actionné).
e Opérations de m é m > L i s a t i a i

némoire RS pour la niémurisath d'une sortie

Exemple Reprhçentation STEP 5


LIST CONT LOG

U E 2.7
El4F2.1 S A 3.5

R A 3.5

AJS

L'état "1" sur I'entrée E 2.7 provoque la mise d " 1 " d e la mémoire (état
" 1 " sur la sortie A 3.5).

Si I'entrée E 2.7 passe d I'état "O", I'état de la sortie reste inchangé, c'est-
a-dire reste mémorisé.
L'état "1" sur I'entrée E 1.4 provoque la remise d zéro d e la mémoire
(état "0" sur la sortie A 3.5).
Si I'entrée E 1.4 passe d I'état "O", l a sortie reste inchangée.
Lorsque les deux entrées sont d " 1 " simultanément (E 2.7 e t E 1.4), alors
la derniére entrée prograrnée est prioritaire (ici E 1.4) e t ce, pendant le
traitement d u reste d u programme.
B8577633-01

Opérations de mém,risaticm (suite)

Xhmire RS pour La mémorisation d'un mémento


--
Exemple Reprdsentation STEP 5
LIST CONT M G

U E 2.6 €1.6 M l 7
S M1.7

M 1.7

MI7

L'état " 1" sur I'entrée E 2.6 provoque la mise a " 1" de la mémoire.
Si I'entrée E 2.6 passe à I'état "O", I'état de la sortie reste inchangé, c'est-
a-dire reste mémorisé.
L'état "1" sur I'entrée E 1.3 provoque la remise à zéro de la mémoire.
Si I'entrée E 1.3 passe a I'état "O", la sortie reste inchangée.
Lorsque les deux entrées sont à "1" simultanément (E 2.6 e t E 1.3), alors
la derniére entrée programmée est prioritaire (ici E 1.3) e t ce, pendant le
traitement du reste du programme.
B8577633-O1

e Opérations de mémorisatim (suite)

F o n c t i m impulsiomelle (cmtact de passage)

Exemple Reprksentation STEP 5


LIST CONT LOG

7- N O M2q
U.
UN
=
E 1.7
M4.0
M2.0 Hf+#
U M2.0
S M4.0
UN E 1.7
R M4.0
hi20

ri nnnnn
Ma0 nnnnn
M20 u
A chaque front montant sur l'entrée E 1.7, le résultat de la combinaison
ET (U E 1.7 et UN M 4.0) est " 1 " du fait de RLB = " 1 ", les mémentos M4.0
("mémento de front") et M 2.0 ("mémento d'impulsion") sont mis 8 "1".
Au cycle suivant, la combinaison ET n'est pas réalisée étant donné que le
mémento M 4.0 est3 " 1".
Le mémento M 2.0 est remis 8 zéro.
Le mémento M 2.0 est donc à l'état "1" pendant un seul cycle de pro-
gramme.

Diviseur binaire (élément basculant T)

Exemple Reprbsentation STEP 5


LIST CONT LOG

E 1.0 U E 1.0 €1.0 M1.O


UN M 1.0 ~1.0
l- = M1.l
U Ml.1
n M 1.1 s M1.O
UN E 1.0
R M1.O
V A 3.0 U Ml.1
M 2.0
U A3.0 ~3.0
= M2.0
Ai O U M1.l
M I I A30 M2.0 A3.0
I l onnnnn
UN A 3.0
E1.O UN M2.0
S A3.0 M 2.0
U M2.0
-O , $ , R A 3.0

Le diviseur binaire (sortie A 3.0) change d'état à chaque transition de


"O" A "1" de l'état de l'entrée E 1.0 (front montant). La fréquence du
signal de sortie de la mémoire est donc la moitié de celle du signal d'en-
trée.
B8577633-01

e Opérations de temporisation

Impttsw

Exemple Reprbsentation STEP 5


LIST CONT LOG

U E 3.0

- - ) - - -T I AW 2 AW 2

A4.0
A4.0 A40
Al0

La temporisation est lancée lorsque l'instruction se présente pour la pre-


mière fois après le passage à "1" d u RLG de UE 3.0. Elle s'écoule jusqu'h
sa fin tant que le RLG de UE 3.0 reste à " 1".
Lorsque le RLG de UE 3.0 retombe a "O", la temporisation est remise
zéro.

Le RLG des instructions UT ou OT est "1" durant l'écoulement de la tem-


porisation.

K T 10.2 :
La temporisation est chargée avec la valeur 10.2 (10 = facteur) le chiffre ES- n
. ,
se trouvant a droite du point indique la base de temps. r 4 n h
O=O.Ols 2 = l s -IrL
l=O,ls 3=10s

DU et DE sont des sorties numériques de la cellule de temporisation. Sur


la sortie DU, on récupère le facteur codé en binaire et sur la sortie DE, la
valeur de temporisation (facteur + base de temps) codée en BCD.
B8577633-01

e qpératians & temporisatiw (suite)

ImpiLsian prolcmgbe (caïibrage)

Exemple Representation STEP 5


LIST CONT LOG

U E 3.1

A4.1
A4.1 A4.1

La temporisation est lancer luisque l'instruction se présente pour la


première fois après le passage 8 ' 1 " du RLG de UE 3 1

Ld retombée A " O " du RLG de UE 3 1 ri'a ducune influerice sur la tempori-


satton

Le RLG des instruct1i:iris UT (ou OT) est " 1" durarit l'écoulement de la
temporisation
(€0 151 (€0 161
EW 1 5 :
M o t contenarit la valeur de temporisation codée BCD L'opérande peut
ëtre E. A, M ciu D (daris l'ensemble . mot d'entrée 15)
IncrCmsnt Valeur
da temps de temporisicion

Retard à La montée
.-
Exemple Representation STEP 5
LIST CONT LOG

u E 3.5

-4---
13

A4 2 A4 2 A42

La temporisation est lancée lorsque l'instruction se présente pour la pre-


mière fois après le passage à "1" d u RLG d e UE 3.5. Elle s'écoule jusqu'à
sa f i n t a n t que le RLG de UE 3.5 reste à " 1 ".

Lorsque le RLG d e UE 3.5 retombe A "O", la temporisation est remise à


zéro.

Le RLG des instructions UT (GJ OT) est " 1 " quand la temporisation.est
écoulée e t aue l'entrée E 3.5 est encore a "1".

KT 9.2 :
La temporisation est chargée avec la valeur 9.2 (9 = facteur; le chiffre se
trouvant A droite d u point indique la base d e temps).
O=O.Ols 2 = l s
l=O,ls 3=10s
e Opérations de temporisation (suite)

Retard A la montée mémorisé

Exemple Reprhsentation STEP 5

I CONT
I LOG

I I I
La temy)cirisation est lancée lorsque l'instruction se présente pour la
premiere fuis après le passage B " 1 " du RLG de UE 3 3

La retombée à " O " d u RLG de UE 3 3 n'a aucune influence sur la


temporisation.

Le RLG des iristructions UT (ou OT) est à " 1 " quarld le temps est écoulé. II
ne repasse à "0" que lorsque la temporisation a été remise B zéro par la
fonction R T (entrée E 3 2 B "1").

Retard Q la retombée (transitim 1---> 0 )


--

Exemple Reprhsentation STEP 5

l CONT
l

La temporisation est lancée lorsque le RLG UE 3 4 passe de " 1" à "O". Elle
s'écoule pendarit le temps programmé

Lorsque I'eritrée E 3.4 repasse à " l " , la temporisatlori est remise à zéro.

Le RLG des instructions UT (ou OT) est " 1 " durant l'écoulement de la
temporisation- quand l'entrée E 3.4 est à " 1 "
B8577633-01

O Opérations de comptage

Positionnement d'un compteur

Exemple Représentation STEP 5


LIST CONT LOG

€4 1 EWM U E 4.1 21 Z1
L EWZO

ILI

DE

Le compteur est positionné sur la valeur de présélection lorsque


l'instruction se presente pour la premiére fois après le passage A " 1 " du
RLG de [JE 4 1 Aux cycles suivants, Ie'RLG de UE 4.1 n'exerce pas
d'influence sur le compteur tant qu'il reste à " 1 " ou s'il retombe à "0".
Un nouveau positiorinement d u compteur ne sera déclenché que lors
d'une nouvelle transition de "O" à "1" du RLG de UE 4 1.
Le m é m e n t o nécessaire A l'exploitation d u f r o n t sur l ' e n t r é e d e
positionnement (entrée E 4.1) est compris dans le m o t de comptage.
DU et DE sont des sorties numériques du compteur. La sortie DU indique
la valeur de comptage codée en binaire naturel. la sortie DE indique
cette valeur codée en BCD.

Remise A zéro d'un compteur

Exemple Representation STEP 5


LIST CONT LOG

40
w binaire
16 b

A? 4 Er 2 A2 4

S i le RLG de UE 4 2 est " 1 " , lecornpteur est remisà zéio


Si le RLG de UE 4 2 est " O " . le compteur n'est pas influericé
ûpératioas de comptage (suite)

La valeur d u compteur adressée est incrémentée 1, jusqu'h une valeur


maximale de 999. La fonction n'est exécutée que pour le front montant
("O" vers "1") du RLG de I'instruction ptécédant I'instruction ZV (ici RLG
de UE 4.1). Les mémentos nécessaires h l'exploitation des fronts sur les
entrées de comptage sont compris dans le m o t de comptage.
L'existence de deux mémentos de front distincts, pour ZV e t ZR permet
d'utiliser le compteur avec deux entrées différentes pour effectuer un
comptage-décomptage.

Exemple Représentation STEP 5


LIST CONT LOG

U E 4.0
ZR Z 1

E40@

binaire
ZA 16b

La valeur du compteur adressée est décrémentée 1, jusqu'a une valeur


minimale de O. La fonction n'est exécutée que pour le front montant
("O" vers " 1 " ) du RLG de I'instruction ptécédant I'instruction ZR Les
mémentos nécessaires 3 l'exploitation des fronts sur les entrées de
comptage sont compris dans le mot de comptage.
L'existence de deux mémentos de front distincts, pour ZV e t ZR permet
d'utiliser le compteur avec deux entrées différentes pour effectuer un
comptage-décomptage.
B8577633-01

Opérations de conparaisun

Comparaison d' égalité

-
Exemple Reprksentation STEP 5
LIST CONT LOG

Fi 4 EBN-J-I
L €819

I= = F A
L 3.0
€620

A30
L-191BEfB2O EBZO O -130

AS0

Le premier opérande indiqué (accu 2 ) est comparé B l'opérande suivant


(accu 1).
Le résultat de la comparaison est une valeur binaire.
1- ACCU 2-l-~

RLG = " 1 " : si l'égalité est verifiée : accu 2-L = accu 1-L
RLG = "0" : si l'égalité n'est pas vérifiée : accu 2 - L t accu 1-L.

Les indicateurs FL1 e t FLO sont positionnés comme indique au ,


chapitre 3.

Lors d'opérations de comparaison de nombres de 1 6 bits à virgule fixe,


I'accu 2-H et l'accu 1-H ne sont pas concernés.
La totalité des contenusdes accu 1 e t 2 (32 bits) sont comparés entre eux
lors d'opération de comparaison de nombres B virgule fixe (! = D) ou à
virgule flottante (! = G).
Lors de la comparaiison, il est tenu compte de la représentation numé-
rique des opérandes : ici par exemple (! = F), les contenus de I'acu 1-L et
de l'accu 2-L sont iriterprétés comme étant des nombres virgule fixe.
e Opérations de comparaiscm (suite)

Comparaison d' inégalité

y,
Exemple Représentation STEP 5
LIST CONT M C

4
L EB21
L OWS
>< F

EBZITL
= A3.1

A3.1
DW3 22 ow3
EBZ~]-~ ~3.1

A3.1

Le premier opérande indiqué est comparé l'opérande suivant (accu 1).


Le résultat de la comparaison'est une valeur binaire. P-I-tPllI
Accu 2 - L
RLG = " 1" : si l'égalité est vérifiée : accu 2-L = accu 1-L
RLG = "O" : si l'égalité n'est pas vérifiée : accu 2-L é accu 1-L.

LBs indicateurs FLl e t FLO sont positionnés comme indique au


1 DWJ 1 ACCU 1-L
chapitre 3.

L'accu 2-H e t I'accu 1-H ne sont pas concernés lors d'opérations de


comparaison de nombresde 16 bits d virgule fixe.
La totalité des contenus des accu 1 e t 2 (32 bits) sont comparés entre eux
lors d'opération de comparaison de nombres d virgule fixe (1 = D) ou d
virgule flottante (! = G).
Les memes indications sont valables pour les comparaisons de supériori-
té, de supériorité et d'égalité, d'inférioriré, d'infériorité e t d'égalité
(voir liste des opérations).
Lors de la comparaiison, il est tenu compte de la représentation numé-
rique des opérandes : [ci par exemple (1 = F), les contenus de I'acu 1-L e t
de I'accu 2-L sont intergrétés comme étant des nombres d virgule fixe.
3.2.2 opérations étendues

Les instructions étendues ne peuvent être utilisées que dans les blocs
fonctionnels (FB et EX). L'ensemble des opérations pour les blocs fonction-
nels comprend les opérations de base et les opérations étendues.

Les opérations système appartiennent aux opérations étendues : avec les


opérations système il est possible, par exemple, d'écraser la mémoire à un
endroit choisi ou de modifier le contenu d'un registre de travail de la
CPU. Les opérations système doivent être enployées avec l a plus grande
prudence. Les opérations système ne peuvent être programmées que si elles
ont été validées dans le masque de préréglage.

Pour les "opérations système", il faut tenir compte du chapitre 9 "accès à


la mémoire" .
Dans les blocs fonctionnels, les opérations ne peuvent être représentées
que sous forme de liste d'instructions. Les programmes des blocs fonction-
nels ne peuvent donc pas être programmés de façon graphique (CONT ou U X ) .

Dans ce qui suit, sont décrites les opérations étendues utilisables unique-
ment dans les blocs fonctionnels.

De plus, les possibilités de combinaison des instructions sur opérandes


formels avec les opérandes actuels sont indiquées.

e Opérations caubinatoires sur b i t s

Opération Description

U = 0 'Fonction ET. test & '1' de I'état d'un opé-


rande formel

UN = 0 Fonction ET, test & 'O" de I'btat d'un opé-


rande formel

O = 0 Fonction OU, test B " 1" de I'état d'un ope-


rande formel

ON = 0 Fonction OU, test & "O" de I'état d'un opé-


rande formel

inscrire l'opérande formel

Les opérandes actuels possiblessont des en-


trées, des sorties, et des mémentos B adresses
de bit (type de paramétre : E. A, format de
paramétre, BI), ainsi que les temporisations
e t les compteurs (type de parametre : T,Z).

Opérations de mém,risatiai

Opération Description

S = 0 Mise & "1" d'un opbrande formel (binaire)

RB = 0 Remise & zéro d'un opbrande formel (binaire)

= = 0 Assignation de la valeur du RLG & un


operande formel
t Inscrire l'opérande formel

Les opérandes actuels posslblessont des en-


trbes, des sorties, et des rnbmentos & adresses
de bit (type de paramétre : E. A. format de
paramétre, BI).
B8577633-01

Opérations de temporisation et de comptage

Opération Description

FR TOB255 Validation d u réarmement d'une temporisation.


L'opération n'est exécutée que pour le front montant
du RLG. Elle déclenche un réarmement de la temporisa-
tion lorsque le RLG de I'instruction précédant I'ins-
truction de lancement est " 1".

RLG
pour SI T

RLG
pour F T

Structation
pour U T

Validation d'un compteur


L'opération n'est exkcutée que pour le front montant
du résultat logique. Elle déclenche un positionnement,
FR ~0à255 une incrémentation ou une décrémentation du comp-
teur quand le RLG de l'instruction précédant I'ins-
truction correspondante est " 1".
Validation d'un opérande formel (pour la description
voir FRT ou FRZ suivant I'opérande formel, type d e para-
mètre : i,Z),
FR = Mise A "O" (numérique) d'un opérande formel (type d e
paramètre : T, Z)
Lancement d'une temporisation (impulsion) définie par
RD = un opérande formel; la valeur de temporisation est con-
tenue dans I'accu (type de paramètre : T).
=
Lancement d'une temporisation (retard à la montée)
définie par un opérande formel; la valeur detemporisa-
tion est contenue dans I'accu (type de paramètre : T).
SE = 0 Lancement d'une temporisation (impulsion prolongée)
définie par un opérande formel (valeur de temporisa-
tion contenue dans I'accu 1) ou positionnement d'un
SVZ = compteur défini par un opérande formel (valeur de
comptage contenue dans I'accu 1) (type de paramétre :
T, Z).
Lancement d'une temporisation (retard à la montée mé-
morisée) définie par un opérande formel (valeur de
temporisation contenue dans I'accu) ou incrémentation
SSV = 1( d'un compteur défini par un opérande formel (type de
paramètre : T, Z)
Lancement d'une temporisation (retard B la retombée)
définie par une opérande formel (valeur de temporisa-
tion contenue dans I'accu) ou décrémentation d'un
SAR = n compteur défini par un opérande formel (type de
paramètre : T, 2 ) .
A
Inscrire I'opérande formel

Opérandes actuels possibles: temporisations e t comp-


teurs (exception : pour BI e t SE uniquement des tempo-
risations).
La valeur de temporisation (ou de comptage) peut Btre
indiquée comme pour les opérations de base ou en tant
qu'opérande formel de la maniere suivante :
Attribuer à la valeur de temporisation (ou de comptage)
la valeur codée BCD contenue dans un opbrande EW,
AW, MW, DW (type de paramètre : E; format de para-
mètre : W) ou dans une constante (type de paramètre :
D; type de paramètre : KT, KZ), I'opérande ou la cons-
tante étant défini par un opérande formel.
B8577633-01

Exemples

Appel du bloc forictioriiiol rrogranime dails la Prograrnnie


bloc foiictionnel exdcuté
.-

:SPb FB203
NOM : EXEMPLE.
ENT1 : E 10.3 :U =ENTl :U E 10.3
TEM1 : T 17 :L KT 010.2 :L KT 010.2
Son1 : n 18.4 :sSV =TEMI :Ss T 17
:U =TEMI T 17
:= =SORI .-
.:II nia.4

:spn ~ ~ 2 0 4
NOM : EXEMPLE
ENTZ : E 10.5 :U =ENT2 :U E 10.5
ENT3 : E 10.6 :SSV =COMP :ZV 2 15
ENTQ : E 10.7 :U =ENT3 :U E 10.6
COMP : Z 15 :SAR =COMP :ZR 2 15
MEMl: il 5 8 . 3 :U =ENT4 :U F 10.7
:L K2lOO :L KZ10o
:SVZ =COMP :S 215
:UN =COMP :UH 2 15
:= =MEMI := H 58.3

:sPn FBZOS
NOM : EXEMPLE.
€NT5 : E 10.4 :U =ENT5 :U E 10.4
TEMZ : T 18 .' :L =MENT :L EU20
MENT : EU20 :SVZ =TEM2 :SV T 18
MEMZ: t i 100.7 :U =TEM2 :U T 18
:= =MEM2 = HlU0.7

Opérations de chargement et de transfert à l'aide d'opérandes foniaels


--

Opération Description

L = Chargement d'un opérande formel. La valeur de


l'opérande défini par un opérande formel est
chargée dans l'accu (type de paramétre : E,
T, Z, A; format de paramètre : BY, W, D).

LC = Chargement codé d'un opérande formel.


La valeur codée BCD d'une temporisation ou
d'un compteur défini (e) par un opérande formel
est chargée dans l'accu (paramètres : T, 2).

LW = Chargement de la configuration binaire d'un


opérande formel. La configuration binaire de
l'opérande formel est chargée dans l'accu
(type de paramètre : D; format de paramètre :
KF, KH, KM, KY, KC, KT, KZ).

Chargement de la configuration binaire d'un


opérande formel. La configuration binaire de
l'opérande formel est chargée dans l'accu
(type de paramètre : D; format de paramètre :
KG) .

T = Transfert vers un opérande formel. Le contenu


de l'accumulateur est transféré vers un
opérande défini par un opérande formel
Inscrire l'opérande (type de paramètre : E, A ; format de para-
forme1 mètre BY, W, D) .
Les opérandes correspondants aux opérations de base peuvent être utilisés
corne opérandes actuels. Pour l'uistruction LW, on peut utiliser une donnée
sous forme de configuration binaire (KM) , de configuration hexadécimale
(KH), de nombre à deux octets (KY), de caractères (KC), de nombre à virgule
fixe (KF), de valeur de temporisation (KT) ou de comptage (KZ). Pour l'ins-
truction Lü une donnée sous forme de nombre à virgule flottante est autori-
sée.

ûpération Paramètre Fonction

L BA O à 255 Chargement d'un mot de la zone "données de


couplage" (zone BA) dans l'accu 1

L BB O à 255 Chargement d'un mot de la zone "données de


couplage" (zone BB) dans l'accu 1

L BS O à 255 Chargement d'un mot de la zone "données


système" (zone BS) dans l'accu 1

L BT O à 255 Chargement d'un mot de la zone "données


système" (zone BT) dans l'accu 1

T BA O à 255 Transfert du contenu de l'accu 1 vers un mot


de la zone "données de co~plage'~(zone BA)

T BB O à 255 Transfert du contenu de l'accu 1 vers un mot


de la zone "données de couplagew (zone BB)

T BS O à 255 Transfert du contenu de l'accu 1 vers un mot


. de la zone "données système" (zone BS)
(disponibles : BS 60 à BS 63)

T BT O à 255 Transfert du contenu de l'accu 1 vers un mot


de la zone "données système" (zone BT)

Opération système

Au contraire des zones BA, BB et BT, seuls les mots BS 60 à BS 63 de la


zone BS pewent être utilisés librement par l'utilisateur.
A ce sujet, se reporter au chapitre 8.2.4 "zone BS/BTW.
Opération Description

ENT Inscription dans les ACCUS 3 et 4 de données utilisées


pour les opérations arithmétiques: les contenus des ACCUS
2 et 3 sont chargés dans les ACCUS 3 et 4.

Il y a "empilage" dans les accumulateurs 3 et 4:

Les contenus des ACCUS 1 et 2 ne sont pas modifiés. L'ancien contenu de


l'ACCU 4 est perdu.

Exem~le

Calcul du quotient: (30 + 3 x 4)/6 = 7


Accu 1 Accu 2 Accu 3 Accu4

Contenu der accus avant


I'enchalntmenl des opéra- 8 b c d
rions arithm~ilque~

L KF 30 30 a c d
L KF 3 3
€NT 3 30
L KF 4 4
'F 12
+F 42 c
L KF 6 6
IF 7

ûpération Paramètre Description

ADD BF - 128 à Addition d'une constante à 1 octet (virgule


+ 127 fixe) au contenu de l'ACCU 1

ADD KF - 32 768 Addition d'une constante à virgule fixe (mot)


a au contenu de l'ACCU 1
+ 32 767

Opération système
ûpération Paramètre Description

ADD DF 2, - 2147483648 Addition d'une constante à virgule fixe (double


à mot) au contenu de l'ACCU 1
+ 2147483647
+ 1) 2) Addition de deux constantes à virgule fixe
(doubles mots): ACCU 1 + ACCU 2
-D 1) 2) Soustraction de deux constantes à virgule fixe
(doubles mots): ACCU 1 -ACCU 2

TAK Permutation des contenus de l'ACCU 1 et 2

Opération système
2, La progrananation dépend du type de console et de la version du logiciel
système

e ûpératians cambïnatoires sur mots

Opération Description

UW Combinaison ET de l'accu 1-L et de l'accu 2-L

OW Combinaison OU de l'accu 1-L et de l'accu 2-L

XOW Combinaison OU exclusif de l'accu 1-L et de l'accu 2-L

Ces opérations influencent les indicateurs F U et FLO, mais pas le contenu


des accumulateurs 3 et 4 (voir indicateurs d'opérations sur mots).

Avec deux opérations de chargement, les accus 1 et 2 peuvent être chargés


avec les opérandes des opérations de chargement. Ensuite, les contenus des
deux accus peuvent être combinés numériquement.

LEW1 EW 1 [Accu 1-L]

LContenu précédent de l'accu 1-L

LEW2

Combinaison ET de EW 2 et EW 1

UW Résultat EW 1
a Opérations de saut

La destination pour les sauts conditionnels et inconditionnels est indiquée


de manière symbolique (maximum 4 caractères, débutant par une lettre).
Ainsi le paramètre symbolique de l'instruction de saut est identique à
l'adresse symbolique de l'instruction de destination. Il faut tenir compte,
lors de la programmation, du fait que la distance absolue de saut ne doit
pas être supérieure à _+ 127 mots et qu'une instruction STEPS peut être
codée sur plus d'un mot. Les sauts ne doivent être effectués qu'à l'inté-
rieur d'un bloc; les sauts au-delà des limites de segments sont interdits.

lmcm!mr!
U s instructions de saut et la destination du saut doivent se situer dans
un même segment. Une seule adresse symbolique de destiriatiai est airtorisée
par =gment.
Exceution : Ceci n'est pas valable pan l'instruction Sm,dont le para-
mètre correspond A la distance absolue de saut.

Opération Description

SPA = adr Saut inconditionnel


Le saut inconditionnel est effectué indépendamment d'une
condition.

SPB = adr Saut conditionnel


Le saut conditionnel est effectué quand RLG = 1.
Lorsque RLG = 0, l'instruction n'est pas effectuée et le
RLG est mis à 1.

SPZ = adr Condition de saut : F U , FLO


Le saut n'est effectué que si F U = O et FLO = 0.
RLG n'est pas modifié.

SPN = adr Condition de saut : F U , FLO


Le saut n'est effectué que si FL1 # FLO.
RLG n'est pas modifié.

SPP = adr Condition de saut : F U , FLO


Le saut n'est effectué que si F U = 1 et FLO = 0.
R U n'est pas modifié.

SPM = adr Le saut n'est effectué que si F U = O et FLO = 0.


RLG n'est pas modifié.

adr = adresse symbolique (maximum 4 caractères).


Opération Description

SPO = adr Saut conditionné au débordement (overflow)


Le saut est effectué si l'indicateur OV = 1.
S'il n'y a pas de dépassement (OV = O), alors le saut n'est
pas effectué. Le RLG n'est pas modifié. Il y a un dépas-
sement quand une opération arithmétique dépasse le doniaine
autorisé pour la représentation choisie .

SPS = adr Saut, quand l'indicateur OS (débordement mémorisé) est à "1"

SPR Saut à l'intérieur d'un bloc fonctimel; est toujours


-32 768 à réalisé indépendamment de conditions.
+32 767

adr = adresse symbolique (maximum 4 caractères)

Opération système

o Opérations de décalage et de rotation

Opération Description

SLW O à 15 Décalage d'un mot (16 bits) vers la gauche (à droite, les
positions libérées sont remplies avec des zéros).

SRW O à 15 Décalage d'un mot (16 bits) vers la droite (à gauche, les
positions libérées sont remplies avec des zéros).

SLû O à 32 Décalage d'un double mot vers la gauche (à droite, les


positions libérées sont remplies avec des zéros).

SVW O à 15 Décalage d'un mot (16 bits) avec signe vers la droite
(à gauche, les positions libérées sont remplies avec le bit
15).

SVD O à 32 Décalage d'un double mot avec signe vers la droite


(à gauche, les positions libérées sont remplies avec le bit
31).

RLD O à 32 Rotation vers la gauche (32 bits).

RRD O à 32 Rotation vers la droite (32 bits).

Seul l'accu 1 intervient dans les opérations de décalage et de rotation. Le


paramètre de cette instruction indique de combien de positions le contenu
de l'accu est décalé. Pour SUJ, SRW et SVW, seul le mot de poids faible
(accu 1-L) est affecté par le décalage, et pour S m , SVD, RLD et RRD la
totalité du contenu de l'accu 1 (32 bits) est concernée.

Les fonctions de décalage et de rotation sont effectuées indépendamment


d'une quelconque condition.
Le dernier bit décalé hors de l'accu peut être testé par des fonctions de
saut : avec SPZ, le saut est possible quand ce bit est à O; avec SPN,
quand ce bit est à 1.

Les indicateurs FLû et FL1 sont influencés :

FLl FLO Décalage : dernier bit décalé


I 1

Exemples

Progranune STEP5 : Contenu des mots de données :

KH = 14AF

KH = 4AFO

Programme STEP5 Contenu de l'accu 1 (hexadécimal)

:L EDO 2348 ABCD


:SLW 4 2348 BCW
:SRW 4 2348 OBCD
:SLD 4 3480 BCDO
:Sm7 4 3480 FBCD
:SVD 4 0348 OFBC
:RLD 4 3480 FBCO
:Fm 4 0348 OFBC

Applications : Multiplication par des puissances de 2,


Exemple : nouvelle valeur = ancienne valeur x 8

:L MM10
:SUJ 3
:T MM10 Attention: ne pas dépasser la li-
mite du domaine positif!

Division par des puissances de 2


Exemple : nouvelle valeur = ancienne valeur : 4

:A DB5
:L DWO
:SRW 2
:T DWO
B8577633-01

e Opérations de cormersiai

Opération Description

KEW Formation du complément à 1 de l'accu 1 (16 bits)

KZW Formation du complément à 2 de l'accu 1 (16 bits)

KZD Formation du complément à 2 de l'accu 1 (32 bits)

DEF Conversion BCD - binaire d'un nombre à virgule fixe (16 bits)
DUF Conversion binaire - BCD d'un nombre à virgule fixe (16 bits)
DED Conversion BCD - binaire d'un double mot (32 bits)

DUD Conversion binaire - BCD d'un double mot (32 bits)


FDG Conversion d'un nombre à virgule fixe (32 bits) en un nombre
à virgule flottante (32 bits)
cf. OB 220: extension du signe

GFD Conversion d'un nombre à virgule flottante (32 bits) en un


nombre à virgule fixe (32 bits)

DEF:
La valeur contenue dans l'accu 1-L (bits O à 15) est interprétée comme
étant un nombre codé en BCD. Après la conversion, le contenu de l'accu 1-L
est un nombre de 16 bits à virgule fixe.

DOF:
La valeur contenue dans l'accu 1-L (bits O à 15) est interprétée comme
étant un nombre de 16 bits à virgule fixe. Après la conversion le contenu
de l'accu 1-L est un nombre codé en BCD.

A
DEF

S S S S

102 lol 1o0

S = signe : O = positif
1 = négatif
DED :
La valeur contenue dans l'accu 1 (bits O à 31) est interprétée comme étant
un nombre codé en BCD. Après la conversion, le contenu de l'accu 1 est un
nombre de 32 bits à virgule fixe.

m:
La valeur contenue dans l'accu 1 (bits O à 31) est interprétée conmie étant
un nombre de 32 bits à virgule fixe. Après la conversion, le contenu de
l'accu 1 est un nombre codé en BCD.

A
DED

S S S S

106 105 104 103 102 lol 1o0

S = signe : O = négatif
1 = positif

FDG:
La valeur contenue dans l'accu 1 (bits O à 31) est interprétée comme étant
un nombre de 32 bits à virgule fixe. Après la conversion, le contenu de
l'accu 1 est un nombre à virgule flottante (exposant et mantisse).

GFD:
La valeur contenue dans l'accu 1 (bits O à 31) est interprétée comme étant
un nombre à virgule flottante. Après la conversion, le contenu de l'accu 1
est un nombre de 32 bits à virgule fixe.

Les nombres à virgule flottante 2 O ou j -1 sont, si nécessaire, arrondis à


la valeur entière inférieure la plus proche. Les nombres à virgule flot-
tante < O et > -1 sont arrondis à 0.

Exemples : +5,7 --> 5


-2,3 --> -3
-0,6 --> O
+0,9 --> O
Exposant Mantisse

Le contenu du mot de données DW 64 doit être complémenté bit à bit ('inver-


sé') et transféré dans le mot de données DW 78.

Programme STEP5 : Contenu des mots de données

Le contenu du mot de données DW 207 est à interpréter comme étant un nombre


à virgule fixe et à transférer, en changeant le signe, dans le mot de don-
nées DU 51.

Programme STEP5 Contenu des mots de données

ûpération Description

D 1 à 255 Décrémentation

1 1 à 255 Incrémentation

Le contenu de l'accumulateur 1 est décrémenté (diminué) ou incrémenté


(augmenté) du nombre indiqué en tant que paramètre. L'exécution de l'opéra-
tion est indépendante d'une quelconque condition. Elle se limite à l'octet
de droite (sans report).
Exemple :

Progranmie STEP5: Contenu des mots de données:


O ûpératians & substitution

ûpération Description

B DW O à 255 Substitution par un mot de données


(opération) Le paramètre de l'instruction suivante est remplacé
par la valeur contenue dans le mot de données (du
bloc DB/DX owert) défini par le paramètre de BDW

B MW O à 254 Substitution par un mot de mémentos


(opération) Le paramètre de l'instruction suivante est remplacé
par la valeur contenue dans le mot de mémentos
défini par le paramètre de BMW

Appel d'un bloc défini par un opérande formel (type


de paramètre B): seuls A DB, SPA PB, SPA FP, SPA SB
peuvent être substitués.

1nsc;ire
1'opérande
formel

Fxécution de l'opération définie par un opérande


formel contenu dans l'accu 1.

Exécution de l'instruction définie dans la zone des


données système (BS données système libres: BS 60 à 63).

Fonction syst&ne
2, La valeur qui se trouve dans la donnée système ou dans l'opérande formel
est interprétée en tant que code opération STEP5 qui est ensuite exécu-
té. Opérations admissibles tout comme pour B MW et B DW.

A l'exception de celles indiquées ci-après, toutes les opérations peuvent


être combinées avec B DW ou B MW:

- toutes les instructions codées sur deux et trois mots, cf. également
annexe D (sont admises E DB, EX DX, SES, SEF, AX DX, BA FX et BAB FX),

- les opérations avec opérandes formels dans les blocs fonctionnels,


- SPA/SPB OB, SPA/SPB PB, FB,.....
La console de programmation ne vérifie pas si les combinaisons sont admis-
sibles ou pas.

> L EB 120 (= instruction exécutée)


Exemple (BDW)

Les contenus des mots de données DW 20 à DW 100 doivent être mis à "OW.
Le registre d'index pour le paramètre des mots de données est DW 1.

:L KF20 Initialisation registre d'index


:T DU1
MO01 :L KFO Mise à O
:B DU1 au lieu de T DWO on exécute T D W a W
:T DUO
:L DU1 Incrémentation du registre d'index
:L KF 1
:+F
:T DU1
:L KF 100
:<=F
:SPB =MO01 Saut, quand l'index se trowe dans la zone DW 20 à
... DW 100; Suite du programme STEP5

Exemvle d'avvlication : Répartiteur de sauts pour l'emploi de sous-


programmes (BMW)

:B MW5
+ distance +:SPA =MO00 Mot de mémentos MW 5 :
de saut

+>:SPA
:SPA =MO01
:SPA =MO02
=MO03
:SPA =MO04
..
u Distance de saut

max. k127

..
MO00 :
..
:BEA
MOOl: . Avantage :
. O Tous les sous-programmes se
:BEA trouvent dans le même bloc.
M002: ,
..
:B U

Exemple d'a~vlication : Répartiteur de sauts pour les appels de blocs

:B MW10 Mot de mémentos MW 10 :


:SPA PB0
Bloc no x
I
B8577633-01

o V a ï i d a t i o n / h W b i t i o n des alarmes process

AS Inhibition des alarmes process

AF Validation des alarmes process

Ces instructions peuvent par exemple être utilisées pour inhiber le traite-
ment d'alarmes pendant le traitement d'un programme déclenché par horloge.
Dans la partie du programme, se trouvant entre les instructions AS et Aï?,
le traitement des alarmes process n'est alors plus possible.

Veuillez aussi vous référer à la fonction spéciale OB 120 "inhibition des


alarmes", chapitre 6.8.1.

e Autres opérations

Opération Paramètre Description

E DB 3 à 255 Génération d'un bloc de données DB dans la RAM DB

M DX 1 à 255 Génération d'un bloc de données DX dans la RAM DB

E DB/EX DX: Créatiai de bloc de damées

L'instruction E DBxxx crée un bloc de données DB avec le numéro xxx (entre


3 et 255) dans le RAM DB interne du processeur.

Avant de programmer cette opération, il faut indiquer dans l'accu 1-L le


nombre de mots de données que le nouveau bloc DB doit contenir (max.
4091 DW, en-tête compris). L'en-tête de bloc correspondant est alors élabo-
ré par l'instruction E DB.

S'il existe déjà un bloc de données portant le même numéro, si la longueur


du bloc est incorrecte ou si la place mémoire en RAM n'est pas suffisante,
le programme système appelle le bloc OB 31. Si celui-ci n'est pas program-
mé, le processeur se met en STOP. L'accu 1 contient alors les indicateurs
de défauts.

L'instruction M crée un bloc de données DX et travaille canne


E DBlnor (paramètre autorisé: 1 à 255).
Opération Paramètre Description

SES O à 31 Positionnement d'un sémaphore

SEF O à 31 Libération d'un sémaphore

Si deux ou plusieurs processeurs d'un automate programmable accèdent à une


zone de mémoire commune (périphériques, processeurs de cormmmication, péri-
phérie intelligente), le risque existe que les processeurs écrasent mutuel-
lement leurs données et lisent des données intermédiaires erronées. Il est
donc nécessaire de coordonner l'accès des processeurs à la zone mémoire
commune.

La coordination des accès est possible à l'aide de sémaphores et des ins-


tructions SES et SEF : dans une configuration multiprocesseur, un proces-
seur ne pourra accéder à la zone mémoire commune, qu'après avoir positionné
le sémaphore concerné (SES). Le sémaphore xx peut ainsi être positionné par
un seul processeur. Si un processeur n'a pas la possibilité de positionner
le sémaphore, alors il doit renoncer à accéder à la mémoire.
De la même manière, un processeur doit renoncer à un nouvel accès à la
mémoire après avoir libéré le sémaphore (SEF).

Tous les processeurs concernés doivent avoir un bloc fonctionnel contenant


un programme dont la structure est la suivante :

Positionner le sémaphore : SES

Opération réussie?

oui non

Accès à la mémoire
commune protégée
par le sémaphore

I
Libérer le sémaphore : SEF
I
( Fin ) < +
I
En utilisant les instructions SES et SEF, il est garanti à un processeur de
v o i r transférer vers/de une zone mémoire un ensemble cohérent d'informa-
tions, sans être interrompu par un autre processeur.

lmomAm!
processeins qui doivent accéder & façon ..
U s instzuctians SES xx e t SEF xx doivent être ut5lïsées par tais les
aimezonememoire
cammune (adresses > POOOH).

L'instruction SES xx (positionner le sémaphore) occupe, pour le processeur


correspondant, un octet donné dans le coordinateur (sous réserve que celui-
ci n'est pas occupé précédemment par un autre processeur). Tant que le
processeur y reste déclaré, les autres processeurs ne peuvent pas accéder à
la zone mémoire protégée par le sémaphore (numéro O à 31). Cette zone est
donc verrouillée pour les autres processeurs. Ceci est à garantir par une
programmation adéquate.

L'instruction SEF xx (libération du sémaphore) libère l'octet dans le


coordinateur. Ainsi la zone mémoire précédemment protégée peut à noweau
être lue/écrite par les autres processeurs. ün sémaphore ne peut être
libéré que par le processeur qui l'a positionné.

COR:
Coordinationde l'accès sur lazone 1O
ài'aide du sémaphore 10
I l

Processeur 1 Processeur 2 Processeur 3 Processeur 4


:SES 10 :SES 10 :SES 10 :SES 10

Zone 1O
(p. ex. QW6)

- +
SES 10

SEF 10
Demande du droit d'accès à la zone 10
Demande accordée par COR au processeur 3
Accès auxdonnées de la zone 1O
Restitutiondei'autorisation d'accès
Avant chaque positionnement ou libération d'un sémaphore donné, les ins-
tructions SES et SEF contrôlent l'état de ce sémaphore.
Les indicateurs FLO et FL1 sont alors influencés :

FL1 FLO Signification Exploitation

O O Le sémaphore a été positionné par un autre SPZ


processeur et ne peut pas être positionné

1 O Sémaphore va être positionné/libéré SNP, SPP

lHmKmm!
ïe processus & test d'un sémapbre (= processus & lecture) et le pro-
cessus & positiamenient ou & libération du si%uzpkrre (= processus d'écri-
ture) forment un m. Durant ces opérations, auam autre processeur ne
peut accéder à ce sémaphore et le kis S5 n'est pas disponible p m r un antre
processeur.

b r s de l'utilisation des sémaphores il est nécessaire de respecter les


points suivants :

- ün sémaphore est une variable globale, c'est-à-dire que le sémaphore


ayant par exemple le numéro 16 n'est disponible qu'une seule fois, même
lors de 1'utilisation de trois processeurs.

- Les instructions SES et SEF doivent être utilisées par tais les pro-
cesseurs dont l'accès à une zone mémoire commune doit être coordonné.

- Tous les processeurs concernés doivent avoir le même mode de démarrage.


b r s d'un nouveau démarrage, tous les sémaphores sont effacés par le
programme système, lors d'un redémarrage manuel ou automatique, l'état
des sémaphores est conservé.

- En fonctionnement multiprocesseur, le démarrage doit être synchronisé.


De ce fait, le mode TEST n'est pas autorisé.
Exemple d'application des s é m a ~ 2 ~ ~ e s

ün automate S5-135U comporte quatre processeurs qui accèdent à une zone


mémoire conmnme de la périphérie Q (QW 6) pour y déposer des signalisations
d'état qui sont transmises à un indicateur. Chaque signalisation doit
persister pendant 10 secondes avant de powoir être écrasée par une nou-
velle signalisation en provenance du même ou d'un autre processeur.

L'accès au mot périphérique QW 6 (périphérie étendue, pas de mémoire image)


est géré par un sémaphore. Seul, le processeur ayant positionné avec succès
le sémaphore correspondant à cette zone peut écrire sa signalisation sur QW
6. Ce sémaphore reste positionné pendant une durée de 10 secondes (Tempori-
sation T10). Ce n'est qu'après l'écoulement de cette temporisation que le
processeur libère le sémaphore et la zone mémoire, permettant ainsi aux
autres processeurs d'y accéder. QW 6 peut alors recevoir une autre signali-
sation.

Si le sémaphore a déjà été positionné par le processeur au moment où le


processeur y tente de le positionner, le processeur y ajourne sa tentative
de positionnement jusqu'au cycle suivant.

Le programme suivant peut être traité dans les quatre processeurs mais avec
une signalisation différente :

O POSITIONNER LE SEMAPHORE

Ï PROGRAMME PRINCIPAL
l SORTIR IA SIGNALISATION

LIBERER LE SENAPHORE

5 mémentos sont utilisés :

M 10.0 = 1 : Une signalisation est demandée ou en cours de traitement.


M 10.1 = 1 : Le sémaphore a été positionné avec succès.
M 10.2 = 1 : La temporisation est lancée.
M 10.3 = 1 : La signalisation est transférée.
M 10.4 = 1 : Le sémaphore est libéré.
NOM :MAIN
:U M 10.0 Aucune signalisation n'est active,
:SPB =MO01

:UN E 0.0
:BEB

:L KH2222 Elaborer la signalisation et


:T m 2
:UN M 10.0
:S M 10.0 Mettre à "1" le mémento 'SIGNALISATION'

MO01 :SPA FBlO Appel du bloc FB 'SIGNAL'


NOM :SIGNAL

:BE

NOM :SIGNAL

:UN M 10.1 Si le sémaphore n'est pas positionné,


:SPB FBlOO appeler le bloc FB 'positionner sémaphore'
NOM :SPIASET

:U M 10.1 Si le sémaphore est positionné et


:UN M 10.2 la temporisation n'est pas en cours
:S M 10.2
:L KT010.2 Lancer la temporisation
:SV T 10
:U M 10.2 Si la temporisation est lancée
:UN M 10.3 et aucune signalisation n'est transférée,
:SPB FBllO appeler le bloc FB 'sortir la signalisation'
NOM :SORTSIGN

:U M 10.2 Si la temporisation est lancée


:UN M 10.4 et que le sémaphore n'est pas libéré
:UN T 10 et que la temporisation est écoulée.
:SPB FBlOl appeler le FB "libérer sémaphore"
NOM :SEMARESE

:UN M 10.4 Si le sémaphore est libéré,


:BEB

:L KHOOOO
:T MB 10 Mettre à "O" tous les mémentos
:BE ainsi que le mot de signalisation
NOM :SPIASET

:SES 10 Positionner le sémaphore no 10


:SPZ =MO01
:UN M 10.1 Si le sémaphore est positionné avec succès,
:S M 10.1 mettre à "1" le mémento 'SEMA-POSITIONNE'
MO01 :BE

NOM : SORTSIGN

Transférer la signalisation
dans le mot de périphérie

Mettre à "1" le mémento 'TRANS-SIGNAL1

NOM : SEMARESE

:SEF 10 Libérer le sémaphore Nr. 10


:SPZ =MO01
:UN M 10.4
:S M 10.4 Positionner le mémento 'SEMAPHORE UBERE'
MO01 :BE
4 Etats de fonctionnement
4.1 Etats de fonctionnement et niveaux de traitement
du programme
La CPU dispose de trois états de fonctionnement :

Etat STOP

Etat DEMARRAGE

Etat MARCHE (RUN)

Corne décrit au chapitre 2, lors de l'apparition de certains événements, le


programme système appelle les blocs d'organisation prévus à cet effet (OB 1
à OB 34), ces derniers pouvant contenir la réaction du processeur voulue
par l'utilisateur. C'est ainsi que le programme système appellera l'OB 24
s'il se produit un retard d'acquittement lors de l'actualisation de la
mémoire image en RUN .

Certains événements ne peuvent apparaître qu'à l'état DEMARRAGE, d'autres


qu'à l'état RUN et certains aussi bien à l'état DEMARRAGE qu'à l'état RUN
(voir pages suivantes).

Suite à un appel de bloc d'organisation, le processeur exécute le programme


STEP 5 qui y est contenu. Ceci s'accompagne de la création d'un nouveau ieu
de registres (registres : pointeur de la pile de blocs, adresse de début du
bloc de données, longueur du bloc de données, compteur d'adresse STEP 5,
accus 1 à 4). Si le traitement 'normal' du programme est interrompu par un
événement, ce traitement sera repris à l'endroit où a eu lieu l'inter-
ruption lorsque le processeur aura effectué le traitement du bloc d'organi-
sation, y compris tous les blocs qui y sont appelés. Au retour, le contenu
antérieur des registres est à nouveau valable.

A l'un ou plusieurs de ces blocs d'organisation est affecté un niveau de


traitement de proarame : par exemple, si l'OB 2 est appelé, le niveau de
traitement de programme "AIARME-PROCESS" est activé. Le niveau 'ERREUR DE
CODE OPERATION' est activé par l'appel de l'OB 27, de l'OB 29 ou de
l'OB 30.

La page suivante montre une vue d'ensemble des états de fonctionnement et


des niveaux de traitement du programme dans l'automate S5-135U avec la
CPU 928.
Figure 4-1 : Vue d'ensemble des états de fonctionnement et des niveaux
de traitement de pronranrme :

Niveaux de traitement de programme en DEMARRAGE

DEMARRAGE WEMARRAGE MANUEL


REDEMARRAGE AUTOMATIQUE
DCO (erreur de code de commande)
Dm (erreur de temps d'exécution)
neD (erreur d'adressage)
@ (retard d'acquittement)
Niveaux de traitement de programme en RUN

CYCLE (exécution du programme cyclique)


ALARME HORLOGE (exécution du programme d'horloge)
ALARME HORLOGE (exécution du programme d'horloge)
ALARME HORLOGE (exécution du programme d'horloge)
ALARME HORLOGE (exécution du programme d 'horloge)
ALARME HORLOGE (exécution du programme d'horloge)
ALARME HORLOGE (exécution du programme d'horloge)
ALARME HORLOGE (exécution du programme d'horloge)
ALARME HORLOGE (exécution du programme d'horloge)
ALARME HORLOGE (exécution du programme d'horloge)
ALARME REG. (exécution du programme de régulation
déclenché par horloge)
ALARME PROCESS (exécution du programme d 'alarme)
>Io0 (collision dralarmes d'horloge)
DEPRF% (erreur dans programme de régulation)
CYC (dépassement du temps de cycle)
DCO (erreur de code opération)
Dm (erreur de temps d'exécution)
neD (erreur d'adressage)
ACQ (retard d'acquittement)
BBBa (abandon)
ün niveau de traitement de programme est également caractérisé par les
points suivants:

- Chaque niveau possède son programme système spécifique.


Exemple:

Au niveau CYCLIQUE, le programme système actualise la mémoire image des


entrées/sorties, réarme le chien de garde et appelle la gestion de l'in-
terface-console (point de contrôle système).

- Pour chaque niveau de traitement et en cas d'interruption, le programne


système effectue une introduction dans la pile des interruptions (ITPILE)
de manière que l'on puisse revenir au niveau de traitement initial après
avoir réalisé le traitement de(s) l'interruption(s).

Exemple:

STP
KF'lLE
DAD
lTPlLE
DCO
WlLE
CYC
. iTPlLE =
CYC imagesdes
niveaux

- Les niveaux de traitement de programme ont une priorité déterminée. C'est


en fonction de cette priorité qu'ils peuvent s'interrompre mutuellement
ou être imbriqués (cf. ci-après).

Les "niveaux de redémarrage et de défauts" se distinguent des "niveaux de


base" par le fait qu'ils sont urnnédiatement insérés en fin d'ins-
tructions, dès que l'événement correspondant apparaît. Il peuvent être
imbriqués dans les niveaux de base ainsi que mutuellement. Dans le cas de
défauts, celui qui apparaît en dernier lieu est toujours le plus priori-
taire.

ün "niveau de base" ne peut être inséré dans le niveau de base de priori-


té inférieure qu'en fin de bloc, à moins que 1'on en ait décidé autrement
en paramétrant le DX O (cf. chapitre 7).

Priorité des "niveaux de basev:

CYCLE
ALARMES D'HOrnES
ALARME REGULATEUR
ALARME PROCESS

Les alarmes d'horloges sont également hiérarchisées, leur priorité


étant d'autant plus grande que leur période est plus courte.
Exemple :

Il se présente une alarme d'horloge pendant le traitement d'une alarme


process.
Etant donné que l'alarme périodique est plus prioritaire, le traitement
de l'alarme process sera interrompu en fin de bloc pour permettre le
traitement de l'alarme d'horloge. Si, lors du traitement de l'alarme
d'horloge, il apparaît un défaut d'adressage, le traitement de l'alarme
d'horloge sera interrompu dès la prochaine fin d'instruction et le niveau
DAD y sera inséré.

- h niveau de traitement de défaut activé mais qui n'est pas encore entiè-
T
rement traité, ne peut pas être activé de noweau, même lorsqu'un autre
niveau de traitement de programme a été imbriqué. Dans ce cas, l'aiaamate
el-- passe directement à l'arrêt (état SIDP) en raison de l'appel
double d'un niveau de traitemmt de programme (dans la pile d'inter-
ruptions: WXIB"). L'indicatif 'WUB' et le niveau de traitement qui a
été activé une deuxième fois sont marqués d'une croix dans l'ITPILE,
'Prof.01'.

Exemple 1:

h r s du traitement du niveau DAD (OB 25)) une autre erreur d'adressage


apparaît. Etant donné que le niveau DAD est encore activé, il ne peut pas
être appelé une deuxième fois: le processeur se met en STOP.

'STOP
.... Erreur d'adressage
Exemple 2:

A l'apparition d'une erreur de code opération au niveau de traitement


DPT, le programme système tente d'appeler le niveau DCO (OB 29). Celui-ci
a cependant déjà été activé par l'apparition d'une erreur de paramétrage
(OB 30) et n'a pas été exécuté entièrement. Un nouvel appel du niveau DCO
n'est donc pas admis à cet endroit: le processeur se met à l'arrêt.

STOP
.'.
'\

-..
".,,~rreurde code op6ration

DPT

DCO

CYC

Les différents niveaux de traitement de programme, y compris les blocs


d'organisation correspondants seront décrits plus en détails dans les
chapitres suivants:

Le chapitre 4 . 3 est consacré aux "niveaux de base" en DEMARRAGE.

Le chapitre 4 . 4 est consacré aux "niveaux de basew en RUN.

Les chapitres 5 . 5 à 5 . 6 sont consacrés aux "niveaux de défautw en DEMARRAGE


et en RUN.
4.2 Etat de fonctionnement STOP
L'état de fonctionnement STOP est caractérisé par les propriétés suivantes:

- Aucune exécution du programme d'application n'a lieu.

- brsqu'une exécution de programme cyclique a eu lieu, les valeurs des


compteurs, temporisations, mémentos et images de processus sont conser-
vées lors du passage en STOP.

- Le signal BASP (inhibition des sorties) est émis. Ainsi toutes les sor-
ties TOR sont verrouillées.

Exception: En mode de test, BASP n'est pas émis!


(Mode test, cf. chapitre 10.5).

- brsqu'une exécution de programme a eu lieu, une pile des interruptions


(ITPILE) existe à l'état STOP.

IED en face avant du processeur:


LED RUN: éteinte

LED STOP: allumée (en feu fixe ou clignotante)

LED BASP: allumée (sauf en mode test)

La LED STOP peut indiquer quelles sont les causes éventuelles de l'état
STOP actuel. Lorsqu'elle est allumée en feu fixe ou lorsqu'elle clignote,
ceci peut avoir une signification précise qui est expliquée dans ce qui
suit.

La IED STOP est a i l d e en feu fixe :

L'état STOP a été prwoqué :

en fonctionnement nwnoprocesseur :

a) en basculant le commutateur de mode de 'RUN' sur 'STOP'

b) par la fonction console "STOP AG"

c) par des défauts de l'équipement (comme DPE, BAT, MDT)

d) par un effacement général

en fonctionnement ml tiprocesseur :

a) en basculant le commutateur de mode du coordinateur de 'RUN' sur 'STOP'

b) par un autre processeur qui s'est mis en STOP sur un défaut


(sur les processeurs non en défaut, la LED est allumée en feu fixe)
c) par la fonction console 'STOP AG' sur un autre processeur

d) par la fonction console 'FM DE CONTROU PAS-A-PAS' sur un autre proces-


seur

ïa IED SrOP clipnote lentement : (environ 1 fois toutes les deux secondes)

Un clignotement lent de la LED S M P signale dans la plupart des cas, un


défaut.

Eh fonctionnement multiprocesseur, le clignotement lent permet d'identifier


le processeur qui a occasionné l'arrêt (suite à un défaut).

L'état STOP a été prwoqué par :

a) une instruction STOP dans le progrme utilisateur

b) une erreur de manipuiation (DB 1 erroné, choix d'un mode de


démarrage non autorisé, etc ...)

c) une erreur dans le programme utilisateur, pour laquelle il existe un


bloc d'organisation approprié (appel d'un bloc non chargé, erreur
d'adressage, retard d'acquittement, etc);

les LED suivantes renseignent alors sur la cause du défaut :


ADF (= DAD)
QVZ (= ACQ)
ZYK (= CYC)

d) la fonction console 'FIN DE CONTROLE PAS-A-PAS"pour cette CPU

ïa IED-SrOP clipnote rapidement : (environ 2 fois par seconde)

Un clignotement rapide de la LED STOP vous signale : "demande d'effacement


général"!

Demande d'effacement général

Cette demande peut émaner du programme système ou de l'utilisateur.

a) Demande de la part du p r o g r m e système :

Après chaque mise sous tension et effacement général, le processeur


effectue une routine d'initialisation. Si un défaut est détecté lors de
cette initialisation, le processeur se met en STOP avec clignotement
rapide de la LED STOP.

Erreurs possibles: 1. Contenu de la RAM vide


Remède: effacement général du processeur

2. EPROM utilisateur est vide ou pas enfichée


Remède: enficher une EPROM programmée et
effacement général du processeur
La cause du dérangement doit être éliminée et procéder ensuite à un
nouvel effacement général du processeur.

b) Demande de la part de l'utilisateur :

La demande d'effacement général s'effectue de la façon suivante :


e Basculer le commutateur de mode de 'RUN' sur 'STOP'.

Résultat : le processeur se trowe en STOP.


la LED STOP est en feu fixe.

e Maintenir le commutateur à rappel automatique en position 'OVERALL


RESET' et basculer le comtateur de mode de 'STOP' sur 'RUN' et à
noweau sur 'STOP'.

Résultat : l'effacement général est demandé.


La LED STOP clignote rapidement.

lmcmAJn!
Sillon renonce à llexécutionde l l e f f a m t général que l'on vient de
-der, on choisira -tenant un mode de 8' , ge-

Effectuer l'effacement nénérai

Indépendamnent du fait que la demande d'effacement général provienne du


système ou de l'utilisateur, il faut effectuer l'opération de la manière
suivante :

Maintenir le commutateur à rappel automatique sur la position 'OVERAIL


RESET' et basculer le commutateur de mode de 'STOP' sur 'RüN' et à
nouveau sur 'STOP'.

Résultat ': l'effacement général est effectué.


La LED STOP passe en feu fixe.

e Ou : à l'aide de la fonction console 'RAZ AG'.


(En effectuant un effacement général à l'aide de la console, il n'est pas
nécessaire de la demander en manoeuvrant les commutateurs! La position
des deux commutateurs est indifférente.)

Résultat : l'effacement général est effectué.


La LED STOP passe en feu fixe.

llmmmn!!
Après avoir effectué un effacemnt général, la seule possibilité de mise en
marche est le dhamarze!

Pour quitter l'état STOP : - choisir un mode de démarrage (cf. chap. 4.3)
- effectuer un effacement général puis un
'démarrage'
- effectuer une marche de test en fonctionne-
ment multiprocesseur, voir chapitre 10.5)
4.3 Mode de fonctionnement DEMARRAGE
L'état de fonctionnement DEMARRAGE est caractérisé par les points sui-
vants :
- Le démarrage est le passage de l'état STOP à l'état RUN.
- Il y a trois modes différents de démarrage : le démarrage, le redémar-
rage manuel et le redémarrage automatique.
Après le démarrage, le traitement cyclique du progrme utilisateur est
repris au début. Après un redémarrage, le traitement de ce programme est
repris à l'endroit où a eu lieu l'interruption.
- Pour chacun des trois modes de démarrage, le programme système appelle
un bloc d'organisation spécifique dans lequel il est possible d*inclure
un programme de démarrage bien défini. La langueur du programme STEP 5
dans ces blocs est illimité. Il n'y a pas de surveillance du temps de
cycle. Il est possible d'appeler d'autres blocs à partir des blocs de
démarrage.

- Les valeurs des compteurs, temporisateurs, mémentos et mémoires images


sont traitées différemment suivant les modes de démarrage.
- Le signal BASP (verrouillage des sorties) est actif. Ainsi toutes les
sorties TOR sont verrouillées.
Exception : en TEST, BASP est inactif! (voir chapitre 10.5).

E t a t s des IED en face avant de la CPü pendant le dibarrage :

LED RUN éteinte

LED STOP éteinte

LED BASP allumée (sauf en TEST)

Remarque :
Les indications concernant le "comportement au démarrage en fonctionnement
multiprocesseur" sont données dans le chapitre 10.4.

Pour effectuer un démarrane:

Maintenez le commutateur à rappel automatique en position "RESET" et


basculer simultanément le commutateur de modes de fonctionnement de
"STOP" sur "RUN" :

e Ou: par la fonction PG "START AG" (--> démarrage)


ün démarrage doit être réalisé à la suite

- d'un débordement de pile (ITPILE: "IT.Ir>,BL.P>") .


- d'un double appel d'un niveau de traitement de programme (ITPILE:
llDûUB1l)
- d'un effacement total (bit de conunande: "PR.EFF")
- d'un abandon de démarrage (bit de commande: "INT. Dm") ,
- d'un arrêt après la fonction PG "fin contrôle pas-à-pas".
Un démarrage est toujours aâmïssible dans la mesure où le système n'a pas
demandé lW1effacementgénéral".

Pour effectuer un redémarrage manuel:

O Le commutateur à rappel automatique se trouve en position médiane.

e Déplacer le commutateur de mode de fonctionnement de "STOP" vers "RUN"

Ou: au moyen de la fonction PG "START AG" (--> redémarrage).

ün redémarrage manuel est toujours possible, à l'exception des cas dans


lesquels seul un démarrage est admissible (voir ci-dessus) ou lorsque le
système a demandé l'"effacement général".

Déclenchement du redémarrage automatique:

Au rétablissement de la tension ou à la remise sous tension suite à une


coupure secteur ou à une mise hors tension en cours de traitement cyclique
(RUN) ou de DEMARRAGE, le progrme système exécute une routine d'initiali-
sation et tente d'effectuer un redémarrage automatique.

Condition: - Les commutateurs de tous les processeurs et du coordinateur


se trouvent sur "RUN".
- Aucune erreur ne s'est présentée lors de l'initialisation.
Si le processeur doit effectuer un démarrage automatique au rétablissement
de la tension, il faut modifier le préréglage en paramétrant le bloc de
données DX O.

IBFamm!
Un redémarrage manuel at autanatique n'est admissible que lorsque le pro-
gramiie d'application n'a pas été modifié au cours & l'arrêt.
4.3.1 Démarrage et redemglcge manuel

Le tableau suivant présente un comparatif des modes de démarrage et de


redémarrage.

Ordre
-m&P
Commutateur à rappel automa- Commutateur à rappel autom.
ment : tique sur RESET et commutateur en posit. médiane et commuta-
de mode de STOP sur RüN teur de mode de STOP sur RüN
ou : ou:
Fonction console START AG Fonction console START AG
(démarrage) (redémarrage manuel)
ou:
Remise sous tension, si le
DX O est paramétré avec "dé-
marrage automatique" (avec
RFSET)

Opérations
effectuées
par le progr.
système :

I - Etablir dans DB O la liste


des adresses de blocs
- Remise à zéro de la mémoire
image des entrées
-Remise à zéro de la mémoire
image des sorties
- Remise à zéro des mémentos,
temporisations et compteurs
- Remise à zéro de la périphé-
rie TOR/analogique
(2 x 128 octets chacune)
- Conserver la liste des
adresses dans DB O

- Conserver les mémentos,


temporisateurs et compteurs

- RAZ des mémentos de couplage - Conserver les mémentos de


globaux (256 octets) couplage globaux
- RAZ des sémaphores (32) - Conserver les sémaphores
- DB1 disponible : reprise
dans la liste MI des E/S
TOR et des mémentos de COIF
plage d'E/S s'y trouvant
- DB1 indisponible : reprise
dans la liste MI des cartes
existantes (uniquement E/S
TOR (les mémentos de COI+
plage sont ignorés)
-Reprise des réglages de DB 2

1
- Appel de l'OB 20
(si disponible) I - Appel de l'OB 21
(si disponible)
- Synchronisation du démar- - Synchronisation du démar-
rage en fonctionnement rage en fonctionnement
multiprocesseur multiprocesseur
Dérrage : propumation du bloc d'organisation OB 20

Le bloc OB 20 est appelé automatiquement lorsque la CPU effectue un démar-


rage. Il peut renfermer un programme STEP 5 qui assure certaines fonctions
avant de passer au traitement cyclique :

Par exemple : - Positionner les mémentos


- Déclencher des temporisations
- Positionner des sorties par des accès directs à la
périphérie
- Préparer l'échange des données entre la CPU et les cartes
de périphérie
- Effectuer la synchronisation avec des processeurs de
communication (bloc de dialogue SYNCHRON, voir chapitre
6.9).

Clore le bloc OB 20 par l'instruction 'BE' (fin de bloc)!

Après le traitement du bloc OB 20, débute le traitement cyclique programmé


par l'appel du bloc OB 1 ou FB O.

Si le bloc OB 20 n'est pas programmé, alors la C W entame le traitement


cyclique immédiatement à la fin de la procédure de démarrage (après les
opérations effectuées par le programme système).

Si le bloc DX O est paramétré pour le "démarrage automatique avec RESET


après une coupure secteur", le bloc OB 20 est également appelé au rétablis-
sement de la tension.

Redémaxrage manuel : programmation du bloc d'organisation OB 21

Le bloc OB 21 est appelé lorsque la CPU effectue un redémarrage manuel. Il


peut renfermer un programme STEP 5 qui assure certaines fonctions avant de
reprendre le traitement cyclique.

Clore le bloc OB 21 par l'instruction 'BE' (fin de bloc)!

Après le traitement du bloc OB 21, le traitement cyclique reprend à l'en-


droit de l'interruption par l'instruction suivante:

- Le signal BASP (verrouillage des sorties) reste actif jusqu'à la fin du


cycle et n'est désactivé qu'au début du cycle suivant.

- A la fin du cycle, la mémoire image des sorties reste à zéro et n'est


actualisée qu'à la fin du cycle suivant.

Si le bloc OB 21 n'est pas programmé, la CPU reprend le traitement cyclique


à l'endroit de l'interruption dès la fin de la procédure de redémarrage
(opérations du programme système).
La fonction du redémarrage automatique est largement identique à celle du
redémarrage manuel. Il se distingue du redémarrage manuel uniquement par
la façon d'être déclenché.

Rétablissement de la tension après une panne de


secteur

tuées par le pro- - Conservation des listes d'adresses de blocs


gramme système dans le DB O
I
1 ( - Conservation des mémentos, temporisations,
compteurs

- Conservation des mémentos de couplage


0 - Conservation des sémaphores
I
- Appel de l'OB 22
(si présent)

- Synchronisation du démarrage en fonctionnement


multiprocesseurs

Redémarrage automatique: programatiai du bloc d'arganisation OB 22

Au retour de la tension d'alimentation, la CPU tente de reprendre le trai-


tement du programne interrompu.
Pour cela, elle appelle d'abord le bloc OB 22 dans lequel il est également
possible d'inclure un progrme STEP 5 qui assure certaines fonctions avant
de reprendre le traitement cyclique.

Lorsque vous désirez éviter que votre processeur réalise un redémarrage


automatique, il suffit de programmer dans l'OB 22 une instruction STOP et
de terminer le bloc avec "BE" (fin de bloc)!

OB 22 : STP (STOP)
: BE (fin de bloc)

Résultat: Le processeur se met en STOP dès que la tension est rétablie.


Après le traitement du bloc OB 22, le traitement cyclique reprend à l'en-
droit de l'introduction par l'instruction suivante. Au rétablissement de la
tension suite à une coupure secteur, il faut savoir que:

- le signal BASP (verrouillage des sorties) reste actif jusqu'à la fin du


cycle et ne devient inactif qu'au début du cycle suivant.

- A la fin du cycle, la mémoire image des sorties reste à zéro et n'est


actualisée qu'à la fin du cycle suivant.

4.3.3 Interruptions en cours de DEHAïWGE

ün programme de démarrage peut être interrompu

- en raison d'une panne secteur


- par le basculement sur STOP du commutateur de mode
- en raison d'une erreur de programme ou d'un défaut de l'équipement (cf. cha-
pitre 5.6)

Lorsque le démarrage interrompu doit être repris au moyen de l'un des trois
modes de démarrage, il faut tenir compte des points suivants.

Lors du rétablissement de la tension suite à une panne secteur en cours de


démarrage, il faut faire une différence entre les trois cas suivants:
1. Le processeur est en train d'exécuter un démarrage (OB 20). Au ré-
tablissement du secteur, le bloc d'organisation OB 22 (redémarrage
automatique) est imbriqué dans l'OB 20 au point d'interruption.

2. Le processeur est en train d'exécuter un redémarrage manuel (OB 21). Au


rétablissement du secteur, le bloc d'organisation OB 22 (redémarrage
automatique) est imbriqué dans l'OB 21 au point d'interruption.

3. Le processeur est déjà en train d'exécuter un redémarrage automatique


(OB 22). Au rétablissement du secteur, il n'y a pas d'imbrication d'un
deuxième OB 22: l'OB 22 interrompu n'est pas poursuivi après rétablis-
sement du secteur, mais il est abandonné et il y a exécution du nouvel
OB 22 appelé.

STOP par cammtateur & mode en cours & démarrage et redémarrage manuel.
ultérieur

Lorsque l'on interrompt un démarrage quelconque en basculant le commutateur


de mode sur STOP (ou par la fonction PG "STOP AG") et que l'on déclenc>e
ensuite un redémarrage manuel, le démarrage interrompu est poursuivi au
point d'interruption. Aucun OB 21 n'est appelé!
brsque l'on interrompt un démarrage quelconque en basculant le commutateur
de mode sur STOP (ou par la fonction PG "STOP AG") et que l'on déclenche
ensuite un démarrage, le démarrage interrompu est abandonné et un noweau
démarrage est exécuté (avec l'OB 20 s'il existe).
4.4 Etat de fonctionnement RUN
L'état de fonctionnement RüN est caractérisé par les particularités sui-
vantes :

- Le programme d'application est traité de façon cyclique.


- Tous les compteurs et temporisations démarrés au sein du programme sont
validés, les mémoires images sont actualisées de façon cyclique.

- Le signal BASP (verrouillage des sorties) est inactif. Les sorties TOR
sont validées.

- Les mémentos de couplage sont actualisés de façon cyclique.

IED en face avant du processeur:

LED RüN: allumée

LED STOP: éteinte


LED BASP: éteinte

llmmxrr!
brsque l e passage à l'état de fonctionnement RDH est précédé d'un redémar-
rage autanatique ou mainiel. la ZED BASP ne s'éteint que Lorsque l e cycle
restant est e x k u t é et que la mémoire image du processus est actualisée.

IHmRmm!
L'état de fmctiainement "NIN" ne peut être obtenu qu'en passant par l'état
de fonctionnement "DEZQWUGEw.

En RUN, il existe quatre niveaux de base pour le traitement d'un programme:

1. Le cycle: le programme utilisateur est exécuté de façon


cyc1ique.

2. Les 9 alarmes le traitement du programme utilisateur est dé-


d'horloge: clenché par l'horloge.

3. L'alarme en plus du programme utilisateur, un nombre dé£i-


régulateur: ni de régulateurs sont traités.

4. L'alarme le traitement du programme utilisateur est dé-


process : clenché par une alarme process.
Ils présentent les différences suivantes:

a) Ils sont déclenchés par différents événements.

b) Le programme système exécute différentes fonctions dans chaque niveau


de traitement de programme.

c) En tant qu'interface utilisateur, il existe, pour chaque niveau de


programme, un autre bloc d'organisation ou fonctionnel.

4.4.1 CYCIE : Traitement cyclique du pragg-e

Le traitement cyclique est le mode de traitement normal dans les automates


programmables.

Déclenchement :

Lorsque le processeur a terminé sans erreur, le programme de démarrage, il


entame le premier cycle du programme cyclique.

Opérations du programne s y s t h :

- Avant de lancer un cycle, il initialise le temps de cycle à surveiller


- Il actualise la mémoire image des entrées (MIE).
- Il démarre la surveillance du temps de cycle (chien de garde).
- Il actualise les mémentos de couplage d'entrée.
- Il appelle l'interface utilisateur : le bloc OB 1 ou le FB O est traité.
- A la fin du cycle, il actualise la mémoire image des sorties (MIS).

- Il actualise les mémentos de couplage de sortie.

Interface utilisateur : OB 1 ou PB O

b r s du traitement cyclique, le bloc d'organisation OB 1 ou le bloc fonc-


tionnel FB O est appelé régulièrement en tant qu'interface utilisateur.
Le programme utilisateur STEP 5 se trouvant dans le bloc OB 1 ou le FB O
est traité du début jusqu'à l'instruction de fin de bloc (BE) en passant
par tous les blocs appelés dans le programme. Après exécution des opéra-
tions du programme système, le processeur reprend au début avec la première
instruction STEP 5 de l'OB 1 (ou du FB O).

Dans le bloc OB 1, se trouvent programmés les appels des blocs de pro-


gramme, des blocs fonctionnels et des blocs séquentiels qui doivent être
traités dans le programme cyclique.
Dans le cas d'un petit programme à temps critique pour lequel il est
possible de renoncer à une programmation structurée, on programnera le
FB O. Etant donné que celui-ci dispose de la totalité des opérations du
langage STEP5, vous pouvez ainsi renoncer aux appels de blocs, ce qui
permet de raccourcir le temps d'exécution du programme.

l3mxmm!
Pr- l'OB 1 l e FB O.
b r s q u e vous avez programné l'OB 1 et l e FB O, seul l'OB 1 est appelé par
le systéme. -que w u s utilisez l e FB O en tant qu'interface
utilisateur, celui-ci ne doit pas contenir de paramètres!

Points d'interruption

Le programme cyclique peut être interrompu aux limites de blocs, et ce


- par une alarme process pour le traitement d'un programne d'alarme,
- par une alarme régulateur pour le traitement d'un programme de
régulateurs,
- par une alarme d'horloge pour le traitement d'un programme d'horloge.
(On peut aussi paramétrer le DX O pour obtenir uqe interruption aux
limites d'instructions !)

Le programme cyclique peut être interrompu ou abandonné aux limites


d'instructions
- en cas d'apparition d'une erreur de programme ou d'un défaut d'équipe-
ment,

- par la manipulation (fonction PG, commutateur RUN-SMP).

Remarque:
Les registres de calcul ACCU 1, 2, 3 et 4 peuvent être utilisés en tant que
mémoire de données, au-delà des limites du cycle, de la fin d'un cycle de
programme jusqu'au début du cycle suivant.

4.4.2 BIARWES DVHOWIM=E : Raitement déclenché par borloge

Il y a traitement déclenché par horloge quand un signal d'une horloge


interne (alarme d'horloge) demande au processeur d'interrompre le programme
cyclique et de traiter un programme d'horloge spécifique. Une fois ce
traitement terminé, le processeur retourne à l'endroit de l'interruption
pour y reprendre le traitement cyclique.

Ainsi, certaines parties de programme sont insérées automatiquement et de


façon périodique dans le traitement cyclique.

La CPU 928 permet de déclencher le traitement de 9 programmes périodiques


différents, chacun avec une autre périodicité.
Déclenchement :

Les alarmes d'horloge sont déclenchées autamatiquement avec leur


périodicité respective, à condition que les OB correspondants soient
programmés.

interfaces utilisateur: OB 10 à OB 18

b r s de l'apparition d'une alarme d'horloge, le bloc d'organisation


correspondant (OB 10 à OB 18) sera appelé à la prochaine fin de bloc (ou
d'instruction).

Bloc d'organisation Grille de périodicité

Appel toutes les 10 ms


20 ms
50 ms
100 ms
200 ms
500 ms
1s
2 s
5s

L'OB 13, par exemple, contiendra le programme qui devra être inséré toutes
les 100 m s dans le programme cyclique.

Il est possible de programmer tous les 9 OB, ou seulement une partie


d'entre eux, ou encore aucun d'eux. Si l'on ne programme aucun des 9 OB, il
ne peut pas y avoir de traitement déclenché par l'horloge.

A chaque appel d'un OB d'horloge (OB 10 à OB 18), l'accu 1 renseigne sur le


temps écoulé depuis le dernier appel de cet OB d'horloge (exprimé en nombre
de périodes de base). On a:

Accu 1 = nombre de périodes de base - 1


Si, à l'appel de l'OB 11 par exemple, l'accu contient le nombre " 5 " , cela
signifie que 120 ms (6 x périodes de base 20 ms) se sont écoulées depuis le
dernier appel de l'OB 11. Tant q u ' i l n ' y a pas d'erreur de traitement
d ' a l m e s d 'horloge, 1 'accu 1 contiendra toujours "O" .

Riorité des alarmes d'horloge

Le niveau de traitement ALARMES DfHORZXX;Eoccupe la position suivante dans


la hiérarchie des niveaux de base:

CYCLE
A u R M F s D'HORLOGE
AlARME REGUIATEUR
AlARME PROCESS Priorité croissante
La priorité des différentes alarmes d'horloge est également fixée:

OB 18 (période la plus longue)


OB 17
OB 16

OB 11
OB 10 (période la plus courte) ' Priorité croissante

lHKwwm!
Ies OB correspondant aux périodes courtes sont plus pdodtaires et peuvent
interraqre les OB correspaidant aux périodes plus loogues!

Endroits d'interruption

Un programme d'horloge peut être interrompu soit en fin de bloc (préré-


glage) ou en fin d'instruction (paramétrage du DX 0) par:

- une autre alarme d'horloge


- une alarme régulateur
- une alarme process
et en fin d'instruction par

- une erreur dans le programme ou un défaut dans l'équipement.

L'OB 12 (appel toutes les 50 ms) est appelé durant l'exécution de l'OB 14
(appel toutes les 200 ms). L'OB 14 est interrompu à la prochaine fin de
bloc ou d'instruction pour le traitement de l'OB 12. Ce n'est qu'après le
traitement complet de l'OB 12 (éventuellement interrompu par une alarme
régulateur, une alarme process, un traitement d'erreur, un OB 10 ou 11) que
le traitement de l'OB 14 est poursuivi et mené à sa fin.

Erreur de traitement d'aïannes d'hmloge (collision d'alarmes d'horloge)


lHKwwm!
Un OB d'horloge ne peut être interrcnupu par le mâme OB d'hurloge.

Il y a collision d'alarmes d'horloge si le traitement d'un OB d'horloge


n'est pas encore terminé ou n'a pas encore été entamé alors que cet OB
d'horloge est appelé une nouvelle fois. Cette situation peut se présenter
dans le cas de lll'interruption des OB d'horloge en fin de blocs", surtout
si le programme utilisateur contient des blocs de grande longueur.
S'il y a collision d'alarmes d'horloge, le niveau de traitement de pro-
gramme de défaut >IO0 est activé et le programme système appelle l'OB 33
qui constitue l'interface utilisateur. Vous pouvez programer dans l'OB 33
la réaction désirée à cet état.

A l'appel du OB 33, le programme système inscrit des infornations supplé-


mentaires dans les ACCUS 1 et 2. Celles-ci renseignent de façon plus
détaillée sur le premier défaut apparu:

Code de défaut Explication


ACCU 1 ACCU2
- - -

lOOlH 0016H Collision d'alarmes d'horloge pour l'OB 10 (10 ms)

lOOlH 0014H Collision d'alarmes d'horloge pour 1'OB 11 (20 ms)

lOOlH 0012H Collision d'alarmes d'horloge pour l'OB 12 (50 ms)

lOOlH OOlOH Collision d'alarmes d'horloge pour l'OB 13 (100 ms)

lOOlH OOOM Collision d'alarmes d'horloge pour l'OB 14 (200 ms)

lOOlH OOOCH Collision d'alarmes d'horloge pour l'OB 15 (500 ms)

lOOlH OOOAH Collision d'alarmes d'horloge pour l'OB 16 (1 sec)

lOOlH 0008H Collision d'alarmes d'horloge pour l'OB 17 (2 sec)

1001H 0006H Collision d'alarmes d'horloge pour l'OB 18 (5 sec)

Nota: Le code figurant dans l'ACCU 2 est l'indicatif de niveau de


l'alarme d'horloge qui est à l'origine du défaut.

Si l'OB 33 n'a vas été programmé, le processeur se met en STOP. Le bit de


commande ">10OW est alors marqué d'une croix dans le masque des bits de
conunande; le niveau auquel s'est produite l'erreur est précisé dans le
masque ITPILE par l'indicatif de niveau dans le champ NIVEAU.

Pour que le traitement de programme soit poursuivi malgré une collision


d'alarmes, vous programmez l'instruction de fin de bloc "BE" dans l'OB 33
ou vous modifiez le paramétrage du DXO de telle sorte que le traitement du
programme soit poursuivi si une collision d'alarmes d'horloge se produit
alors que l'OB 33 n'a pas été programmé. Après traitement de l'OB 33, le
traitement du programme est poursuivi au point d'interruption.

Nota:
- Veuillez noter les nouvelles fonctions spéciales OB 120, OB 121, OB 122
et OB 123 qui vous permettent d'inhiber ou d'ajourner le traitement
d'alarmes d'horloge pour une partie déterminée du programme.
(Ceci est possible pour toutes les alarmes d'horloge programmées ou pour
certaines d'entre elles seulement.)
- Le risque de collisions d'alarme est autant plus grand que la périodici-
té du traitement est plus courte. Le traitement des alarmes d'horloge à
période courte (p.ex. alarmes de 10 ms et 20 ms) devra, par conséquent,
être inséré aux limites d'instructions. Ceci implique que le traitement
des alarmes régulateur et des alarmes process devra également intervenir
aux limites d'instructions (cf. chapitre 7, paramétrage du DXO).
La CPU 928 permet d'exécuter non seulement un programme cyclique et des
programmes déclenchés par alarmes ou par horloge mais permet aussi le
traitement de régulateurs. A intervalles déterminés par l'utilisateur
(= période d'échantillonnage), l'exécution du programme cyclique ou du
programme déclenché par horloge est interrompue et le régulateur concerné
est traité. A la suite de cela, le processeur retourne à l'endroit de
l'interruption au sein du prograrmne cyclique ou déclenché par horloge pour
poursuivre l'exécution de celui-ci.

Déclenchement:

Une alarme régulateur est déclenchée dès que la période d'échantillonnage


déterminée par l'utilisateur est écoulée.

Fonctiais du programme systèlœ:

- Il gère l'interface utilisateur pour le traitement de régulateurs.


- Il actualise la mémoire image des régulateurs.

Interface utilisateur: bloc fonctionnel standard


"structure de réguiatm R64"

Dans le cas du traitement de régulateurs, c'est le bloc fonctionnel


standard R64 qui est appelé en tant qu'interface utilisateur. Ce bloc
permet, en liaison avec le bloc de paramétrage de régulateurs DB 2, de
traiter jusqu'à 64 régulateurs.

Pour chaque régulateur, vous devez programmer un certain bloc de données.


C'est dans le bloc de données DB 2 (la "liste des régulateurs") que vaus
déterminez les régulateurs qui doivent être traités par le programme
système et à quel moment. Le DB 2 est réservé à cette tâche!

(Pour ce qui est du paramétrage, de la mise en service et du test du bloc


fonctionnel standard R64, vous disposez d'un progiciel spécial, du "COM
REG" pour vous assister, no de référence pour la PG 685: 6ES5895-3SA31.)

Points d'interruption

Un traitement de régulateur peut être interrompu aux lunites de bloc


(préréglage) ou aux limites d'instruction (paramétrage du DX O) pour que
soit exécuté

- un programme déclenché par alarmes process.


Il peut être interrompu aux limites d'instruction par

- une erreur de programme ou un défaut d'appareil.


4.4.4 dTdRHE PBOCESS: traitement d'alanœs process

Il y a traitement d'alarme lorsqu'un signal sur le bus S5, en provenance


d'une carte TOR interruptive (par exemple 6ES5 432-4UAll) ou d'une carte IP
fonctionnant de façon analogue, oblige le processeur à interrompre son
traitement pour exécuter un programme spécifique. Le traitement de cette
partie de programme achevé, le processeur retourne au point d'interruption
pour poursuivre 1'exécution du programme.

Déclenchement:

L'alarme process est déclenchée par l'état actif d'une ligne d'interruption
sur le bus S5. A chacune de cette ligne d'interruptions correspond un
processeur, l'attribution est en fonction de l'emplacement d'enfichage (cf.
instructions de la CPU 928).

Interface utilisateur: OB 2

En cas d'apparition d'un traitement d'alarme, l'OB 2 est appelé en tant


qu'interface utilisateur. C'est dans l'OB 2 que vous devez programmer un
programme spécifique devant être exécuté dans le cas d'un traitement
d'alarme.

Lorsque l'OB 2 n'est vas programmé, l'exécution du programme n'est pas


interrompue et les alarmes ne sont pas traitées.

Points d'interruption

L'exécution d'un programme d'alarme ne peut être interromme aue var

- une erreur de programme ou un défaut d'appareil.

llmxmrr!
L'exécution d'm programme d'alaxm ne ueut rtas être intermmple par mie
alarme d'horloge ou m e autre alarme process.

Si d'autres alarmes process apparaissent durant l'exécution d'un programme


alarme, elles sont imorées jusqu'à ce que l'OB 2 soit traité complètement
(y compris tous les blocs appelés dans l'OB 2).

A la suite de cela, le processeur retourne au point d'interruption pour


poursuivre l'exécution du programme jusqu'à la prochaine limite de bloc.
Une nouvelle alarme process ne pourra être acceptée qu'à partir de cet
instant et l'OB 2 pourra alors être appelé. Ainsi, le programme cyclique
est exécuté, même en présence d'une alarme permanente. (Ceci n'est pas
valable si le DX O est paramétré pour "interruption aux limites
d'instructions par les alarmes process").
Alanœs process: déclencheinent par niveau

En version standard de la CPU 928, l'alarme process est déclenchée par


niveau. Cela signifie que l'état actif de la ligne d'interruption génère
une requête qui conduira au traitement de l'OB 2, à la prochaine limite de
bloc ou d'instructions. Cette requête est méziwrisée e t n'est remise à zéro
qu'à 1 'instruction de f i n de bloc (BE) de l'OB 2.

Conséquences:
- Les alarmes répétées ne sont pas prise en compte.
- Les alarmes qui apparaissent et disparaissent pendant le traitement de
l'OB 2 ne sont pas prise en compte.
- L'OB 2 est appelé même lorsque l'état du signal sur la ligne
d'interruption est redevenu passif à la limite de bloc (voir figure).
L'OB 2 appelé est exécuté complètement. Si, à la fin de l'OB 2, le signal
actif est encore présent, un bloc du programme cyclique est exécuté avant
que l'OB 2 soit de nouveau appelé. Si le niveau actif n'est plus présent,
l'OB 2 ne sera appelé qu'au changement d'état suivant (passage de l'état
inactif à l'état actif).

Signal
(Requête
I 1
mémorisée)

Alarme process
(auxlimites d e bloc)

Cycle 1I 1 T I

Alarrœs process: déclerrchenient par fmnts

Ce mode de déclenchement est obtenu par un paramétrage adéquate du DX O.


Après traitement de l'OB 2, une nouvelle alarme process ne peut être
déclenchée que par un changement d'état du signal (passage de l'état
inactif a l'état actif). Même lorsque l'alarme process est générée par un
front, la demande de traitement de l'OB 2 reste mémorisé jusqu'à ce que
celui-ci soit complètement traité.
Les changements d'état qui surviennent pendant le traitement de l'OB 2 sont
ignorés.

Signal
(Requête
I I 1
mémorisée)

Alarme process
(aux limites de bloc)
Inhibition du trai-t dvaïannes

Un programme d'alarme process est inséré dans le programme cyclique au


niveau d'une limite de bloc ou d'une limite d'instruction STEP5.

Cette interruption peut avoir un effet négatif lorsqu'une partie du pro-


gramme cyclique doit être exécutée pendant un intervalle déterminé (p.ex.
afin d'atteindre un temps de réaction précis) ou lorsqu'une suite d'in-
structions ne doit pas être interrompue (p.ex lors de la lecture ou de
l'écriture de valeurs ayant un rapport entre elles).

brsqu'une partie du programme ne doit pas être interrompue par un traite-


ment d'alarme, les possibilités de programmation suivantes sont dispo-
nibles :

Programmez cette partie de programme de sorte qu'elle ne contienne aucun


changement de bloc et conservez le préréglage du DX O ("alarmes process
aux limites de bloc"). Les parties de programme qui ne contiennent pas
de changement de bloc ne peuvent naturellement pas être interrompues.

Ecrivez le programme proprement dit dans un programme d'alarme process.


Il ne peut alors plus être interrompu par une alarme quelconque.

e Programmez l'instruction STEP5 'AS' (inhibition des alarmes process).


L'instruction "AF" (validation des alarmes process) vous permet ensuite
de libérer de nouveau l'exécution des alarmes. Entre ces deux instruc-
tions, aucun traitement d'alarme n'est réalisé, la partie de programme
se trouvant entre ces instructions ne peut pas être interrompue par des
alarmes process éventuelles.

'AS' et 'AF' ne peuvent être programmées que dans des blocs fonctionnels
(opérations complémentaires)!

Utiliser les nouvelles fonctions spéciales OB 120 et OB 122 avec


lesquelles vous pouvez inhiber ou retarder le traitement des alarmes
process .
Riorité des alames pmcess devant les alarmes dvborloge

brsqu'une alarme apparaît au cours de 1'exécution d'un programme déclenché


par horloge, le programme se trowe interrompu au prochain point d'inter-
ruption (limite de bloc ou d'instruction) et l'alarme est traitée. A la
suite de cela, l'exécution du programme déclenché par horloge est
poursuivie jusqu'à sa fin.

brsqu'une alarme d'horloge se présente au cours d'un traitement d'alarme


process, celui-ci est d'abord mené à sa fin avant d'être suivi par
l'exécution du programme de réaction à l'alarme d'horloge.

brsqu'il y a présence sirmiltanée d'une alarme process et d'une alarme


d'horloge, c'est d'abord l'alarme process qui est exécutée au prochain
point d'interruption. Ce n'est que lorsque celle-ci et toutes les alarmes
process apparaissant au cours de son exécution ont été exécutées que
l'alarme d'horloge, toujours présente, se trouve traitée.
Temps de réaction

Le temps de réaction à une alarme d'horloge correspond à la durée


d'exécution d'un bloc ou d'une instruction STEP5 (selon le préréglage
sélectionné). brsqu'il y a cependant encore présence d'alarmes process au
moment de l'interruption du programme cyclique, le programme déclenché par
horloge n'est exécuté que lorsque toutes les alarmes process existantes ont
été traitées entièrement.

Le temps de réaction maximal entre l'apparition et l'exécution d'une alarme


d'horloge augmente dans ce cas de la durée de traitement des alarmes
process. Si vous voulez exclure toute collision d'alarmes d'horloge pour un
OB d'horloge xy déterminé, vous devez observer la règle suivante:

A + B < C avec A = somme des temps de traitement de tous les programmes de


plus forte priorité (OB d'alarme process, d'alarme
d'horloge, de traitement de régulateur)
B = Temps de traitement de l'OB d'horloge xy
C = Base de temps de l'OB d'horloge xy

Point d' interruption auquel un


programme déclenché par alarme
process ou par horloge peut
être inséré de rcanière stan-
dard dans un programme cy-
clique ou dans un programme
déclenché par alarme process
ou par horloge. Le programme
déclenché par horloge ne peut
être interrompu que par un
traitement d'alarme process;
l'inverse n'est pas possible.

' Traitement

par horloge

Figure 4-2 : Exécution de programmes d'interruption aux limites de blocs

Important!

Si votre programme d'application contient une partie cyclique et des


programmes de réaction aux alarmes process et/ou aux alarmes d'horloge, les
mémentos intermédiaires utilisés dans le programme cyclique risquent d'être
écrasés lors du traitement de l'alarme qui a interrompu l'exécution du
programme cyclique. Pour cette raison, vous devez sawegarder les états de
mémentos dans un bloc de données, avant l'exécution du programme déclenché
par alarme process ou par horloge. Vous devrez "restaurer11ces mémentos à
la fin de ce programme d'interruption.
A cet effet, quatre blocs d'organisation pour fonctions spéciales sont
disponibles: OB 190 et OB 192 "transfert de mémentos dans un bloc de
données1'et OB 191 et 193 "Transfert de données d'un DB dans la zone de
mémentos" (cf. paragraphes correspondants).
5 Traitement des interruptions et des défauts
Le programme système peut constater un fonctionnement défectueux du proces-
seur, un défaut dans le traitement du programme système ou les conséquences
d'une programmation erronée.

5.1 Erreurs fréquentes du?-p utilïsa+~_m

La liste suivante contient les défauts qui apparaissent le plus souvent


lors de la mise en service du programme utilisateur, ceux-ci powant être
facilement évités lors de l'élaboration du programme.

Pour cela, il faut tenir compte des points suivants lors de la programma-
tion :

- Lors de la déclaration des adresses d'octets dlentrées/sorties, il faut


que les cartes correspondant à ces adresses soient enfichées dans l'ap-
pareil de base ou dans le châssis d'extension.

- S'assurer que les opérandes sont munis des paramètres corrects.

- Les sorties, les mémentos, les temporisations et les compteurs ne


doivent pas être traités, à plusieurs endroits du programme, par des
opérations contradictoires.

- Veiller à ce que tous les blocs de données appelés soient disponibles et


de longueur suffisante.

- Vérifier que tous les blocs appelés soient effectivement dans la mé-
moire.

- Faire attention lors de la modification ultérieure de blocs fonction-


nels. S'assurer que les blocs fonctionnels sont paramétrés avec les
opérandes corrects et que tous les opérandes actuels sont déclarés.

- Les temporisations ne devraient être interrogées qu'une seule fois dans


le programme (p.ex., U Tl) .
5.2 Ekploitation des hfomations de défaut

Si un défaut apparaît au démarrage ou pendant le traitement cyclique du


programme utilisateur, différentes sources d'informations sont disponibles
pour identifier ce défaut.

a) IPD en face avant du processeur

En cas d'arrêt intempestif, les LED en face avant donnent une première
indication quant à l'origine du défaut:

- la LED STOP est en feu fixe


- la LED STOP clignote lentement
- la LED STOP clignote rapidement

Les différents états de la LED STOP renseignent sur les causes d'in-
terruption ou de défaut.

A cet effet, se reporter aux explications du chapitre 4.2 "Etat de fonc-


tionnement STOP"

Les IED de défaut en face avant sont en feu fixe pour:

- ADF (défaut d'adressage)

- QVZ (retard d'acquittement)

- ZYK (dépassement du temps de cycle).

b) Fonction on-line "lecture (mir chapitre 5.3)

Les fonctions on-line "INFO AG1'et "lecture ITPILE", permettent


d'examiner l'état des bits de commande et le contenu de la pile des
interruptions (=ITPILE) .

Lors du passage en STOP, le progrannne système reporte dans L'ITPILE


toutes les informations nécessaires à un démarrage ou à un redémarrage.
Ces informations sont d'une aide précieuse pour effectuer le diagnostic
du défaut. L'ITPILE complet ne peut être lu qu'à l'état SMP.

Avant l'affichage de 1'ITPILE proprement dite, les états des bits de


conmande sont visualisés. Ceux-ci indiquent l'état de fonctionnement
actuel, certaines caractéristiques du processeur et du programme
utilisateur et donnent des indications supplémentaires sur la cause du
défaut.
La fonction on-line "lecture ITPILE" peut être utilisée non seulement en
STûP, mais aussi en DEMARRAGE et en RUN. Dans ce cas, ilnlestpossible
d'obtenir que l'affichage des bits de conmiande.

c) Mot de h é e s système BS 3 et BS 4 (cf. chapitre 5.5)

Lorsque votre processeur passe à l'état STûP au cours du démarrane, la


cause du défaut est définie avec plus de précision dans les mots de
données système BS 3 et BS 4. Dans ce cas, il s'agit d'erreurs détectées
par le programme système lors de la constitution des listes d'adresses
au sein du DB O ou lors de l'évaluation du DB 1, du DB 2 ou du DX O.

Mot de donnée système BS 3: KH = FA03 (adresse mémoire absolue)

Mot de donnée système BS 4: KH = EA04 (adresse mémoire absolue)

L'indicatif de défaut contenu dans le mot de donnée système BS 3 vous


indique la nature de l'erreur apparue.

L'indicatif de défaut contenu dans le mot de donnée système BS 4 vous


indique à auel endroit l'erreur s'est présentée.

Les indicatifs de défaut sont inscrits en format de donnée KH.

Evaluation des mots & damées système BS 3 e t BS 4 au nuyen de la


console de p r c ~ g c c . t i o n :

La fonction PG 'Information ADRESSE1 (KH = EA03 ou EA04) vous permet


de sortir directement le contenu des deux mots de données système et
de déterminer ainsi la cause de l'erreur ou du défaut.

d) ACCü 1 et ACCü 2 (cf. cbapitre 5.6)

Si, lors du traitement du programme STEP5, au démarrane ou en cvcle, des


défauts apparaissent, paur lesquelles un bloc d'organisation fait office
d'interface utilisateur, le programme système inscrit automatiquement
des informations supplémentaires dans les ACCU 1 et ACCU 2 lors de
l'appel de ce bloc d'organisation. Ces informations expliquent la cause
du défaut de façon plus détaillée.

L'indicatif de défaut dans l'ACCU 1 vous permet de déterminer la nature


du défaut apparu.

L'indicatif de défaut dans l'ACCU 2 (si présent) vous indique l'endroit


où le défaut est apparu.

Les indicatifs de défaut sont inscrits en format de donnée KH.


haluation des AîX7 1 et 2 au mayen de la cmsole de p ~ p g p n m a t i o n :

La fonction on-line 'lecture ITPILE1 vous permet de lire le contenu


des deux accumulateurs directement dans 1'ITPIIE et de déterminer
ainsi la cause exacte de l'erreur ou du défaut.

Etant donné que les indicatifs de défauts sont écrits automatiquement


dans les ACCU 1 et 2 lors de l'appel d'un bloc d'organisation de
défaut, ces indicatifs peuvent être pris en compte lors de la pro-
grammation de l'OB de défaut.

Il est ainsi possible de prévoir, dans un bloc d'organisation, diffé-


rentes réactions aux diverses défauts et ce, en fonction de l'indica-
tif d'erreur qui y est transmis.

e) Fonction on-line 'Lecture BIPIIX'

Les fonctions on-line 'INFO AG' et 'Lecture BLPILE' permettent de lire


le contenu de la pile de blocs (=BLPILE) après un défaut, l'autamate
étant à l'état STOP (cf.chapitre 3.1.1).

Dans la BLPILE sont recensés, à partir de l'OB 1 ou du FB O, tous les


blocs appelés les uns après les autres avant le passage à l'état STOP et
qui n'ont pas été traités entièrement. Ia BLPILE étant remplie en
commençant par le bas, la ligne supérieure contient le nom du bloc
traité en dernier et qui est le siège du défaut.

Lors de 1 'exploitation de la ligne la lus élevée, on obtient les


informations suivantes:

NO.BLOC Type et numéro du bloc traité avant passage à l'état STOP

ADR.BLOC Adresse de début absolue de ce bloc dans la mémoire de


programme

ADR.RETOUR Adresse absolue de l'instruction suivante à exécuter dans


ce bloc. Le processeur poursuit l'exécution du programme à
cette adresse après la commande " redémarrage manuel1'.

ADR .REL . Adresse relative (SADR. RETOUR - ADR. BWC) de l'instruc-


tion suivante à exécuter dans ce bloc (Les adresses
relatives peuvent être visualisées à la console, en mode
de fonctirnement "verrouillage d ' instruction1'(interrup-
teur à clé).
NO.DB Numéro du dernier bloc de dormées ouvert dans ce bloc

.
ADR DB Adresse de début absolue de ce bloc de données (adresse du
mot de données DW O) dans la mémoire progranime.

Esemple: Exploitation par la f<nction "Uctare BTZUE"

NO.B U C .
ADR B U C .
ADR RETOUR . .
ADR REL NO.DB .
ADR DB

Dans l'exemple ci-dessus, l'arrêt s'est produit dans l'OB 23 lors de l'exé-
cution de l'instruction en STEP5 qui se trouve, dans la mémoire, sous
l'adresse absolue '0064 - 1 = 0063'.

L'OB 23 (OB de retard d'acquittement) a été appelé dans le FB 5 à l'adresse


relative '0008 - 1 = 0007'.

Le bloc de données DB 100 a été appelé dans le FB 6. Le bloc de données qui


était ouvert lors du passage à l'état STOP est le DB 13. Le bloc de données
DB 13 a été appelé dans le FB 5.
brsque vous recherchez la cause d'un défaut, il convient de tirer profit
de toutes les informations disponibles.

En voici quelques-unes:

1. LED en face avant du processeur

L'état des LED permet de diagnostiquer les causes d'erreur ou d'inter-


ruption.

2. Fonction on-line "Lecture ITPIU1'

Dans tous les cas, il est possible de lire les bits de conmande; à
l'état STOP, la pile des internrptions ITPILE peut être affichée.

3. Mots de données système BS 3 et 4

Lorsqu'il s'agit de défauts au cours du démarrage, les mots de


données BS 3 et 4 vous fournissent des renseignements plus précis
concernant la cause des défauts.

4. ACCU 1 et ACCU 2
Lors de l'appel des blocs d'organisation de défaut, le programme système
dépose des informations de défaut supplémentaires dans l'ACCU 1 et
ACCU 2.

5. Fonction on-line "Lecture BLPTWE"

Lorsque la CPU est à l'état STOP, la ligne supérieure de la BLPILE vous


permet de déterminer le bloc et l'adresse de l'instruction dont le
traitement a donné lieu à un défaut.
5 . 3 Bits de cammnde et pile d l i n t e m q t h u

Les fonctions on-line "INFO AG" puis "lecture ITPIZE" vous permettent
d'examiner l'état actuel ainsi que les propriétés âu processeur et du
programme utilisateur et d'analyser les causes des défauts et interruptions
éventuelles .
lHKRMm!
La visualisation des bits de c e est possible dans tais les modes
de fcmctiolmement, m a i s 1'lTPlïE n'est a£Eicbée aumenstop

- Les bits de camade renseignent sur l'état actuel ou précédent et sur


la cause des défauts.
En présence de plusieurs défauts, ils sont tous signalés dans les bits
de commande.
- L'JXPJIX visualise l'endroit de l'interruption (adresses) avec indi-
cation de l'état des indicateurs, du contenu des accumulateurs et de la
cause du défaut en ce point.
En présence de plusieurs interruptions, 1'ITPii.X est hiérarchisée à
plusieurs niveaux :
profondeur 01 = dernière cause de l'interruption,
profondeur 02 = avant-dernière cause de l'interruption, etc..
Un débordement de llITPILEprovoque le passage immédiat à l'état stop.
La remise en service ne peut s'effectuer que par un "démarrage".

La signification des abréviations intervenant dans les bits de commande et


la pile des interruptions est expliquée ci-après. Ces abréviations sont
utilisées sur la PG 685.

lxeoKmn!
Ie texte affiché à l'écran & mtre console de programmation peut différer
quelque peu du texte ci-dessats. La description des différentes positions
sur l'écran, telle qu'elle est présentée i c i , reste valable!

BITS DE COMMANDE

STP-6 DF-STP FIN P/P INS-STP MP-STP

DEH4 D m REDMA DPI-ADM RED-ADM


X X X
RW-6 MONOPRO p/p OB2CHAR OB13CHA
X

RAMl6KM RAM8KM EPROM MCPSOR MCPENT ETûR STOR


X X X
PRO.EFF EFFACT CAUSSTP INT DEI4. DEDPG DEDSYS DEDPRFA DEDSCH

DEFDXO DE- DEE'DBO DEFDBl DEFDB2 DEFCOR

MDT DPE BAT DEFPILE CYC ACQ

ER4 DEFREG DOUBDEF


Lors de la lecture de 1'ITPILE, le ler masque apparaissant à lVécranest
celui qui donne l'état des bits de commande.

Ces bits de conmande renseignent sur l'état actuel ou précédent du proces-


seur ainsi que sur certaines propriétés du processeur et du programme
utilisateur STEP5.

Les b i t s de comnande peuvent être visualisés dans tous l e s modes de


fonctionnement!
Vous avez ainsi la possibilité de vérifier par exemple si le bloc
d'organisation OB 2 est chargé, et donc si un traitement d'alarme est
possible.

STP Processeur en STOP; les bits de commande suiMnts indiquent la


cause de la mise en stop:

STP-6 non affecté

DF-STP Stop di? à un défaut: la mise en stop a été occasionnée par MDT
(manque de tension), DPE (périphérie non disponible), BAT
(défaut batterie, BL.P > (débordement de la pile des blocs),
1T.P > (débordement de llITPILE), DOUB (double défaut) ou
défaut du processeur

FIN P/P Fin du contrôle pas-à-pas: mise en stop au terme de la


fonction on-line "FIN P/PW (démarrage nécessaire)

PG STP Stop par la PG: mise en stop par un ordre provenant de la


console PG

TNT-STP Interrupteur stop: mise en stop par basculement de commutateur


de mode sur la position STOP

INS-STP Instruction stop:


a) mise en stop après traitement de l'opération STEP5 "STPf1

b) mise en stop par une instruction du progrme système, si


l'OB de réaction au défaut n'est pas programmé.

MP-STP Stop en fonctionnement multiprocesseurs :


a) sélecteur sur le coordinateur en position STOP ou
b) stop sur l'un des processeurs (fonctionnement multiproces-
seurs).

DEM Processeur en DEMARRAGE:

DEM-6 non affecté

DEMAR Un "démarrage" est demandé ou en cours; ou le dernier


démarrage effectué a été un "démarrage".

REDMA Un "redémarrage manuel" est demandé ou en cours; ou le dernier


démarrage effectué a été un "redémarrage manuel".

REDAU Un "redémarrage automatique après coupure secteur est demandé


ou en cours; ou le dernier démarrage effectué a été "redémar-
rage automatique".
DEM-2 non affecté

DEM-ADM Redémarrage admissible (en absence de croix, il faut procéder


à un effacement général)

RED-ADM Redémarrage manuel admissible

RüN Le processeur est (traitement du programme cyclique en cours):

RUN-6 non affecté

MONOPRO Fonctionnement monoprocesseur

p/p La fonction on-line "contrôle pas-à-pas'' est en cours

OBlCHA Le bloc d'organisation OB 1 a été chargé en mémoire utilisa-


teur.
L'exécution du programme cyclique est gérée par l'OB 1

FBOCHA Le bloc fonctionnel FB O a été chargé en mémoire utilisateur.


L'exécution du programme cyclique est gérée par le FB O si
l'OB 1 n'est pas chargé. Si le FB O et l'OB 1 sont chargés,
l'exécution du progrme cyclique est gérée par l'OB 1.

OB2CHA Le bloc d'organisation de traitement d'alarmes process (OB 2)


est chargé, c.-à-d.qu'un traitement d'alarmes process est
possible .

OB13CHA Le bloc d'organisation de traitement d'alarmes d'horloge est


chargé, c .-à-d.qu'un traitement déclenché par horloge est
possible .
RAM32KM La cartouche mémoire utilisateur est une RAM de 32 Kmots

RAML6KM La cartouche mémoire utilisateur est une RAM de 16 Kmots

RAM8KM La cartouche mémoire utilisateur est une RAM de 8 Kmots

EPROM La cartouche mémoire utilisateur est une EPROM


MCPSOR Liste d'adresses des mémentos de couplage de sortie présente
dans DB1
KPCENT Liste d'adresses des mémentos de couplage d'entrée présente
dans DB1
ETOR Liste d'adresses pour entrées tout ou rien présente

STOR Liste d'adresses pour sorties tout ou rien présente

PRO.EFF Le processeur a subi un effacement général (nécessité d'un


"démarrage")

EFFACT Effacement général du processeur en cours.

CAUSSTP Le processeur est à l'origine de la mise en stop de l'automate


INT.DEM Interruption durant le démarrage (nécessité d'un "démarrage")

DEDPG Demande d'effacement général provenant de la console PG

DEDSYS Demande d'effacement général provenant du progranime système (pas


de démarrage possible); l'effacement général doit être exécuté.

DEDPRFE non affecté

DEDSCH Demande d'effacement général par la manoeuvre du commutateur:


exécuter l'effacement général ou sélectionner un mode de
démarrage si l'effacement général ne doit pas être exécuté.

Les bits de commande suivants concernent des défauts qui peuvent se


présenter dans les modes DEMARRAGE (par ex. lors du premier "démarrage1') et
RUN (par ex. lors de l'exécution d'un progrme déclenché par horloge).

En présence de plusieurs défauts, toutes les causes d'interruption qui se


sont présentées jusqu'à présent (et quinlontpas encore été traitées) sont
indiquées dans les trois dernières lignes des bits de commande. On pourra
également consuiter la donnée système BS 2 qui contient le mot indicateur
des interruptions (MMII 16 bits), dans lequel sont consignés tous les
défauts qui se sont présentés et qui n'ont pas encore été traités (cf.
chapitre 8.2.4) .

Défaut durant le DEMARRAGE:

DEFDXO Erreur de paramétrage dans le DX O

DEF 2 non affecté

DEFMOD Contenu de la cartouche mémoire erroné si RAM: effacem. général

DEFRAM Contenu erroné de la RAM du système d'exploitation ou de la RAM des


DB (nécessité d'un effacement général).

DEFDBû Constitution erronée de la liste d'adresses des blocs dans le DB O.

DEFDBl Constitution erronée des listes d'adresses dans le DB 1 pour


l'actualisation des mémoires images:

a) DB 1 non programmé lorsque le coordinateur est enfiché ou en


fonctionnement multiprocesseurs

b) les cartes correspondant aux adresses d'octets d'entrées, de


sorties ou de mémentos de couplage indiquées dans le DB 1 ne
fournissent pas de signal d'acquittement lors du "démarrage".

DEFDB2 Erreur lors de l'exploitation du bloc de données de paramétrage de


la structure de régulation R64.

Défaut durant le DPW(RAGE ou en RUN:

DEFCOR Erreur lors de l'échange de données avec le coordinateur

MDT Coupure de la tension secteur sur l'appareil de base


DPE Périphérie non disponible = coupure de tension sur un châssis
d ' extension

BAT Défaut batterie = défaillance de la pile de sauvegarde (dans


l'appareil de base)

DEFPILE Débordement de la pile des interruptions ou de la pile des blocs


(trop grande profondeur d' imbrication; nécéssité d'un "démar-
rage")

CYC Temps de cycle dépassé (chien de garde)

ACQ Retard d'acquittement lors d'un échange de damées avec la


périphérie

DAD Erreur d'adressage pour les entrées ou les sorties:

erreur occasionnée par l'accès à la mémoire image, c'est-à-dire


accès à des cartes de périphérie qui, lors du dernier "démar-
rage", n'étaient pas enfichées, étaient défectueuses ou n'étaient
pas déclarées dans le DB 1.

Collision d'alarmes d'horloge:

une même alarme d'horloge se représente une deuxième fois avant


ou durant le traitement de l'alarme d'horloge précédente.

DCO Erreur de code opération:

a) erreur de substitution: l'instruction STEP5 traitée ne


peut pas être substituée
b) code opération erroné: l'instruction STEP5 traitée est
incorrecte
C) paramètre erroné: le paramètre de 1' instruction
STEP5 traitée est incorrect
EX-6 non affecté
EX-5 non affecté

Défaut "chute de tension":

le traitement d'une coupure de tension antérieure (MDT) par le


programme système a été l'objet d'un défaut; pour cette raison le
redémarrage est inhibé.

ER-3 non affecté

DPT Dépassement du temps d'exécution alloué:

a) le bloc appelé n'est pas chargé


b) erreur de transfert pour les blocs de données
C) autres erreurs du type "dépassement de temps" (anciennement
erreurs groupées pour fonctions spéciales)

DEFREG Erreur lors du traitement de la structure de régulation R64 en


exécution cyclique

DOUBDEF double défaut:


un niveau de traitement d'un défaut (DAD, DCO, DPT, ACQ, REG
CYC) encore actif est activé une deuxième fois (nécéssité
d'un "démarrage").
Après la visualisation des bits de commande sur l'écran de la console et
actionnement de la touche de validation, la page d'écran suivante affiche
llITPILE.Lors du passage en STOP, le programme système y reporte toutes
les informations qui sont nécessaires à un démarrage ou à un redémarrage.

llmxmwr!
Ie texte affiché à l'écrau de mtre console & prtqY-tim peut différer
quelque peu du texte ci-dessous. ïa desnlptiar des différentes positi<ms
sur l'écran, t e l l e qu'elle e s t présentée ici, reste a l e t

PROFONDEUR: 02

REGINS: C70A CAD: 00F3 ADR-DB: 0000 ADR-BA: 0000


FT.PBL: 0000 FB-NO.: 226 Nû-DB.: -NO. :
ADR-REL: 0006 REGDBL: 0000
NIV. : 0004 MMII: 0100 MEII: O000

ACCU1: 0000 C464 ACCU2: 0000 OOFF ACCU3: 0000 0000 ACCU4: 0000 0000

PARENTH.: l.( 111 2.( 100 3.( 111


-
ETATS DES FIAGS: F U FLO OVFL OVFIS OU ETAT RU= l.?
X X X
ORIGINE ïNTERXüP: MDT DPE BAT MPSTP CYC ACQ DAD STP
X X
DCO S-6 DPT REG BL.P> IT.P> >Io0 DOUB

Les indications figurant dans le masque ïTPILE renseignent sur l'emplace-


ment du défaut, c'est-à-dire sur l'instruction du programme utilisateur
dont le traitement a provoqué la mise en stop du processeur.

PROF : Niveau de llITPILEen cas d'imbrication de défauts

PROF: 01 = dernière cause d'internrption


PROF: 02 = avant-dernière cause d'interruption

REG-INS Registre d'instruction:


il contient le code-machine (premier mot) de la dernière
instruction traitée avant l'interruption du traitement de
ce niveau de programme.

PT.PBLû Pointeur de la pile de blocs:


il contient le nombre d'éléments inscrit dans la pile des
blocs (BLPILE).
NIV. Z Indication du niveau de traitement de programne qui a été
interrompu:

Z: 0002 = Démarrage ou redémarrage manuel


0004 = Traitement cyclique
0006 = Traitement d'alarmes d'horloge 5 sec (OB 18)
0008 = Traitement d'alarmes d'horloge 2 sec (OB 17)
OOOA = Traitement d'alarmes d'horloge 1 sec (OB 16)
OOOC = Traitement d'alarmes d'horloge 500 ms (OB 15)
OOOE = Traitement d'alarmes d'horloge 200 ms (OB 14)
O010 = Traitement d'alarmes d'horloge 100 ms (OB 13)
0012 = Traitement d'alarmes d'horloge 50 ms (OB 12)
0014 = Traitement d'alarmes d'horloge 20 m s (OB 11)
0016 = Traitement d'alarmes d'horloge 10 ms (OB 10)
0018 = Non attribué
OOlA = Non attribué
OOlC = Traitement de régulateurs
OOlE = Non attribué
0020 = Non attribué
0022 = Non attribué
0024 = Traitement d'alarmes process
0026 = Non attribué
0028 = Non attribué
002A = Non attribué
002C = Passage à l'état STOP en fonctionnement nniltipro-
cesseur, commutateur de mode sur STOP ou demandé
par la PG
002E = Non attribué
0030 = Collision d'alarmes d'horloge
0032 = Défaut de régulation
0034 = Dépassement du temps de cycle
0036 = Non attribué
0038 = Erreur de code opération
003A = Dépassement du temps d'exécution
003C = Erreur d'adressage
003E = Retard d'acquittement
0040 = Non attribué
0042 = Non attribué
0044 = Redémarrage manuel
0046 = Redémarrage autamatique

CAD Compteur d'adresses STEP:

contient l'adresse absolue en mémoire de .ororrramme de la


dernière instruction traitée dans le niveau de traitement
interrompu.
En cas de défaut le CAD pointe exactement sur l'instruction
ayant causé le défaut!

Si le défaut ne se situe pas dans le programme STEP5, le CAD


est à "O", et le contenu du REG-INS est sans signification.

, . . NO. Type et numéro du bloc traité en dernier

ADR-REL Compteur d'adresses relative STEP5:


il contient l'adresse relative (par référence à l'adresse
de début du bloc) de la prochaine instruction du dernier
traité.
(Les adresses relatives peuvent être visualisées à la console
en mode "verrouillage d'introductionw (cunuiutateur à clé) ou en
listant le bloc sur imprimante).

MM11 Mot indicateur groupé des interruptions:


le mot MMII contient toutes les causes d'interruption qui se
sont présentées jusqu'à présent et qui n'ont pas encore été
traitées (cf. "données systèmew, chapitre 8.2.4).

ME11 Mot d'effacement des indicateurs d'interruption


(cf. "données système", chapitre 8.2.4)

ADR-DB Adresse de début absolue en némire de programme du dernier


bloc de données ouvert (DU O)

(ADR-DB = 0000, si aucun DB n'a été awert)

DB-NO . Numéro du dernier bloc de &nnées mrt

REG-DBL bngueur du dernier bloc de données awert

ADR-BA Adresse absolue en mémoire de prograrmne de la prochaine ins-


truction à traiter dans le dernier bloc appelant

. . . NO. Type et numéro du dernier bloc appelant

ACCU1 ...4 Contenu des registres de calcul au moment de l'interruption du


traitement.

Pour certains défauts, le programme système inscrit dans les


accus 1 et 2 des indicatifs de défaut donnant un supplément
d'informations concernant la cause de l'interruption.

PAREm. Nombre de niveaux de parenthèses: "x abcw


x = 1 à 7 niveaux

a = OU (voir état des flags)


b = R U (résultat logique, voir état des flags)
c = l:U(
d = 0:0(

ETAT DES
FIAGS: voir chapitre 3.2

Les abréviations suivantes correspondent aux causes de défaut les plus


importantes. Seules sont marquées d'une croix les causes d'interruption
valables pour le niveau de traitement de programme affiché (voir NIV.).

Les causes de défaut affichées sont une reproduction du contenu du mot


indicateur groupé d'interruptions (MMII, 16 bits). Leurs significations se
recoupent en partie avec celles des bits de commande.

MDT Coupure de la tension secteur sur l'appareil de base

DPE Périphérie non disponible = coupure de tension sur un châssis


d' extension
BAT Défaut batterie = défaillance de la pile de sauvegarde (dans
l'appareil de base)

MPSTP Stop en fonctionnement multiprocesseurs


a) Sélecteur sur le coordinateur en position STOP ou
b) Stop sur l'un des processeurs (fonctionnement multiproces-
seurs)

CYC Temps de cycle dépassé (chien de garde)

ACQ Retard d'acquittement lors d'un échange de données avec la


périphérie

DAD Erreur d'adressage pour les entrées et sorties

STP Mise en stop par basculement du c m t a t e u r de mode sur STOP


Mise en stop par un ordre provenant de la console PG
Mise en stop après traitement de l'opération STEP5 "STP"
Mise en stop par une instruction du progrme système, si l'OB
de réaction au défaut n'est pas programmé.

DCO Erreur de code opération:


Erreur décelée lors du décodage d'une instruction

a) erreur de substitution: l'instruction STEP5 traitée ne


peut pas être substituée
b) code opération erroné: l'instruction STEP5 traitée est
incorrecte
c) paramètre erroné: le paramètre de l'instruction
STEP5 traitée est incorrect

S-6 non affecté

DPT Dépassement du temps d'exécution alloué:


Erreur décelée lors de l'exécution d'une instruction

a) le bloc appelé n'est pas chargé


b) erreur de transfert pour les blocs de données
c) autres erreurs du type "dépassement de temps"

REG Erreur lors du traitement de la structure de régulation R64 en


exécution cyclique

BL.D Débordement de la pile de blocs (trop grande profondeur d1im-


brication; nécessité d'un "démarrage")

IT.D Débordement de la pile des interruptions (trop grande profon-


deur d' imbrication; nécessité d'un "démarrage")

>IO0 Collision d'alarmes d'horloge:


une même alarme d'horloge se représente une deuxième fois avant
ou durant le traitement de l'alarme d'horloge précédente.

DOUB Double défaut:


un niveau de traitement d'un défaut (DAD, DCO, DPT, ACQ, REG,
CYC) encore actif est activé une deuxième fois (nécessité d'un
"démarrage")
Exemples d'utilisatioa de 1'ïTPïM

La figure ci-dessous montre la structure de 1'ïTPIZE pour différents


cas d'interruptions.
1. Le niveau de traitement de programme "CYCIE'f (OB 1) est interrompu par
une alarme d'horloge (base de temps 100 ms).
2. Ensuite, le niveau de traitement de progranmie "AIARME D'HORIM;Ew est
activé, et l'OB 13 est traité.
3. L'apparition d'une alarme process provoque lfabandon du niveau "AIARME
D'HORLOGE", 1'activation du niveau "AIARME PROCESSw et le traitement
de l'OB 2.
4. Une erreur au niveau de l'adressage provoque l'activation du niveau
"DAD" et donc le traitement de 1'ûB 25. Dans cet OB de réaction au
défaut DAD, l'utilisateur a progranrmé une instruction STP (mise en
stop): le processeur interrompt l'exécution du progranane.

Avant le passage à l'état stop, au total 4 niveaux différents de traitement


cl programme ont été interrompus. A la lecture de 1'ITPIi.E sur la PG, vous
obtenez par conséquent une ITPILE à auatre niveaux, à conimencer par celui
correspondant à la profondeur 01, qui contient l'indicatif (001C) du niveau
de traitement interrompu en dernier lieu, à savoir le niveau DAD. A pré-
sent, vous pouvez accéder aux autres niveaux de l'ITPILE, jusqu'à la pro-
fondeur 04 (qui correspond au niveau de traitement "CYCLE") qui a été
interrompu en premier.

STP ProfondeurO1

p Niveau:OO3C

l
VD
p l
Profondeur02
Niveau:O024
ALARME
PROCESS

\
\ Profondeur03

D'HOR-
LOGE
0Niveau:001O

\ Profondeur04

Niveaux de traitement du programme


0Niveau: 0004

Figure 5-1 : Exemple de constitution de 1'ITPILE


Dans cet exemple, le processeur décèle une erreur d'adressage lors de
l'exécution de l'instruction 'U E x.yl dans l'OB 1. Ceci provoque l'appel
du bloc OB 25. Ce dernier appelle à son tour le PB 5 qui contient l'ins-
truction STP qui prowque la mise en stop du processeur.

L'interruption de deux niveaux de traitement du programme donne lieu à une


ITPILE à deux niveaux:
DAD: OB 25 Pi? 5

STP

T \
ITPILE

PROF.: 02

REG-INS: pËxy/ CAD: OOlA ADR-DB: ADR-BA: 0000

PT-PBL: 1 OB-NO.: 1 DB-NO.: 16 -NO.:

ADR-REL: OOOA REG-DBL:

NIVEAU: 0004 MMII: 0200 MEII: 0000

ACCU1 :

ETATS DES FLAGS: .......


ORIGINEINTERRUPT.: DAD
X
L /

/ PROF.: 01 1
REG-US: Fd Cm: 1007 ADR-DB: ADR-BA: 0 10 6

PT-PBL: 3 PB-NO.: 5 DB-NO.: 16 OB-NO.: 25

ADR-REL: 0007 REG-DBL:


I
NIVEAU: 003C MMII: 0300 MEII: 0000

1 ETATS DES FL4GS : .... l


/ ORIGINE INTERRUPT.: STP l
5.4 Traitement des défauts à l'aide des blocs
d'organisation
brsque le programme système reconnaît un défaut donné, il appelle le bloc
d'organisation associé à ce défaut. Il est possible de définir le comporte-
ment de la CPU en programnant ce bloc d'organisation de nianière appropriée.

Suivant la programmation de ce bloc d'organisation, on peut

- poursuivre le traitement normal,


- mettre la CPU en STOP

- traiter un "programme spécifique de défaut".

Il existe des blocs d'organisation pour les défauts suivants:

Cause d' erreur Appel Réaction en cas


de 1' d'OB non progr.

Appel d'un bloc non chargé (DPT) OB19 Stop


Retard d'acquittement dans le programme
d'application en cas d'accès aux cartes
périphériques (ACQ) OB23 aucune

Retard d'acquittement lors de l'actuali-


sation de la mémoire image et du trans-
fert de mémentos de couplage (ACQ) OB24 Stop

Erreur d'adressage (DAD) OB25 Stop


Dépassement du temps de cycle (CYC) OB26 Stop
Erreur de substitution (DCO) OB27 Stop
Sélecteur de modes de fonctionnement sur
STOP, fonction PG "AG STOP", arrêt du bus
S5 (fonctionnement multiprocesseurs) OB28 Stop

Code opération erroné (DCO) OB29 Stop

Erreur de paramétrage (DCO) OB30 Stop


Autres erreurs de temps d'exécution (DPT) OB31 Stop

Erreur de transfert pour blocs de données OB32 Stop


(Dm)
Erreur d'alarme d'horloge (>100) OB33 Stop

Erreur lors du traitement de la structure


de régulateur R64 (DEFREG) OB34 Stop
Lorsque les blocs d'organisation ne sont pas -. la réaction dépend
du défaut:

a) Pas d'interruption du traitememt cycïirpe

Si par exemple, un retard d'acquittement survient et que ni l'OB 23 ni


l'OB 24 n'ont été chargés, le traitement cyclique n'est a interrompu.
Il n'y a pas de réaction de la CPU.

Si la CPU doit se mettre en S M P en présence d'un retard d'acquittement,


le bloc d'organisation doit contenir l'instruction STOP et se terminer
par l'instruction BE.

Programme pour la mise en STOP:

:STP
:BE

Dans tous les autres cas de défauts, la CPU se met innnédiatement en STOP
si les blocs d'organisation correspondants n'ont pas été programmés par
l'utilisateur.

Si, exceptionnellement (p. ex. lors d'une mise en route), l'un ou


l'autre des défauts ne doit pas interrompre le traitement cyclique, il
suffit d'une instruction "fin de bloc" dans le bloc d'organisation
correspondant.

Programme pour le fonctionnement sans interruption:

lHFmumm!
Ie bloc d'organisation OB 28 constitue me exception : dans ce cas, il y
a touiours passage à l'état Stop, in& t du fait que l'OB 28 ait
été programmé ou non et, s'il a été programmé, idéptz-mt de son
cultenu.

Lorsque vous ne désirez pas programmer le bloc d'organisation correspon-


dant, vous pouvez empêcher le processeur de se mettre en Stop en pro-
grammant le bloc de données DXO en conséquence.
Interruptions lors de lvexécutiaides blocs d'mgankaticm de &kues

Après que le programme système a appelé le bloc d'organisation correspon-


dant, le programme d'application qui y est contenu est exécuté.
brsqu'au cours de l'exécution d'un bloc d'organisation, un autre défaut se
présente, le programme se trouve interrompu à la limite d'instruction
suivante, corne dans le cas de l'exécution cyclique, et le bloc d'organisa-
tion correspondant est appelé.

Les blocs d'organisation sont traités dans l'ordre de leurs appels. Le


nombre de blocs d'organisation de défauts pouvant être imbriqués dépend des
facteurs suivants:

a) Type du défaut apparu :

Il n'est pas possible d'emboîter des blocs d'organisation qui appar-


tiennent au même niveau de traitement de programme!
(Pour l'assignation des OB de défauts aux niveaux de traitement de pro-
gramme, cf. chapitre suivant)

Dans le cas du traitement de l'OB 27 (niveau de traitement de programme


DCO), il est par exemple possible d'emboîter un OB 32 (niveau de traite-
ment de programme DPT), mais pas un OB 29 ou un OB 30 (également DCO).

Grsqulil y a un appel double du même niveau de traitement le processeur


passe directement à l'état Stop.

b) Nombre de niveaux de traitement de programme activé à ce moment:

Pour chaque niveau de traitement activé, la programme système occupe une


place déterminée en mémoire de l'automate pour la création de 1'ITPïLE.
Si cette place mémoire ne suffit plus, il y a débordement de llITPILE.

c) Nombre de blocs appelés à ce moment précis:

Lorsqu'il y a dépassement de la BLPILE, le processeur passe directement


à l'état Stop.
5.5 Défaut au DEWXRRAGE

üne erreur ou un défaut en cours dlinitialisation et au démarrage peut


entraîner une interruption du programme de démarrage et la mise en STOP de
la Cm.

Les causes d'interruption du progrme de démrrage (blocs OB 20, 21 et 22)


sont traitées comme les causes d'interruption du programme cyclique.

Exception: Lors d'un Stop au démarrage, le bloc d'organisation OB 28 n'est


appelé.

Causes possibles des défauts et -


n
i sans OB de défaut

s!cP:
STOP par programme système (pour DF-STP) ou instruction STOP dans le
programme d'application

BBT: Pile de sauvegarde en défaut dans le châssis de base

MEC: Coupure de tension dans le châssis de base

DPE: Coupure de tension dans le châssis d'extension

ïT.P>: Débordement de la pile des interruptions (ITPILE)

BL.I3:
Débordement de la pile des blocs (BLPILE)
Profondeur d'imbrication trop Yirportante

DOW:
Le niveau de traitement de progranmie de défaut est activé une deuxième fois
(double erreur; cf. page 4-4et pages suivantes)

DEF-RAH:
Défaut lors de l'initialisation: contenu de la RAM du système d'exploita-
tion ou de la RAM des DB incorrect

DE3.m:
Défaut lors de l'initialisation: contenu de la cartouche utilisateur (car-
touche RAM ou EPROM) incorrect

mm:
Erreur lors de la constitution de la liste des adresses de blocs (DB O)

DEFDBl:
Défaut lors de l'exploitation du DB 1 pour la constitution de la liste
d'adresses destinée à l'actualisation de la mémoire image

DEFDB2:
Défaut lors de l'exploitation du DB 2 de la structure de régulation R64

DEFDXD:
Erreur lors de l'exploitation du bloc de données DXO
(DEFDBO, DEFDB1, DEFDB2 et DEFDXO: voir pages suivantes!)
Erreur lors de la constitution de la liste d'adresses de blocs (bloc de
données DB O)

Le programme système crée le DB O à la mise sous tension. Dans le cas d'une


erreur concernant le DB O, les mots de données système BS 3 et BS 4 con-
tiennent des codes d'erreur définissant avec plus de précision l'erreur
apparue:

adresse absolue en mémoire: BS 3 KH = EA03


BS 4 KH = EA04

(Remarques concernant l'évaluation des infonmtions d'erreur contenues dans


les mots de données système BS 3 et BS 4, cf. chapitre 5.2)

Code d'erreur Explication


BS 3 BS 4

Longueur de bloc incorrecte


yyyy = adresse du bloc de longueur incorrecte

L'adresse de fin de bloc calculée est fausse


yyyy = adresse de bloc

Identificateur de bloc non valable


yyyy = adresse du bloc portant le mauvais
identificateur

Numéro de bloc d'organisation trop élevé


(admis: OB 1 à OB 39)
yyyy = adresse du bloc portant le mauvais
numéro

Numéro de bloc de données O (admis: DB 1 à DB 255)


yyyy = adresse du bloc portant le mauvais
numéro

Erreur lors de la constitution de la liste d'adresses dans le DB 1 destinée


à l'actualisation de la mémoire image du processus

- absence de DB 1 en fonctionnement multiprocesseurs ou


- liste d'adresses du DB 1 erronée lors d'un démarrage
Egalement dans le cas d'une erreur de DB 1, les mots de données système
BS 3 et BS 4 contiennent des codes d'erreur définissant plus en détail
l'erreur apparue.

Adresse absolue en mémoire : BS 3 KH = EA03


BS 4 KH = EA04
(Remarques concernant l'évaluation des informations d'erreur contenues
dans les mots de données système BS 3 et BS 4, cf. chapitre 5.2)

Code d'erreur Explication


BS 3 BS 4

Identificateur ou code incorrect


1. identificateur dVe*tête manque ou est incorrect
(correct: KC MASKO1)
2. identificateur incorrect
(correct: KH DEOO, DAOO, CEOO, CAOO, BBOO)
3. code de fin manque ou est incorrect
(correct: KH EEEE)
yyyyH = identificateur ou code incorrect

"Entrées TOR", nombre d'adresses incorrect


(correct 0...128)
yyyy = nombre d'adresses incorrect

"Sorties TOR", nombre d'adresses incorrect


(correct 0...128)
yyyy = nombre d'adresses incorrect

"Mémentos de couplage d'entrées", nombre d'adresses


incorrect
(correct 0...256)
yyyy = nombre d'adresses incorrect

"Mémentos de couplage de sorties1', nombre d'adresses


incorrect
(correct: 0...256)
yyyy = nombre d'adresses incorrect

Nombre de temporisations non valable (admis: 256)


yyyy = nombre erroné de temporisations

Retard d'acquittement pour entrées TOR


yyyy = adresse de l'octet d'entrée non acquitté

Retard d'acquittement pour sorties TOR


yyyy = adresse de l'octet de sortie non acquitté

Retard d'acquittement pour mémentos de couplage


d 'entrée
yyyy = adresse de l'octet de mémentos non acquitté

Retard d'acquittement pour mémentos de couplage


de sortie
yyyy = adresse de l'octet de mémentos non acquitté
Erreur lors de l'évaluation du bloc de données de paramétrage DB 2 de la
structure de régulateur R 64 (initialisation du régulateur)

Dans le cas d'une erreur concernant le DB 2, les mots de données système


BS 3 et BS 4 contiennent des codes d'erreur définissant plus en détail
l'erreur apparue.

Adresse absolue en mémoire: BS 3 KH = EA03


BS 4 KH = EA04

(Remarques concernant l'évaluation des informations d'erreur contenues dans


les mots de données système BS 3 et BS 4, cf. chapitre 5.2)

Code d'erreur Explication


BS 3 BS 4

0421H DByyH Bloc de données pas chargé


yy = numéro du bloc de données non chargé

0422H FByyH Bloc fonctionnel non chargé


yy = numéro du bloc fonctionnel non chargé

0423H FByyH Bloc fonctionnel inconnu


yy = numéro du bloc fonctionnel non reconnu

0424H FByyH Bloc fonctionnel chargé par un logiciel PG


incorrect
yy = numéro du bloc fonctionnel

0425H DByyH Longueur du DB de régulation incorrect


yy = numéro du bloc de données

0426H - La place mémoire dans la RAM des DB ne suffit


pas pour le transfert des DB de régulations,
de la cartouche EPROM vers la RAM des DB
Erreur lors de l'évaluation chr bloc de données DX O.

Dans le cas d'une erreur concernant le DX O, les mots de données système


BS 3 et BS 4 contiennent des codes d'erreur définissant plus en détail
l'erreur apparue.

Adresse absolue en mémoire : BS 3 KH = EA03


BS 4 KH = EA04

(Remarques concernant l'évaluation des informations d'erreur contenues dans


les mots de données système BS 3 et BS 4, cf. chapitre 5 . 2 )

Codes d'erreur
BS 3 BS 4 1 Explication

Identificateur ou code incorrect


1. identificateur d1e*tête manque ou est incor-
rect
(correct: KC MASKKO)
2 . identificateur de bloc incorrect
3 . code de fin manque ou est incorrect
(correct: KH EEEE)
yyyy = identificateur ou code incorrect

0432H yyyyH Paramètre incorrect


yyyy = paramètre incorrect

0434H yyyyH Nombre de temporisations non admis


(admis: O ... 256)
yyyy = incorect nombre de temporisations

0435H yyyyH Temps de cycle non admis (admis: 1 m . . .6000 ms)


yyyy = temps de cycle incorrect
5.6 Défaut en RUN et au DElMARRAGE

En mode de fonctionnement RUN, certains défauts peuvent interrompre le


traitement cyclique, le traitement déclenché par alarme ou par horloge ou
encore le traitement des régulateurs. Cette interruption a lieu aux limites
d'instructions.

b r s de l'initialisation ou en mode DEMAREUGE des défauts peuvent également


entraîner l'interruption du programme de DEHARRAGE et la mise en STOP du
processeur ou l'appel du bloc d'organisation prévu pour ce cas de défaut.
Les causes d'interruption apparaissant lors du programme de DEMARRAGE sont
traitées c m e celles qui apparaissent pendant le traitement du programme
cyclique.
On distingue les défauts qui entraînent directement la mise en STOP du
processeur (p.ex. IT.P>) et les défauts en présence desquels le programme
système appelle certains blocs d'organisation avant le passage à l'état
STOP (p.ex. DAD). Ces blocs d'organisation peuvent être programmés par
l'utilisateur.

Causes possibles des défauts et interrcqt- saas OB & défauts

m:
STOP par programme système (pour DF-STP) ou instruction STOP dans le
programme d'application

BBT:
Pile de sauvegarde en défaut dans le châssis de base

m:
Coupure de tension dans le châssis de base

DE:
Coupure de tension dans le châssis d'extension

IT.E3:
Débordement de la pile des interruptions (iTPILE)

BI,.-:
Débordement de la pile des blocs (BLPILE)
Profondeur d'imbrication trop importante

mm:
Le niveau de traitement de programme de défaut est ac5ivé une deuxième fois
(double erreur; cf.page 4-4 et suivantes)

Toutes les causes de défauts mentionnées conduisent immédiatement à la mise


en STOP. Une pile des interruptions ITPILE est constituée; le défaut apparu
y est indiqué.

(Indications concernant l'exploitation de 1'iTPILE cf. chapitre 5.3).


Causes possibles des défauts et interrtrptiars avec OB & défauts
correspmdmts en RIIN et au DEMUUGR

DCO:
Code d'instruction erronée 1. erreur de substitution
2 . code opération erronée
3. paramètre erroné

DPT:
Dépassement de temps 1. appel d'un bloc non chargé OB 19
2 . erreur de transfert dans DB OB 32
3. autres dépassement de temps OB 31
MD:
Erreur d'adressage

BCQ:
Retard d'acquittement 1. dans le programme d'application
lors d'un accès à des cartes de
périphérie OB 23
2. lors de l'actualisation de la
mémoire image OB 24

Causes possibles des défauts et interrup- avec OB de défauts


comespmdmt, seulenmlt en RIIN

mc :
Dépassement du temps de cycle

>Io0:
Collisions d ' alarmes d 'horloge

REG :
Erreur dans le programme de régulation

Abandon

Chacune de ces causes de défaut est décrite exactement dans les chapitres
suivants.

5.6.1 DCO (Code instruction erroné)

Le défaut "code instruction erronéw se présente lorsque le processeur ne


peut pas interpréter ou exécuter une instruction STEP5 du programme d'ap-
plication. Tous les codes admissibles sont indiqués en annexe.

L'instruction qui a causée l'apparition du défaut n'est pas exécutée. Si un


bloc d'organisation "DCO1'a été programmé, celui-ci est appelé et traité;
l'exécution du programme d'application est ensuite reprise à l'instruction
qui suit l'interruption. Le processeur se met en STOP si le bloc d'organi-
sation de réaction au "DCOqln'a pas été programné.
a) DCO = Erreur & substitutian

Lorsque, dans un bloc fonctionnel, une opération doit être exécutée avec un
opérande formel, le processeur remplace cet opérande formel, lors de l'exé-
cution du programme d'application, par l'opérande actuel se trouvant dans
l'appel du bloc fonctionnel.

Le processeur reconnaît une substitution inadmissible. Le progranmie système


interrompt alors l'exécution du programme d'application et appelle le bloc
d'organisation OB 27.

L'ACCU 1 contient dans ce cas des informations supplémentaires expliquant


plus en détail l'erreur apparue.

Code d'erreur Explication


ACCU 1 ACCU 2

Erreur de substitution pour instruction BBS

Erreur de substitution pour instruction BDW ,BMW

Erreur de substitution pour instruction B=, BI=

Erreur de substitution pour instruction L=, T=

Erreur de substitution pour instruction


U=, UN=, O=, ON=, -, S= et RB=

b) DCO = Code opération erroné

Un défaut "code opération erroné" se présente lorsqu'une instruction a été


programmée qui n'appartient pas au jeu d'instructions STEP5 du processeur
(les instructions RU et SU p. ex. peuvent être programmées à 1'aide de la
console PG, les processeurs R et S ainsi que la CPU 928 de l'automate 135U
ne peuvent cependant pas les interpréter).

Lorsqu'un code opération inadmissible est reconnu, l'exécution du programme


d'application est interrompue à cet endroit et le bloc d'organisation OB 29
est appelé.

Lors de l'appel de l'OB 29, l'ACCU 1 contient des informations supplémen-


taires fournissant des explications plus détaillées sur l'erreur apparue.

Une erreur de code opération ne devrait p s être acquittée: le processeur


ne reconnaît pas si 1'instruction erronée est codée sur un mot ou sur
plusieurs mots. brsque le processeur a exécuté l'OB 29, il tente de pour-
suivre le programme par le mot de code suivant. Au cas où il s'agirait là
du deuxième mot d'une instruction codée sur plusieurs mots, il reconnaîtra
soit une autre erreur de code opération soit il exécutera ce mot en tant
qu'instruction admissible.
Code d'erreur Explication
ACCU1 ACCU2
1811H - Instruction avec code opération inadnissible
1812H - Code opération inadmissible pour une instructi6n
dont l'octet de poids fort du premier mot d'ins-
truction contient la valeur 68H

1813H - Code opération inadmissible pour une instruction


dont l'octet de poids fort du premier mot d'ins-
truction contient la valeur 78H

1814H - Code opération inadmissible pour une instruction


dont l'octet de poids fort du premier mot d'ins-
truction contient la valeur 70H

1815H - Code opération inadmissible pour une instruction


dont l'octet de poids fort du premier mot d'ins-
truction contient la valeur 6ûH

c) DCO = P d t r e erroné

Le défaut "paramètre erroné" se présente lorsquruneinstruction a été pro-


gramnée avec un paramètre inadmissible pour le processeur en question
(p.ex. appel d'un bloc de données réservé) ou lorsqu'une fonction spéciale
inexistante est appelée.

brsqu'un paramètre inadmissible est reconnu par le processeur, le pro-


gramme système interrompt l'exécution du programme d'application pour appe-
ler le bloc d'organisation OB 30.

brsque l'OB 30 n'a pas été programmé, le processeur se met en STOP.

Lors de l'appel de l'OB 30, l'ACCU 1 contient des informations supplé-


mentaires fournissant des explications plus détaillées sur l'erreur appa-
rue.

Code d'erreur Explication


ACCU1 ACCU2

Paramètre inadmissible pour:


1821H - A DB O, 1, 2

182CH - 1 SPA(B) OB > 39: fonction spéciale n'existe pas


Code d'erreur Explication
ACCU1 ACCU2

MBR avec constante > OFFFFH (216 -


''2 # 0)

5.6.2 DPT (dépassement temps)

Le défaut "dépassement temps" se présente lorsque le processeur reconnaît


une erreur lors de l'exécution d'une instruction STEP5.

L'instruction provoquant le défaut "dépassement temps" n'est pas exécutée.


Si un bloc d'organisation de réaction au "DPT" a été programmé, celui-ci
est appelé et exécuté; le traitement du programme d'application est ensuite
poursuivi à 1' instruction qui suit 1' interruption.

On distingue les défauts suivants:

a) DPT = Appel d'un bloc non chargé

Lorsqu'un bloc inexistant est appelé dans le programme d'application, le


programme système reconnaît une erreur. Ceci s'applique à tous les types de
blocs, que l'appel soit conditionnel ou inconditionnel.

Lorsque l'appel d'un bloc non chargé est reconnu, le programme système
appelle le bloc d'organisation OB 19. C'est dans l'OB 19 que vous powez
déterminer le comportement ultérieur du processeur. Si l'OB 19 a été pro-
grarmné, celui-ci est appelé et exécuté; le traitement du programme STEP5
est ensuite repris à l'instruction qui suit celle qui a fait l'objet de
l'interruption. Si l'OB 19 n'a pas été programmé, le processeur se met à
l'état STOP dès qu'un bloc non chargé est appelé.

Lors de l'appel de l'OB 19, l'ACCU 1 contient des informations supplémen-


taires relatives à l'erreur apparue.
Code d'erreur Explication
ACCU1 ACCU2
iAOlH - Bloc de données non chargé pour ADB
U02H - Bloc de données n a chargé pour AXDX
iA03H - Bloc non chargé pour SPA(B) FB, OB, PB, SB
iAO4H - Bloc non chargé pour BA(B) FX
iA05H - Bloc de données non chargé pour OB 254 et 255

b) DPT = Erreur de transfert

Lors du transfert de données dans des blocs de données (DB, DX), le proces-
seur compare la longueur du DB appelé au paramètre contenu dans l'ins-
truction de transfert. brsque le paramètre indiqué cause un dépassement de
la longueur du bloc de données, l'instruction de transfert n'est pas exécu-
tée afin d'exclure tout écrasement accidentel des données se trowant dans
la mémoire.

Une erreur de transfert est également détectée lorsqulunbit isolé doit


être scruté ou modifié au sein d'un mot de donnée inexistant.

Une erreur de transfert est en outre détectée lorsqulunaccès à un mot de


donnée doit avoir lieu avant qu'un bloc de données ait été appelé (avec
A DBn ou AX Dm).

Lorsqu'une erreur de transfert a été détectée, le programme système appelle


le bloc d'organisation OB 32. L'instruction ayant prwoqué l'erreur de
transfert n'est pas exécutée. Lorsque l'OB 32 n'a pas été programmé, le
processeur passe à l'état STOP.

brs de l'appel de l'OB 32, l'ACCU 1 contient des informations supplémen-


taires relatives à l'erreur apparue.

Code d'erreur Explication


ACCU1 ACCU2

UllH - Accès à un mot de donnée non défini au moyen de:


U / m D, O/ON Dl S/R D, =D

iA12H - Instruction TDR: transfert vers un mot de donnée


non défini

iA13H - Instruction TDL: transfert vers un mot de donnée


non défini

iA14H - Instruction TDW: transfert vers un mot de donnée


non défini

iA15H - Instruction TDD: transfert vers un mot de donnée


non défini
c) Btrtres défauts "dépassement & teaaps"

Il s'agit là de tous les défauts qui ne peuvent pas être attribués à l'un
des types de dépassement de temps décrits ci-dessus (erreur de transfert ou
appel d'un bloc non chargé).

brsque l'un de ces défauts est détecté, le programne système appelle le


bloc d'organisation OB 31. L'instruction (ou la fonction spéciale) ayant
prwoqué l'erreur n'est pas exécutée. Ursque l'OB 31n1a pas été program-
mé, le processeur se met à l'état STOP.
Si l'exécution du programme doit être poursuivie malgré l'apparition de
l'une des erreurs mentionnées ci-dessous, il suffit de programmer l'ins-
truction de fin de bloc BE dans l'OB 31.

hrsque l'OB 31 est appelé, llACCü1 contient des informations supplé-


mentaires relatives à l'erreur apparue.

Code d'erreur Explication


ACCU1 ACCU2

Erreur au niveau de l'instruction EDB, EXDX:


bloc de données existe déjà

Erreur au niveau de l'instruction EDB, EXDX:


longueur de bloc de données inadmissible
(> 4x2" mots)
Erreur au niveau de l'instruction EDB, EXDX: capaci-
té de la mémoire de la RAM ne suffit pas

Erreur au niveau de l'instruction BI=: paramètre


inadmissible dans 1'ACCü 1 (< 1 ou > 125)

Débordement de la pile de parenthèses après U(, O(, )

Erreur au niveau de llinstr.A DB ou AX DX:


longueur dans l'en-tête du bloc de données trop
petite (long. < 5 mots)

Bloc fonctionnel chargé avec le mauvais logiciel PG

Erreur au niveau de llinstr.ACR: nQ de page incorr.

Erreur au niveau d'une fonction spéciale dans


l'OB 254 ou l'OB 255 (duplication) ou l'OB 250: bloc
de données de destination existe déjà dans la RAM DB

Erreur au niveau d'une fonction spéciale dans


l'OB 254 ou l'OB 255 (copie): bloc de données de
destination existe déjà dans la RAM DB

Erreur au niveau d'une fonction spéciale dans


l'OB 254 ou l'OB 255: capacité de mémoire de la
RAM DB ne suffit pas

Erreur au niveau d'une fonction spéciale dans l'OB 221:


valeur inadmissible pour le noweau temps de cycle
(temps de cycle < 1 m s ou > 6000 ms)
Code d'erreur Explication
ACCU1 ACCU2

Erreur au niveau d'une fonction spéciale dans


l'OB 223: en fonctionnement multiprocesseur, les
modes de démarrage des différents processeurs ne
sont pas identiques

Erreur au niveau d'une fonction spéciale dans


l'OB 240, OB 241 ou OB 242: m é r o incorrect du re-
gistre à décalage ou du bloc de données (nP 492)

Erreur au niveau d'une fonction spéciale dans


l'OB 241: registre à décalage pas initialisé

Erreur au niveau d'une fonction spéciale dans


l'OB 240: capacité de la mémoire de la RAM DB ne
suffit pas

Erreur au niveau d'une fonction spéciale dans


l'OB 240: mot de donnée DW O du bloc de données n'a
pas le contenu "O"

Erreur au niveau d'une fonction spéciale dans


l'OB 240: longueur de registre à décalage inadmis-
sible dans le DW 1 (pas entre 2 et 256)

Erreur au niveau d'une fonction spéciale dans


l'OB 240: position du pointeur ou nombre de
pointeurs inadmissibles

Erreur au niveau de la fonction spéciale OB 120

Erreur au niveau de la fonction spéciale OB 122

Erreur au niveau de la fonction spéciale OB 110

Erreur au niveau des instructions IXW, TRW: adr. mém.


calculée 43s + const.> pas dans l'intervalle &EDFl?H

Erreur au niveau de l'instruction ZRD, TRD:


l'adresse mémoire calculée a + constante> n'est
pas dans l'intervalle O - EDFEü

Erreur au niveau de l'instruction TSG, LB GB, LW, GW


TB GB, TW GW: l'adresse calculée 45s + constante>
n'est pas dans llintemlleO - EE'FFH

Erreur au niveau des instructions LB GU, LW GD,


TB GW, TW GD: l'adresse calculée + constante
n'est pas dans l'intervalle O - EFFEH

Erreur au niveau des instructions LB GD, TB GD:


l'adresse calculée 43s + constante> n'est pas dans
dans l'intervalle O - EFFCH
Code d'erreur -1 ication
ACCU1 ACCU2

U55H - Erreur au niveau des instructions TSC, LB CB, IXJ


CU, TB CB, TW CW: l'adresse de page calculée Q3S +
constante> n'est pas dans l'intervalle F400H - FBE'FH

Erreur au niveau des instructions LB CU, LW CD,


TB CW, TW CD: l'adresse de page calculée 4 3 +
constante> n'est pas dans l'intervalle F400H - FBFM

Erreur au niveau des instructions LB CD, TB CD:


l'adresse de page calculée <BS + constante> n'est
pas dans l'intervalle F400H - FBFCH

Erreur au niveau des instructions TNW, TNB: le bloc


source n'est pas compris entiérement dans l'une des
zones mémoire suivante:
0000-7FFF mémoire utilisateur
8000-DD7F RAM des blocs de données
DD80-EDFF RAM système (DBO,BA,BB,BS,BT,T,Z)
EEO0-EFFF mémemtos mémoire image
FOO0-FFFF périphérie

Erreur au niveau des instructions TNW, TNB: le


bloc de destination n'est pas compris entièrement
dans l'une des zones mémoire suivante :
0000-7FFF mémoire utilisateur
8000-DD7F RAM des blocs de données
DD80-EDFF RAM système (DBO,BA,BB,BS,BT,T,Z)
FOO0-FFFF périphérie

5.6.3 M ü (erreur d'adressage)

Vne erreur d'adressage apparaît lorsqu'une entrée ou sortie de la mémoire


image est appelée par une opération STEP5 alors que, lors du dernier démar-
rage, aucune carte périphérique ne lui avait été attribuée (carte pas enfi-
chée, défectueuse ou pas indiquée dans le bloc de données DB 1 du pro-
cesseur).

Le programme système interrompt alors l'exécution du programme d'applica-


tion et appelle le bloc d'organisation OB 25. Lorsque l'exécution du pro-
gramme écrit dans l'OB 25 est achevée, le programme interrompu est poursui-
vi par l'instruction suivante, c.-à-d.que llinstructionSTEP5 ayant provo-
qué l'erreur DAD n'est pas exécutée.

brsque l'OB 25 n'a pas été programmé, le processeur passe à l'état STOP
dès qu'une erreur d'adressage est détectée à moins que vous n'ayez détermi-
né, dans le bloc de données DX O, la poursuite du programme dans le cas de
cette erreur.

La surveillance de cette erreur d'adressage peut même être supprimé entiè-


rement par la programmation correspondante du DX O.

Aucun code d'erreur n'est inscrit dans l'ACCU 1 ou l'ACCU 2 à l'apparition


d'me erreur d'adressage.
5.6.4 ACQ (retard d'acquittemept)

ün retard d'acquittement se présente lorsqu'une carte d'entrée ou de sortie


ne répond pas par le signal RDY (ready) dans un laps de temps déterminé à
la suite d'un adressage. La cause du retard d'acquittement peut provenir
d'un défaut de la carte ou du retrait de la carte en cours de fonction-
nement.

Les retards d'acquittement suivants interrompent l'exécution du programme


d'application et appellent un bloc d'organisation correspondant:

1. Retard d'acquittement dans le programne d'application dans le cas de


l'accès direct, par le bus S5, à un CP, IP, au coordinateur KOR ou à une
carte périphérique (p.ex. avec les instructions de chargement et de
transfert L/T P... ou Q...):
le programme système appelle le bloc d'organisation OB 23.

Les ACCUS 1 et 2 contiennent dans ce cas des informations supplémen-


taires relatives à l'erreur apparue.

Code d'erreur Explication


ACCU 1 ACCü 2

1E23H yyyyH Retard d'acquittement (ACQ) dans le programme


d'application lors de l'accès à la périphérie
yyyy = adresse ACQ

2. Retard d'acquittement lors de l'actualisation de la mémoire image des


entrées et sorties ou du transfert des mémentos de couplage: le pro-
gramme système appelle le bloc d'organisation OB 24.

Les accumulateurs 1 et 2 contiennent dans ce cas des informations sup-


plémentaires relatives à l'erreur apparue.

Code d'erreur Explication


ACCU 1 ACCü 2

1E25H yyyyH Retard d'acquittement lors de l'actualisation des


sorties TOR
yyyy = adresse de l'octet de sortie non acquitté

1E26H yyyyH Retard d'acquittement lors de l'actualisation des


entrées M R
yyyy = adresse de l'octet d'entrée non acquitté

1E27H yyyyH Retard d'acquittement lors de 1' actualisation des


mémentos de couplage de sortie
yyyy = adresse de l'octet de mémento non acquitté

1E28H yyyyH Retard d'acquittement lors de l'actualisation des


mémentos de couplage d'entrée
yyyy = adresse de l'octet de mémento non acquitté
Lorsque les blocs d'organisation appelés n'ont pas été programmés, l1exécu-
tion du programme d'application est poursuivie. ün retard d'acquittement
prolonge cependant le temps d'exécution de l'instruction STEP5 qui l'a pro-
voqué.

En cas de retard d'acquittement, la CPU lit la valeur de remplacement llOOH1l


et poursuit l'exécution sur la base de cette valeur si le défaut ACQ a été
acquitté par l'utilisateur.

Lorsque le retard d'acquittement doit donner lieu à la mise en STOP du


processeur, l'OB 23 ou 24 doit contenir l'instruction STP.

ïa programmation adéquate du DXO vous permet également de déclencher un


arrêt du système dans le cas d'un ACQ, même lorsque les OB 23/24 ne sont
pas programmés.

5.6.5 CYC (&passement) du temps de cycle

Le temps de cycle comprend la b é e totale d'une exécution du programme


cyclique. Un dépassement du temps de cycle réglé dans le processeur peut
être déclenché p. ex. par une programmation erronée, par une boucle de
programme au sein d'un bloc fonctionnel, par une défaillance de l'horloge
système ou par une activité système telle que l'actualisation de la mémoire
image dans le cas de programmes longs.

Lorsqulundépassement du temps de cycle se présente, le programme système


interrompt l'exécution du progrme d'application pour appeler le bloc
d'organisation OB 26, et le chien de garde est réarmé. Si le temps de cycle
est dépassé une nouvelle fois, avant que l'OB 26 n'ait été complètement
traité, le processeur se met en STOP et signale le double défaut.

Le temps de cycle est variable (1 à 6000 ms) et peut être prolongé (réarme-
ment du chien de garde) cf. ci-dessus. Indépendamment du temps de cycle
alloué, le signal BASP (inhibition des ordres de sortie) est émis 150 m s
après écoulement du temps de cycle, si, à ce moment, le traitement de
l'OB 26 n'est pas achevé.

Lorsque l'OB 26 n'a pas été programmé, le processeur se met en STOP dans la
mesure où le préréglage dans le DX O n'a pas été modifié par l'utilisateur.

L'utilisateur peut prérégler individuellement le temps de cycle maximal,


soit en paramétrant le DX O, soit par l'appel du bloc d'organisation de
fonction spéciale OB 221.

Le chien de garde peut être réarmé dans le programme cyclique en appelant


le bloc d'organisation pour fonctions spéciales OB 222.

Aucun code d'erreur n'est inscrit dans ACCU 1 ou ACCU 2 lors d'un dépasse-
ment du temps de cycle.
5.6.6 Collision dvnlarmé.ad'horloge el0)
Si un OB d'horloge déterminé est appelé une nowelle fois alors que son
dernier traitement n'est pas entièrement terminé, le programme système
détecte une collision d'alarmes d'horloge et appelle le bloc d'organisation
OB 33. Des renseignements complémentaires vous sont donnés au chapitre
4.4.2 "AIARMES D'HORUX;E1'!

Le programe système inscrit des informations supplémentaires dans les ACCUS


1 et 2; ces informations renseignent de façon plus précise sur la nature du
défaut .
Code de défaut Explication
ACCU 1 ACCU2

lOOlH 0016H Collision d'alarmes d'horloge pour l'OB 10 (10 ms)

1OOlH
0014H I Collision d'alarmes d'horloge pour l'OB 11 (20 rns)

lOOlH
OoLW I Collision d'alarmes d'horloge pour l'OB 12 (50 ms)

lOOlH
OOIOH I Collision d'alarmes d'horloge pour l'OB 13 (100 ms)

l0OlH
OOOW I Collision d'alarmes d'horloge pour l'OB 14 (200 ms)

lOOlH
O0OcH I Collision d'alarmes d'horloge pour l'OB 15 (500 m s )

lOOlH
OOOAH I Collision d'alarmes d'horloge pour l'OB 16 (1 sec)

lOOlH

lOOlH
ooo8H
0006H
I1 Collision d'alarmes d'horloge pour l'OB 17 (2 sec)

Collision d'alarmes d'horloge pour l'OB 18 (5 sec)

Nota: Le code figurant dans l'ACCU 2 est l'indicatif de niveau de


l'alarme d'horloge qui est à l'origine du défaut.

Si l'OB 33 n'a pas été programmé, le processeur se met en STOP. üne pro-
grammation adéquate du DXO permet de poursuivre le traitement: du programme
lors d'une collision d'alarmes d'horloge, même lorsque l'OB 33 n'a pas été
programmé.

Remarque: un deuxième appel du niveau de traitement du programme de défaut


"collision d'alarmes d'h~rloge'~n'entraînent pas une erreur double (DOUB).

5.6.7 REG (erreur dans le programme de réguiatian)

üne erreur en cours d'exécution des blocs fonctionnels standard "stnicture


de régulateur R 64" assistés par le progrme système constituent une
erreur "REG".

MPOnCANT!
Alors qu'une collisim d ~ est détectée par le programme
l dlharioge
système lorsque le traitement d'un OB dlnixniuln'est pas cammencé et achevé
en l'espace de la base de temps (p. ex: 100 ms pan l'OB 131, m e erreur
dans le trai-t du programme de régdatian n'est détectk qu'à l'appel
du niveau de traitement REüUlTCM et indiquée à ce t- dans l1i?EUE.
Lorsqu'une erreur paraît dans le prograxue de régulation, le niveau de
traitement REGULATION est abandonné et le niveau ERREITR DANS REGULATION
(NIVEAU: 001CH) est appelé (bloc d'organisation OB 34).

La réaction du processeur dépend alors de la programmation de l'OB 34:

a) Lorsque l'OB 34 n'est pas programmé,le processeur se met en STOP.


La cause de l'erreur peut être déterminée en lisant la pile des inter-
ruptions.

b) Lorsque l'OB 34 est programmé, le programme STEP5 qui y est contenu


(p.ex. évaluation des ACCU 1 et 2, traitement des erreurs en fonction
du contenu des ACCUS) est exécuté. A la suite de cela, le traitement des
régulateurs est poursuivi à l'endroit où l'interruption a eu lieu.

Si les erreurs dans le programme de régulation doivent être ignorées,


une instruction de fin de bloc BE dans l'OB 34 suffit.

Pour que le traitement des régulateurs soit poursuivi après apparition


d'une erreur dans le programme de régulation alors que l'OB 34 n'a pas été
programmé, il faut modifier en conséquence le préréglage dans le DXO.

Lorsque l'OB 34 est appelé, les accumulateurs 1 et 2 contiennent des infor-


mations supplémentaires relatives à l'erreur apparue.

Code d'erreur Explication


ACCU1 ACCU2

0801H DByyH Erreur de période d'échantillonnage


yy = nP du bloc de données de rég. concerné

0802H DByyH Bloc de données de régulateur pas chargé


yy = numéro du bloc de données non chargé

0803H FByyH Bloc fonctionnel de régulateur pas chargé


yy = numéro du bloc fonctionnel non chargé

0804H FByyH Bloc fonctionnel de régulateur pas reconnu


yy = numéro du bloc fonctionnel non reconnu

0805H FByyH Bloc fonctionnel de régulateur chargé avec


mauvais logiciel de PG
yy = numéro du bloc fonctionnel

0806H DByyH Longueur du bloc de données de rég. incorrects


yy = numéro de bloc de données

0880H yyyyH Retard d'acquittement (ACQ) en cours d' exécw


tion de régulateur

Dans tous les 7 cas d'erreur, le bit de commande DEF-RE est marqué
d'une croix sur l'écran de la console de programmation. Si vous utilisez
une console sans système d'exploitation S5-DOS, l'avant dernière position
de la ligne inférieur du masque des bits de commande ne porte pas la
désignation DEF-REG mais est cependant marqué d'une croix. Dans le masque
ITPILE du niveau "REGULATIONW,BEG est marqué d'une croix (origine de
1'interruption).
Erreur & période dvéchantïîïamage

Après écoulement de la période d'échantillonnage paramétrée, le progrme


cyclique est interrompu à la prochaine limite de bloc et le traitement de
régulateur est inséré. Il se peut alors que l'exécution de "longsw blocs de
programne cyclique nécessite trop de temps et que le traitement de régula-
teur soit donc décalé: il s'agit là d'une erreur de période d'échantillon-
nage.
üne erreur de période d'échantillonnage peut être traitée de la même façon
que les autres erreurs décrites en a) et b) mais elle peut aussi être
inhibée par masquage. Dans ce cas, l'exécution de programme n'est pas
interrompue lorsqu'il y a apparition d'une erreur de période d'échan-
tillonnage.

Veuillez à ce propos tenir compte de la description "Régulation structurée


dans le processeur R de 1'API S5-135U1',C79000-B8577-C365-03,à partir de
la page 5-2.

üne erreur de période d'échantillonnage peut éventuellement être évitée en


modifiant le préréglage dans le DX O, "traitement de l'alarme de régulateur
et de l'alarme process aux limites de bloc" en "traitement de l'alarme de
régulateur et de l'alarme process aux limites d'instructions".
Le programme système appelle l'OB 28 si, en mode RUN, il est demandé le
passage à l'état STOP.

a) en manoeuvrant le commutateur de mode du processeur de RUN sur STOP,

b) au moyen de la fonction on-line "STOP AGw

c) en amenant le commutateur du coordinateur sur STOP (en fonctionnement


multiprocesseur)

Le processeur passe en STOP après traitement de l10328.

Ilmmmm!!
Ie passage à l1état SiDP est du fait qae llOB 28 ait été
p r m ai mni.

Aucun code d'erreur est inscrit dans l'ACCU 1 ou dans 1'ACCi.J 2.


6 Fonctions spéciales intégrées
Le système d'exploitation de la CPU 928 vous offre des fonctions spéciales
que vous pouvez utiliser, si nécessaire, au moyen d'un appel de bloc condi-
tionnel (SPB OB x) ou inconditionnel (SPA OB x). Ce sont les blocs d'orga-
nisation OB 40 à 255 qui sont réservés à ces fonctions spéciales.

Ces fonctions sont désignées par fonctions spéciales intégrées étant donné
qu'elles font partie du programme système. L'utilisateur peut appeler ces
fonctions spéciales sans toutefois pouvoir les lire ou les modifier.

lBlmmmT!
L'inslxuction SPA OB > 39 n'occasionne pas un "vrai" changement de bloc.
Bucrnie nfnrmcl n'est traitée à la limite de bloc!

Fonctions s p é c i a l e s aus pseudo-limites d l i n s t r u c t h n s

Certaines fonctions spéciales ont des temps d'exécution relativement longs


et contiennent des "pseudo-limites d'instructions". Cela signifie que
l'exécution de la fonction spéciale est réalisée en plusieurs étapes.
Lorsqu'une erreur (p. ex. ZYK) ou une interruption (p. ex. un traitement
d'alarme ou une alarme d'horloge aux limites d'instructions) se présente au
cours d'une étape, le bloc d'organisation correspondant est alors imbriqué
à 1; fin de cette étape, à la pseudo-limite d'instruction.
Les fonctions spéciales qui contiennent des pseudo-limites d'instructions
sont marquées dans le tableau suivant.

Exécution incorrecte de fonctions spéciales

Les fonctions spéciales peuvent être divisées en deux groupes quant à leur
réaction aux erreurs:

Groupe 1:

Le groupe 1 comprend toutes les fonctions spéciales pour lesquelles un bloc


d'organisation déterminé est appelé lorsqulily a présence d'une erreur;
cet OB permet de déterminer le comportement du processeur à la suite de
cette erreur.

Lorsque le processeur rencontre p. ex. un paramétrage incorrect au cours de


l'exécution de la fonction spéciale, il interprète cette erreur comme un
dépassement du temps d'exécution (DPT) et appelle l'OB 31. Lorsque la fonc-
tion spéciale appelée n'existe pas p. ex., il recon-naît une erreur de code
opération (DCO) et tente d'appeler l'OB 30.

Au cas où les OB 30 ou 31nVauraientpas été programmés ou contiendraient


une instruction STP, le processeur se met en STOP. Dans ce cas, "DPT" ou
"DCO" sont alors marqués d'une croix dans les bits de comnande et dans la
pile des interruptions. Les accumulateurs contiennent des indicatifs d'er-
reur fournissant des détails supplémentaires sur la nature de l'erreur.
brsque les OB 30 ou 31 ont cependant été programnés (et qu'ils ne con-
tiennent pas l'instruction STP), le programme d'application est poursuivi,
à la suite de l'exécution de l'OB 30 ou 31, par l'instruction suivante.
Dans ce cas, les accumulateurs ne sont pas modifiés.
Certaines fonctions spéciales utilisent un autre mécanisme pour la réaction
aux erreurs affectant les fonctions spéciales: elles influencent le résul-
tat logique RU et les indicateurs FLûflL1.

S'il se présente une erreur en cours d'exécution de ces fonctions spé-


ciales, le RU se trouve mis à "1" dans la plupart de ces cas ( R U = 1) et
peut par conséquent être exploité par une instruction SPB (saut condition-
nel).

Dans ce cas, vous pouvez évaluer le résultat logique (RLG) en tant que
signal pour "erreur" ou "pas d'erreur" et prévoir un programme de réaction
spécialement adapté au cas d'erreur.

Pour certaines fonctions spéciales, les indicateurs de résultat FLO et F U


sont influencés par l'exécution de la fonction spéciale et peuvent donc
également être interrogés.
Vue d l e n s d l e des faictions spéciales intégrées de la CR1 928

OB 110 Accès à l'octet des indicateurs


OB 111 Effacement des accus 1,2,3 et 4
OB 112 Décalage des contenus d'accus dans le sens croissant
(Roll UP)
OB 113 Décalage des contenus d'accus dans le sens décroissant
(Roll down)

Activation/désact ivation de "inhibition des alarmes"


Act ./dés. de "inhibition sélective d'alarmes d'horloge"
Act./dés. de "ajournement des alarmes"
Act ./dés. de "ajournement sélectif d'alarmes d'horloge"

OB 160 - 163 Comptage de boucles

OB 170 Lecture de la pile de blocs (BLPILE)

Accès variable aux blocs de données


Test des blocs de données (DB/DX)
Transfert de mémentos dans des blocs de données
Transfert données d'un DB dans la zone de mémentos

Fonctions pour la communication multiprocesseur

Accès aux pages mémoire

Extension de signe
Réglage du temps de cycle
Réarmement du chien de garde
Comparaison des modes de démarrage en fonctionnement
multiprocesseur
Transfert des mémentos de couplage en bloc en fonction-
nement multiprocesseur
Lecture d'un ~notdu programme système
Lecture checksum du programme système
Lecture de l'information d'état concernant un niveau de
traitement de programme

Fonctions pow blocs fonctionnels standard

ïnitialisation du registre à décalage


Traitement du registre à décalage
Effacement du registre à décalage

Initialisation du régulateur PID


Traitement du régulateur PID
Transfert de blocs de données (DB/DX) dans la RAM DB

Fonctions spéciales avec pseudo-limites d'instructions (longue durée)

2, Les fonctions spéciales OB 221 et OB 224 ont été reprises du processeur


S pour des raisons de compatibilité et ne devraient pas être programmées
dans la CPü 928. Ce comportement du système devrait par contre être
paramétré dans le DX O (cf. chapitre 7).
nota:
Pour le paramétrage des blocs d'organisation de fonctions spéciales, on a
adopté les conventions suivantes pour le contenu de l'accu 1:

ACCU 1: ACCU 1, 32 bits


ACCU 1-L: ACCU 1, mot de poids faible, 16 bits
ACCU 1-I;L: ACCU 1, mot de poids faible, octet de poids faible, 8 bits
ACCU 1-LH: ACCU 1, mot de poids faible, octet de poids fort, 8 bits

<- Mot de poids fort -%- Mot de poids faible ->


I I I
I Octet de
poids fort l Octet de
poids faible
Octet de
poids fort I Octet de
poids faible

Dans la suite de la description des fonctions spéciales, le terme paramètre


désigne toutes les données nécessaires au processeur pour l'exécution
correcte de la fonction spéciale. L'appel d'une fonction spéciale dans le
programme STEP5 doit être-précédédu chargement de ces données dans les
accus ou dans les cellules mémoire indiquées.
6.1 Manipulation de registres
6.1.1 Accès à l'octet: des indicateurs (OB U O )

Le registre des indicateurs contient les informations concernant le résul-


tat d'une opération arithmétique ou logique. Il peut être exploité à l'aide
d'instructions spéciales dépendant des indicateurs.

L'OB 110 permet de charger le registre des indicateurs dans l'accu ou de


transférer le contenu de l'accu 1 dans ce registre. De plus, il permet de
mettre à "O" ou à "1" certains bits indicateurs.

Bffectatian de l'accu 1 pour l'accès au reeistre des indicateurs:

-
1 FL1 1 1 OV 1 OS 1 OU 1 ETAT 1 RU: Il.?
Indicateurs
d'opérations sur MOTS 1 Indicateurs
sur BITS
d'opérations

*) Les bits 28 à 231 sont réservés à des extensions et doivent être à


"O" lors de l'écriture du registre des indicateurs. Ils doivent être
ignorés lors de la lecture du registre des indicateurs.

Paramètres:

1. Accu 2-L: Indicatif de fonction


Valeurs admises: 1, 2 ou 3

2. Accu 1: Nowel octet indicateur ou masque

Accu 2-L Accu 1 Fonction:


avant après

1 Nouvel Nouvel Le contenu de l'accu 1 est transféré


octet octet dans le registre des indicateurs
indicateur indicateur

2 Masque Nowel Tous les bits à "1" dans le masque


octet se trouvant dans l'accu 1 sont mis
indica- à "1" dans le registre des indica-
teur1) teurs. Le nouvel octet indicateur
est chargé dans l'accu 1.

3 Masque Nouvel Tous les bits à "1" dans le masque se


octet trouvant dans l'accu 1 sont mis à "0"
indica- dans le registre des indicateurss. Le
teur1) nouvel octet indicateur est chargé
dans l'accu 1.

') Restriction: -
Les bits indicateurs OU, ETAT et l.? ne peuvent pas être lus car la
fonction spécialeB 110 influence toujours ces bits :
OU+, ETAT=l et l.?=O.
Erreurs mssibles :
- Indicatif de fonction dans l'accu 2-L différent de 1, 2 ou 3
- L'un des bits 28 à 231 est à "1" dans l'accu 1.

En présence d'une erreur, l'OB 31 est appelé et l'indicatif d'erreur


1A49H est chargé dans l'accu 1-L.

L'OB 110 permet de tester les instructions qui exploitent ou influencent le


contenu du registre des indicateurs. Son utilisation ne se limite cependant
pas au test des instructions. L'exemple suivant illustre un autre cas
d' application.

Sélecteur de sous-programes:
Suivant le contenu de l'octet de mémentos MBO, l'un des quatre sous-pro-
grammes sera appelé. Les bits MO.0 à M0.3 sont affectés aux quatre sous-
progranunes. Un seul de ces bits peut être à "1" à la fois.

:L Mi30
:SLW 4 ;Décaler MO.0 à M0.3 de quatre bits vers la gauche
:L KB1 ;Chargement de l'indicatif de fonction
:TAK
:SPA OB110
:SPS =MO00 ;Saut si OS = 1
:SPO =MO01 ;Saut si OV = 1
:SPM =MO02 ;Saut si FLO = 1
:SPP =MO03 ;Saut si FLl = 1
..
.. ;si aucun bit n'est à "1"
..
:BEA

MO00 : . ;si MO.0 = 1


..
:BEA
MOO1: . ;si MO.l = 1
..
:BEA
MO02 : . ;si M0.2 = 1
..
:BEA
MO03 :. ;si M0.3 = 1
..
:BEA
6.1.2 Eacement des accus 1, 2, 3 et 4 (OB LU)
ün simple appel de l'OB 111 suffit pour effacer l e contenu des accus 1 à 4:
l'OB 111 écrase l e contenu des quatre accus avec des "O".

Paramètres : néant

Erreurs wssibles : néant


6.1.3 DécaLage des contenus d'accus dans le sens croissant (Roll up,
OB 112) et décroissant (Roll dom, OB 113)
- L'OB 112 (Roll up) provoque le décalage du contenu de l'accu 1 dans
l'accu 2, du contenu de l'accu 2 dans l'accu 3 etc..
- L'OB 113 (Roll down) provoque le décalage du contenu des accus dans le
sens décroissant: contenu de l'accu 1 dans l'accu 4, contenu de l'accu 4
dans l'accu 3 etc..

Paramètres: néant

Erreurs mssibles : néant

La figure ci-après montre le contenu des accus avant et après l'appel


de l'OB 112 et de l'OB 113.

31
,---
D é c---------

i
'
alage

O
I

Accu 4 p i c i 4 > 1
1
!
1
Accu 3 1 <Accy 3> /1
1

D é--------
,--- c a l a g_e-
Les instructions STEP 5 ENT (jeu d'opérations étendus) et TAK (opération
système) permettent également de décaler le contenu des accus.

La figure suivante illlustre les différences entre l'action de ces instruc-


tions et celle des OB 112 et 113:

Instruction ENT
Accu 2 pcu2>T,,,* <AîcuP>
Accu 1 / <Accu1 > 1

Instruction TAK
ACCU2 1 <Accu 2> kpe rmutationj
. <ACCU 1 >
I
6.2 Instructions de structure
6.2.1 Comptage de baicles (OB 160 à 163)

Ces blocs d'organisation permettent de réaliser des boucles de programme


avec un temps d'exécution particulièrement avantageux.

A chacun des 4 OB de fonction est affecté un mot de données système.

L'utilisateur transfèrera dans ce mot de donnée système le nombre voulu de


répétitions d'une boucle. En appelant l'OB correspondant, le compteur de
boucles (contenu dans le mot de données système) est décrémenté de 1. La
boucle sera répétée jusqu'à ce que le compteur de boucles aura atteint la
valeur zéro.
(Si le compteur de boucles contient la valeur zéro au moment de l'appel de
bloc correspondant, il sera également décrémenté de 1, c'est-à-dire la
boucle sera répétée 65536 fois!).

Compteur de boucles dans le mot de données système > 0:


le RU= est mis à "1" (RU: = 1)
Compteur de boucles dans le mot de données système = 0:
le RLG est mis à O ( F U = 0)

Les autres indicateurs d'opérations sur bits et sur mot sont toujours remis
à zéro!

Le contenu des accus n'est pas modifié ni exploité. De ce fait, ils sont
disponibles au début de la boucle suivante et ne doivent pas être reconsti-
tués.
Les quatre blocs d'organisation OB 160, 161, 162 et 163 permettent une
imbrication des boucles à quatre niveaux. Il est donc possible de définir
quatre compteurs de boucles différents dans les mots de données système
BS 60 à BS 63.

Le cas échéant, ces fonctions spéciales peuvent être utilisées en liaison


avec l'instruction B BS.

Temps d'exécution des fonctions spéciales OB 160 à 163 lorsque le compteur


de boucles est # 1 avant l'appel de la fonction: 12 à 16 fis

Paramètres:

1. Mot-donnée système BS 60 - 63: compteur de boucles


valeurs possibles: O - 65 535 (FFFFH)

Erreur possibles: néant


Exemple:

Le mot de mémento x contient le nombre voulu de répétitions d'une boucle:

Initialisation de la boucle : :L KBO


:L M Wx compteur de boucles
: !=F
:SPB=MOO
:T BS62 transfert de compteur de
boucles dans le mot-donnée
système
"Boucle de programme" : MOOl: .

Gestion de la boucle: :SPA OB162 comptage de boucles


:SPB =MO01 pour RLG = 1, la boucle
est répétée
suite: M002: .
. .
. .
(Un autre exemple figure au chapitre 9.2 "TNW et TNB: transfert de blocs
mémoire".)
6.3 Lecture de l a p i l e de blocs (BLPILE) (OB 170)
La pile des blocs contient, en partant de l'OB 1 ou du FB 0, tous les blocs
appelés successivement et dont le traitement n'est pas encore terminé.

Le bloc d'organisation OB 170 permet de transférer dans un bloc de données


les éléments qui sont inscrits dans la BLPILE. Ceci permet de déterminer le
nombre d'éléments dans la BLPIU et ainsi la réserve disponible pour
d'autres éléments.

Pour chaque élément de la BLPIU, on obtient les renseignements suivants:


adresse de retour (compteur d'adresses = CAD), l'adresse absolue de début
(DBA) et la longueur (nombre de mots de données = DBL) du bloc de données
valable pour l'élément (bloc) considéré.

lHmKum!
L'appel de l'OB 170 doit être précédé de l'mverture d'un bloc de données
OB ai DX) de lcmgueur suffisante. Il faut disposer de quatre m o t s de
données pour cbaque élément de la BLPïïE.

Paramètres:

1. ACCU 2-L: numéro du mot de données (DW n) à partir duquel sont inscrits
les éléments dans le DB appelé (=déplacement)

2. ACCU 1-L: nombre d'éléments désiré de la BLPILE

valeurs admises: 1 à 62

Exemple: Si l'accu 1-L contient la valeur "l", vous obtenez


le dernier élément inscrit dans la BLPILE, et pour
"2", le dernier et l'avant-dernier, etc.

brsque l'appel de l'OB 170 est effectué avec succès,


- l'ACCU 2-L contient encore le déplacement (numéro du premier DW dans
le DB)
- l'ACCU 1-L contient le nombre réel d'éléments représentés de la BLPILE
valeurs possibles: O à 62, avec

nombre représenté j nombre désiré

O = "aucun élément dans la BLPILE1'ou "défaut"

(Le contenu de l'accu 1-L multiplié par 4 donne le nombre de mots de


données écrits dans le DB appelé)
- le RU: est mis à zéro.

- les indicateurs FL0 et F U peuvent être exploités (voir ci-après).


- tous les autres indicateurs d'opérations sur bits et sur mots sont à
zéro.

Erreur ~ossibles:

- aucun bloc de données n'est appelé


- le bloc de données appelé n'existe ?as ou n'a pas une longueur suffisante
pour recevoir le nombre d'éléments voulu de la BLPILE.

- paramètres incorrects dans l'accu 1 et/ou 2.


En présence d'un défaut, le RLG et les indicateurs FLO et FLl sont mis à
"l", les autres indicateurs d'opérations sur bits et sur mots sont à zéro.
Le contenu de l'accu 1 est à "O".

Influence sur les indicateurs RU;, FIiD et FI;t

RU= FLO FLl Test par Signification

O 1 O SPM Nombre d'éléments présents de la BLPILE


< nombre désiré
O O O SPZ Nombre d'éléments présents de la BISILE
= nombre désiré

O O 1 SPP Nombre d'éléments présents de la BISILE


> nombre désiré
1 1 1 SPB Erreur
b r s de l'appel de l'OB 170, le contenu de la BLPILE est transféré de la
manière suivante dans le bloc de données:

A = Numéro de l'élément de la BLPILE (62-1)

(Il suffit donc d'appeler le dernier élément inscrit dans la BLPILE


pour connaître la réserve disponible: A = 17 --> réserve = 16)

B = Nombre d'éléments désirés de la BLPILE (1 - 62, profondeur de la


pile)

\
Dépla- -> DWn
cement
DWn+l CAD
> Dernier élément inscrit
dans la BLPILE (B=l)

'> Avant-dernier élément inscrit


dans la BLPILE (B = 2)

Exemple:

Vous désirez transférer dans les bloc de données DX 10 les trois derniers
éléments inscrits dans la BLPILE. L'écriture dans le DX 10 doit s'effectuer
à partir du mot de données DW 16.

:AX DX 10 ;appel du DX 10
:L KY 16 ;écrire des éléments de la BLPILE à partir du DW 16
:L KY 3 ;nombre d'éléments désirés = 3
:SPA OB 170
La BLPïLE contient 6 blocs (éléments 62 à 57)

BLPILE

Elément 1

Elément 56

nément 57 ProfondeUr 1 (dernier élement ïns-


mit dans la BU=)

m e
n t 58 ProfcmdeUr 2

Elément 59

Elément 60

Elément 61

Elément 62 (premier élément ins-


crit dans la BLPILE)

Après avoir appelé l'OB 170, le DX 10 contient les valeurs suivantes:

Dépla- -> DWl6 Rofcmdeur 1


Cernent
DWl7 CAD
I

7
1
longueur

Profondeur 2

Rofondeur 3

ACCU 2-L: 16
ACCUl-L: 3

RLG = O
FLO = O
FL1 = 1
6.4 Manipulation des blocs

6.4.1 Accès variable ain blocs de données (OB 180)

ïors de l'appel d'un bloc de données au moyen des instructions A DB et AX


DX, le registre "DBA" (= adresse de début du bloc de données, no de re-
gistre 6) est chargé avec l'adresse du mot-donnée DWO qui est contenue dans
le DBO. L'utilisateur peut accéder au registre DBA (16 bits) au myen du
progrannne STEP5 (LIR 6, TIR 6).
Les accès aux blocs de données à l'aide dlinstructionstelles que L DR 60
ou B DW 240 etc. ont toujours lieu de façon relative par rapport à
l'adresse de début de bloc de données.

llmlKwm!
U s accès SiEP5 aux m o t s de données ne s m t admis que jusqulaumot DV 255!

Outre le registre DBA, le registre "DBL (= longueur du bloc de données, no


de registre 8) est chargé lors de chaque appel d'un bloc de données: il
contient la longueur (en mots) du bloc de données DB ou DX ouvert, en-tête
non comprise.
L'utilisateur peut accéder au registre DBL (16 bits) au moyen du programme
STEP5 (LIR 8, TIR 8).

~~!
Selon la capacité mémoire de la console de progcarmratïcm utilisée, l e
registre DBL peut m i r une longuetn l e de 4091 m o t s de dormées!

.
Adr (hex .)
1516

5 mots

En-tête du bloc

aaaa

bbbb

CCCC

dddd

eeee

ffff

gggg

hhhh
Le registre DBA contient l'adresse du mot-mémoire dans lequel est déposé le
DW O, dans l'exemple ci-dessus: DBA = 151B (hexadécimal).

Le registre DBL contient le nombre de mots de données, dans l'exemple ci-


dessus: DBL = 8 (DW O à DW 7)

Etant donné que l'accès aux mots de données au moyen des instructions STEP5
L DW, U D, B DW etc. est toujours réalisé de façon relative par rapport au
DBA; p.ex. pour accéder au DW 3, on additionne 3 à 151B. L'adresse 151E
contient le DW 3. Dans le cas des accès en écriture, le registre DBL permet
de contrôler s1il y a présence d'une erreur de transfert. Exemple: T DW 7
est admis alors que T DW 8 est incorrect.

LIOB 180 incrémente l'adresse de début du bloc de données d'un nombre défi-
ni de mots de données. Il est ainsi possible d'accéder, au moyen d1instruc-
tions STEP5, à des blocs de données qui ont une longueur supérieure à
256 mots de données.
Par un paramétrage adéquat suivi de l'appel de l'OB 180, il est possible de
déplacer à volonté la zone d'accès STEP5 (256 mots de données) au sein d'un
bloc de données.

mm!
A m t d'appeler l'OB 180, un bloc de damnées d'une longueur suffisante (DB
ai DX) doit avoir été appelé!

Paramètres:

1. ACCU 1-L: décalage (nombre de mots-données duquel l'adresse de début de


bloc de données doit être décalée)

valeurs possibles: contenu ACCU 1-L < DBL!

L'appel de l'OB 180 ayant été réalisé avec succès,


- la valeur du registre DBA (= adresse du DW 0) est augmentée de la valeur
de l'ACCU 1-L;
- la valeur du registre DBL est réduite de la valeur de l'ACCU 1-L;
- le RLG est effacé ( R U = 0);
- tous les autres indicateurs d'opérations sur bits et sur mots sont à
"O"

Erreur possibles:
- aucun bloc de données n'est ouvert,
- contenu de l'ACCU 1-L 2 DBL
En cas d'erreur (contenu de l'ACCU 1 DBL), les registres DBA et DBL ne sont
pas influencés. Le RLG est mis à "1" ( R U = 1). Les autres indicateurs
d'opérations sur bits et sur mots sont mis à "O".
brsque le registre DBL contient la valeur "O", l'OB 180 reconna"l qu'aucun
bloc de données n'est ouvert. Le FUG est mis à "1" (RLG = 1) et signale
ainsi une erreur.

R e m i s e à la valeur initiale du DBA et du DBI.

Un nouvel appel du bloc de données au moyen des instructions A DB ou AX DX


rétablit 1'état initial.

L'adresse de début du bloc de données (DBA = 151B) dans le DB 17 (DBL


= 8) doit être déplacée de deux mots-données.

A DB 17
L KB 2
SPA OB 180

DB 17
Adr. (hex.)
1516

5 mots

En-tête

CCCC DW O \

dddd DW 1

eeee DW 2
> DBL
ffff DW 3

gggg DW 4

hhhh DW 5 /

DBA après appel de l'OB 180 = 151D (hex.)


DBL après appel de l'OB 180 = 6 (DW O à DW 5)
Après avoir appelé l'OB 180, le mot de donnée mémorisé sous l'adresse 1520
(contenu "ffffl') ne peut plus être adressé par DW 5, mais par DW 3 etc.

En raison de la modification simultanée du DBL, le umtrôle d'erreur de


transfert est assuré: llinstructionT DW 5 est admise alors que T DW 6
donnerait lieu à une erreur.

h appelant de nouveau l'OB 180, le contenu du registre DBA peut encore


J
être augmenté (avec une diminution en conséquence du contenu de DBL);
l'instruction A DB 17 permet de rétablir l'état initial (DBA = 151B, DBL =
8).

Si le DB 17 avait une longueur de 258 mots de données, il ne serait plus


possible d'accéder aux DW 256 et 257 au moyen des instructions STEP5. En
décalant le DBA de 2, les mots de données 256 et 257 peuvent être adressés
par "DW 254" et "DW 255".

Possibilités dlutilisatioo de llOB 180

- Accès dans le cas de DB d'une longueur de plus de 261 mots (5 mots pour
l'en-tête, DW O - DW 255), cf. ci-dessus.

- Manipulation des structures de données


brsqu'un jeu de données comprenant plusieurs mots de données existe
plusieurs fois au sein d'un processeur, l'affectation (la signification)
des mots de données étant toujours identique, on parle d'une structure de
données.

La description d'un état de processus (partiel) pourrait p.ex comprendre


20 mots de données, le premier mot de donnée contenant une température,
le deuxième une pression etc. Au cas où cet état de processus devrait
alors être mémorisé plusieurs fois au sein d'un DB, parce que le pro-
cessus partiel existe p.ex. plusieurs fois et/ou parce que les valeurs
historiques doivent être mémorisées, l'OB 180 permettra d'accéder à
chaque structure au moyen des mêmes commandes L DD, S D, T DR etc. et
avec les mêmes paramètres O à 19.

Contrairement aux autres mécanismes de substitution (substitution = para-


métrage indexé), il en résulte des sous-programmes plus simples et ayant
un temps d'exécution plus favorable.

(En ce qui concerne le registre DBA, cf. chapitre 9 "Accès à la mémoire par
adresses absolues", partie 6)
6.4.2 Test des blocs de dorniees DB/DC (OB 181)

Le bloc d'organisation de fonction spéciale OB 181 permet de contrôler

a) si un certain bloc de données DB ou DX existe,


b) l'adresse du premier mot de donnée du bloc de données,

c) le nombre de mots de données contenus dans ce bloc de données,

d) le type et la zone de mémoire (mémoire utilisateur: RAM ou EPROM,


RAM DB).

L'utilisation de la fonction "Test DB/DXW s'avère utile avant l'exécution


des instructions !t%B/TNW, E DB/EX DX et avant l'appel des blocs d'organisa-
tion de fonction spéciale OB 254 et OB 255.

C'est ainsi que vous pouvez par exemple appeler l'OB 181, avant de déclen-
cher le transfert d'un paquet de mots de données, afin de s'assurer que le
bloc de données de destination est valable et a une longueur suffisante
pour pouvoir recevoir tous les mots de données que vous désirez transférer.

Paramètres:

1. ACCU 1-IL: numéro du bloc de données


. valeurs possibles: 1 à 255
2. ACCU 1-ZH: indentificateur de bloc de données
valeurs possibles: 1 = DB
2 = DX

Lorsque le bloc concerné existe dans le processeur,

- l'ACCU 1-L contient l'adresse du premier mot de donnée (DW O);

- l'ACCU 2-L contient la longueur du bloc de données exprimée en mots de


données (en-tête non comprise) ,
exemple: l'ACCU 2-L contient la valeur "7" --> le bloc de données com-
prend les DW O à DW 6;
- le RLG est mis à "O";

- les indicateurs FLO et FL1 sont influencés (cf. liste suivante);


- les autres indicateurs d'opérations sur bits et sur mots sont mis à "0".
Si le bloc concerné n'existe pas en mémoire ou s'il y a erreur de paramé-
trage,
- le iUG est mis à "1";

- les indicateurs FLO et F U sont positionnés corne indiqué dans le tableau


ci-dessous;

- les autres indicateurs d'opérations sur bits et sur mots sont mis à "0";

- le contenu des accumulateurs n'est pas modifié.

Erreurs possibles

- Numéro de bloc incorrect (inadmissible: O)


- Identificateur de bloc incorrect (inadmissible: 0, 3 - 255)
- Erreur en mémoire

Vue d'ensemble: influence exercée sur les indicateurs RïG, mD


et FI;L

RLG = O: DB existe
RLG = 1: DB n'existe pas ou erreur

FLl = O: DB dans cartouche utilisateur


FLl = 1: DB dans RAM DB

EL0 = O: DB en RAM
EL0 = 1: DB en EPROM

BIiG mD FLl interrogation Signification

0 1 0 SPM \ DB DB dans \
I> dans
cartouche
EPROM
(morte)
0 0 0 SPZ 1 DB
/ > existe
DB dans
O O 1 SPP DB dans > FM4 (lect.
RAM DB 1 + écriture)
/ /
1 1 1 SPB DB n'existe pas/erreur de mémoire/
paramétrage incorrect

Exemples, cf.
chapitre 8 . 2 . 2 "Listes d'adresses de blocs dans la RAM DB1'
chapitre 9.1 "LIR et TIR: accès aux registres"
chapitre 9.2 "TNW et TNB: transfert de blocs mémoire"
6.4.3 Rransfert & h t o s dans un bloc de damées (OB 190 et OB 192)

Les blocs d'organisation OB 190 et OB 192 permettent à l'utilisateur de


transférer un nombre défini d'octets de mémentos dans un bloc de données.

Ceci peut s'avérer utile avant l'appel d'un bloc, au sein de blocs d'orga-
nisation de réaction à un défaut ou lors de l'interruption du programme
cyclique par une alarme process ou d'horloge.

Les blocs 191 et 193 permettent, par la suite, de retransférer ces octets
de mémentos à partir du bloc de données.

MPOKl!Am!
Un bloc de d d e s DB ai DX doit être amert avant l'appel de l'un de ces
blocs dlorganisatian.

Après l'appel de l'OB 190/192, les octets de mémentos sont mis en mémoire
intermédiaire dans le bloc de données appelé, à partir du mot de données
indiqué. La zone des mémentos à transférer est définie dans l'accu.

Les blocs d'organisation OB 190 et OB 192 exécutent la même fonction, mais


d'une manière différente en ce qui concerne le mode de transfert:

* L'OB 190 transfère les mémentos octet w r octet.


* L'OB 192 transfère les mémentos mot par mot.

Ceci est important lorsque les données transférées dans le bloc de données
doivent être traitées par la suite et que le bloc de données n'est pas
seulement utilisé en tant que simple mémoire intermédiaire.

Le schéma ci-après fait ressortir cette différence:

Mémentos transférés par OB 190: OB 192:


Remarque: Au cas où un nombre impair d'octets de mémentos serait transféré,
le dernier mot de donnée utilisé du bloc de données ne sera
utilisé que jusqu'à sa moitié. Dans le cas de l'OB 190, c'est la
donnée de gauche et, dans le cas de l'OB 192, c'est la donnée de
droite qui reste libre.

ll!mmmn!
T e n i r compte des temps d'exécution suivants:

(n= nombre d'octets de mémentos) OB 190 OB 192

Le numéro du premier octet de mémentos est pair: 25+n.0,32 40+n.0,57

Le numéro du premier octet de mémentos est ïqdr: 1 25+n.0,48 1 25+n.1,8


Paramètres:

Définition de la source:

1. ACCU 2-UI: premier octet de mémentos à transférer


valeurs possibles: O à 255

2. ACCU 2-Lt: dernier octet de mémentos à transférer


valeurs possibles: O à 255

(dernier octet de mémentos 2 premier octet de mémentos!)

Définition de la destination:

3. ACCU 1-L: adresse du premier mot de donnée à écrire dans le bloc de


données appelé

valeurs possibles:

- dépendent de la longueur du DB en mémoire


- suivant le cas, des numéros > 255 seront possibles.

brsque l'OB 190/192 est traité correctement, le R U est effacé (RLG = 0)


Le contenu des accumulateurs reste inchangé.

En cas d'erreur, le RLG est mis à "l", le contenu des accurmilateurs n'est
pas modifié.

Erreur possibles

- aucun DB ou DX n'a été appelé;


- définition incorrecte de la zone de mémentos à transférer (dernier octet
de mémentos < premier octet de mémentos);

- adresse du mot de donnée non définie;

- la longueur du DB ou DX ne suffit pas.


6.4.4 Transfert de données dans la urne de n i b n t o s (OB 191 et OB 193)

L'OB 191 et l'OB 193 vous permettent de transférer des données dans la zone
de mémentos à partir d'un bloc de données. Il est ainsi possible de ré-
écrire dans la zone de mémentos les octets qui ont été "sauvegardés" au
préalable dans un bloc de données.

Les OB 191/193 se distinguent des OB 190/192 uniquement par le fait que la


source et la destination sont permutées:

OB 190/192: zone de mémentos --> mémentos --> bloc de données

OB 191/193: z m e de mémentos <-- données <-- bloc de données

ll!mmmm!
Un bloc de damées ( D B m doit être ouvert avant l'appel de ces blocs
dlorgadsation.

Les blocs d'organisation OB 191 et OB 193 exécutent une fonction identique,


mais d'une manière différente en ce qui concerne le mode de transfert des
données:

- L'OB 191 transfère les mots de données octet Dar octet.


- L'OB 193 transfère les mots de données mot var mot.

Lsr représentation suivante fait ressortir cette différence:

Données transférées par . OB 191

DL DR - - -> Mémentos
15 ... 8 7 ... O 7 ... O
Données transférées par OB 193

DL DR - - -> Mémentos
15 ... 8 7 ... O 7 ... O

mm!
Tenir compte des temps dlexécution suivants (en
(n = nombre d'octets de mémentos) OB 193

Le numéro du premier octet de mémentos est pair: 25+n.0,32 40+n.0,57

Le numéro du premier octet de mémentos est impair: 25+n.0,48 25+n.1,8

Paramètres:

Définition de la source:

1. ACCU 2-L: adresse dans le bloc de données appelé du premier mot de


donnée à transférer

Définition de la destination:

2. ACCU 1-LH: premier octet de mémentos à écrire


valeurs possibles: O à 255

3. ACCU 1 - U : dernier octet de mémentos à écrire


valeurs possibles: O à 255

(dernier octet de mémentos 2 premier octet de mémentos!)


brsque l'OB 191/193 est exécuté correctement, le RLG est mis & "0".
Le contenu des accumulateurs reste inchangé.

En cas d'erreur, le RU= est mis à "l", le contenu des accumulateurs n'est
pas modifié.

Erreurs possibles: cf. OB 190/192

Exemple :

Avant d'appeler le bloc de programme PB 12, tous les mémentos (MB O à


MB 255) doivent être sauvegardés dans le bloc de données DX 37, à partir de
l'adresse 100. Plus tard, ils doivent être retransférés dans la zone de
mémentos.

Sauvegarde: :AX DX37 appel du bloc de données


:L KY0,255 zone de mémentos MBO à MB255
:L KBlOO adresse du premier mot de donnée
:SPA OB190 sauvegarde des mémentos

Changement de bloc: :SPA PB12

Retransfert: (bloc de données déjà appelé)


:L KBlOO adressedupremiermotdedonnée
:L KY0,255 zone de mémentos MBO à MB255
:SPA OB191 retransfert des mémentos

Exemple d'utilisation des OB 190/OB 191

Les mémentos utilisés par le programme cyclique ne peuvent pas aussi être
utilisés par un programme d'alarme ou d'horloge. ûn effectuera donc à
chaque niveau de traitement de programme une autre partie de la zone de
mémentos.

Exemple: programme cyclique: MB0...99


programme d'horloge: MBlOO...MB199
programme d'alarme: MB200 ...MB255

Toutefois, si le programme cyclique a besoin de tous les 256 octets de


mémentos disponibles, et si le programme déclenché par horloge a besoin lui
aussi de tous les 256 octets de mémentos, la solution consistera, au moment
du changement de niveau de traitement, à sauvegarder les mémentos du niveau
que l'on quitte, et à les restaurer lors du retour à ce niveau de traite-
ment.

A DBlOO DWO
MB O...255 -> DW 0...127 Mémentos du
DW 128. . .255 -> MB 0...255 programme cyclique

Programme déclenché DW127


par horloge DW128
Mémentos du
A DBlOO programme d'horloge
MB O...255-> DW 128...255
DW O...127 -> MB O..,255 DW255
BE
La solution la plus élégante et la plus rapide pour sauvegarder et restau-
rer les mémentos consiste à utiliser les fonctions spéciales OB 190 et
OB 191:

Ragramw STEP5 dans l'OB 13

:A DBlOO
:L KY0,255
:L KBO
:SPA OB190
:L KB128
:L KY 0,255
:SPA OB191

:A DBlOO
:L KY0,255
:L KB128
:SPA OB190
:L KBO
:L KY0,255
:SPA OB191
:BE

Le changement d'affectation des mémentos et leur sauvegarde prennent


704 par appel de l'OB 13.

Autres possibilités d'utilisation des blocs dlorg;anisationOB 190 à OB 193

- Dans le cas de la CPU 928, les instructions sur bits (U, O, ON, UN, S,
R, =) ayant accès à la zone de mémentos sont exécutées beaucoup plus
rapidement que les instructions comparables ayant accès aux blocs de
données (comparer à titre d'exemple les instructions U Mn <-> "U D" ou "S
Mt'<-> "S D" !) .

En copiant les données dans la zone de mémentos, en effectuant le traite-


ment sur les mémentos et en retransférant ensuite le résultat dans le
bloc de données, on obtiendra un temps d'exécution nettement plus petit.

- L'octet de poids faible (low byte) et l'octet de poids fort (high byte)
peuvent facilement être permutés dans le bloc de données en transférant
les mots de données dans la zone de mémentos et en les retransférant
ensuite dans le bloc de données au moyen des OB correspondants:
- Il est également possible de "déplacer1'des paquets de données au sein
d'un bloc de données en indiquant, lors du retransfert à partir de la
zone de mémentos, le même numéro DB, mais un autre mot de donnée.

- De la même manière, des paquets de données (255 octets au maximum)


peuvent être transférés dans d'autres blocs de données (après avoir
éventuellement utilisé l'OB 181 "test de blocs de données (DB/DX)").
6.4.5 Transfert de blocs de M e s dans La RAI4 DB (OB 254. OB 255)

Les blocs d'organisation OB 254 et OB 255 permettent de transférer des


blocs de données à partir de la mémoire utilisateur dans la RAM DB (mémoire
de blocs de données) du processeur. Les fonctions spéciales OB 2 5 4 et 255
se déroulent de façon identique, l'OB 254 se chargeant cependant des blocs
DX et l'OB 255 des blocs DB.

b r s du transfert, les blocs de données peuvent être déplacés ou dupliqués:

- Déplacement d'un bloc de données de la mémoire utilisateur dans la RAM DB

ün bloc de données se trouvant dans la mémoire utilisateur est déplacé


dans la RAM DB en conservant son numéro de bloc initial. La nouvelle
adresse de début du bloc de données est inscrite dans la liste d'adresses
(DB O). L'ancienne adresse du bloc est écrasée, c.-à-d.que le bloc de
données dans la mémoire utilisateur est déclaré non valable.

Paramètres:

1. ACCU 1-L: numéro du bloc de données à déplacer

2. ACCU 1-H: O

Erreurs possibles :

- Le bloc de données à déplacer n'existe pas (OB 19).


- Le bloc existe déjà dans la RAM DB (OB 31) .
(La fonction ne doit être exécutée qu'une seule fois, de préférence
lors du démarrage).

- La capacité mémoire de la RAM DB ne suffit pas (OB 31).

En cas d'erreur, la fonction n'est pas exécutée. Le programme système


reconnaît une erreur de temps d'exécution et appelle l'OB 19 ou l'OB 31.
La réaction à l'erreur dépend ensuite de la programmation de l'OB 19 ou
31.
brsque l'OB 19 ou 31 n'a pas été programmé, le processeur se met à
l'arrêt. L'ACCU 1 contient des indicatifs d'erreurs fournissant des
informations plus détaillées concernant l'erreur apparue.
- ïhplication d'un bloc de données dans la RAM DB

Un bloc de données se trouvant dans la mémoire utilisateur ou dans la RAM


DB est transféré dans la RAM DB tout en lui attribuant un autre numéro de
bloc. L'adresse de début du nouveau bloc de données est inscrite dans la
liste d'adresses (DB O). L'adresse de début de l'ancien bloc dans le DB O
est conservée, c.-à-d.que le bloc de données initial est toujours va-
lable.

L'inscription de l'adresse de début dans le DB O n'a lieu que lorsque le


transfert a été achevé entièrement et que tous les indicatifs ont été
inscrits correctement dans l'en-tête de bloc. Le bloc de données copié
n'est donc reconnu par le programme système corne étant valable et: exis-
tant que lorsque le transfert est complètement achevé.

Paramètres:

1. ACCU 1-L: numéro du bloc de données à dupliquer

2. ACCU 1-H: numéro du nouveau bloc de données

Erreurs possibles :

- Le bloc à dupliquer n'existe pas (OB19).

- Le nouveau bloc existe déjà (OB 31) .

- La capacité mémoire de la RAM DB ne suffit pas (OB 31) .

En cas d'erreur, la fonction n'est pas exécutée. Le programme système


reconnaît une erreur de temps d'exécution et appelle l'OB 19 ou l'OB 31.
Ia réaction à l'erreur dépend ensuite de la programmation de l'OB 19 ou
31 (cf. "Autres erreurs de temps d'exécution").
brsque l'OB 19 ou 31 n'a pas été programmé, le processeur se met à
l'arrêt. L'ACCU 1 contient des indicatifs d'erreurs fournissant des
informations plus détaillées concernant l'erreur apparue.
6.5 Communication multiprocesseur (OB 200 à OB 205)
Les blocs d'organisation de fonction spéciale OB 200 à OB 205 permettent,
en fonctionnement multiprocesseur, de transférer des données entre les
différents processeurs, les données étant mémorisées temporairement dans le
coordinateur C.

Ce bloc d'organisation installe dans le coordinateur C la mémoire tampon


dans laquelle seront mémorisés temporairement les paquets de données à
transférer.

Cette fonction transmet un paquet de données dans la mémoire tampon du


coordinateur C et indique le nombre de paquets de données pouvant encore
être émis.

OB 203: Test d'émission

L'OB 203 détermine le nombre de blocs mémire libres dans la mémoire tampon
du coordinateur C.

OB 204: Réception

Cette fonction reprend un paquet de données de la mémoire tampon du coordi-


nateur C et indique le nombre de paquet de données pouvant encore être
reçus.

OB 205: Test & réception

Le bloc d'organisation OB 205 détermine le nombre de blocs mémoire occupés


dans la mémoire tampon du coordinateur C.

Le mode d'emploi détaillé de ces blocs d'organisation de fonction spéciale


est décrit à la partie 8 du présent manuel.
6.6 Accès aux pages mémoire
Les blocs d'organisation OB 216 à OB 218 permettent d'accéder aux pages
mémoire.

Les blocs d'organisation contiennent les fonctions suivantes:

OB 216 écriture d'un octet/mot/double mot sur une page mémoire

OB 217 lecture d'un octet/mot/dauble mot d'une page mémoire

OB 218 réservation d'accès à une page mémoire par le processeur


(servant à la coordination en fonctionnement muïtiproces-
seur)

Ces fonctions servent d'une part à la réalisation de tests et permettent


d'autre part de programmer les blocs de dialogue ou des fonctions
semblables.
En fonctionnement multiprocesseur, l'utilisation de ces blocs d'organisa-
tion de fonction spéciale est particulièrement recommandée lorsqu'il s'agit
d'écrire des informations de plusieurs processeurs sur une page mémoire ou
de les lire à partir d'une page mémoire.

Qu'est-ce qu'une page mémoire ?

Des pages mémoire sont des zones de mémoire qui existent une ou plusieurs
fois sur un processeur de conununication, sur certaines cartes périphériques
intelligentes et sur certains coordinateurs destinés au fonctionnement
multiprocesseur .

Les pages mémoire sont organisées par octets, c.-à-d.que chaque octet peut
être adressé isolément.

L'automate peut contenir 255 pages mémoires au maximum.

Longueur d'une page mémoire


I Plage d'adresses occupée

1024 octets F400H - F7FFH

2048 octets F400H - FBFFH


Zones d'adresses & la pér5phkïe sur le bus S5

Bit 7
FOOO

Périphérie P

FlOO

Périphérie Q

Mémentos de couplage

Coordinateur

1-
2-
- +I

Plage d'adresses d'une Page no O


page b i r e
1024 octets + +
F7FF - -
2048 octets
FCOO

Zone mémoire existant


Périphérie décentralisée plusieurs fois
Longueur 1024 ou 2048 octets
FEFF Na de page &ire actuelle
FFOO

FFFF

C'est lors du paramétrage des OB 216, 217 et 218 que vous indiquez laquelle
des 255 pages mémoire devra être utilisée. Le numéro de la page mémoire
"actuelle" est alors automatiquement inscrit dans une cellule portant
l'adresse FEFF (cf. schéma). Tous les adressages se rapportent ensuite à la
page mémoire dont le numéro a été inscrit.

IMPORTBEIT!
Ia cellule avec l'adresse FEFF ne peut pas être lue.
L'écriture (OB 216) et la lecture (OB 217) d'un octet/mot/double mot re-
posent sur la représentation suivante:

Bit 7 6 5 4 3 2 1 0

Adresse n
u Octet Représentation octet

Adresse n Représentation mot

Adresse n+l Octet L

1 R
Adresse n Octet H mot H

Adresse n+l Octet L mot L


Représentation double mot
Adresse n+2 Octet H mot L

Adresse n+3 Octet L mot L

L = de poids faible
H = de poids fort
6.6.1 Ecriture dans une page *ire (OB 216)

Le bloc d'organisation OB 216 transmet un octet, un mot ou un double mot à


partir de l'ACCU 1 (cadré à droite) vers une page mémoire déterminée.

L'adressage de la page mémoire ainsi que le transfert de la donnée complète


(1/2/4 octets) constituent une unité de programme qui ne peut pas être
interrompue.

Paramètres:

1. ACCU 2-L: adresse de destination sur la page mémoire


valeurs possibles: 0-2047

2. ACCU 3-LL: no de la page mémoire actuelle


valeurs possibles: 0-255

3. ACCU 3 - M : indicatif de la donnée à transférer


valeurs possibles: O = octet
1 = mot
2 = double mot

brsque l'écriture sur la page mémoire se déroule avec succès,

- les contenus de l'ACCU 1 et de l'ACCU 3 demeurent inchangés,


- l'ACCU 2-L contient une valeur augmentée de 1/2/4 (en fonction de la
longueur de la donnée transférée),

- le RU est mis à "1"

- les autres indicateurs d'opérations sur bits et sur mots sont mis à
"O" (cf. indicateurs de résultat).

brsque l'écriture sur une page mémoire est impossible,

- les contenus de tous les accumulateurs demeurent inchangés,


- le RU est mis à "O",

- tous les autres indicateurs d'opérations sur bits et sur mots sont
également mis à "O".
B8577633-01

Indicateurs de résultat:

Indicateur + unité logique

FL1 FU OV OS OR ETAT RU; l.?

O: Erreur

1: Transfert
réussi

(pour indicateurs de résultat, cf. chapitre 3)

Erreurs possibles :

- mawais indicatif de longueur dans l'ACCU 3-IH

- adresse de destination sur la page mémoire erronée ou inexistante

- n o de la page mémoire indiqué n'existe pas

- aucune page mémoire n'existe

Contemi des a c ~ t e u r sa v a n t l'écriture

Octet H
Mot H
Octet L
- Octet H
Mot L
Octet L
-
ACCU 4 X x x x

lndicatif de long. N O de page


X X
j mémoire
Accu 3 O : Octet (8 bits) i O A 255
1 : Mot (16 bits)
2 : Double mot (32 bits) j -

Adresse (relative par rapport au début


de page)
Accu 2 x x 0...2047 lndicatif de longueur O (octet)
0...2046 lndicatif de longueur 1 (mot)
0...PO44 Indicatif de longueur 2 (double mot)
-- -

X i - Données (8 bits) -
ACCU 11- X o
-innées (16 bits)
Données (32 bits) 1
31 2 4 23 16 15 8 7 O
6.6.2 Iecture à partir d'une page mémoire (OB 217)

Le bloc d'organisation OB 217 transfère un octet, un mot ou un double mot à


partir d'une certaine page mémoire vers l'ACCU 1 (cadré à droite).

L'adressage de la page mémoire ainsi que le transfert de la donnée complète


(1/2/4 octets) constituent une unité de programme qui ne peut pas être
interrompue.

Paramètres

1. ACCU 2-L: adresse de source sur la page mémoire


valeurs possibles: O - 2047

2. ACCU 3 - U : no de la page mémoire actuelle


valeurs possibles: O - 255

3. ACCU 3-IH: indicatif de la donnée à transférer


valeurs possibles: O = octet
1 = mot
2 = double mot

brsque la lecture à partir de la page mémoire se déroule avec succès,

- l'ACCU 1 (cadré à droite) contient la valeur lue (le reste éventuel des
32 bits est effacé),

- le contenu de l'ACCU 3 demeure inchangé,


- l'ACCU 2-L contient une valeur augmentée de 1/2/4 (en fonction de la
longueur de la donnée transférée),
- le RU: est mis à "11',

- les autres indicateurs d'opérations sur bits et sur mots sont mis à
1'011

brsque la lecture à partir de la page mémoire est impossible,

- les contenus de tous les accumulateurs demeurent inchangés,


- le RIX; est mis à 11011,

- tous les autres indicateurs d'opérations sur bits et sur mots sont
également mis à "O1'.
Erreurs ~ossibles:

- mauvais indicatif de longueur dans l'ACCU 3-III

- adresse de source sur la page mémoire erronée ou inexistante

- n o de la page mémoire indiqué n'existe pas

- aucune page mémoire n'existe

Contenu des accumulateurs a p r è s la lecture

- Mot H - Mot L -
Octet H Octet L Octet H Octet L
Accu 4 x x x x

Accu 3
1 lndicatif de long. No de .page
! mémoire
O : Octet (6 bits) i O B 255
1 : Mot (16 bits)
2 : Double mot (32 bits) i

Adresse (relative par rapport au début


de page)
Accu 2 X X
0+1...2047+1 lndicatif de longueur O (octet)
0+2. ..2046+2 lndicatif de longueur 1 (mot)
0+4. ..2044+4 Indicatif de longueur 2 (double mot)

-i Données (8 bits)

ACCU Il--
I
O
O
Données (16 bits)

r Données (32 bits)


31 2 4 23 16 15 8 7 O
6.6.3 Rés-tiun d'accès à une page &ire (OB 218)

Le bloc d'organisation de fonction spéciale transfère le numéro d'emplace-


ment de "son" processeur à une page mémoire déterminée lorsque le contenu
de la cellule adressée sur cette page mémoire est égal à .
o
* Tant que ce
numéro d'emplacement demeure inscrit dans la cellule, l'accès à cette page
mémoire est réservée à un processeur précis et est interdit aux autres
processeurs.

Le bloc d'organisation OB 218 sert à la synchronisation du transfert de


données et revêt une importance particulière lorsqu'il s'agit d'émettre ou
de transférer d'un seul tenant des paquets de données de grande longueur:

L'adressage de la page mémoire, la lecture et l'écriture éventuelle du


numéro d'emplacement constituent une unité de programme quine peut pas
être interrompue.

Paramètres:

ACCU 1-L: adresse de destination de la cellule sur la page mémoire


valeurs possibles: O - 2047

ACCU 2 - U : numéro de la page mémoire actuelle


valeurs possibles: O - 255

(Les contenus des ACCUS 3 et 4 sont dans ce cas sans importance.)

Lorsque l'accès à la page mémoire se déroule avec succès (contenu de


l'adresse de destination # O),

- les contenus des accumulateurs demeurent inchangés,


- le RLG est mis à "ln,

- les autres indicateurs d'opérations sur bits et sur mots sont mis à "O".

Lorsque l'accès à la page mémoire est impossible (contenu de l'adresse de


destination # O),

- les contenus des accumulateurs demeurent inchangés,


- le RU3 est mis à "O",

- tous les autres indicateurs d'opérations sur bits et sur mots sont mis à
"O".
Erreurs possibles:

- Le contenu de l'adresse de destination n'est pas zéro.

- L'adresse de destination sur la page mémoire est incorrecte ou inexis-


tante.

- Le numéro de la page mémoire indiqué n'existe pas.

- Aucune page mémoire n'existe.

- Mot H - Mot L -
r x
Octet H Octet L Octet H Octet L
i No de .page
Accu 1 x x i mémoire
i O à 255

Adresse (relative par rapport au début


Accu 2 X
Exemple de progranmvl

Les mots-données 4 à 11 sont transférés à partir du DB 45 d'une CPU 928


dans le DX 45 (mots-données O à 7) d'une deuxième CPU 928 en passant par un
coordinateur C. TA synchronisation entre l'émetteur et le récepteur (fonc-
tionnement dtiprocesseur !) se fait par l'OB 218.

Page mémoire actuelle sur le coordinateur no 255

Cellule de coordination sur la page mémoire (réservation): adr. 53

Zone de transmission de données sur la page mémoire


(lecture et écriture): adr. 54-69

L KB 255 numéro de page mémoire


L KB 53 adresse cellule de coordination
SPA OB 218 transfert numéro d'emplacement d'enfichage dans
la cellule sur la page mémoire
SPB =MO01 lorsque RU: = 1 (transfert réussi), saut sur repère
BEA sinon, fin de bloc

ouverture du bloc de données source


2=indicatif de longueur double mot, no page mémoire
adresse de début sur page mémoire
écriture dans l'ACCU 3

mots-données 4 et 5 (= 4 octets)
transfert premier double mot
augmenter adresse de 4 (ACCü 2-L = 58)
TAK sauvegarder l'adresse de destination

L DD 6
SPA OB 216 transfert du deuxième double mot
TAK

L DD 8
SPA OB 216 transfert du troisième double mot
TAK

L DD 10
SPA OB 216 transfert du quatrième double mot
TAK

L KYO,255
L KB 53 adresse avec numéro d'emplacement d'enfichage
m
L KB O ACCU 1 = O
SPA OB 216 effacer numéro d'emplacement d'enfichage
--> libérer zone de transmission de données
L KB 255 numéro de page mémoire
L KB 53 cellule de coordination
SPA OB 218 réservation de la page mémoire par deuxième C W
SPB =MO02 si RU: = 1, saut sur repère
BEA

M002:AX DX 50 bloc de données de destination


L Kï2,255
L KB 54
ENT écriture dans ACCU 3
L KB O écriture dans ACCU 2

SPA OB 217 lecture du premier double mot


augmenter adresse de 4 (ACCU 2-L = 58)
transfert ACCU 1 vers mot-donnée O et 1

SPA OB 217 lecture du deuxième double mot


T DD 2

SPA OB 217 lecture du troisième double mot


T DD 4

SPA OB 217 lecture du quatrième double mot


T DD 6

L KYO,255
L KB 53 adresse avec no d'emplacement d'enfichage
ENT
L KB O ACCU 1 = 0
SPA OB 216 effacer numéro d'emplacement d'enfichage
--> libérer zone de transmission de données
6.7 Extension du signe (OB 220)

Cette fonction spéciale r é a l i s e l'extension du signe d'un nombre à virgule


fixe de 16 b i t s dans l'ACCU 1 - L au mot de poids f o r t (ACCü 1-H):

Lorsque l e b i t 215 = O (nombre p o s i t i f ) , l e mot de poids f o r t e s t chargé


avec l a valeur KH = 0000.

Lorsque l e b i t 215 = 1 (nombre négatif), l e mot de poids f o r t e s t chargé


avec l a valeur KH = FFFF.

Cette extension du signe e s t nécessaire a f i n de pouvoir étendre un nombre


négatif à virgule fixe de 16 b i t s à un nombre à virgule f i x e de 32 b i t s
avant sa conversion en un nombre à virgule f l o t t a n t e (32 b i t s , instruction
FDG) .

Temps d'exécution de l a fonction spéciale OB 220: 16 ys

Paramètres:

1. ACCU 1-L: nombre à virgule f i x e de 16 b i t s

Erreurs m s s i b l e s : néant
6.8 Fonctions système
6.8.1 Activation/désactivatiun de "l'inhibition générale des alarnies "
(OB 120) et de wllajoumemntgénéral des ahrmesw (OB 122)

ün programme STEP5 peut être interrompu en fin de bloc ou en fin d'instruc-


tion pour l'exécution de programmes de plus haute priorité. Aux niveaux de
traitement de priorité élevée, on trouve les programmes d'alarmes (déclen-
ché par alarmes process) et les programmes d'horloge (déclenché par les
alarmes d'horloge). Le temps d'exécution du programme interrompu est alors
augmenté du temps d'exécution des programmes d'alarmes et d'horloge.

Les blocs d'organisation de fonctions spéciales OB 120 et OB 122 permettent


d'éviter l'interruption du programme à la fin d'un ou plusieurs blocs/ins-
tructions successifs par les alarmes process et d'horloge.

OB 120: Activatian/hctivatïcm de "l'inhibitiai générale des alarmesw

Ce bloc fonctionnel exerce une influence sur l'enregistrement des alarmes

"Activation de 1'inhibition des alarmes" signifie que dorénavant aucune


alarme ne sera plus enregistrée et que les alarmes déjà enregistrées (par
ex. celles qui attendent que le programme soit parvenu en fin de bloc) sont
effacées. Siun OB 2 (alarme process ou un OB d'alarme horloge est en
cours. celui-ci sera exécuté dans sa totalité.

"Désactivation de l'inhibition des alarmes" signifie que dorénavant toutes


les alarmes qui se présentent sont enregistrées et que les programmes
correspondants seront insérés dès que l'exécution du bloc ou de l'instruc-
tion en cours sera terminée.

OB 122: Activaticm/désactivation & "l'ajournement générai des alarmesw

Ce bloc d'organisation exerce une influence sur le traitement des alarmes.

"Activation de l'ajournement des alarmesw signifie que les alarmes qui se


présentent continuent d'être enregistrées et que les alarmes déjà exis-
tantes restent enregistrées, mais que ces alarmes ne sont pas traitées pour
l'instant. En d'autres termes, les fins de bloc et d'instruction sont
masquées pour le traitement des alarmes process et d'horloge. Si un OB 2
(alarme process) ou un OB d'alarme d'horloge est en cours, celui-ci sera
exécuté dans sa totalité.

"Désactivation de l'ajournement des alarmes1'signifie que toutes les


alarmes enregistrées seront traitées à la fin du bloc ou de l'instruction
en cours.

1) Si un même OB d'alarme d'horloge est appelé une deuxième fois durant la


période d'ajournement des alarmes, cela se traduit par une erreur de
traitement d'alarmes d'horloge.
Les OB 120 et 122 inscrivent les alarmes à inhiber ou à ajourner dans un
mot de cammnde ayant l'affectation suivante:

Bit :'2 Alarmes d'horloge

Bit 2 : Alarmes process

Bit 21,23 à 231: réservés, ces bits doivent être à "O".

Il en découle:
Tant que le bit '2 = 1, toutes les alarmes d'horloge sont inhibées ou
ajournées.
Tant que le bit 22 = 1, toutes les alarmas process sont inhibées ou ajour-
nées.
Tant que les bits 2O et 22 = 1, toutes les alarmes d'horloge et toutes les
alarmes process sont inhibées ou ajournées.

Paramètres:

1. Accu 2-L: Indicatif de fonction


valeurs admises: 1, 2 ou 3

2. Accu 1: Nouveau mot de commande ou masque

Accu 2-L Accu 1 Fonction:


avant après

1 Mot de Mot'de Le contenu de l'accu 1 est transféré


commande commande dans le mot de commande

2 Masque Nouveau Tous les bits à "1" dans le masque se


mot de trouvant dans l'accu 1 sont mis à
cde "1" dans le mot de commande. Le nou-
veau mot de commande est chargé dans
l'accu 1.

3 Masque Nouveau Tous les bits qui sont à "1" dans le


mot de masque se trouvant dans l'accu 1
commande sont mis à "O" dans le mot de com-
mande. Le nouveau mot de commande
est chargé dans l'accu 1.

Erreurs mssibles :

- Indicatif de fonction incorrect dans l'accu 2-L.

- L'un des bits réservés (21,23 à 231) est à "1" dans l'accu 1.
En présence d'une erreur, l'OB 31 est appelé, et l'un des indicatifs d'er-
reur suivants est chargé dans l'accu 1.

1A47H pour OB 120


1A48H pour OB 122
- L'état du mot de commande peut être lu par la séquence de programme
suivante:
1. Charger l'indicatif de fonction 2 ou 3 dans l'accu 2-L
2. Charger la valeur "O" dans l'accu 1
3. Appeler l'OB 120/122
4. Lire le contenu de l'accu 1.

- L'état du traitement des alarmes peut être déterminé par la lecture des
rnots de données système BS 131 et BS 132.

BS 131 mot de commande "inhibition des alarmes" (OB 120)


BS 132 mot de commande "ajournement des alarmes1' (OB 122)

- L'inhibition et la validation des alarmes de process peut également


s'effectuer par les instructions AS et AF au lieu de l'OB 120:

AS correspond à :L KB2
:L KM0000000000 00000100
:SPA OB120

AF correspond à :L KB3
:L KM0000000000 00000100
:SPA OB120

6.8.2 Activation/désactivation de "1' inhibition sélective d1a2armes


d'horlogew (OB121) et de "l'ajournement sélectif d'alarmes
d'horlogew (OB 123)

Les blocs d'organisation de fonctions spéciales OB 121 et OB 123 per-


mettent d'éviter l'interruption du programme à la fin d'un ou plusieurs
blocs/instructions successifs par certains OB d'alarmes d'horloge. Cette
fonction vous permet p.ex. d'empêcher l'interruption d'une certaine partie
du programme par un OB 10 (10 ms) et par un OB 11 (20 ms), les autres OB
d'alarmes d'horloge étant traités comme d'habitude.

OB 121: Activatiai/kctivation de wl'inhibiticm sélective d'aïames


d'bor1ogeU

Ce bloc fonctionnel exerce une influence sur l'enregistrement des alarmes


d'horloge.

"Activation de 1'inhibition sélective d'alarmes d'horloge" signifie que


dorénavant aucune alarme d'horloge ne sera plus enregistrée et que les
alarmes d'horloge déjà enregistrées (par ex. celles qui attendent que le
programme soit parvenu en fin de bloc) sont effacées. Si un OB d'alarme
d'horloge est en cours, celui-ci sera exécuté dans sa totalité.

"Désactivation de l'inhibition sélective d'alarmes d'horloge1'signifie que


dorénavant toutes les alarmes d'horloge qui se présentent sont enregistrées
et que les programmes correspondants seront insérés dès que l'exécution du
bloc ou de l'instruction (suivant le paramétrage du DX O) en cours sera
terminée.
OB 123: Activatioa/âésactivati<m de wl'ajournement sélectif d'alarmes
d'horlogew

Ce bloc d'organisation exerce une influence sur le traitement des alarmes


d'horloge.

"Activation de l'ajournement sélectif d'alarmes d'horloge" signifie que les


alarmes d'horloge qui se présentent continuent d'être enregistrées et que
les alarmes d'horloge déjà existantes restent enregistrées, mais que ces
alarmes d'horloge ne sont pas traitées pour l'instant. En d'autres termes,
les fins de bloc et d'instruction sont masquées pour le traitement des
alarmes d'horloge. Si un OB d'alarme horloge est en cours, celui-ci sera
exécuté dans sa totalité.

"Désactivation de l'ajournement sélectif d'alarmes d'horloge" signifie que


toutes les alarmes d'horloge enregistrées seront traitées à la fin du bloc
ou de l'instruction en cours (suivant le paramétrage du DX O).

Les OB 121 et 123 inscrivent les alarmes d'horloge à inhiber ou à ajourner


dans un mot de commande ayant l'affectation suivante:

Bit 20 doit être à "0"


Bit '2 doit être à "O"
Bit 22 doit être à "0"
Bit 23 alarme d'horloge 10 ms (OB 10)
Bit 24 alarme d'horloge 20 ms (OB 11)
Bit 25 alarme d'horloge 50 ms (OB 12)
Bit 26 alarme d'horloge 100 ms (OB 13)
Bit '2 alarme d'horloge 200 ms (OB 14)
Bit 28 alarme d'horloge 500 ms (OB 15)
Bit '2 alarme d'horloge 1 s (OB 16)
Bit 210 alarme d'horloge 2 s (OB 17)
Bit
''2 alarme d'horloge 5 s (OB 18)
Bit 212 doit être à "0"
Bit 213 doit être à "0"
Bit 214 doit être à "0"
Bit 215 doit être à "0"

Tant qu'un bit est à "l", l'alarme d'horloge correspondante est inhibée ou
ajournée.

Paramètres:

1. Accu 2-L: Indicatif de fonction


valeurs admises: 1, 2 ou 3

2. Accu 1: Noweau mot de commande ou masque


Accu 2-L Accu 1 Fonction:
avant après

1 Mot de Mot de Le contenu de l'accu 1 est transféré


cormiiande commande dans le mot de commande

2 Masque Nouveau Tous les bits à "1" dans le masque se


mot de trouvant dans l'accu 1 sont mis à
cde "1" dans le mot de commande. Le nou-
veau mot de commande est chargé dans
l'accu 1.

3 Masque Nouveau Tous les bits à "1" dans le masque


mot de se trouvant dans l'accu 1 sont mis
commande à "0" dans le mot de commande. Le
nouveau mot de commande est chargé
chargé dans l'accu 1.

Erreurs mssibles:

- Indicatif de fonction incorrect dans l'accu 2-L.


- L'un des bits réservés est à "1" dans l'accu 1.

En présence d'une erreur, l'OB 31 est appelé, et l'un des indicatifs d'er-
reur suivants est chargé dans l'accu 1.

1A4AH pour OB 121


1A4BH pour OB 123

Nota :

- L'état du mot de commande peut être lu par la séquence de programme


suivante:
1. Charger l'indicatif de fonction 2 ou 3 dans l'accu 2-L
2. Charger la valeur "O" dans l'accu 1
3. Appeler l'OB 121/123
4. Lire le contenu de l'accu 1.

- L'état du traitement des alarmes d'horloge peut être déterminé par


la lecture des mots de données système BS 135 et BS 137.

BS 135 mot de commande "inhibition sélective des alarmes d'horloge1'


(OB 121)
BS 137 mot de commande "ajournement sélectif des alarmes d'horloge1'
(OB 123)
6.8.3 Réglage du temps de cycle (OB 221)

En appelant cette fonction spéciale il est possible de régler le temps de


cycle maximal (réglé de façon standard sur 150 ms) sur une autre valeur.
L'appel de cet OB s'accompagne du réarmement du chien de garde: le cycle
actuel c.-à-d. le cycle au cours duquel l'OB 221 est appelé pour la
première fois, est allongé de la valeur nouvellement réglée, à compter du
moment de l'appel de la fonction spéciale. Le temps de cycle maximal de
tous les cycles suivants correspond à la nouvelle valeur réglée (= la
valeur de temps chargé dans l'ACCU 1).

Paramètres:

1. ACCU 1: nouveau temps de cycle (en millisecondes)


valeurs possibles: 1 m s - 6000 ms

Erreur ~ossible:

- Le temps de cycle indiqué ne se situe pas dans la gamme 1...6000 ms.

Remarque :

Pour des raisons de compatibilité, la fonction spéciale OB 221 a été re-


prise du processeur S, mais ne devrait pas être programmée dans la CPU 928.
Ce réglage devrait s'opérer en paramétrant le DX O (cf. chapitre 7).

6.8.4 Ré . a t âu chien de garde (OB 222)

La fonction spéciale OB 222 donne lieu à un réarmement du chien de garde,


c.-à-d.que le contrôle du temps de cycle reprend au début. ~râceà l'appel
de cette fonction spéciale, le temps de cycle maximal admissible est pro-
longé de la valeur réglée (en standard de 150 m s , ou de la valeur paramé-
trée dans le DX O) à compter du moment de l'appel.

Paramètres: néant

Erreurs possibles : néant


6.8.5 Comparaisun des Qpes de clhamage (OB 223)

L'appel de l'OB 223, p. ex. en cours de démarrage ou au début de l'exécu-


tion du programme cyclique, permet de contrôler en mode multiprocesseur, si
les types de démarrage de tous les processeurs concernés sont identiques.

Si cela n'est pas le cas, le processeur au sein duquel l'OB 223 a été
appelé décèle une erreur de temps d'exécution. L'OB 31 est appelé; l'accu 1
contient le code d'erreur 1A3B (hexa). Si l'OB 31n'est pas programmé, le
processeur passe en STOP et génère le message d'erreur DPT. Sa LED STOP
clignote lentement. Les autres processeurs passent en STOP avec allumage
feu fixe de leur LED STOP.

Paramètres: néant

Erreurs mssibles: néant

6.8.6 t o scouplage (OB 224)


Ransfert en bloc de n k n ~ ~ ~ de

En fonctionnement multiprocesseur, les mémentos de couplage indiqués dans


le DB.1 sont transférés lorsque le processeur reçoit le signal lui indi-
quant qu'il a le droit d'accéder au bus de périphérie.

brsque plusieurs processeurs désirent y accéder simultanément, le coordi-


nateur accorde successivement à chaque processeur un signal d'accès au bus
(voir figure). A cette occasion, chaque processeur n'a le droit de transfé-
rer qu'un octet. Cette transmission fractionnée peut entraîner une
perte de cohérence des informations transmises par un groupe de mémentos de
couplage.

L'appel du bloc d'organisation OB 224 donne lieu à un transfert par blocs


de tous les mémentos de couplage indiqués dans le DB 1 du processeur
concerné: tant que le processeur est en train de réaliser le transfert des
mémentos de couplage, il ne peut pas être interrompu par un autre proces-
seur. Etant donné que le processeur suivant doit attendre avant de pouvoir
procéder au transfert, l'exécution de programme cyclique est retardée en
conséquence (temps de cycle!).

L'OB 224 assure ainsi la cohérence des mémentos de couplage. Il doit être
appelé dans le programme de démarrage, à savoir
a) dans tous les processeurs participant au transfert des mémentos de
couplage et
b) dans chaque type de démarrage utilisé.

Paramètres: néant

Erreurs mssibles: néant


Remarque :

Pour des raisons de compatibilité, la fonction spéciale OB 224 a été re-


prise du processeur S, mais elle ne devrait pas être programmée dans la
CPU 928. La sélection de ce mode de transfert devrait s'opérer en paramé-
trant le DX O (cf. chapitre 7).

6.8.7 Lecture d'un mot dans l e progranme système (OB 226)

Le programme système du processeur a une longueur de 64 x 21° mots et se


situe dans une zone de mémoire à laquelle l'utilisateur ne peut pas accéder
au moyen des instructions STEP5. C'est à l'aide de l'OB 226 qu'il est
possible d'accéder à cette zone de mémoire.

Paramètres:

1. ACCU 1-L: adresse de la cellule mémoire du programme système à lire

Erreurs wssibles: néant

A la suite de l'appel de l'OB 226,

- le mot lu se trowe dans l'ACCU 1 (cadré à droite),

- le reste de'l'ACCU 1 est effacé,


- le contenu précédent de l'ACCU 1 (c.-à-d. l'adresse de mot) se trowe
dans l'ACCU 2,

- le contenu précédent de l'ACCU 2 est perdu.

Pour l'utilisation de l'OB 226, veuillez tenir compte de la description de


l'OB 227 et de l'exemple de programme y afférent.
6.8.8 Lecture ctu checksua du propuune système (OB 227)

Le bloc d'organisation de fonction spéciale OB 227 charge dans l'accu 1 le


checksum de la zone mémoire du programme système.

Paramètres: néant

Erreurs wssibles : néant

A la suite de l'appel de l'OB 227,


- le checksum lu (1 mot) se trouve dans l'ACCU 1 (cadré à droite),

- le contenu restant de l'ACCU 1 est effacé,


- le contenu précédent de l'ACCU 1 se trouve dans 1'ACCü 2,
- le contenu précédent de l'ACCU 2 est perdu.

Utilisation :

Au cours de l'exécution du programme cyclique, le contenu du programme


système peut être contrôlé

- en lisant les différentes cellules mémoire du programme système au moyen


de l'OB 226,

- en additionnant toutes les cellules mémoire par l'addition en virgule


fixe (instruction +F),

- en lisant le checksum à l'aide de l'OB 227 et

- en comparant ensuite la somme obtenue par l'addition en virgule fixe avec


le checksurn lu.
Exemple de prc-?

NOM: CHECKSüM

:L KHOOOO
:T MW254 Effacement des mémentos du checksum
:T MW252 Effacement du compteur d'adresses

MO01 :SPA OB222 Réarmement du chien de garde


:L MW252 Chargement de l'adresse de la cellule mémoire à lire
:SPA OB226 Lecture du mot
:L MW254 Chargement des mémentos du checksum
:+F Addition
:T MW254 Mémorisation des mémentos du checksum

:L MW252 Incrémentation du compteur d'adresses


:L KF+1
:+F
:T MW252

:L KHOOOO Si compteur d'adresses # O,


:x F
:SPB =MO01 saut sur repère MO01

:SPAOB227 Si compteur d'adresses = O, lire le checksum


:L MW254 Chargement des mémentos du checksum
: !=F Si égalité, fin de bloc
:BEB

:STP Si inégalité, instruction STP = mise en STOP


:BE
6.8.9 Uxture de l1 inf-tion d'état ccnicernant le niveau de traitement
üu programne (OB 228)

A l'apparition d'un certain événement, le programme système appelle le


niveau de traitement correspondant du programme. Ce niveau de traitement
est alors 'activé1.

Le bloc d'organisation OB 228 permet de constater si à un instant donné un


certain niveau de traitement est activé ou non. On chargera dans l'accu 1
le nimiéro du niveau de traitement dont on veut connaître 1' état. (Le numéro
correspond à celui figurant dans la ITPILE sous "NNEAU1'ou "ADR-VEC",
suivant le logiciel utilisé) .

b r s de l'appel de l'OB 228, celui-ci charge dans l'accu 1 l'information


d' état concernant le niveau de traitement spécifié .
Paramètres:

1. ACCU 1-L: Numéro du niveau de traitement de programme


(cf. ITPILE, NNEAU)

valeurs possibles (hexadécimales):


02 = démarrage
04 = cycle
06 = alarme d'horloge 5 s
08 = alarme d'horloge 2 s
OA = alarme d'horloge 1 s
OC = alarme d'horloge 500 ms
OE = alarme d'horloge 200 ms
10 = alarme d'horloge 100 ms
12 = alarme d'horloge 50 ms
14 = alarme d'horloge 20 ms
16 = alarme.d'horloge 10 ms
18 = non affecté
1.A = non affecté
1C = régulateur
1E = non affecté
20 = non affecté
22 = non affecté
24 = alarme process
26 = non affecté
28 = non affecté
2A = non affecté
2C = abandon
2E = non affecté
30 = erreur de traitement d'alarme d'horloge
32 = erreur de traitement de régulateur
34 = dépassement du temps de cycle
36 = non affecté
38 = code d'opération incorrect
3A = erreur de temps d'exécution
3C = erreur d'adressage
3E = retard d'acquittement
40 = non affecté
42 = non affecté
44 = redémarrage manuel
46 = redémarrage automatique
Erreurs m s s ibles: néant

Après l'appel de l'OB 228

- l'accu 1 contient l'information d'état:


contenu de l'accu 1 = 0: le niveau de traitement spécifié n'est
actif

contenu de l'accu 1 # O: le niveau de traitement est activé

- le contenu précédent de l'accu 1 se trowe dans l'accu 2,

- le contenu précédent de l'accu 2 est perdu.

Ceci permet de rendre tributaire l'exécution du programme de l'état d'un


autre niveau de traitement.

Exemple:

Un retard d'acquittement doit être ignoré au démarrage mais pas aux autres
niveaux de traitement.

Au début de l'OB 23, appeler le bloc d'organisation OB 228 pour constater


si le niveau de traitement DENMGAGE (numéro 02) est activé ou non au
moment de l'apparition du retard d'acquittement. La suite du traitement
dépendra de 1'information d'état reçue :

ACCU 1 = O: DENMGAGE non actif -> ACQ n'est pas apparu au démarrage
-> le programme de réaction à ACQ doit
être traité

ACCU 1 # O: DEMARRAGE activé -> ACQ est apparu au démarrage


-> ACQ peut être ignoré

L'OB 228 vous permet ainsi de réagir de façon différenciée à l'apparition


d'un défaut.
6.9 Fonctions pour les blocs fonctionnels standard
(OB 230 à OB 237)
Les blocs d'organisation de fonction spéciale OB 230 à OB 237 sont réservés
aux fonctions de manipulation et ne peuvent être appelés qu'au sein des
blocs fonctionnels standard FB 120 à FB 127.

Ces blocs fonctionnels standard - les "blocs de dialoguew- servent à la


gestion de l'échange des données via les pages mémoire en fonctionnement
monoprocesseur et en mode multiprocesseur: ils sont utilisés pour l'appel
et la transmission de données, de paramètres et dlinformationsde commande
en provenance ou à destination des processeurs de communication.

Bloc fonctionnel OB de Bloc de


standard fonction spéciale dialogue

FB 120 SF-OB 230 SEND


-

FB 121 SF-OB 231 RECEIVE

FB 122 SF-OB 232 FETCH

FB 123 1 SF-OB 233

FB 126 1 SF-OB 236 1 SEND AIL


--

FB 127 SF-ûB 237 RECEIVE AIL

L'utilisation des blocs de manipulation pouvant être commandés en tant que


logiciel sur disquette, est décrite en détail dans l'instruction "Automate
programmable S5-135U, blocs de dialogue pour le processeur R et CPU 928"
(no de référence C79000-B8577-C366-02).
6.18 Registres à décalage
Un registre à décalage logiciel comprend des cellules mémoire 8 bits juxta-
posées; il peut avoir une longueur entre 2 et 256 cellules mémoire.

Les registres à décalage sont installés dans la RAM des DB. A chaque
registre est associé un bloc de données bien défini: ils portent tous deux
le même numéro (valeurs admises: 192 à 255). Si vous avez p. ex. installé
un registre à décalage portant le numéro 210, les données correspondantes
se trowent dans le bloc de données DB 210.

La RAM DB comprend 23 lunots (adresse KH 8000 à KH DD7F). Cette zone con-


tient les blocs de données copiés au moyen des OB 254 et 255 (à partir de
KH 8000, en ordre croissant) et les registres à décalage installés par
l'utilisateur (à partir de KH DDIIF, en ordre décroissant). S'il se produit
un débordement de capacité de la RAM DB lors de la copie de DB ou lors de
l'installation de registres à décalage, le processeur constate la présence
d'une erreur de temps d'exécution et appelle l'OB 31. La réaction ulté-
rieure dépend de la programnation de 1'OB 31 (cf. "Autres erreurs de temps
d'exécution") .

Il est possible d'écrire et de lire des données dans le registre à déca-


lage. Ceci est rendu possible par les"pointeursw:les pointeurs sont des
octets de mémentos qui contiennent le contenu de certaines cellules d'un
registre à décalage.

Les représentations suivantes démontrent le principe du registre à décalage


logiciel.

Pointeur 1 Pointeur 2 Pointeur 3

Mémento O
Mémento 1
Mémento 2

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2

Figure 6.1: Schéma de princi~edu resristre à décalage comprenant


3 minteurs et 12 cellules mémoire
Le premier pointeur (= pointeur de base) est positionné de façon fixe sur
la première cellule mémoire du registre à décalage. Le numéro de cet octet
de mémentos doit être défini par l'utilisateur. Les autres pointeurs sont
alors positionnés de façon relative par rapport à ce pointeur de base, le
nombre de pointeurs par registre à décalage powant être compris entre 1 et
6.

b r s du traitement d'un registre à décalage, l'information est transférée


octet par octet d'une cellule mémoire à la prochaine (cf. figure), tout
corne c'est le cas du registre à décalage matériel. Chaque appel de la
fonction de registre à décalage donne lieu à un décalage de l'information
d'exactement 1 cellule mémoire (= 1 pas). Les pointeurs sont alors chargés
avec de nouveaux contenus. L'information est "poussée1'au travers du re-
gistre à décalage entier, jusque dans la dernière cellule mémoire comme
représenté par les flèches dans les schémas. Arrivée dans la dernière
cellule, elle est de nouveau transférée dans la cellule mémoire 1 (dans le
cas du registre à décalage représenté, donc à la suite de 12 pas).

Les schémas suivants représentent le décalage de l'information au sein d'un


registre à décalage.

Avant d'appeler la fonction spéciale, les mémentos sont mis à "1" dans les
pointeurs :

mise à 1 du mémento O du pointeur 1 :S MO .O


mise à 1 du mémento 3 du pointeur 2 :S Mi.3
mise à 1 du mémento 2 du pointeur 3 :S M2.2

Ensuite, appel de la fonction de registre à décalage :SPA OB 241

Pointeur 1 Pointeur 2 Pointeur 3

Mémento O
Mémento 1
Mémento 2

Figure 6-2: Schéma de principe du renistre à décalane avec 3 minteurs


et 12 cellules mémoire avant le premier pas
A la suite de l'appel de la fonction spéciale, l'information de 8 bits des
cellules mémoire a été déplacée d'une cellule:

Pointeur 1 Pointeur 2 Pointeur 3

Figure 6-3: Schéma de ~rincipedu registre à décalage avec 3 pointeurs


et 12 cellules mémoire à la suite du premier oas de déca-

L'information qui se trouve maintenant dans les pointeurs peut être


exploitée par : L I 5 0 etc.

Les mémentos 0, 3 et 2 peuvent être testés au niveau du pointeur de base:


il est ainsi possible d'évaluer, au niveau du pointeur de base, l'informa-
tion complète résultant des inscriptions dans tous les pointeurs (dans
l'exemple, ceci peut être réalisé pour la première fois à la suite de 12
pas de décalage).

Au cas où MUS désireriez utiliser un registre à décalage, vous disposerez


alors de 3 blocs d'organisation de fonctions spéciales:

OB 240: cette fonction réalise l'initialisation d'un registre à décalage.

OB 241: cette fonction assure le traitement d'un registre à décalage.

OB 242: cette fonction procède à l'effacement d'un registre à décalage.


6.10.1 Initïaïisatiai du registre à décalage (OB 240)

Avant de pouvoir traiter un registre à décalage, il faut que celui-ci soit


initialisé. Pour ce faire, il suffit d'appeler une seule fois l'OB 240, de
préférence au sein d'un bloc d'organisation de démarrage/redémarrage.

Les paramètres requis par l'OB 240 pour l'installation d'un registre à
décalage sont contenus dans un bloc de dunnées portant le numéro du re-
gistre à décalage devant être initialisé. Les numéros entre 192 et 255
pewent donc être utilisés pour les DB.

Le bloc de données est structuré selon un principe déterminé qui doit im-
pérativement être respecté. Il peut avoir une longueur de 9 mots-données au
maximum (DU O à DU 8).

Les différents mots de données doivent être affectés comme suit:

ZIongueur du registre à décalage (octets)

Numéro du premier octet de mémentos

Distance n2

Distance n3

Distance ,n

Distance n5

Distance n6

Figure 6-4: Structure du bloc de données d'initialisation d'un registre à


décalage

Mot de donnée 0: doit toujours avoir le contenu O.

Mot de donnée 1: la longueur du registre à décalage est égale au nombre


(en octets) de cellules mémoire du registre à décalage.
Elle peut être comprise entre 2 et 256.
Mot de donnée 2: le numéro du premier octet de mémentos détermine le
pointeur de base et ainsi le bloc de mémentos qui est
assigné aux pointeurs. brsque vous paramétrez p.ex.
deux pointeurs, il s'agira en fait de trois pointeurs
(deux plus le pointeur de base). Dans ce cas, l'octet de
mémentos défini dans le bloc de données ainsi que les
deux octets de mémentos suivants sont réservés.
Veillez à ce qu'un nombre de mémentos suffisant soit
disponible, jusqulàla fin du bloc de mémentos, pour
tous les pointeurs paramétrés.

Mots de donnée 3
jusuu'à 7 au max.: distances (en octets) des pointeurs au pointeur de base:

n2 =
distance entre le pointeur 2 et le pointeur de
base
n3 = distance entre le pointeur 3 et le pointeur de
base
n4 = distance entre le pointeur 4 et le pointeur de
base
etc.
(5 valeurs de distance au maximum)

Mot de donnée après


la dernière dis-
tance du pointeur: (dans l'exemple DW 8) doit toujours avoir le contenu O.

Lorsque seuls deux autres pointeurs sont paramétrés en


plus du pointeur de base, le 'O' se trouve dans le mot-
donnée DW 5, etc.

Toutes les indications se font par nombres à virgule fixe.

- Ie nanbre de pointeurs (y compris pointeur de base) ne doit pas être


supérieur à La longueur du registre à décalage!

- La distance entre un pointeur e t l e pointeur & base ne doit pas être


supérieure à la longuein: du registre à décalage!

- Ie mot de ciormée DV O e t l e niot de donnée suivant la dernière distance au


pointeur de base doivent toujours avoir l e contenu O.

- Ie bloc de données doit être programmé e t appelé avant l'appel de


l'OB 2401

L'appel de l'OB 240 donne alors lieu à la réservation et à l'initialisation


d'une certaine zone mémoire en fin de RAM DB, par les informations de ce
bloc de données.
Ca~acitémémoire:

Chaque registre à décalage nécessite

n = longueur de registre à décalage/2 + 8 mots de données,

c.-à-d. que la longueur de la RAM DB d'iminue de n m t s de données,


l'adresse finale de la RAM DB se déplaçant vers les adresses inférieures.

brsqu'on initialise un registre à décalage qui existe déjà, la zone déjà


occupée se trouve de nouveau initialisée lorsque le nouveau registre et le
registre existant ont la même longueur. Dans le cas contraire, 1 'ancienne
zone est déclarée non valide et une nouvelle zone est ouverte.

Paramètres:

1. bloc de données appelé


valeurs possibles: no DB 192 à 255

Erreurs ~ossibles:

- Numéro de bloc de données incorrect (< 192, > 255).


- La capacité mémoire disponible de la RAM DB ne suffit pas.
- Erreur formelle de la structure du bloc de données.
- Longueur indiquée du registre à décalage incorrecte.
- Erreur de paramétrage au niveau des pointeurs.

En cas d'erreur, le processeur reconnaît t e erreur de temps d'exécution et


il appelle l'OB 31. La réaction à cette erreur dépend de la programmation
de l'OB 31 (cf. 'Autres erreurs de temps d'exécution').
Lorsque l'OB 31 n'a pas été programmé, le processeur passe en STOP. L'ACCU
1 contient des codes d'erreurs fournissant des détails supplémentaires
quant à l'erreur apparue.
6.10.2 Traitenent & registre à décaiage (OB 241)

Le bloc d'organisation OB 241 sert au traitement d'un registre à décalage


venant d'être initialisé au moyen de l'OB 240.

64 registres à décalage au maximum peuvent être appelés dans la CPU 928.

Paramètres:

1. ACCU 1-L: numéro du registre à décalage devant être traité


valeurs possibles: 192 - 255

Avant l'appel de l'OB 241, certains mémentos sont normalement mis à l/remis
à O dans les pointeurs.

A chaque appel de l'OB 241, l'information est décalée, octet par octet,
d'une cellule mémoire dans la cellule immédiatement suivante, et les poin-
teurs sont chargés avec de nouveaux contenus. ~râceà l'appel réitéré de
l'OB 241, l'information peut être déplacée au travers du registre à déca-
lage complet, jusque dans la dernière cellule mémoire d'où elle est re-
transférée dans la cellule mémoire 1.

A la suite de l'appel de l'OB 241, les pointeurs (6 au maximum par registre


à décalage, dont 5 peuvent être positionnés de façon quelconque par rapport
au sixième qui est le pointeur de base) contiennent alors l'information de
la cellule mémoire précédente. Cette information peut alors être exploitée.

Cas d'erreurs :

- Numéro de registre à décalage incorrect dans l'ACCU 1.


- Registre à décalage pas initialisé.

En cas d'erreur, le processeur reconnaît une erreur de temps d'exécution et


il appelle l'OB 31. La réaction à cette erreur dépend de la programmation
de l'OB 31 (cf. 'Autres erreurs de temps d'exécution').
brsque l'OB 31 n'a pas été programné, le processeur passe à l'arrêt.
L'ACCU 1 contient des codes d'erreurs fournissant des détails supplémen-
taires quant à l'erreur apparue.
6.10.3 Effacement du registre décaïage (OB 242)

Cette fonction spéciale permet d"'effacerW un registre à décalage de la RAM


de blocs de données: l'inscription dans la liste d'adresses DB O est effa-
cée, et le registre à décalage correspondant dans la RAM DB est déclaré non
valide (attention: les registres à décalage effacés occupent malgré tout de
la place mémoire!).

Paramètres:

1. ACCU 1-L: numéro du registre à décalage devant être effacé


valeurs possibles: 192 - 255

Après l'appel de l'OB 242, le registre à décalage est effacé et ne peut


plus être utilisé; pour pouvoir être réutilisé, il doit de nouveau être
initialisé.

Erreurs w s sibles:

- Numéro de registre à décalage incorrect dans l'ACCU 1.


- Registre à décalage pas initialisé.

En cas d'erreur, le processeur reconnaît une erreur de temps d'exécution et


il appelle l'OB 31. La réaction à cette erreur dépend de la programmation
de l'OB 31 (cf. 'Autres erreurs de temps d'exécution').
ïorsque l'OB 31 n'a pas été programmé, le processeur passe à l'arrêt.
L'ACCU 1 contient des codes d'erreurs fournissant des détails supplémen-
taires quant à 1 'erreur apparue.
6.11 Régulation: algorithme PID
Ce chapitre ne s'adresse qu'aux utilisateurs qui désirent
travailler avec des régulateurs PID!
Pour tous les autres cas d'application, les informations
suivantes sont sans importance!

Dans la CPU 928 de l'AG 135U, vous pouvez appeler un ou plusieurs régula-
teurs PID.

Chaque régulateur doit être initialisé dans le bloc d'organisation de


démarrage. La transmission des paramètres est assurée par l'intermédiaire
d'un bloc de données.

L'algorithme de régulation proprement dit est intégré dans le programme


système et peut être appelé par l'utilisateur en tant que bloc d'organisa-
tion. L'interface de données entre l'algorithme de régulation et le pro-
gramme d'application est également constituée par un bloc de données.

Description fonctionnelle du régulateur PID

Z Entrée manuelle : IntroductiondeYH, lorsque S3 sur O


IntroductiondeYH, lorsque S3 sur 1
.....................................
1
1

I
I
1 1
I 1
I1

I !
I
I 1
t1 11
I
I
I
I
I
1
1 I
w ; 1

X
1

I
; Algorithme dY
,i1.-....
LS :j

1 .;
dYA (S3 sur 1)
.
PID *.-*
, S3 / YA(S3sur O)
O[ 'xw- Y
O
1
1 .\....
.*=- *
1
1 1
1

xz / I'**S1 . . 1

I
1 1 I
1
1
L------------------------------- .......................................... 1

CP GS CTI CTD

Figure 6-5: Schéma fonctionnel du rédateur PID


B8577633-01

Indice k: kiPme échantillonnage

Comtateur Position Effet

S1 Le signal d'écart XWk est appliqué


bit STEXJ 1 au sonunateur
1 Un autre signal peut être appliqué au
s m t e u r par XZ.

S2 O Mode manuel
bit STEü O 1 Mode automatique

S3 O Algorithme de position
bit STEü 3 1 Algorithme de vitesse

S4 O Avec action anticipatrice


bit STEü 4 1 Sans action anticipatrice

b r s du paramétrage du régulateur PID, la fonction correspondant aux posi-


tions des commutateurs représentés sur le schéma-bloc est obtenue par la
mise à "1" ou à "O" des bits correspondants du mot de commande STEU. Le
régulateur à action progressive est conçu pour des systèmes réglés rapides,
tels qu'ils se présentent dans les processus industriels sous forme de
régulations de pression, de température ou de débit.

Le régulateur est basé sur un algorithme PID. Son signal de sortie peut
être émis soit en tant que grandeur de réglage (algorithme de position)
soit sous forme de variation de grandeur de réglage (algorithme de vi-
tesse).

Les différentes actions P, 1 et D peuvent être supprimées en mettant à "0"


les cellules correspondant aux paramètres respectif GS, CTI et CTD.
Il est ainsi possible de réaliser facilement toutes les structures de
régulateur souhaitées, telles que des régulateurs PI, PID ou PD.

Il est possible d'appliquer au sommateur soit le signal d'écart XW soit,


par l'entrée XZ, une grandeur pertubatrice quelconque ou la valeur de
mesure inversée -x.

Pour le cas où une commande anticipée de l'organe de réglage, sans réponse


temporelle, est souhaitée pour compenser une influence d'une grandeur
pertubatrice, il est possible d'appliquer à l'algorithme de régulation une
grandeur pertubatrice Z mesurable dans le processus. En mode manuel, la
grandeur de réglage YN présélectionnée est reprise à cet endroit.

brsqulun sens de régulation inverse est requis, il faut introduire une


valeur CP négative.

brsque la valeur de réglage (dY ou Y) a atteint une limite, l'action 1 est


automatiquement coupée afin d'éviter toute dégradation du comportement du
régulateur.

Le programme de régulateur peut être paramétré en attribuant aux paramètres


CP, GS, CTI, CTD soit des valeurs fixes, soit des valeurs dynamiques (para-
métrage adaptif). L'introduction est réalisée par les cellules mémoire
attribuées aux divers paramètres.
Algori- PID

Le réguiateur PID est basé sur un algorithme de vitesse. A l'instant


d'échantillonnage t = k * PE, l'incrément de grandeur de réglage est cal-
culé par la formule suivante:

Action P Action 1 Action D

d m k : variation de la grandeur XXX à l'instant t

U peut prendre la valeur W ou Z suivant que XW ou XZ est appliqué au


sommateur. Il en résuite:

Pour application de XWZ, Pour application de XZ:

PE
dIk CTUIWk CTI = -
TI
1 m
q = -(CTDxQUk + ak-l) CTD = -
2 PE

Si, à l'instant tk, on désire obtenir en sortie du régulateur la grandeur


de réglage Yk, celle-ci est formée par la formule suivante:

h r s de la conception d'un régulateur comportant une action P, on suppose


en général que GS = 1 (GS = gain supplémentaire).

La grandeur GS permet d'agir sur le coefficient d'action proportionnelle


du régulateur PID.
Blocs de données pour le régulateur P D

Les données spécifiques au régulateur sont introduites au moyen d'un DB de


transfert (initialisation et traitement du régulateur P I D , cf. chapitres
6.11.1 et 6.11.2).

Les données suivantes doivent être prédéfinies dans le bloc de données de


transmission x :

CP, GS, CTI, CTD, W, STEU, YH, I S U P , LINF

La structure du DB de transfert qui doit être constitué par 49 mots de


données (DWO à DW48) est expliquée plus en détail dans ce qui suit.
Structure & bloc de damées & transfert

Remarque

Réserve

Coefficient d'action proportion-


nelle
K > O: sens de régulation positif,
.
c à-d. modification de même
sens de la consigne et de
la grandeur de réglage
K < O: sens de régulation négatif;
Nombre à virgule flottante

Gain suppl. IGS, normalement = 1


pour des régulateurs à action P;
Nombre à virgule flottante

CTI = PE/TI ;
Nombres à virgule flottante

CTD = TD/PE ;
Nombres à virgule flottante

Introduction de la consigne dans


ce mot si le bit 6 STEU = 1;
sinon, dans mot DW 19 (-1 j Wk < 1)

Mot de commande

Introduction de la valeur manuelle


dans ce mot si le bit 6
STEU = 1; sinon dans mot DW 18
(-1 5 YHk < 1).
Dans le cas de l'algorithme de
vitesse, il faut indiquer des in-
créments de grandeur de réglage

Valeur limite supérieure


-1 j LSUP j 1 (YAk -) ;
! ! LINF < LSUP ! !

Valeur limite inférieure


-1 j LINF 5 1 (YAk min)
Introduction de la valeur manuelle
dans ce mot si le bit 6
STEU = O (-1 j YJ3 < 1).
Dans le cas de l'algorithme de
vitesse, il faut indiquer des in-
créments de grandeur de réglage

Introduction de la consigne dans ce


mot si le bit 6 STEU = O
(-1 j Wk < 1)
Remarque

Bit O = 1: limite pos. dépassée


Bit 1 = 1: limite nég. dépassée

Introduction de mesure si le
bit 7 STEU = O (-1 j Xk < 1)

Introduction de la mesure si le
bit 7 STEU = 1 (-1 j Xk < 1)

Grandeur perturbatrice (-1 j Zk < 1)

Introduction de la grandeur
perturbatrice dans ce mot si
bit 7 STEU = 1 (-1 j Zk < 1)

Valeur antérieure de la grandeur


perturbatrice

Grandeur appliquée au sonunateur


par l'entrée XZ (-1 5 XZk < 1) ;
introduction dans ce mot si le
bit 7 STEU = O

Introduction de XZ dans ce mot si


le bit 7 STEU = 1 (-1 j XZk < 1)

Valeur antérieure de XZk

Terme différentiel

Valeur antérieure du signal d'écart

Réserve

Valeur antérieure de la grandeur


de réglage calculée (Ykvl OU
.
dYk-l) devant détect de seuil

Grandeur de sortie

Grandeur de sortie LïNF j YA 5 LSUP

~ -L
Format proposé
(KHI KM également admissible)

VFL = nombre à virgule flottante,


VG = nombre à virgule à gauche

E = entrée, S = sortie
Affectation des bits àu mot de cammnde (mot & données DU ï ï dans
le DB de transfert)

DW 11 Nom Signification
No de bit

11.O AUTO = 1: fonctionnement automatique


= O: fonctionnement manuel
11.1 ENT-XZ = 1: une grandeur autre que % est appliquée au
sommateur par l'entrée XZ
= O: XWk est appliqué au sonnnateur. L'entrée XZ
n'est pas prise en considération
11.2 RAZ-REG = 1: lors de l'appel du régulateur (OB 251), toutes
les grandeurs (DW 20 à DW 48) sont effacées une
fois dans le DB de régulateur, à l'exception ce-
pendant de CP, GS, CTI, CID, LSUP, L m , STEU,
YHk, Wk, Zk et Zk-l. Le régulateur est arrêté.
ïa valeur antérieure de la grandeur perturbatrice
est actualisée
= 0: régulation
11.3 VITESSE = 1: algorithme de vitesse
= O: algorithme de position

11.4~) MANLTEL = 1: pour VITESSE = O (algorithme de position), la der-


nière grandeur réglante sortie est conservée. Pour
VITESSE = 1 (algorithme de vitesse), l'incrément de
grandeur de réglage dYk est mis à zéro (= 0).
= O pour VITESSE = O, la valeur de réglage YA sortie
est amenée de façon exponentielle, en 4 pas d'é-
chantillonnage, à la valeur manuelle réglée après
avoir c o m t é sur fonctionnement manuel. Par la
suite, les autres valeurs manuelles sont immédia-
tement reprises à la sortie du régulateur.
Pour VITESSE = 1, les valeurs manuelles sont im-
médiatement transmises à la sortie du régulateur.
En mode manuel, les grandeurs suivantes sont ac-
tualisées:
1) Xk, XWk-1 et mJk-1
2) XZk, XZk-l et P%-l lorsque le bit 1 STEU = 1
l 3) Zk et Zk-l lorsque le bit 5 STEU = O
ïa grandeur dD est mise à O. L'algorithme
k-J
n'est pas calcule.
11.5 ANTICIP = 1: pas d'action anticipatrice
= O: avec action anticipatrice
11.6 PGDG = 1: introduction de Wk, % en tant que nombre à
virgule flottante
= O: introduction en tant que nombre à virgule à gauche
11.7 VAR-KG = 1: les variables Xk, XZk et Zk sont entrées en tant
que nombres à virgule flottante
= O: introduction des variables en tant que nombre à
virgule à gauche
11.8 = 1: pas de commutation manuel-automatique sans à-coups
= 0 : comtation manuel-automatique sans à-coups
11.9-11.15 non affectés

uniquement valable pour fonctionnement manuel (AüTû = 0)


6 . lï.1 InitiaLisatiai de l l a i g o r i h P D (OB 250)

L'OB 250 permet d'initialiser l'algorithme Pi3 et il est appelé au sein des
OB de démarrage 20/21/22.

Les paramètres requis pour l'initialisation se trouvent dans le bloc de


données de transfert (DB x) .

lMlmmmT!
Ie bloc & données & transfert doit être appelé avant l'appel de l'OB 250.

Chaque régulateur doit disposer de son propre DB x pour le transfert des


données (X 5 254). Le programme système génère ensuite automatiquement un
autre DB x + 1 en copiant le DB x dans la RAM DB; ce nouveau DB est utilisé
par le régulateur en tant que champ de données lors du fonctionnement cy-
clique; les numéros des DB correspondants doivent'donc être libres. Les
blocs de données DB x + 1 constituent l'interface de données entre les
régulateurs et l'utilisateur ou la périphérie.

L'OB 250 utilise de façon interne l'OB 254 ou l'OB 255 (duplication de
blocs de données). En cas d'erreur, le processeur reconnaît une erreur de
temps d'exécution et appelle l'OB 31. Lorsque celui-cin'a pas été program-
mé, le processeur se met en STOP. Les codes d'erreurs contenus dans l'ACCU
1 s'appliquent alors à l'OB 250.

Attention ! Si le DB x + 1 n'a pas été réservé lors de l'initialisation et


s'il a la même longueur qu'un DB de régulateur (48 mots-données), le pro-
gramme système l'utilise en tant que champ de données de régulateur sans
émettre de message; dans ce cas les mots-données 20 à 48 sont effacés. Dans
le cas contraire, le processeur se met à l'arrêt.

Il est également possible d'utiliser les blocs de données étendus DX à la


place des blocs DB. L'initialisation se déroule alors de façon analogue à
celle des blocs de données DB.
l.2 Trai-t
6. i de l 1 a l p 5 PID
~ (OB 251)

L'OB 251 est appelé au cours de l'exécution du programme cyclique et traite


l'algorithme P D .

Le régulateur doit être appelé après l'écoulement de la période d'échan-


tillonnage. Respecter l'ordre chronologique suivant:

Appel du bloc de données DB x + 1.


Chargement des données d'entrée Xk, 3,
Zk et YHk ou d'une partie d'entre
elles.

Conversion du format des données d'entrée et transfert dans le DB x + 1.


Appel de l'OB 251 (traitement du régulateur PID).

Chargement de la donnée de sortie YAk à partir du DB x + 1.


o Conversion de la donnée et émission vers la périphérie de processus.

Format des entrées et sorties de réguiateurs

L'algorithme de régulation PID utilise le format à virgule flottante pour


la représentation des nombres et peut donc être paramétré avec des valeurs
à virgule flottante. L'introduction de valeurs en format à virgule à gauche
est également possible (cf. à cet effet bit 6 et 7 du mot de commande
STEU). Dans ce cas, le régulateur procède automatiquement, lors de chaque
appel, à la conversion en format à virgule flottante des mots introduits en
format à virgule à gauche.

L'utilisation du format à virgule à gauche donne lieu à un temps d'exécu-


tion plus court pour l'adaptation, dans le programme STEP5, des mots prove-
nant des cartes d'entrées ou destinés aux cartes de sorties.

Entrées

W, YH, X, Z et XZ peuvent être entrées au choix en tant que nombre à


virgule flottante ou à virgule à gauche. Le bloc de transmission de données
prévoit des emplacements de mémoire différents en fonction de chaque gran-
deur.
Introduction de nombres à virmiLe à gauche

Explications concernant les nombres à virgule à gauche: cf. chapitre 6.11

Attentïam! Lors de l'utilisation de la gamme naminale d'entrée des cartes


analogiques, il faut tenir compte du fait que le profil binaire pour une
certaine valeur d'entrée est différente de celle de la même valeur mais
pour la totalité de la gamme d'entrée. Ce fait doit être pris en considéra-
tion surtout pour le réglage des valeurs de consigne, car il pourrait se
produire que la valeur de consigne introduite à la console de programmation
ne puisse pas être obtenue, bien que la valeur de mesure soit bien supé-
rieure à la valeur désirée.

Si le convertisseur analogique/numérique utilisé fournit les nombres néga-


tifs sous forme de valeur absolue plus signe, il faut, avant de les trans-
féyer au DB régulateur, en former le complément à 2. Ensuite, le bit de la
lseme position doit être mis à 1.

Si le convertisseur analogique/numérique utilisé peut fournir le nombre -O


en valeur absolue plus signe sous la forme

il n'est pas permis d'en former le complément à 2; le nombre doit parvenir


au DB.régulateur en tant que +O:

Sortie

La valeur de sortie YA du régulateur se trouve dans le DB sous forme de


nombre à virgule à gauche ou à virgule flottante. Avant leur transfert à
destination ou en provenance du DB réguiateur, le fonnat des valeurs d'en-
trée et de sortie à virgule à gauche doit être converti avant et après
l'appel du régulateur dans le programme d'application STEP5, en tenant
compte des cartes d'entrées et de sorties utilisées (convertisseur analo-
gique/numérique, convertisseur numérique/analogique).
Rmarques générales

Lorsque CûMMUT (bit 8 du mot de commande STEU) est à 'lO", la commutation de


manuel sur automatique est réalisée sans à-coups; c.-à-d.que le signal
d'écart présent n'est a m l é que par l'action 1. Lorsque l'on choisit
cependant CTI = PE/TI = O (régulateur P ou PD), le signal d'écart ne donne
lieu à aucune modification de la grandeur de réglage lors de la conunuta-
tion.

Ceci peut être évité en posant COMMUT = 1. Un signal d'écart est alors
rapidement annulé lors de la commtation manuel-automatique,peu importe si
CTI = O ou non. La variation de la grandeur de réglage correspond à la
valeur du signal d'écart et n'est donc pas arbitraire au sens d'un défaut
de régulation.

Les bits O et 1 de LIM peuvent, si cela est souhaité, être visualisés afin
de signaler que la grandeur de réglage (dans le cas de l'algorithme de
vitesse, l'incrément de la grandeur de réglage) se trouve en deçà de la
limite supérieure ou au-delà de la limite inférieure. Etant donné que ces
bits sont évalués par l'algorithme pour couper l'action 1, ils ne doivent
pas être écrasés.

Les blocs de données de régulateur DB x + 1 ne doivent pas être rechargés


au cours du fonctionnement cyclique.

brsqu'une régulation en cascade est constituée à l'aide de deux régula-


teurs ou plus, il faut tenir compte des points suivants:
- Lorsque la cascade est ouverte, il faut que tous les régulateurs passent
sirmiltanément en mode manuel afin qu'aucun régulateur ne puisse partir
en dérive par suite de son action 1, ou qu'au moins le régulateur de la
boucle externe fonctionne en mode manuel pour que la dernière grandeur
de réglage qui correspond à la consigne de la boucle interne puisse être
conservée ou être amenée à une valeur de sécurité.
- Lorsque la cascade doit être fermée, les deux boucles (ou au moins la
boucle interne) devraient fonctionner en mode automatique afin que la
grandeur de réglage de la boucle externe puisse être reprise en tant que
consigne.

Si, lors de la commutation sur mode manuel, le système réglé est séparé du
régulateur et si l'on intervient directement sur l'organe de réglage, la
nowelle grandeur de réglage doit être amenée au régulateur par l'entrée
manuelle. Ceci permet d'obtenir l'égalité entre la sortie du régulateur et
la grandeur de réglage en mode manuel lors de la reconmtutation du mode
manuel sur le mode automatique. Dans le cas de l'algorithme de vitesse, il
s'agit de la variation de grandeur de réglage.
Grandeurs caractéristiques des régulateurs

Rémilateur P

Ia grandeur caractéristique d'un régulateur P est le coefficient d'action


proportionnelle CP. Il correspond au rapport de la grandeur de sortie à la
grandeur d'entrée: CP = Xa/Xe.

Rémilateur PI

Les grandeurs caractéristiques d'un régulateur PI sont le coefficient


proportionnel CP et le temps d'intégration TI. Le coefficient CP correspond
au rapport de la grandeur de sortie à la grandeur d'entrée et détermine
l'action P du régulateur. Le temps d'intégration est le temps nécessaire
pour obtenir en sortie, par suite de l'action 1, une variation de grandeur
de réglage égale à celle due à l'action P.

Rémilateur PD

Les caractéristiques d'un régulateur PD sont le coefficient proportionnel


CP (voir ci-dessus) et le temps de dérivation TD. Le temps de dérivation
est le temps que met un régulateur, dont la grandeur d'entrée subit une
variation à vitesse constante, pour obtenir une variation de la grandeur
de sortie égaleoà la variation occasionnée par l'action D d'un régulateur
PD, hédiatement après l'application du signal d'entrée. La détermination
du temps de dérivation TD ne s'effectue pas à partir d'une fonction éche-
lon mais à partir de la variation linéaire de la grandeur d'entrée.
Rémilateur PïD

Les grandeurs caractéristiques d'un régulateur PïD sont le coefficent CP,


le temps d'intégration TI et le temps de dérivation TD. Ces grandeurs
déterminent le comportement P, 1 et D.

Modification des paramètres

L'action P de la grandeur de réglage est formée selon la formule suivante:

Action P = CP' (XWk - XWk, l)


üne modification de CP ou GS en mode automatique n'exerce une influence que
sur les modifications ultérieures des signaux d'écart XWk. La valeur
momentanée de la grandeur de réglage n'est pas influencée par la modifica-
tion du paramètre. Ce comportement permet de modifier les paramètres sans
à-coups.
Toutefois si ce comportement n'est pas souhaité, il peut être éliminé grâce
au calcul suivant qui ne doit être réalisé qu'une fois pour chaque modifi-
cation de paramètres (exemple pour modification de CP):

'k-i = 'k-i + X W ~ (CP


- ~ nouveau + CPancien)
brsque le programme suivant est utilisé pour la modification de para-
mètres, le régulateur présente le comportement d'un régulateur analogique:

:L Cpnouveau charger CPnomeau


:L CPancien charger CPmcien
:-G

Abréviations ~ o u rle rémilateur PID

dyk incrément de grandeur de réglage calculé


&k incrément de grandeur pertubatrice
WL représentation en-yirguleflottante
k échantillonnage kleme
CP coefficient d'action proportionnelle
VG représentation en virgule à gauche
ISUP limite supérieure (détecteur de seuil)
GS gain supplémentaire
PE période d ' échantillonnage
CTD TD/PE
CTI PE/TI
t instant dléchantillonnage = k'PE
TI temps d' (action par) intégration
TD temps de (action par) dérivation
L m limite inférieure (détecteur de seuil)
consigne
mesure
signal d'écart
grandeur de réglage calculée
valeur de réglage (incrément de grandeur de réglage ou grandeur
de réglage)
grandeur pertubatrice
Nombre à virgule à gauche

La représentation d'un nombre à virgule à gauche dans un bloc de données


prend la place d'un mot. L'exemple ci-après montre la correspondance entre
le nombre à virgule à gauche en représentation décimale, le nombre à vir-
gule à gauche en représentation binaire et la représentation en format KF
sur la console de programmation:

Nombre à virgule à gauche en Nombre à virgule


représentation décimale représentation binaire fixe

-0.999.. . 1000000000000001 -32767


-0.75 1010000000000000 -24576
-0.5 1100000000000000 -16384
-0.25 1110000000000000 - 8192
O 0000000000000000 O
4.25 0010000000000000 + 8192
4 .5 0100000000000000 +16384
4.75 0110000000000000 +24576
4.999.. . 0111111111111111 +32767

En représentation binaire les nombres négatifs à virgule à gauche sont


donnés par la complémentation à deux des nombres positifs à virgule à
gauche.

Les nombres à virgule à gauche (VG) peuvent être convertis dans les valeurs
représentées sur la console de programmation (KF) selon la formule sui-
vante :

avec -1 < VG < +1 et -32767 j Ki? j + 32767


7 Bloc de données étendu - DX O
L'utilisateur peut adapter à ses besoins certaines fonctionnalités du
programme-système et ce, en modifiant les préréglages (repérés par V sur le
tableau), dans le bloc de données étendu DX O.

Les réglages standard du programme-système (V) sont pris automatiquement en


compte à chaque démarrage; le bloc DX O est ensuite exploité. Si aucun bloc
DX O n'est programmé, ce sont les réglages standards qui sont valables.
Dans le cas contraire, les réglages paramétrés par l'utilisateur sont
validés.

IKK)-t
L1intr&tion ou la modification du RX O n'est validée qu'après un noweau
deniarrare .
Structure du bloc X O

Le bloc DX O se compose de trois parties:

1. Indicatif de début du DX O (DW O, 1 et 2),

2. Plusieurs rubriques de longueurs inégales (suivant le nombre des para-


mètres),

3. L'Indicatif de fin EEEE.

Les valeurs numériques indiquées sont en format hexadécimal.

Structure formelle:

No bit 15 87 O
, - -
Carat- MA
tères SK
ASCII: XO

Paramètre
Rubrique 1
Paramètre

Paramètre
- -
. 1 longueur de rubr. 2
Idendificat. de rubr. 2
te---------------------

.. I.
Paramètre i Rubrique 2
. .
- -
. 1 bngueur de rubr. n+ - - - - -
Idendificat. de rubr. n
t-----------------
Paramètre

Paramètre Rubrique n

Paramètre

E E E E

Figure 7.1: Structure du DX O


Exemple dlintm&ction du DX O

Indicatif de début DU O: KH= 4D41


DU 1: KH= 534B
DU 2: KH= 5830

Identificateur/longueur de rubrique DW 3: KH= 0203


Paramètres (occupent 1 mot DU) DU 4: KHI 3001 rubrique 1
Paramètres (occupant 2 mots DU) DU 5: KH- BBOO
DU 6: KH= O000

DU 7: KH= 0402
Paramètres (occupent 2 mots DU) DU 8: KH= 1000 rubrique 2
DU 9: KH- 4000

Indicatif de fin DU 10: KH= EEEE

Une rubrique du DX O est composée de 1 à n mots-données.

Ceux-ci contiennent: - 1' idendificateur de rubrique


- la longueur de la rubrique
- les paramètres de la rubrique
L'identificateur de la rubrique indique quelle est la signification des
paramètres qui suivent. Chaque rubrique est affectée à une partie définie
du programme-système ou à une fonction définie du système (p.ex. identifi-
cateur de rubrique '04' --> traitement cyclique).

Ia longueur de rubrique indique le nombre de mots de données qui sont


utilisés par les paramètres qui suivent.

Les paramétres possibles sont indiqués sur les pages suivantes.

b r s du paramétrage du DX O, tenir compte des points suivants:

- les rubriques peuvent être introduites dans n'importe quel ordre,


- les rubriques non utilisées n'ont pas besoin d'être introduites,
- si une rubrique existe en plusieurs exemplaires, c'est la dernière ru-
brique introduite qui est valable,

- les paramètres peuvent être introduits dans n'importe quel ordre,


- les paramètres non utilisés n'ont pas besoin d'être introduits,
- si un paramètre donné existe en plusieurs exemplaires, c'est le dernier
paramètre introduit qui est valable.

mm!
Bprés llintr&tion de la demière rubrique, il est impératif de clare le
DX O par llindicatifde fin EEHZ!
B8577633-01

indications possibles dans le J


XO

Identific / . Paramètre Signification11


longueur de
rubrique

DEMARRAGE et RUN

02xx2) 1000 V Redémarrage automatique après "retour secteur"


1001 Démarrage automatique après "retour secteur"

2000 V Synchronisation du démarrage en mode multipro-


cesseur

2001 Pas de synchronisation du démarrage en mode


multiprocesseur

3000 V contrôle d'erreur d'adressage

3001 Pas de contrôle d'erreur d'adressage

6000 V Arithmétique en virgule flottante avec mantisse


à 16 bits (avec optimisation de la vitesse)

6001 Arithmétique en virgule flottante avec mantisse


à 24 bits (avec optimisation de la précision)

BBOO yyyy Nombre de temporisations à actualiser3)

Préréglage: yyyy = 256 temporisations,


(temporisations O à 255)
valeurs admises: O à 256

V = préréglage si DX O n'est pas chargé ou si la rubrique manque

2)xx = longueur de rubrique (nombre de mots de données occupés par les


paramètres)

3, A propos de l'actualisation des temporisations:

- De façon standard, les temporisations T O à T 255 sont traitées.


- Lorsque vous inscrivez le nombre "O" dans le DX O, aucune temporisa-
tion n'est traitée.

- Si le nombre est compris entre '1' et '128', toutes les temporisations


de T O à T 127 sont traitées; si le nombre est compris entre '129' et
'256', toutes les temporisations de T O à T 255 sont traitées.
Identific / . Paramétre significationl)
longueur
de rubrique

mécution du programme cyclique:

1000 yyyy bngueur du temps de cycle en millisecondes;


préréglage: yyyy = 150 ms
admissible: 1 5 yyyy 5 1770 (hex.)
1 ms à 6000 m s (dec.)

V Actualisation de l'image du processus des


mém. de couplage sans protection par sémaphore

Actual. de l'image du processus des mémentos de


couplage avec protection par sémaphore (dans le
bloc)
I I
Traitement des alarmes:

06xx 2) 1006 Traitement de l'alarme process, de l'alarme régu-


lateur et de l'alarm d'horloge aux limites
d'instruction STEP5 4)

Traitement de l'alarme process et de l'alarme de


régulateur aux limites d'instructions STEP5,
traitement de l'alarme d'horloge aux limites de
blocs

Traitement de l'alarme process aux limites d'ins-


tructions STEP5, traitement de 1 'alamie de r é p
lateur et de l'alarme d'horloge aux limites de
blocs

Traitement de l'alarme process, de l'alarme de


régulateur, et de l'alarme d'horloge aux limites
de blocs
-

Les paramètres ci-dessus ne sont valables que pour la version de la CPU 928
qui ne permet que les alarmes d'horloge 100 ms. La nouvelle version de la
CPU 928 permet de programmer maintenant 9 OB d'alarmes d'horloge diffé-
rents. Pour ceci, il existe de nouveaux paramètres dans le DX O (voir ci-
après).

V = préréglage si le DX O n'est pas chargé ou si la rubrique manque

2, ,= longueur de rubrique (= nombre de mots de données occupés par les


paramètres)

3, lu>lh: Si vous paramétrez le DX O pour que les alarmes soient traitées


aux limites des instructions STEP5, vous devez noter qu'en cas
d'inter ruption, les instructions "TNB" et "TNW" ne sont pas
forcément traitées complètement car elles contiennent des limites
d'instructions fictives. Ceci est également valable pour quelques
OB de fonctions spéciales, quelques blocs fonctionnels standard et
quelques FB de régulation.

Alarme process = traitement des alarmes process


Alarme d'horloge = traitement déclenché par horloge
La programmation des nouveaux paramètres, dans le DX O, permettent les
réglages suivants pour le traitement des alarmes:

Alarme d'horloge

Ancien
paramètre

IOOC v
1OOA

1008

V = Préréglage

O Interruption aux limites de blocs


IJIIl lnterruption aux limites d'instructions
Identific. 1 Para- 1 significationl)
de rubrique mètre

06xx2) 2000 V Signal d'alarme process, déclenchement par niveau

I l
I
Traitement des défauts:
I
Signal d'alarme process, déclenchement par front

Traitement des collisions d'horloge

1000 V Arrêt système si le défaut se produit, l'OB 33


n'étant pas chargé.
1001 Pas d'arrêt système si le défaut se produit, l'OB
33 n'étant pas chargé.

I l Traitement des défauts régulateur

1 1 1200
V Arrêt système si le défaut se produit, l'OB 34
n'étant pas chargé.

1 1 1O''
Pas d'arrêt système si le défaut se produit,
l'OB 34 n'étant pas chargé.

Traitement d'un dépassement de temps de cycle

1400 V Arrêt système si le défaut se produit, l'OB 26


n'étant pas chargé.

1401 I Pas d'arrêt système si le défaut se produit,


l'OB 26 n'étant pas chargé.

Traitement du défaut "code opération erroné"

l8O0 / V Arrêt système si le défaut se produit, l'OB 27/29/


IO n'étant pas chargé.
Pas d'arrêt système si le défaut se produit,
l'OB 27/29/30 n'étant pas chargé.

'
)V = Préréglage si le DX O n'est pas chargé ou si la rubrique manque.
2, ,= bngueur de rubrique (=nombre de mots de données occupés par les
paramètres)

Opération erronée = erreur de substihltion, erreur de code opération,


erreur de paramètre

Dépassement temps = appel d'un bloc non chargé, erreur de transfert ou


autre erreur de ce type
Identific . Para-' Signification1)
de rubrique mètre

Traitement du défaut "dépassement temps1'

10xx2) iAOO V Arrêt système si le défaut se produit,


l'OB 19/31/32 n'étant pas chargé.

MO1 Pas d'arrêt système si le défaut se produit,


l'OB 19/31/32 n'étant pas chargé.

Traitement du défaut "erreur d'adres~age~~

lCOO V Arrêt système si le défaut se produit, l'OB 25


n'étant pas chargé.

lCOl Pas d'arrêt système si le défaut se produit,


l'OB 25 n'étant pas chargé.

Traitement d'un défaut d'acquittement

lEOO Arrêt système si le défaut se produit,


l'OB 23/24 n'étant pas chargé.

LE01 V Pas d'arrêt système si le défaut se produit,


l'OB 23/24 n'étant pas chargé.

EEEE Indicatif de £ln

V = Préréglage si le DX O n'est pas chargé ou si la rubrique manque

2, ,= Longueur de rubrique (= nombre de mots de données occupés par


les paramètres)
Paramétrage du DX O, exemple A:

On désire utiliser trois CPU (CPU A, B etc.) en fonctionnement multiproces-


seur:

Les CPU A et B travaillent étroitement ensemble, échangent souvent des


données et traitent un important programme de démarrage. La CPU C traite un
programme court, à temps critique, indépendamment des deux autres CPU.

D'une manière standard, en fonctionnement multiprocesseur, toutes les CPU


démarrent simultanément leur traitement cyclique, c-à-d.que les C W at-
tendent la fin de toutes les procédures de démarrage avant de débuter
simultanément leur programme cyclique.

Du fait que la CPU C effectue son programme indépendamment des autres CPU
et qu'elle traite un très court Pronramme de démarrape, il n'est pas néces-
saire de la synchroniser avec les deux autres. Par le paramétrage du DX O,
on obtient que la CPU C, dès que son démarrage est terminé, puisse exécuter
immédiatement son programme cyclique sans attendre la fin des programmes de
démarrage des CPU A et B.

Programmation de DX O:

Indicatif de début DW O: KH= 4D41


DW 1: KH= 534B
DW 2: KH= 5830
ler identificateur/longueur de rubrique DW 3: KH= 0201
Paramètre 1 DW 4: KH= 2001
Indicatif de fin DW 5: KH= EEEE

Dès que le DX O est chargé dans la mémoire de programme, il sera validé au


prochain démarrage. Du fait que la CPU C traite un très court programme de
démarrage et qu'elle n'attend pas les CPU A et B son voyant vert RUN
s'allume immédiatement. Le signal BASP (inhibition des ordres de sortie)
n'est remis à zéro que lorsque les trois CPU auront terminé leur démarrage.
Ceci signifie que la CPU C ne doit pas accéder à la périphérie TOR.
Paramétrage du DX O, exemple B:

Le paramétrage suivant du DX O permet

a) de désactiver le contrôle d'erreur d'adressage,


b) de désactiver l'actualisation des temporisations et
c) de régler le temps de cycle sur 4 secondes.

Indicatif de début DU O: KH= 4D41


DU 1: KH= 534B
DW 2: KH= 5830
ler identi£icateur/longueur rubrique DW 3: KH= 0203
Paramètre DU 4: KH= 3001
Paramètre *) DW 5: KH= BBOO
DU 6: KH- O000
28me identificateur/longueur rubrique DU 7: KH= 0402
Paramètre *) DU 8: KH= 1000
DU 9: KF= 4000
Indicatif de fin DWlO : KH= EEEE

*) Les paramètres qui occupent deux mots de données doivent être comptés
comme tels lors de la longueur de la rubrique.

Ce paramétrage du DX O exerce les effets suivants sur l'exécution du pro-


gramme:

- La partie de l'image de processus à laquelle aucune carte périphérique


n'est assignée, peut être utilisée en tant que l'zone de mémentos1'supplé-
mentaire.

- Le temps d'exécution du programme système est réduit étant donné qu'au-


cune temporisation n'est actualisée.

- ün dépassement de temps de cycle n'est détecté que lorsque le temps


d'exécution du programme cyclique et du progrme système est supérieur à
4 secondes.
8 Contenu et organisation de l a mémoire
L'ensemble de l'espace mémoire de la CPU 928 se divise, pour l'essentiel,
suivant les zones ci-après :

Longueur des données:

1. mémoire utilisateur (16 bits)


pour OB, FB, FX, PB, SB, DB, DX

2. RAM des DB
pour blocs de données et registres à décalage (16 bits)

3. - zone de couplage : BA, BB (16 bits)


- zone système : BS, BT (16 bits)
- compteurs : Z (16 bits)
- temporisations : T (16 bits)

4. - mémentos : M (8 bits)
- mémoire image des entrées/sorties : MIE, MIS (8 bits)

5. zone de la périphérie (8 bits)


- périphérie P
- périphérie Q
- mémentos de couplage
- coordinateur COR
- pages
- périphérie décentralisée
Les adresses exactes de ces zones sont indiquées sur le topogramne de la
mémoire donné aux pages suivantes.

mm!
L'accès S K F 5 , à une cellule mémoire se tramant à l'intérieur d'une zone
d'opérande (par exemple : dnentos) ne doit jamais être effectué directe-
nient par les akesses absolues mais - t par les adresses relatives
par rapport à l'adresse de base de la zone opérande corresponchte. Les
adresses de base de toutes les zones opéramdes figurent dans la zone des
données système (cf. wdonnéessystèmew).
8.1 Topogramme de la mémoire de la CPU 928

Cartouches RAM ou
Mémoire utilisateur EPROM enfichables
*'2 mots max.
32 ' dans le processeur

RAM de blocs de données


23 * 0'2 mots

DB O (liste d'adresses de blocs) RAM interne au processeur

Réserve

Données de transfert système (zones


BA/BB) , données système (zones BS/BT) ,
compteur, temporisations

EEOO .
Mémentos

EFOO
Mémoire image

FOOO Périphérie
(TOR/analogique, Bus S5
FFFF CP/IP)
&

27 20

Figure 8-1: Topo~rammede la mémoire de la CPU 928


8.1.1 Topogramme de la BBll système

D B O

E400
Réserve
E500
Réserve
E600
Réserve
E700
Réserve RAM interne au
E800 processeur
BA: zone des données de couplage
E900
BB: zone étendue des données de coupl.
EAOO
BS: zone des données système
EBOO
BT: zone étendue des données système
ECO0

EDO0
1 Compteurs (256)

Temporisations (256)
EDFF I

=Oo 1 Mémentos

EFOO
Mémoire image
EFFF

2 2O

Figure 8-2: Toponrame de la RAM système (16 bits)


8.1.2 Topogram~ede la zone de péri#&zk

FOOO

F080 Périphérie P

MT), 128 entrées/l28 sorties


FlOO

Périphérie étendue Périphérie Q

Mémentos de couplage
F300

COR (32 sémaphores)


1
I Zone des transfert des données pour
CP (pages) I
Périphérie décentralisée,
volume d'adressage étendu

Figure 8-3 : Cham d'adressage de la périphérie (8 bits)


B8577633-01

Zones d'adressage pour la p é r i ~ / p m g r a m a t i a i

Zone utilisé par Paramètre


(adresse absolue)

L EB/T EB 0 à 127
(mémoire image LEW/TEW 0 à 126
EF7F des entrées) L ED/T ED 0 à 124
U E/üN E/O E/ON E 0.0 à 127.7
S E/R E/= E

L AB/T AB 0 à 127
(mémoire image L AW/T AW 0 à 126
des sorties) LAD/TAD 0 à 124
U A/UN A/O A/ON A 0.0 à 127.7
S A/R A/= A

L PY/T PY 0 à 127
LPW/TPw 0 à 126

Périphérie P
avec mémoire image

T PY/T PY 128 à 255


ou analogique T P W f l Pw 128 à 254

Périphérie P
sans mémoire image

L QB/T QB O à 255
étendue, L Qw/T Qw O à 254

Périphérie Q

Figure 8.4 : Zones d'adressasre pour la péri~hérie/~ro?ramtion


Accès à la périphérie :

A l'aide des instructions STEP5, il est possible d'accéder à la périphérie


soit directement, soit par l'intermédiaire de la mémoire image. Il faut
tenir compte du fait que la mémoire image n'existe que pour les octets
d'entrées/sorties de la périphérie P avec les adresses d'octets de O à 127.

Accès direct à la périphérie : L/T PY, L/T FW, L/T QB, L/T QW

Les entrées ou les sorties sont lues ou positionnées au moment du traite-


ment de l'iristruction. Pour la périphérie TOR (O à 127), l'état des sorties
est aussi actualisée dans la mémoire image.

Accès à la périphérie var la mémoire image : L/!C EB, L/T EW, L/T ED,
L/T AB, L/T AW, L/T AD,
U/iJN/O/ON E, =A etc.

Au moment ctu traitement de l'instruction, seule la mémoire image est modi-


fiée. Ce n'est qu'à la fin du cycle que l'ensemble des états de la mémoire
image est transmise à la pkriphérie.
8.2 organisation de la mémoire dans la C W 928
La mémoire utilisateur couvre l'espace d'adressage de OOOOH à 7FFFi-i. Lors
du chargement des blocs du progrme utilisateur, ceux-ci sont mémorisés
dans un ordre quelconque (par adresses croissantes). Si la mémoire utilisa-
teur est pleine, les blocs de données sont rangés dans la RAM des DB (8000H
à DD7FH).

La fonction on-line "ORG.MEM. l1 (organisation mémoire) permet: de lire


l'adresse (hexadécimale) de la cellule mémoire qui contient l'instruction
de fin de bloc du dernier bloc existant en mémoire. Cette fonction vous
permet aussi de connaître la capacité de la cartouche RAM.

Lors de la modification de blocs, l'ancien bloc est déclaré non valable


(c'est-à-dire que l'indicatif de début est écrasé), et le llnouveaul'
bloc
est introduit en mémoire. De même, lors de l'effacement de blocs, ceux-ci
ne sont pas réellement effacés mais déclarés non valables. Les blocs inva-
lidés par effacement ou correction occupent donc toujours de la place en
mémoire.

La fonction on-line "COMPRIMER la mémoire" élimine tous les blocs invalides


existant en mémoire et juxtapose les blocs valides.

8.2.1 En-têtes de blocs dans la mémoire utilisateur et la RN4 des DB

Chaque bloc en mémoire débute par un en-tête ayant une longueur de 5 mots.

ler mot : indicatif de début de bloc : 7070H

2è*e mot : octet de poids fort : type de bloc

-/ \ I-
V
01H Bloc de données DB
02H Bloc séquentiel SB
04H Bloc de programme PB
05H Bloc fonctionnel FX
08H Bloc fonctionnel FB
OCH Bloc de données DX
10H Bloc dlorganisation OB

O
O O Bloc non valable, n'est pas enregistré dans la table
des adresses (DB O)
O " 1 Le bloc dans la mémoire RAM est valable, enregistré
dans la table des adresses (DB O)

Octet de poids faible : numéro de bloc


Le numéro de bloc (O à 255) est situé dans l'octet de poids
faible du 2eme mot de l'en-tête et est codé en binaire : 00 à
FFH.
3ème mot : L'octet de poids fort du troisième rot contient l'indicatif
de la console; l'octet de poids faible contient une partie
du numéro de bibliothèque.

4èmemot : Le quatrithe mot contient le reste du numéro de bibliothèque.


5ème mot : Le cinquième mot (octets de poids faible et fort) contient
la longueur du bloc, l'en-tête de bloc compris. La longueur
est donnée en mots.

8.2.2 Tables d'adresses & blocs dans le bloc de données DB O

Le bloc de données DB O contient la liste des adresses de début de tous les


blocs qui se trouvent dans la mémoire utilisateur ou dans la RAM des DB.
Cette liste d'adresses est élaborée par le programme système après la mise
sous tension et est actualisée automatiquement lors de l'introduction ou de
la modification de blocs à l'aide de la console.

Le bloc DB O contient, pour chaque type de bloc, une liste d'adresses


comprenant 256 mots. L'adresse de début des blocs non chargés est "O".

Les adresses de début des différentes listes d'adresses de blocs figurent


dans les données systèmes BS 32 à BS 38:

BS 32: Adresse de début de la liste d'adresse des DX


BS 33: Adresse de début de la liste d'adresse des FX
BS 34: Adresse de début de la liste d'adresse des DB
BS 35: Adresse de début de la liste d'adresse des SB
BS 36: Adresse de début de la liste d'adresse des PB
BS 37: Adresse de début de la liste d'adresse des FB
BS 38: Adresse de début de la liste d'adresse des OB (longueur 48 mots
seulement)

Les adresses de début pointent toujours sur le mot de données qui suit
immédiatement l'en-tête de bloc :

- pour les blocs de données: sur le mot de donnée DW O!


- pour les autres blocs: sur la première instruction STEP5!
(pour les FB: sur 1'instruction "SPA")
Situation des adresses de blocs dans DB O :

n = adresse de début de la table d'adresses des blocs de programme


(= contenu de BS 36)

n Adresse PB O

Adresse PB 1

n+2 Adresse PB 2

Si l'adresse comporte la valeur "O"


n + 178 Adresse PB 178 le bloc n'est pas chargé

n + 179 Adresse PB 179

Exemple de calcul de l'adresse de début d'un bloc quelconque en mémoire:

:L BS 37 Adresse de base de la table d'adresses des FB


:L KB 40 + numéro du FB
:+F = Adresse de la cellule mémoire qui contient
l'adresse de début du FB 40
:LIR 1 Charger l'adresse de début du FB 40 dans l'ACCU 1.
(l'adresse de début est O si le bloc n'existe pas)
Ehqle: Adresse de début et longueur du bloc de dœmées DB 50

a) par un accès indirect à la mémoire

Mémoire utilisateur:
15 7 O

0104

0105

0106

0107

0108

0109

OlOA

OlOB

OlOC

OlOD

OlOF

0110

:L BS34 Charger l'adresse de base de la table d'adresse des DB


:L KB50 Calculer l'adresse où figure l'adresse
:+F de début du DB 50 et
:LIR 1 charger cette adresse de début dans l'ACCU 1
:L KBO Sauter au repère NIVO si le bloc n'existe pas
: !=F
:SPB =NIVO
:ENT Charger l'adresse de début du DB 50 dans l'ACCU 3 et
:TAK l'ACCU 1
:L KF-1 Décrémenter de un l'adresse de début et
:+F charger la longueur de bloc dans
:LIR 1 l'ACCU 1

NIVO: ......

Résultat: ACCU 1-L (octet de poids faible): longueur du DB 50


ACCU 2-L (octet de poids faible): adresse du début du DB 50
b) à l'aide de l'OB de fonction spéciale, l'OB 181 "test des blocs de
données (DB/DX) "

La fonction réalisée par l'OB 181 est identique à celle décrite en


a). LIOB 181 teste également si le bloc de données se trouve dans
la mémire utilisateur (RAM ou EPROM) ou dans la RAM des DB.

:L KY1,50 Bloc de données DB 50


:SPA OB181 "Test des blocs de données (DB/DX)"
:SPB NIVO
:SPM =PROM
:SPZ =ANWE
:SPP =DBRA
NIVO : Bloc de données n'existe pas

:BEA

PROM: Le bloc de données se trouve en mémoire


utilisateur (cartouche EPROM)

Le bloc de données se trouve en mémoire


utilisateur (cartouche RAM)
:BEA

DBRA : Le bloc de données se trouve dans la RAM


des DB

Résultat: ACCU 1-L (octet de poids faible): adresse de début du DB 50


ACCU 2-L (octet de poids faible): longueur du DB 50
RLX: = 1 si le DB 50 n'existe pas
La zone BA d'une longueur de 256 mots est située dans la RAM système
interne au processeur. Elle cowre les adresses E800H à E8FFH.

La zone BB d'une longueur de 256 mots est située dans la RAM système
interne au processeur. Elle couvre les adresses E900H à E9FFH.

L'ensemble des zones BA (BA O à BA 255) et BB (BB O à BB 255) peut être


employé par l'utilisateur pour ses besoins propres.

Les zones BA et BB ne sont initialisées que par un effacement général.

8.2.4 Zones BS/B'l!

La zone BS d'une longueur de 256 mots est située dans la RAM système
interne au processeur. Elle couvre les adresses EAOOH à EAFFH.

IKK)m!
L'accès en écriture n'est permis que pan les mots de données système
BS 1, BS 60 à BS 63 et BS 133:

- Les mots de données système BS 60 à BS 63 sont à la disposition de


l'utilisateur,

- Les mots de données système BS 1 et BS 133 ont une signification bien


déterminée et influencent le traitement du programme. Ils ne peuvent
contenir que des codes valables!

IwoB3!ARl!!
Toutes les autres h é e s système ne sait accessibles qu'en lecture:

- Elles contiennent en partie des variables-système et en partie des infor-


mations pour le programmateur système. Leur signification n'est pas
publiée ici.

- Une écriture de ces données système peut avoir des conséquences sur le
fonctionnement de l'automate programmable et de la console raccordée.

La zone BT d'une longueur de 256 mots est située dans la RAM système
interne du processeur. Elle couvre les adresses EBOOH à EBFFH.
L'ensemble de la zone BT (BT O à BT 255) peut être employé par l'utilisa-
teur pour ses besoins propres.

La zone BS et BT ne peut être initialisée que par un effacement général.


B8577633-01

Données système de la zone BS

BS Désignation Adr

O .
Mot indicateur d ' interruption (ORIG INTERRUP) EAOO

1 Hot dle£facement des indicateurs dlintemp. (HEïï) E40l

2 Mot indicateur groupé des interruptions (MMII) EA02

3 EA03
Indicateurs d'erreurs de démarrage
4 EA04

5 Indicateurs Stop Indicateurs démarrage EA05

6 Indicateurs cycle Identificateur cartouche EA06

7 Indicateurs effac. général Indicateurs de défaut (H) EA07

8 Indicateurs de défaut (M) Indicateurs de défaut (L) EA08

9 No. ident. act. MO9

10 Adresse de base des cartes d'entrées EAOA

11 Adresse de base des cartes de sorties EAOB

12 Adresse de base de la MIE EAOC

13 Adresse de base de la MIS EAOD

14 Adresse de base de la zone des mémentos EAOE

15 Adresse de base de la zone des temporisations EAOF

16 Adresse de base de la zone des compteurs EAlO

17 Adresse de base de la zone de couplage EAll

18 Version software AG EA12

19 Adresse de fin de la cartouche utilisateur EA13

20 Adresse de base de la zone système EA14

21 Longueur de la liste d'adresses des DB EA15

22 Longueur de la liste d'adresses des SB EA16

23 Longueur de la liste d'adresses des PB EA17

XXXXXXXXX: non affecté


24 Longueur de la liste d'adresses des FB EAl8

25 Langueur de la liste d'adresses des OB Eu9

26 Longueur de la liste d'adresses des FX EAlA

27 bngueur de la liste d'adresses des DX EAlB

28 1 Longueur du DB O (listes d'adresses)


I I
29 Indicatif d'emplacement CPü-indicatif 2 (type) EAlD

30 Longueur de l'information d'en-tête de bloc EAlE


I

31 CPü-indicatif 1 Version software couplage PG EAlF

32 Adresse de base de la liste d'adresses des DX EA20


1
33 Adresse de base de la liste d'adresses des FX EA21

34
I I
Adresse de base de la liste d'adresses des DB
I
1
35 Adresse de base de la liste d'adresses des SB EA23

36 Adresse de base de la li!te d'adresses des PB EA24


1
37 Adresse de base de la li!te d'adresses des FB EA25
I
38 Adresse de base de la liste d'adresses des OB EA26

39 EA27

54 : : EA36

55 Compteur pour une heure (3599 s max., hex) EA37

réservé au bloc de dialogue


EA3B

EA3C
réservé a l'utilisateur
EA3F

EA40
réservé au programme système

i EA7F
130 Indicatif r é h a tion
1

131 Mot indicateur "inhibitiLn des alarmes"

132 Mot indicateur "ajournemint des alarmes"

La fonction on-line "paramètres système" vous permet de lire quelques


données système (concernant p.ex. la structure interne du processeur, la
version du logiciel, l'indicatif de la CPU).

En complément au tableau précédent, l'affectation des bits de quelques


données système est indiquée ci-après. L'utilisateur peut exploiter ces
bits au moyen d'instructions STEP5 ou à l'aide de la console de program-
tion (abréviations cf. chapitre 5.3).
Donnée système: BS O Adresse: EAOO (octet de poids fort)

Donnée système: BS O Adresse: EAOO (octet de poids faible)

La donnée système BS O correspond à "ORIGINE DE L'INTERRUPTION", dans


lVITPILE.Si, par ex., un défaut de type "dépassement de temps" apparaît
lors du traitement du programme, le bit 25 est mis à 1. Ce bit est remis à
O lorsque le niveau de traitement de programme DPT a été exécuté complète-
ment.
Donnée système: BS 1 Adresse: EAOl (octet de poids fort)

Désignath:
Mot d'effacement des
Bit 215 214 213 212
''2 ''2 '2 28 indicateurs d'interruption
I I I
t non affecté
- DAD
ACQ
non affecté

non affecté

non affecté
-non affecté
-non affecté
-
Donnée système: BS 1 Adresse: EAOl (octet de poids faible)

Désignation:
Bit '2 26 25 24 23 22 '2 '2 Mot d'efacement des
indicateurs d'interruption
I I 1
non affecté
- non affecté
-
-non affecté
-non affecté
-
-non affecté
-non affecté
-
--
non affecté

non affecté

BS 1: Interface active, à la disposition de l'utilisateur (voir pages


suivantes)!
Mot d'effacement des indicateurs d'interruption ( M e système BS 1):

Mettez à un le bit 9 ou le bit 10 du ME11 si vous désirez que le défaut DAD


ou ACQ suivant soit ignoré et le traitement du programme ne soit pas
influencé. Le programme système remet à O le bit correspondant après llap-
parition d'un défaut ACQ ou DAD.

Chaque niveau de traitement de programme a son propre ME11 (mot d'efface-


ment des indicateurs d'interruption)!

Le programme faisant l'objet de l'exemple suivant teste s'il est possible


d'accéder à une carte sous une adresse de périphérie déterminée. Si la
carte n'est pas enfichée, un retard d'acquittement sera évité à l'aide du
ME11 et un programme de réaction sera traité. Il est également testé si une
adresse de périphérie déterminée est inscrite dans le DB 1. Si cette
adresse ne figure pas dans le DB 1, le défaut d'adressage sera évité à
l'aide du ME11 et un programme spécifique sera traité.

FB 10
N0M:TESTPERI
DESIG:PADR E/A/D/B/T/Z: E BI/BY/W/D/: BY
DESIG:MASK E/A/D/Bfl/Z: D m/KHflC/KF/KTIr<z/KG: KM

:L BS1 Chargement
:T BS60 et sauvegarde du ME11
:LW =MASK Mise à un du BIT DAD ou ACQ
:OW
:T BS1 Réécrire le ME11
:L =PADR Accès sélectif à la périphérie ou accès à la
:L BS1 mémoire image
:LW =MASK Masquage du bit DAD ou ACQ
:UW
:L BS60 Réécriture de l'ancien ME11 afin que le prochain
:T BS1 défaut ACQ ou DAD soit détecté
:TAK
:BE

FBO
NOM :L

:SPA FBlO
NOM :TESTPERI Test si
PADR: PB128 une carte est accessible sous
MASK: KMOOOOOlOO 00000000 l'adresse de périphérie 128
: S m =MO01
... Cette partie de programme est
... exécutée si l'accès à la carte
a . . est impossible
MO01 :
:SPA FBlO
NOM :TESTPERI Test si
PADR: AB4 une carte dont l'adresse de
MASK: KMOOOOOOlO 00000000 périphérie est 4 est inscrit
:SPN =MO02 dans le DB 1
. S . Cette partie de programme est
... exécutée si l'adresse de périphérie
... n'est pas inscrite
MO02 :
:BE
Donnée système: BS 2 Adresse: EA02 (octet de poids fort)

Donnée système: BS 2 Adresse: EA02 (octet de poids faible)

Désignation:
Bit 27 26 25 24 23 22 '2 '2 Mot indicat. groupé
des interruptions

Dom
>IO0

IT.P>
- BL.P>
-REG

DPT

non affecté
-DCO

L'accès au mot indicateur groupé des interruptions (MMII) dans llITPILE,


cf. page suivante) ne doit être effectué qu'en lecture!
Ibt indicateur groupé des interruptions (damée système BS 2):

Les 16 bits du mot indicateur groupé des interruptions correspondent aux


causes de défauts possibles mentionnées sous la rubrique "ORIGINE DE L'IN-
TERRUPTION", dans llITPILE.

brsqu'un défaut apparaît, le bit correspondant est mis à un.

ikemple:
Si le processeur se met en stop à la suite d'une erreur d'adressage (DAD),
le bit 9 du MMII est mis à un. S'il se produit maintenant un défaut de
code d'opération (DCO) pendant le traitement du défaut DAD, le bit 7 du
MMII est aussi mis à un.

Contenu du MMII (binaire) : O0000010 10000000


Représentation (hexadécimale) dans L' ITPILE: 0280

Alors que, dans l'ITPILE, sous la rubrique ORIGINE DE L ' ~ ü P T I O Nseul


le dernier défaut apparu est marqué d'une croix, tous les défauts apparus
jusqu'ici sont additionnés (ITPILE profondeur 05: 5 bits sont mis à 1 dans
le HI). Le passage du code hexadécimal au code binaire permet d'exploiter
le contenu du MMII. Ceci permet de déterminer quel défaut a causé la mise
en stop du processeur.

Les bits de défauts sont remis à O dès que le niveau de traitement de


progrme a été exécuté complètement et a été abandonné.
Donnée système: BS 5 Adresse: EA05 (octet de poids fort)

Désignation:
Indicateurs STOP
Bit 215 214 213 212 211 210 29 28
I I
KP-STP

INSSTP

.- m-STP

PGSTP

-- FINP/P
-
-- DF-STP

-- non affecté

FX.STP
I
-> lere ligne des bits de commande

Donnée système: BS 5 Adresse: EA05 (octet de poids faible)

Désignation:
Bit 27 26 25 24 23 22 2l '2 Indicateurs de
démarrage
I I
RED-ADM

DEM-ADM

non affecté
- REDAU

-REDMA
- DEMARR

- non affecté

---------- DEM

----> 2ème ligne des bits de commande


Donnée système: BS 6 Adresse: EX06 (octet de poids fort)

-> 3eme ligne des bits de conmande


I

Donnée système: BS 6 Adresse: EA06 (octet de poids faible)

----> 4eme ligne des bits de commande


Donnée système: BS 7 Adresse: EA07 (octet de poids fort)

Désignation:
Indicateurs
Bit 215 214 213 212 211 2' 2' 2* d'effacement
' 't DE-ISTP

DE-DFPR

DEDSYS

DEDPG

-INT.DEM
-CAUSSTP
EFFACT

PR. EFF
I
ligne des bits de commande

Donnée système: BS 7 Adresse: EA07 (octet de poids faible)

Désignation:
Bit 127 126 125 b4 b3 122 12' 12' 1 Indicateurs de
défaut - Init.

DEFCOR

- DEFDB2

DEFDBl

DEFDBO

DEFRAM

-DEFCRT

non affecté

-- --> 6eme ligne des bits de commande


Donnée système: BS 8 Adresse: EA08 (octet de poids fort)

Désignation:
Indicateurs
Bit 215 214 213 212 2"' ' 2 '2 2% de défaut-t.
I
>lOOMS

DAD

ACQ
- CYC

DEFPILE
------ BAT

DPE

MDT

-> 7eme ligne des bits de commande


1

Donnée système: BS 8 Adresse: EA08 (octet de poids faible)

----> aeme ligne des bits de commande


Donnée système: BS 29 Adresse: EAlD (octet de poids fort)

BS 29 (octet de poids fort): Interface active, utilisée par les blocs de


dialogue et, lors de la conmunication
multiprocesseur, par l'OB 218 et par les
instructions SES et SEF.
Donnée système: BS 29 Adresse: EAU) (octet de poids faible)

T w e de l'automate:
O 1 1 1 automate S5-135U
Donnée système: BS 130 Adresse: EX82 (octet de poids faible)

La donnée système BS 130 a une fonction purement indicative:

Bit '2 = O : Niveau de traitement de programme "régulationt'activé


Bit '2 = 1 : Niveau de traitement de programme "régulation" inhibé

Le programme système exploite le bloc de données DB 2 (s'il existe) avant


l'appel d'un OB de démarrage (OB 20, OB 21 ou OB 22). La donnée système BS
130 sera mise à 1 ou remise à O par le programme système en fonction du
résultat de cette exploitation. Le programme système appelle ensuite un OB
de démarrage.

Si la donnée système BS 130 (octet de poids faible) est remise à O, les


régulateurs seront traités en mode cyclique en conformité avec la liste des
régulateurs, dans le DB 2.

Donnée système: BS 131 Adresse: EA83

La donnée système BS 131 a une fonction purement indicative.

lbt indicateur "Inhibiticm des aïamnesu : cf. chapitre 6.8.1 (OB 120)

EA83 (octet de poids fort) = O


EA83 (octet de poids faible) :

Bit ,2' 1 2 125


~ 124 123 122 ,2' 12° Inhibition alarmes

I 1' 1 I A Alarmes d'horloge

Bit = 1 signifie: ces alarmes sont inhibées!


Donnée système: BS 132 Adresse: EA84

La donnée système BS 132 a une fonction purement indicative.

Mot indicateur "Ajarrnement des alarmesw : cf. chapitre 6.8.1 (OB 122)

EA84 (octet de poids fort) = O


EA84 (octet de poids faible) :

Bit

Alarmes process

Bit = 1 signifie: ces alarmes sont ajournées!

Donnée système: BS 133 Adresse: EA85 (octet de poids faible)

Désignation:
Bit 27 26 25 24 23 22 '2 '2 Actualisation
de la Mi
I
STOR

ETOR

MCPENT
- MCPSOR
non affecté
-non affecté
-non affecté
-non affecté
-
Bit '2 = O : la MIS suivante est émise

Bit '2 = 1 : la prochaine actualisation de la MIS est inhibée


Bit='2 O : la prochaine mémoire image des entrées sera lue
Bit='2 1 : la prochaine actualisation de la MIE est inhibée

Bit 22 = O : la prochaine mémoire image des mémentos de couplage


d'entrée sera lue
Bit 2* = 1 : la prochaine actualisation de la mémoire image des
mémentos de couplage d'entrée est inhibée

Bit 23 = O : la prochaine mémoire image des mémentos de couplage de


sortie est émise
Bit 23 = 1 : la prochaine actualisation de la mémoire imge des
mémentos de couplage de sortie est inhibée

NOTA: Chaque bit mis à un empêche une fois l'actualisation de la mémoire


image correspondante; ensuite, ce bit est remis aussitôt à O par le
programme système.
Donnée système: BS 135 Adresse: EA87

Ia donnée système BS 135 a une fonction purement indicative.

Hot indicateur "inhibition sélective des alnrmp-c dlhorloge" : cf. cha-


pitre 6.8.2 (OB 121)

EA87 (octet de poids fort)

Désignation:
Bit Inhibition sélective
215 214 213 212
''2 21° '2 '2 d'alarmes d'horloge

Alarme d'horloge 500 ms (OB 15)

Alarme d'horloge 1 s (OB 16)

Alarme d'horloge 2 s (OB 17)

Alarme d'horloge 5 s (OB 18)


--
ll
-
l
-
l O

EA87 (octet de poids faible):

Désignation:
Bit 27 26 25 24 23 22 '2 '2 Inhibition sélective
des alarmes d'horloge
I 1 1 I
I O
-Alarme d'horloge 10 ms (OB 10)
Alarme d'horloge 20 ms (OB 11)
-Alarme d'horloge 50 ms (OB 12)
-Alarme d'horloge 100 ms (OB 13)

Alarme d'horloge 200 ms (OB 14)


I
Bit = 1 signifie: cette alarme d'horloge est inhibée!

Donnée système: BS 137 Adresse: EA89

La donnée système BS 137 a une fonction purement indicative.

Hot indicateur wAjoumement sélectif des aïannes d'harlogew : cf. cha-


pitre 6.8.2 (OB 123)

La donnée système BS 137 a la même structure que la donnée système BS 135.


Le traitement d'une alarme d'horloge est ajourné lorsque le bit corres-
pondant est mis à 1. L'alarme d'horloge est traité si le bit est à 0.
9 Accès à la mémoire par les adresses absolues
Le langage de programnation STEP5 contient des opérations système à l'aide
desquelles il est possible d'accéder à l'ensemble de la mémoire.

IHmKrAm!
üne utilisath non conforme de ces ïmtmctiais peut en l'écrase-
ment de blocs -5 ainsi que & M e s système. Ceci peut avoir p u r
conséquence, des états de fonctronnement intempestifs.
C ' e s t pourquoi les instructiais systéne t m v a U h n t wec des adresses
absolues ne doivent être employées que par des txtiïisateurs ayant de t r è s
bonnes caniaissances du système.

&%mirelocale
On désigne par mémoire locale une zone mémoire prdsente sur chaque CPU
(cartouche utilisateur, zones BA, RAM DB, BB, BS, BT, compteurs, temporisa-
tions, mémentos, mémoire image).

Wém>ire commnie
Cette mémoire (également désignée parfois par mémoire globale) est
commune à toutes les CPU et est adressée par le bus S5.

a &mire
organisation de l
Les zones mémoires sont organisées par octets ou par m.
Organisation par octets: chaque adresse porte sur un octet.
Organisation par mots: chaque adresse porte sur un mot (2 octets).

L'organisation de la mémoire locale est prédéfinie (voir chapitre 8 "Affec-


tation et organisation de la mémoire"). L'organisation de la mémoire com-
mune dépend du type de modules enfichés .
interne,locale externe,commune
multiple unique,adressable par le bus S5
(suivant le nombre (une par automate)
deCPU enfichées)

EDFF
EFFF

FFFF r-
Registrede sélection
2 koctets/mots

Fig. 9-1 : Mémoires locale et commune

Les instructions ci-après permettent d'accéder aux zones mémoire locale et


commune par des adresses absolues.

a) à la zone locale (0000 à EFFF) et à la zone conmiune organisée par octets


(F000 à F3FF, FCOO à FFFF):
TNB, TNW, LIR, TIR
b) à la zone locale organisée par mots (0000 à EDFF):
LRW, TRW, LRD, TRD

C) à la zone commune organisée par octets (0000 à EFFF):


LB GB, LB GW, LB GD, TB GB, TB GW, TB GD, TSG
d) à l a zone commune organisée par mots (0000 à EFFF):
LW GW, LW GD, TW GW, TW GD, TSG

e) à l a zone commune organisée par octets (zone des pages F400 à FBFF):
LB CB, LB CW, LB CD, TB CB, TB CW, TB CD, TSC

f ) à l a zone commune organisée par mots (zone des pages F400 à FBFF):
L
W CW, LW CD, TW CW, TW CD, TSC
Accès à des uxies de la &mire locale oa & la Emoire comgnie par
des adresses absolues

Accès interdunonpossible Accèspossible

-
a) LIR, TIR, TNB, TNW b) LRW, TRW, LRD, TRD

c) LB GB, LB GW, LB GD d) LW GW, LW GD


TB GB, TB GW, TB GD, TSG TW GW, TW GD, TSG

e) LB CB, LB CW, LB CD 9 LW CW, LW CD,


TB CB, TB CW, TB CD, TSC TW CW, TW CD, TSC
9 - 4
9.1 Accès aux registres avec adressage indirect
par accu 1
Les registres sont les mémoires internes nécessaires au processeur pour
effectuer le traitement du programme STEP5. Chaque registre a une longueur
de 16 bits. Les opérations système LIR (chargement indirect de registre),
TIR (transfert indirect de registre), permettent d'accéder au contenu des
registres.

U R O à 15 Chargement dans le registre (de numéro indiqué), du contenu


de la cellule mémoire adressée par l'ACCU 1-L.

TIR O à 15 Transfert du conterni du registre (de numéro indiqué) dans


la cellule mémoire adressée par l'ACCU 1-L.

La cellule mémoire se trouve soit dans la zone locale (0000 à EFFF) soit
dans la zone commune organisée par octets (F000 à F3FF, FCOO à FFFF).

Accès aux pages mémoire

Sur l'automate multiprocesseur S5-135U, les instructions LIR et TIR ne


peuvent être utilisées pour accéder aux pages mémoire (F400 - FBFF).
Utilisez les instructions mentionnées au chapitre 9.3.5 "Accès aux pages
mémoire" ou les fonctions spéciales citées au chapitre 6.6 "Accès aux
pages".

Le tableau suivant indique le contenu des registres de la CPU 928. Sur les
processeurs R et S, le contenu des registres est différent!

Numéro de registre Contenu du registre

Registre O Accu 1-H (mot de gauche de l'accu 1, bits 16-31)

Registre 1 - Accu 1-L (mot de droite de l'accu 1, bits 0-15)

Registre 2 Accu 2-H

Registre 3 Accu 2-L

Registre 6 Registre DBA (adresse de début du bloc de données)

Registre 8 Registre DBL (longueur du bloc de données)

Registre 9 Accu 3-H


- - -

Registre 10 Accu 3-L

Registre 11 Accu 4-H

Registre 12 Accu 4-L

Registre 15 1 CAD (Compteur d'adresses S W )

Les registres 4, 5, 7, 13 et 14 n'existent pas. Les accès à ces registres


par LIR/TIR sont traités comme une opération nulle (NP).
Lia et TIR sur des zones mémoire de 16 bits

1 5 O 15 O

ACCU 1-L
adresse la
cellule mémoire \
1-
I /
Registre 0...15

...1 5
F I
LIRO

r-7- adresse la
\ I
15

/
O
Registre 0...15
ACCU 1-L

LiR et TIR sur des zaies mémoire & 8 bits

15 O 15 7 O
adresse la
\ F F Registre 0...15
cellule mémoire /
ACCU 1-L
LIRO ...1 5

1 5 O 15 7 O
7 7 adressela
[ ,cellulemémoire Registre 0...15
ACCU 1-L

TIR0 ...15

En accédant à l'aide de UR/TIR à des zones mémoire organisées par octets


(pour les adresses mémoire 2 EEOOH, il faut être conscient que:

- pour TIR, seul l'octet de poids faible du registre est transféré (l'octet
de poids fort est perdu);

- pour LIR, l'octet de poids fort du registre est écrit avec FFH.
R e g i s t r e s O à 3 e t 9 à12: accus 1, 2, 3, 4:

Lors du traitement du progrme, les accumulateurs sont utilisés par le


processeur conune mémoire intermédiaire. A l'aide des instructions TIR et
LIR, il est possible de transférer le contenu des accus dans des cellules
mémoires à adressage absolu ou de charger dans les accus le contenu de
cellules mémoire à adressage absolu. L'adresse absolue de la cellule mé-
mire est dans 1 'ACCU 1.

Le contenu de la cellule mémoire dont l'adresse est A000 est chargé dans le
mot de mémentos MW 100.

:L KHAOOO Charger l'adresse A000 de la cellule mémoire dans l'ACCU 1


:LIR 1 Charger le contenu de la celllule mémoire adressé par
l'ACCU 1 dans le registre 1 = ACCU 1
:T MWlOO Ranger le contenu de l'adresse A000 dans le mot de
mémentos MW 100
:BE

Le contenu du mot de mémemtos 200 est transféré dans la cellule mémoire


dont l'adresse est A000.

:L MW200 Charger le mot de mémentos MW200 dans l'ACCU 1


:L KHAOOO Charger dans l'ACCU 1 l'adresse A000 vers laquelle
s'effectue le transfert (mot de mémentos MW200 vers
l'ACCU 2)
:TIR 3 Transférer le contenu du registre 3 = ACCU 2 dans la
cellule mémoire adressée par l'ACCU 1
:BE

R e g i s t r e 6: DEA (adresse de dé- du bloc de d d s ) :

Lors de l'ouverture d'un bloc de données par les instructions A DB et AX


DX, le registre 6 est chargé avec l'adresse chi DW O du bloc de données
ouvert. Cette adresse se trouve sur la liste des adresses de blocs dans le
DB O.

Le registre DBA est remis à "O" avant chaque appel de l'OB 1 ou du FBO.

Le contenu du registre DBA est conservé si :

- par une instruction de saut (SPA/SPB), le traitement du programme est


poursuivi dans un autre bloc, ou si
- un autre niveau de traitement du programme est appelé.
Il évolue:

- si un autre bloc de données est ouvert ou


- s'il y a retour à un bloc appelant après qu'un noweau bloc de données a
été ouvert dans le bloc appelé (cf. chapitre 2.4.3 "Domaine de validité
des blocs de donnéesv1).
Exemple: AX DXi7

Adr. (hex.)
-

5 mots

En-tête de bloc

aaaa

bbbb

h r s de l'appel de DXi7, l'adresse du mot-mémoire dans lequel se trouve


DU O est inscrite dans le registre D M . Dans l'exemple : D M = l51B (hexa-
décimal).

Remarque : L'adresse inscrite dans le registre DBA est donnée sous "ADR-DB1'
dans llITPILE.

L'accès aux mots de données est effectué normalement à l'aide des ins-
tructions STEP5 : L/T DU, L/T DR, L/T DL, L/T DD, U/O/UN/ON/=/S/R Dx.y. Il
n'est cependant autorisé que jusqu'au mot DW 255. En manipulant le registre
DBA, il est possible d'accéder, par ces instructions, à des mots de données
> 255.
Exemple :

Le mot de donnée DU300 du bloc de données DB 100 est chargé en modifiant le


registre 6.

FB7
NOM: LIR/TïR6

: L BS34 Adresse du début de la liste d'adresses du DB+100


: ADD BF+100 = adresse ou figure l'adresse de début DBlOO
: LIR 1 Charger l'adresse du début du DBlOO (DWO) dans l'ACCU 1
: ADD KF+200 Ranger l'adresse du DW 200 du DBlOO dans la donnée
: T BS62 système BS 62
: L BS20 Charger l'adresse de base des données système
: ADD KF+62 Charger l'adresse de la BS 62 dans l'ACCU 1
: LIR 6 Inscrire le contenu de l'adresse de la BS 62 dans le
registre DBA, c.-à-d.
le début du bloc de données est positionné sur DU200
Charger DW300 = DW (200 +100)
Ranger le DW 300 dans le mot de mémentos M O 0
Le registre DBL (voir ci-dessous) n'est as modifié lorsque vous changez le
contenu du registre DBA comme indiqué précédemment. La surveillance des
erreurs de transfert n'est plus garantie!

Vous pouvez également décaler le contenu du registre DBA d'un nombre déter-
miné de mots de données en utilisant l'OB & faactiar spéciale, OB 180
"accès variable au bloc de donnéesn. L'OB 180 modifiant simultanément le
registre DBL, les erreurs de transfert restent surveillées.

FB7
NOM :OB180

Charger les registres DBA et DBL avec les valeurs cor-


respondant au DB100.
Augmenter de 200 le contenu du registre DBA et diminuer
de 200 celui du registre DBL.
Branchement en cas d'erreur (si le DB 100 canrporte
moins de 200 mots de données)
:L Dm00 Charger le contenu du DW 300 et
:T MWlOO l'inscrire dans le MW 100
:BEA
FEHL : Partie de programme pour traitement de l'erreur
Registre 8: DBL = longuem du bloc de damées

En plus du registre DBA, le registre DBL est chargé à chaque appel de bloc
de données. Ce registre contient la longueur (en mots) du bloc de données
appelé, en-tête de bloc non compris.
Le registre DBL est remis à "O" avant chaque appel de l'OB 1 ou du FBO.

Le contenu du registre DBL est conservé si


- par une instruction de saut (SPA/SPB), le traitement du programme est
poursuivi dans un autre bloc ou si
- un autre niveau de traitement du programme est appelé.
Il évolue quand

- un autre bloc de données est ouvert ou


- quand il y a retour au bloc appelant après qu'un noweau bloc de données
ait été ouvert dans le bloc appelé (cf. chapitre 2.4.3 "Domaine de
validité des blocs de données").

Exemple : AX DXl7
Adr. (hex.) DX 17

5 mots

en-tête de bloc

aaaa

bbbb

CCCC

dddd

eeee

ffff

aa
hhhh

A l'appel du DX 17, le nombre des mots de données disponibles est inscrit


dans le registre DBL. Dans l'exemple : DBL = 8 (DU O à DW 7).

Remarque : Le nombre inscrit dans le registre DBL est donné sous "REG-DBL"
dans 1' ITPILE .
Registre 15: ChD = compteur d'adresses $XKP

Pendant le traitement du programme STEP5, le registre 15 contient l'adresse


absolue en mémoire-programme de la prochaine instruction à traiter.

Exqle: Une constante est inscrite dans tais les iots de damées d'un
bloc & b é e s .

Le programme ci-après écrit la constante KH A5A5 dans tous les mots de


données du DB 50. Les instructions STEP5 en caractères gras doivent être
modifiées si l'on veut inscrire d'autres valeurs dans d'autres blocs de
données (DB ou DX). Si le bloc de données n'existe pas ou s'il ne comporte
pas de mots de données, il y a saut au repère NIVO.

L'adresse de début (DBA) et la longueur (DBL) du bloc de données sont


déterminées à l'aide de la fonction spéciale OB 181 "Test d'un bloc de
données (DB/DX)".

Le prograrmne utilise les quatre accumulateurs. La figure représente le


contenu des accumulateurs au cours du déroulement du programme jusqu'au
repère SCHL. Le contenu des accumulateurs n'est pas modifié pendant le
traitement de la boucle.
L'ACCU 1 contient d'abord l'adresse du dernier mot de donnée (DBA +
DBL - 1) et est décrémenté de 1 à chaque répétition de la boucle.
L'ACCU 2 contient l'adresse du premier mot de données (DBA). Le traitement
de la boucle est interrompu dès que le contenu de l'ACCU 1 est inférieur à
celui de l'ACCU 2.
L'instruction TIR 10 est utilisée pour écrire dans les mots de données;
celle-ci inscrit le contenu de l'ACCU 3-L (la constante) à l'adresse indi-
quée dans l'ACCU 1-L.

Constante qui doit être inscrite dans tous les mots


de données
:L KY1.50 Type et numéro du bloc de données
:ENT
:SPA OB181 OB de fonction spéciale "Test de DB"
:SPB =NIVO Abandon si le DB50 n'existe pas
:TAK
:ENT
:+F
ACCU 1: = adresse du dernier mot de donnée + 1
ACCU 2: = adresse du premier mot de donnée
ACCU 3: = constante
: !=F Abandon si le DB50 ne contient pas de mot de
:SPB =NIVO données

SCHL:ADD BF-1 Inscrire la constante contenue dans l'ACCU 3-L


:TIR 10 dans tous les mots de données en commençant par
:a le dernier.
:SPB =SCHL
suite du programme. ..
WEIT : ...après écriture de la constante dans tous les
mots de données,
:BEA
NIVO : ...si le DB50 n'existe pas ou ne contient pas de
données.

Accu 3 1 1
Accu 2 m
Accu i / constante 1
SPA OB181
L KY1,50 EkCT SPB =NIVO

ACCU 4 I Constante

Accu 3 p%zjq Constante Constante

ACCU1 (3- - - - - -9
1
-
.iT] r]\i-]
TAK ENT +F

Figure 9-2 : Contenu des accudateurs au cours du traitement du vro-


gramme

La partie du programme à partir du repère SCHL peut être utilisée pour


écrire une constante dans des zones de mémoire quelconques (p. ex.: mémen-
tos, temporisations, compteurs).

Exemple 9-3: Effacement de tous les octets de mémentos (MBO à MB255)

:L KBO Constante devant être écrite dans tous les octets


de mémentos
:L BS14 Adresses de base de la zone de mémentos (= adresse
du premier octet de mémentos MBO)
:ENT
:L KF256 + longueur de la zone de mémentos
:ENT = (adresse du dernier octet de mémentos MB255) +1
:+F

SCHL:ADD BF- 1 Inscrire la constante contenu dans l'ACCU 3-LI. dans


:TIR 10 dans les 256 octets de mémentos, en commençant par
:Q? l'octet de mémentos MB255
:SPB =SCHL
9.2 Transfert de blocs mémoire

Les opérations système TNB et TNW permettent de transférer des blocs de


mémoire (255 octets max. avec TNB, 255 mots max. avec TNW).

Opération Paramètres Description

TNB O à 255 Transfert d'un bloc mémoire


(1 à 255 octets)

TNW O à 255 Transfert d'un bloc mémoire


(1 à 255 mots)

Les instructions TNB et TNW permettent d'accéder aussi bien à la zone


locale qu'à la zone commune organisée par octets (F000 à F3FF, FCOO à
FFFF) .
TNJ3 et TPR sur les pages mémoire

Sur l'automate multiprocesseur S5-135U, les instructions TNB et TNW ne


peuvent être utilisées pour accéder aux pages mémoire (F400 - FBFF).
Utilisez les instructions mentionnées au chapitre 9.3.5 "Accès aux pages
mémoire" ou les fonctions spéciales citées au chapitre 6.6 "Accès aux
pages".

Le paramètre de l'instruction TNW/TNB indique la longueur (nombre de


mots/nombre d'octets) de la zone à transférer. Il faut d'abord charger
l'adresse de fin du bloc source dans l'accu 2 et l'adresse de fin du bloc
destination dans l'accu 1. Il faut donc indiquer chaque fois l'adresse
supérieure (la plus élevée) du bloc source et du bloc destination. Le
transfert en soi est effectué par la CPU 928 de manière "décroissante",
c'est-à-dire qu'elle débute le transfert avec l'adresse la plus élevée du
bloc source et termine avec l'adresse la plus basse.

Le bloc source et le bloc destination ne doivent pas dépasser les limites


de leur zone mémoire respective et ne doivent pas se recouper s'ils se
trouvent dans une même zone. A ce propos, les différentes zones mémoire
sont les suivantes.

Adresses (hexadécimal)

1. 0000 à lFFF Cartouche utilisateur (16 bits) 8 Kmots


0000 à 3FFF Cartouche utilisateur (16 bits) 16 Iünots
0000 à 7FFF Cartouche utilisateur (16 bits) 32 Iünots

2. 8000 à DD7F RAM DB (16 bits)

3. DD80 à EDFF RAM système (16 bits: DBO, BA/BS,


temporisations, compteurs etc.)

4. EEOO à EFFF RAM (8 bits: mémentos, mémoire image)

5. FOOO à FFFF Périphérie (8 bits)

(Voir chapitre 8 "Affectation de la mémoire")


Pseudo-limites dlinstructianpour !NE et aOP

Les instructions STEP5 TNB et TNW ont un temps d'exécution long; elles
contiennent des "pseudo-limites d'instruction". En d'autres termes, les
données sont transférées en blocs partiels de longueurs différentes suivant
les zones source et destination. Si un défaut (p.ex. dépassement du temps
de cycle) ou une interruption (p.ex. alarmes process ou alarmes d'horloge)
apparaît pendant le transfert d'un bloc, le traitement du bloc d'organisa-
tion correspondant est inséré au niveau de la pseudo-limite d'instruction,
après le transfert du bloc partiel. Pour qu'un OB de traitement d'alarmes
process ou d'alarmes d'horloge puisse être appelé à une pseudo-limite
d'instruction, il faut que le paramétrage, dans le DXO, soit "interruption
aux limites d' instniction".

Fxce~tion:Si des retards d'acquittement et/ou des erreurs d'adressage se


présentent en cours du transfert, la totalité des blocs partiels sera
d'abord transférée; l'OB de réaction correspondant est ensuite appelé une
fois avant l'exécution de l'instruction suivante (l'OB pour ACQ sera appelé
seul si les défauts ACQ et DAD sont simultanés). L'adresse de défaut ACQ
indiquée est toujours l'adresse la plus basse de la zone source. Indépen-
damment de cela, le traitement de l'OB 2, des OB 10 à OB 18 ou d'un OB de
réaction à un défaut peut être inséré au niveau des pseudo-limites d'ins-
truction.

TNB et Rnr entre zones mémoire 8 et 16 bits :

Adresses
croissantes
1 Adresses
croissantes

Adresse
source/destination
- Octet 5

Octet t
Adresse

Transfert des octets 1 à 5: L adresse de source>


L adresse de destination>
TNB5

Transfert des octets 1 à 4: L adresse de source


L <adresse de destinatio*
TNW2
Exemple :

Copie d'un bloc de 4095 mots de données au maximum, d'un bloc de données DB
ou DX dans un autre bloc de données DB ou DX. Le début du bloc est détermi-
né, au sein des blocs de données source et destination, par une valeur
offset entre O et 4095.

KY {type, no)
> QTNR FBlO
DB de source

KF (offset)
> QOFF
DB de source

KY (type, no1 BY
> ZTNR STAT >
DB de destination état

KF {offset)
> ZOFF
DB de destination
KF (longueur de bloc)
> W N

Avant que la copie soit réalisée, les paramètres d'entrée sont vérifiés. E n
cas d'erreur, le bit 27 est mis à 1 dans le pa amètre de sortie STAT et le
type d'erreur est indiqué dans les bits 2O à 2 : 5

O = pas d'erreur Type d'erreur:


1 = erreur 1 = DB source = DB destination
2 = offset ou longueur > 4095
3 = DB source n'existe pas ou n'est pas admis
4 = DB source trop court
5 = DB destination n'existe pas ou n'est pas
admis
6 = DB destination en mémoire morte (cartouche
EPROM)
7 = DB destination trop court

Le F B 10 est divisé en cinq parties de programme accomplissant les tâches


suivantes:

1. Paramètres d'entrée
- Vérification que les blocs de données source et destination ne sont pas
du même type et n'ont pas le même numéro.
- Vérification que les paramètres d'entrée 'offset source', 'offset desti-
nation' et 'longueur de bloc' sont inférieurs à 4096.
2. Bloc de données source
- Vérification que le bloc de données source existe et est assez long.
- Calcul de l'adresse absolue du dernier mot de données dans le bloc
destination.

3. Bloc de données destination

- Vérification que le bloc de données destination existe, est assez long


et se trouve dans la mémoire vive (cartouche RAM).
- Calcul de l'adresse absolue du dernier mot de données dans le bloc
destination.

4. Transfert
- Réalisation de la copie à l'aide de l'instruction TNW.
Les blocs comportant plus de 255 mots sont transférés en blocs partiels
de 128 mots chacun (instruction TNW 128).
Un reste éventuel est transféré à l'aide d'une instruction TNW supplé-
mentaire.

5. Octet indicateur

- Alimentation du paramètre de sortie 'état' (STAT) en fonction du ré-


sultat des contrôles réalisés.

Cellules de mémoire occupées:

Adresse de fin de la zone destination


Adresse de fin de la zone source
Longueur de bloc
Offset dans le bloc de données destination
Type et numéro du bloc de données destination
Offset dans le bloc de données de saurce
Type et numéro du bloc de données source
Compteur de blocs partiels

Prc-tion du bloc fonctiamel FB 10

Remarque: brsque la copie doit être réalisée à partir du mot de données


DW O, les parties de progranmie en italiques sont supprimées.
Aucune valeur offset n'est indiquée.

FBlO

SEGMENT 1
NOM :DB-DB-TR TRANSFERT DB-DB
DES1G:QTNR E/A/D/B/T/Z:D m/KH/KY/Kc/KF/Kir/KZ/KG:KY
DESIG: QOEF E/A/D/B/T/Z :D KM/KH/KY/KC/KF/KT/KZ/KG:KF
DES1G:ZTNR E/A/D/B/T/Z:D ~/KH/KY/KC/KF/Kir/KZ/KG:KY
DESIG: ZûEF E / A / D / B p / Z :D KM/KH/KY/KC/KF/KT/KZ/KG: KF
DES1G:ïAE.N E/A/D/B/T/Z:D ~~/KHrn/Kc/KF/Kir/Kz/KG:m
DESIG:STAT E/A/D/B/T/Z:A BI/BY/U/D: BY
FONCTION "PARAMETRES D 'm l 1 -DEBUT
TYPE (DB/DX) ET NüMXO DU
BLOC DE WNNEES SOURCE
TYPE (DB/DX) ET NüMERO DU
BLOC DE WNNEES DESTINATION
DB SOURCE = DB DESTINATION ?
SAUT, SI OUI

:LW +OFF OFFSET DANS LE BLCK: DE DONNEES


:T MWS52 SOURCE
:LW =ZOFF OFFSET DANS LE BLOC DE POM4EES
:T MW248 DESTINATION
:CW
: w =MN LONGUEüR (NOMBRE DE MOTS DE DONNEES)
:T MW246 DU BLûC A TRANSFERER
:CW (LONGüJWR DE BLOC)
:L KHFOOO OFFSET SOURCE, OFFSET DESTINATION OU
:UW LONGUEUR >c 4096 ?
:SPP =F002 SAUT, SI OUI
FONCTION "PAFWEEES D 'ENTREE"-FIN

FONCTION "BLOC DE DONNEES SOURCE"-DEBUT


:L MW254 TYPE ET NUKERO DU DB SOURCE
:SPA OB181 TEST DU BLûC DE DONNEES
:SPB =F003 SAUT SI TEST DE BLOC NEGATIF
:TAK A1:NOMBRE DE DW, A2:ADRESSE
:ENT A3 :ADRESSE
: L MW252 OFFSET DANS LE BLiX SWRCE
:m A3:NOMBRE DE LW, A4:ADRESSE
:L MW246 LONGüEüR DE BLOC
:+F OFFSET + LONGïJEüR DE BLOC
:a NOMBRE DE DW < OFFSET + LONGüJWR BL.?
:SPB =F004 SAUT, SI OUI
:L KB1 A2: OFFSET + L.BL., A3:ADRESSE
:-F OFFSET + LONGUEUR DE BLOC - 1
:+F OFFSET + L.BL.-1+ ADRESSE
:T MW244 ADRESSE DE FIN DE IA ZONE SOURCE
FONCTION "BLOC DE DONNEES SOURCEf1-FIN

FONCTION "BLOC DE DONNEES DESTINATIONq1-DEBUT


:L MW250 TYPE ET NüMERO DU DB DESTINATION
:SPA OB181 TEST DU BLûC DE DONNEES
:SPB =F005 SAUT SI TEST DE BLOC NEGATIF
:SPM =F006 SAUT SI BLûC DANS EPROM
:TAK A1 :NOMBRE DE DW, A2 :ADRESSE
:ENT A3:ADRESSE
:L MW248 OFFSET DANS LE BLiX DE DESTINATION
:m A3:NOMBRE DE LW, A4:ADRESSE
:L MW246 MNGüEüR DE BLOC
:+F OFFSET + LONmEiJR DE BLOC
:a NOMBRE DE DW < OFFSET + LONGüJWR BL.?
:SPB =F007 SAUT, SI OUI
:L KB1 A2:OFFSET + L.BL.,Aî:ADRESSE
: -F OFFSET + LONGUEUR DE BLOC - 1
:+F OFFSET + L.BL. - 1 + ADRESSE
:T MW242 ADRESSE DE F M DE 'LA ZONE DESTINATION
FONCTION "BLOC DE DONNEES DESTINATION"-FIN
FONCTION "TRANSFERT"-DEBUT
:L KBO VALEUR DE COMPARAISON
:L MB246 WNGüEüR DE BWC, OCTET POIDS FORT
: !=F LONGüEüR DE B W C >- 256 MOTS?
:SLW 1 MULTIPL. PAR 2, NOMBRE DE BLOCS PARTIELS
:T BS60 DE 128 MOTS CHACUN
:L MW244 ADRESSE DE FIN DE LA ZONE SOURCE
:L MW242 ADRESSE DE FIN DE LA ZONE DESTINATION
:SPB =REST SAUT SI L. DE BLOC < 256 lSYI"I'
SCHL :TNW 128 TRANSFERT D'UN BLOC PARTIEL
:ADD KF-128 ADRESSE DE FIN ZONE SOURCE DIMINüEE DE LA
:TAK LONGUEUR DU BLOC PARTIEL
:ADD KF-128 ADRESSE DE FIN ZONE DESTINATION DIMINUEE DE
:TAK LA LONGüEüR DU BLOC PARTIEL
:SPA OB160 BOUCLE DE COMPTAGE
:SPB SCHL SAUT SI LES BLOCS PARTIELS NE SONT PAS TOUS
TRANSFERES
REST :B ~ ~ 2 4 6 LONGüEüR DE BLOC, OCTET POIDS FAIBLF,
:TNW O TRANSFERT DU BLOC RESTANT
FONCTION "TRANSFERT"-FIN

FONCTION "OCTET INDICATEUR"-DEBUT


:L Ki30 INDICATIF 00 (HEX.): PAS D'ERREUR
ENDE :T STAT PAEUliXTRE DE SORTIE ETAT/ERRELR
:BEA
F001 :L KB129 INDICATIF D'ERREUR 81 (HEX.):
:SPA =ENDE DB SOURCE = DB DESTINATION
F002 :L KB130 INDICATIF D'ERREUR 82 (HEX.):
:SPA =ENDE OFFSET OU LONGUEUR >= 4096
F003 :L KB131 INDICATIF D'ERREUR 83 (HEX.):
:SPA =ENDE DB SOURCE INADMISSIBLE
F004 :L Ki3132 INDICATIF D'ERREUR 84 (HEX.):
:SPA =ENDE DB SOURCE TROP COURT
F005 :L KB133 INDICATIF D'ERREUR 85 (HEX.):
:SPA =ENDE DB DESTINATION INADMISSIBLE
F006 :L KB134 INDICATIF D1ERREUR 86 (HEX.):
:SPA =ENDE DB DESTINATION DANS MEMOlRE MORTE
F007 :L KB135 INDICATIF D'ERREUR 87 (HEX.):
:SPA =ENDE DB DESTINATION TROP COURT
FONCTION "OCTET INDICATEUR1'-FM
:BE
9.3 Opérations avec l e registre de base BR
Le registre BR (registre de base, 32 bits) est utilisé par les instructions
de chargement et de transfert décrites ci-après (chapitre 9.3.3 et sui-
vants) pour l'adressage de la mémoire. L'accès porte sur la cellule mémoire
dont l'adresse absolue est égale au contenu du registre BR augmenté d'une
constante:

adresse absolue = contenu du registre BR + constante


Le contenu du registre BR est conservé si
- par une instruction de saut (SPA/SPB), le traitement du programe est
poursuivi dans un autre bloc ou si
- un autre niveau de traitement du progranime est appelé.

Le registre BR est remis-à"0" avant l'appel d'un niveau de traitement de


programe.

9.3.1 Chargement du registre de base BR

Les instructions suivantes permettent de recharger ou de modifier le con-


tenu du registre de base BR.

Opération Paramètre Description

MBR Constante Chargement du registre BR par une constante de


O-FFFFF 20 bits
(hexadécimal)

ABR Constante Addition d'une constante de 16 bits au contenu


- 32768 à du registre BR
+ 32767
(décimal)

Les bits 2*O à 231 sont mis à "0".

MBR O à FFFFF ABR -32767 à +32767

Constantede20 bits

9- Constantede 16 bits
gbreivirgule
9.3.2 (&&rat- de transfert entre registres

Pour pouvoir utiliser les registres de manière plus souple, de nouvelles


instructions ont été créées permettant de modifier les contenus des diffé-
rents registres ou de les transférer dans d'autres registres.

ûpération Paramètre Description

MAS Transfert du contenu de 1 'ACCU 1 (bits


'2 à 214) dans le registre CAD (poin-
teur d'adresses STEP)

MBS Transfert du contenu du registre BR


(bits '2 à 214, registre de base) dans
le registre CAD (pointeur d'adresses STEP)

MSA Transfert du contenu du registre CAD


(pointeur d'adresses STEP) dans l'ACCU 11)

MSB Transfert du contenu du registre CAD


(pointeur d'adresses STEP) dans le
registre BR (registre de base) 1)

MAB Transfert du contenu de l'ACCU 1 (bit


'2 à 231) dans le registre BR (registre
de base)

MBA - Transfert du contenu du registre BR


(registre de base) dans l'ACCU 1

l) Les bits 215 à 231 sont mis à "Ow.

Tl :FI
MAS. MBS

.............. x Accul, BR

CAD
MSA. MSB

O ...............O
Accul, BR
WD

MAB. MBA

31 15 O

Accul
9 . 3 . 3 Accès à la mémoire locale

Les instructions suivantes permettent d'accéder à la mémoire locale organi-


sée par mots par intermédiaire d'adresses absolues. L'adresse absolue
correspond à la somme du contenu du registre de base BR et de la constante
de 16 bits paramétrée dans l'instruction (-32768 à +32767).

ûpération Paramétre Description

Chargement dans l'ACCU 1-L du mot


adressé par registre BR + constante

Chargement dans l'ACCU 1 du double mot


adressé par registre BR + constante

TRW -32768 à Transfert du contenu de l'ACCU 1-L dans


+32767 le mot adressé par registre BR + constante

TRD Transfert du contenu de l'ACCU 1 dans


le double-mot adressé par registre BR
+ constante

L'adresse absolue doit être comprise entre O et EDFFH (pour IRW, TRW) ou O
et EDFM (pour LRD, TRD). Si ce n'est pas le cas, le processeur décèle une
erreur de dépassement de temps et appelle l'OB 31. L'ACCU 1 contient des
codes d'erreur qui expliquent de façon plus détaillée le défaut apparu (cf.
chapitre 5.6.2 "Autres dépassements de temps").

9 . 3 -4 Accès à la mémoire coamune

Les instructions suivantes permettent d'accéder à la mémoire commune orga-


nisée par o c t e t s ou par m t s par des adresses absolues. L'adresse absolue
correspond à la somme du contenu du registre de base BR et de la constante
paramétrée dans l'instruction (-32768 à 32767).

Test et positianaement d'une cellule & réservatiai d'accès dans la zone


COmrmne

L'accès de plusieurs processeurs à une zone mémoire c o m m e peut être géré


par le biais d'une cellule de réservation d'accès. Une telle cellule est
associée à chacune des zones mémoire conununes et doit être testée par
chacun des processeurs désireux d'accéder à cette zone. La cellule de
réservation d'accès contient soit la valeur "O", soit le numéro d'em-
placement du proceseur qui accède en ce moment à la zone mémoire et qui,
après l'accès, devra écrire l a valeur "O" dans l a c e l l u l e pour l i b é r e r
l'accès à c e t t e zone mémoire.
L'instruction TSG permet de tester et de positionner une cellule de réser-
vation d'accès.

Opération Paramètre Description

TSG -32768 à Test et positionnement de la cellule


+32767 de réservation d'accès adressée par
le contenu du registre BR + cons-
tante paramétrée

L'adresse absolue doit être comprise entre O et EFFFH. Si ce n'est pas le


cas, le processeur détecte un dépassement de temps et appelle l'OB 31.
L'ACCU 1 contient des codes d'erreur qui expliquent de façon plus détaillée
le défaut apparu (cf. chapitre 5.6.2 "Autres dépassements de temps").

La cellule de réservation d'accès est constituée par l'octet de poids


faible du mot adressé par le contenu du registre BR + constante.
Si le contenu de cet octet est "O", l'instruction TSG y inscrit le numéro
d'emplacement de la CPU (figurant dans BS 29).

Le test (=lecture) et l'éventuelle réservation (=&crime) constituent une


unité de programme qui ne peut pas être interrompue.

Le résultat du test est exploitable par l'intermédiaire des indicateurs FL0


et FL1:

no FL1 Signification

O O Le contenu de la cellule de réservation d'accès


était "O1';le processeur y a inscrit son numéro
d ' emplacement.

O 1 La cellule de réservation d'accès contient le


propre numéro d'emplacement du processeur.

1 O La cellule de réservation d'accès contient le


numéro d'emplacement d'un autre processeur.

ImamAwr!
L'instructian TSG doit être utilisée par tais les processeurs &nt
l'accès à une zone mémoire caumme doit être coardanié.

Voir aussi les explications concernant les instructions SES et SEF


(positionnement/libération de sémaphores, chapitre 3.2.2) et l'OB de
fonction spéciale OB 218 (réservation d'accès à une page, chapitre
6.6.3).
Opérations & chargement e t de transfert pan la a i r e camune organisée
par octets

Opération Paramètre Description

LB GB -32768 à Chargement dans l'accu 1-LL


+32767 de l'octet adressé par registre BR +
constante

LBGW -32768 à Chargement dans l'accu 1-L


+32767 chi mot adressé par registre BR +
constante

LB GD -32768 à Chargement dans l'accu 1 du double


+32767 mot adressé par registre BR + constante

TB GB -32768 à Transfert du contenu de l'accu 1-LL dans


+32767 l'octet adressé par registre BR +
constante

-32768 à Transfert du contenu de l'accu 1-L dans


+32767 le mot adressé par registre BR + cons-
tante

-32768 à Transfert du contenu de l'accu 1 dans le


+32767 doubleinot adressé par registre BR +
constante

L'adresse absolue (hexa) doit être comprise

- entre O et EFFF'H (pour LB GB, TB GB),

- entre O et EFFEH (pour LE3 GW, TB GW) ,

- entre O et EFFCH (pour LB GD, TB GD).

Si ce n'est pas le cas, le processeur décèle un dépassement de temps et


appelle l'OB 31. L'accu 1 contient des codes d'erreur qui expliquent de
façon plus détaillée le défaut apparu (cf. chapitre 5.6.2 "Autres dépasse-
ments de temps")
Opérations de chargement et de transfert paa la *ire cammme organisée
parmots

ûpération Paramètre Description

WGW -32768à Chargementdansl'accul-Ldumotadressé


+32767 par registre BR + constante

W GD -32768 à Chargement dans l'accu 1 du double-mot


+32767 adressé par registre BR + constante
TWGW -32768 à Transfert du contenu de l'accu 1-L dans le
+32767 mot adressé par registre BR + constante

TW GD -32768 à Transfert du contenu de l'accu 1 dans le


+32767 double-mot adressé par registre BR +
constante

L'adresse absolue doit être comprise entre O et EF'E'FH (pour LW GW, TW GW)
et entre O et EFE'EH (pour W GD, TW GD). Si ce n'est pas le cas, le
processeur décèle un dépassement de temps et appelle l'OB 31. L'accu 1
contient des codes d'erreur qui expliquent de façon plus détaillée le
défaut apparu (cf. chapitre 5.6.2 "Autres dépassements de tempsw).

9.3.5 Accès aux pages mémoire

Entre les adresses F400H et FBFFH, la mémoire c o m m e comporte une "fe-


nêtre" pour l'insertion de l'une parmi max. 256 zones mémoire (= pages).
Une page occupe une plage d'adresses de 2K et peut être organisée par
octets ou par mots. Avant chaque accès à une page, son numéro doit être
inscrit dans le registre de sélection. L'écriture du registre de sélection
et l'accès à la page correspondante ne sont pas interruptibles.

Les instructions suivantes permettent d'accéder aux pages organisées par


octets ou par nwts au moyen d'adresses absolues. L'adresse absolue est
donnée par la somme du contenu du registre de base (BR) et de la constante
paramétrée dans l'instruction (-32768 à 32767).

Tout accès (chargement/transfert) à une page doit être précédé par l'appel
de cette page. A cet effet, charger l'accu 1-L avec le numéro de la page à
appeler; ce numéro est transféré par l'instruction ACR dans le registre de
page. Avant l'accès à une page, toutes les opérations suivantes portant sur
la page écrivent le contenu du registre de page dans le registre de sélec-
tion.
Le contenu du registre de page reste conservé si
- l'exécution du programme est poursuivie dans un autre bloc, suite à
une instruction de saut (SPA/SPB), ou si
- un autre niveau de traitement de programme est imbriqué.

Avant 1' appel d'un niveau de traitemernt de programme, le registre de


page est mis à "O".

Appel d'une page

ûpération Paramètre Description

ACR Ouverture de la page dont le numéro est


contenu dans l'accu 1-I;L

Valeurs admises: O à 255

Le numéro de page doit être compris entre O et 255. Si ce n'est pas le cas,
le processeur décèle un dépassement de temps et appelle l'OB 31. L'accu 1
contient des codes d'erreur qui expliquent de façon plus détaillée le
défaut apparu (cf. chapitre 5.6.2 "Autres dépassements de tempsw).

Test et positiamenent d'une cellule & réserwstiai d'accès dans la zone &
pages
L'accès de plusieurs processeurs à une zone mémoire commune peut être géré
par le biais d'une cellule de réservation d'accès. Une telle cellule est
associée à chacune des zones de page et doit être testée par chacun des
processeurs désireux d'accéder à cette zone. La cellule de réservation
d'accès contient soit la valeur "O", soit le numéro d'emplacement du pro-
cesseur qui accède en ce moment à la zone mémoire et qui, après l'accès,
devra écrire la valeur "O" dans la cellule pour libérer l'accès à cette
zone mémoire.

L'instruction TSG permet de tester et de positionner une cellule de réser-


vation d'accès.

Opération Paramètre Description

TSC -32768 à Test et positionnement de la cellule de


+32767 réservation d'accès adressée par le conte
nu du registre BR + constante paramétrée

L'adresse absolue doit être comprise entre F400H et FBFFH. Si ce n'est


pas le cas, le processeur décèle un dépassement de temps et appelle
l'OB 31. L'accu 1 contient des codes d'erreur qui expliquent de façon
plus détaillée le défaut apparu (cf. chapitre 5.6.2 "Autres dépasse-
ments de temps1').

La cellule de réservation d'accès est constituée par l'octet de poids


faible du mot adressé par le contenu du registre BR + constante. Si le
contenu de cet octet est "O", l'instruction TSG y inscrit le numéro d'em-
placement du processeur (figurant dans BS 29).
Le test (=lecture) et l'éventuelle réservation (=écriture) constituent
une unité de programme qui ne peut pas être interrompue.

Le résultat du test est exploitable par l'intermédiaire des


indicateurs RX) et F U :

n
o ni Signification
I I

O O Le contenu de la cellule de réservation d'accès était


"O"; le processeur y a inscrit son numéro d'emplacement.

O 1 La cellule de réservation d'accès contient le propre


numéro d'emplacement du processeur.

O La cellule de réservation d'accès contient le numéro


d'emplacement d'un autre processeur.

lwoR!mm!
L'instruction TSG doit être utilisée par les processeurs Qnt
l'accès à une zone mémoire c<mmrne doit être coordatnié.

Voir aussi les explications concernant les instructions SES et SEF (posi-
tionnement/libération de sémaphores, chapitre 3.2.2) et l'OB de fonction
spéciale OB 218 (réservation d'accès à une page, chapitre 6.6.3).

Opérations de chargement et & transfert pour les piges mganhées par


octets

Opération Paramètre Description

LB CB -32768à Chargementdansllaccul-I;Ldelloctet
+32767 adressé par registre BR + constante dans
la page appelée

LBCW -32768 à Chargement dans l'accu 1-L du mot adressé


+32767 par le registre BR + constante dans la
page appelée

LB CD -32768 à Chargement dans l'accu 1 du mot-double


+32767 adressé par le registre BR + constante
dans la page appelée
B8577633-01

Suite:

Opération Paramètre Description

TB CB -32768 à Transfert du contenu de l'accu 1-LZ. dans


+32767 l'octet adressé par registre BR + cons-
tante dans la page appelée

TB CW -32768 à Transfert du contenu de l'accu 1-L dans


+32767 le mot adressé par registre BR + constante
dans la page appelée

TB CD -32768 à Transfert du contenu de l'accu 1 dans le


+32767 double-mot adressé par registre BR +
constante dans la page appelée

L'adresse absolue doit être comprise

- entre F400H et FBFE'H (pour LB CB, TB CB) ,

- entre F400H et FBFM (pour LB CU, TB LW),

- entre F400H et FBFCH (pour LB CD, TB CD).


Si ce n'est pas le cas, le processeur décèle un dépassement de temps et
appelle l'OB 31. L'accu 1 contient des codes d'erreur qui expliquent de
façon plus détaillée le défaut apparu (cf. chapitre 5.6.2 "Autres dépasse-
ments de temps")
B8577633-01

Opérations de chargement et de transfert pan les pages -es par

Opération Paramètre Description

LWCW -32768 à Chargement dans l'accu 1-L du mot adressé


+32767 par registre BR + constante &m la page
appelée

LW CD -32768 à Chargement dans l'accu 1 du double-mot


+32767 adressé par registre BR + constante dans
page appelée

TWCW -32768 à Transfert du contenu de l'accu 1-L dans


+32767 le mot adressé par registre BR + cons-
tante dans la page appelée

TW CD -32768 à Transfert du contenu de l'accu 1 dans le


+32767 double+not adressé par registre BR + cons-
tante dans la page appelée

L'adresse absolue doit être comprise entre FF400 et FFBFF (pour LW CW, TW
CW) ou entre FF400 et FFBFE (pour IXJ CD, TW CD). Si ce n'est pas le cas, le
processeur décèle un dépassement de temps et appelle l'OB 31. L'accu 1
contient des codes d'erreur qui expliquent de façon plus détaillée le
défaut apparu (cf. chapitre 5.6.2 "Autres dépassements de temps").
10 Configuration multiprocesseur/Exploitation avec
processeurs de communication
10.1 Avertissements
Pour résoudre des problèmes d'automatisme complexes et techniquement divi-
sibles, il est possible de faire fonctionner l'appareil de base S5-135U
avec 1 à 4 C W . Chaque processeur traite alors son programme indépendamment
des autres. b r s de l'exploitation en multiprocesseur, les processeurs
mentionnés ci-après peuvent être associés suivant différentes combinaisons:

- processeur S; il convient particulièrement pour la conmande (tâches de


conmande binaires), la surveillance et la signalisation; il occupe un
emplacement.
- processeur R; il convient particulièrement pour le calcul et la régula-
tion (tâches de commande numériques), la communication, la surveillance
et la signalisation; il occupe un emplacement.
- processeur M; il est polyvalent et peut être utilisé pour la programma-
tion en langages évolués; il occupe un emplacement.
- CPU 928; unité centrale universelle qui convlent particulièrement pour
la commande, le calcul et la régulation (tâches de conmande binaires et
numériques); elle occupe deux emplacements.

Exploitation en multiprocesseur - quand et aammt?


- Si le programme d'application est trop volumineux pour être traité par
un seul processeur et si la place disponible en mémoire est trop juste,
il est possible de répartir les différentes fonctions de programme sur
plusieurs processeurs.
- Quand une certaine partie de l'installation doit être traitée très ra-
pidement, il est possible d'isoler du reste les parties de programme
concernées, et de confier leur traitement à un processeur 'rapide'.
- Si l'installation est constituée de plusieurs parties pouvant être fa-
cilement délimitées et commandées ou régulées de façon relativement
indépendante, il est possible d'affecter la partie 1 au processeur 1, la
partie 2 au processeur 2, et ainsi de suite.

Pour l'exploitation en multiprocesseur, se reporter à l'instruction "Ex-


ploitation en multiprocesseur des automates S5-135U et S5-155U" (C79000-
-B8577-C500-02). Cette notice explique le cheminement, étape par étape, de
la mise en service d'un automate muitiprocesseur. Elle donne également des
indications sur l'utilisation, décrit quelques cas standards de défauts et
guide vers les causes possibles de défaut.
llmxawT!
(niest en fonctianiement multiprocesseur, dés qa'tm ooordinateur (= WR)
est enfiché dans l'appareil de base, b%p * t &fait qu'il y ait nne
ai plusieurs CPü en place!

La tâche du coordinateur est de coordonner l'échange des données entre les


différents processeurs. Pour cela, il doit connaître les emplacements à
'gérer', c'est-à-dire, connaître le nombre de processeurs afin de powoir
allouer successivement à chacun d'eux un créneau de temps pendant lequel il
peut accéder au bus S5.

l-lmxwm!
Ceci exige de régler sur l e comdïnateur l e Iiaibre de processeurs (voir
notice d'utilisation du comdïnateur) ! Iors de cette opératim, il faut
tenir compte de la largeur de chaque pmcesseur (p.ex. processeur R, siniple
largeur; CPü 928, double largeur).

Si, par exemple, le nombre "3" est réglé sur le COR, ce dernier gère les 3
premiers emplacements qui sont à sa droite (no 17, no 19 et no 27; voir
instructions d'utilisation de la CPU 928).
Dans ce cas, le quatrième emplacement (no 35) n'est Das néré par le COR. Un
processeur éventuellement enfiché à cet emplacement ne pourrait pas accéder
au bus.

lHPomAm!
Ie coordinateur et les processeurs doivent être enfichés sans laisser d'em-
placement vide !

Dès que l'on se trouve en fonctionnement multiprocesseur, il est nécessaire


de programmer le bloc de données DB 1 de chauue processeur. Ce bloc con-
tient une liste des entrées/sorties TOR et des mémentos de couplage d'en-
trée et de sortie qui sont affectés aux processeurs respectifs (voir cha-
pitre 10.3.1)!
10.2 Echange de données entre processeurs
Pour l'échange cyclique de données binaires entre les processeurs ou entre
les processeurs et les processeurs de comnnaiication, on dispose de "memen-
tos de carpiagew (voir chapitre 10.2.1).

Pour l'échange de gros volumes de données (par ex. des blocs de données
complets) entre les processeurs M et R et CPU 928, on pourra recourir aux
wfaictions spéciales pan la cammnicatim aiLtiprocesseur: OB 200 à OB
205" (cf. chapitre 10.2.2).
Pour communiquer avec les cartes périphériques intelligentes (IP) et avec
les processeurs de communication (CP), on dispose de "blocs & dialoguew
(voir chapitre 6.9).

Si l'on désire transférer des paquets de données de grande longueur et


s'assurer que les autres processeurs ne vont pas interrompre le transfert,
il est nécessaire de le faire par logiciel en utilisant les wsémapboresw
(voir chapitre 3.2.2).
10.2 -1 Mémmtos de couplage

Pour l'échange cyclique de données binaires, on dispose de mémentos de


couplage. Ceux-ci servent en premier lieu au transfert d'informations par
octets.

Ce transfert de données peut être effectué entre

Le programme système transfère les mémentos de couplage une seule fois par
cycle. Lors du transfert de données entre les processeurs, les mémentos de
couplage sont mémorisés de façon intermédiaire sur le coordinateur.

Les mémentos de couplage sont des octets mémentos qui sont transférés. Ils
sont définis , pour chaque processeur, dans le bloc DB 1 en tant que mémen-
tos d'entrée ou de sortie.
Si, par exemple, l'octet de mémentos 50 est défini sur le processeur 1
comme mémento de couplage de sortie, cet octet est transféré de manière
cyclique, par l'intermédiaire du coordinateur, vers le processeur pour
lequel l'octet de mémentos 50 est défini came mémento de couplage d'en-
trée.

Sur le coordinateur et sur les processeurs de conunmication, la zone mé-


moire réservée aux mémentos de couplage se trouve entre les adresses F2ûûü
et F2PPB. Chaque processeur/processeur de conunmication dispose de
256 octets de mémentos de couplage.
m e de darnees entre processeurs

L'échange de données entre les divers processeurs (CPU 928, processeurs R,


S et M) est réalisé par l'intermédiaire du coordinateur. Les processeurs
lisent dans le coordinateur les octets mémentos qui sont définis dans le
bloc DB 1 en tant que mémentos de couplage d'entrée et écrivent dans le
coordinateur les octets de mémentos qui sont définis comme mémentos de
couplage de sortie.

Sur le coordinateur, il faut définir le nombre des mémentos de couplage


nécessaire : les 256 (mx.) octets de mémentos de couplage peuvent être
partagés en secteurs de 32 octets (8 secteurs) par mise en place de cava-
liers. A ce sujet, se reporter à la notice d'utilisation du coordinateur.

Exemple :

Processeur 1 Coordinateur
1 t
Mémentos de couplage de sortie :
MB 96 à MB 119

Mémentos de couplage d'entrée :


MB 120 à MB 125
-1

Secteur validé :
Processeur 2 octets de mémentos de
couplage 96 à 127
1

Mémentos de couplage de sortie :


MB 120 à MB 125

Mémentos de couplage d'entrée :


MB 96 à MB 119
1

ImORmm!!
- Il ne faut utiliser que les mémentos de couplage validés sur le wordi-
nateur!
- Si, sur un ou plusieurs processeurs, un octet de &mentos a été défiai
carnie mémentos de couplage d'entrée, il faut que cet octet soit défini
sur un autre processeur camme mémentos de conplage de sortie. De plus.
un octet de mémentos ne doit être défini ~finiip--tas de couplage de
sortie que sur ini seul processeur; par contre, cn peut définir cet octet
carnie mémentos de couplage d'entrée sur trois antres processeurs!
- Sur un processeur, les octets de &œntos qui ne sont pas définis came
étant des mémentos de couplage peuvent être utili.;és caame des d n m ~ t o s
nonIlam!

- Il ne faut indiquer dans le bloc DB 1 que le maibre réeUement néces-


saire de mémntos de couplage : plus le noai2rre de mhentos de conplage
sera petit, plus le t q de transfert sera faible!
Echange de damees entre processeurs et processeurs & cammmïcatiai

Lorsque les données doivent être échangées entre un processeur et un pro-


cesseur de communication, il faut valider le nombre nécessaire de mémentos
de couplage sur le processeur de communication. Là aussi, on dispose de 256
octets, divisibles en secteurs de 32 octets.

Lorsque le transfert doit être effectué d'un processeur vers plusieurs


processeurs de communication, il ne doit pas v avoir de recomement entre
les secteurs validés sur les différents processeurs de communication, de
manière à ce que les adresses ne soient pas utilisées deux fois.

Exemple :

Processeur 1
1

Mémentos de couplage de sortie : Secteur validé :


Octets de mémentos
CP1: MB96 à MB119 de couplage
96 à 127
CP2: MB201 à MB205

Mémentos de couplage d'entrée :


Secteur validé :
CP1: MB120 à MB125 Octets de mémentos
de couplage
CP2: MB195 à MB200 192 à 223

4-

Si l'on veut utiliser des mémentos de couplage simultanément sur le coordi-


nateur et sur un ou plusieurs processeurs de communication, il faut égale-
ment éviter un double adressage:
Diviser les mémentos de couplage en secteurs de 32 octets sur le coordina-
teur et sur les processeurs de communication; les octets de mémentos utili-
sés sur le processeur de communication sont à masquer sur le coordinateur
en retirant les cavaliers correspondants (voir notice d'utilisation du
coordinateur employé) .

Dans ce cas également, un octet de mémentos ne peut être défini comme mé-
mentos de couplage de sorties que sur 'ol. seul processeur. Par contre, un
même octet de mémentos peut être défini comme mémentos de couplage d'entrée
sur plusieurs processeurs et/ou processeurs de communication.
Transfert de mémentos de couplage en f<nctïamement nultiprocesseur

Les mémentos de couplage indiqués dans le DB 1 sont transférés quand le


processeur reçoit de la part du coordinateur le signal lui indiquant
qu'elle peut accéder au bus S5.

Le coordinateur accorde successivement à chaque processeur le signal d'ac-


cès au bus. A cette occasion, chaque processeur n'a le droit de transférer
q u ' ~
seul octet. Cette transmission fractionnée peut entraîner une perte
de cohérence des informations transmises par un groupe de mémentos de
couplage et un traitement sur des valeurs erronées.

Si les informations à transférer portent sur plusieurs octets, l'OB de


fonction spéciale OB 224 doit être utilisé: l'OB 224 permet le transfert
par paquets de tous les mémentos de couplage indiqués dans le DB 1. Un
processeur en train de transférer des mémentos de couplage ne peut être
interrompu par un autre processeur. Ce dernier devra donc ajourner son
opération de transfert, ce qui se traduit par une suspension du traitement
cyclique pendant ce temps d'attente.
L'utilisation de l'OB 224 peut entraîner un allongement sensible du temps
de cycle (cf. chapitre 6.8.6).
Les blocs d'organisation OB 200 à OB 205 permettent, en mode multiproces-
seurs d'échanger de plus grandes quantités de données (p.ex. de blocs de
données complets) entre les différents processeurs, les données étant
mémorisées temporairement dans le coordinateur C.

L'OB 200 installe, dans le coordinateur C, la mémoire tampon dans laquelle


seront mémorisés temporairement les paquets de données à transférer.

L'OB 202 transmet un paquet de données dans la mémoire tampon du coordi-


nateur C et indique le nombre de paquets de données powant encore être
émis.

L'OB 203 détermine le nombre de blocs mémoire encore libres dans le mémoire
tampon du coordinateur C.

L'OB 204 reprend un paquet de données de la mémoire tampon du coordinateur


C et indique le nombre de paquets de données powant encore être reçus.

L'OB 205 détermine le nombre de blocs mémoire occupés dans la mémoire


tampon du coordinateur C.

Le mode d'emploi détaillé concernant ces blocs d'organisation de fonction


spéciale figure à la section 8 du présent manuel et porte le titre "SIMATIC
S5, automates programables S5-135U,communication multiprocesseur".

10 - 2 . 3 Transfert de paquets de h é e s whémnts

Si l'on désire transférer des paquets de données de grande longueur et


s'assurer que les autres processeurs ne vont pas interrompre le transfert,
il est possible de le faire par logiciel en utilisant des wsémapboresw(cf.
chapitre 3.2.2).
10.3 Affectation de la périphérie
ïa zone de périphérie de chaque processeur occupe les adresses WOOB à
F'FFFE. Dans cette zone sont adressées les cartes de périphérie, sont
disposés les mémentos de couplage et la zone tampon. T a les processeurs
peuvent accéder en lecture et en écriture à cette zone de périphérie. De ce
fait, le rôle du coordinateur est de coordonner l'accès de chaque proces-
seur à cette zone.

10.3.1 Bloc de données DB 1

En fonctionnement multiprocesseur, le bloc de données DB1 doit être pro-


g r m é pour chaque processeur. On définit ainsi les entrées/sorties et les
mémentos de couplage d'entrée et de sortie avec lesquels le processeur en
question va travailler.

nnmaATm!
Seules les entrées/sorties définies dans le bloc DB 1 sont prises en caupte
lors de l'actualisation de la mémoire image!

1. En mode on-line, à l'aide de la console, lorsque le processeur est en


STOP et équipé de mémoires utilisateur RAM.

2. Par la programmation des cartouches EPROM.

llmmmrr!
L'introduction ou la modification du bloc DB 1 n'est prise en compte par le
processeur qu'en effectuant un nameau w&krragew!

Pr~xg-.tion du bloc DB 1 à l'aide de maques et touches fanctions :

DB 1 (exemple) :

ENTREES TOR , 0, 1, 2, 3, 7, 10, D D , 9

SORTIES TOR

Y , 9 , D D > > Y > >

MEMENTOS COUPL. SORTIE , 70, 72, 100, 9 3 > > > > s

LONGUEUR BLûC TEMPOS

(Il peut se produire qu'un DB 1 introduit à l'aide d'un masque sous


"S5-DOS" ne soit pas lu correctement par le logiciel PG " Studos".)
Elabaration manuelle d'un bloc DB 1:

Les mots de données 0, 1 et 2 doivent contenir l'indicatif de début


de DB 1. Pour cela, il faut définir

A partir du mot de données DW 3, on indique les différentes zones


d'opérandes.

Il faut identifier chaque zone d'opérandes.


Les mots d'identification sont :

Mot d'identification des entrées TûR KH = DE00


Mot d' identification des sorties TOR KH = DAO0
Mot d'identification des mémentos de couplage d'entrée KH = CE00
Mot d'identification des mémentos de couplage de sortie KH = CAO0
Mot d'identification de la longueur du bloc de temps KH = BBOO

Suite au mot d'identification, introduire la liste des numéros (en


virgule fixe) des entrées/sorties utilisées et la longueur du bloc de
temporisations.

Comme indicatif de fin de bloc, le DB 1 contient dans le dernier mot de


données : KH = EEEE.

lHKm!Am!
- L'ordre des intmductinis dans l e DB 1 est ïdEEérent. Amter que la
&ire image des entrées et sorties est actualisée dans l'ordre des
inscriptions dans l e DB 1.

- L'introduction répétée du même octet, par -le parr des tests, est
possible. A noter que la h i r e hage de l'octet sera durs actualisée
autant de fois que cet octet est défini dans l e DB 1.

- Ia dernière introduction dans DB 1 devra être suivie de l'indicatif de


fin KH = EExE!

Un exemple de création du DB 1 est donné à la page suivante.


Ekentple pour DB 1

O : KH = 4D41; DW 0-2 :
1 : KH = 534B; Indicatif de début
2 : KH = 3031; du DB 1
3 : KH = DEOO; Mot identificateur des entrées TOR
4 : KF = +00000; Octet d'entrée O
5 : KF = +00001; Octet d'entrée 1
6 : KF = +00002; Octet d'entrée 2
7 : KF = +00003; Octet d'entrée 3
8 : KF = +00007;
9 : KF = +00010;
10 : KH = DAOO; Mot identificateur des sorties TOR
11 : KF = +ooooo; Octet de sortie O
12 : KF = +00002; Octet de sortie 2
13 : KF = +00004;
14 : KF = +00012;
15 : KH = CEOO; Mot identif. des mémentos de couplage d'entrée
16 : KF = +00050; Octet mémento 50
17 : KF = +00051;
18 : KF = +00060;
19 : KH = CAOO; Mot identif. des mémentos de couplage de sortie
20 : KF = +00070; Octet mémento 70
21 : KF = +00072;
22 : KF = +00100; *
23 : KH = BBOO; Mot identif. pour longueur de bloc tempos.
24 : KF = +00128; Temporisations O à 127
25 : KH = EEEE; Indicatif de fin
* Le nombre de cellules de temporisation qui doivent être actualisées
cycliquement par le programme système est indiqué en inscrivant une
longueur de bloc de temporisations dans le DB 1. Ce comportement système
doit être paramétré dans le DXO, cf. chapitre "Bloc de données étendu
DX O".

Le DB 1 n'est pris en compte par le progrme système que lors d'un démar-
rage. Le programme système vérifie alors que les cartes correspondant aux
entrées/sorties et aux mémentos de couplage d'entrée/sortie indiqués dans
le DB 1 fournissent un signal d'acquittement. Eh cas de non-acquittement,
le processeur se met en STOP avec un défaut DB 1 et un clignotement lent de
la LED STOP. Le programme utilisateur n'est pas traité dans ce cas.

Dès que le DB 1 a été programmé et pris en compte par le processeur lors


d'un démarrage, les règles sont les suivantes :

L'accès aux cartes de périphérie par l'intermédiaire de la & m i r e image


n'est possible que pour les entrées/sorties définies dans le bloc DB 1
(pour les instructions L/T EB, EW, ED, AB, AW, AD et les opérations
combinatoires des entrées/sorties).
Le chargement direct (L PY, PW, QB, QW) des octets périphériques, sans
passer par la mémoire image, est possible pour toutes les entrées four-
nissant un signal d'acquittement, indépendamnent de l'introduction dans
le DB 1.
Le transfert direct (T PB/PY, PW, QB, QU) sur les octets O à 127 n'est
possible que pour les sorties définies dans le DB 1, étant donné que le
transfert direct s'accompagne de l'actualisation de la mémoire image. Le
transfert direct sur des octets d'adresses > 127 est possible indépen-
damment de l'introduction dans le bloc DB 1.
10.4 Démarrage en fonctionnement multiprocesseur
En fonctionnement multiprocesseur, le coordinateur est démarré de la ma-
nière suivante :

Les commutateurs de mode de tous les processeurs enfichés sont en posi-


tion "RUN". Le comtateur de mode chi coordinateur est en position
"STOP".

Basculer le commutateur de mode du coordinateur, de "STOP" sur "RUN".

(En fonctionnement multiprocesseur, il n'est possible de démarrer l'au-


tomate en démarrant uniquement le coordinateur que si ce dernier est à
l'origine de l'arrêt).

OU:

Les commutateurs de mode de tous les processeurs enfichés et du coordi-


nateur sont en position "RUN".

Par la fonction console "Start AG", le processeur qui est à l'origine de


l'arrêt démarre dans le mode de démarrage choisi.

Le mode de démarrage de chaque processeur dépend des éventuelles modifica-


tions apportées lors de l'arrêt. Il est ainsi possible que certains proces-
seurs effectuent un redémarrage manuel et d'autres un démarrage.

Si les processeurs n'ont pas été modifiés entre-temps, elles effectuent un


redémarrage manuel (CPU 928 et processeur R) ou un démarrape manuel avec
rémanence des mémentos (processeur S).

lmoR!mm!
Dans l e cas où l'autcmmte effectuait un t r a i e cyclique, au morpent &
la mise en STDP, les modes de démarrage différents peuvent damer lieu à la
transmission d'états & sigparrr incorrects d'un processeur à - '
1 par
les mémentos de couplage. Ceci peut être évité par une prr-.tim adé-
quate des blocs de démanage OB 20, W et 22.

brs du rétablissement de la tension suite à une coupure, le coordinateur


est démarré automatiquement. Dans ce cas, tous les processeurs S exécutent
un démarrage automatique avec rémanence des mémentos, les CPU 928 et les
processeurs R exécutent un redémarrage automatiaue ou un démarrane
automatiuue en fonction du paramétrage dans le DX O.

Le démarrage de chaque processeur en fonctionnement multiprocesseur est


synchronisé dans le temps, c'est-à-dire que chaque processeur attend que
tous les autres aient terminé leur démarrage avant de débuter simultanément
leur traitement cyclique. Sur la CPU 928 et le processeur R, il est pos-
sible de supprimer cette synchronisation de démarrage en paramétrant le
bloc DX O.
10.5 Mode de fonctionnement TEST
Le mode test est activé de la manière suivante :

La fonction "Test" doit être autorisée sur le coordinateur.

Basculer le cormmitateur de mode du coordinateur, de "STOP" sur "TEST".


Le voyant BASP s'éteint.

e Sur les processeurs qui doivent se mettre en RUN, choisir le mode de


démarrage.

Particularités du mode de fonct-t TPST

En mode TEST, il est possible de mettre en service chauue processeur de


façon isolée ou de les combiner de manière quelconque. Les processeurs qui
sont en STOP ne peuvent donc plus bloquer l'ensemble de l'automate.

Le démarrage des processeurs n'est pas synchronisé en TEST. Suivant la


longueur des blocs OB 20, 21 et 22, les processeurs démarrent leur traite-
ment cyclique à des moments différents.

En TEST, si un défaut apparaît sur un processeur, alors seul ce processeur


se met en STOP. Les autres processeurs ne sont pas perturbés par ce défaut.

mm!
En d e TEST, l e sigr& BBSP est hùïbé pour tas les processeurs. A l'ap-
parition d'un défaut, les sorties périphériques !KR ne s m t pas verrouil-
lées (exceptions: voir ci-dessus).

mRTAm!
Lorsque La mise en service est t d e , il est conseillé de rendre inactif
le mode de fcmctionn-t C ! enmanoeimrant l e camutateur de mode du
! ESC
coordinateur! Ainsi, une m i s e manLpiiatim ne risque pas d 1 q e n d r e r
des situations dangereuses pan l'installation!
Récapitulatif : m i s e en route de l'autmate nmïtiprocessern

Régler sur le coordinateur le nombre des processeurs.


Valider les mémentos de couplage sur le coordinateur.

Enficher les processeurs dans le châssis de base aux emplacements suc-


cessifs.

Mettre sous tension.

Mettre le commutateur de mode du coordinateur sur la position "STOP".

Faire un effacement général sur tous les processeurs enfichés.

e Charger les programes utilisateur dans les CPU ou enficher les car-
touches EPROM.

Effectuer un démarrage sur tous les processeurs.

Basculer le cammutateur de mode du coordinateur sur "RUN" ou "TEST".


11 Auxiliaires de test: fonctions on-line
Les fonctions on-line constituent un auxiliaire important pour le test des
programmes d'application. La mise en oeuvre de la console de programmation
et l'utilisation de ces fonctions on-line sont expliquées de façon détail-
lée dans le manuel de votre console. Quelques particularités des fonctions
on-line, en liaison avec la CPU 928, sont décrites dans ce chapitre.

Les fonctions on-line sont exécutées en des points bien définis lors du
traitement des programmes par l'automate. Il existe des points au sein du
programme système (= points de contrôle système) et des points dans le
programme d'application (= points de contrôle utilisateur).

Points de contrôle système

En mode STOP, le point de contrôle système STOP est appelé régulièrement.

En mode RUN, le point de contrôle système cycle est appelé à la fin du


niveau de traitement de programme CYCLE avant l'actualisation de la mémoire
image.

Si le processeur se trouve dans l'état d'ATTENTE, le point de contrôle


système attente est appelé régulièrement.

De plus, il existe un point de contrôle système the-out; ce point de


contrôle dépend du temps. Celui-ci n'est appelé que si l'un des trois
autres points de contrôle n'a pas été atteint dans l'espace de 250 ms. Ce
point de contrôle système peut donc être imbriqué pendant le traitement âu
programme. Cela peut se produire, par exemple, si une boucle sans fin est
traitée dans le programme utilisateur ou si le cycle dure plus de 250 m .

Le traitement d'une fonction on-line au niveau d'un point de contrôle


système est interrompu au plus tard après 5 ms et est repris au point de
contrôle système suivant (cf. tableau 11.11).

P o i n t s de contrôle utilisateur

Les points de contrôle utilisateur sont utilisés avec les fonctions de test
"VISUDYN" et "CONTROLE PAS-A-PAS1'.Un point de contrôle utilisateur est
appelé lorsqu'une instruction marquée par la PG est exécutée.

Vous connaissez déjà les modes STOP, DPIARRAGE, RUN. Lors de l'exécution de
la fonction on-line "CONTROLE PAS-A-PAS",le processeur se place dans un
autre 'mode: le mode ATTENTE. D'autres fonctions ONLINE peuvent être appe-
lées lorsque le processeur est en mode A'ïTENTE.
Propriétés du mode ATTmm!E

- Le programme d'application n'est pas traité lorsque le processeur se


trouve en mode ATTENTE.

- LED en face avant: LED RUN: éteinte


LED STOP: éteinte
LED BASP: allumée
- Toutes les temporisations sont "figées": les temporisations ne sont
plus actualisées. Tous les temps système, utilisés par exemple pour la
régulation et pour le traitement déclenché par horloge, sont également
figés.
Les temporisations sont à nouveau actualisées lorsque le processeur a
quitté le mode ATTENTE (cf. chapitre 10.3).

- En mode ATTENTE, le processeur enregistre les causes d'interruption


telles que DPE, BAT, MPSTP ou commutateur sur STOP, il ne réagit cepen-
dant pas à ces interruptions.

Si des causes d'interruption sont enregistrées en m d e attente, les ni-


niveaux de traitement de programme correspondants sont appelés dès que le
processeur a quitté le mode ATTENTE.

Si le défaut MDT apparaît, le processeur quitte le mode ATTENTE et la


fonction on-line "CONTROLE PAS-A-PAS"est interrompue. Le bit de commande
"FINP/Pw est marqué d'une croix au retour de la tension secteur. Le pro-
cesseur ne peut quitter le mode STOP que par un démarrage.
11.1 Fonction on-line "ETAT VARm
La fonction on-line "ETAT VAR" permet de lire l'état actuel de certains
opérandes (variables process). La fonction active des -points de contrôle
système lors du traitement du programme cyclique, en mode STOP et en mode
ATTENTE. Les états des variables process désirés sont affichés; ce sont les
états au moment où le point contrôle système est atteint. Toutes les va-
riables process peuvent être affichées. Aucune erreur d'adressage DAD n'est
déclenchée lorsque la variable appartient à la mémoire image.

Déroulement de la fonction pendant le traitement du proerrame

Si la fonction est exécutée alors que l'automate est en mode DEMARRAGE ou


RüN, le traitement du programme est poursuivi jusqu'à ce que le point de
contrôle système "cycle" soit atteint. En fin de cycle, les états de si-
gnaux des opérandes sont scrutés et affichés. L'état des entrées est lu
dans la la mémoire image du processus. Tant que la fonction n'est pas
interrompue, les états de signaux sont actualisés au fur et à mesure du
traitement. Les é t a t s de signaux ne sont pas scrutés à chaque point de
contrôle système.

Si le point de contrôle système "cycle" n ' e s t pas a t t e i n t , les états de


signaux ne sont pas a f f i c h é s (par exemple s'il existe une boucle sans fin
dans le programme d'application).

Déroulement de la fonction en mode STOP:

Si la fonction "ETAT VAR" se déroule en mode STOP, les états de signaux des
opérandes sont affichés, tels qu'ils existent au point de contrôle système
"mode STOP". Il est important que les entrées soient scrutées directement
sur la carte de périphérie puis affichées. Il est donc possible, par
exemple, de contrôler si un signal d'entrée parvient effectivement au pro-
cesseur. En mode multiprocesseur, vous pouvez aussi indiquer toutes les
entrées indépendment de l'affectation dans le DB1. L'état des sorties est
lu dans la mémoire image du processus.

Déroulement de la fonction en mode attente:

La fonction "ETAT VAR" peut aussi être appelée lorsque le processeur se


trouve dans le mode ATTENTE, dans le cadre de la fonction "CONTROLE
PAS-A-PAS". Les états de signaux des opérandes sont scrutés puis affichés
au point de contrôle système "mode ATTENTE". Came pour le mode STOP, les
entrées sont lues directement sur les cartes de périphérie, les sorties
sont lues dans la mémoire image du processus.

Si le processeur passe d'un mode à l'autre (par exemple RüN -> STOP
-> REDEMARRAGE MANUEL), la fonction reste activée.
Pour quitter la fonction " ETAT VAR", il suffit d'actionner la touche
d'abandon, sur la console de programmation.

Nota : Les variables ne sont pas lues à chaque cycle.


11.2 Fonction on-line mVïSUDYNn
La fonction on-line "VISUDYN" vaus permet de tester une suite d'instruc-
tions quelconque dans un bloc du programme d'application.
Pour chaque instruction exécutée, la valeur actuelle de l'opérande, le
contenu des accumulateurs, le R U etc sont affichés sur la console de
programmation. Cette fonction permet aussi de tester le paramétrage de
blocs fonctionnels: la valeur courante des opérandes actuels est affichée

Appel de l a fonction e t définition du point d'arrêt

Après avoir appelé la fonction "VISUDYN" sur votre PG, déterminer le "point
d'arrêt" en introduisant le type et le numéro du bloc à tester (en préci-
sant éventuellement l'imbrication et le terme recherché).

Si la fonction est appelée en mode DEMARRAGE ou en mode RUN, le traitement


du programme est poursuivi jusqu'à ce que 1' instruction correspondant au
point d'arrêt ait été atteinte, l'imbrication étant correcte. Les instruc-
tions surveillées sont ensuite exécutées jusqu'aux limites d'instruction et
les résultats sont affichés sur la console.

La fonction "VISUDYN" peut aussi être appelée en mode STOP. Après quoi, un
démarrage ou un redémarrage mamiel est encore possible. Le processeur
traite alors le programme d'application jusqu'au point d'arrêt déterminé.
Les données correspondant à la suite d'instructions désirée sont affichées.
La fonction "VISUDYN" convient donc également pour le test du programme
d'application au démarrage ou pendant le premier cycle.

Nota: Les résultats du traitement des instructions ne sont ensuite plus


affichés pour chaque cycle.

Imbrications et interruptions

Une suite d'instructions définie par un point d'arrêt est exécutée complè-
tement même si, entre temps, un autre niveau de traitement du programme est
imbriqué à une limite d'instructions puis traité (par exemple OB de défaut,
alarme process ou alarme d'horloge).

Si, dans un niveau de traitement de programme imbriqué, le processeur se


met en S M P à la suite d'une interruption, les données seront affichées en
mode STOP jusqu'à la dernière instruction exécutée avant l'imbrication. Les
données des instructions restantes sont remplacées par des "zéros" (il en
est de même pour CAD; CAD = 0).

La fonction reste activée si le processeur passe d'un mode à l'autre (par


exemple RUN -> STOP -> REDPiARRAGE MANUEL). Pour quitter la fonction
"VISUDYN", il suffit d'actionner la touche d'abandon sur la console de
programmation.
11.3 Fonction on-line wCONTROm PAS-A-PASm
La fonction on-line "CONTROLE PAS-A-PAS"permet de tester des pas de pro-
gramme quelconques dans le programme d'application. Pour ce faire, vous
stoppez le traitement du programme et vous faites exécuter les instruc-
tions, les unes après les autres, par le processeur. Pour chaque instruc-
tion exécutée, l'état actuel de l'opérande, le contenu des accus, le RU:
etc. sont affichés sur la console de programmation.

Appel de la fcmctian et définit+oa du p r b point d'arrêt

Pour appeler la fonction "CONTRDLE PAS-A-PAS1',introduisez le type et le


numéro du bloc à tester (en précisant éventuellement l'imbrication), mar-
quer sur la PG la première instruction dont les données doivent être affi-
chées. Vous avez ainsi défini le premier point d'arrêt.
Le bit de commande "P/PV est marqué d'une croix. Les ordres de sortie sont
inhibés (la LED BASP est allumée).

Nota: Si vous avez réglé le mode TEST sur le coordinateur, les ordres de
sortie ne sont pas inhibés (la LED BASP est éteinte). Si les
instructions modifiant la périphérie TOR sont traités ou si le
processeur actualise la mémoire image du processus, les cartes de
périphérie délivreront les signaux correspondants.

Si le premier point d'arrêt a été défini dans le traitement du proEramme,


en mode démarrage ou RUN, le processeur poursuit le traitement jusqulàce
que l'instruction marquée par le point d'arrêt soit atteinte. L'instruction
est exécutée jusqu'à la limite d'instructions (les instructions BMW et BDW
sont traitées, y compris l'instruction substituée).
Le processeur passe ensuite en mode ATTENTE. Les données de l'instruction
traitée sont alors affichées.

Appel de la fonction en mode STOP:

Vous pouvez aussi appeler la fonction "CONTROLE PAS-A-PAS"en mode STOP et


définir un premier point d'arrêt. Le processeur reste en mode STOP. Vous
pouvez maintenant faire exécuter un démarrage ou un redémarrage manuel. Le
processeur exécute le programme jusqu'à l'instruction marquée et se com-
porte ensuite comme indiqué ci-dessus.
Poursuite de la fonction et définition d'un point d'arrêt

Point de départ: le processeur se trowe en mode ATTENTE

Deux possibilités vous sont offertes pour poursuivre la fonction "CONTROLE


PAS-A-PAS".

1. Vous déterminez un point d'arrêt "suivant":

Le point d'arrêt défini est déplacé d'une instruction. Le processeur


quitte le mode ATTENTE et poursuit le traitement du programne en exécu-
tant cette instruction. Une fois l'instruction traitée jusqu'à la limite
d'instruction, le processeur se remet en mode ATTENTE et fournit les
données. Si l'instruction suivante est atteinte dans un niveau de trai-
tement de progrme imbriqué, le processeur poursuit l'exécution. Le
point d'arrêt suivant reste défini.

Important: En mode STOP, vous pouvez définir un premier point d'arrêt,


mais paç de point d'arrêt suivant.

2. Vous définissez un nouveau point d'arrêt:

Vous définissez sur votre console une autre instruction dans le même
bloc ou dans un autre bloc. Le processeur poursuit le traitement du
programme jusqu'à ce qu'il atteigne le noweau point d'arrêt. L'ins-
truction est exécutée jusqu'à la limite d'instructions. Le processeur
passe ensuite en mode ATTENTE et fournit les données.

Vous pouvez faire exécuter par le processeur un cycle complet en


"CONTROLE PAS-A-PAS" (test par cycle). Pour ce faire, en mode ATTENTE,
vous placez le point d'arrêt sur la même instruction que précedermnent.
Cette instruction ne doit cependant pas se trower dans une boucle de
programme. S'il en était ainsi, la boucle ne serait traitée qu'une seule
fois, le programme ne serait pas exécuté au-delà de la limite de cycle.

Nota: En mode ATTENTE, vous pouvez appeler d'autres fonctions telles que
"Lecture REP." , "ETAT VAR1' ou "FORCAGE VAR".
Dès que le processeur a quitté l'état d'attente, et que le traitement
du programme est poursuivi, les temporisations et les temps système
sont actualisés jusqu'à ce qu'un point d'arrêt soit atteint.

Bnnulation d'un point d'arrêt:

brsqu'un point d'arrêt défini n'a pas encore été atteint, vous avez la
possibilité de l'annuler en actionnant la touche d'abandon sur la console
de programmation. Le processeur passe alors au mode ATTENTE. Vous pouvez
ensuite définir un nouveau point d'arrêt ou appeler la fonction "FIN DE
CONTROLE PAS-A-PAS".
En mode ATTENTE et en mode STOP, vous powez interrompre la fonction en
appelant "FIN DE CONTROLE PAS-A-PAS".Le processeur se met en STOP (ou bien
reste dans ce mode). La ï.ED STOP clignote lentement. Le bit de commande
"FIN P/P" est marqué d'une croix. ün démarrage est ensuite nécessaire. La
fonction est interrompue comme indiqué ci-dessus lorsqulundéfaut d' inter-
face (interruption sur le câble PG) ou un défaut MDT apparaît pendant la
fonction "CONTROLE PAS-A-PAS".

Imbrications

brsque le llCONTROLEPAS-A-PAS" est appelé, d'autres niveaux de traitement


de programme peuvent être imbriqués lorsque le processeur quitte l'état
d'attente.

Si l'instruction située au niveau du point d'arrêt est traitée et si un


autre niveau de traitement de programme est appelé à cet endroit (p.ex. un
OB de défaut, une alarme process ou une alarme d'horloge), celui-ci ne sera
imbriqué et traité complètement que lorsque le processeur aura quitté le
mode ATTENTE.

lHlm!wm!
Ies données sont l u e s et affichées au niveau des limites d'instructions.
Toutes les imbrications y afférentes ne surt pas encure traitées.

ier point -> Exécution de


d'arrêt l'instruction
+ lecture des
des données

Mode ATTENTE (affichage des données)

Point
1<<<<<< Alarme process, alarme d'horloge
d'arrêt Exécution de OB de défaut
suivant l'instruction
+ lecture des
données

1Mode ATTENTE (affichage des données)


1<<<<<< Alarme process, alarme d'horloge
1 OB de défaut
Les requêtes telles que DPE, MP-STP, STOP par SEZECPEOR apparaissant en
mode ATTENTE sont seulement enregistrées. Celles-ci sont actives dès que le
processeur a quitté le mode ATTENTE: un niveau de traitement de programme
est imbriqué ou une interruption conduit au naode STûP.
Les requêtes sont traitées suivant l'ordre d'occurrence. Le degré de prio-
rité départage les requêtes simultanées.

Nota: Si le processeur est en mode ATTENTE et si l'imbrication est deman-


dée, vous avez la possibilité de positionner un point d'arrêt sur une
instruction du programme imbriqué.
Si, p.ex., une instruction a déclenché un retard d'acquittement ACQ,
vous pouvez observer aussitôt après l'OB de défaut correspondant.

Interruptions

- Traitement du programme (démarrage/RUN) --> Mode STOP


Si des causes d'interruption se produisent pendant le traitement du
programme (p.ex. MP-STP, DPE, STOP PAR SELECTEUR, OB de défaut non pro-
grammé etc.) et si le point d'arrêt n'est pas encore atteint, le proces-
seur passe immédiatement au m d e STOP. Si maintenant un démarrage ou un
redémarrage manuel est exécuté, la fonction "CONTROLE PAS-A-PAS"reste
activée, le point d'arrêt tel qu'il a été défini est conservé.

- Traitement de l'instruction au niveau du point d'arrêt


(démarragew) --> Mode STOP

Si des conditions de mise en STOP se produisent lors du traitement de


l'instruction au niveau du point d'arrêt ou au niveau du point d'arrêt
suivant (stop par sélecteur, instruction STEPS "STP"), le processeur
passe directement en stop après le traitement de l'instruction et fournit
les données.
Si aucun autre point d'arrêt n'est défini en mode STOP, le processeur
passe au mode a t t e n t e après un démarrage. Le "CONTROLE PAS-A-PAS"reste
activé.

- ATTENTE --> Mode STOP


Les causes d'interruption qui se produisent en mode ATTENTE (p.ex. MP-
STP, DPE ou STOP PAR SELECTEUR) ou qui ont pour origine une instruction
antérieure (défaut qui conduit au stop), sont enregistrées mais le pro-
cesseur reste en mode ATTENTE. Les causes d'interruption qui sont appa-
rues provoquent le passage au mode STOP lorsqu'un noweau point d'arrêt
est défini en mode ATTENTE et lorsque le processeur a quitté ce mode
ATTENTE. Le point d'arrêt défini n'est pas atteint.
Si un démarrage ou un redémarrage manuel est exécuté, le point d'arrêt
reste défini.

meoR!mm!
Si, en mode ATENTE, l e sélecteur est placé en position STOP, l e processeur
ne passera en mode STûP qu'après avoir quitté le mode M ' E R i Z .

lHKx!mm!
S i des causes d'interruption entraînent la mise en SrOP du processeur
pendant le "CûNiRûIE PM-A-PAS" , cette f a ~ ~ t i oreste
n active après l e
démarrage suivant. ï.e point d'arrêt qui avait été défini reste conservé.
11.4 Fonction on-line nFORCAGEn
La fonction "FORCAGE" vous permet de régler directement les octets de
sortie de votre automate sans passer par la mémoire image du processus.
Elle vous permet aussi de détecter les cartes de périphérie qui n'ac-
quittent pas (périphérie TOR O à 127; signalisation sur la PG). Vous avez
la possibilité de tester et de conmander directement les appareils raccor-
dés aux sorties (moteurs, valves).

MPORTBNIP!
Ia fanction "FCRCAGEw n'est admise qu'en iode SrOP!

Appel de la foncti<n

L'inhibition des ordres de sortie est levée à l'appel de la fonction en


mode STOP (LED BASP éteinte). L'ensemble de la périphérie TOR (FOOOH à
FO7FH) est effacé; la valeur "0" est inscrite à chaque adresse. La fonction
ne peut être interrompue pendant l'effacement de la périphérie.

Les sorties vers la périphérie sont conunandées par octet, directement et


sans influencer la mémoire image des sorties. En mode multiprocesseur, vous
pouvez commander toutes les sorties (indépendamnent de l'affectation de la
périphérie dans le DB1).

brsque la fonction n'est plus active (message "forçage terminé" affiché


sur la PG) , vous pouvez effectuer un démarrage ou un redémarrage manuel. Le
forçage sera de noweau possible après un passage au mode STOP. Dans ce
cas, les signaux de sortie ne sont pas effacés.

Pour quitter la fonction, il suffit d'actionner la touche d'abandon, sur la


console. Les ordres de sortie sont de noweau inhibés (LED BASP allumée).

11.5 Fonction on-line nFORCAGE VARn


La fonction on-line "FORCAGE VAR" permet de modifier une fois les valeurs
d'opérandes (variables process). Ceci est permis quel que soit le mode dans
lequel se trouve le processeur. Toutes les variables process peuvent être
indiquées. Aucune erreur d'adressage DAD n'est déclenchée lorsque la va-
riable appartient à la mémoire image du processus.

Le forçage est actif à un point de contrôle système. Il faut noter que les
valeurs forçées peuvent, par la suite, être écrasées (p.ex. par le pro-
gramme d'application ou lors de l'actualisation de la mémoire image).

NOTA: La console force les variables process E, A, M par octet et les mots
de données 3W, les temporisations T et les compteurs Z par mot.

lmtxwa!!
Si vous forcez plusieurs opérandes, la prise en caupte des octets forcés ou
des m o t s dans l e cas de oCT, T, 2) est répartie sur plusieurs points de
contrôle système successifs.
11.6 Fonction on-line nCOHPRESSION mémoiren
Cette fonction permet de disposer les blocs valables du programme d'appli-
cation les uns à la suite des autres dans la mémoire. Cette fonction est
exécutée séparément dans la cartouche RAM et dans la RAM des DB. Les
lacunes causées par l'effacement ou la correction de blocs disparaîssent. A
cet effet, un bloc complet est déplacé à chaque fois au début de la zone
mémoire libre. Cela peut être réalisé aux points de contrôle système
"cycle" et 'lstopll.

La fonction est interrompue et un défaut est signalé si la pile du bloc


BLPILE n'est pas vide au point de contrôle système "stop". C'est le cas si,
pendant le traitement du programme, une interruption conduit au mode stop.
Dans ce cas, la compression de la mémoire ne peut être pousuivie qu'en
cycle.

Si une coupure de la tension secteur intervient lors de la compression,


aucun bloc ne sera plus décalé. La compression sera poursuivie en appelant
de nouveau la fonction "COMPRESSION mémoire" .

mm!
Les défauts suivants sont détectés par la fonction "
-I
O
N kireu:
- lorigueur de bloc e d
- code "7070" erroné dans l'en-tête de bloc
- type & bloc mm valable
(pour les OB: m d r o & bloc mm valable).
La fonction est interrapue. Un message est affiché sur la console. I l faut
alors procéder à un effacemnt général. Ia foncticm ne peut être appelée
qu'après effacement général et rechrgement du prr-? .

NOTA: La fonction "COMPRESSION mémoire'' n'est pas admise tant que le


"CONTROLE PAS-A-PAS"est actif!

11.7 Fonctions on-line nSTARTn/nSTOPn


La fonction PG correspond à la commande manuelle.
L'appel de la fonction "STOP" vous permet d'amener l'automate en mode STOP.
Les LED du processeur auquel est raccordée la console sont dans l'état
suivant:

LED STOP: allumée


LED BASP: allumée
Le bit de conmande "PG-STP" est marqué par une croix. En mode multiproces-
seur, le bit de conunande "MP-STP" est mis à 1 pour les autres processeurs.

Vous pouvez procéder à un démarrage ou à un redémarrage d'un processeur. En


mode monoprocesseur, le processeur quitte le mode STOP. En mode multipro-
cesseur, le type de démarrage est d'abord enregistré (le bit de conunande
" D m ou REDEMA" est mis à l), mais le processeur reste en STOP. Vous
pouvez démarrer l'automate avec la commande suivante "démarrage système".
Cela correspond à la commande sur le coordinateur (sélecteur sur RUN).

üne autre possibilité est la fonction on-line "START1'en mode multiproces-


seur: vous pouvez choisir le type de démarrage pour chaque processeur et ne
démarrer l'automate qu'ensuite.
11.8 Fonction on-line mEFFACEMENT GWERAL"
Vous pouvez procéder à un effacement général du processeur à partir de la
console (cela équivaut à "effacer tous les blocs"). L'effacement général
est alors exécuté dans tous les cas (cf. chapitre 4.2).

Si le processeur se trouve en mode DEXARRAGE ou RUN lors de l'appel de la


fonction "EFFACEMENT GENERAL", il passera d'abord en mode STOP. S' il a été
chargé, le bloc d'organisation OB 28 sera appelé.

NOTA: La fonction "EFFACEMENT GENERAL1ln'est pas admise tant que le


"CONTROLE PAS-A-PAS"est actif!

11.9 Fonction on-line mïZCr[JREADRESSEm

La fonction "LECTURE ADRESSE" permet d'afficher sur la console, en hexadé-


cimal et par mot, le contenu des adresses mémoire et des adresses de
périphérie. L'accès à toutes les adresses est possible. Aucune erreur
d'adressage DAD n'est déclenchée si la lecture porte sur la mémoire image;
aucune erreur ACQ n'est déclenchée si la lecture porte sur la zone de
périphérie.

Dans le cas des zones mémoire adressables par octet (mémentos, mémoire
image), le contenu de l'octet de poids fort est représenté par "FF".

Si la lecture porte sur la zone de périphérie, l'octet de poids fort sera


"00" pour les adresses qui donnent lieu à un acquittement. S'il n'y a pas
d'acquittement, l'octet de poids fort sera "Fi?".

11.10 Fonction on-line nORGANISATION MEKOIREn


La fonction "ORGANISATION MEMOIRE" permet d'afficher sur la console la plus
grande adresse utilisable de la cartouche RAM (l'affichage est "O" si la
cartouche est une EPROM) et la dernière adresse de la cartouche occupée par
les blocs du programme utilisateur.
B8577633-01

11.11 Tableau: a c t i v i t é s aux points de contrôle

Pointde contrôle système

P)
5
C
c
.,- O
Fonctionson-line; activités
n -
0)
9
O :2
E E
p % Ig
c
.G P
.-
l- a3
Introductionadresse : écrituredonnées 1) *
Introductiond'un bloc :validation du bloc * + t

Effacement d'un bloc +

Compressionmémoire :décalage bloc 2) * 3) *

StartIStop t e

Effacementgénéral *

ETATVAR :lecture et affichagededonnées *


1 VISUDYN :lecture et affichage de données

Contrôlepas-à-pas: définitiondu point d'arrêt f t * *


lecture de données *
affichagede données *
Forçage 1) *

1 VAR 1) * *

1) A c t i v i t é s qui peuvent ê t r e r é p a r t i e s sur p l u s i e u r s p o i n t s de c o n t r ô l e


système
2) Un b l o c a u maximum p a r p o i n t de c o n t r ô l e système
3) Seulement si l a BLeILE e s t v i d e

Tableau: Activités exécutées aux points & cmtrôle système et arn points
de contrôle utilisateur.
ANNEXE A: Caractéristiques techniques de l'AG 135U

Processeur S Processeur R CPU 928

Temps d'exécution typ. des ins-


t r u c t . sur b i t s avec opérandes
M, E, A
D
Opérande f orme1

Temps d'exécution typ. des


i n s t r u c t i o n s sur mots
- Opérations de chargement
L MB (octet)
L MW (mot)
L MD (double mot)
- Arithmétique en v i r g u l e f i x e e t
en v i r g u l e f l o t t a n t e

Exécution du p r o g r a m cyclique
(mode monoprocesseur)
- Temps de base pour L'appel
OBl/FBO:

- Supplément pour 1l a c t u a l i s a t i o n
de La mémoire image de processus
en fonction du nombre (n) d'oc-
t e t s d'entrée ou de s o r t i e , avec
O < n 5 256

- Supplément pour Le t r a n s f e r t
des mémentos de couplage, en
fonction du nombre de ceux-ci
(n), avec O < n 5 256

- Supplément pour Le traitement


des temporisations en fonction
de l a longueur du bloc
de temporisations (ZBL) toutes les 10 m toutes Les 2,s ms toutes Les 10 ms
ZBL=O 20 vs 50 ps 5 Cis
ZBL#O, 50 ps + ZBL x 9,3 ys 60 ys + ZBL x 1,56 200 YS + n x 0'35 ys
n = nombre des temporisations + n x 17,9 ps + n x 1,24 ys (avec O c n 5 128)
en cours 400 ps + n x 0,35 ps
(base de temps: 10 ms) (avec 128 < n 5 256)

- Traitement des alarmes process


prolongation du temps de cycle
par imbrication d'un OB 2 vide
(sans i n s t r u c t i o n STEP5) à une
l i m i t e de bloc
terrps de réaction
- traitement déclenché par horloge
prolongation du temps de cycle 327 ~s 375 s 340 ys pour Le
par imbrication d'un OB 13 v i d e premier OB
(sans i n s t r u c t i o n STEP5) à une d'horloge
Limite de bloc 180 YS pour chaque
autre OB
d'horloge

Période d'appel du programne 10, 20, 50, 100


déclenché par horloge 100 ms 100 mç 200, 500 ml
1' 2, 5 s

Chien de garde
Préréglage 100 ms 150 m 150 ms
Réglable entre - 1...4000 ms 1.. .6000 ms
réarmement oui oui oui

Capacité de La mémoire u t i l i s a t e u r
(en Kmots) -< 32 -< 32 -< 32
Capacité de La mémoire pour blocs
de données (RAM DB, en Kmots) 3,7 env. 11,l env. 23,3 env.

Nombre de temporisations e t de
conpteurs 128 de chaque 128 de chaque 256 de chaque

Nombre d'octets de mémentos 256 de chaque 256 de chaque 256 de chaque

Temps de base: Le temps de base est la partie du cycle sytème qui


est mesuré sans l'actualisation de la mémoire image
et sans le transfert des mémentos de couplage.

Teps de réaction: Le temps de réaction est la durée entre l'activation


du niveau de traitement de progrme ALARME PROCESS et
l'exécution de la première instruction de l'OB 2.
Condition: LIOB 2 est appelé aussitôt après détection
de l'alarme process. S'il faut, par contre, attendre
la prochaine limite de bloc ou d'instruction, le temps
de réaction est prolongé en conséquence.
ANNEXE B: Vue d'ensemble des codes d'erreur

Données système 3 et 4
SD3 SD4 1
I
Constitution des, l i s t e s d'adresses des blocs:
8001H yyyyH longueur de bloc incorrecte yyyy=adr. du bloc de longueur incorrecte
8002H yyyyH adr. f i n de bloc calculée est fausse yyyy=adr. de bloc
8003H yyyyH i d e n t i f i c a t e u r de bloc erroné yyyy=adr. du bloc à i d e n t i f i c a t e u r erroné
8004H yyyyH no du bloc d'organis. t r o p grard (adnis:OBl à 39) yyyy=adr. du bloc
8005H yyyyH no de bloc de données O (admis: DBI à DB255) yyyy=adresse d u bloc portant l e
mauvais numéro

Constitution desi l i s t e s d'adresses pour L'actualisation de l'image de processus:


0410H yyyyH I d e n t i f i c a t e u r ou code incorrect yyyy=mauvais i n d i c a t i f
0411H yyyyH l'entrées TORIm, nombre d'adresses incorrect yyyy'nombre d'adresses incorrect
(correct: 128)
" s o r t i e s TORn, nombre d'adresses incorrect yyyy=nombre d'adresses incorrect
(correct: 128)
mimémentos de couplage d'entréesmm,nombre yyyy=nmbre d'adresses incorrect
d'adresses incorrect (correct: 256)
mmmémentos de couplage de sortiesmm,nombre yyyy=nmbre d'adresses incorrect
d'adresses incorrect (correct: 256)
nombre de tenporisations non valable yyyy=nombre erroné de tenpo-
(admis: 256) risations
r e t a r d d'acquittement pour entrées TOR yyyy=adr. de l ' o c t e t d'entrée
non a c q u i t t é
r e t a r d d'acquittement pour s o r t i e s TOR yyyy=adr. de L'octet de s o r t i e
non a c q u i t t é
r e t a r d d'acquittement pour mémentos yyyy=adr. de l ' o c t e t de mémentos
de couplage d'entrée non a c q u i t t é
r e t a r d d'acqittement pour mémentos yyyy=adr. de l ' o c t e t de mémentos
de couplage de s o r t i e non a c q u i t t é

Evaluation du DB 2:
0421H DByyH bloc de non chargé yy = nunéro du bloc de données non chargé
0422H FByyH bloc fonctionnel non chargé yy = nunéro du bloc fonctionnel non chargé
0423H FByyH bloc fonctionnel inconnu yy = nunéro du bloc fonctionnel non reconnu
0424H FByyH bloc fonctionnel chargé par un yy = nunéro du bloc fonctionnel
l o g i c i e l PG incorrect
0425H DByyH Longueur du DB de régulation yy = nunéro du bloc de données