Escolar Documentos
Profissional Documentos
Cultura Documentos
Avant-propos,
Sommaire
SIMATIC
Langage LIST pour
SIMATIC S7-300/400
Manuel de rfrence
Oprations combinatoires
sur bits
Oprations de comparaison
Oprations de conversion
Oprations de comptage
Oprations de saut
Oprations de chargement et
de transfert
Oprations de gestion
d'excution de programme
10
Oprations de dcalage et de
rotation
11
Oprations de temporisation
12
Oprations combinatoires
sur mots
13
14
Annexes
Exemples de programmation
Index
Edition 03/2006
A5E00706961-01
Consignes de scurit
Ce manuel donne des consignes que vous devez respecter pour votre propre scurit et pour viter des
dommages matriels. Les avertissements servant votre scurit personnelle sont accompagns d'un
triangle de danger, les avertissements concernant uniquement des dommages matriels sont
dpourvus de ce triangle. Les avertissements sont reprsents ci-aprs par ordre dcroissant de niveau
de risque.
Danger
Attention
Prudence
signifie que la non-application des mesures de scurit appropries entrane la mort ou des blessures
graves.
signifie que la non-application des mesures de scurit appropries peut entraner la mort ou des
blessures graves.
signifie que la non-application des mesures de scurit appropries peut entraner des blessures
lgres.
Prudence
signifie que la non-application des mesures de scurit appropries peut entraner un dommage
matriel.
Important
signifie que le non-respect de l'avertissement correspondant peut entraner l'apparition d'un
vnement ou d'un tat indsirable.
En prsence de plusieurs niveaux de risque, c'est toujours l'avertissement correspondant au niveau le
plus lev qui est reproduit. Si un avertissement avec triangle de danger prvient des risques de
dommages corporels, le mme avertissement peut aussi contenir un avis de mise en garde contre des
dommages matriels.
Personnel qualifi
L'installation et l'exploitation de l'appareil/du systme concern ne sont autorises qu'en liaison avec la
prsente documentation. La mise en service et l'exploitation d'un appareil/systme ne doivent tre
effectues que par des personnes qualifies. Au sens des consignes de scurit figurant dans cette
documentation, les personnes qualifies sont des personnes qui sont habilites mettre en service,
mettre la terre et identifier des appareils, systmes et circuits en conformit avec les normes de
scurit.
Attention
L'appareil/le systme ne doit tre utilis que pour les applications spcifies dans le catalogue ou
dans la description technique, et uniquement en liaison avec des appareils et composants
recommands ou agrs par Siemens s'ils ne sont pas de Siemens.
Le transport, le stockage, le montage, la mise en service ainsi que l'utilisation et la maintenance Le
fonctionnement correct et sr du produit implique son transport, stockage, montage et mise en service
selon les rgles de l'art ainsi qu'une utilisation et maintenance soigneuses.
Marque de fabrique
Toutes les dsignations repres par sont des marques dposes de Siemens AG. Les autres
dsignations dans ce document peuvent tre des marques dont l'utilisation par des tiers leurs propres
fins peut enfreindre les droits de leurs propritaires respectifs.
Exclusion de responsabilit
Nous avons vrifi la conformit du contenu du prsent document avec le matriel et le logiciel qui y
sont dcrits. Ne pouvant toutefois exclure toute divergence, nous ne pouvons pas nous porter garants
de la conformit intgrale. Si l'usage de ce manuel devait rvler des erreurs, nous en tiendrons compte
et apporterons les corrections ncessaires ds la prochaine dition.
Copyright Siemens AG 2006
Siemens AG
Automation and Drives
Postfach 4848
90437 NRNBERG
ALLEMAGNE
A5E00706961-01
Siemens AG 2006
Sous rserve de modifications techniques
Avant-propos
Objet du manuel
Ce manuel vous aidera crire des programmes utilisateur en langage LIST.
Il contient une partie de rfrence dcrivant la syntaxe et le fonctionnement des lments du
langage de programmation LIST.
Norme
LIST correspond au langage Liste dinstructions dfini dans la norme CEI 1131-3. Pour
plus de renseignements ce sujet, consultez la table de correspondance la norme dans le
fichier NORM_TBL.WRI (anglais) ou NORM_TAB.WRI (allemand) de STEP 7.
iii
Avant-propos
Connaissances requises
Vous trouverez dans l'aide en ligne de STEP 7 les connaissances thoriques sur les
programmes S7 ncessaires la comprhension de ce manuel sur LIST. Les langages de
programmation se basant sur le logiciel de base STEP 7, nous supposerons que vous savez
utiliser ce logiciel et sa documentation.
Ce manuel fait partie de la documentation "STEP 7 Connaissances fondamentales.
Le tableau suivant prsente la documentation de STEP 7:
Manuel
Objet
Numro de rfrence
6ES7810-4CA08-8CW0
6ES7810-4CA08-8CW1
STEP 7
Getting Started
STEP 7
Pour une transition facile de S5 S7
Aides en ligne
Objet
Numro de rfrence
Aide de STEP 7
iv
Avant-propos
Aide en ligne
En complment au manuel, laide en ligne intgre au logiciel vous offre une assistance
dtaille lors de lutilisation du logiciel.
Ce systme daide est intgr au logiciel grce plusieurs interfaces :
Laide contextuelle donne des informations sur le contexte actuel, par exemple sur une
bote de dialogue ouverte ou sur une fentre active. Vous lappelez en cliquant sur le
bouton Aide ou en appuyant sur la touche F1.
Le menu daide ? propose plusieurs commandes : Rubrique daides ouvre le sommaire
de laide de STEP 7.
Vous obtenez le glossaire relatif toutes les applications de STEP 7 en cliquant sur
"Glossaire".
Ce manuel est extrait de l' "Aide pour LIST". En raison de la structure similaire entre le
manuel et laide en ligne, le passage de lun lautre est ais.
Assistance supplmentaire
Si des questions sont restes sans rponse dans ce manuel, veuillez vous adresser votre
interlocuteur Siemens dans la filiale ou l'agence de votre rgion.
Vous trouvez votre interloculeur sous :
http://www.siemens.com/automation/partner
Vous trouvez un fil rouge pour la recherche de documentations techniques sur les produits
et systmes SIMATIC ladresse suivante sur Internet :
http://www.siemens.com/simatic-tech-doku-portal
Le catalogue en ligne et le systme de commande en ligne se trouvent l'adresse :
http://mall.automation.siemens.com/
http://www.sitrain.com
Avant-propos
Technical Support
Vous pouvez joindre le support technique pour tous les produits A&D
Via le formulaire Web de demande dassistance (Support Request)
http://www.siemens.com/automation/support-request
Tlphone :
vi
Sommaire
1
vii
Sommaire
3.15
3.16
3.17
3.18
4
viii
Sommaire
7.9
7.10
7.11
7.12
8
Vue d'ensemble des oprations arithmtiques sur nombres virgule flottante ......... 8-1
Evaluation des bits du mot d'tat dans les oprations sur nombres
virgule flottante......................................................................................................... 8-2
Oprations de base..................................................................................................... 8-3
+R Additionner accumulateurs 1 et 2 (rels VF IEEE, 32 bits)................................ 8-3
-R Soustraire accumulateur 1 d'accumulateur 2 (rels VF IEEE, 32 bits)............... 8-5
*R Multiplier accumulateur 1 par accumulateur 2 (rels VF IEEE, 32 bits) ............. 8-7
/R Diviser accumulateur 2 par accumulateur 1 (rels VF IEEE, 32 bits)................. 8-9
ABS Valeur absolue d'un nombre virgule flottante (VF IEEE, 32 bits) ............... 8-11
Oprations tendues ................................................................................................ 8-12
SQR Carr d'un nombre virgule flottante (32 bits) ............................................. 8-12
SQRT Racine carre d'un nombre virgule flottante (32 bits).............................. 8-13
EXP Valeur exponentielle d'un nombre virgule flottante (32 bits) ...................... 8-14
LN Logarithme naturel d'un nombre virgule flottante (32 bits)............................ 8-15
SIN Sinus d'un angle comme nombres virgule flottante (32 bits)....................... 8-16
COS Cosinus d'un angle comme nombres virgule flottante (32 bits) ................. 8-17
TAN Tangente d'un angle comme nombres virgule flottante (32 bits) ............... 8-18
ASIN Arc sinus d'un nombre virgule flottante (32 bits) ....................................... 8-19
ACOS Arc cosinus d'un nombre virgule flottante (32 bits) ................................. 8-20
ATAN Arc tangente d'un nombre virgule flottante (32 bits) ................................ 8-21
ix
Sommaire
10
11
12
Sommaire
13
14
Exemples de programmation..................................................................................................B-1
B.1
B.2
B.3
B.4
B.5
B.6
Index .............................................................................................................................................Index-1
xi
Sommaire
xii
1.1
Description
Les oprations combinatoires sur bits utilisent deux chiffres : 1 et 0. Ces deux chiffres sont la
base du systme de numration binaire et sont appels chiffres binaires ou bits. Pour les
contacts et les bobines, 1 signifie activ ou excit et 0 signifie dsactiv ou dsexcit.
Les oprations de combinaison sur bits valuent les tats de signal 1 et 0 et les combinent
selon la logique boolenne. Le rsultat de ces combinaisons est gal 1 ou 0. Il sagit du
rsultat logique (RLG).
Vous disposez des oprations de base suivantes :
U
ET
UN
ET NON
OU
ON
OU NON
OU exclusif
XN
OU NON exclusif
ET d'une expression
UN(
O(
OU d'une expression
ON(
X(
XN(
Affectation
Mettre 0
Mettre 1
1-1
Ngation du RLG
SET
Mettre RLG 1
CLR
Mettre RLG 0
SAVE
Les oprations suivantes dtectent les transitions dans le rsultat logique RLG et y
ragissent :
1-2
FN
Front descendant
FP
Front montant
1.2
ET
Format
U <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D, T, Z
Description de l'opration
U (ET)
Cette opration interroge le bit en accs afin de dterminer si son tat de signal est 1 et
combine le rsultat de l'interrogation au RLG selon la table de vrit ET.
Interrogation de l'tat des bits du mot d'tat :
L'opration ET vous permet d'interroger directement le mot d'tat. A cet effet, utilisez les
oprandes suivants : ==0, <>0, >0, <0, >=0, <=0, UO, BIE, OS, OV (BIE correspond RB, OS
DM et OV DEB).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
E 1.0
Contact
fermeture
E 1.1
Contact
fermeture
A 4.0
Bobine
1-3
1.3
UN
ET NON
Format
UN <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D, T, Z
Description de l'opration
UN (ET NON)
Cette opration interroge le bit en accs afin de dterminer si son tat de signal est 0 et
combine le rsultat de l'interrogation au RLG selon la table de vrit ET.
Interrogation de l'tat des bits du mot d'tat :
L'opration ET NON vous permet d'interroger directement le mot d'tat. A cet effet, utilisez les
oprandes suivants : ==0, <>0, >0, <0, >=0, <=0, UO, BIE, OS, OV (BIE correspond RB, OS
DM et OV DEB).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
1-4
E 1.0
E 1.0
Etat de signal 0
Contact
fermeture
UN
E 1.1
E 1.1
Etat de signal 1
Contact
ouverture
A 4.0
A 4.0
Etat de signal 0
Bobine
1.4
OU
Format
O <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D, T, Z
Description de l'opration
O (OU)
Cette opration interroge le bit en accs afin de dterminer si son tat de signal est 1 et
combine le rsultat de l'interrogation au RLG selon la table de vrit OU.
Interrogation de l'tat des bits du mot d'tat :
L'opration OU vous permet d'interroger directement le mot d'tat. A cet effet, utilisez les
oprandes suivants : ==0, <>0, >0, <0, >=0, <=0, UO, BIE, OS, OV (BIE correspond RB, OS
DM et OV DEB).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
E 1.0
E 1.1
A 4.0
Bobine
1-5
1.5
ON
OU NON
Format
ON <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D, T, Z
Description de l'opration
ON (OU NON)
Cette opration interroge le bit en accs afin de dterminer si son tat de signal est 0 et
combine le rsultat de l'interrogation au RLG selon la table de vrit OU.
Interrogation de l'tat des bits du mot d'tat :
L'opration OU NON vous permet aussi d'interroger directement le mot d'tat. A cet effet,
utilisez les oprandes suivants : ==0, <>0, >0, <0, >=0, <=0, UO, BIE, OS, OV (BIE
correspond RB, OS DM et OV DEB).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
1-6
E 1.0
E 1.0
Etat de signal 0
ON
E 1.1
E 1.1
Etat de signal 1
A 4.0
A 4.0
Etat de signal 1
Contact
fermeture
Contact
ouverture
Bobine
1.6
OU exclusif
Format
X <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D, T, Z
Description de l'opration
X (OU exclusif)
Cette opration interroge le bit en accs afin de dterminer si son tat de signal est 1, et
combine le rsultat de cette interrogation au RLG selon la table de vrit OU exclusif.
Vous avez galement la possibilit d'appliquer plusieurs fois d'affile l'opration OU exclusif.
Le RLG global sera alors gal "1", lorsqu'un nombre impair des oprandes interrogs fournit
le rsultat "1".
Interrogation de l'tat des bits du mot d'tat :
L'opration OU exclusif vous permet aussi d'interroger directement le mot d'tat. A cet effet,
utilisez les oprandes suivants : ==0, <>0, >0, <0, >=0, <=0, UO, BIE, OS, OV (BIE
correspond RB, OS DM et OV DEB).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
E 1.0
Contact E 1.0
E 1.1
Contact E 1.1
A 4.0
A 4.0
Bobine
1-7
1.7
XN
OU NON exclusif
Format
XN <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D, T, Z
Description de l'opration
XN (OU NON exclusif)
Cette opration interroge le bit en accs afin de dterminer si son tat de signal est 0, et
combine le rsultat de cette interrogation au RLG selon la table de vrit OU exclusif.
Interrogation de l'tat des bits du mot d'tat :
L'opration OU NON exclusif vous permet aussi d'interroger directement le mot d'tat. A cet
effet, utilisez les oprandes suivants : ==0, <>0, >0, <0, >=0, <=0, UO, BIE, OS, OV (BIE
correspond RB, OS DM et OV DEB).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
1-8
E 1.0
Contact E 1.0
XN
E 1.1
Contact E 1.1
A 4.0
A 4.0
Bobine
1.8
ET avant OU
Format
O
Description de l'opration
O
Cette opration excute, selon le principe ET avant OU, la combinaison OU sur des
combinaisons ET.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
E 0.0
M 10.0
O
U
U
E 0.2
M 0.3
M 10.1
E 0.0
E 0.2
M 10.0
M 0.3
M 10.1
A 4.0
A 4.0
Bobine
1-9
1.9
U(
ET d'une expression
Format
U(
Description de l'opration
U( (ET d'une expression)
Cette opration sauvegarde les bits RLG et OU ainsi qu'un code d'opration dans la pile des
parenthses. La piles des parenthses peut contenir jusqu' 7 entres.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
1-10
U(
O
O
)
E 0.0
M 10.0
E 0.0
U(
O
O
)
E 0.2
M 10.3
E 0.2
M 10.1
A 4.0
M 10.0
M 10.3
M 10.1
A 4.0
Bobine
1.10
UN(
Format
UN(
Description de l'opration
UN( (ET NON d'une expression)
Cette opration sauvegarde les bits RLG et OU ainsi qu'un code d'opration dans la pile des
parenthses. La pile des parenthses peut contenir jusqu' 7 entres.
Mot d'tat
Ecriture :
1.11
O(
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
OU d'une expression
Format
O(
Description de l'opration
O( (OU d'une expression)
Cette opration sauvegarde les bits RLG et OU ainsi qu'un code d'opration dans la pile des
parenthses. La pile des parenthses peut contenir jusqu' 7 entres.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
1-11
1.12
ON(
Format
ON(
Description de l'opration
ON( (OU NON d'une expression)
Cette opration sauvegarde les bits RLG et OU ainsi qu'un code d'opration dans la pile des
parenthses. La pile des parenthses peut contenir jusqu' 7 entres.
Mot d'tat
Ecriture :
1.13
X(
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Format
X(
Description de l'opration
X( (OU exclusif d'une expression)
Cette opration sauvegarde les bits RLG et OU ainsi qu'un code d'opration dans la pile des
parenthses. La pile des parenthses peut contenir jusqu' 7 entres.
Mot d'tat
Ecriture :
1-12
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
1.14
XN(
Format
XN(
Description de l'opration
XN( (OU NON exclusif d'une expression)
Cette opration sauvegarde les bits RLG et OU ainsi qu'un code d'opration dans la pile des
parenthses. La pile des parenthses peut contenir jusqu' 7 entres.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
1-13
1.15
Format
)
Description de l'opration
) (Fermer la parenthse d'une expression)
Cette opration efface une entre de la pile des parenthses, restaure le bit OU, combine le bit
RLG contenu dans l'entre de la pile au RLG en cours conformment au code d'opration et
affecte le rsultat au RLG. S'il s'agit d'une opration ET ou ET NON, celle-ci tient galement
compte du bit OU.
Oprations ouvrant une expression entre parenthses :
U(
ET d'une expression
UN(
O(
OU d'une expression
ON(
X(
XN(
Mot d'tat
Ecriture :
1-14
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
U(
O
O
)
E 0.0
M 10.0
E 0.0
U(
O
O
)
E 0.2
M 10.3
E 0.2
M 10.1
A 4.0
M 10.0
M 10.3
M 10.1
A 4.0
Bobine
1-15
1.16
Affectation
Format
= <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D
Description de l'opration
= <bit>
Cette opration sauvegarde le RLG dans le bit en accs si le relais de masquage (Master
Control Relay) est en fonction (MCR = 1). Si le relais MCR gale 0, c'est la valeur 0 et non le
RLG qui est crite dans le bit.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
U
=
E 1.0
A 4.0
1-16
E 1.0
1
0
A 4.0
1
0
A 4.0
Bobine
1.17
Mettre 0
Format
R <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D
Description de l'opration
R (Mettre 0)
Cette opration crit la valeur 0 dans le bit en accs si le RLG gale 1 et si le relais de
masquage (Master Control Relay) est en fonction (MCR = 1). Si le relais MCR gale 0, le bit
indiqu n'est pas modifi.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
U
S
U
R
E 1.0
A 4.0
E 1.1
A 4.0
1
0
1
0
1
0
A 4.0
E 1.1
Contact
ouverture
A 4.0
Bobines
1-17
1.18
Mettre 1
Format
S <bit>
Oprande
Type de donnes
Zone de mmoire
<bit>
BOOL
E, A, M, L, D
Description de l'opration
S (Mettre 1)
Cette opration crit la valeur 1 dans le bit en accs si le RLG gale 1 et si le relais de
masquage (Master Control Relay) est en fonction (MCR = 1). Si le relais MCR gale 0, le bit
indiqu n'est pas modifi.
Mot d'tat
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Ecriture :
Exemple
Programme LIST
U
S
U
R
E 1.0
A 4.0
E 1.1
A 4.0
1-18
1
0
1
0
1
0
A 4.0
E 1.1
Contact
ouverture
A 4.0
Bobines
1.19
NOT
Ngation du RLG
Format
NOT
Description de l'opration
NOT
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
1-19
1.20
SET
Mettre RLG 1
Format
SET
Description de l'opration
SET (Mettre RLG 1)
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
Etat de signal
SET
= M 10.0
= M 15.1
= M 16.0
1
0
CLR
1-20
= M 10.1
= M 10.2
1.21
CLR
Mettre RLG 0
Format
CLR
Description de l'opration
CLR (Mettre RLG 0)
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
Programme LIST
Etat de signal
SET
= M 10.0
= M 15.1
= M 16.0
1
0
CLR
= M 10.1
= M 10.2
1-21
1.22
SAVE
Format
SAVE
Description de l'opration
SAVE (Sauvegarder RLG dans le bit RB)
Cette opration sauvegarde le RLG dans le bit RB, le bit de premire interrogation /PI ntant
pas remis 0.
Pour cette raison, une combinaison ET dans le rseau suivant prend en compte ltat du bit
RB.
L'utilisation de l'opration SAVE suivie d'une interrogation du bit RB dans le mme bloc ou
dans un bloc subordonn n'est pas recommande, le bit RB pouvant tre modifi par un grand
nombre d'oprations intermdiaires. Il est par contre judicieux d'utiliser l'opration SAVE
avant de quitter un bloc, car ainsi la sortie ENO (= bit RB) prend la valeur du bit RLG, ce qui
vous permet ensuite de poursuivre par un traitement des erreurs du bloc.
Mot d'tat
Ecriture :
1-22
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
1.23
FN
Front descendant
Format
FN <bit>
Oprande
Type de
donnes
Zone de
mmoire
Description
<bit>
BOOL
E, A, M, L, D
Description de l'opration
FN <bit> (Front descendant)
Nota
Lorsque le bit contrler se trouve dans la mmoire image, cette opration n'est pas
significative. En effet, les donnes locales d'un bloc ne sont valides que pendant la dure
d'excution de ce bloc.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Dfinition
Front montant
Front descendant
RLG
1
0
Temps
1-23
Exemple
Lorsque l'automate programmable dtecte un front descendant au contact E 1.0, il active la
sortie A 4.0 pour un cycle d'OB1.
Programme LIST
U
E 1.0
E 1.0
1
0
FN
M 1.0
M 1.0
1
0
A 4.0
A 4.0
1
0
Cycle OB1 n :
1-24
1.24
FP
Front montant
Format
FP <bit>
Oprande
Type de
donnes
Zone de
mmoire
Description
<bit>
BOOL
E, A, M, L, D
Description de l'opration
FP <bit> (Front montant)
Nota
Lorsque le bit contrler se trouve dans la mmoire image, cette opration n'est pas
significative. En effet, les donnes locales d'un bloc ne sont valides que pendant la dure
d'excution de ce bloc.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Dfinition
Front montant
Front descendant
RLG
1
0
Temps
1-25
Exemple
Lorsque l'automate programmable dtecte un front montant au contact E 1.0, il active la sortie
A 4.0 pour un cycle d'OB1.
Programme LIST
U
E 1.0
E 1.0
1
0
FP
M 1.0
M 1.0
1
0
A 4.0
A 4.0
1
0
Cycle OB1 n :
1-26
Oprations de comparaison
2.1
Description
Les oprations de comparaison comparent le contenu de l'accumulateur 2 celui de
l'accumulateur 1 selon les types de comparaison suivants :
==
<>
>
<
>=
<=
ACCU 2
ACCU 2
ACCU 2
ACCU 2
ACCU 2
ACCU 2
?D
?R
2-1
Oprations de comparaison
2.2
?I
Format
==I, <>I, >I, <I, >=I, <=I
Description de l'opration
Les oprations de comparaison d'entiers de 16 bits comparent le contenu de
l'accumulateur 2- L celui de l'accumulateur 1- L. Les contenus de l'accumulateur 2-L et de
l'accumulateur 1-L sont valus comme nombres entiers de 16 bits. Le rsultat de la
comparaison est indiqu par le RLG et les bits significatifs du mot d'tat. Si le RLG gale 1, le
rsultat de comparaison est vrai. Si le RLG gale 0, le rsultat de comparaison est faux. Les
bits BI1 et BI0 indiquent la relation "infrieur ", "gal " ou "suprieur ".
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Valeurs du RLG
Opration de
comparaison
excute
RLG si
RLG si
RLG si
ACCU 2 = ACCU 1
==I
<>I
>I
<I
>=I
<=I
Exemple
LIST
L
L
>I
=
2-2
MW10
EW24
M 2.0
Explication
//Charger le contenu de MW10 (entier de 16 bits).
//Charger le contenu de EW24 (entier de 16 bits).
//Comparer si accumulateur 2-L (MW10) suprieur (>) accumulateur 1-L (EW24).
//Le RLG gale 1 si MW10 > EW24.
Oprations de comparaison
2.3
?D
Format
==D, <>D, >D, <D, >=D, <=D
Description de l'opration
Les oprations de comparaison d'entiers de 32 bits comparent le contenu de l'accumulateur 2
celui de l'accumulateur 1. Les contenus de l'accumulateur 2 et de l'accumulateur 1 sont
valus comme nombres entiers de 32 bits. Le rsultat de la comparaison est indiqu par le
RLG et les bits significatifs du mot d'tat. Si le RLG gale 1, le rsultat de comparaison est
vrai. Si le RLG gale 0, le rsultat de comparaison est faux. Les bits BI1 et BI0 indiquent la
relation "infrieur ", "gal " ou "suprieur ".
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Valeurs du RLG
Opration de
comparaison
excute
RLG si
RLG si
RLG si
ACCU 2 = ACCU 1
==D
<>D
>D
<D
>=D
<=D
Exemple
LIST
L
L
>D
=
MD10
ED24
M 2.0
Explication
//Charger le contenu de MD10 (entier de 32 bits).
//Charger le contenu de ED24 (entier de 32 bits).
//Comparer si accumulateur 2 (MD10) suprieur (>)
//Le RLG gale 1 si MD10 > ED24.
accumulateur 1 (ED24).
2-3
Oprations de comparaison
2.4
?R
Format
==R, <>R, >R, <R, >=R, <=R
Description de l'opration
Les oprations de comparaison de nombres virgule flottante IEEE de 32 bits comparent le
contenu de l'accumulateur 2 celui de l'accumulateur 1. Les contenus de l'accumulateur 1 et
de l'accumulateur 2 sont valus comme nombres virgule flottante IEEE de 32 bits. Le
rsultat de la comparaison est indiqu par le RLG et les bits significatifs du mot d'tat. Si le
RLG gale 1, le rsultat de comparaison est vrai. Si le RLG gale 0, le rsultat de comparaison
est faux. Les bits BI1 et BI0 indiquent la relation "infrieur ", "gal " ou "suprieur ".
Mot d'tat
Ecriture
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Valeurs du RLG
Opration de
comparaison
excute
RLG si
RLG si
RLG si
ACCU 2 = ACCU 1
==R
<>R
>R
<R
>=R
<=R
Exemple
LIST
L
L
>R
MD10
1.359E+02
M 2.0
2-4
Explication
//Charger le contenu de MD10 (nombre virgule flottante).
//Charger la constante 1.359E+02.
//Comparer si l'accumulateur 2 (MD10) suprieur (>) l'accumulateur 1
(1.359E+02).
//Le RLG gale 1 si MD10 > 1.359E+02.
Oprations de conversion
3.1
Description
Les oprations suivantes permettent de convertir des nombres dcimaux cods binaires et
des nombres entiers en dautres types de nombres :
BTI
ITB
BTD
ITD
DTB
DTR
INVD
NEGI
NEGD
NEGR
Les oprations suivantes permettent de modifier lordre des octets dans le mot de poids faible
de laccumulateur 1 ou dans laccumulateur 1 entier :
TAW
TAD
Les oprations suivantes permettent de convertir le nombre virgule flottante IEEE de 32 bits
figurant dans laccumulateur 1 en un nombre entier de 32 bits (entier double). Les diffrentes
oprations se distinguent par leur faon darrondir :
RND
Arrondir l'entier
TRUNC
RND+
RND-
3-1
Oprations de conversion
3.2
BTI
Format
BTI
Description de l'opration
BTI (Conversion en nombre entier d'un nombre dcimal cod binaire trois chiffres)
Cette opration value le contenu de l'accumulateur 1-L comme nombre dcimal cod binaire
(nombre DCB) trois chiffres et le convertit en un nombre entier de 16 bits. Le rsultat de la
conversion est rang dans l'accumulateur 1-L. L'accumulateur 1-H et l'accumulateur 2 restent
inchangs.
Nombre DCB contenu dans l'accumulateur 1-L : ce nombre DCB peut tre compris entre
-999 et +999. Les bits 0 11 indiquent la valeur et le bit 15 le signe (0 = positif, 1 = ngatif) du
nombre DCB. Les bits 12 14 ne sont pas utiliss pour la conversion. Si un chiffre dcimal
(une ttrade de 4 bits dans la reprsentation DCB) est compris dans la plage incorrecte de 10
15, une erreur BCDF est signale lors de la tentative de conversion. En gnral, l'automate
programmable passe alors l'tat de fonctionnement "Arrt" (STOP). Cependant, l'OB121
vous permet de programmer une autre raction cette erreur synchrone.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
BTI
MW10
MW20
Explication
//Charger le nombre DCB dans l'accumulateur 1-L.
//Convertir le nombre DCB en un nombre entier et ranger le rsultat dans
l'accumulateur 1-L.
//Transfrer le rsultat (nombre entier de 16 bits) dans le mot de mmento MW20.
"+"
"9"
15...
MW10
...8
0
"5"
7...
0
...0
0
+915 DCB
BTI
MW 20
3-2
"1"
Oprations de conversion
3.3
ITB
Format
ITB
Description de l'opration
ITB (Convertir entier de 16 bits en DCB)
Cette opration value le contenu de l'accumulateur 1-L comme nombre entier de 16 bits et le
convertit en un nombre dcimal cod binaire (nombre DCB) trois chiffres. Le rsultat est
rang dans l'accumulateur 1-L. Les bits 0 11 indiquent la valeur du nombre DCB. Les bits 12
15 contiennent l'tat du signe du nombre DCB (0000 = positif, 1111 = ngatif).
L'accumulateur 1-H et l'accumulateur 2 restent inchangs.
Le nombre DCB peut tre compris entre -999 et +999. S'il se situe hors de la plage correcte,
les bits d'tat DEB et DM sont mis 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
ITB
MW10
MW20
Explication
//Charger l'entier dans l'accumulateur 1-L.
//Convertir l'entier de 16 bits en un nombre DCB et ranger le rsultat dans
l'accumulateur 1-L.
//Transfrer le rsultat (nombre DCB) dans le mot de mmento MW20.
15...
MW10
...8
7...
0
...0
1
-413 DCB
ITB
MW20
"-"
"4"
"1"
"3"
3-3
Oprations de conversion
3.4
BTD
Format
BTD
Description de l'opration
BTD (Conversion en nombre entier d'un nombre dcimal cod binaire sept chiffres)
Cette opration value le contenu de l'accumulateur 1 comme nombre dcimal cod binaire
(nombre DCB) sept chiffres et le convertit en un nombre entier de 32 bits. Le rsultat de la
conversion est rang dans l'accumulateur 1. L'accumulateur 2 reste inchang.
Nombre DCB contenu dans l'accumulateur 1 : ce nombre DCB peut tre compris entre -9
999 999 et +9 999 999. Les bits 0 27 indiquent la valeur et le bit 31 le signe (0 = positif, 1 =
ngatif) du nombre DCB. Les bits 28 30 ne sont pas utiliss pour la conversion.
Si un chiffre dcimal (une ttrade de 4 bits dans la reprsentation DCB) est compris dans la
plage incorrecte de 10 15, une erreur BCDF est signale lors de la tentative de conversion.
En gnral, l'automate programmable passe alors l'tat de fonctionnement "Arrt" (STOP).
Cependant, l'OB121 vous permet de programmer une autre raction cette erreur synchrone.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
BTD
MD10
MD20
Explication
//Charger le nombre DCB dans l'accumulateur 1.
//Convertir le nombre DCB en un nombre entier et ranger le rsultat dans
l'accumulateur 1.
//Transfrer le rsultat (nombre entier de 32 bits) dans le double mot de mmento
MD20.
"+"
31...
MD10
BTD
MD20
"0"
"1"
"5"
"7"
...16 15...
"8"
"2"
"1"
...0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1
"+157821"
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1
"+157821"
3-4
Oprations de conversion
3.5
ITD
Format
ITD
Description de l'opration
ITD (Convertir entier de 16 bits en entier de 32 bits)
Cette opration value le contenu de l'accumulateur 1-L comme nombre entier de 16 bits et le
convertit en un nombre entier de 32 bits. Le rsultat est rang dans l'accumulateur 1 ;
l'accumulateur 2 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
ITD
MW12
MD20
Explication
//Charger l'entier de 16 bits dans l'accumulateur 1.
//Convertir l'entier de 16 bits en un entier de 32 bits et ranger le rsultat
dans l'accumulateur 1.
//Transfrer le rsultat (nombre entier de 32 bits) dans le double mot de mmento
MD20.
ACCU1-H
ACCU1-L
Bit
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
XXXX
XXXX
XXXX
XXXX
1111
1111
1111
0110
1111
1111
1111
1111
1111
1111
1111
0110
3-5
Oprations de conversion
3.6
DTB
Format
DTB
Description de l'opration
DTB (Conversion d'un nombre entier de 32 bits en nombre DCB)
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
DTB
MD10
MD20
Explication
//Charger l'entier de 32 bits dans l'accumulateur 1.
//Convertir l'entier de 32 bits en un nombre DCB et ranger le rsultat dans
l'accumulateur 1.
//Transfrer le rsultat (nombre DCB) dans le double mot de mmento MD20.
31...
MD10
...0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1
DTB
MD20
...16 15...
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1
"-"
"0"
"0"
"0"
"0"
"7"
"0"
"1"
-701 DBC
3-6
Oprations de conversion
3.7
DTR
Format
DTR
Description de l'opration
DTR (Conversion d'un nombre entier de 32 bits en nombre virgule flottante IEEE de 32 bits)
Cette opration value le contenu de l'accumulateur 1 comme nombre entier de 32 bits et le
convertit en nombre virgule flottante IEEE de 32 bits. Si ncessaire, l'opration arrondit le
rsultat (un entier de 32 bits a une plus grande prcision qu'un nombre virgule flottante IEEE
de 32 bits). Le rsultat est rang dans l'accumulateur 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
DTR
MD10
MD20
MD10
DTR
MD20
Explication
//Charger l'entier de 32 bits dans l'accumulateur 1.
//Convertir l'entier de 32 bits en un nombre virgule flottante IEEE de 32
bits et ranger le rsultat dans l'accumulateur 1.
//Transfrer le rsultat (nombre DCB) dans le double mot de mmento MD20.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0
22...
0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Exposant de 8 bits
1 bit
Signe de la mantisse
Mantisse de 23 bits
+500 VF IEEE
3-7
Oprations de conversion
3.8
INVI
Format
INVI
Description de l'opration
INVI (Complment 1 d'entier de 16 bits)
Cette opration forme le complment 1 de la valeur de 16 bits figurant dans
l'accumulateur 1- L. Lors de la formation du complment 1, les bits individuels sont inverss,
c'est--dire que les zros sont remplacs par des uns et les uns par des zros. Le rsultat est
rang dans l'accumulateur 1-L.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
INVI
T
EW8
MW10
Explication
//Charger la valeur dans l'accumulateur 1-L.
//Former le complment 1 (16 bits).
//Transfrer le rsultat dans le mot de mmento MW10.
Contenu
ACCU1-L
Bit
15 . . .
..
..
...0
0110
0011
1010
1110
1001
1100
0101
0001
3-8
Oprations de conversion
3.9
INVD
Format
INVD
Description de l'opration
INVD (Complment 1 d'entier de 32 bits)
Cette opration forme le complment 1 de la valeur de 32 bits figurant dans l'accumulateur
1. Lors de la formation du complment 1, les bits individuels sont inverss, c'est--dire que
les zros sont remplacs par des uns et les uns par des zros. Le rsultat est rang dans
l'accumulateur 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
INVD
T
ED8
MD10
Explication
//Charger la valeur dans l'accumulateur 1.
//Former le complment 1 (32 bits).
//Transfrer le rsultat dans le double mot de mmento MD10.
Contenu
ACCU1-H
Bit
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
0110
1111
1000
1100
0110
0011
1010
1110
1001
0000
0111
0011
1001
1100
0101
0001
ACCU1-L
3-9
Oprations de conversion
3.10
NEGI
Format
NEGI
Description de l'opration
NEGI (Complment 2 d'entier de 16 bits)
Cette opration forme le complment 2 de la valeur de 16 bits figurant dans
l'accumulateur 1-L. Lors de la formation du complment 2, les bits individuels sont inverss,
c'est--dire que les zros sont remplacs par des uns et les uns par des zros, puis on ajoute
la valeur 1. Le rsultat est rang dans l'accumulateur 1-L. L'opration "Complment 2
d'entier" est quivalente une multiplication par -1. Les bits d'tat BI1, BI0, DM et DEB sont
mis 1 comme rsultat de l'opration.
Mot d'tat
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
rsultat = 0
Ecriture :
rsultat = 2768
Exemple
LIST
L
NEGI
T
EW8
MW10
Explication
//Charger la valeur dans l'accumulateur 1-L.
//Former le complment 2 (16 bits).
//Transfrer le rsultat dans le mot de mmento MW10.
Contenu
ACCU1-L
Bit
15 . . .
..
..
...0
0101
1101
0011
1000
1010
0010
1100
1000
3-10
Oprations de conversion
3.11
NEGD
Format
NEGD
Description de l'opration
NEGD (Complment 2 d'entier de 32 bits)
Cette opration forme le complment 2 de la valeur de 32 bits figurant dans l'accumulateur
1. Lors de la formation du complment 2, les bits individuels sont inverss, c'est--dire que
les zros sont remplacs par des uns et les uns par des zros, puis on ajoute la valeur 1. Le
rsultat est rang dans l'accumulateur 1. L'opration "Complment 2 d'entier" est
quivalente une multiplication par -1. Les bits d'tat BI1, BI0, DM et DEB sont mis 1
comme rsultat de l'opration.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
Exemple
LIST
L
NEGD
T
ED8
MD10
Explication
//Charger la valeur dans l'accumulateur 1.
//Former le complment 2 (32 bits).
//Transfrer le rsultat dans le double mot de mmento MD10.
Contenu
ACCU1-H
Bit
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1000
1010
0000
1001
1011
1010
0010
1100
1000
ACCU1-L
3-11
Oprations de conversion
3.12
NEGR
Format
NEGR
Description de l'opration
NEGR (Inverser nombre virgule flottante)
Cette opration inverse le nombre virgule flottante IEEE de 32 bits figurant dans
l'accumulateur 1. Elle inverse l'tat du bit 31 contenu dans l'accumulateur 1 (signe de la
mantisse). Le rsultat est rang dans l'accumulateur 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
NEGR
ED8
MD10
3-12
Explication
//Charger la valeur dans l'accumulateur 1 (exemple : ED8 = 1.5E+02).
//Inverser le nombre virgule flottante IEEE de 32 bits et ranger le rsultat
dans l'accumulateur 1.
//Transfrer le rsultat dans le double mot de mmento MD10 (exemple : rsultat
= -1.5E+02).
Oprations de conversion
3.13
TAW
Format
TAW
Description de l'opration
TAW
Cette opration permet d'inverser l'ordre des octets dans l'accumulateur 1-L. Le rsultat est
rang dans l'accumulateur 1-L. L'accumulateur 1-H et l'accumulateur 2 restent inchangs.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
TAW
T
MW10
MW20
Explication
//Charger la valeur du mot de mmento MW10 dans l'accumulateur
//Inverser l'ordre des octets dans l'accumulateur 1-L.
//Transfrer le rsultat dans le mot de mmento MW20.
1.
Contenu
ACCU 1-H-H
ACCU 1-H-L
ACCU 1-L-H
ACCU 1-L-L
valeur A
valeur B
valeur C
valeur D
valeur A
valeur B
valeur D
valeur C
3-13
Oprations de conversion
3.14
TAD
Format
TAD
Description de l'opration
TAD
Cette opration permet d'inverser l'ordre des octets dans l'accumulateur 1. Le rsultat est
rang dans l'accumulateur 1 ; l'accumulateur 2 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
TAD
T
MD10
MD20
Explication
//Charger la valeur du double mot de mmento MD10 dans l'accumulateur
//Inverser l'ordre des octets dans l'accumulateur 1.
//Transfrer le rsultat dans le double mot de mmento MD20.
1.
Contenu
ACCU 1-H-H
ACCU 1-H-L
ACCU 1-L-H
ACCU 1-L-L
valeur A
valeur B
valeur C
valeur D
valeur D
valeur C
valeur B
valeur A
3-14
Oprations de conversion
3.15
RND
Arrondir l'entier
Format
RND
Description de l'opration
RND (Conversion d'un nombre virgule flottante IEEE de 32 bits en entier de 32 bits)
Cette opration value le contenu de l'accumulateur 1 comme nombre virgule flottante IEEE
de 32 bits, le convertit en un nombre entier de 32 bits et arrondit le rsultat au nombre entier le
plus proche. Si la partie fractionnaire du nombre converti se situe exactement entre un rsultat
pair et un rsultat impair, l'opration choisit le rsultat pair. Si le nombre est hors de la plage
correcte, les bits d'tat DEB et DM sont mis 1.
Si le nombre n'est pas un nombre virgule flottante ou est un nombre virgule flottante qui ne
peut pas tre reprsent comme entier de 32 bits, la conversion n'a pas lieu et un
dbordement est signal.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
RND
MD10
MD20
Explication
//Charger dans l'accumulateur 1 le nombre virgule flottante IEEE de 32 bits.
//Convertir le nombre virgule flottante IEEE de 32 bits en un nombre entier
de 32 bits et arrondir au nombre entier le plus proche. Ranger le rsultat dans
l'accumulateur 1.
//Transfrer le rsultat (entier de 32 bits) dans le double mot de mmento MD20.
MD10 = "100.5"
MD20 = "+100"
MD10 = "-100.5"
MD20 = "-100"
3-15
Oprations de conversion
3.16
TRUNC
Format
TRUNC
Description de l'opration
TRUNC (Conversion d'un nombre virgule flottante IEEE de 32 bits en nombre entier de
32 bits)
Cette opration value le contenu de l'accumulateur 1 comme nombre virgule flottante IEEE
de 32 bits et le convertit en un nombre entier de 32 bits. Le rsultat correspond la partie
entire du nombre virgule flottante converti (mode d'arrondi IEEE "arrondi zro"). Si le
nombre est hors de la plage correcte, les bits d'tat DEB et DM sont mis 1. Le rsultat est
rang dans l'accumulateur 1.
Si le nombre n'est pas un nombre virgule flottante ou est un nombre virgule flottante qui ne
peut pas tre reprsent comme entier de 32 bits, la conversion n'a pas lieu et un
dbordement est signal.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
TRUNC
MD10
MD20
Explication
//Charger dans l'accumulateur 1 le nombre virgule flottante IEEE de 32 bits.
//Convertir le nombre virgule flottante de 32 bits en un nombre entier de
32 bits et conserver la partie entire. Ranger le rsultat dans l'accumulateur
1.
//Transfrer le rsultat (entier de 32 bits) dans le double mot de mmento MD20.
MD10 = "100.5"
MD20 = "+100"
MD10 = "-100.5"
MD20 = "-100"
3-16
Oprations de conversion
3.17
RND+
Format
RND+
Description de l'opration
RND+ (Conversion d'un nombre virgule flottante IEEE de 32 bits en entier de 32 bits)
Cette opration value le contenu de l'accumulateur 1 comme nombre virgule flottante IEEE
de 32 bits, le convertit en un nombre entier de 32 bits et arrondit le rsultat au plus petit
nombre entier suprieur ou gal au nombre virgule flottante converti (mode d'arrondi IEEE
"arrondi +infini"). Si le nombre est hors de la plage correcte, les bits d'tat DEB et DM sont
mis 1. Le rsultat est rang dans l'accumulateur 1.
Si le nombre n'est pas un nombre virgule flottante ou est un nombre virgule flottante qui ne
peut pas tre reprsent comme entier de 32 bits, la conversion n'a pas lieu et un
dbordement est signal.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
RND+
MD10
MD20
Explication
//Charger dans l'accumulateur 1 le nombre virgule flottante IEEE de 32 bits.
//Convertir le nombre virgule flottante IEEE de 32 bits en un nombre entier
de 32 bits et arrondir au plus petit nombre entier suprieur. Ranger le rsultat
dans l'accumulateur 1.
//Transfrer le rsultat (entier de 32 bits) dans le double mot de mmento MD20.
MD10 = "100.5"
MD20 = "+101"
MD10 = "-100.5"
MD20 = "-100"
3-17
Oprations de conversion
3.18
RND-
Format
RND-
Description de l'opration
RND- (Conversion d'un nombre virgule flottante IEEE de 32 bits en entier de 32 bits)
Cette opration value le contenu de l'accumulateur 1 comme nombre virgule flottante IEEE
de 32 bits, le convertit en un nombre entier de 32 bits et arrondit le rsultat au plus grand
nombre entier infrieur ou gal au nombre virgule flottante converti (mode d'arrondi IEEE
"arrondi -infini"). Si le nombre est hors de la plage correcte, les bits d'tat DEB et DM sont
mis 1. Le rsultat est rang dans l'accumulateur 1.
Si le nombre n'est pas un nombre virgule flottante ou est un nombre virgule flottante qui ne
peut pas tre reprsent comme entier de 32 bits, la conversion n'a pas lieu et un
dbordement est signal.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
RND-
MD10
MD20
Explication
//Charger dans l'accumulateur 1 le nombre virgule flottante IEEE de 32 bits.
//Convertir le nombre virgule flottante IEEE de 32 bits en un nombre entier
de 32 bits et arrondir au plus grand nombre entier infrieur. Ranger le rsultat
dans l'accumulateur 1.
//Transfrer le rsultat (entier de 32 bits) dans le double mot de mmento MD20.
MD10 = "100.5"
MD20 = "+100"
MD10 = "-100.5"
MD20 = "-101"
3-18
Oprations de comptage
4.1
Description
Un compteur est un lment fonctionnel du logiciel de programmation STEP 7. Une zone est
rserve aux compteurs dans la mmoire de votre CPU. Cette zone de mmoire rserve un
mot de 16 bits chaque compteur. La programmation avec LIST prend en charge 256
compteurs. Le nombre de compteurs disponibles dans votre CPU figure dans les
caractristiques techniques. Les oprations de comptage sont les seules fonctions qui ont
accs la zone de mmoire rserve aux compteurs.
Vous disposez des oprations de comptage suivantes :
FR
Valider compteur
LC
Initialiser compteur
ZV
Incrmenter
ZR
Dcrmenter
4-1
Oprations de comptage
4.2
FR
Valider compteur
Format
FR <compteur>
Paramtre
Type de
donnes
Zone de
mmoire
Description
<compteur>
COUNTER
Description de l'opration
FR <compteur> efface le mmento de front qui active l'incrmentation ou la dcrmentation
pour le compteur en accs si le rsultat logique RLG passe de 0 1. La validation du compteur
n'est pas requise pour initialiser un compteur ou excuter la fonction de comptage normale.
Cela signifie que, malgr un RLG constant de 1 aux instructions Initialiser compteur,
Incrmenter ou Dcrmenter, ces oprations sont nouveau excutes aprs la validation.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
U
FR
4-2
E 2.0
Z3
Explication
//Interroger l'tat de signal l'entre E 2.0.
//Valider le compteur Z3 si le RLG passe de 0 1.
Oprations de comptage
4.3
Format
L <compteur>
Paramtre
Type de
donnes
Zone de
mmoire
Description
<compteur>
COUNTER
Description de l'opration
L <compteur> charge la valeur de comptage en cours du compteur en accs comme nombre
entier dans l'accumulateur 1-L aprs sauvegarde du contenu de l'accumulateur 1 dans
l'accumulateur 2.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
Z3
Mot de
compteur
pour Z3 en
mmoire
Explication
//Charger la valeur de comptage du compteur Z3 en format binaire dans
l'accumulateur 1-L.
15
14
13
12
11
10
Contenu de
l'ACCU 1-L
aprs l'instruction
L Z3
15
14
13
12
Tous "0"
11
10
Z3
4-3
Oprations de comptage
4.4
Format
LC <compteur>
Paramtre
Type de
donnes
Zone de
mmoire
Description
<compteur>
COUNTER
Description de l'opration
LC <compteur> charge la valeur de comptage en cours du compteur en accs comme
nombre DCB dans l'accumulateur 1 aprs sauvegarde du contenu de l'accumulateur 1 dans
l'accumulateur 2.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
LC
4-4
Z3
Explication
//Charger la valeur de comptage du compteur Z3 en format DCB dans l'accumulateur
1-L.
Oprations de comptage
Mot de
comptage
pour Z3 en
mmoire
15
14
13
12
11
10
LC
Contenu de
0
0
0
0
l'ACCU1-L
aprs l'instruction
15
14
13
12
2
2
2
2
LC Z3
11
2
2
10
10 Centaines
2
1
Z3
10 Dizaines
10 Units
4-5
Oprations de comptage
4.5
Format
R <compteur>
Paramtre
Description
<compteur>
COUNTER
Description de l'opration
R <compteur> charge la valeur de comptage 0 dans le compteur en accs si le RLG gale 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
U
R
4-6
E 2.3
Z3
Explication
//Interroger l'tat de signal l'entre E 2.3.
//Remettre le compteur Z3 0 si le RLG passe de 0
1.
Oprations de comptage
4.6
Initialiser compteur
Format
S <compteur>
Paramtre
Type de
donnes
Zone de
mmoire
Description
<compteur>
COUNTER
Description de l'opration
S <compteur> charge la valeur de comptage figurant dans l'accumulateur 1-L dans le
compteur concern si le RLG passe de 0 1. La valeur de comptage dans l'accumulateur 1
doit tre un nombre DCB compris entre 0 et 999.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
U
L
S
E 2.3
C#3
Z1
Explication
//Interroger l'tat de signal l'entre E 2.3.
//Charger la valeur de comptage 3 dans l'accumulateur 1-L.
//Initialiser le compteur Z1 la valeur de comptage si le RLG passe de 0
1.
4-7
Oprations de comptage
4.7
ZV
Incrmenter
Format
ZV <compteur>
Paramtre
Type de
donnes
Zone de
mmoire
Description
<compteur>
COUNTER
Description de l'opration
ZV <compteur> incrmente d'1 la valeur de comptage du compteur en accs si le rsultat
logique RLG passe de 0 1 et si la valeur de comptage est infrieure 999. Si la valeur de
comptage atteint sa limite suprieure de 999, l'incrmentation s'arrte. Une modification
suivante du RLG n'a aucun effet. Le bit de dbordement (DEB) n'est pas mis 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
U
ZV
4-8
E 2.1
Z3
Explication
//Interroger l'tat de signal l'entre E 2.1.
//Incrmenter d'1 le compteur Z3 si le RLG passe de 0 1.
Oprations de comptage
4.8
ZR
Dcrmenter
Format
ZR <compteur>
Paramtre
Type de
donnes
Zone de
mmoire
Description
<compteur>
COUNTER
Description de l'opration
ZR <compteur> dcrmente d'1 la valeur de comptage du compteur en accs si le rsultat
logique RLG passe de 0 1 et si la valeur de comptage est suprieure 0. Si le compteur
atteint sa limite infrieure de 0, la dcrmentation s'arrte. Une modification suivante du RLG
n'a aucun effet, car le compteur n'opre pas avec des valeurs ngatives.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
U
S
U
ZR
C#14
E 0.1
Z1
E 0.0
Z1
UN
=
Z1
A 0.0
Explication
//Valeur prdfinie du compteur
//Compteur initialis aprs dtection du front montant l'entre E 0.1.
//Charger la valeur prdfinie dans le compteur Z1 si celui-ci est valid.
//Enlever 1 chaque front montant l'entre E 0.0.
//Dcrmenter d'1 le compteur Z1 si le RLG passe de 0 1 en fonction de l'entre
E 0.0.
//Dtection de 0 avec le bit Z1
//Si la valeur du compteur Z1 gale 0, la sortie A 0.0 donne 1.
4-9
Oprations de comptage
4-10
5.1
Description
Lopration AUF (ouvrir bloc de donnes) permet douvrir un bloc de donnes global ou un
bloc de donnes dinstance. Un bloc de donnes global et un bloc de donnes dinstance
peuvent tre ouverts simultanment dans le programme.
Vous disposez des oprations sur bloc de donnes suivantes :
AUF
TDB
L DBLG
L DBNO
L DILG
L DINO
5-1
5.2
Format
AUF <bloc de donnes>
Oprande
Adresse source
DB, DI
1 65535
Description de l'opration
AUF <bloc de donnes>
Cette opration ouvre un bloc de donnes comme bloc de donnes global ou comme bloc de
donnes d'instance. C'est chaque fois un bloc de donnes global et un bloc de donnes
d'instance qui peuvent tre ouverts simultanment.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
AUF
L
DB10
DBW35
T
AUF
L
MW22
DI20
DIB12
DBB37
5-2
Explication
//Ouvrir le bloc de donnes DB10 comme bloc de donnes global.
//Charger dans l'accumulateur 1-L le mot de donnes DBW35 du bloc de donnes
ouvert
//Transfrer le contenu de l'accumulateur 1-L dans le mot de mmentos MW22.
//Ouvrir le bloc de donnes DB20 comme bloc de donnes d'instance.
//Charger dans l'accumulateur 1-L-L. l'octet de donnes DIB12 du bloc de donnes
d'instance ouvert
//Transfrer le contenu de l'accumulateur 1-L-L dans l'octet de donnes DBB37
du bloc de donnes global ouvert.
5.3
TDB
Format
TDB
Description de l'opration
TDB permute les registres de bloc de donnes. Un bloc de donnes global devient ainsi bloc
de donnes d'instance et vice versa.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
5-3
5.4
Format
L DBLG
Description de l'opration
L DBLG (Charger longueur de DB global)
Cette opration charge la longueur du bloc de donnes global dans l'accumulateur 1 une fois
que l'ancien contenu de l'accumulateur 1 a t sauvegard dans l'accumulateur 2.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
AUF
L
L
DB10
DBLG
MD10
<D
SPB
ERRO
5-4
Explication
//Ouvrir le bloc de donnes DB10 comme bloc de donnes global.
//Charger la longueur du bloc de donnes global (longueur de DB10).
//Valeur de comparaison pour dterminer si le bloc de donnes est suffisamment
long.
//Saut au repre de saut ERRO si la longueur est infrieure la valeur figurant
dans le mot de mmento MD10.
5.5
Format
L DBNO
Description de l'opration
L DBNO (Charger le numro de DB global)
Cette opration charge dans l'accumulateur 1 le numro du bloc de donnes global ouvert une
fois que l'ancien contenu de l'accumulateur 1 a t sauvegard dans l'accumulateur 2.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
5-5
5.6
Format
L DILG
Description de l'opration
L DILG (Charger longueur de DB d'instance)
Cette opration charge dans l'accumulateur 1 la longueur du bloc de donnes d'instance une
fois que l'ancien contenu de l'accumulateur 1 a t sauvegard dans l'accumulateur 2.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
AUF
L
L
DI20
DILG
MW10
<I
SPB
ERRO
5-6
Explication
//Ouvrir le bloc de donnes DB20 comme bloc de donnes d'instance.
//Charger la longueur du bloc de donnes d'instance (longueur de DB20).
//Valeur de comparaison pour dterminer si le bloc de donnes est suffisamment
long.
//Saut au repre de saut ERRO si la longueur est infrieure la valeur figurant
dans le mot de mmento MW10.
5.7
Format
L DINO
Description de l'opration
L DINO (Charger numro de DB d'instance)
Cette opration charge dans l'accumulateur 1 le numro du bloc de donnes d'instance ouvert
une fois que l'ancien contenu de l'accumulateur 1 a t sauvegard dans l'accumulateur 2.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
5-7
5-8
Oprations de saut
6.1
Description
Les oprations de saut et de boucle suivantes permettent de grer le droulement de votre
programme. Elles interrompent le droulement linaire de votre programme afin de reprendre
son excution un endroit diffrent. Loprande dune opration de saut ou de boucle est un
repre de saut.
Nota
Dans les programmes pour les CPU S7300, veiller ce que la destination du saut soit
toujours le dbut dune squence dinstructions combinatoires (pas obligatoire pour 318-2).
La destination du saut ne doit pas se trouver lintrieur de la squence dinstructions
combinatoires.
SPA
Saut inconditionnel
SPL
Les oprations de saut suivantes interrompent la squence normale dans votre programme
selon le rsultat logique RLG gnr par linstruction prcdente :
SPB
SPBN
SPBB
SPBNB
Les oprations de saut suivantes interrompent la squence normale dans votre programme
selon ltat de signal dun bit du mot dtat :
SPBI
Saut si RB est 1
SPBIN
Saut si RB est 0
SPO
SPS
Saut si DM est 1
6-1
Oprations de saut
Les oprations de saut suivantes interrompent la squence normale dans votre programme
selon le rsultat dun calcul :
6-2
SPZ
Saut si gal 0
SPN
Saut si diffrent de 0
SPP
Saut si plus
SPM
Saut si moins
SPPZ
SPMZ
SPU
Saut si illicite
Oprations de saut
6.2
SPA
Saut inconditionnel
Format
SPA <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
SPA <repre de saut>
Cette opration interrompt la squence logique normale de votre programme et provoque
quel que soit le contenu du mot d'tat le saut la destination o le traitement du programme
doit continuer. La destination de saut est prcise par un repre. Le saut peut s'excuter aussi
bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc (l'instruction de saut
et le repre de saut doivent se trouver l'intrieur du mme bloc). La destination de saut
l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de -32768 ou +32767
mots du code de programme. Le nombre maximal rel d'instructions pouvant tre sautes
dpend de la combinaison des instructions l'intrieur du programme (instructions un, deux
ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
EFFA:
AVAN:
Explication
U
U
SPB
L
INC
T
SPA
L
T
U
E 1.0
E 1.2
EFFA
MB10
1
MB10
AVAN
0
MB10
E 2.1
6-3
Oprations de saut
6.3
SPL
Format
SPL <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
SPL <repre de saut>
L'opration "Saut vers liste" permet de programmer une srie de sauts. La liste de destinations
qui contient 255 entres au maximum suit directement l'opration SPL et se termine avant le
repre de saut prcis comme oprande de SPL. Chaque destination de saut correspond
une opration SPA. Le nombre des destinations de saut (0 255) figure dans l'accumulateur
1-L-L.
Tant que le contenu de l'ACCU est infrieur au nombre de destinations de saut entre
l'instruction SPL et le repre de saut, l'opration SPL saute vers l'une des oprations SPA. Si
l'accumulateur 1-L-L gale 0, le saut a lieu vers la premire opration SPA ; si l'accumulateur
1-L-L gale 1, le saut s'excute vers la deuxime opration SPA, etc. Si le nombre des
destinations de saut est trop grand, l'opration SPL saute la premire instruction suivant la
dernire opration SPA dans la liste de destinations.
La liste de destinations de saut doit tre compose d'oprations SPA se situant avant le
repre de saut prcis en oprande de l'instruction SPL. D'autres oprations dans la liste ne
sont pas autorises.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
LSTX:
SEG0:
SEG1:
SEG3:
COMM:
6-4
L
SPL
SPA
SPA
SPA
SPA
SPA
*
*
SPA
*
*
SPA
*
*
SPA
*
*
MB0
LSTX
SEG0
SEG1
COMM
SEG3
COMM
Explication
//Charger le numro de la destination de saut
//Destination de saut si l'accumulateur 1-L-L
//Destination de saut si l'accumulateur 1-L-L
//Destination de saut si l'accumulateur 1-L-L
//Destination de saut si l'accumulateur 1-L-L
//Destination de saut si l'accumulateur 1-L-L
//Instruction autorise.
COMM
//Instruction autorise.
COMM
//Instruction autorise.
COMM
Oprations de saut
6.4
SPB
Format
SPB <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat RLG gale 1, l'opration SPB <repre de saut> interrompt la squence logique
normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Si RLG gale 0, le saut ne s'excute pas. Le RLG est mis 1 et la squence normale de votre
programme se poursuit par l'instruction suivante.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
SAUT:
Explication
U
U
SPB
L
T
U
E 1.0
E 1.2
SAUT
EW8
MW22
E 2.1
6-5
Oprations de saut
6.5
SPBN
Format
SPBN <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le RLG gale 1, l'opration SPBN <repre de saut> interrompt la squence logique
normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Si le RLG gale 1, le saut ne s'excute pas. La squence normale de votre programme se
poursuit par l'instruction suivante.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
SAUT:
6-6
Explication
U
U
SPBN
L
T
U
E 1.0
E 1.2
SAUT
EW8
MW22
E 2.1
Oprations de saut
6.6
SPBB
Format
SPBB <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le RLG gale 1, l'opration SPBB <repre de saut> interrompt la squence logique
normale de votre programme et provoque un saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Si le RLG gale 0, le saut ne s'excute pas. Le RLG est mis 1 et la squence normale de
votre programme se poursuit par l'instruction suivante.
Avec l'opration SPBB <repre de saut>, le rsultat logique est copi dans le bit RB, et ce
indpendamment de la valeur du RLG.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
SAUT:
Explication
U
U
SPBB
E 1.0
E 1.2
SAUT
L
T
U
EW8
MW22
E 2.1
//Saut au repre SAUT si RLG gale 1. Copier le contenu du bit RLG dans le
bit RB.
//La squence de programme se poursuit ici si le saut ne s'excute pas.
//La squence de programme se poursuit ici aprs le saut au repre SAUT.
6-7
Oprations de saut
6.7
SPBNB
Format
SPBNB <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le RLG gale 0, l'opration SPBNB <repre de saut> interrompt la squence logique
normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Si le RLG gale 1, le saut ne s'excute pas. La squence normale de votre programme se
poursuit par l'instruction suivante.
Avec l'opration SPBNB <repre de saut>, le rsultat logique est copi dans le bit RB, et ce
indpendamment de la valeur du RLG.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
SAUT:
6-8
Explication
U
U
SPBNB
E 1.0
E 1.2
SAUT
L
T
U
EW
MW22
E 2.1
//Saut au repre SAUT si le RLG gale 0. Copier le contenu du bit RLG dans
le bit RB.
//La squence de programme se poursuit ici si le saut ne s'excute pas.
//La squence de programme se poursuit ici aprs le saut au repre SAUT.
Oprations de saut
6.8
SPBI
Saut si RB est 1
Format
SPBI <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat RB gale 1, l'opration SPBI <repre de saut> interrompt la squence logique
normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
6-9
Oprations de saut
6.9
SPBIN
Saut si RB est 0
Format
SPBIN <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat RB gale 0, l'opration SPBIN <repre de saut> interrompt la squence logique
normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
6-10
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Oprations de saut
6.10
SPO
Format
SPO <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat DEB gale 1, l'opration SPO <repre de saut> interrompt la squence logique
normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots). Pour une opration arithmtique combine, il faut
veiller, aprs chaque opration arithmtique individuelle, ce qu'aucun dbordement ne se
produise afin de garantir que chaque rsultat intermdiaire soit l'intrieur de la plage
autorise. Sinon, utilisez l'opration SPS.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
DEBO:
SUIV:
Explication
L
L
*I
SPO
T
U
R
SPA
UN
S
NOP 0
MW10
3
DEBO
MW10
M 4.0
M 4.0
SUIV
M 4.0
M 4.0
6-11
Oprations de saut
6.11
SPS
Saut si DM est 1
Format
SPS <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat DM gale 1, l'opration SPS <repre de saut> interrompt la squence logique
normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
Explication
L
L
*I
L
+I
L
-I
SPS
DEBO:
SUIV:
T
U
R
SPA
UN
S
NOP 0
EW10
MW12
DBW25
MW14
DEBO
MW16
M 4.0
M 4.0
SUIV
M 4.0
M 4.0
Nota
Dans pareil cas, n'utilisez jamais l'opration SPO qui ne testerait de dbordement que pour
l'opration -I prcdente.
6-12
Oprations de saut
6.12
SPZ
Saut si gal 0
Format
SPZ <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat BI1 gale 0 et le bit d'tat BI0 gale 0, l'opration SPZ <repre de saut>
interrompt la squence logique normale de votre programme et provoque le saut la
destination o le traitement du programme doit continuer. La destination de saut est prcise
par un repre. Le saut peut s'excuter aussi bien vers l'avant que vers l'arrire, mais
absolument l'intrieur d'un bloc (l'instruction de saut et le repre de saut doivent se trouver
l'intrieur du mme bloc). La destination de saut l'intrieur de ce bloc doit tre unique. La
porte de saut maximale est de -32768 ou +32767 mots du code de programme. Le nombre
maximal rel d'instructions pouvant tre sautes dpend de la combinaison des instructions
l'intrieur du programme (instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
ZERO:
SUIV:
Explication
L
SRW
SPZ
L
INC
T
SPA
L
INC
T
NOP 0
MW10
1
ZERO
MW2
1
MW2
SUIV
MW4
1
MW4
6-13
Oprations de saut
6.13
SPN
Saut si diffrent de 0
Format
SPN <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le rsultat indiqu par les bits BI1 et BI0 est infrieur ou gal zro (BI1 = 0/BI0 = 1 ou BI1
= 1/BI0 = 0), l'opration SPN <repre de saut> (Saut si diffrent de 0) interrompt la squence
logique normale de votre programme et provoque un saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
DIZE:
SUIV:
6-14
Explication
L
L
XOW
SPN
UN
S
SPA
UN
S
NOP 0
EW8
MW12
DIZE
M 4.0
M 4.0
SUIV
M 4.1
M 4.1
Oprations de saut
6.14
SPP
Saut si plus
Format
SPP <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat BI1 gale 1 et si le bit d'tat BI0 gale 0, l'opration SPP <repre de saut>
interrompt la squence logique normale de votre programme et provoque le saut la
destination o le traitement du programme doit continuer. La destination de saut est prcise
par un repre. Le saut peut s'excuter aussi bien vers l'avant que vers l'arrire, mais
absolument l'intrieur d'un bloc (l'instruction de saut et le repre de saut doivent se trouver
l'intrieur du mme bloc). La destination de saut l'intrieur de ce bloc doit tre unique. La
porte de saut maximale est de -32768 ou +32767 mots du code de programme. Le nombre
maximal rel d'instructions pouvant tre sautes dpend de la combinaison des instructions
l'intrieur du programme (instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
Explication
L
L
-I
SPP
POS:
SUIV:
UN
S
SPA
UN
S
NOP 0
EW8
MW12
POS
M 4.0
M 4.0
SUIV
M 4.1
M 4.1
6-15
Oprations de saut
6.15
SPM
Saut si moins
Format
SPM <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat BI1 gale 0 et si le bit BI0 gale 1, l'opration SPM <repre de saut> interrompt
la squence logique normale de votre programme et provoque un saut la destination o le
traitement du programme doit continuer. La destination de saut est prcise par un repre. Le
saut peut s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur
d'un bloc (l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme
bloc). La destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut
maximale est de -32768 ou +32767 mots du code de programme. Le nombre maximal rel
d'instructions pouvant tre sautes dpend de la combinaison des instructions l'intrieur du
programme (instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
Explication
L
L
-I
SPM
NEG:
SUIV:
6-16
UN
S
SPA
UN
S
NOP 0
EW8
MW12
NEG
M 4.0
M 4.0
SUIV
M 4.1
M 4.1
Oprations de saut
6.16
SPPZ
Format
SPPZ <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le rsultat indiqu par les bits d'tat BI1 et BI0 est suprieur ou gal 0 (BI1 = 0/BI0 = 0 ou
BI1 = 1/BI0 = 0), l'opration SPPZ <repre de saut> (Saut si >= 0) interrompt la squence
logique normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
Explication
L
L
-I
SPPZ
REG0:
SUIV:
UN
S
SPA
UN
S
NOP 0
EW8
MW12
REG0
M 4.0
M 4.0
SUIV
M 4.1
M 4.1
6-17
Oprations de saut
6.17
SPMZ
Format
SPMZ <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le rsultat indiqu par les bits BI1 et BI0 est infrieur ou gal zro (BI1 = 0/BI0 = 0 ou BI1
= 0/BI0 = 1), l'opration SPMZ <repre de saut> (Saut si <= 0) interrompt la squence logique
normale de votre programme et provoque le saut la destination o le traitement du
programme doit continuer. La destination de saut est prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'instruction de saut et le repre de saut doivent se trouver l'intrieur du mme bloc). La
destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut maximale est de
-32768 ou +32767 mots du code de programme. Le nombre maximal rel d'instructions
pouvant tre sautes dpend de la combinaison des instructions l'intrieur du programme
(instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
RGE0:
SUIV:
6-18
Explication
L
L
-I
SPMZ
UN
S
SPA
UN
S
NOP 0
EW8
MW12
RGE0
M 4.0
M 4.0
SUIV
M 4.1
M 4.1
Oprations de saut
6.18
SPU
Saut si illicite
Format
SPU <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
Si le bit d'tat BI1 gale 1 et le bit d'tat BI0 gale 1, l'opration SPU <repre de saut>
interrompt la squence logique normale de votre programme et provoque le saut la
destination o le traitement du programme doit continuer. La destination de saut est prcise
par un repre. Le saut peut s'excuter aussi bien vers l'avant que vers l'arrire, mais
absolument l'intrieur d'un bloc (l'instruction de saut et le repre de saut doivent se trouver
l'intrieur du mme bloc). La destination de saut l'intrieur de ce bloc doit tre unique. La
porte de saut maximale est de -32768 ou +32767 mots du code de programme. Le nombre
maximal rel d'instructions pouvant tre sautes dpend de la combinaison des instructions
l'intrieur du programme (instructions un, deux ou trois mots).
Les bits d'tat BI1 et BI0 sont tous deux 1 en cas :
de division par 0,
d'utilisation d'oprations illicites ou
de rsultat illicite d'une comparaison de nombres virgule flottante (utilisation d'un format
illicite).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
ERRE:
SUIV:
Explication
L
L
/D
SPU
T
U
R
SPA
UN
S
NOP 0
MD10
ED2
ERRE
MD14
M 4.0
M 4.0
SUIV
M 4.0
M 4.0
6-19
Oprations de saut
6.19
LOOP
Boucle de programme
Format
LOOP <repre de saut>
Oprande
Description
<repre de saut>
Description de l'opration
LOOP <repre de saut> (Dcrmenter l'accumulateur 1-L et sauter si accumulateur 1-L
diffrent de 0)
Cette opration simplifie la programmation de boucles. Le compteur de boucles est un nombre
entier non sign de 16 bits qui se trouve dans l'accumulateur 1-L. L'instruction saute au repre
de saut indiqu tant que le contenu de l'accumulateur 1-L est diffrent de 0. Le traitement du
programme se poursuit la destination de saut prcise par un repre. Le saut peut
s'excuter aussi bien vers l'avant que vers l'arrire, mais absolument l'intrieur d'un bloc
(l'opration "Boucle de programme" et le repre de saut doivent se trouver l'intrieur du
mme bloc). La destination de saut l'intrieur de ce bloc doit tre unique. La porte de saut
maximale est de -32768 ou +32767 mots du code de programme. Le nombre maximal rel
d'instructions pouvant tre sautes dpend de la combinaison des instructions l'intrieur du
programme (instructions un, deux ou trois mots).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
SUIV:
6-20
L
T
L
T
L#1
MD20
5
MW10
L
*
T
L
LOOP
MD20
D
MD20
MW10
SUIV
L
L
>I
MW24
200
Explication
//Charger la constante entire de 32 bits dans l'accumulateur 1.
//Transfrer le contenu de l'accumulateur 1 dans MD20 (initialisation).
//Charger le nombre de boucles dans l'accumulateur 1-L.
//Repre de saut = dbut de la boucle/Transfrer l'accumulateur 1-L dans le
compteur de boucles.
//Multiplier le contenu en cours de MD20 par le contenu en cours de MB10.
//Transfrer le rsultat de la multiplication dans MD20.
//Charger le contenu du compteur de boucles dans l'accumulateur 1.
//Dcrmenter le contenu de l'accumulateur 1 et sauter au repre SUIV si
l'accumulateur 1-L est suprieur 0.
//La squence de programme se poursuit ici aprs la fin de la boucle.
7.1
Description
Les oprations arithmtiques combinent le contenu des accumulateurs 1 et 2. Le rsultat est
rang dans laccumulateur 1. Le contenu de laccumulateur 2 reste inchang.
Pour les CPU quatre accumulateurs, le contenu de laccumulateur 3 est ensuite copi dans
laccumulateur 2 et le contenu de laccumulateur 4 est copi dans laccumulateur 3. Le
contenu de laccumulateur 4 reste inchang.
Les oprations arithmtiques sur nombres entiers permettent dexcuter les fonctions
arithmtiques suivantes sur deux nombres entiers (16 et 32 bits) :
+I
-I
/I
*I
+D
-D
*D
/D
MOD
7-1
7.2
Description
Les oprations arithmtiques sur nombres entiers affectent les bits suivants du mot d'tat :
BI1 et BI0,
DEB,
DM.
Les tableaux ci-dessous montrent l'tat de signal des bits du mot d'tat pour les rsultats
d'oprations sur nombres entiers (16 et 32 bits) :
Plage autorise
BI1
BI0
DEB
DM
0 (zro)
7-2
BI1
BI0
DEB
DM
Opration
BI1
BI0
DEB
DM
7.3
+I
Format
+I
Description de l'opration
+I (Additionner entiers de 16 bits)
Cette opration additionne le contenu de l'accumulateur 1-L celui de l'accumulateur 2-L et
sauvegarde le rsultat dans l'accumulateur 1-L. Les contenus de l'accumulateur 1-L et de
l'accumulateur 2-L sont valus comme nombres entiers de 16 bits. L'opration s'excute
sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et DEB sont mis 1
comme rsultat de l'opration. En cas de dbordement haut ou bas, le rsultat de l'opration
n'est pas un entier de 32 bits, mais un entier de 16 bits.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
-32768
<=
somme <
0
0
32767
>=
somme >
somme
-65536
65534
>=
somme >
-65535
<=
somme <
32767
-32768
Exemple
LIST
L
L
EW10
MW14
+I
T
DB1.DBW25
Explication
//Charger dans l'accumulateur 1-L la valeur figurant dans le mot d'entre EW10.
//Charger le contenu de l'accumulateur 1-L dans l'accumulateur 2-L. Charger
la valeur figurant dans le mot de mmento MW14 dans l'accumulateur 1-L.
//Additionner l'accumulateur 2-L et l'accumulateur 1-L et sauvegarder le
rsultat dans l'accumulateur 1-L.
//Le contenu de l'accumulateur 1-L (rsultat) est transfr au mot de donnes
DBW25 dans DB1.
7-3
7.4
Format
-I
Description de l'opration
-I (Soustraire entiers de 16 bits) soustrait le contenu de l'accumulateur 1-L de celui de
l'accumulateur 2-L et sauvegarde le rsultat dans l'accumulateur 1-L. Les contenus de
l'accumulateur 1-L et de l'accumulateur 2-L sont valus comme nombres entiers de 16 bits.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration. En cas de dbordement haut ou bas, le
rsultat de l'opration n'est pas un entier de 32 bits, mais un entier de 16 bits.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
-32768
<=
diffrence
<
32767
>=
diffrence
>
65535
>=
diffrence
>
32767
-65535
<=
diffrence
<
-32768
Exemple
LIST
L
L
EW10
MW14
-I
T
7-4
DB1.DBW25
Explication
//Charger dans l'accumulateur 1-L la valeur figurant dans le mot d'entre EW10.
//Charger le contenu de l'accumulateur 1-L dans l'accumulateur 2-L. Charger
la valeur figurant dans le mot de mmento MW14 dans l'accumulateur 1-L.
//Soustraire l'accumulateur 1-L de l'accumulateur 2-L et sauvegarder le
rsultat dans l'accumulateur 1-L.
//Le contenu de l'accumulateur 1-L (rsultat) est transfr au mot de donnes
DBW25 dans DB1.
7.5
Format
*I
Description de l'opration
*I (Multiplier entiers de 16 bits) multiplie le contenu de l'accumulateur 2-L par celui de
l'accumulateur 1- L. Les contenus de l'accumulateur 1-L et de l'accumulateur 2-L sont valus
comme nombres entiers de 16 bits. Le rsultat est rang dans l'accumulateur 1 comme entier
de 32 bits. Si les bits d'tat DEB et DM sont tous deux gaux 1, le rsultat est hors de la
plage d'un nombre entier de 16 bits.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
-32768
<=
produit <
32767
>=
produit >
1.073.741.824
>=
produit >
32767
-1.073.709.056
<=
produit <
-32768
Exemple
LIST
L
L
EW10
MW14
*I
T
DB1.DBD25
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le mot d'entre EW10.
//Charger le contenu de l'accumulateur 1-L dans l'accumulateur 2-L. Charger
la valeur figurant dans le mot de mmento MW14 dans l'accumulateur 1-L.
//Multiplier l'accumulateur 2-L par l'accumulateur 1-L et sauvegarder le
rsultat dans l'accumulateur 1.
//Le contenu de l'accumulateur 1 (rsultat) est transfr au double mot de
donnes DBD25 dans DB1.
7-5
7.6
Format
/I
Description de l'opration
/I (Diviser entiers de 16 bits) divise le contenu de l'accumulateur 2-L par celui de
l'accumulateur 1-L. Les contenus de l'accumulateur 1-L et de l'accumulateur 2-L sont valus
comme nombres entiers de 16 bits. Le rsultat est rang dans l'accumulateur 1 : il comprend
deux entiers de 16 bits, le quotient et le reste de la division. Le quotient est sauvegard dans
l'accumulateur 1-L et le reste de la division dans l'accumulateur 1-H. L'opration s'excute
sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et DEB sont mis 1
comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Mot d'tat
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
quotient = 0
Ecriture :
-32768
<=
quotient <
32767
>=
quotient >
quotient
32768
Exemple
LIST
L
L
EW10
MW14
/I
T
7-6
MD20
Explication
//Charger dans l'accumulateur 1-L la valeur figurant dans le mot d'entre EW10.
//Charger le contenu de l'accumulateur 1-L dans l'accumulateur 2-L. Charger
la valeur figurant dans le mot de mmento MW14 dans l'accumulateur 1-L.
//Diviser l'accumulateur 2-L par l'accumulateur 1-L et sauvegarder le rsultat
dans l'accumulateur 1 : ACCU 1-L : quotient, ACCU 1-H : reste de la division
//Le contenu de l'accumulateur 1 (rsultat) est transfr dans le double mot
de mmento MD20.
"13"
"4"
"3"
"1"
7-7
7.7
Format
+ <constante entire>
Oprande
Type de donnes
Description
constante,
(16 ou 32 bits)
Constante additionner
Description de l'opration
+ <constante entire> additionne la constante entire au contenu de l'accumulateur 1 et
sauvegarde le rsultat dans l'accumulateur 1. L'opration s'excute sans tenir compte des bits
d'tat ni influer sur eux.
+ <constante entire de 16 bits> additionne une constante entire de 16 bits (dans la plage
de -32768 +32767) au contenu de l'accumulateur 1-L et sauvegarde le rsultat dans
l'accumulateur 1-L.
+ <constante entire de 32 bits> additionne une constante entire de 32 bits (dans la plage
de -2 147 483 648 2 147 483 647) au contenu de l'accumulateur 1 et sauvegarde le
rsultat dans l'accumulateur 1
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple 1
LIST
L
L
EW10
MW14
+I
+
25
DB1.DBW25
7-8
Explication
//Charger la valeur figurant dans le mot d'entre EW10 dans l'accumulateur 1-L.
//Charger le contenu de l'accumulateur 1-L dans l'accumulateur 2-L. Charger
la valeur figurant dans le mot de mmento MW14 dans l'accumulateur 1-L.
//Additionner l'accumulateur 2-L l'accumulateur 1-L et sauvegarder le
rsultat dans l'accumulateur 1-L.
//Additionner l'accumulateur 1-L 25 et sauvegarder le rsultat dans
l'accumulateur 1-L.
//Transfrer le contenu de l'accumulateur 1-L (rsultat) au mot de donnes DBW25
dans DB1.
Exemple 2
LIST
L
L
+
EW12
EW14
100
Explication
>I
SPB
SUIV
Exemple 3
LIST
L
L
+D
MD20
MD24
Explication
L#-200
MD28
7-9
7.8
+D
Format
+D
Description de l'opration
+D (Additionner entiers de 32 bits)
Cette opration additionne le contenu de l'accumulateur 1 celui de l'accumulateur 2 et
sauvegarde le rsultat dans l'accumulateur 1. Les contenus de l'accumulateur 1 et de
l'accumulateur 2 sont valus comme nombres entiers de 32 bits. L'opration s'excute sans
tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et DEB sont mis 1 comme
rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
-2.147.483.648
<=
somme <
0
0
2.147.483.647
>=
somme >
somme
-4.294.967.296
4.294.967.294
>=
somme >
-4.294.967.295
<=
somme <
2.147.483.647
-2.147.483.648
Exemple
LIST
L
ED10
MD14
+D
T
7-10
DB1.DBD25
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot d'entre
ED10.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur figurant dans le double mot de mmento MD14 dans l'accumulateur 1.
//Additionner l'accumulateur 2 l'accumulateur 1 et sauvegarder le rsultat
dans l'accumulateur 1.
//Le contenu de l'accumulateur 1 (rsultat) est transfr au double mot de
donnes DBD25 dans DB1.
7.9
Format
-D
Description de l'opration
-D (Soustraire entiers de 32 bits) soustrait le contenu de l'accumulateur 1 de celui de
l'accumulateur 2 et sauvegarde le rsultat dans l'accumulateur 1. Les contenus de
l'accumulateur 1 et de l'accumulateur 2 sont valus comme nombres entiers de 32 bits.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
-2.147.483.648
<=
diffrence
<
2.147.483.647
>=
diffrence
>
4.294.967.295
>=
diffrence
> 2.147.483.647 0
-4.294.967.295
-2.147.483.648
<=
diffrence
<
Exemple
LIST
L
ED10
MD14
-D
T
DB1.DBD25
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot d'entre
ED10.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger le
contenu du double mot de donnes MD14 dans l'accumulateur 1.
//Soustraire l'accumulateur 1 de l'accumulateur 2 et sauvegarder le rsultat
dans l'accumulateur 1.
//Le contenu de l'accumulateur 1 (rsultat) est transfr au double mot de
donnes DBD25 dans DB1.
7-11
7.10
Format
*D
Description de l'opration
*D (Multiplier entiers de 32 bits)
Cette opration multiplie le contenu de l'accumulateur 1 par celui de l'accumulateur 2. Les
contenus de l'accumulateur 1 et de l'accumulateur 2 sont valus comme nombres entiers de
32 bits. Le rsultat est rang dans l'accumulateur 1 comme entier de 32 bits. Si les bits d'tat
DEB et DM sont tous deux gaux 1, le rsultat est hors de la plage d'un nombre entier de 32
bits.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres entiers.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
produit <
0
0
produit
>
produit
>
2.147.483.647
produit
<
-2.147.483.648
Exemple
LIST
L
ED10
MD14
*D
T
7-12
DB1.DBD25
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot d'entre
ED10.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur figurant dans le double mot de mmento MD14 dans l'accumulateur 1.
//Multiplier l'accumulateur 2 par l'accumulateur 1 et sauvegarder le rsultat
dans l'accumulateur 1.
//Le contenu de l'accumulateur 1 (rsultat) est transfr au double mot de
donnes DBD25 dans DB1.
7.11
Format
/D
Description de l'opration
/D (Diviser entiers de 32 bits) divise le contenu de l'accumulateur 2 par celui de l'accumulateur
1. Les contenus de l'accumulateur 1 et de l'accumulateur 2 sont valus comme nombres
entiers de 32 bits. Le rsultat est rang dans l'accumulateur 1. Le rsultat contient uniquement
le quotient et non pas le reste de la division que vous obtenez l'aide de l'opration MOD.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
<=
quotient <
0
0
2147483647
>=
quotient >
quotient
2147483648
Exemple
LIST
L
ED10
MD14
/D
T
MD20
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot d'entre
ED10.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger le
contenu du double mot de mmento MD14 dans l'accumulateur 1.
//Diviser l'accumulateur 2 par l'accumulateur 1 et sauvegarder le rsultat
(quotient) dans l'accumulateur 1.
//Le contenu de l'accumulateur 1 (rsultat) est transfr au double mot de
mmento MD20.
7-13
7-14
"13"
"4"
"13/4"
"3"
7.12
MOD
Format
MOD
Description de l'opration
MOD (Reste de division entire de 32 bits) divise le contenu de l'accumulateur 2 par celui de
l'accumulateur 1. Les contenus de l'accumulateur 1 et de l'accumulateur 2 sont valus
comme nombres entiers de 32 bits. Le rsultat est sauvegard dans l'accumulateur 1. Il
contient uniquement le reste de la division et non pas le quotient que vous obtenez l'aide de
l'opration /D.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
BI1
BI0
DEB
DM
-2147483648
<=
reste
<
2147483647
>=
reste
>
7-15
Exemple
LIST
L
ED10
MD14
MOD
T
MD20
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot d'entre
ED10.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger le
contenu du double mot de mmento MD14 dans l'accumulateur 1.
//Diviser l'accumulateur 2 par l'accumulateur 1 et sauvegarder le rsultat
(reste de la division) dans l'accumulateur 1.
//Le contenu de l'accumulateur 1 (rsultat) est transfr dans le double mot
de mmento MD20.
7-16
"13"
"4"
"13/4"
"1"
8.1
Description
Les oprations arithmtiques combinent le contenu des accumulateurs 1 et 2. Le rsultat est
rang dans laccumulateur 1, le contenu de laccumulateur 2 reste inchang.
Pour les CPU quatre accumulateurs, le contenu de laccumulateur 3 est ensuite copi dans
laccumulateur 2 et celui de laccumulateur 4 dans laccumulateur 3. Le contenu prcdent de
laccumulateur 4 reste inchang.
Les nombres virgule flottante IEEE de 32 bits ont le type de donnes REAL. Les oprations
arithmtiques sur nombres virgule flottante permettent dexcuter les fonctions
arithmtiques suivantes sur deux nombres virgule flottante IEEE de 32 bits :
+R
-R
*R
/R
Les oprations suivantes permettent dexcuter les fonctions arithmtiques suivantes sur un
nombre virgule flottante IEEE de 32 bits :
ABS
SQR
LN
SIN
COS
TAN
ASIN
8-1
8.2
Description
Les oprations arithmtiques sur nombres virgule flottante affectent les bits suivants du mot
d'tat :
BI1 et BI0,
DEB,
DM.
Les tableaux ci-dessous montrent l'tat de signal des bits du mot d'tat pour les rsultats
d'oprations sur nombres virgule flottante (32 bits) :
Plage autorise
BI1
BI0
DEB
DM
+0, -0 (zro)
8-2
BI1
BI0
DEB
DM
Dpassement bas
-1.175494E-38 < rsultat < - 1.401298E-45
(nombre ngatif)
Dpassement bas
+1.401298E-45 < rsultat < +1.175494E-38
(nombre positif)
Dbordement
rsultat < -3.402823E+38 (nombre ngatif)
Dbordement
rsultat > 3.402823E+38 (nombre positif)
8.3
Oprations de base
8.3.1
+R
Format
+R
Description de l'opration
+R (Additionner nombres virgule flottante VF IEEE, 32 bits)
Cette opration additionne les contenus des accumulateurs 1 et 2 et sauvegarde le rsultat
dans l'accumulateur 1. Les contenus de l'accumulateur 1 et de l'accumulateur 2 sont valus
comme nombres virgule flottante VF IEEE de 32 bits. L'opration s'excute sans tenir
compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et DEB sont mis 1 comme
rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Rsultat
Le rsultat dans ACCU 1 est BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
-zro
-dnormalis
-normalis
-infini
-qNaN
Indication
Dbordement
Dbordement bas
Dbordement bas
Dbordement
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
8-3
Exemple
LIST
AUF
L
L
Explication
DB10
ED10
MD14
+R
T
8-4
DBD25
8.3.2
Format
-R
Description de l'opration
-R (Soustraire nombres virgule flottante VF IEEE, 32 bits)
Cette opration soustrait le contenu de l'accumulateur 1 de celui de l'accumulateur 2 et
sauvegarde le rsultat dans l'accumulateur 1. Les contenus de l'accumulateur 1 et de
l'accumulateur 2 sont valus comme nombres virgule flottante VF IEEE de 32 bits.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
-zro
-dnormalis
-normalis
-infini
-qNaN
Indication
Dbordement
Dbordement bas
Dbordement bas
Dbordement
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
8-5
Exemple
LIST
AUF
L
L
Explication
DB10
ED10
MD14
-R
T
8-6
DBD25
8.3.3
Format
*R
Description de l'opration
*R (Multiplier nombres virgule flottante VF IEEE, 32 bits)
Cette opration multiplie le contenu de l'accumulateur 2 par le contenu de l'accumulateur 1
ces contenus sont valus comme nombre virgule flottante VF IEEE de 32 bits et range le
rsultat comme nombre virgule flottante VF IEEE de 32 bits dans l'accumulateur 1.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
-zro
-dnormalis
-normalis
-infini
-qNaN
Indication
Dbordement
Dbordement bas
Dbordement bas
Dbordement
8-7
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
AUF
L
L
Explication
DB10
ED10
MD14
*R
T
8-8
DBD25
8.3.4
Format
/R
Description de l'opration
/R (Diviser nombres virgule flottante VF IEEE, 32 bits)
Cette opration divise le contenu de l'accumulateur 2 par celui de l'accumulateur 1 et
sauvegarde le rsultat dans l'accumulateur 1. Les contenus de l'accumulateur 1 et de
l'accumulateur 2 sont valus comme nombres virgule flottante VF IEEE de 32 bits.
L'opration s'excute sans tenir compte du RLG ni influer sur lui. Les bits d'tat BI1, BI0, DM et
DEB sont mis 1 comme rsultat de l'opration.
Le contenu de l'accumulateur 2 reste inchang pour les CPU deux accumulateurs.
Pour les CPU quatre accumulateurs, le contenu de l'accumulateur 3 est copi dans
l'accumulateur 2 et celui de l'accumulateur 4 dans l'accumulateur 3. Le contenu de
l'accumulateur 4 reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres entiers.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
-zro
-dnormalis
-normalis
-infini
-qNaN
Indication
Dbordement
Dbordement bas
Dbordement bas
Dbordement
8-9
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
AUF
L
L
Explication
DB10
ED10
MD14
/R
T
8-10
DBD20
8.3.5
Format
ABS
Description de l'opration
ABS (Valeur absolue d'un nombre virgule flottante VF IEEE, 32 bits)
Cette opration forme la valeur absolue d'un nombre virgule flottante IEEE de 32 bits
figurant dans l'accumulateur 1. Le rsultat est sauvegard dans l'accumulateur 1. L'opration
s'excute sans tenir compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
ABS
T
ED8
MD10
Explication
//Charger la valeur dans l'accumulateur 1 (exemple : ED8 = -1.5E+02).
//Former la valeur absolue et sauvegarder le rsultat dans l'accumulateur 1.
//Transfrer le rsultat au double mot de mmento MD10 (exemple : rsultat
= 1.5E+02).
8-11
8.4
Oprations tendues
8.4.1
SQR
Format
SQR
Description de l'opration
L'opration SQR (Carr d'un nombre virgule flottante IEEE de 32 bits) calcule le carr d'un
nombre virgule flottante IEEE de 32 bits contenu dans l'accumulateur 1. Le rsultat est rang
dans l'accumulateur 1. Cette opration influe sur les bits BI1, BI0, DEB et DM du mot d'tat.
Le contenu de l'accumulateur 2 et des accumulateurs 3 et 4 pour les CPU quatre
accumulateurs reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres virgule
flottante.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
-qNaN
Indication
Dbordement
Dbordement bas
Exemple
LIST
OPN
L
DB17
DBD0
SQR
UN
SPB
OV
OK
DBD4
BEA
OK:
8-12
Explication
//Ouvrir le bloc de donnes DB17.
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de donnes
DBD0 (doit tre un nombre virgule flottante).
//Calculer le carr du nombre virgule flottante IEEE de 32 bits contenu dans
l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Tester 0 le bit DEB du mot d'tat.
//Sauter au repre OK si aucune erreur n'est apparue lors de l'opration SQR.
//Fin de bloc inconditionnelle si une erreur est apparue lors de l'opration
SQR.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de donnes DBD4.
8.4.2
SQRT
Format
SQRT
Description de l'opration
L'opration SQRT (Racine carre d'un nombre virgule flottante IEEE de 32 bits) calcule la
racine carre d'un nombre virgule flottante IEEE de 32 bits contenu dans l'accumulateur 1.
Le rsultat est rang dans l'accumulateur 1. La valeur d'entre doit tre positive ou nulle,
exception faite de -0 dont la racine carre est
-0. Cette opration influe sur les bits BI1, BI0, DEB et DM du mot d'tat.
Le contenu de l'accumulateur 2 et des accumulateurs 3 et 4 pour les CPU quatre
accumulateurs reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres virgule
flottante.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
-zro
-qNaN
Indication
Dbordement
Dbordement bas
Exemple
LIST
L
MD10
SQRT
UN
SPB
OV
OK
MD20
DBD4
BEA
OK:
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer la racine carre du nombre virgule flottante IEEE de 32 bits contenu
dans l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Tester 0 le bit DEB du mot d'tat.
//Sauter au repre OK si aucune erreur n'est apparue lors de l'opration SQRT.
//Fin de bloc inconditionnelle si une erreur est apparue lors de l'opration
SQRT.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de donnes DBD4.
8-13
8.4.3
EXP
Format
EXP
Description de l'opration
L'opration EXP (Valeur exponentielle d'un nombre virgule flottante IEEE de 32 bits) calcule
la valeur exponentielle (de base e) d'un nombre virgule flottante IEEE de 32 bits contenu
dans l'accumulateur 1. Le rsultat est rang dans l'accumulateur 1. Cette opration influe sur
les bits BI1, BI0, DEB et DM du mot d'tat.
Le contenu de l'accumulateur 2 et des accumulateurs 3 et 4 pour les CPU quatre
accumulateurs reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres virgule
flottante.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
-qNaN
Indication
Dbordement
Dbordement bas
Exemple
LIST
L
MD10
EXP
UN
SPB
OV
OK
MD20
BEA
OK:
8-14
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer la valeur exponentielle (de base e) du nombre virgule flottante
IEEE de 32 bits contenu dans l'accumulateur 1 et ranger le rsultat dans
l'accumulateur 1.
//Tester 0 le bit DEB du mot d'tat.
//Sauter au repre OK si aucune erreur n'est apparue lors de l'opration EXP.
//Fin de bloc inconditionnelle si une erreur est apparue lors de l'opration
EXP.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
8.4.4
LN
Format
LN
Description de l'opration
L'opration LN (Logarithme naturel d'un nombre virgule flottante IEEE de 32 bits) calcule le
logarithme naturel logarithme de base e d'un nombre virgule flottante IEEE de 32 bits
contenu dans l'accumulateur 1. Le rsultat est rang dans l'accumulateur 1. La valeur d'entre
doit tre strictement positive. Cette opration influe sur les bits BI1, BI0, DEB et DM du mot
d'tat.
Le contenu de l'accumulateur 2 et des accumulateurs 3 et 4 pour les CPU quatre
accumulateurs reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres virgule
flottante.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
- zro
-dnormalis
-normalis
- infini
-qNaN
Indication
Dbordement
Dbordement bas
Dbordement bas
Dbordement
Exemple
LIST
L
MD10
LN
UN
SPB
OV
OK
MD20
BEA
OK:
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer le logarithme naturel du nombre virgule flottante IEEE de 32 bits
contenu dans l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Tester 0 le bit DEB du mot d'tat.
//Sauter au repre OK si aucune erreur n'est apparue lors de l'opration LN.
//Fin de bloc inconditionnelle si une erreur est apparue lors de l'opration
LN.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
8-15
8.4.5
SIN
Format
SIN
Description de l'opration
L'opration SIN (Sinus d'angles comme nombres virgule flottante IEEE de 32 bits) calcule le
sinus d'un angle indiqu en radians. L'angle doit figurer sous forme de nombre virgule
flottante dans l'accumulateur 1. Le rsultat est rang dans l'accumulateur 1. Cette opration
influe sur les bits BI1, BI0, DEB et DM du mot d'tat.
Le contenu de l'accumulateur 2 et des accumulateurs 3 et 4 pour les CPU quatre
accumulateurs reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres virgule
flottante.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+normalis
+dnormalis
+zro
- zro
-dnormalis
-normalis
-qNaN
Indication
Dbordement
Dbordement bas
Exemple
LIST
L
MD10
SIN
T
8-16
MD20
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer le sinus du nombre virgule flottante IEEE de 32 bits contenu dans
l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
8.4.6
COS
Format
COS
Description de l'opration
L'opration COS (Cosinus d'angles comme nombres virgule flottante IEEE de 32 bits)
calcule le cosinus d'un angle indiqu en radians. L'angle doit figurer sous forme de nombre
virgule flottante dans l'accumulateur 1. Le rsultat est rang dans l'accumulateur 1. Cette
opration influe sur les bits BI1, BI0, DEB et DM du mot d'tat.
Le contenu de l'accumulateur 2 et des accumulateurs 3 et 4 pour les CPU quatre
accumulateurs reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres virgule
flottante.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+normalis
+dnormalis
+zro
- zro
-dnormalis
-normalis
-qNaN
Indication
Dbordement
Dbordement bas
Exemple
LIST
L
MD10
COS
T
MD20
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer le cosinus du nombre virgule flottante IEEE de 32 bits contenu
dans l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
8-17
8.4.7
Format
TAN
Description de l'opration
L'opration TAN (Tangente d'angles comme nombres virgule flottante IEEE de 32 bits)
calcule la tangente d'un angle indiqu en radians. L'angle doit figurer sous forme de nombre
virgule flottante dans l'accumulateur 1. Le rsultat est rang dans l'accumulateur 1. Cette
opration influe sur les bits BI1, BI0, DEB et DM du mot d'tat.
Le contenu de l'accumulateur 2 et des accumulateurs 3 et 4 pour les CPU quatre
accumulateurs reste inchang.
Voir aussi Evaluation des bits du mot d'tat dans les oprations sur nombres virgule
flottante.
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+infini
+normalis
+dnormalis
+zro
-zro
-dnormalis
-normalis
- infini
-qNaN
Indication
Dbordement
Dbordement bas
Dbordement bas
Dbordement
Exemple
LIST
L
MD10
TAN
UN
SPB
OV
OK
MD20
BEA
OK:
8-18
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer la tangente du nombre virgule flottante IEEE de 32 bits contenu
dans l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Tester 0 le bit DEB du mot d'tat.
//Sauter au repre OK si aucune erreur n'est apparue lors de l'opration TAN.
//Fin de bloc inconditionnelle si une erreur est apparue lors de l'opration
TAN.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
8.4.8
ASIN
Format
ASIN
Description de l'opration
L'opration ASIN (Arc sinus d'un nombre virgule flottante IEEE de 32 bits) calcule l'arc sinus
d'un nombre virgule flottante figurant dans l'accumulateur 1. La valeur d'entre doit tre
comprise entre :
-1 <= valeur d'entre <= +1
Le rsultat est un angle indiqu en radians. Sa valeur est comprise dans la plage suivante :
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+normalis
+dnormalis
+zro
-zro
-dnormalis
-normalis
-qNaN
Indication
Dbordement
Dbordement bas
Exemple
LIST
L
MD10
ASIN
UN
SPB
OV
OK
MD20
BEA
OK:
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer l'arc sinus du nombre virgule flottante IEEE de 32 bits contenu
dans l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Tester 0 le bit DEB du mot d'tat.
//Sauter au repre OK si aucune erreur n'est apparue lors de l'opration ASIN.
//Fin de bloc inconditionnelle si une erreur est apparue lors de l'opration
ASIN.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
8-19
8.4.9
ACOS
Format
ACOS
Description de l'opration
L'opration ACOS (Arc cosinus d'un nombre virgule flottante IEEE de 32 bits) calcule l'arc
cosinus d'un nombre virgule flottante figurant dans l'accumulateur 1. La valeur d'entre doit
tre comprise entre :
-1 <= valeur d'entre <= +1
Le rsultat est un angle indiqu en radians. Sa valeur est comprise dans la plage suivante :
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+normalis
+dnormalis
+zro
-zro
-dnormalis
-normalis
-qNaN
Indication
Dbordement
Dbordement bas
Exemple
LIST
L
MD10
ACOS
UN
SPB
OV
OK
MD20
BEA
OK:
8-20
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer l'arc cosinus du nombre virgule flottante IEEE de 32 bits contenu
dans l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Tester 0 le bit DEB du mot d'tat.
//Sauter au repre OK si aucune erreur n'est apparue lors de l'opration ACOS.
//Fin de bloc inconditionnelle si une erreur est apparue lors de l'opration
ACOS.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
8.4.10
ATAN
Format
ATAN
Description de l'opration
L'opration ATAN (Arc tangente d'un nombre virgule flottante IEEE de 32 bits) calcule l'arc
tangente d'un nombre virgule flottante figurant dans l'accumulateur 1. Le rsultat est un
angle indiqu en radians. Sa valeur est comprise dans la plage suivante :
Rsultat
Le rsultat dans ACCU 1 est
BI1
BI0
DEB
DM
+qNaN
+normalis
+dnormalis
+zro
-zro
-dnormalis
-normalis
-qNaN
Indication
Dbordement
Dbordement bas
Exemple
LIST
L
MD10
ATAN
UN
SPB
OV
OK
MD20
BEA
OK:
Explication
//Charger dans l'accumulateur 1 la valeur figurant dans le double mot de mmento
MD10 (doit tre un nombre virgule flottante).
//Calculer l'arc tangente du nombre virgule flottante IEEE de 32 bits contenu
dans l'accumulateur 1 et ranger le rsultat dans l'accumulateur 1.
//Tester 0 le bit DEB du mot d'tat.
//Sauter au repre OK si aucune erreur n'est apparue lors de l'opration ATAN.
//Fin de bloc inconditionnelle si une erreur est apparue lors de l'opration
ATAN.
//Transfrer le rsultat de l'accumulateur 1 dans le double mot de mmento MD20.
8-21
8-22
9.1
Description
Les oprations L (charger) et T (transfrer) vous permettent de programmer lchange
dinformations entre des modules dentres ou de sorties, dune part, et des zones de
mmoire, dautre part, ou bien entre des zones de mmoire. La CPU excute ces oprations
inconditionnellement chaque cycle, cest--dire quel que soit le rsultat logique RLG dune
opration.
Vous disposez des oprations de chargement et de transfert suivantes :
Charger
L STW
LAR1
LAR1 <D>
LAR1 AR2
LAR2
LAR2 <D>
Transfrer
T STW
TAR
TAR1
TAR1 <D>
TAR1 AR2
TAR2
TAR2 <D>
9-1
9.2
Charger
Format
L <oprande>
<oprande>
Type de donnes
Zone de mmoire
Adresse source
BYTE
E, A, PE, M, L, D,
pointeur, paramtre
0...65535
WORD
0...65534
0...65532
DWORD
Description de l'opration
L <oprande> charge dans l'accumulateur 1 l'octet, le mot ou le double mot indiqu une fois
que l'ancien contenu de l'accumulateur 1 a t sauvegard dans l'accumulateur 2 et que
l'accumulateur 1 a t mis 0.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
L
L
L
L
L
L
L
9-2
EB10
MB120
DBB12
DIW15
LD252
P# E 8.7
OTTO
P# ANNA
Explication
//Charger l'octet d'entre EB10 dans l'accumulateur 1-L-L.
//Charger l'octet de mmento MB120 dans l'accumulateur 1-L-L.
//Charger l'octet de donnes DBB12 dans l'accumulateur 1-L-L.
//Charger le mot de donnes d'instance DIW15 dans l'accumulateur 1-L.
//Charger le double mot de donnes locales LD252 dans l'accumulateur 1.
//Charger le pointeur dans laccumulateur 1.
//Charger le paramtre "OTTO" dans laccumulateur 1.
//Charger dans laccumulateur 1 le pointeur sur le paramtre spcifi. (Cette
instruction charge le dcalage dadresse relatif du paramtre spcifi ; pour
dterminer le dcalage absolu dans le bloc de donnes dinstance de blocs
fonctionnels multi-instance, il faut encore ajouter cette valeur le contenu
du registre dadresse 2.)
Contenu de l'accumulateur 1
Contenu
ACCU1-H-H
ACCU1-H-L
ACCU1-L-H
ACCU1-L-L
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
00000000
00000000
00000000
<MB10>
00000000
00000000
<MB10>
<MB11>
<MB10>
<MB11>
<MB12>
<MB13>
<86>
9-3
9.3
L STW
Format
L STW
Description de l'opration
L STW (Opration L avec l'oprande STW)
Cette opration charge le contenu du mot d'tat dans l'accumulateur 1. Cette opration
s'excute sans tenir compte des bits du mot d'tat ni influer sur eux.
Nota
Dans les CPU de la famille S7-300, lopration L STW ne charge pas les bits /PI, ETAT et OU
du mot dtat. Seuls les bits 1, 4, 5, 6, 7 et 8 sont chargs dans les emplacements
correspondants du mot de poids faible de laccumulateur 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
STW
Explication
//Charger le contenu du mot d'tat dans l'accumulateur 1.
9-4
Bits
31-9
Contenu :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
9.4
Format
LAR1
Description de l'opration
LAR1
Cette opration charge dans le registre d'adresse 1 (AR1) le contenu de l'accumulateur 1 (32
bits). L'accumulateur 1 et l'accumulateur 2 restent inchangs. L'opration s'excute sans tenir
compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
9-5
9.5
Format
LAR1 <D>
Paramtre
Type de donnes
Zone de mmoire
Adresse source
<D>
DWORD
D, M, L
0...65532
Constante pointeur
Description de l'opration
LAR1 <D>
Cette opration charge dans le registre d'adresse 1 (AR1) le contenu du double mot <D>
indiqu ou une constante de pointeur. L'accumulateur 1 et l'accumulateur 2 restent inchangs.
L'opration s'excute sans tenir compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
DBD 20
DID 30
LD 180
LAR1
MD 24
Explication
//Charger dans
//Charger dans
//Charger dans
LD180.
//Charger dans
9-6
P#M100.0
Explication
//Charger une constante de pointeur de 32 bits dans AR1.
9.6
Format
LAR1 AR2
Description de l'opration
LAR1 AR2 (Opration LAR1 avec l'oprande AR2)
Cette opration charge dans le registre d'adresse 1 (AR1) le contenu du registre d'adresse 2
(AR2). L'accumulateur 1 et l'accumulateur 2 restent inchangs. L'opration s'excute sans
tenir compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
9.7
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Format
LAR2
Description de l'opration
LAR2 charge dans le registre d'adresse 2 (AR2) le contenu de l'accumulateur 1 (32 bits).
L'accumulateur 1 et l'accumulateur 2 restent inchangs. L'opration s'excute sans tenir
compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
9-7
9.8
Format
LAR2 <D>
Paramtre
Type de donnes
Zone de mmoire
Adresse source
<D>
DWORD
D, M, L
0...65532
Constante pointeur
Description de l'opration
LAR2 <D>
Cette opration charge dans le registre d'adresse 2 (AR2) le contenu du double mot <D>
indiqu ou une constante de pointeur. L'accumulateur 1 et l'accumulateur 2 restent inchangs.
L'opration s'excute sans tenir compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
DBD 20
DID 30
LD 180
LAR2
MD 24
Explication
//Charger dans
//Charger dans
//Charger dans
LD180.
//Charger dans
9-8
P#M100.0
Explication
//Charger une constante de pointeur de 32 bits dans AR2.
9.9
Transfrer
Format
T <oprande>
Paramtre
Type de donnes
Zone de mmoire
Adresse source
<oprande>
BYTE
E, A, PA, M, L, D
0...65535
WORD
0...65534
DWORD
0...65532
Description de l'opration
T <oprande>
Cette opration transfre (copie) le contenu de l'accumulateur 1 dans l'adresse de destination
si le relais de masquage (Master Control Relay) est en fonction (MCR = 1). Si le relais MCR
gale 0, c'est la valeur 0 qui est crite dans l'adresse de destination. Le nombre d'octets
copis partir de l'accumulateur 1 dpend de la taille indique dans l'adresse de destination.
L'accumulateur 1 conserve les donnes mme aprs excution de l'opration de transfert. Le
transfert dans la zone de priphrie directe (zone de mmoire PA) excute galement un
transfert du contenu de l'accumulateur 1 ou de l'tat de signal 0 (si MCR gale 0) l'adresse
correspondante dans la mmoire image des sorties (zone de mmoire A). L'opration
s'excute sans tenir compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
LIST
T
T
T
AB10
MW14
DBD2
Explication
//Transfrer le contenu de l'accumulateur 1-L-L dans l'octet de sortie AB10.
//Transfrer le contenu de l'accumulateur 1-L dans le mot de mmento MW14.
//Transfrer le contenu de l'accumulateur 1 dans le double mot de donnes DBD2.
9-9
9.10
T STW
Format
T STW
Description de l'opration
T STW (Opration T avec l'oprande STW)
Cette opration transfre dans le mot d'tat les bits 0 8 figurant dans l'accumulateur 1.
L'opration s'excute sans tenir compte des bits du mot d'tat.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
T
STW
Explication
//Transfrer les bits 0 8 de l'accumulateur 1 dans le mot d'tat.
31-9 8
Contenu
:
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
RB
9-10
9.11
Format
TAR
Description de l'opration
TAR (Permuter registre d'adresse)
Cette opration permute les contenus des registres d'adresse AR 1 et AR 2. Cette opration
s'excute sans tenir compte des bits du mot d'tat ni influer sur eux.
Le contenu du registre d'adresse 1 est dplac dans le registre d'adresse 2 et celui du registre
d'adresse 2 dans le registre d'adresse 1.
Mot d'tat
Ecriture :
9.12
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Format
TAR1
Description de l'opration
TAR1 transfre le contenu du registre d'adresse 1 (AR1) dans l'accumulateur 1 (32 bits). Le
contenu de l'accumulateur 1 a auparavant t rang dans l'accumulateur 2. L'opration
s'excute sans tenir compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
9-11
9.13
Format
TAR1 <D>
Paramtre
Type de donnes
Zone de mmoire
Adresse source
<D>
DWORD
D, M, L
0...65532
Description de l'opration
TAR1 <D>
Cette opration transfre le contenu du registre d'adresse 1 (AR1) dans le double mot <D>
indiqu. Les zones de destination possibles sont les suivantes : doubles mots de mmento
(MD), doubles mots de donnes locales (LD), doubles mots de donnes (DBD) et doubles
mots d'instance (DID).
Les accumulateurs 1 et 2 restent inchangs. L'opration s'excute sans tenir compte des bits
du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
LIST
TAR1
TAR1
TAR1
TAR1
9-12
DBD20
DID30
LD18
MD24
Explication
//Transfrer
//Transfrer
//Transfrer
//Transfrer
le
le
le
le
contenu
contenu
contenu
contenu
de
de
de
de
AR1
AR1
AR1
AR1
dans
dans
dans
dans
le
le
le
le
double
double
double
double
mot
mot
mot
mot
de donnes
d'instance
de donnes
de mmento
DBD20.
DID30.
locales LD18.
MD24.
9.14
Format
TAR1 AR2
Description de l'opration
TAR1 AR2 (Opration TAR1 avec l'oprande AR2)
Cette opration transfre le contenu du registre d'adresse 1 (AR1) dans le registre d'adresse 2
(AR2).
L'accumulateur 1 et l'accumulateur 2 restent inchangs. L'opration s'excute sans tenir
compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
9.15
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Format
TAR2
Description de l'opration
TAR2 transfre le contenu du registre d'adresse 2 (AR2) dans l'accumulateur 1 (32 bits). Le
contenu de l'accumulateur 1 a auparavant t sauvegard dans l'accumulateur 2. L'opration
s'excute sans tenir compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
9-13
9.16
Format
TAR2 <D>
Paramtre
Type de donnes
Zone de mmoire
Adresse source
<D>
DWORD
D, M, L
0...65532
Description de l'opration
TAR2 <D>
Cette opration transfre le contenu du registre d'adresse 2 (AR2) dans le double mot <D>
indiqu. Les zones de destination possibles sont les suivantes : doubles mots de mmento
(MD), doubles mots de donnes locales (LD), doubles mots de donnes (DBD) et doubles
mots d'instance (DID).
L'accumulateur 1 et l'accumulateur 2 restent inchangs. L'opration s'excute sans tenir
compte des bits du mot d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
LIST
TAR2
TAR2
TAR2
TAR2
9-14
DBD20
DID30
LD18
MD24
Explication
//Transfrer
//Transfrer
//Transfrer
//Transfrer
le
le
le
le
contenu
contenu
contenu
contenu
de
de
de
de
AR2
AR2
AR2
AR2
dans
dans
dans
dans
le
le
le
le
double
double
double
double
mot
mot
mot
mot
de donnes
d'instance
de donnes
de mmento
DBD20.
DID30.
locales LD18.
MD24.
10
10.1
Description
Vous disposez des oprations de gestion de programme suivantes :
BE
Fin de bloc
BEB
BEA
CALL
Appel de bloc
CC
UC
Appeler FB
Appeler FC
Appeler SFB
Appeler SFC
Appeler multi-instance
Appeler un bloc dans une bibliothque
Relais de masquage (Master Control Relay, MCR)
Remarques importantes sur l'utilisation de la fonctionnalit MCR
MCR(
)MCR
10-1
10.2
BE
Fin de bloc
Format
BE
Description de l'opration
BE (Fin de bloc)
Cette opration interrompt la squence normale de votre programme dans le bloc en cours et
saute au bloc ayant appel le bloc en cours. Le programme se poursuit avec la premire
instruction suivant l'appel du bloc. La zone de donnes locales en cours est libre et la zone
de donnes locales prcdentes redevient la zone de donnes locales en cours. Les blocs de
donnes qui taient ouverts au moment de l'appel sont nouveau ouverts. De plus, la
dpendance par rapport au MCR du bloc appelant est restaure et le RLG est transfr du
bloc en cours au bloc appelant. L'opration BE prend effet sans aucune condition. Si
l'opration BE est saute, le droulement de votre programme ne s'achve pas, mais se
poursuit la destination de saut, l'intrieur du bloc.
L'opration BE ne correspond pas celle du logiciel S5. Pour le matriel S7, l'opration BE a
la mme fonction que l'opration BEA de S5.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
Explication
U
SPB
L
T
U
U
S
SUIV:
10-2
BE
NOP 0
E 1.0
SUIV
EW4
EW10
E 6.0
E 6.1
M
12.0
//Fin de bloc.
//Poursuivre ici si le saut s'excute.
10.3
BEB
Format
BEB
Description de l'opration
Si le RLG gale 1, l'opration BEB (Fin de bloc conditionnelle) interrompt la squence
normale de votre programme dans le bloc en cours et saute au bloc ayant appel le bloc en
cours. Le programme se poursuit avec la premire instruction suivant l'appel du bloc. La zone
de donnes locales en cours est libre et la zone de donnes locales prcdentes redevient
la zone de donnes locales en cours. Les blocs de donnes qui taient ouverts au moment de
l'appel sont nouveau ouverts. La dpendance par rapport au MCR du bloc appelant est
restaure.
Le RLG (gal 1) est report du bloc qui s'est achev dans le bloc appelant. Si le RLG gale
0, l'opration BEB ne s'excute pas. Le RLG est mis 1 et le programme se poursuit avec
l'instruction suivante.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
U
BEB
L
T
E 1.0
EW4
MW10
Explication
//Actualiser le RLG.
//Terminer le bloc si le RLG gale 1.
//Poursuivre ici si l'instruction BEB ne s'excute pas (RLG gal 0).
10-3
10.4
BEA
Format
BEA
Description de l'opration
BEA (Fin de bloc inconditionnelle)
Cette opration interrompt la squence normale de votre programme dans le bloc en cours et
saute au bloc ayant appel le bloc en cours. Le programme se poursuit avec la premire
instruction suivant l'appel du bloc. La zone de donnes locales en cours est libre et la zone
de donnes locales prcdentes redevient la zone de donnes locales en cours. Les blocs de
donnes qui taient ouverts au moment de l'appel sont nouveau ouverts. De plus, la
dpendance par rapport au MCR du bloc appelant est restaure et le RLG est transfr du
bloc en cours au bloc appelant. L'opration BEA prend effet sans condition. Si l'opration BEA
est saute, le droulement de votre programme ne s'achve pas, mais se poursuit la
destination de saut, l'intrieur du bloc.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
SUIV:
10-4
Explication
U
SPB
E 1.0
SUIV
L
T
U
U
S
EW4
EW10
E 6.0
E 6.1
M
12.0
BEA
NOP 0
10.5
CALL
Appel de bloc
Format
CALL <ID du bloc de code>
Description de l'opration
CALL <ID du bloc de code>
Cette opration permet l'appel des fonctions (FC) et blocs fonctionnels (FB) ou celui des
fonctions standard (SFC) et blocs fonctionnels standard (SFB) livrs par Siemens. CALL
appelle la FC, le FB, la SFC ou le SFB que vous avez indiqu en oprande, et ce
indpendamment du RLG ou de toute autre condition. Si vous appelez un FB ou un SFB
l'aide de CALL, vous devez prciser un bloc de donnes d'instance. Une fois le bloc appel
trait, le programme se poursuit dans le bloc appelant. Vous pouvez indiquer l'identificateur de
bloc sous forme absolue ou symbolique. Les contenus des registres sont restaurs aprs un
appel de SFB/SFC.
Type de bloc
FC
Fonction
CALL FCn
SFC
Fonction systme
CALL SFCn
FB
Bloc fonctionnel
CALL FBn1,DBn2
SFB
CALL SFBn1,DBn2
Nota
Si vous utilisez lditeur LIST, les indications (n, n1 ou n2) du tableau ci-dessus doivent se
rapporter des blocs corrects dj prsents. Vous devez aussi dfinir pralablement les
mnmoniques.
10-5
Il est possible d'indiquer les paramtres IN comme constantes ou comme adresses absolues
ou symboliques. Les paramtres OUT et IN_OUT doivent tre indiqus comme adresses
absolues ou symboliques. Veillez ce que toutes les adresses et constantes soient
compatibles avec les types de donnes transfrs.
L'opration CALL sauvegarde l'adresse de retour (slecteur et adresse relative), les
slecteurs des deux blocs de donnes ouverts et le bit MA dans la pile des blocs. Elle
dsactive en outre la relation de dpendance par rapport au MCR et dfinit la zone de
donnes locales du bloc qui doit tre appel.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
FC6
Paramtre formel
NO OF TOOL
TIME OUT
FOUND
ERROR
Paramtre effectif
:= MW100
:= MW110
:= A 0.1
:= A 100.0
SFC43
Explication
//Appeler SFC43 pour redmarrer la surveillance du temps (sans paramtre).
10-6
FB99,DB1
Paramtre formel
MAX_RPM
MIN_RPM
MAX_POWER
MAX_TEMP
Paramtre effectif
:= #RPM1_MAX
:= #RPM2
:= #POWER
:= #TEMP
FB99,DB2
Paramtre formel
MAX_RPM
MIN_RPM
MAX_POWER
MAX_TEMP
Paramtre effectif
:= #RPM3_MAX
:= #RPM2
:= #POWER1
:= #TEMP
Nota
Chaque appel de bloc fonctionnel ou de bloc fonctionnel systme ncessite un bloc de
donnes d'instance. Dans l'exemple ci-dessus, les blocs DB1 et DB2 doivent tre prsents
avant l'appel.
10-7
10.6
Appeler FB
Format
CALL FB n1, DB n2
Description de l'opration
Cette opration permet l'appel des blocs fonctionnels (FB) que vous avez programms. CALL
appelle le FB que vous avez indiqu en oprande, et ce indpendamment du RLG ou de toute
autre condition. Si vous appelez un FB l'aide de CALL, vous devez prciser un bloc de
donnes d'instance. Une fois le bloc appel trait, le programme se poursuit dans le bloc
appelant. Vous pouvez indiquer l'identificateur de bloc sous forme absolue ou symbolique.
Mot d'tat
Ecriture :
10-8
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
FB99,DB1
Paramtre formel
MAX_RPM
MIN_RPM
MAX_POWER
MAX_TEMP
Paramtre effectif
:= #RPM1_MAX
:= #RPM1
:= #POWER1
:= #TEMP1
FB99,DB2
Paramtre formel
MAX_RPM
MIN_RPM
MAX_POWER
MAX_TEMP
Paramtre effectif
:= #RPM2_MAX
:= #RPM2
:= #POWER2
:= #TEMP2
Nota
Chaque appel de bloc fonctionnel ncessite un bloc de donnes d'instance. Dans l'exemple
ci-dessus, les blocs DB1 et DB2 doivent tre prsents avant l'appel.
10-9
10.7
Appeler FC
Format
CALL FC n
Nota
Si vous utilisez lditeur LIST, l'indication (n) doit se rapporter des blocs corrects dj
prsents. Vous devez aussi dfinir pralablement les mnmoniques.
Description de l'opration
Cette opration permet l'appel de fonctions (FC). CALL appelle la FC que vous avez indique
en oprande, et ce indpendamment du RLG ou de toute autre condition. Une fois le bloc
appel trait, le programme se poursuit dans le bloc appelant. Vous pouvez indiquer
l'identificateur de bloc sous forme absolue ou symbolique.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
10-10
FC6
Paramtre formel
NO OF TOOL
TIME OUT
FOUND
ERROR
Paramtre effectif
:= MW100
:= MW110
:= A 0.1
:= A 100.0
10.8
Appeler SFB
Format
CALL SFB n1, DB n2
Description de l'opration
Cette opration permet l'appel des blocs fonctionnels standard (SFB) livrs par Siemens.
CALL appelle le SFB que vous avez indiqu en oprande, et ce indpendamment du RLG ou
de toute autre condition. Si vous appelez un SFB l'aide de CALL, vous devez prciser un
bloc de donnes d'instance. Une fois le bloc appel trait, le programme se poursuit dans le
bloc appelant. Vous pouvez indiquer l'identificateur de bloc sous forme absolue ou
symbolique.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
10-11
Exemple
CALL
SFB4,DB4
Paramtre formel
IN:
PT:
Q:
ET:
Paramtre
E0.1
T#20s
M0.0
MW10
effectif
Nota
Chaque appel de bloc fonctionnel ncessite un bloc de donnes d'instance. Dans l'exemple
ci-dessus, les blocs SFB4 et DB4 doivent tre prsents avant l'appel.
10-12
10.9
Appeler SFC
Format
CALL SFC n
Nota
Si vous utilisez lditeur LIST, l'indication (n) doit se rapporter des blocs corrects dj
prsents. Vous devez aussi dfinir pralablement les mnmoniques.
Description de l'opration
Cette opration permet l'appel de fonctions standard (SFC) livres par Siemens. CALL appelle
la SFC que vous avez indique en oprande, et ce indpendamment du RLG ou de toute autre
condition. Une fois le bloc appel trait, le programme se poursuit dans le bloc appelant. Vous
pouvez indiquer l'identificateur de bloc sous forme absolue ou symbolique.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
SFC43
Explication
//Appeler SFC43 pour redmarrer la surveillance du temps (sans paramtre).
10-13
10.10
Appeler multi-instance
Format
CALL # nom-variable
Description de l'opration
Vous crez une multi-instance par la dclaration d'une variable statique de type de donnes
"bloc fonctionnel". Seules les multi-instances dj dclares apparaissent dans le catalogue
des lments de programme.
Mot d'tat
Ecriture :
10.11
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
qui sont intgrs dans le systme d'exploitation de votre CPU (bibliothque "Standard
Library") ;
que vous avez rangs vous-mme dans des bibliothques parce que vous avez l'intention
de les utiliser plusieurs fois.
10-14
10.12
CC
Format
CC <ID du bloc de code>
Description de l'opration
CC <ID du bloc de code>
L'opration "Appel de bloc conditionnel" permet d'appeler, si le RLG gale 1, un bloc de code
de type FC ou SFC sans paramtre. L'opration CC est quasiment identique l'opration
CALL la diffrence qu'il n'est pas possible de transmettre des paramtres. L'opration
sauvegarde l'adresse de retour (slecteur et adresse relative), les slecteurs des deux blocs
de donnes en cours ainsi que le bit MA dans la pile des blocs, dsactive la dpendance par
rapport au MCR, cre la zone de donnes locales du bloc qui doit tre appel et commence
l'excution du code appel. Vous pouvez indiquer l'identificateur du bloc sous forme absolue
ou symbolique.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple 1
LIST
U
CC
U
E 2.0
FC6
M3.0
Explication
//Interroger l'tat de signal l'entre E 2.0.
//Appeler la fonction FC6 si l'tat de signal en E 2.0 gale 1.
//S'excute aprs retour de la fonction appele (si E 2.0 = 1) ou juste aprs
l'instruction U E 2.0 si E 2.0 gale 0.
Exemple 2
LIST
U
CC
E 2.0
SFC43
Explication
//Interroger l'tat de signal l'entre E 2.0.
//Appeler la fonction systme SFC43 (sans paramtre) si E 2.0 gale 1.
Nota
Lorsque vous appelez un bloc fonctionnel (FB) ou un bloc fonctionnel systme (SFB) avec
l'opration CALL, vous devez prciser un bloc de donnes d'instance (n de DB) dans
l'instruction. Pour un appel avec l'opration CC, vous ne pouvez pas indiquer de bloc de
donnes dans l'oprande de l'instruction.
Selon le rseau avec lequel vous travaillez, la fentre de programmation de blocs en CONT
ou LIST gnre en partie l'opration UC et en partie l'opration CC lors de la conversion du
langage de programmation CONT (schma contacts) en langage de programmation LIST
(liste d'instructions). Utilisez, en rgle gnrale, l'opration CALL pour que des erreurs
n'apparaissent pas dans les programmes que vous avez crs.
10-15
10.13
UC
Format
UC <ID du bloc de code>
Description de l'opration
UC <ID du bloc de code>
L'opration "Appel de bloc inconditionnel" permet d'appeler un bloc de code de type FC ou
SFC. L'opration UC ressemble l'opration CALL la diffrence qu'il n'est pas possible de
transmettre des paramtres. L'opration sauvegarde l'adresse de retour (slecteur et adresse
relative), les slecteurs des deux blocs de donnes en cours ainsi que le bit MA dans la pile
des blocs. Elle dsactive la relation de dpendance par rapport au MCR, cre la zone de
donnes locales du bloc qui doit tre appel et commence l'excution du code appel.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple 1
LIST
UC
FC6
Explication
//Appeler la fonction FC6 (sans paramtre).
Exemple 2
LIST
UC
SFC43
Explication
//Appeler la fonction systme SFC43 (sans paramtre).
Nota
Lorsque vous appelez un bloc fonctionnel (FB) ou un bloc fonctionnel systme (SFB) avec
l'opration CALL, vous devez prciser un bloc de donnes d'instance (n de DB) dans
l'instruction. Pour un appel avec l'opration UC, vous ne pouvez pas indiquer de bloc de
donnes dans l'oprande de l'instruction.
Selon le rseau avec lequel vous travaillez, la fentre de programmation de blocs en CONT
ou LIST gnre en partie l'opration UC et en partie l'opration CC lors de la conversion du
langage de programmation CONT (schma contacts) en langage de programmation LIST
(liste d'instructions). Utilisez, en rgle gnrale, l'opration CALL pour que des erreurs
n'apparaissent pas dans les programmes que vous avez crs.
10-16
10.14
Avertissement
Pour exclure tout risque de blessures ou de dgts matriels, n'utilisez jamais le MCR pour
remplacer un relais de masquage mcanique cbl servant une fonction d'arrt d'urgence.
Description
Le relais de masquage Master Control Relay (MCR) est utilis dans les schmas contacts de
relais pour exciter et dsexciter le flux d'nergie. Les oprations dclenches par les
oprations suivantes de combinaison sur bits et de transfert dpendent du MCR :
= <bit>
S <bit>
R <bit>
T <octet>, T <mot>, T <double mot>
L'opration T avec octet, mot ou double mot crit un 0 en mmoire si le MCR gale 0. Les
oprations S et R laissent la valeur existante inchange. L'opration = crit un 0 dans le bit
adress.
= <bit>
S <bit>, R <bit>
T <octet>, T <mot>
T <double mot>
0 (HORS
FONCTION)
Ecrit 0.
N'crit rien.
Ecrit 0.
1 (EN FONCTION)
Excution normale.
Excution normale.
Excution normale.
10-17
10.15
Lorsque le relais de masquage (MCR) est hors fonction, la valeur 0 est crite par toutes les
affectation (T, =) dans les sections de programme entre MCR( et )MCR !
Le MCR se trouve prcisment hors fonction lorsque le RLG tait gal 0 avant une instruction
MCR(.
Accs des composants de paramtres FC complexes de type STRUCT, UDT, ARRAY, STRING
Accs des composants de paramtres FB complexes de type STRUCT, UDT, ARRAY, STRING
de la zone IN_OUT dans un bloc admettant les multi-instances (bloc de version 2).
Accs aux paramtres d'un FB admettant les multi-instances (bloc de version 2) lorsque leur
adresse est suprieure 8180.0.
CONT/LOG
Dans CONT ou LOG, les branches T et les connecteurs dbutent par RLG = 0.
Remde
Sparez les instructions concernes de la dpendance par rapport au relais de masquage :
1er Dsactivez le relais de masquage en utilisant l'instruction MCRD avant l'instruction ou le rseau
concerns.
2e Activez le relais de masquage en utilisant l'instruction MCRA aprs l'instruction ou le rseau
concerns.
10-18
10.16
MCR(
MCR
Format
MCR(
Description de l'opration
MCR( (Ouvrir une zone MCR)
Cette opration sauvegarde le RLG dans la pile MCR (Master Control Relay : relais de
masquage) et ouvre une zone MCR. Une zone MCR comprend les instructions entre
l'opration MCR( et l'opration )MCR correspondante. Il faut toujours utiliser les oprations
MCR( et )MCR par paires.
Si le RLG gale 1, le relais de masquage est "en fonction". Les instructions dpendant du
MCR l'intrieur de cette zone MCR s'excutent normalement.
Si le RLG gale 0, le relais de masquage est "hors fonction". Les instructions dpendant du
MCR l'intrieur de cette zone MCR s'excutent comme indiqu dans le tableau ci-dessous.
= <bit>
S <bit>, R <bit>
T <octet>, T <mot>
T <double mot>
0 (HORS
FONCTION)
Ecrit 0.
N'crit rien.
Ecrit 0.
1 (EN FONCTION)
Excution normale.
Excution normale.
Excution normale.
Vous pouvez imbriquer les oprations MCR( et )MCR. La profondeur d'imbrication maximale
est de huit oprations. La pile peut, par consquent, contenir huit entres au maximum. Si
l'opration MCR( est excute pile pleine, une erreur de pile MCR (MCRF) est alors
signale.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
10-19
Exemple
LIST
MCRA
U
MCR(
Explication
//Activer la zone MCR.
E 1.0
//Sauvegarder le RLG dans la pile MCR, ouvrir une zone MCR. Le MCR est en fonction
si le RLG gale 1 (E 1.0 = 1). Le MCR est hors fonction si le RLG gale 0 (E
1.0 = 0).
U
=
E 4.0
A 8.0
L
T
)MCR
MCRD
U
=
MW20
AW10
10-20
E 1.1
A 8.1
//Si le MCR est hors fonction, la sortie A 8.0 est mise 0 sans considrer
l'tat de signal l'entre E 4.0.
//Si le MCR est hors fonction, la valeur 0 est transfre dans AW10.
//Mettre fin la zone MCR.
//Dsactiver la zone MCR.
//Ces instructions sont l'extrieur de la zone MCR et ne dpendent pas du
bit MCR.
10.17
)MCR
Format
)MCR
Description de l'opration
)MCR (Fin de zone MCR)
Cette opration retire une entre de la pile MCR et termine une zone MCR. La dernire entre
dans la pile MCR est libre et mise 1. Les oprations MCR( et )MCR doivent toujours tre
utilises par paires. Si l'opration )MCR s'excute si la pile est vide, une erreur de pile MCR
(MCRF) est signale.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
MCRA
U
MCR(
Explication
//Activer la zone MCR.
E 1.0
//Sauvegarder le RLG dans la pile MCR, ouvrir une zone MCR. Le MCR est en fonction
si le RLG gale 1 (E 1.0 = 1). Le MCR est hors fonction si le RLG gale 0 (E
1.0 = 0).
U
=
E 4.0
A 8.0
L
T
)MCR
MCRD
U
=
MW20
AW10
E 1.1
A 8.1
//Si le MCR est hors fonction, la sortie A 8.0 est mise 0 sans considrer
l'tat de signal l'entre E 4.0.
//Si le MCR est hors fonction, la valeur 0 est transfre dans AW10.
//Mettre fin la zone MCR.
//Dsactiver la zone MCR.
//Ces instructions sont l'extrieur de la zone MCR et ne dpendent pas du
bit MCR.
10-21
10.18
MCRA
Format
MCRA
Description de l'opration
MCRA (Activer le relais de masquage)
Cette opration permet d'activer la dpendance par rapport au MCR des instructions qui
suivent cette opration. Les oprations MCRA et MCRD (dsactivation du relais de
masquage) doivent toujours tre utilises par paires. Les instructions figurant entre MCRA et
MCRD dpendent de l'tat de signal du bit MCR.
L'opration s'excute sans tenir compte des bits d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
MCRA
U
MCR(
Explication
//Activer la zone MCR.
E 1.0
//Sauvegarder le RLG dans la pile MCR, ouvrir une zone MCR. Le MCR est en fonction
si le RLG gale 1 (E 1.0 = 1). Le MCR est hors fonction si le RLG gale 0 (E
1.0 = 0).
U
=
E 4.0
A 8.0
L
T
)MCR
MCRD
U
=
MW20
AW10
10-22
E 1.1
A 8.1
//Si le MCR est hors fonction, la sortie A 8.0 est mise 0 sans considrer
l'tat de signal l'entre E 4.0.
//Si le MCR est hors fonction, la valeur 0 est transfre dans AW10.
//Mettre fin la zone MCR.
//Dsactiver la zone MCR.
//Ces instructions sont l'extrieur de la zone MCR et ne dpendent pas du
bit MCR.
10.19
MCRD
Format
MCRD
Description de l'opration
MCRD (Dsactiver le relais de masquage)
Cette opration permet de dsactiver la dpendance par rapport au MCR des instructions qui
suivent cette opration. Les oprations MCRA et MCRD (activation du relais de masquage)
doivent toujours tre utilises par paires. Les instructions figurant entre MCRA et MCRD
dpendent de l'tat de signal du bit MCR.
L'opration s'excute sans tenir compte des bits d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
MCRA
U
MCR(
Explication
//Activer la zone MCR.
E 1.0
//Sauvegarder le RLG dans la pile MCR, ouvrir une zone MCR. Le MCR est en fonction
si le RLG gale 1 (E 1.0 = 1). Le MCR est hors fonction si le RLG gale 0 (E
1.0 = 0).
U
=
E 4.0
A 8.0
L
T
)MCR
MCRD
U
=
MW20
AW10
E 1.1
A 8.1
//Si le MCR est hors fonction, la sortie A 8.0 est mise 0 sans considrer
l'tat de signal l'entre E 4.0.
//Si le MCR est hors fonction, la valeur 0 est transfre dans AW10.
//Mettre fin la zone MCR.
//Dsactiver la zone MCR.
//Ces instructions sont l'extrieur de la zone MCR et ne dpendent pas du
bit MCR.
10-23
10-24
11
11.1
Oprations de dcalage
11.1.1
Description
Les oprations de dcalage permettent de dcaler bit par bit le contenu du mot de poids faible
de laccumulateur 1 ou de laccumulateur entier vers la gauche ou vers la droite (voir aussi
Registres de la CPU). Le dcalage vers la gauche multiplie le contenu de laccumulateur par
des puissances de 2 ; le dcalage vers la droite le divise par des puissances de 2. Si, par
exemple, vous dcalez de 3 bits vers la gauche lquivalent binaire de la valeur dcimale 3,
vous obtenez lquivalent binaire de la valeur dcimale 24 dans laccumulateur. Si vous
dcalez de 2 bits vers la droite lquivalent binaire de la valeur dcimale 16, vous obtenez
lquivalent binaire de la valeur dcimale 4 dans laccumulateur.
Le nombre de bits de dcalage est prcis dans linstruction de dcalage mme ou est pris
dans loctet de poids faible du mot de poids faible de laccumulateur 2. Les positions binaires
libres par lopration de dcalage sont soit remplies par des zros, soit par ltat de signal
du bit de signe (0 signifie positif et 1 ngatif). Le bit dcal en dernier est charg dans le bit BI1
du mot dtat. Les bits BI0 et DEB du mot dtat sont remis 0. Vous pouvez valuer le bit BI1
laide doprations de saut.
Les oprations de dcalage sont inconditionnelles : leur excution ne dpend daucune
condition spciale. Elles naffectent pas le rsultat logique RLG.
Vous disposez des oprations de dcalage suivantes :
SSI
SSD
SLW
SRW
SLD
SRD
11-1
11.1.2
SSI
Formats
SSI
SSI <nombre>
Oprande
Type de donnes
Description
<nombre>
Description de l'opration
SSI (Dcalage vers la droite d'un entier avec signe)
Cette opration permet de dcaler bit par bit le contenu de l'accumulateur 1-L vers la droite.
L'tat de signal du bit de signe (bit 15) est crit dans les bits librs par le dcalage. Le bit
dcal en dernier est charg dans le bit BI1 du mot d'tat. Le nombre de bits de dcalage est
prcis soit par l'oprande <nombre>, soit par une valeur figurant dans l'accumulateur 2-L-L.
SSI <nombre> : Le nombre de bits de dcalage est prcis par l'oprande <nombre>. Des
valeurs entre 0 et 15 sont autorises. Les bits d'tat BI0 et DEB sont mis 0 si <nombre> est
suprieur 0. Si <nombre> gale 0, l'opration de dcalage s'excute comme une opration
NOP.
SSI : Le nombre de bits de dcalage est prcis par la valeur figurant dans l'accumulateur
2-L-L. Des valeurs entre 0 et 255 sont autorises. Un nombre de bits de dcalage suprieur
16 donne toujours le mme rsultat : accumulateur 1 = 16#0000, BI1 = 0 ou accumulateur 1 =
16#FFFF, BI1 = 1. Si le nombre de bits de dcalage est suprieur 0, les bits d'tat BI0 et
DEB sont mis 0. Si le nombre de bits de dcalage gale 0, l'opration de dcalage s'excute
comme une opration NOP.
Mot d'tat
Ecriture :
11-2
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Contenu
ACCU1-H
ACCU1-L
Bit
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
1001
1101
0011
1011
0101
1111
0110
0100
1111
1110
0111
0100
Exemple 1
LIST
L
SSI
MW4
6
MW8
Explication
//Charger la valeur de MW4 dans l'accumulateur 1.
//Dcaler les bits dans l'accumulateur 1, signe inclus, de 6 positions vers
la droite.
//Transfrer le rsultat dans le mot de mmento MW8.
Exemple 2
LIST
L
L
+3
MW20
SSI
SPP
SUIV
Explication
//Charger la valeur +3 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur du mot de mmento MW20 dans l'accumulateur 1.
//Le nombre pour le dcalage gale la valeur de l'accumulateur 2-L-L => dcaler
les bits dans l'accumulateur 1-L, signe inclus, de 3 positions vers la droite,
mettre les positions libres l'tat de signal du bit de signe.
//Sauter au repre de saut SUIV si le dernier bit dcal (BI1) gale 1.
11-3
11.1.3
SSD
Formats
SSD
SSD <nombre>
Oprande
Type de donnes
Description
<nombre>
Description de l'opration
SSD (Dcalage vers la droite d'un entier avec signe, 32 bits)
Cette opration permet de dcaler bit par bit le contenu entier de l'accumulateur 1 vers la
droite. L'tat de signal du bit de signe est crit dans les bits librs par le dcalage. Le bit
dcal en dernier est charg dans le bit BI1 du mot d'tat. Le nombre de bits de dcalage est
prcis soit par l'oprande <nombre>, soit par une valeur figurant dans l'accumulateur 2- L-L.
SSD <nombre> : Le nombre de bits de dcalage est prcis par l'oprande <nombre>. Des
valeurs entre 0 et 32 sont autorises. Les bits d'tat BI0 et DEB sont mis 0 si <nombre> est
suprieur 0. Si <nombre> gale 0, l'opration de dcalage s'excute comme une opration
NOP.
SSD : Le nombre de bits de dcalage est prcis par la valeur figurant dans l'accumulateur
2-L-L. Des valeurs entre 0 et 255 sont autorises. Un nombre de bits de dcalage suprieur
32 donne toujours le mme rsultat : accumulateur 1 = 32#00000000, BI1 = 0 ou
accumulateur 1 = 32#FFFFFFFF, BI1 = 1. Si le nombre de bits de dcalage est suprieur 0,
les bits d'tat BI0 et DEB sont mis 0. Si le nombre de bits de dcalage gale 0, l'opration de
dcalage s'excute comme une opration NOP.
Mot d'tat
Ecriture :
11-4
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Contenu
ACCU1-H
ACCU1-L
Bit
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
1000
1111
0110
0100
0101
1101
0011
1011
1111
1111
0001
1110
1100
1000
1011
1010
Exemple 1
LIST
L
SSD
MD4
7
MD8
Explication
//Charger la valeur de MD4 dans l'accumulateur 1.
//Dcaler les bits dans l'accumulateur 1, signe inclus, de 7 positions vers
la droite.
//Transfrer le rsultat dans le double mot de mmento MD8.
Exemple 2
LIST
L
L
+3
MD20
SSD
SPP
SUIV
Explication
//Charger la valeur +3 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur du double mot de mmento MD20 dans l'accumulateur 1.
//Le nombre pour le dcalage gale la valeur de l'accumulateur 2-L-L => dcaler
les bits dans l'accumulateur 1, signe inclus, de 3 positions vers la droite,
mettre les positions libres l'tat de signal du bit de signe.
//Sauter au repre de saut SUIV si le dernier bit dcal (BI1) gale 1.
11-5
11.1.4
SLW
Formats
SLW
SLW <nombre>
Oprande
Type de donnes
Description
<nombre>
Description de l'opration
SLW (Dcalage vers la gauche d'un mot)
Cette opration permet de dcaler bit par bit le contenu de l'accumulateur 1-L vers la gauche.
Les positions binaires libres par le dcalage sont compltes par des zros. Le bit dcal
en dernier est charg dans le bit BI1 du mot d'tat. Le nombre de bits de dcalage est prcis
soit par l'oprande <nombre>, soit par une valeur figurant dans l'accumulateur 2-L-L.
SLW <nombre> : Le nombre de bits de dcalage est prcis par l'oprande <nombre>. Des
valeurs entre 0 et 15 sont autorises. Les bits d'tat BI0 et DEB sont remis 0 si <nombre> est
suprieur 0. Si <nombre> gale 0, l'opration de dcalage s'excute comme une opration
NOP.
SLW : Le nombre de bits de dcalage est prcis par la valeur figurant dans l'accumulateur
2-L-L. Des valeurs entre 0 et 255 sont autorises. Un nombre de bits de dcalage suprieur
16 donne toujours le mme rsultat : accumulateur 1-L = 0, BI1 = 0, BI0 = 0, DEB = 0. Si 0 <
nombre de bits dcals <= 16, les bits d'tat BI0 et DEB sont mis 0. Si le nombre de bits de
dcalage gale 0, l'opration de dcalage s'excute comme une opration NOP.
Mot d'tat
Ecriture :
11-6
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Contenu
ACCU1-H
Bit
31 . . .
..
ACCU1-L
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1011
0101
1111
0110
0100
1010
0111
0110
0000
Exemple 1
LIST
L
SLW
T
MW4
5
MW8
Explication
//Charger la valeur de MW4 dans l'accumulateur 1.
//Dcaler les bits dans l'accumulateur 1 de 5 positions vers la gauche.
//Transfrer le rsultat dans le mot de mmento MW8.
Exemple 2
LIST
L
L
+3
MW20
SLW
SPP
SUIV
Explication
//Charger la valeur +3 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur du mot de mmento MW20 dans l'accumulateur 1.
//Le nombre pour le dcalage gale la valeur de l'accumulateur 2-L-L => dcaler
les bits dans l'accumulateur 1-L de 3 positions vers la gauche.
//Sauter au repre de saut SUIV si le dernier bit dcal (BI1) gale 1.
11-7
11.1.5
SRW
Formats
SRW
SRW <nombre>
Oprande
Type de donnes
Description
<nombre>
Description de l'opration
SRW (Dcalage vers la droite d'un mot)
Cette opration permet de dcaler bit par bit le contenu de l'accumulateur 1-L vers la droite.
Les positions binaires libres par le dcalage sont compltes par des zros. Le bit dcal
en dernier est charg dans le bit BI1 du mot d'tat. Le nombre de bits de dcalage est prcis
soit par l'oprande <nombre>, soit par une valeur figurant dans l'accumulateur 2 L-L.
SRW <nombre> : Le nombre de bits de dcalage est prcis par l'oprande <nombre>. Des
valeurs entre 0 et 15 sont autorises. Les bits d'tat BI0 et DEB sont mis 0 si <nombre> est
suprieur 0. Si <nombre> gale 0, l'opration de dcalage s'excute comme une opration
NOP.
SRW : Le nombre de bits de dcalage est prcis par la valeur figurant dans l'accumulateur
2-L-L. Des valeurs entre 0 et 255 sont autorises. Un nombre de bits de dcalage suprieur
16 donne toujours le mme rsultat : accumulateur 1-L = 0, BI1 = 0, BI0 = 0, DEB = 0. Si 0 <
nombre de bits de dcalage <= 16, les bits d'tat BI0 et DEB sont mis 0. Si le nombre de bits
de dcalage gale 0, l'opration de dcalage s'excute comme une opration NOP.
Mot d'tat
Ecriture :
11-8
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Contenu
ACCU1-H
ACCU1-L
Bit
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1011
0101
1111
0110
0100
0000
0001
0111
0100
Exemple 1
LIST
L
SRW
T
MW4
6
MW8
Explication
//Charger la valeur de MW4 dans l'accumulateur 1.
//Dcaler les bits dans l'accumulateur 1 de 6 positions vers la droite.
//Transfrer le rsultat dans le mot de mmento MW8
Exemple 2
LIST
L
L
+3
MW20
SRW
SPP
SUIV
Explication
//Charger la valeur +3 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur du mot de mmento MW20 dans l'accumulateur 1.
//Le nombre pour le dcalage gale la valeur de l'accumulateur 2-L-L => dcaler
les bits dans l'accumulateur 1-L de 3 positions vers la droite.
//Sauter au repre de saut SUIV si le dernier bit dcal (BI1) gale 1.
11-9
11.1.6
SLD
Formats
SLD
SLD <nombre>
Oprande
Type de donnes
Description
<nombre>
Description de l'opration
SLD (Dcalage vers la gauche d'un double mot)
Cette opration permet de dcaler bit par bit le contenu entier de l'accumulateur 1 vers la
gauche. Les positions binaires libres par le dcalage sont compltes par des zros. Le bit
dcal en dernier est charg dans le bit BI1 du mot d'tat. Le nombre de bits dcaler est
prcis soit par l'oprande <nombre>, soit par une valeur figurant dans l'accumulateur 2-L-L.
SLD <nombre> : Le nombre de bits de dcalage est prcis par l'oprande <nombre>. Des
valeurs entre 0 et 32 sont autorises. Si <nombre> est suprieur 0, les bits BI0 et DEB sont
mis 0. Si <nombre> gale 0, l'opration de dcalage s'excute comme une opration NOP.
SLD : Le nombre de bits de dcalage est prcis par la valeur figurant dans l'accumulateur
2-L-L. Des valeurs entre 0 et 255 sont autorises. Un nombre de bits de dcalage suprieur
32 donne toujours le mme rsultat : accumulateur 1 = 0, BI1 = 0, BI0 = 0, DEB = 0. Si 0 <
nombre de bits de dcalage <= 32, les bits d'tat BI0 et DEB sont mis 0. Si le nombre de bits
de dcalage gale 0, l'opration de dcalage s'excute comme une opration NOP.
Mot d'tat
Ecriture :
11-10
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Contenu
ACCU1-H
Bit
31 . . .
..
ACCU1-L
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1011
1110
1100
1000
1011
1010
0111
0110
0000
Exemple 1
LIST
L
SLD
T
MD4
5
MD8
Explication
//Charger la valeur de MD4 dans l'accumulateur 1.
//Dcaler les bits dans l'accumulateur 1 de 5 positions vers la gauche.
//Transfrer le rsultat dans le double mot de mmento MD8.
Exemple 2
LIST
L
L
+3
MD20
SLD
SPP
SUIV
Explication
//Charger la valeur +3 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur du double mot de mmento MD20 dans l'accumulateur 1.
//Le nombre pour le dcalage gale la valeur de l'accumulateur 2-L-L => dcaler
les bits dans l'accumulateur 1 de 3 positions vers la gauche.
//Sauter au repre de saut SUIV si le dernier bit dcal (BI1) gale 1.
11-11
11.1.7
SRD
Formats
SRD
SRD <nombre>
Oprande
Type de donnes
Description
<nombre>
Description de l'opration
SRD (Dcalage vers la droite d'un double mot)
Cette opration permet de dcaler bit par bit le contenu entier de l'accumulateur 1 vers la
droite. Les positions binaires libres par le dcalage sont compltes par des zros. Le bit
dcal en dernier est charg dans le bit BI1 du mot d'tat. Le nombre de bits de dcalage est
prcis soit par l'oprande <nombre>, soit par une valeur figurant dans l'accumulateur 2-L-L.
SRD <nombre> : Le nombre de bits de dcalage est prcis par l'oprande <nombre>. Des
valeurs entre 0 et 32 sont autorises. Les bits d'tat BI0 et DEB sont mis 0 si <nombre> est
suprieur 0. Si <nombre> gale 0, l'opration de dcalage s'excute comme une opration
NOP.
SRD : Le nombre de bits de dcalage est prcis par la valeur figurant dans l'accumulateur
2-L-L. Des valeurs entre 0 et 255 sont autorises. Un nombre de bits de dcalage suprieur
32 donne toujours le mme rsultat : accumulateur 1 = 0, BI1 = 0, BI0 = 0, DEB = 0. Si 0 <
nombre de bits de dcalage <= 32, les bits BI0 et DEB sont remis 0. Si le nombre de bits de
dcalage gale 0, l'opration de dcalage s'excute comme une opration NOP.
Mot d'tat
Ecriture :
11-12
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Contenu
ACCU1-H
ACCU1-L
Bit
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1011
0000
0000
1011
1110
1100
1000
1011
1010
Exemple 1
LIST
L
SRD
T
MD4
7
MD8
Explication
//Charger la valeur de MD4 dans l'accumulateur 1.
//Dcalage des bits dans l'accumulateur 1 de 7 positions vers la droite.
//Transfrer le rsultat dans le double mot de mmento MD8.
Exemple 2
LIST
L
L
+3
MD20
SRD
SPP
SUIV
Explication
//Charger la valeur +3 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur du double mot de mmento MD20 dans l'accumulateur 1.
//Le nombre pour le dcalage gale la valeur de l'accumulateur 2-L-L => dcaler
les bits dans l'accumulateur 1 de 3 positions vers la droite.
//Sauter au repre de saut SUIV si le dernier bit dcal (BI1) gale 1.
11-13
11.2
Oprations de rotation
11.2.1
Description
Les oprations de rotation permettent deffectuer la rotation bit par bit vers la gauche ou vers la
droite du contenu entier de laccumulateur 1 (voir aussi Registres de la CPU). Ces oprations
dclenchent des fonctions similaires aux oprations de dcalage. Toutefois, les positions
binaires libres sont remplies avec ltat de signal des bits qui ont t dcals hors de
laccumulateur.
Le nombre de bits de rotation est prcis dans linstruction de rotation mme ou est pris dans
loctet de poids faible du mot de poids faible de laccumulateur 2. Selon lopration, la rotation
seffectue via le bit BI1 du mot dtat. Le bit BI0 du mot dtat est remis 0.
Vous disposez des oprations de rotation suivantes :
11-14
RLD
RRD
RLDA
RRDA
11.2.2
RLD
Formats
RLD
RLD <nombre>
Oprande
Type de donnes
Description
<nombre>
Description de l'opration
RLD (Rotation vers la gauche d'un double mot)
Cette opration permet de dplacer bit par bit le contenu entier de l'accumulateur vers la
gauche. Les bits librs par la rotation sont remplis avec l'tat de signal des bits qui ont t
dcals hors de l'accumulateur 1. Le bit dcal en dernier est mmoris dans le bit BI1 du mot
d'tat. Le nombre de positions binaires objet de la rotation est prcis soit par l'oprande
<nombre>, soit par une valeur figurant dans l'accumulateur 2-L-L.
RLD <nombre> : Le nombre de bits objet de la rotation est prcis par l'oprande <nombre>.
Des valeurs entre 0 et 32 sont autorises. Les bits d'tat BI0 et DEB sont mis 0 si <nombre>
est suprieur zro. Si <nombre> gale zro, l'opration de rotation s'excute comme une
opration nulle (NOP).
RLD : Le nombre de bits objet de la rotation est prcis par la valeur figurant dans
l'accumulateur
2-L-L. Des valeurs entre 0 et 255 sont autorises. Les bits d'tat BI0 et DEB sont mis 0 si le
contenu de l'accumulateur 2-L-L est suprieur zro. Si le nombre de bits objet de la rotation
gale 0, l'opration de rotation s'excute comme une opration NOP.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
11-15
Exemples
Contenu
ACCU1-H
ACCU1-L
Bit
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1011
1111
0110
0100
0101
1101
0011
1011
0101
Exemple 1
LIST
L
RLD
T
MD2
4
MD8
Explication
//Charger la valeur de MD2 dans l'accumulateur 1.
//Rotation des bits dans l'accumulateur 1 de 4 positions vers la gauche.
//Transfrer le rsultat dans le double mot de mmento MD8.
Exemple 2
LIST
L
L
+3
MD20
RLD
SPP
11-16
SUIV
Explication
//Charger la valeur +3 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur du double mot de mmento MD20 dans l'accumulateur 1.
//Le nombre pour la rotation gale la valeur de l'accumulateur 2-L-L =>
effectuer la rotation des bits dans l'accumulateur 1 de 3 positions vers la
gauche.
//Sauter au repre de saut SUIV si le dernier bit objet de la rotation (BI1)
gale 1.
11.2.3
RRD
Formats
RRD
RRD <nombre>
Oprande
Type de donnes
Description
<nombre>
Description de l'opration
RRD (Rotation vers la droite d'un double mot)
Cette opration permet de dplacer bit par bit le contenu entier de l'accumulateur vers la
droite. Les bits librs par la rotation sont remplis avec l'tat de signal des bits qui ont t
dcals hors de l'accumulateur 1. Le bit dplac en dernier est mmoris dans le bit BI1 du
mot d'tat. Le nombre de bits objet de la rotation est prcis soit par l'oprande , soit par une
valeur figurant dans l'accumulateur 2-L-L.
RRD <nombre> : Le nombre de bits objet de la rotation est prcis par l'oprande <nombre>.
Des valeurs entre 0 et 32 sont autorises. Les bits BI0 et DEB sont mis 0 si <nombre> est
suprieur 0. Si <nombre> gale 0, l'opration de dcalage s'excute comme une opration
NOP.
RRD : Le nombre de bits objet de la rotation est prcis par la valeur figurant dans
l'accumulateur
2-L-L. Des valeurs entre 0 et 255 sont autorises. Si le contenu de l'accumulateur 2-L-L est
suprieur 0, les bits BI0 et DEB sont mis 0. Si le nombre de bits de rotation gale 0,
l'opration de rotation s'excute comme une opration NOP.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
11-17
Exemples
Contenu
ACCU1-H
Bit
31 . . .
..
ACCU1-L
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1011
1011
0101
1111
0110
0100
0101
1101
0011
Exemple 1
LIST
L
RRD
MD2
4
MD8
Explication
//Charger la valeur de MD2 dans l'accumulateur 1.
//Effectuer la rotation des bits dans l'accumulateur 1 de 4 positions vers la
droite.
//Transfrer le rsultat dans le double mot de mmento MD8.
Exemple 2
LIST
L
L
+3
MD20
RRD
SPP
11-18
SUIV
Explication
//Charger la valeur +3 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la
valeur du double mot de mmento MD20 dans l'accumulateur 1.
//Le nombre pour la rotation gale la valeur de l'accumulateur 2-L-L =>
effectuer la rotation des bits dans l'accumulateur 1 de 3 positions vers la
droite.
//Sauter au repre de saut SUIV si le dernier bit objet de la rotation (BI1)
gale 1.
11.2.4
RLDA
Format
RLDA
Description de l'opration
RLDA (Rotation vers la gauche d'un double mot via BI1)
Cette opration permet de dplacer le contenu entier de l'accumulateur 1 d'un bit vers la
gauche via le bit indicateur BI1. Les bits BI0 et DEB sont remis 0.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Contenu
BI1
ACCU1-H
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1011
1011
1110
1100
1000
1011
1010
0111
011X
Bit
ACCU1-L
MD2
SPP
SUIV
Explication
//Charger la valeur de MD2 dans l'accumulateur 1.
//Effectuer la rotation des bits dans l'accumulateur 1 d'une position vers la
gauche via BI1.
//Sauter au repre de saut SUIV si le dernier bit objet de la rotation (BI1)
gale 1.
11-19
11.2.5
RRDA
Format
RRDA
Description de l'opration
RRDA (Rotation vers la droite d'un double mot via BI1)
Cette opration permet de dplacer le contenu entier de l'accumulateur 1 d'un bit vers la droite
via le bit indicateur BI1. Les bits BI0 et DEB sont remis 0.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Contenu
BI1
ACCU1-H
31 . . .
..
..
. . . 16
15 . . .
..
..
...0
0101
1111
0110
0100
0101
1101
0011
1011
X010
1111
1011
0010
0010
1110
1001
1101
Bit
ACCU1-L
MD2
SPP
SUIV
11-20
Explication
//Charger la valeur de MD2 dans l'accumulateur 1.
//Effectuer la rotation des bits dans l'accumulateur 1 d'une position vers la
droite via BI1.
//Sauter au repre de saut SUIV si le dernier bit objet de la rotation (BI1)
gale 1.
12
Oprations de temporisation
12.1
Description
Vous trouverez des informations sur le rglage et la slection de la bonne temporisation sous
"Adresse dune temporisation en mmoire et composants dune temporisation".
Le langage de programmation LIST du logiciel de programmation STEP 7 met les oprations
de temporisation suivantes votre disposition :
FR
Valider temporisation
LC
Remettre temporisation 0
SI
SV
SE
SS
SA
12-1
Oprations de temporisation
12.2
Zone de mmoire
Une zone de mmoire est rserve aux temporisations dans votre CPU. Un mot de 16 bits y
est rserv pour chaque oprande de temporisation. La programmation avec LIST permet
dutiliser jusqu 256 temporisations. Le nombre de mots de temporisation disponibles dans
votre CPU figure dans les caractristiques de la CPU.
Les fonctions suivantes ont accs la zone de mmoire rserve aux temporisations :
oprations de temporisation,
actualisation des mots de temporisation avec une horloge. Cette fonction dcrmente,
ltat de marche (RUN) de la CPU, une valeur donne dune unit dans un intervalle dfini
par la base de temps, et ce, jusqu ce que la valeur de temps soit gale zro.
Valeur de temps
La valeur de temps est contenue sous forme binaire dans les bits 0 9 du mot de
temporisation. Elle dtermine un nombre dunits. Lactualisation de lheure dcrmente la
valeur de temps dune unit dans un intervalle dfini par la base de temps. La dcrmentation
se poursuit jusqu ce que la valeur de temps soit gale zro. Pour charger une valeur de
temps, vous pouvez utiliser le format binaire, hexadcimal ou dcimal cod binaire (DCB). La
plage de temps est comprise entre 0 et 9 990 secondes.
Vous pouvez charger une valeur de temps prdfinie en utilisant lun des deux formats
suivants :
w#16#txyz o
t = base de temps (cest--dire lintervalle de temps ou la rsolution)
xyz = valeur de temps en format dcimal cod binaire (DCB)
S5T#aH_bM_cS_dMS
H (heures), M (minutes), S (secondes) et MS (millisecondes) ;
a, b, c, d sont definies par l'utilisateur
la base de temps est choisie automatiquement et la valeur est arrondie au nombre infrieur le plus
proche avec cette base de temps.
La valeur de temps maximale que vous pouvez indiquer est gale 9 990 secondes ou
2H_46M_30S. Exemples :
S5TIME#4S = 4 secondes
s5t#2h_15m = 2 heures et 15 minutes
S5T#1H_12M_18S = 1 heure, 12 minutes et 18 secondes
12-2
Oprations de temporisation
Base de temps
La base de temps est contenue en code binaire dans les bits 12 et 13 du mot de temporisation.
Elle dtermine quel intervalle la valeur de temps va tre dcrmente. La base de temps
minimale est gale 10 ms ; la base de temps maximale 10 s.
Base
10 ms
100 ms
1s
10 s
00
01
10
11
Les valeurs ne doivent pas excder 2H_46M_30S. Les valeurs prsentant une plage trop
importante ou une trop grande rsolution sont arrondies en fonction des valeurs limites de
plages et de rsolutions. Le format gnral S5TIME a les valeurs limites suivantes pour la
plage et la rsolution :
Rsolution
Plage
0,01
0,1
1
10
10MS
100MS
1S
10S
seconde
seconde
seconde
secondes
9S_990MS
1M_39S_900MS
16M_39S
2H_46M_30S
15...
x x
0 0
0
1
Base de temps
1 seconde
...8 7...
1 0 0
1
2
0 0
...0
1
12-3
Oprations de temporisation
A 4.0 S_IMPULS
t
A 4.0 S_VIMP
t
A 4.0 S_EVERZ
t
A 4.0 S_SEVERZ
t
A 4.0 S_AVERZ
t
Temporisations
Description
S_IMPULS
temporisation sous forme
dimpulsion
S_VIMP
temporisation sous forme
dimpulsion prolonge
S_EVERZ
temporisation sous forme de
retard la monte
S_SEVERZ
temporisation sous forme de
retard la monte mmoris
S_AVERZ
temporisation sous forme de
retard la retombe
La dure maximale pendant laquelle le signal de sortie reste 1 est la mme que
la valeur de temps t programme. Le signal de sortie reste 1 pour une dure
plus courte si le signal dentre passe 0.
Le signal de sortie reste 1 pendant la dure programme, quelle que soit la
dure pendant laquelle le signal dentre reste 1.
12-4
Oprations de temporisation
12.3
FR
Valider temporisation
Format
FR <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Numro de la temporisation ; la
plage dpend de la CPU.
Description de l'opration
FR <temporisation>
Cette opration efface le mmento de front utilis pour dmarrer la temporisation indique si le
RLG passe de 0 1. Le passage du rsultat logique RLG de 0 1 avant une opration de
validation de temporisation FR valide une temporisation.
L'opration Valider temporisation n'est pas obligatoire pour dmarrer une temporisation ni
pour les temporisations normales. Elle sert essentiellement redmarrer une temporisation
en cours. Cela n'est possible que si l'opration de dmarrage continue tre traite avec un
RLG de 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
U
FR
U
L
SI
U
R
U
=
L
E 2.0
T1
E 2.1
S5T#10s
T1
E 2.2
T1
T1
A 4.0
T1
Explication
MW10
12-5
Oprations de temporisation
E 2.1
E 2.2
Raction de la temporisation
12-6
Oprations de temporisation
12.4
Format
L <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Description de l'opration
L <temporisation>
Cette opration charge, comme nombre entier binaire dans l'accumulateur 1-L, la valeur de
temps en cours figurant dans le mot de temporisation indiqu sans la base de temps, et ce
aprs sauvegarde pralable du contenu de l'accumulateur 1 dans l'accumulateur 2.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
12-7
Oprations de temporisation
Exemple
LIST
L
Explication
//Charger dans l'accumulateur 1-L la valeur de temps de la temporisation T1
en format binaire.
T1
Contenu
de l'ACCU 1-L
aprs
l'instruction
L T1
15
14
13
12
11
10
Base de temps
00 = 10 ms
01 = 100 ms
10 = 1 s
11 = 10 s
15
14
13
12
Tous "0"
11
10
T1
Nota
L <temporisation> charge uniquement le code binaire de la valeur de temps en cours dans
l'accumulateur 1-L et non la base de temps. La valeur de temps charge est la valeur initiale
de la temporisation moins le temps qui s'est coul depuis le dmarrage de la fonction de
temporisation.
12-8
Oprations de temporisation
12.5
Format
LC <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Description de l'opration
LC <temporisation>
Cette opration charge, comme nombre DCB dans l'accumulateur 1, la valeur de temps et la
base de temps figurant dans le mot de temporisation indiqu, et ce aprs sauvegarde
pralable du contenu de l'accumulateur 1 dans l'accumulateur 2.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
12-9
Oprations de temporisation
Exemple
LIST
LC
Explication
//Charger dans l'accumulateur 1 la valeur de temps en cours et la base de temps
de la temporisation T1 en format DCB.
T1
Contenu de
l'ACCU 1-L
aprs
l'instruction
LC T1
15
14
13
12
11
10
Base de temps
00 = 10 ms
01 = 100 ms
10 = 1 s
11 = 10 s
15
14
13
Base de temps
00 = 10 ms
01 = 100 ms
10 = 1 s
11 = 10 s
12-10
0
2
12
11
2
2
10
10 Centaines
2
1
10 Dizaines
10 Units
Oprations de temporisation
12.6
Remettre temporisation 0
Format
R <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Description de l'opration
R <temporisation>
Cette opration permet de remettre une temporisation zro et d'effacer la valeur de temps et
la base de temps du mot de temporisation indiqu si le rsultat logique RLG passe de 0 1.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
U
R
Explication
E 2.1
T1
12-11
Oprations de temporisation
12.7
SI
Format
SI <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Numro de la temporisation ; la
plage dpend de la CPU.
Description de l'opration
SI <temporisation>
Cette opration dmarre la temporisation indique si le rsultat logique RLG passe de 0 1.
La dure programme s'coule tant que le RLG gale 1. Si le RLG passe 0 avant que cette
dure n'ait expir, la temporisation s'arrte. Le dmarrage de la temporisation ne s'excute
que si la valeur de temps et la base de temps figurent en format DCB dans l'accumulateur 1-L.
Voir aussi Adresse dune temporisation en mmoire et composants dune temporisation.
Mot d'tat
Ecriture :
12-12
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Oprations de temporisation
Exemple
LIST
U
FR
U
L
SI
U
R
U
=
L
E 2.0
T1
E 2.1
S5T#10s
T1
E 2.2
T1
T1
A 4.0
T1
Explication
T
LC
T
MW10
T1
MW12
Validation
E 2.0
Dmarrage
E 2.1
Mise zro
E 2.2
Temporisation
t
Sortie
A 4.0
Chargement de la
temporisation : L, LC
t = dure programme
12-13
Oprations de temporisation
12.8
SV
Format
SV <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Description de l'opration
SV <temporisation>
Cette opration dmarre la temporisation indique si le rsultat logique RLG passe de 0 1.
La dure programme s'coule mme si le RLG passe entre-temps 0. Si le RLG passe de 0
1 avant que la dure programme n'ait expir, le temps redmarre. La valeur de temps et la
base de temps doivent figurer en format DCB dans l'accumulateur 1-L pour que la
temporisation dmarre.
Voir aussi Adresse dune temporisation en mmoire et composants dune temporisation.
Mot d'tat
Ecriture :
12-14
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Oprations de temporisation
Exemple
LIST
U
FR
U
L
SV
U
R
U
=
L
E 2.0
T1
E 2.1
S5T#10s
T1
E 2.2
T1
T1
A 4.0
T1
Explication
T
LC
T
MW10
T1
MW12
Validation
E 2.0
Dmarrage
E 2.1
Mise zro
E 2.2
Temporisation
t
Sortie
A 4.0
Chargement de la
temporisation : L, LC
t = dure programme
12-15
Oprations de temporisation
12.9
SE
Format
SE <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Numro de la temporisation ; la
plage dpend de la CPU.
Description de l'opration
SE <temporisation>
Cette opration dmarre la temporisation indique si le rsultat logique passe de 0 1. La
dure initiale programme s'coule tant que le RLG gale 1. Si le RLG passe 0 avant que
cette dure n'ait expir, la temporisation s'arrte. Le dmarrage de la temporisation ne
s'excute que si la valeur de temps et la base de temps sont mmorises dans l'accumulateur
1-L en format DCB.
Voir aussi Adresse dune temporisation en mmoire et composants dune temporisation.
Mot d'tat
Ecriture :
12-16
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Oprations de temporisation
Exemple
LIST
U
FR
U
L
SE
U
R
U
=
L
E 2.0
T1
E 2.1
S5T#10s
T1
E 2.2
T1
T1
A 4.0
T1
Explication
T
LC
T
MW10
T1
MW12
Validation
E 2.0
Dmarrage
E 2.1
Mise zro
E 2.2
Temporisation
t
Sortie
A 4.0
Chargement de la
temporisation : L, LC
t = dure programme
12-17
Oprations de temporisation
12.10
Format
SS <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Description de l'opration
SS <temporisation> (Dmarrer temporisation sous forme de retard la monte mmoris)
Cette opration dmarre la temporisation indique si le rsultat logique RLG passe de 0 1.
La dure programme s'coule mme si le RLG passe entre-temps 0. Si le RLG passe de 0
1 avant que cette dure n'ait expir, le temps redmarre. La valeur de temps et la base de
temps doivent figurer en format DCB dans l'accumulateur 1-L pour que la temporisation
dmarre.
Voir aussi Adresse dune temporisation en mmoire et composants dune temporisation.
Mot d'tat
Ecriture :
12-18
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Oprations de temporisation
Exemple
LIST
U
FR
U
L
SS
U
R
U
=
L
E 2.0
T1
E 2.1
S5T#10s
T1
E 2.2
T1
T1
A 4.0
T1
Explication
T
LC
T
MW10
T1
MW12
Validation
E 2.0
Dmarrage
E 2.1
Mise zro
E 2.2
Temporisation
t
Sortie
A 4.0
Chargement de la
temporisation : L, LC
t = dure programme
12-19
Oprations de temporisation
12.11
SA
Format
SA <temporisation>
Oprande
Type de donnes
Zone de mmoire
Description
<temporisation>
TIMER
Numro de la temporisation ; la
plage dpend de la CPU.
Description de l'opration
SA <temporisation>
Cette opration dmarre la temporisation indique si le rsultat logique passe de 1 0. La
dure programme s'coule tant que le RLG gale 0. Si le RLG passe 1 avant que cette
dure n'ait expir, la temporisation s'arrte. La valeur de temps et la base de temps doivent
figurer en format DCB dans l'accumulateur 1-L pour que la temporisation dmarre.
Mot d'tat
Ecriture :
12-20
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Oprations de temporisation
Exemple
LIST
U
FR
U
L
SA
U
R
U
=
L
E 2.0
T1
E 2.1
S5T#10s
T1
E 2.2
T1
T1
A 4.0
T1
Explication
T
LC
T
MW10
T1
MW12
Validation
E 2.0
E 2.1
E 2.2
Temporisation
t
Sortie
A 4.0
Chargement de la
temporisation : L, LC
12-21
Oprations de temporisation
12-22
13
13.1
Description
Les oprations combinatoires sur mots combinent deux mots (16 bits) ou deux doubles mots
(32 bits) bit par bit selon les combinaisons boolennes. Chaque mot ou double mot doit se
trouver dans lun des deux accumulateurs.
Lors de la combinaison de mots, le contenu du mot de poids faible de laccumulateur 2 est
combin au contenu du mot de poids faible de laccumulateur 1. Le rsultat de la combinaison
se substitue lancien contenu du mot de poids faible de laccumulateur 1.
Lors de la combinaison de doubles mots, le contenu de laccumulateur 2 est combin au
contenu de laccumulateur 1. Le rsultat de la combinaison se substitue lancien contenu de
laccumulateur 1.
Le bit du mot d'tat BI1 est mis 1 (BI1 gale 1 si le rsultat est diffrent de zro) comme
rsultat de l'opration.
Vous disposez des oprations combinatoires sur mots suivantes :
UW
OW
XOW
UD
OD
XOD
13-1
13.2
UW
Formats
UW
UW <constante>
Oprande
Type de donnes
Description
<constante>
WORD,
Description de l'opration
UW (ET mot)
Cette opration combine, bit par bit, le contenu de l'accumulateur 1-L au contenu de
l'accumulateur 2-L ou une constante de 16 bits selon la table de vrit ET. C'est uniquement
si les bits correspondants des deux mots combiner sont 1 que le bit dans le mot de rsultat
sera 1. Le rsultat est rang dans l'accumulateur 1-L. L'accumulateur 1-H et l'accumulateur
2, ainsi que les accumulateurs 3 et 4 pour les CPU quatre accumulateurs, restent inchangs.
Le bit du mot d'tat BI1 est mis 1 (BI1 gale 1 si le rsultat est diffrent de zro) comme
rsultat de l'opration. Les bits d'tat BI0 et DEB sont mis 0.
Mot d'tat
Ecriture :
13-2
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Bit
15 . .
..
..
...0
0101
1001
0011
1011
1111
0110
1011
0101
0101
0000
0011
0001
Exemple 1
LIST
L
L
EW20
EW22
UW
MW 8
Explication
//Charger le contenu de EW20 dans l'accumulateur 1-L.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger le
contenu de EW22 dans l'accumulateur 1-L.
//Combiner, bit par bit, le contenu de l'accumulateur 1-L au contenu de
l'accumulateur 2-L selon la table de vrit ET ; ranger le rsultat dans
l'accumulateur 1-L.
//Transfrer le rsultat dans le mot de mmento MW8.
Exemple 2
LIST
L
UW
EW20
W#16#0FFF
SPP
SUIV
Explication
//Charger le contenu de EW20 dans l'accumulateur 1-L.
//Combiner les bits de l'accumulateur 1-L au profil binaire de la constante
de 16 bits (0000_1111_1111_1111) selon la table de vrit ET ; ranger le rsultat
dans l'accumulateur 1-L.
//Sauter au repre de saut SUIV si le rsultat est diffrent de 0 (BI1 gale 1).
13-3
13.3
OW
Formats
OW
OW <constante>
Oprande
Type de donnes
Description
<constante>
WORD,
Description de l'opration
OW (OU mot)
Cette opration combine, bit par bit, le contenu de l'accumulateur 1-L au contenu de
l'accumulateur 2-L ou une constante de 16 bits selon la table de vrit OU. C'est uniquement
si au moins un des bits correspondants des deux mots combiner est 1 que le bit dans le
mot de rsultat sera 1. Le rsultat est rang dans l'accumulateur 1-L. L'accumulateur 1-H et
l'accumulateur 2, ainsi que les accumulateurs 3 et 4 pour les CPU quatre accumulateurs,
restent inchangs. Le bit du mot d'tat BI1 est mis 1 (BI1 gale 1 si le rsultat est diffrent de
zro) comme rsultat de l'opration. Les bits d'tat BI0 et DEB sont mis 0.
Mot d'tat
Ecriture :
13-4
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Bit
15 . .
..
..
...0
0101
0101
0011
1011
1111
0110
1011
0101
1111
0111
1011
1111
Exemple 1
LIST
L
EW20
L
EW22
OW
MW8
Explication
//Charger le contenu de EW20 dans l'accumulateur 1-L.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger le
contenu de EW22 dans l'accumulateur 1-L.
//Combiner, bit par bit, le contenu de l'accumulateur 1-L au contenu de
l'accumulateur 2-L selon la table de vrit OU ; ranger le rsultat dans
l'accumulateur 1-L.
//Transfrer le rsultat dans le mot de mmento MW8.
Exemple 2
LIST
L
EW20
OW
W#16#0FFF
SPP
SUIV
Explication
//Charger le contenu de EW20 dans l'accumulateur 1-L.
//Combiner les bits de l'accumulateur 1-L au profil binaire de la constante
de 16 bits (0000_1111_1111_1111) selon la table de vrit OU ; ranger le rsultat
dans l'accumulateur 1-L.
//Sauter au repre de saut SUIV si le rsultat est diffrent de 0 (BI1 gale
1).
13-5
13.4
XOW
Formats
XOW
XOW <constante>
Oprande
Type de donnes
Description
<constante>
WORD,
Description de l'opration
XOW (OU exclusif mot)
Cette opration combine, bit par bit, le contenu de l'accumulateur 1-L au contenu de
l'accumulateur 2-L ou une constante de 16 bits selon la table de vrit OU exclusif. C'est
uniquement si exactement un des bits correspondants des deux mots combiner est 1 que
le bit dans le mot de rsultat sera 1. Le rsultat est rang dans l'accumulateur 1-L.
L'accumulateur 1-H et l'accumulateur 2, ainsi que les accumulateurs 3 et 4 pour les CPU
quatre accumulateurs, restent inchangs. Le bit du mot d'tat BI1 est mis 1 (BI1 gale 1 si le
rsultat est diffrent de zro) comme rsultat de l'opration. Les bits d'tat BI0 et DEB sont mis
0.
Vous pouvez galement utiliser la fonction OU exclusif plusieurs fois d'affile. Le RLG global
est alors gal "1", lorsqu'un nombre impair des oprandes interrogs fournit le rsultat "1".
Mot d'tat
Ecriture :
13-6
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Bit
15 . .
..
..
...0
0101
0101
0011
1011
1111
0110
1011
0101
1010
0011
1000
1110
Exemple 1
LIST
L
L
EW20
EW22
XOW
MW8
Explication
//Charger le contenu de EW20 dans l'accumulateur 1-L.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger le
contenu de EW22 dans l'accumulateur 1-L.
//Combiner, bit par bit, le contenu de l'accumulateur 1-L au contenu de
l'accumulateur 2-L selon la table de vrit OU exclusif ; ranger le rsultat
dans l'accumulateur 1-L.
//Transfrer le rsultat dans le mot de mmento MW8.
Exemple 2
LIST
L
XOW
EW20
16#0FFF
SPP
SUIV
Explication
//Charger le contenu de EW20 dans l'accumulateur 1-L.
//Combiner les bits de l'accumulateur 1-L au profil binaire de la constante
de 16 bits (0000_1111_1111_1111) selon la table de vrit OU exclusif ; ranger
le rsultat dans l'accumulateur 1-L.
//Sauter au repre de saut SUIV si le rsultat est diffrent de 0 (BI1 gale
1).
13-7
13.5
UD
Formats
UD
UD <constante>
Oprande
Type de donnes
Description
<constante>
DWORD,
Description de l'opration
UD (ET double mot)
Cette opration combine, bit par bit, le contenu de l'accumulateur 1 au contenu de
l'accumulateur 2 ou une constante de 32 bits selon la table de vrit ET. C'est uniquement si
les bits correspondants des deux doubles mots combiner sont 1 que le bit dans le double
mot de rsultat sera 1. Le rsultat est rang dans l'accumulateur 1. L'accumulateur 2 ainsi
que les accumulateurs 3 et 4 pour les CPU quatre accumulateurs restent inchangs. Le bit
du mot d'tat BI1 est mis 1 (BI1 gale 1 si le rsultat est diffrent de zro) comme rsultat de
l'opration. Les bits d'tat BI0 et DEB sont mis 0.
Mot d'tat
Ecriture :
13-8
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Bit
31 . .
..
..
..
..
..
..
...0
0101
0000
1111
1100
1000
1001
0011
1011
1111
0011
1000
0101
0111
0110
1011
0101
0101
0000
1000
0100
0000
0000
0011
0001
Exemple 1
LIST
L
ED20
L
ED24
UD
MD8
Explication
//Charger le contenu de ED20 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger le
contenu de ED24 dans l'accumulateur 1.
//Combiner, bit par bit, le contenu de l'accumulateur 1 au contenu de
l'accumulateur 2 selon la table de vrit ET ; ranger le rsultat dans
l'accumulateur 1.
//Transfrer le rsultat dans le double mot de mmento MD8.
Exemple 2
LIST
Explication
L
ED 20
//Charger le contenu de ED20 dans l'accumulateur 1.
UD DW#16#0FFF_EF21 //Combiner les bits de l'accumulateur 1 au profil binaire de la constante de
32 bits (0000_1111_1111_1111_1110_1111_0010_0001) selon la table de vrit
ET ; ranger le rsultat dans l'accumulateur 1.
SPP SUIV
//Sauter au repre de saut SUIV si le rsultat est diffrent de 0 (BI1 gale
1).
13-9
13.6
OD
Formats
OD
OD <constante>
Oprande
Type de donnes
Description
<constante>
DWORD,
Description de l'opration
OD (OU double mot)
Cette opration combine, bit par bit, le contenu de l'accumulateur 1 au contenu de
l'accumulateur 2 ou une constante de 32 bits selon la table de vrit OU. C'est uniquement si
au moins un des bits correspondants des deux doubles mots combiner est 1 que le bit
dans le double mot de rsultat sera 1. Le rsultat est rang dans l'accumulateur 1.
L'accumulateur 2 ainsi que les accumulateurs 3 et 4 pour les CPU quatre accumulateurs
restent inchangs. Le bit du mot d'tat BI1 est mis 1 (BI1 gale 1 si le rsultat est diffrent de
zro) comme rsultat de l'opration. Les bits d'tat BI0 et DEB sont mis 0.
Mot d'tat
Ecriture :
13-10
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Bit
31 . .
..
..
..
..
..
..
...0
0101
0000
1111
1100
1000
0101
0011
1011
1111
0011
1000
0101
0111
0110
1011
0101
1111
0011
1111
1101
1111
0111
1011
1111
Exemple 1
LIST
L
ED20
L
ED24
OD
MD8
Explication
//Charger le contenu de ED20 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger
le contenu de ED24 dans l'accumulateur 1.
//Combiner, bit par bit, le contenu de l'accumulateur 1 au contenu de
l'accumulateur 2 selon la table de vrit OU ; ranger le rsultat dans
l'accumulateur 1.
//Transfrer le rsultat dans le double mot de mmento MD8.
Exemple 2
LIST
L
ED20
OD
DW#16#0FFF_EF21
SPP
SUIV
Explication
//Charger le contenu de ED20 dans l'accumulateur 1.
//Combiner les bits de l'accumulateur 1 au profil binaire de la constante
de 32 bits (0000_1111_1111_1111_1110_1111_0010_0001) selon la table de
vrit OU ; ranger le rsultat dans l'accumulateur 1.
//Sauter au repre de saut SUIV si le rsultat est diffrent de 0 (BI1
gale 1).
13-11
13.7
XOD
Formats
XOD
XOD <constante>
Oprande
Type de donnes
Description
<constante>
DWORD,
Description de l'opration
XOD (OU exclusif double mot)
Cette opration combine, bit par bit, le contenu de l'accumulateur 1 au contenu de
l'accumulateur 2 ou une constante de 32 bits selon la table de vrit OU exclusif. C'est
uniquement si exactement un des bits correspondants des deux doubles mots combiner est
1 que le bit dans le double mot de rsultat sera 1. Le rsultat est rang dans l'accumulateur
1. L'accumulateur 2 ainsi que les accumulateurs 3 et 4 pour les CPU quatre accumulateurs
restent inchangs. Le bit du mot d'tat BI1 est mis 1 (BI1 gale 1 si le rsultat est diffrent de
zro) comme rsultat de l'opration. Les bits d'tat BI0 et DEB sont mis 0.
Vous pouvez galement utiliser la fonction OU exclusif plusieurs fois d'affile. Le RLG global
est alors gal "1", lorsqu'un nombre impair des oprandes interrogs fournit le rsultat "1".
Mot d'tat
Ecriture :
13-12
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemples
Bit
31 . .
..
..
..
..
..
..
...0
0101
0000
1111
1100
1000
0101
0011
1011
1111
0011
1000
0101
0111
0110
1011
0101
1010
0011
0111
1001
1111
0011
1000
1110
Exemple 1
LIST
L
L
ED20
ED24
XOD
MD8
Explication
//Charger le contenu de ED20 dans l'accumulateur 1.
//Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger le
contenu de ED24 dans l'accumulateur 1.
//Combiner, bit par bit, le contenu de l'accumulateur 1 au contenu de
l'accumulateur 2 selon la table de vrit OU exclusif ; ranger le rsultat dans
l'accumulateur 1.
//Transfrer le rsultat dans le double mot de mmento MD8.
Exemple 2
LIST
L
XOD
SPP
ED20
DW#16#0FFF_EF2
1
SUIV
Explication
//Charger le contenu de ED20 dans l'accumulateur 1.
//Combiner les bits de l'accumulateur 1 au profil binaire de la constante
de 32 bits (0000_1111_1111_1111_1111_1110_0010_0001) selon la table de
vrit OU exclusif ; ranger le rsultat dans l'accumulateur 1.
//Sauter au repre de saut SUIV si le rsultat est diffrent de 0 (BI1
gale 1).
13-13
13-14
14
14.1
Description
Les oprations suivantes permettent de traiter le contenu dun ou plusieurs accumulateurs ou
registres dadresse :
TAK
PUSH
PUSH
POP
POP
ENT
LEAVE
INC
DEC
+AR1
+AR2
BLD
NOP 0
Opration nulle
NOP 1
Opration nulle
14-1
14.2
TAK
Format
TAK
Description de l'opration
TAK (Permuter accumulateur 1 et accumulateur 2)
Cette opration permet de permuter le contenu de l'accumulateur 1 et celui de l'accumulateur
2. L'opration s'excute sans tenir compte des bits du mot d'tat ni influer sur eux. Les
contenus des accumulateurs 3 et 4 ne sont pas modifis (CPU avec quatre accumulateurs).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
MW10
MW12
>I
SPB
SUIV:
SUIV
TAK
-I
T
MW14
Explication
//Charger le contenu du mot de mmento MW10 dans l'accumulateur 1-L.
//Charger le contenu de l'accumulateur 1-L dans l'accumulateur 2-L. Charger
le contenu du mot de mmento MW12 dans l'accumulateur 1-L.
//Vrifier si l'accumulateur 2-L (MW10) est plus grand que l'accumulateur
1-L (MW12).
//Sauter au repre de saut SUIV si l'accumulateur 2 (MW10) est plus grand
que l'accumulateur 1 (MW12).
//Permuter le contenu de l'accumulateur 1 et celui de l'accumulateur 2.
//Soustraire le contenu de l'accumulateur 1-L du contenu de l'accumulateur
2-L.
//Transfrer le rsultat (= valeur plus grande moins la valeur plus petite)
dans MW14.
Contenu
ACCU 1
ACCU 2
<MW12>
<MW10>
<MW10>
<MW12>
14-2
14.3
PUSH
Format
PUSH
Description de l'opration
PUSH (Accumulateur 1 dans accumulateur 2)
Cette opration copie le contenu complet de l'accumulateur 1 dans l'accumulateur 2 sans
modifier l'accumulateur 1. L'opration s'excute sans tenir compte des bits du mot d'tat ni
influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
PUSH
MW10
Explication
//Charger le contenu du mot de mmento MW10 dans l'accumulateur 1.
//Copier le contenu total de l'accumulateur 1 dans l'accumulateur 2.
Contenu
ACCU 1
<MW10>
<X>
<MW10>
<MW10>
ACCU 2
14-3
14.4
Format
PUSH
Description de l'opration
PUSH (CPU avec quatre accumulateurs)
Cette opration copie le contenu de l'accumulateur 3 dans l'accumulateur 4, le contenu de
l'accumulateur 2 dans l'accumulateur 3 et le contenu de l'accumulateur 1 dans l'accumulateur
2. L'accumulateur 1 n'est pas modifi. L'opration s'excute sans tenir compte des bits du mot
d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
PUSH
MW10
Explication
//Charger le contenu du mot de mmento MW10 dans l'accumulateur 1.
//Copier le contenu total de l'accumulateur 1 dans l'accumulateur 2, le contenu
de l'accumulateur 2 dans l'accumulateur 3 et le contenu de l'accumulateur 3
dans l'accumulateur 4.
Contenu
ACCU 1
ACCU 2
ACCU 3
ACCU 4
valeur A
valeur B
valeur C
valeur D
valeur A
valeur A
valeur B
valeur C
14-4
14.5
POP
Format
POP
Description de l'opration
POP (CPU avec deux accumulateurs)
Cette opration copie le contenu complet de l'accumulateur 2 dans l'accumulateur 1 sans
modifier l'accumulateur 2. L'opration s'excute sans tenir compte des bits du mot d'tat ni
influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
T
MD10
POP
T
MD14
Explication
//Transfrer le contenu de l'accumulateur 1 (= valeur A) dans le double mot
de mmento MD10.
//Copier le contenu total de l'accumulateur 2 dans l'accumulateur 1.
//Transfrer le contenu de l''accumulateur 1 (= valeur B) dans le double mot
de mmento MD14.
Contenu
ACCU 1
ACCU 2
valeur A
valeur B
valeur B
valeur B
14-5
14.6
POP
Format
POP
Description de l'opration
POP (CPU avec quatre accumulateurs)
Cette opration copie le contenu de l'accumulateur 2 dans l'accumulateur 1, le contenu de
l'accumulateur 3 dans l'accumulateur 2 et le contenu de l'accumulateur 4 dans l'accumulateur
3. L'accumulateur 4 n'est pas modifi. L'opration s'excute sans tenir compte des bits du mot
d'tat ni influer sur eux.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
T
MD10
POP
MD14
Explication
//Transfrer le contenu de l'accumulateur 1 (= valeur A) dans le double mot
de mmento MD10.
//Copier le contenu de l'accumulateur 2 dans l'accumulateur 1, le contenu de
l'accumulateur 3 dans l'accumulateur 2 et le contenu de l'accumulateur 4 dans
l'accumulateur 3.
//Transfrer le contenu de l'accumulateur 1 (= valeur B) dans le double mot
de mmento MD14.
Contenu
ACCU 1
ACCU 2
ACCU 3
ACCU 4
valeur A
valeur B
valeur C
valeur D
valeur B
valeur C
valeur D
valeur D
14-6
14.7
ENT
Format
ENT
Description de l'opration
ENT (Entrer dans pile accumulateur)
Cette opration copie le contenu de l'accumulateur 3 dans l'accumulateur 4 et le contenu de
l'accumulateur 2 dans l'accumulateur 3. En programmant l'opration ENT directement avant
une opration de chargement, vous pouvez sauvegarder un rsultat intermdiaire dans
l'acccumulateur 3.
Exemple
LIST
L
DBD0
DBD4
+R
L
DBD8
ENT
L
-R
DBD12
/R
14.8
DBD16
Explication
//Charger la valeur (nombre virgule flottante) contenue dans le double mot
de donnes DBD0 dans l'accumulateur 1.
//Copier la valeur de l'accumulateur 1 dans l'accumulateur 2. Charger la valeur
(nombre virgule flottante) contenue dans le double mot de donnes DBD4 dans
l'accumulateur 1.
//Additionner les contenus des accumulateurs 1 et 2 (nombres virgule
flottante IEEE de 32 bits) et sauvegarder le rsultat dans l'accumulateur 1.
//Copier la valeur de l'accumulateur 1 dans l'accumulateur 2 et celle du double
mot de donnes DBD8 dans l'accumulateur 1.
//Copier le contenu de l'accumulateur 3 dans l'accumulateur 4. Copier le
contenu de l'accumulateur 2 (rsultat intermdiaire) dans l'accumulateur 3.
//Charger la valeur du double mot de donnes DBD12 dans l'accumulateur 1.
//Soustraire le contenu de l'accumulateur 1 du contenu de l'accumulateur 2
et sauvegarder le rsultat dans l'accumulateur 1. Copier le contenu de
l'accumulateur 3 dans l'accumulateur 2 et le contenu de l'accumulateur 4 dans
l'accumulateur 3.
//Diviser le contenu de l'accumulateur 2 (DBD0 + DBD4) par le contenu de
l'accumulateur 1 (DBD8 - DBD12) et sauvegarder le rsultat dans
l'accumulateur 1.
//Transfrer le rsultat (accumulateur 1) dans le double mot de donnes DBD16.
LEAVE
Format
LEAVE
Description de l'opration
LEAVE (Quitter pile accumulateur)
Cette opration copie le contenu de l'accumulateur 3 dans l'accumulateur 2 et le contenu de
l'accumulateur 4 dans l'accumulateur 3. Si vous programmez l'opration LEAVE directement
avant une opration de dcalage ou de rotation qui combine les accumulateurs, LEAVE agit
comme une opration arithmtique. Les contenus des accumulateurs 1 et 4 restent
inchangs.
Langage LIST pour SIMATIC S7-300/400
A5E00706961-01
14-7
14.9
INC
Format
INC <entier, 8 bits>
Oprande
Type de donnes
Description
<entier, 8 bits>
Constante
(entier, 8 bits)
Description de l'opration
INC <entier, 8 bits> (Incrmenter accumulateur 1-L-L)
Cette opration additionne l'entier de 8 bits indiqu au contenu de l'accumulateur 1-L-L et
sauvegarde le rsultat dans l'accumulateur 1-L-L. L'accumulateur 1-L-H, l'accumulateur 1-H et
l'accumulateur 2 restent inchangs. L'opration s'excute sans tenir compte des bits du mot
d'tat ni influer sur eux.
Attention
Ces oprations ne conviennent pas aux oprations arithmtiques (16 ou 32 bits), car elles
neffectuent pas de report de loctet de poids faible du mot de poids faible de laccumulateur
1 dans loctet de poids fort du mot de poids faible de laccumulateur. Vous devez utiliser +I
ou +D pour les oprations arithmtiques (16 ou 32 bits).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
INC
MB22
1
MB22
14-8
Explication
//Charger la valeur de MB22.
//Incrmenter d'1 laccumulateur 1 (MB 22), sauvegarder le rsultat dans
l'accumulateur 1-L-L.
//Retransfrer le contenu de l'accumulateur 1-L-L (rsultat) dans l'octet de
mmento MB22.
14.10
DEC
Format
DEC <entier, 8 bits>
Oprande
Type de donnes
Description
<entier, 8 bits>
Constante (entier, 8
bits)
Description de l'opration
DEC <entier, 8 bits> (Dcrmenter accumulateur 1-L-L)
Cette opration soustrait l'entier de 8 bits indiqu du contenu de l'accumulateur 1-L-L et
sauvegarde le rsultat dans l'accumulateur 1-L-L. L'accumulateur 1-L-H, l'accumulateur 1-H et
l'accumulateur 2 restent inchangs. L'opration s'excute sans tenir compte des bits du mot
d'tat ni influer sur eux.
Attention
Ces oprations ne conviennent pas aux oprations arithmtiques (16 ou 32 bits), car elles
neffectuent pas de report de loctet de poids faible du mot de poids faible de laccumulateur
1 dans loctet de poids fort du mot de poids faible de laccumulateur. Vous devez utiliser +I
ou +D pour les oprations arithmtiques (16 ou 32 bits).
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple
LIST
L
DEC
MB250
1
MB250
Explication
//Charger la valeur de MB250.
//Dcrmenter d'1 laccumulateur 1-L-L, sauvegarder le rsultat dans
l'accumulateur 1-L-L.
//Retransfrer le contenu de l'accumulateur 1-L- L (rsultat) dans l'octet de
mmento MB250.
14-9
14.11
AR1
Formats
+AR1
+AR1 <P#octet.bit>
Oprande
Type de donnes
Description
<P#octet.bit>
Constante pointeur
Description de l'opration
+AR1 (Additionner au registre d'adresse 1)
Cette opration ajoute au contenu du registre d'adresse 1 (AR1) le dcalage prcis soit dans
l'instruction soit dans l'accumulateur 1-L. Le nombre entier de 16 bits est tout d'abord tendu
24 bits (en tenant compte du signe), puis additionn aux 24 bits de poids faible (partie de
l'adresse relative) du registre d'adresse 1. Les bits 24, 25 et 26 qui identifient la zone dans
AR1 restent inchangs. Cette opration s'excute sans tenir compte des bits du mot d'tat ni
influer sur eux.
+AR1 : Le nombre entier de 16 bits qui doit tre additionn au contenu du registre d'adresse 1
correspond la valeur contenue dans l'accumulateur 1-L. Les valeurs comprises entre -32768
et +32767 sont autorises.
+AR1 <P#octet.bit> : Le dcalage qui doit tre additionn correspond l'oprande
<P#octet.bit>.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple 1
LIST
L
+AR1
+300
Explication
//Charger la valeur dans l'accumulateur 1-L.
//Additionner l'accumulateur 1-L (entier de 16 bits) au registre d'adresse 1.
Exemple 2
LIST
+AR1
14-10
P#300
Explication
//Additionner le dcalage 300.0 au registre d'adresse 1.
14.12
AR2
Formats
+AR2
+AR2 <P#octet.bit>
Oprande
Type de donnes
Description
<P#octet.bit>
Constante pointeur
Description de l'opration
+AR2 (Additionner au registre d'adresse 2)
Cette opration ajoute au contenu du registre d'adresse 2 (AR2) le dcalage prcis soit dans
l'instruction soit dans l'accumulateur 1-L. Le nombre entier de 16 bits est tout d'abord tendu
24 bits (en tenant compte du signe), puis additionn aux 24 bits de poids faible (partie de
l'adresse relative) du registre d'adresse 2. Les bits 24, 25 et 26 qui identifient la zone dans
AR2 restent inchangs. Cette opration s'excute sans tenir compte des bits du mot d'tat ni
influer sur eux.
+AR2 : Le nombre entier de 16 bits qui doit tre additionn au contenu du registre d'adresse 2
correspond la valeur contenue dans l'accumulateur 1-L. Les valeurs comprises entre -32768
et +32767 sont autorises.
+AR2 <P#octet.bit> : Le dcalage qui doit tre additionn correspond l'oprande
<P#octet.bit>.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
Exemple 1
LIST
L
+AR2
+300
Explication
//Charger la valeur dans l'accumulateur 1-L.
//Additionner l'accumulateur 1-L (entier de 16-bits) au registre d'adresse 2.
Exemple 2
LIST
+AR2
P#300.0
Explication
//Additionner le dcalage 300.0 au registre d'adresse 2.
14-11
14.13
BLD
Format
BLD <nombre>
Oprande
Description
<nombre>
Description de l'opration
BLD <nombre> (Composition d'image ; opration nulle)
Cette opration n'excute pas de fonction et n'influe pas sur les bits du mot d'tat. Elle sert la
composition dimage graphique de la console de programmation. Elle est automatiquement
gnre lorsqu'un programme CONT ou LOG est affich en LIST. L'oprande <nombre>
identifie l'opration BLD, il est gnr par la console de programmation.
Mot d'tat
Ecriture :
14.14
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
NOP 0
Opration nulle
Format
NOP 0
Description de l'opration
NOP 0 (Opration NOP avec l'oprande 0)
Cette opration n'excute aucune fonction et n'influe pas sur les bits du mot d'tat. Le code
d'opration contient un profil binaire de 16 zros. L'opration ne revt d'importance que pour
la console de programmation lorsqu'un programme est affich.
Mot d'tat
Ecriture :
14-12
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
14.15
NOP 1
Opration nulle
Format
NOP 1
Description de l'opration
NOP 1 (Opration NOP avec l'oprande 1)
Cette opration n'excute aucune fonction et n'influe pas sur les bits du mot d'tat. Le code
d'opration contient un profil binaire de 16 uns. L'opration ne revt d'importance que pour la
console de programmation lorsqu'un programme est affich.
Mot d'tat
Ecriture :
RB
BI1
BI0
DEB
DM
OU
ETAT
RLG
/PI
14-13
14-14
A.1
Description
Combinaison sur
bits
Affectation
Combinaison sur
bits
*D
*D
Fonction sur
nombres entiers
*I
*I
Fonction sur
nombres entiers
*R
*R
Fonction sur
nombres virgule
flottante
/D
/D
Fonction sur
nombres entiers
/I
/I
Fonction sur
nombres entiers
/R
/R
Fonction sur
nombres virgule
flottante
?D
?D
Comparaison
?I
?I
Comparaison
?R
?R
Comparaison
Fonction sur
nombres entiers
+AR1
+AR1
Accumulateurs
+AR2
+AR2
Accumulateurs
+D
+D
Fonction sur
nombres entiers
+I
+I
Fonction sur
nombres entiers
+R
+R
Fonction sur
nombres virgule
flottante
ABS
ABS
Fonction sur
nombres virgule
flottante
ACOS
ACOS
Fonction sur
A-1
Description
ASIN
ASIN
Fonction sur
nombres virgule
flottante
ATAN
ATAN
Fonction sur
nombres virgule
flottante
AUF
OPN
Blocs de donnes
BE
BE
Gestion
d'excution de
programme
Fin de bloc
BEA
BEU
Gestion
d'excution de
programme
BEB
BEC
Gestion
d'excution de
programme
BLD
BLD
Accumulateurs
BTD
BTD
Conversions
BTI
BTI
Conversions
CALL
CALL
Gestion
d'excution de
programme
Appel de bloc
CALL
CALL
Gestion
d'excution de
programme
Appel de multi-instance
CALL
CALL
Gestion
d'excution de
programme
CC
CC
Gestion
d'excution de
programme
CLR
CLR
Combinaison sur
bits
Mettre RLG 0
COS
COS
Fonction sur
nombres virgule
flottante
Fonction sur
nombres entiers
DEC
DEC
Accumulateurs
DTB
DTB
Conversions
DTR
DTR
Conversions
ENT
ENT
Chargement/
Transfert
EXP
EXP
Fonction sur
nombres virgule
flottante
FN
FN
Combinaison sur
bits
Front descendant
A-2
Description
FP
FP
Combinaison sur
bits
Front montant
FR
FR
Compteurs
FR
FR
Temporisations
Valider temporisation
Fonction sur
nombres entiers
INC
INC
Accumulateurs
INVD
INVD
Conversions
INVI
INVI
Conversions
ITB
ITB
Conversions
ITD
ITD
Conversions
Accumulateurs
Charger
L STW
L STW
Chargement/
Transfert
Temporisations
Compteurs
L DBLG
L DBLG
Blocs de donnes
L DBNO
L DBNO
Blocs de donnes
L DILG
L DILG
Blocs de donnes
L DINO
L DINO
Blocs de donnes
LAR1
LAR1
Chargement/
Transfert
LAR1
LAR1
Chargement/
Transfert
LAR1
LAR1
Chargement/
Transfert
LAR2
LAR2
Chargement/
Transfert
LAR2
LAR2
Chargement/
Transfert
LC
LC
Compteurs
LC
LC
Temporisations
LEAVE
LEAVE
Accumulateurs
LN
LN
Fonction sur
nombres virgule
flottante
LOOP
LOOP
Sauts
Boucle de programme
A-3
Description
MCR(
MCR(
Gestion
d'excution de
programme
)MCR
)MCR
Gestion
d'excution de
programme
MCRA
MCRA
Gestion
d'excution de
programme
MCRD
MCRD
Gestion
d'excution de
programme
MOD
MOD
Fonction sur
nombres entiers
NEGD
NEGD
Conversions
NEGI
NEGI
Conversions
NEGR
NEGR
Conversions
NOP 0
NOP 0
Accumulateurs
Opration nulle
NOP 1
NOP 1
Accumulateurs
Opration nulle
NOT
NOT
Combinaison sur
bits
Ngation du RLG
Combinaison sur
bits
OU
O(
O(
Combinaison sur
bits
OU d'une expression
OD
OD
Combinaison sur
mots
ON
ON
Combinaison sur
bits
OU NON
ON(
ON(
Combinaison sur
bits
OW
OW
Combinaison sur
mots
POP
POP
Accumulateurs
POP
POP
POP
Accumulateurs
POP
PUSH
PUSH
Accumulateurs
PUSH
PUSH
Accumulateurs
Combinaison sur
bits
Mettre 0
Compteurs
Temporisations
Fonction sur
nombres virgule
flottante
RLD
RLD
Dcalage/Rotation
A-4
Description
RLDA
RLDA
Dcalage/Rotation
RND
RND
Conversions
Arrondir l'entier
RND
RND
Conversions
RND+
RND+
Conversions
RRD
RRD
Dcalage/Rotation
RRDA
RRDA
Dcalage/Rotation
Combinaison sur
bits
Mettre 1
Compteurs
SA
SF
Temporisations
SAVE
SAVE
Combinaison sur
bits
SE
SD
Temporisations
SET
SET
Combinaison sur
bits
Mettre 1
SI
SP
Temporisations
SIN
SIN
Fonction sur
nombres virgule
flottante
SLD
SLD
Dcalage/Rotation
SLW
SLW
Dcalage/Rotation
SPA
JU
Sauts
Saut inconditionnel
SPB
JC
Sauts
SPBB
JCB
Sauts
SPBI
JBI
Sauts
Saut si RB est 1
SPBIN
JNBI
Sauts
Saut si RB est 0
SPBN
JCN
Sauts
SPBNB
JNB
Sauts
SPL
JL
Sauts
SPM
JM
Sauts
Saut si moins
SPMZ
JMZ
Sauts
SPN
JN
Sauts
Saut si diffrent de 0
SPO
JO
Sauts
SPP
JP
Sauts
Saut si plus
SPPZ
JPZ
Sauts
SPS
JOS
Sauts
Saut si DM est 1
SPU
JUO
Sauts
Saut si illicite
SPZ
JZ
Sauts
Saut si gal 0
SQR
SQR
Fonction sur
nombres virgule
flottante
SQRT
SQRT
Fonction sur
nombres virgule
flottante
SRD
SRD
Dcalage/Rotation
A-5
Description
SRW
SRW
Dcalage/Rotation
SS
SS
Temporisations
SSD
SSD
Dcalage/Rotation
SSI
SSI
Dcalage/Rotation
SV
SE
Temporisations
Chargement/
Transfert
Transfrer
T STW
T STW
Chargement/
Transfert
TAD
CAD
Conversions
TAK
TAK
Accumulateurs
TAN
TAN
Fonction sur
nombres virgule
flottante
TAR
CAR
Chargement/
Transfert
TAR1
TAR1
Chargement/
Transfert
TAR1
TAR1
Chargement/
Transfert
TAR1
TAR1
Chargement/
Transfert
TAR2
TAR2
Chargement/
Transfert
TAR2
TAR2
Chargement/
Transfert
TAW
CAW
Conversions
TDB
CDB
Blocs de donnes
TRUNC
TRUNC
Conversions
Combinaison sur
bits
ET
U(
A(
Combinaison sur
bits
ET d'une expression
UC
UC
Gestion
d'excution de
programme
UD
AD
Combinaison sur
mots
ET double mot
UN
AN
Combinaison sur
bits
ET NON
UN(
AN(
Combinaison sur
bits
UW
AW
Combinaison sur
mots
Combinaison sur
bits
OU exclusif
X(
X(
Combinaison sur
bits
A-6
Description
XN
XN
Combinaison sur
bits
OU NON exclusif
XN(
XN(
Combinaison sur
bits
XOD
XOD
Combinaison sur
mots
XOW
XOW
Combinaison sur
mots
ZR
CD
Compteurs
Dcrmenter
ZV
CU
Compteurs
Incrmenter
A-7
A.2
Description
Combinaison sur
bits
Affectation
Combinaison sur
bits
*D
*D
Fonction sur
nombres entiers
*I
*I
Fonction sur
nombres entiers
*R
*R
Fonction sur
nombres virgule
flottante
/D
/D
Fonction sur
nombres entiers
/I
/I
Fonction sur
nombres entiers
/R
/R
Fonction sur
nombres virgule
flottante
?D
?D
Comparaison
?I
?I
Comparaison
?R
?R
Comparaison
Fonction sur
nombres entiers
+AR1
+AR1
Accumulateurs
+AR2
+AR2
Accumulateurs
+D
+D
Fonction sur
nombres entiers
+I
+I
Fonction sur
nombres entiers
+R
+R
Fonction sur
nombres virgule
flottante
Combinaison sur
bits
ET
A(
U(
Combinaison sur
bits
ET d'une expression
ABS
ABS
Fonction sur
nombres virgule
flottante
ACOS
ACOS
Fonction sur
nombres virgule
flottante
AD
UD
Combinaison sur
mots
ET double mot
A-8
Description
AN
UN
Combinaison sur
bits
ET NON
AN(
UN(
Combinaison sur
bits
ASIN
ASIN
Fonction sur
nombres virgule
flottante
ATAN
ATAN
Fonction sur
nombres virgule
flottante
AW
UW
Combinaison sur
mots
BE
BE
Gestion
d'excution de
programme
Fin de bloc
BEC
BEB
Gestion
d'excution de
programme
BEU
BEA
Gestion
d'excution de
programme
BLD
BLD
Accumulateurs
BTD
BTD
Conversions
BTI
BTI
Conversions
CAD
TAD
Conversions
CALL
CALL
Gestion
d'excution de
programme
Appel de bloc
CALL
CALL
Gestion
d'excution de
programme
Appel de multi-instance
CALL
CALL
Gestion
d'excution de
programme
CAR
TAR
Chargement/
Transfert
CAW
TAW
Chargement/
Transfert
CC
CC
Gestion
d'excution de
programme
CD
ZR
Compteurs
Dcrmenter
CDB
TDB
Blocs de donnes
CLR
CLR
Combinaison sur
bits
Mettre RLG 0
COS
COS
Fonction sur
nombres virgule
flottante
CU
ZV
Compteurs
Incrmenter
A-9
Description
Fonction sur
nombres entiers
DEC
DEC
Accumulateurs
DTB
DTB
Conversions
DTR
DTR
Conversions
ENT
ENT
Chargement/
Transfert
EXP
EXP
Fonction sur
nombres virgule
flottante
FN
FN
Combinaison sur
bits
Front descendant
FP
FP
Combinaison sur
bits
Front montant
FR
FR
Compteurs
FR
FR
Temporisations
Valider temporisation
Fonction sur
nombres entiers
INC
INC
Accumulateurs
INVD
INVD
Conversions
INVI
INVI
Conversions
ITB
ITB
Conversions
ITD
ITD
Conversions
JBI
SPBI
Sauts
Saut si RB est 1
JC
SPB
Sauts
JCB
SPBB
Sauts
JCN
SPBN
Sauts
JL
SPL
Sauts
JM
SPM
Sauts
Saut si moins
JMZ
SPMZ
Sauts
JN
SPN
Sauts
Saut si diffrent de 0
JNB
SPBNB
Sauts
JNBI
SPBIN
Sauts
Saut si RB est 0
JO
SPO
Sauts
JOS
SPS
Sauts
Saut si DM est 1
JP
SPP
Sauts
Saut si plus
JPZ
SPPZ
Sauts
JU
SPA
Sauts
Saut inconditionnel
JUO
SPU
Sauts
Saut si illicite
JZ
SPZ
Sauts
Saut si gal 0
Accumulateurs
Charger
L STW
L STW
Chargement/
Transfert
A-10
Description
Temporisations
Compteurs
L DBLG
L DBLG
Blocs de donnes
L DBNO
L DBNO
Blocs de donnes
L DILG
L DILG
Blocs de donnes
L DINO
L DINO
Blocs de donnes
LAR1
LAR1
Chargement/
Transfert
LAR1
LAR1
Chargement/
Transfert
LAR1
LAR1
Chargement/
Transfert
LAR2
LAR2
Chargement/
Transfert
LAR2
LAR2
Chargement/
Transfert
LC
LC
Compteurs
LC
LC
Temporisations
LEAVE
LEAVE
Accumulateurs
LN
LN
Fonction sur
nombres virgule
flottante
LOOP
LOOP
Sauts
Boucle de programme
MCR(
MCR(
Gestion
d'excution de
programme
)MCR
)MCR
Gestion
d'excution de
programme
MCRA
MCRA
Gestion
d'excution de
programme
MCRD
MCRD
Gestion
d'excution de
programme
MOD
MOD
Fonction sur
nombres entiers
NEGD
NEGD
Conversions
A-11
Description
NEGI
NEGI
Conversions
NEGR
NEGR
Conversions
NOP 0
NOP 0
Accumulateurs
Opration nulle
NOP 1
NOP 1
Accumulateurs
Opration nulle
NOT
NOT
Combinaison sur
bits
Ngation du RLG
Combinaison sur
bits
OU
O(
O(
Combinaison sur
bits
OU d'une expression
OD
OD
Combinaison sur
mots
ON
ON
Combinaison sur
bits
OU NON
ON(
ON(
Combinaison sur
bits
OPN
AUF
Blocs de donnes
OW
OW
Combinaison sur
mots
POP
POP
Accumulateurs
POP
POP
POP
Accumulateurs
POP
PUSH
PUSH
Accumulateurs
PUSH
PUSH
Accumulateurs
Combinaison sur
bits
Mettre 0
Compteurs
Temporisations
Fonction sur
nombres virgule
flottante
RLD
RLD
Dcalage/Rotation
RLDA
RLDA
Dcalage/Rotation
RND
RND
Conversions
Arrondir l'entier
RND
RND
Conversions
RND+
RND+
Conversions
RRD
RRD
Dcalage/Rotation
RRDA
RRDA
Dcalage/Rotation
Combinaison sur
bits
Mettre 1
Compteurs
SAVE
SAVE
Combinaison sur
bits
SD
SE
Temporisations
A-12
Description
SE
SV
Temporisations
SET
SET
Combinaison sur
bits
Mettre 1
SF
SA
Temporisations
SIN
SIN
Fonction sur
nombres virgule
flottante
SLD
SLD
Dcalage/Rotation
SLW
SLW
Dcalage/Rotation
SP
SI
Temporisations
SQR
SQR
Fonction sur
nombres virgule
flottante
SQRT
SQRT
Fonction sur
nombres virgule
flottante
SRD
SRD
Dcalage/Rotation
SRW
SRW
Dcalage/Rotation
SS
SS
Temporisations
SSD
SSD
Dcalage/Rotation
SSI
SSI
Dcalage/Rotation
Chargement/
Transfert
Transfrer
T STW
T STW
Chargement/
Transfert
TAK
TAK
Accumulateurs
TAN
TAN
Fonction sur
nombres virgule
flottante
TAR1
TAR1
Chargement/
Transfert
TAR1
TAR1
Chargement/
Transfert
TAR1
TAR1
Chargement/
Transfert
TAR2
TAR2
Chargement/
Transfert
TAR2
TAR2
Chargement/
Transfert
TRUNC
TRUNC
Conversions
UC
UC
Gestion
d'excution de
programme
Combinaison sur
bits
OU exclusif
X(
X(
Combinaison sur
bits
XN
XN
Combinaison sur
bits
OU NON exclusif
A-13
Description
XN(
XN(
Combinaison sur
bits
XOD
XOD
Combinaison sur
mots
XOW
XOW
Combinaison sur
mots
A-14
Exemples de programmation
B.1
Applications pratiques
Chacune des oprations LIST dclenche une fonction prcise. En combinant ces oprations
dans un programme, vous pouvez excuter une grande varit de tches dautomatisation.
Vous trouvez dans la suite quelques exemples dapplications pratiques des oprations LIST :
Commande d'un tapis roulant l'aide d'oprations de combinaison sur bits
Dtection du sens de dplacement d'un tapis roulant l'aide d'oprations de combinaison
sur bits
Gnration d'une priode d'horloge l'aide d'oprations de temporisation
Surveillance de l'espace de stockage l'aide l'aide d'oprations de comptage et de
comparaison
Calculs l'aide d'oprations arithmtiques sur nombres entiers
Rglage de la dure de chauffage d'un four
Oprations utilises
Abrviation
Allemande
Description
UW
ET mot
OW
OU mot
ZV, ZR
Compteurs
Dcrmenter, Incrmenter
S, R
Mettre 1, Mettre 0
NOT
Ngation du RLG
FP
Front montant
+I
/I
*I
>=I, <=I
Comparaison
U, UN
ET, ET NON
O, ON
OU, OU NON
Affectation
INC
Accumulateurs
Incrmenter accumulateur 1
BE, BEB
L, T
Chargement/Transfert
Charger, Transfrer
SV
Temporisations
B-1
Exemples de programmation
B.2
Capteur S5
MOTEUR_MAR
S1
S2
O Marche
O Arrt
S3
S4
O Marche
O Arrt
Adresse absolue
Mnmonique
Table de mnmoniques
Bouton-poussoir Marche
E 1.1
S1
E 1.1
S1
Bouton-poussoir Arrt
E 1.2
S2
E 1.2
S2
Bouton-poussoir Marche
E 1.3
S3
E 1.3
S3
Bouton-poussoir Arrt
E 1.4
S4
E 1.4
S4
Capteur
E 1.5
S5
E 1.5
S5
Moteur
A 4.0
MOTEUR_MAR
A 4.0
MOTEUR_MAR
Programme absolue
Programme symbolique
E 1.1
S1
E 1.3
S3
A 4.0
MOTOR_MAR
E 1.2
S2
E 1.4
S4
ON E 1.5
ON S5
B-2
A 4.0
MOTOR_MAR
Exemples de programmation
E
E
A
E
O
ON
R
E 1.4
E 1.5
A 4.0
1.1
1.3
4.0
1.2
Explication
//Appuyer sur lun des deux boutons Marche fait dmarrer le moteur.
//Appuyer sur lun des deux boutons Arrt ou ouvrir le contact ouverture
la fin du tapis arrte le moteur.
BPE2
BPE1
A 4.1
Adresse absolue
Mnmonique
Table de mnmoniques
Barrire photolectrique 1
E 1.1
BPE1
E 0.0
BPE1
Barrire photolectrique 2
E 0.0
BPE2
E 0.1
BPE2
DROITE
A 4.0
DROITE
GAUCHE
A 4.1
GAUCHE
Mmento de cadence 1
M 0.0
MP1
M 0.0 MP1
Mmento de cadence 2
M 0.1
MP2
M 0.1 MP2
B-3
Exemples de programmation
Programme absolue
Programme symbolique
E 0.0
FP
M 0.0
FP
MP1
UN
E 0.1
UN
BPE 2
A 4.1
GAUCHE
E 0.1
BPE 2
FP
M 0.1
FP
MP2
UN
E 0.0
UN
BPE 1
A 4.0
DROITE
UN
E 0.0
UN
BPE 1
UN
E 0.1
UN
BPE 2
A 4.0
DROITE
A 4.1
GAUCHE
BPE 1
E 0.0
FP
UN
S
U
M
E
A
E
0.0
0.1
4.1
0.1
FP
UN
S
UN
M
E
A
E
0.1
0.0
4.0
0.0
UN
R
R
E 0.1
A 4.0
A 4.1
B-4
Explication
//Si ltat de signal lentre E 0.0 passe de 0 1 (front montant) et si
ltat de signal lentre E 0.1 est simultanment 0, le paquet sur le tapis
se dplace vers la gauche.
1 (front montant) et si
0, le paquet sur le tapis
photolectriques est
entre les deux barrires.
Exemples de programmation
B.3
Gnrateur dhorloge
Vous pouvez utiliser, pour produire un signal qui se rpte priodiquement, un gnrateur
dimpulsions dhorloge ou un relais clignotant. On trouve souvent des gnrateurs dhorloge
dans les systmes de signalisation qui commandent le clignotement des lampes de
signalisation.
Dans lautomate S7-300, vous pouvez raliser la gnration dimpulsions dhorloge en utilisant
le traitement command par horloge dans des blocs dorganisation spciaux. Toutefois,
lexemple prsent dans le programme LIST suivant illustre lutilisation de fonctions de
temporisation pour gnrer une priode dhorloge.
Programme LIST pour gnrer une priode dhorloge (rapport dimpulsion 1:1)
LIST
U
L
SV
NOT
BEB
L
INC
T
T1
S5T#250ms
T1
MB100
1
MB100
Explication
//Lorsque la temporisation T1 sest coule,
//charger la valeur de temps 250 ms dans T1 et
//dmarrer T1 sous forme dimpulsion prolonge.
//Inverser le rsultat logique.
//Mettre fin au bloc en cours si la temporisation sexcute.
//Aprs lexcution de la temporisation, charger le contenu de loctet de
mmento MB100,
//incrmenter le contenu de 1 et
//transfrer le rsultat dans loctet de mmento MB100.
1
0
250 ms
La temporisation est redmarre une fois le temps coul. De ce fait, linterrogation de ltat
de signal par linstruction UN T1 ne dlivre ltat de signal 1 que brivement.
La figure montre comment se prsente le bit RLG invers.
1
0
250 ms
Le bit RLG est gal 0 toutes les 250 ms. Lopration BEB ne met alors pas fin au traitement
du bloc, mais incrmente le contenu de loctet de mmento MB100 de 1.
Le contenu de loctet de mmento MB100 change toutes les 250 ms de la manire suivante :
0 -> 1 -> 2 -> 3 -> ... -> 254 -> 255 -> 0 -> 1 ...
B-5
Exemples de programmation
Frquence en hertz
Dure
M 100.0
2.0
0.5 s
M 100.1
1.0
1s
M 100.2
0.5
2s
(1 s marche / 1 s arrt)
M 100.3
0.25
4s
(2 s marche / 2 s arrt)
M 100.4
0.125
8s
(4 s marche / 4 s arrt)
M 100.5
0.0625
16 s
(8 s marche / 8 s arrt)
M 100.6
0.03125
32 s
M 100.7
0.015625
64 s
Programme LIST
LIST
U
M10.0
U
=
M100.1
A 4.0
Explication
//M 10.0 = 1 en cas derreur. La lampe derreur clignote la frquence de 1
Hz en cas derreur.
B-6
Cycle
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
250
250
250
250
250
250
250
250
250
250
10
250
11
250
12
250
Exemples de programmation
T
M 101.1
1
0
Temps
0
B-7
Exemples de programmation
B.4
Tableau d'affichage
Espace de
stockage vide
Espace de
stockage non
vide
(A 12.0)
(A 12.1)
E 12.0
Paquets arrivants
Espace de
stockage
plein 50%
(A 15.2)
Espace de
stockage
temporaire
pour 100
paquets
Tapis roulant 1
Barrire photolectrique 1
B-8
Espace de
stockage
plein 90%
Espace de
stockage
plein
(A15.3)
E 12.1
(A15.4)
Paquets sortants
Tapis roulant 2
Barrire photolectrique 2
Exemples de programmation
Programme LIST pour activer les lampes de signalisation sur un tableau daffichage
LIST
U
ZV
E 0.0
Z1
U
ZR
E 0.1
Z1
UN
=
Z1
A 4.0
U
=
Z1
A 4.1
L
L
<=I
=
50
Z1
L
>=I
=
L
L
>=I
=
A 4.2
Explication
//Chaque impulsion gnre par la barrire photolectrique 1
//augmente dun la valeur du compteur Z1, comptant ainsi le nombre de paquets
transports dans lespace de stockage.
//
//Chaque impulsion gnre par la barrire photolectrique 2
//diminue dun la valeur du compteur Z1, comptant ainsi le nombre de paquets
quittant lespace de stockage.
//
//Si la valeur du compteur est 0,
//la lampe de signalisation Espace de stockage vide sallume.
//
//Si elle est diffrente de 0,
//la lampe de signalisation Espace de stockage non vide sallume.
//
90
A 4.3
Z1
100
A 4.4
B-9
Exemples de programmation
B.5
Programme LIST
LIST
L
L
EW0
DB5.DBW3
+I
E 0.1
+15
*I
MW2
/I
B-10
MD4
Explication
//Charger dans laccumulateur 1 la valeur figurant dans le mot dentre EW0.
//Charger dans laccumulateur 1 la valeur du mot de donnes global DBW3 du DB5.
Lancien contenu de laccumulateur 1 est dplac dans laccumulateur 2.
//Additionner le contenu des mots de poids faible des accumulateurs 1 et 2 et
ranger le rsultat dans le mot de poids faible de laccumulateur 1. Le contenu
de laccumulateur 2 et le mot de poids fort de laccumulateur 1 restent
inchangs.
//Charger dans laccumulateur 1 la valeur constante +15. Lancien contenu de
laccumulateur 1 est dplac dans laccumulateur 2.
//Multiplier le contenu du mot de poids faible de laccumulateur 2 par le contenu
du mot de poids faible de laccumulateur 1 et ranger le rsultat dans
laccumulateur 1. Le contenu de laccumulateur 2 reste inchang.
//Charger dans laccumulateur 1 la valeur figurant dans le mot de mmento MW2.
Lancien contenu de laccumulateur 1 est dplac dans laccumulateur 2.
//Diviser le contenu du mot de poids faible de laccumulateur 2 par le contenu
du mot de poids faible de laccumulateur 1 et ranger le rsultat dans
laccumulateur 1. Le contenu de laccumulateur 2 reste inchang.
//Transfrer le rsultat final dans le double mot de mmento MD4. Le contenu
des deux accumulateurs reste inchang.
Exemples de programmation
B.6
Four
4
Chaleur
A 4.0
7....
...0
XXXX
0001
EB0
7...
1001
...0
0001
EB1
Bits
EW0
Octets
Composant du systme
Adresse absolue
Bouton-poussoir Marche
E 0.7
E 1.0 E 1.3
E 1.4 E 1.7
E 0.0 E 0.3
Dclenchement du chauffage
A 4.0
Programme LIST
LIST
U
=
BEB
T1
A 4.0
L
UW
EW0
W#16#0FFF
OW
W#16#2000
U
SV
E 0.7
T1
Explication
//Si la temporisation sexcute,
//dclencher le chauffage.
//Si la temporisation sexcute, arrter le traitement ici. Ainsi, la
temporisation T1 nest pas redmarre si le bouton-poussoir Marche est enfonc.
//Masquer les bits dentre E 0.4 E 0.7 (cest--dire les remettre 0). La
valeur de temps en secondes se trouve dans le mot de poids faible de
laccumulateur 1 en format DCB.
//Affecter la base de temps en secondes dans les bits 12 et 13 du mot de poids
faible de laccumulateur 1.
//Dmarrer la temporisation T1 sous forme dimpulsion prolonge lorsque le
bouton-poussoir est enfonc.
B-11
Exemples de programmation
B-12
Transmission de paramtres
Les paramtres d'un bloc sont transmis sous forme de valeur. Pour les blocs fonctionnels, une
copie de la valeur du paramtre effectif est utilise dans le DB d'instance au sein du bloc
appel. Pour les fonctions, une copie de la valeur effective se trouve dans la pile des donnes
locales. Les pointeurs ne sont pas copis. Avant l'appel, les valeurs INPUT sont copies dans
le DB d'instance ou la pile L. Aprs l'appel, les valeurs OUTPUT sont recopies dans les
variables. Seules des copies sont utilises au sein du bloc appel. Les instructions LIST
requises se trouvent dans le bloc appelant et restent transparentes l'utilisateur.
Nota
Si des mmentos, entres, sorties, priphries d'entre ou de sortie sont utiliss en tant
qu'oprandes effectifs dans une fonction, ils sont traits de manire diffrente que les autres
oprandes. Leur actualisation n'est effectue au moyen de la pile L, mais de manire directe.
Important
Lors de la programmation du bloc appel, veillez complter les paramtres dclars comme
OUTPUT, sans quoi les valeurs fournies seront alatoires ! Pour les blocs fonctionnels, on
obtiendrait la valeur du DB d'instance inscrite lors du dernier appel, pour les fonctions, la
valeur alatoire se trouvant dans la pile L.
Tenez compte des points suivants :
Evitez l'utilisation d'instructions de mise 1 et de remise 0, car elles dpendent du RLG. Lorsque
le RLG prend la valeur 0, c'est la valeur alatoire qui est conserve !
Lorsque vous effectuez un saut au sein du bloc, faites attention de ne pas sauter une ligne dans
laquelle sont dcrits des paramtres OUTPUT. Tenez galement compte de BEB et de l'effet des
instructions MCR.
C-1
Transmission de paramtres
C-2
Index
)
) ............................................................... 1-14
*
*D............................................................... 7-12
*I ................................................................. 7-5
*R................................................................. 8-7
/
/D ...................................................... 7-13, 7-14
/I .......................................................... 7-6, 7-7
/R ................................................................. 8-9
+
+ ................................................................. 7-9
+AR1........................................................ 14-10
+AR2........................................................ 14-11
+D .............................................................. 7-10
+I ................................................................. 7-3
+R ......................................................... 8-3, 8-4
=
= ............................................................... 1-16
==D .............................................................. 2-3
==I................................................................ 2-2
==R .............................................................. 2-4
A
Abrviations allemandes (SIMATIC) ........... A-1
Abrviations anglaises (internationales)...... A-8
ABS............................................................ 8-11
ACOS......................................................... 8-20
Activer la zone MCR................................ 10-22
Additionner accumulateur 1 au registre
d'adresse 1........................................... 14-10
Additionner accumulateur 1 au registre
d'adresse 2........................................... 14-11
Additionner accumulateurs 1 et 2
(entiers de 16 bits) ................................... 7-3
Additionner accumulateurs 1 et 2
(entiers de 32 bits) ................................. 7-10
Additionner accumulateurs 1 et 2
(rels VF IEEE 32 bits)............................. 8-3
Additionner constante entire
(16 et 32 bits) ........................................... 7-8
Adresse dune temporisation en mmoire
et composants dune temporisation....... 12-2
Affectation .................................................. 1-16
Appel de bloc ............................................. 10-7
Appel de bloc conditionnel....................... 10-15
Appel de bloc inconditionnel .................... 10-16
Appeler FB ................................................. 10-8
Appeler FC............................................... 10-10
Appeler multi-instance ............................. 10-14
Appeler SFB............................................. 10-11
Appeler SFC ............................................ 10-13
Appeler un bloc dans une bibliothque ... 10-14
Applications pratiques................. B-1, B-2, B-5,
............................................. B-8, B-10, B-11
Arc cosinus d'un nombre virgule flottante
(32 bits) .................................................. 8-20
Arc sinus d'un nombre virgule flottante
(32 bits) .................................................. 8-19
Arc tangente d'un nombre virgule flottante
(32 bits) .................................................. 8-21
Arrondir l'entier........................................ 3-15
Arrondir l'entier infrieur.......................... 3-18
Arrondir l'entier suprieur........................ 3-17
Arrondir par troncature............................... 3-16
ASIN........................................................... 8-19
ATAN ......................................................... 8-21
AUF.............................................................. 5-2
B
BE .............................................................. 10-2
BEA............................................................ 10-4
BEB............................................................ 10-3
BLD .......................................................... 14-12
Boucle de programme ............................... 6-20
BTD.............................................................. 3-4
BTI ............................................................... 3-2
Index-1
Index
D
C
CALL........................................10-5, 10-6, 10-7
Carr d'un nombre virgule flottante
(32 bits) .................................................. 8-12
CC............................................................ 10-15
Charger........................................................ 9-2
Charger contenu de l'accumulateur 1
dans registre d'adresse 1......................... 9-5
Charger contenu de l'accumulateur 1
dans registre d'adresse 2......................... 9-7
Charger contenu du registre d'adresse 2
dans registre d'adresse 1......................... 9-7
Charger longueur de DB d'instance dans
l'accumulateur 1 ....................................... 5-6
Charger longueur de DB global
dans l'accumulateur 1 .............................. 5-4
Charger mot d'tat dans l'accumulateur 1... 9-4
Charger numro de DB d'instance dans
l'accumulateur 1 ....................................... 5-7
Charger numro de DB global
dans l'accumulateur 1 .............................. 5-5
Charger pointeur de 32 bits dans registre
d'adresse 1.............................................. 9-6
Charger pointeur de 32 bits dans registre
d'adresse 2............................................... 9-8
Charger valeur de comptage en cours
comme entier dans l'accumulateur 1 ....... 4-3
Charger valeur de comptage en cours comme
nombre DCB dans l'accumulateur 1 ........ 4-4
Charger valeur de temps en cours comme
nombre DCB dans l'accumulateur 1 ...... 12-9
Charger valeur de temps en cours comme
nombre entier dans l'accumulateur 1..... 12-7
CLR............................................................ 1-21
Comparer entiers de 16 bits ........................ 2-2
Comparer entiers de 32 bits ........................ 2-3
Comparer rels de 32 bits ........................... 2-4
Complment 1 d'entier de 16 bits............. 3-8
Complment 1 d'entier de 32 bits............. 3-9
Complment 2 d'entier de 16 bits........... 3-10
Complment 2 d'entier de 32 bits........... 3-11
Convertir DCB en entier de 16 bits.............. 3-2
Convertir DCB en entier de 32 bits.............. 3-4
Convertir entier de 16 bits en DCB.............. 3-3
Convertir entier de 16 bits en entier
de 32 bits ................................................. 3-5
Convertir entier de 32 bits en DCB.............. 3-6
Convertir entier de 32 bits en rel
(VF IEEE 32 bits) ..................................... 3-7
COS ........................................................... 8-17
Cosinus d'un angle comme nombres
virgule flottante (32 bits)...................... 8-17
Index-2
-D ............................................................... 7-11
DEC ........................................................... 14-9
Dcalage vers la droite d'un double mot
(32 bits) ................................................ 11-12
Dcalage vers la droite d'un entier
avec signe (16 bits) ................................ 11-2
Dcalage vers la droite d'un entier
avec signe (32 bits) ................................ 11-4
Dcalage vers la droite d'un mot (16 bits) . 11-8
Dcalage vers la gauche d'un double mot
(32 bits) ................................................ 11-10
Dcalage vers la gauche d'un mot
(16 bits) .................................................. 11-6
Dcrmenter ................................................ 4-9
Dcrmenter accumulateur 1-L-L .............. 14-9
Dsactiver la zone MCR .......................... 10-23
Diviser accumulateur 2 par accumulateur 1
(entiers de 16 bits) ................................... 7-6
Diviser accumulateur 2 par accumulateur 1
(entiers de 32 bits) ................................. 7-13
Diviser accumulateur 2 par accumulateur 1
(rels VF IEEE 32 bits)............................. 8-9
DTB.............................................................. 3-6
DTR.............................................................. 3-7
E
ENT............................................................ 14-7
Entrer dans pile accumulateur ................... 14-7
ET ................................................................ 1-3
ET avant OU ................................................ 1-9
ET double mot (32 bits) ............................. 13-8
ET d'une expression .................................. 1-10
ET mot (16 bits) ......................................... 13-2
ET NON ....................................................... 1-4
ET NON d'une expression ......................... 1-11
Evaluation des bits du mot d'tat (oprations
sur nombres virgule flottante)................ 8-2
Evaluation des bits du mot d'tat dans
les oprations sur nombres entiers .......... 7-2
Exemple
Oprations arithmtiques sur nombres
entiers .................................................B-10
Oprations combinatoires sur mots .......B-11
Oprations de comptage
et de comparaison ................................B-8
Exemples
Oprations combinatoires sur bits............B-2
Exemples de programmation.......................B-1
EXP............................................................ 8-14
Index
FB
appel ............................................. 10-8, 10-9
FC
appel .................................................... 10-10
Fermer la parenthse d'une expression .... 1-14
Fin de bloc ................................................. 10-2
Fin de bloc conditionnelle .......................... 10-3
Fin de bloc inconditionnelle ....................... 10-4
Fin de zone MCR..................................... 10-21
FN .............................................................. 1-23
FP .............................................................. 1-25
FR ....................................................... 4-2, 12-5
Front descendant.............................. 1-23, 1-24
Front monant ............................................. 1-25
I
-I ................................................................. 7-4
INC............................................................. 14-8
Incrmenter.................................................. 4-8
Incrmenter accumulateur 1-L-L ............... 14-8
Initialiser compteur ...................................... 4-7
INVD ............................................................ 3-9
Inverser nombre virgule flottante
(VF IEEE 32 bits) ................................... 3-12
INVI.............................................................. 3-8
ITB ............................................................... 3-3
ITD ............................................................... 3-5
L
L ................................................. 4-3, 9-2, 12-7
L DBLG ........................................................ 5-4
L DBNO ....................................................... 5-5
L DILG ......................................................... 5-6
L DINO......................................................... 5-7
L STW.......................................................... 9-4
LAR1............................................................ 9-5
LAR1 <d>..................................................... 9-6
LAR1 AR2.................................................... 9-7
LAR2............................................................ 9-7
LAR2 <d>..................................................... 9-8
LC ............................................4-4, 12-9, 12-10
LEAVE ....................................................... 14-7
LN .............................................................. 8-15
Logarithme naturel d'un nombre
virgule flottante (32 bits)...................... 8-15
LOOP......................................................... 6-20
M
MCR......................................................... 10-21
MCR(.............................................10-19, 10-20
MCR)........................................................ 10-21
MCRA ...................................................... 10-22
MCRD ...................................................... 10-23
Mettre 0................................................... 1-17
Mettre 1................................................... 1-18
Mettre RLG 0 .......................................... 1-21
Mettre RLG 1 .......................................... 1-20
MOD..................................................7-15, 7-16
Modifier l'ordre dans l'accumulateur 1
(32 bits) .................................................. 3-14
Modifier l'ordre dans l'accumulateur 1-L
(16 bits) .................................................. 3-13
Multiplier accumulateur 1 par accumulateur 2
(entiers de 16 bits) ................................... 7-5
Multiplier accumulateur 1 par accumulateur 2
(entiers de 32 bits) ................................. 7-12
Multiplier accumulateur 1 par accumulateur 2
(rels VF IEEE 32 bits)............................. 8-7
N
Ngation du RLG ....................................... 1-19
NEGD......................................................... 3-11
NEGI .......................................................... 3-10
NEGR......................................................... 3-12
NOP 0 ...................................................... 14-12
NOP 1 ...................................................... 14-13
NOT ........................................................... 1-19
O
O .......................................................... 1-5, 1-9
O( ......................................................................
............................................................... 1-11
OD.................................................13-10, 13-11
ON................................................................ 1-6
ON( ............................................................ 1-12
Opration de composition d'image
(opration nulle) ................................... 14-12
Opration nulle..............................14-12, 14-13
Oprations arithmtiques sur
nombres flottantes.................................... 8-1
Oprations LIST classes d'aprs
les abrviations allemandes (SIMATIC)...A-1
Oprations LIST classes d'aprs
les abrviations anglaises (internationales)
.................................................................A-8
OPN = AUF .................................................. 5-2
OU................................................................ 1-5
OU double mot (32 bits)........................... 13-10
OU d'une expression ................................. 1-11
Index-3
Index
P
Permuter accumulateur 1 et accumulateur 2
............................................................... 14-2
Permuter DB global et DB d'instance .......... 5-3
Permuter registre d'adresse 1 avec registre
d'adresse 2............................................. 9-11
POP .................................................. 14-5, 14-6
POP
CPU avec deux accumulateurs ............. 14-5
CPU avec quatre accumulateurs ........... 14-6
PUSH................................................ 14-3, 14-4
PUSH
CPU avec deux accumulateurs ............. 14-3
CPU avec quatre accumulateurs ........... 14-4
Q
Quitter pile accumulateur........................... 14-7
R
R .............................................1-17, 4-6, 12-11
-R .......................................................................
.......................................................... 8-5, 8-6
Racine carre d'un nombre virgule flottante
(32 bits) .................................................. 8-13
Relais de masquage (Master Control Relay MCR).................................................... 10-17
Remarques importantes sur l'utilisation
de la fonctionnalit MCR...................... 10-18
Remettre compteur zro........................... 4-6
Remettre temporisation 0 ..................... 12-11
Reste de division entire (32 bits) ............. 7-15
RLD............................................... 11-15, 11-16
RLDA ....................................................... 11-19
RND ........................................................... 3-15
RND-.......................................................... 3-18
RND+......................................................... 3-17
Rotation vers la droite de l'accumulateur 1
via BI1 (32 bits) .................................... 11-20
Rotation vers la gauche de l'accumulateur 1
via BI1 (32 bits) .................................... 11-19
Index-4
S
S ........................................................1-18, 4-7
SA .................................................12-20, 12-21
Saut inconditionnel ...................................... 6-3
Saut si <= 0................................................ 6-18
Saut si = 0 .................................................. 6-13
Saut si >= 0................................................ 6-17
Saut si DEB = 1 ......................................... 6-11
Saut si diffrent de 0 .................................. 6-14
Saut si DM = 1 ........................................... 6-12
Saut si illicite .............................................. 6-19
Saut si moins ............................................. 6-16
Saut si plus ................................................ 6-15
Saut si RB = 0............................................ 6-10
Saut si RB = 1.............................................. 6-9
Saut si RLG = 0 ........................................... 6-6
Saut si RLG = 0 avec RB............................. 6-8
Saut si RLG = 1 ........................................... 6-5
Saut si RLG = 1 avec RB............................. 6-7
Saut vers liste .............................................. 6-4
Sauvegarder RLG dans le bit RB .............. 1-22
Sauvegarder RLG dans pile MCR
dbut de zone MCR ............................. 10-19
SAVE ......................................................... 1-22
SE .................................................12-16, 12-17
SET ............................................................ 1-20
SFB
appel..........................................10-11, 10-12
SFC
appel..................................................... 10-13
SI ..................................................12-12, 12-13
SIN ............................................................. 8-16
Sinus d'un angle comme nombres
virgule flottante (32 bits)...................... 8-16
SLD ...............................................11-10, 11-11
SLW ..................................................11-6, 11-7
Soustraire accumulateur 1 d'accumulateur 2
(rels VF IEEE 32 bits)............................. 8-5
Soustraire accumulateur 1 de accumulateur 2
(entiers de 16 bits) ................................... 7-4
Soustraire accumulateur 1 de accumulateur 2
(entiers de 32 bits) ................................. 7-11
SPA.............................................................. 6-3
SPB.............................................................. 6-5
SPBB ........................................................... 6-7
SPBI............................................................. 6-9
SPBIN ........................................................ 6-10
Index
T
T ................................................................. 9-9
T STW........................................................ 9-10
TAD............................................................ 3-14
TAK............................................................ 14-2
TAN............................................................ 8-18
Tangente d'un angle comme nombres
virgule flottante (32 bits)...................... 8-18
TAR............................................................ 9-11
TAR1.......................................................... 9-11
TAR1 <D>.................................................. 9-12
TAR1 AR2.................................................. 9-13
TAR2.......................................................... 9-13
TAR2 <d> .................................................. 9-14
TAW........................................................... 3-13
TDB.............................................................. 5-3
Temporisation sous forme de retard
la monte .......................................... 12-16
Temporisation sous forme de retard
la monte mmorise ....................... 12-18
Temporisation sous forme de retard
la retombe ....................................... 12-20
Temporisation sous forme d'impulsion .... 12-12
Temporisation sous forme d'impulsion
prolonge ............................................. 12-14
Transfrer .................................................... 9-9
Transfrer accumulateur 1 dans mot d'tat9-10
Transfrer registre d'adresse 1 l'adresse
de destination (32 bits)........................... 9-12
Transfrer registre d'adresse 1
dans l'accumulateur 1 ............................ 9-11
Transfrer registre d'adresse 1 dans registre
d'adresse 2............................................. 9-13
U
U ................................................................. 1-3
U( ......................................................................
............................................................... 1-10
UC............................................................ 10-16
UD.....................................................13-8, 13-9
UN................................................................ 1-4
UN(............................................................. 1-11
UW ....................................................13-2, 13-3
V
Valeur absolue d'un nombre
virgule flottante (VF IEEE 32 bits) .......... 8-11
Valeur exponentielle d'un nombre
virgule flottante (32 bits)...................... 8-14
Valider compteur.......................................... 4-2
Valider temporisation ................................. 12-5
Vue d'ensemble ................................... 8-1, B-1
Vue d'ensemble des oprations arithmtiques
sur nombre entiers ................................... 7-1
Vue d'ensemble des oprations combinatoires
sur bits...................................................... 1-1
Vue d'ensemble des oprations combinatoires
sur mots.................................................. 13-1
Vue d'ensemble des oprations de chargement
et de transfert ........................................... 9-1
Vue d'ensemble des oprations
de comparaison........................................ 2-1
Vue d'ensemble des oprations de comptage
................................................................. 4-1
Vue d'ensemble des oprations de conversion
................................................................. 3-1
Vue d'ensemble des oprations de dcalage
............................................................... 11-1
Vue d'ensemble des oprations de gestion
d'excution de programme..................... 10-1
Vue d'ensemble des oprations de rotation
............................................................. 11-14
Vue d'ensemble des oprations de saut...... 6-1
Vue d'ensemble des oprations
de temporisation..................................... 12-1
Vue d'ensemble des oprations sur blocs
de donnes............................................... 5-1
Vue d'ensemble des oprations sur les
accumulateurs ........................................ 14-1
Index-5
Index
X
X ................................................................. 1-7
X( ............................................................... 1-12
XN................................................................ 1-8
XN(............................................................. 1-13
XOD .............................................. 13-12, 13-13
Index-6
Z
ZR ................................................................ 4-9
ZV ................................................................ 4-8