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