You are on page 1of 272

Oprations combinatoires sur bits Oprations de comparaison Oprations de conversion Oprations de comptage

1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C

SIMATIC Langage LIST pour SIMATIC S7-300/400


Manuel de rfrence

Oprations sur blocs de donnes Oprations de saut Fonctions sur nombres entiers Fonctions sur nombres virgule flottante Oprations de chargement et de transfert Oprations de gestion d'excution de programme Oprations de dcalage et de rotation Oprations de temporisation Oprations combinatoires sur mots Oprations sur les accumulateurs Prsentation de toutes les oprations LIST Exemples de programmation Transmission de paramtres

Ce manuel est livr avec la documentations rfrence : 6ES7810-4CA10-8CW1

05/2010

A5E02790284-01

Mentions lgales Signaltique d'avertissement


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 signifie que la non-application des mesures de scurit appropries entrane la mort ou des blessures graves. ATTENTION signifie que la non-application des mesures de scurit appropries peut entraner la mort ou des blessures graves. PRUDENCE accompagn d un triangle de danger, signifie que la non-application des mesures de scurit appropries peut entraner des blessures lgres. PRUDENCE non accompagn d un triangle de danger, 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.

Personnes qualifies
L appareil/le systme dcrit dans cette documentation ne doit tre manipul que par du personnel qualifi pour chaque tche spcifique. La documentation relative cette tche doit tre observe, en particulier les consignes de scurit et avertissements. Les personnes qualifies sont, en raison de leur formation et de leur exprience, en mesure de reconnatre les risques lis au maniement de ce produit / systme et de les viter.

Utilisation des produits Siemens conforme leur destination


Tenez compte des points suivants: ATTENTION Les produits Siemens ne doivent tre utiliss que pour les cas d'application prvus dans le catalogue et dans la documentation technique correspondante. S'ils sont utiliss en liaison avec des produits et composants d'autres marques, ceux-ci doivent tre recommands ou agrs par Siemens. Le fonctionnement correct et sr des produits suppose un transport, un entreposage, une mise en place, un montage, une mise en service, une utilisation et une maintenance dans les rgles de l'art. Il faut respecter les conditions d'environnement admissibles ainsi que les indications dans les documentations affrentes.

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

Siemens AG Industry Sector Postfach 48 48 90026 NRNBERG ALLEMAGNE

A5E02790284-01 02/2010

Copyright Siemens AG 2010. 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.

Connaissances fondamentales requises


Ce manuel s'adresse aux programmeurs souhaitant laborer des programmes S7 ainsi qu'au personnel charg de la mise en service et de la maintenance. La comprhension du manuel requiert des connaissances gnrales dans le domaine de la technique d'automatisation. Nous supposerons en outre des connaissances dans l'utilisation d'ordinateurs ou autres quipements (par exemple consoles de programmation) analogues au PC et des systmes d'exploitation MS Windows XP, MS Windows Server 2003 ou MS Windows 7.

Domaine de validit du manuel


Le prsent manuel est valable pour le logiciel STEP 7 V5.5.

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.RTF (anglais) ou NORM_TAB.RTF (allemand) de STEP 7.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

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 STEP 7 Connaissances fondamentales avec STEP 7 Getting Started Programmer avec STEP 7 Configuration matrielle et communication dans STEP 7 STEP 7 Pour une transition facile de S5 S7 Langages CONT/LOG/LIST pour SIMATIC S7-300/400 Logiciel systme pour SIMATIC S7-300/400 Fonctions standard et fonctions systme Volume 1 et Volume 2 Manuels de rfrence dcrivant les 6ES7810-4CA10-8CW1 langages de programmation CONT, LOG et LIST de mme que les fonctions standard et les fonctions systme en complment des connaissances fondamentales de STEP 7. Objet Numro de rfrence

Connaissances fondamentales pour 6ES7810-4CA10-8CW0 le personnel technique. Dcrit la marche suivre pour raliser des tches dautomatisation avec STEP 7 et S7-300/400.

STEP 7 Manuels de rfrence sur les

Aides en ligne Aide de STEP 7

Objet

Numro de rfrence

Connaissances fondamentales pour Fait partie du logiciel la programmation ainsi que pour la STEP 7 configuration du matriel avec STEP 7, sous forme daide en ligne. Fait partie du logiciel STEP 7

Aides en ligne contextuelles de Aides de rfrence de LIST/CONT/LOG rfrence Aide de rfrence sur les SFB/SFC Aide de rfrence sur les blocs dorganisation

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

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/

Centre de formation SIMATIC


Nous proposons des cours de formation pour vous faciliter l'apprentissage des automates programmables SIMATIC S7. Veuillez vous adresser votre centre de formation rgional ou au centre principal D 90026 Nuremberg. Internet: http://www.sitrain.com

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Avant-propos

Technical Support
Vous pouvez joindre le support technique pour tous les produits dIndustry Automation. Via le formulaire Web de demande dassistance (Support Request) http://www.siemens.com/automation/support-request

Vous trouvez plus dinformations concernant notre Technical Support sur Internet ladresse suivante : http://www.siemens.com/automation/service

Service & Support sur Internet


En plus de la documentation offerte, vous trouvez la totalit de notre savoir-faire en ligne sur Internet l'adresse suivante : http://www.siemens.com/automation/service&support Vous y trouvez : le bulletin d'informations qui vous fournit constamment les dernires informations sur le produit, les documents dont vous avez besoin l'aide de la fonction de recherche du Support produit, le forum o utilisateurs et spcialistes peuvent changer des informations, votre interlocuteur Industry Automation sur site, des informations sur les rparations, pices de rechange et la consultation.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Sommaire
1 Oprations combinatoires sur bits 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 2 2.1 2.2 2.3 2.4 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 13 Vue d'ensemble des oprations combinatoires sur bits ..............................................................13 U ET .........................................................................................................................................15 UN ET NON ..............................................................................................................................16 O OU .........................................................................................................................................17 ON OU NON .............................................................................................................................18 X OU exclusif ............................................................................................................................19 XN OU NON exclusif.................................................................................................................20 O ET avant OU .........................................................................................................................21 U( ET d'une expression.............................................................................................................22 UN( ET NON d'une expression.................................................................................................23 O( OU d'une expression ...........................................................................................................23 ON( OU NON d'une expression................................................................................................24 X( OU exclusif d'une expression...............................................................................................24 XN( OU NON exclusif d'une expression ...................................................................................25 ) Fermer la parenthse d'une expression .................................................................................25 = Affectation ..............................................................................................................................27 R Mettre 0 ..............................................................................................................................28 S Mettre 1...............................................................................................................................29 NOT Ngation du RLG..............................................................................................................30 SET Mettre RLG 1 .................................................................................................................30 CLR Mettre RLG 0 .................................................................................................................32 SAVE Sauvegarder RLG dans le bit RB...................................................................................33 FN Front descendant ................................................................................................................34 FP Front montant ......................................................................................................................36 39 Vue d'ensemble des oprations de comparaison........................................................................39 ? I Comparer entiers de 16 bits.................................................................................................40 ? D Comparer entiers de 32 bits ...............................................................................................41 ? R Comparer rels de 32 bits ..................................................................................................42 43 Vue d'ensemble des oprations de conversion ...........................................................................43 BTI Convertir DCB en entier de 16 bits ....................................................................................44 ITB Convertir entier de 16 bits en DCB ....................................................................................45 BTD Convertir DCB en entier de 32 bits...................................................................................46 ITD Convertir entier de 16 bits en entier de 32 bits ..................................................................47 DTB Convertir entier de 32 bits en DCB...................................................................................48 DTR Convertir entier de 32 bits en rel (IEEE 754 32 bits)......................................................49 INVI Complment 1 d'entier de 16 bits ..................................................................................50 INVD Complment 1 d'entier de 32 bits.................................................................................51 NEGI Complment 2 d'entier de 16 bits ................................................................................52 NEGD Complment 2 d'entier de 32 bits...............................................................................53 NEGR Inverser nombre virgule flottante (IEEE 754 32 bits) .................................................54 TAW Modifier l'ordre dans l'accumulateur 1-L (16 bits) ............................................................55 TAD Modifier l'ordre dans l'accumulateur 1 (32 bits) ................................................................56

Oprations de comparaison

Oprations de conversion

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Sommaire

3.15 3.16 3.17 3.18 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19

RND Arrondir l'entier ..............................................................................................................57 TRUNC Arrondir par troncature ................................................................................................58 RND+ Arrondir l'entier suprieur............................................................................................59 RND- Arrondir l'entier infrieur...............................................................................................60 61 Vue d'ensemble des oprations de comptage.............................................................................61 FR Valider compteur .................................................................................................................62 L Charger valeur de comptage en cours comme entier dans l'accumulateur 1 .......................63 LC Charger valeur de comptage en cours comme nombre DCB dans l'accumulateur 1 .........64 R Remettre compteur zro.....................................................................................................66 S Initialiser compteur.................................................................................................................67 ZV Incrmenter .........................................................................................................................68 ZR Dcrmenter........................................................................................................................69 71 Vue d'ensemble des oprations sur blocs de donnes ...............................................................71 AUF Ouvrir bloc de donnes......................................................................................................72 TDB Permuter DB global et DB d'instance ...............................................................................73 L DBLG Charger longueur de DB global dans l'accumulateur 1 ..............................................73 L DBNO Charger numro de DB global dans l'accumulateur 1................................................74 L DILG Charger longueur de DB d'instance dans l'accumulateur 1 .........................................74 L DINO Charger numro de DB d'instance dans l'accumulateur 1 ..........................................75 77 Vue d'ensemble des oprations de saut......................................................................................77 SPA Saut inconditionnel............................................................................................................79 SPL Saut vers liste....................................................................................................................80 SPB Saut si RLG est 1..............................................................................................................82 SPBN Saut si RLG est 0 ...........................................................................................................83 SPBB Saut si RLG est 1 avec RB.............................................................................................84 SPBNB Saut si RLG est 0 avec RB ..........................................................................................85 SPBI Saut si RB est 1 ...............................................................................................................86 SPBIN Saut si RB est 0.............................................................................................................87 SPO Saut si DEB est 1 .............................................................................................................88 SPS Saut si DM est 1................................................................................................................89 SPZ Saut si gal 0 .................................................................................................................91 SPN Saut si diffrent de 0.........................................................................................................92 SPP Saut si plus .......................................................................................................................93 SPM Saut si moins....................................................................................................................94 SPPZ Saut si suprieur ou gal 0..........................................................................................95 SPMZ Saut si infrieur ou gal 0 ...........................................................................................96 SPU Saut si illicite .....................................................................................................................97 LOOP Boucle de programme....................................................................................................99

Oprations de comptage

Oprations sur blocs de donnes

Oprations de saut

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Sommaire 1.1 Vue d'ensemble des oprations combinatoires sur bits

Fonctions sur nombres entiers 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12

101

Vue d'ensemble des oprations arithmtiques sur nombre entiers...........................................101 Evaluation des bits du mot d'tat dans les oprations sur nombres entiers..............................102 +I Additionner accumulateurs 1 et 2 (entiers de 16 bits) ........................................................103 -I Soustraire accumulateur 1 de accumulateur 2 (entiers de 16 bits) .....................................104 *I Multiplier accumulateur 1 par accumulateur 2 (entiers de 16 bits)......................................105 /I Diviser accumulateur 2 par accumulateur 1 (entiers de 16 bits) .........................................106 + Additionner constante entire (16, 32 bits)..........................................................................108 +D Additionner accumulateurs 1 et 2 (entiers de 32 bits).......................................................110 -D Soustraire accumulateur 1 de accumulateur 2 (entiers de 32 bits) ...................................111 *D Multiplier accumulateur 1 par accumulateur 2 (entiers de 32 bits) ....................................112 /D Diviser accumulateur 2 par accumulateur 1 (entiers de 32 bits)........................................113 MOD Reste de division entire (32 bits) .................................................................................114 115 Vue d'ensemble des oprations arithmtiques sur nombres virgule flottante ........................115 Evaluation des bits du mot d'tat dans les oprations sur nombres virgule flottante.............116 Oprations de base....................................................................................................................117 +R Additionner accumulateurs 1 et 2 (rels VF IEEE, 32 bits)...............................................117 -R Soustraire accumulateur 1 d'accumulateur 2 (rels VF IEEE, 32 bits)..............................119 *R Multiplier accumulateur 1 par accumulateur 2 (rels VF IEEE, 32 bits) ............................120 /R Diviser accumulateur 2 par accumulateur 1 (rels VF IEEE, 32 bits)................................121 ABS Valeur absolue d'un nombre virgule flottante (VF IEEE, 32 bits) ................................122 Oprations tendues..................................................................................................................123 SQR Carr d'un nombre virgule flottante (32 bits)...............................................................123 SQRT Racine carre d'un nombre virgule flottante (32 bits) ...............................................124 EXP Valeur exponentielle d'un nombre virgule flottante (32 bits) .......................................125 LN Logarithme naturel d'un nombre virgule flottante (32 bits).............................................126 SIN Sinus d'un angle comme nombres virgule flottante (32 bits)........................................127 COS Cosinus d'un angle comme nombres virgule flottante (32 bits) ..................................128 TAN Tangente d'un angle comme nombres virgule flottante (32 bits) ................................129 ASIN Arc sinus d'un nombre virgule flottante (32 bits) ........................................................130 ACOS Arc cosinus d'un nombre virgule flottante (32 bits)...................................................131 ATAN Arc tangente d'un nombre virgule flottante (32 bits) .................................................132 133 Vue d'ensemble des oprations de chargement et de transfert ................................................133 L Charger ................................................................................................................................134 L STW Charger mot d'tat dans l'accumulateur 1 ..................................................................136 LAR1 Charger contenu de l'accumulateur 1 dans registre d'adresse 1 .................................137 LAR1 <D> Charger pointeur de 32 bits dans registre d'adresse 1.........................................138 LAR1 AR2 Charger contenu du registre d'adresse 2 dans registre d'adresse 1....................139 LAR2 Charger contenu de l'accumulateur 1 dans registre d'adresse 2 .................................139 LAR2 <D> Charger pointeur de 32 bits dans registre d'adresse 2.........................................140 T Transfrer ............................................................................................................................141 T STW Transfrer accumulateur 1 dans mot d'tat................................................................142 TAR Permuter registre d'adresse 1 avec registre d'adresse 2 ...............................................143 TAR1 Transfrer registre d'adresse 1 dans l'accumulateur 1 ...............................................143 TAR1 <D> Transfrer registre d'adresse 1 l'adresse de destination (32 bits).....................144 TAR1 AR2 Transfrer registre d'adresse 1 dans registre d'adresse 2 ...................................145 TAR2 Transfrer registre d'adresse 2 dans l'accumulateur 1 ................................................145 TAR2 <D> Transfrer registre d'adresse 2 l'adresse de destination (32 bits).....................146

Fonctions sur nombres virgule flottante 8.1 8.2 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.4.6 8.4.7 8.4.8 8.4.9 8.4.10

Oprations de chargement et de transfert 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 9.10 9.11 9.12 9.13 9.14 9.15 9.16

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Sommaire

10

Oprations de gestion d'excution de programme 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 10.12 10.13 10.14 10.15 10.16 10.17 10.18 10.19

147

Vue d'ensemble des oprations de gestion d'excution de programme ...................................147 BE Fin de bloc.........................................................................................................................148 BEB Fin de bloc conditionnelle ...............................................................................................149 BEA Fin de bloc inconditionnelle ............................................................................................150 CALL Appel de bloc ................................................................................................................151 Appeler FB .................................................................................................................................154 Appeler FC .................................................................................................................................156 Appeler SFB...............................................................................................................................158 Appeler SFC...............................................................................................................................160 Appeler multi-instance................................................................................................................162 Appeler un bloc dans une bibliothque......................................................................................162 CC Appel de bloc conditionnel................................................................................................163 UC Appel de bloc inconditionnel .............................................................................................164 Relais de masquage (Master Control Relay, MCR)...................................................................165 Remarques importantes sur l'utilisation de la fonctionnalit MCR.............................................167 MCR( Sauvegarder RLG dans pile MCR, dbut de zone MCR..............................................168 )MCR Fin de zone MCR..........................................................................................................170 MCRA Activer la zone MCR....................................................................................................171 MCRD Dsactiver la zone MCR .............................................................................................172 173 Oprations de dcalage .............................................................................................................173 Vue d'ensemble des oprations de dcalage ............................................................................173 SSI Dcalage vers la droite d'un entier avec signe (16 bits) ..................................................174 SSD Dcalage vers la droite d'un entier avec signe (32 bits).................................................176 SLW Dcalage vers la gauche d'un mot (16 bits)...................................................................178 SRW Dcalage vers la droite d'un mot (16 bits) .....................................................................180 SLD Dcalage vers la gauche d'un double mot (32 bits)........................................................182 SRD Dcalage vers la droite d'un double mot (32 bits) ..........................................................184 Oprations de rotation................................................................................................................186 Vue d'ensemble des oprations de rotation...............................................................................186 RLD Rotation vers la gauche d'un double mot (32 bits) .........................................................187 RRD Rotation vers la droite d'un double mot (32 bits)............................................................189 RLDA Rotation vers la gauche de l'accumulateur 1 via BI1 (32 bits) .....................................191 RRDA Rotation vers la droite de l'accumulateur 1 via BI1 (32 bits) .......................................192 193 Vue d'ensemble des oprations de temporisation .....................................................................193 Adresse dune temporisation en mmoire et composants dune temporisation .......................194 FR Valider temporisation.........................................................................................................198 L Charger valeur de temps en cours comme nombre entier dans l'accumulateur 1 ..............200 LC Charger valeur de temps en cours comme nombre DCB dans l'accumulateur 1 .............202 R Remettre temporisation 0 .................................................................................................204 SI Temporisation sous forme d'impulsion ...............................................................................205 SV Temporisation sous forme d'impulsion prolonge.............................................................207 SE Temporisation sous forme de retard la monte .............................................................209 SS Temporisation sous forme de retard la monte mmoris ............................................211 SA Temporisation sous forme de retard la retombe ..........................................................213

11

Oprations de dcalage et de rotation 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.1.5 11.1.6 11.1.7 11.2 11.2.1 11.2.2 11.2.3 11.2.4 11.2.5

12

Oprations de temporisation 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 12.10 12.11

10

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Sommaire 1.1 Vue d'ensemble des oprations combinatoires sur bits

13

Oprations combinatoires sur mots 13.1 13.2 13.3 13.4 13.5 13.6 13.7

215

Vue d'ensemble des oprations combinatoires sur mots ..........................................................215 UW ET mot (16 bits) ...............................................................................................................216 OW OU mot (16 bits) ..............................................................................................................218 XOW OU exclusif mot (16 bits) ...............................................................................................220 UD ET double mot (32 bits) ....................................................................................................222 OD OU double mot (32 bits) ...................................................................................................224 XOD OU exclusif double mot (32 bits)....................................................................................226 229 Vue d'ensemble des oprations sur les accumulateurs ............................................................229 TAK Permuter accumulateur 1 et accumulateur 2..................................................................230 PUSH CPU avec deux accumulateurs ...................................................................................231 PUSH CPU avec quatre accumulateurs ..................................................................................232 POP CPU avec deux accumulateurs......................................................................................233 POP CPU avec quatre accumulateurs ...................................................................................234 ENT Entrer dans pile accumulateur........................................................................................235 LEAVE Quitter pile accumulateur ...........................................................................................235 INC Incrmenter accumulateur 1-L-L .....................................................................................236 DEC Dcrmenter accumulateur 1-L-L ..................................................................................237 +AR1 Additionner accumulateur 1 au registre d'adresse 1 ....................................................238 +AR2 Additionner accumulateur 1 au registre d'adresse 2 ....................................................240 BLD Opration de composition d'image (opration nulle) ......................................................241 NOP 0 Opration nulle............................................................................................................241 NOP 1 Opration nulle............................................................................................................242 243 Oprations LIST classes d'aprs les abrviations allemandes (SIMATIC) .............................243 Oprations LIST classes d'aprs les abrviations anglaises (internationales)........................248 253 Vue d'ensemble des exemples de programmation....................................................................253 Exemples : Oprations combinatoires sur bits ..........................................................................254 Exemple : Oprations de temporisation.....................................................................................258 Exemple : Oprations de comptage et de comparaison............................................................261 Exemple : Oprations arithmtiques sur nombres entiers.........................................................263 Exemple : Oprations combinatoires sur mots ..........................................................................264 265 267

14

Oprations sur les accumulateurs 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 14.10 14.11 14.12 14.13 14.14 14.15

Prsentation de toutes les oprations LIST A.1 A.2

Exemples de programmation B.1 B.2 B.3 B.4 B.5 B.6

C Index

Transmission de paramtres

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

11

Sommaire

12

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

1
1.1

Oprations combinatoires sur bits


Vue d'ensemble des oprations combinatoires sur bits

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 UN O ON X XN ET ET NON OU OU NON OU exclusif OU NON exclusif

Les oprations suivantes permettent de combiner des parties de squence combinatoire figurant entre parenthses : U( UN( O( ON( X( XN( ) ET d'une expression ET NON d'une expression OU d'une expression OU NON d'une expression OU exclusif d'une expression OU NON exclusif d'une expression Fermer la parenthse d'une expression

Les oprations suivantes mettent fin une squence combinatoire : = R S Affectation Mettre 0 Mettre 1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

13

Oprations combinatoires sur bits 1.1 Vue d'ensemble des oprations combinatoires sur bits

Les oprations suivantes vous permettent de modifier le rsultat logique RLG : NOT SET CLR SAVE Ngation du RLG Mettre RLG 1 Mettre RLG 0 Sauvegarder RLG dans le bit RB

Les oprations suivantes dtectent les transitions dans le rsultat logique RLG et y ragissent : FN FP Front descendant Front montant

14

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.2 U ET

1.2
Format

ET

U <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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
RB Ecriture : BI1 BI0 DEB DM OU x ETAT x RLG x /PI 1

Exemple
Programme LIST

Schma de circuit relais


Barre d'alimentation

E 1.0

E 1.0 tat de signal 1

Contact fermeture Contact fermeture Bobine

U =

E 1.1 A 4.0

E 1.1 tat de signal 1 A 4.0 tat de signal 1

Montre un contact ferm.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

15

Oprations combinatoires sur bits 1.3 UN ET NON

1.3
Format

UN

ET NON

UN <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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
RB Ecriture : BI1 BI0 DEB DM OU x ETAT x RLG x /PI 1

Exemple
Programme LIST Schma de circuit relais
Barre d'alimentation U E 1.0 E 1.0 Etat de signal 0 E 1.1 Etat de signal 1 A 4.0 Etat de signal 0 Contact fermeture Contact ouverture Bobine

UN =

E 1.1 A 4.0

16

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.4 O OU

1.4
Format

OU

O <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT x RLG x /PI 1

Exemple
Programme LIST Schma de circuit relais
Barre d'alimentation O O = E 1.0 E 1.1 A 4.0 A 4.0 tat de signal 1 Bobine E 1.0 tat de signal 1 Contact fermeture E 1.1 tat de signal 0 Contact fermeture

Montre un contact ferm.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

17

Oprations combinatoires sur bits 1.5 ON OU NON

1.5
Format

ON

OU NON

ON <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT x RLG x /PI 1

Exemple
Programme LIST Schma de circuit relais
Barre d'alimentation O ON = E 1.0 E 1.1 A 4.0
E 1.0 Etat de signal 0 E 1.1 Etat de signal 1 A 4.0 Etat de signal 1 Contact fermeture Contact ouverture Bobine

18

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.6 X OU exclusif

1.6
Format

OU exclusif

X <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT x RLG x /PI 1

Exemple

Programme LIST

Schma de circuit relais


Barre d'alimentation

X X

E 1.0 E 1.1

Contact E 1.0 Contact E 1.1 A 4.0 Bobine

A 4.0

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

19

Oprations combinatoires sur bits 1.7 XN OU NON exclusif

1.7
Format

XN

OU NON exclusif

XN <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT x RLG x /PI 1

Exemple

Programme LIST

Schma de circuit relais


Barre d'alimentation

X XN

E 1.0 E 1.1

Contact E 1.0 Contact E 1.1 A 4.0 Bobine

A 4.0

20

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.8 O ET avant OU

1.8
Format

ET avant OU

Description de l'opration
O
Cette opration excute, selon le principe ET avant OU, la combinaison OU sur des combinaisons ET.

Mot d'tat
RB Ecriture : BI1 BI0 DEB DM OU x ETAT 1 RLG /PI x

Exemple

Programme LIST

Schma de circuit relais Barre d'alimentation

U U O U U

E 0.0 M 10.0

E 0.0 E 0.2

M 10.1

E 0.2 M 0.3

M 10.0 M 0.3

M 10.1

A 4.0

A 4.0 Bobine

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

21

Oprations combinatoires sur bits 1.9 U( ET d'une expression

1.9
Format

U(

ET d'une expression

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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT 1 RLG /PI 0

Exemple

Programme LIST

Schma de circuit relais


Barre d'alimentation

U( O O ) U( O O )

E 0.0 M 10.0

E 0.0 M 10.0

E 0.2 M 10.3

E 0.2 M 10.3

M 10.1

M 10.1

A 4.0

A 4.0 Bobine

22

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.10 UN( ET NON d'une expression

1.10
Format

UN(

ET NON d'une expression

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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT 1 RLG /PI 0

1.11
Format

O(

OU d'une expression

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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT 1 RLG /PI 0

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

23

Oprations combinatoires sur bits 1.12 ON( OU NON d'une expression

1.12
Format

ON(

OU NON d'une expression

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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT 1 RLG /PI 0

1.13
Format

X(

OU exclusif d'une expression

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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT 1 RLG /PI 0

24

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

1.14 XN(

Oprations combinatoires sur bits OU NON exclusif d'une expression

1.14
Format

XN(

OU NON exclusif d'une expression

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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT 1 RLG /PI 0

1.15
Format

Fermer la parenthse d'une expression

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( UN( O( ON( X( XN( ET d'une expression ET NON d'une expression OU d'une expression OU NON d'une expression OU exclusif d'une expression OU NON exclusif d'une expression

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

25

Oprations combinatoires sur bits 1.15 ) Fermer la parenthse d'une expression

Mot d'tat
RB Ecriture : BI1 BI0 DEB DM OU x ETAT 1 RLG x /PI 1

Exemple
Programme LIST Schma de circuit relais
Barre d'alimentation U( O O ) U( O O ) E 0.0 M 10.0 E 0.0 M 10.0

E 0.2 M 10.3

E 0.2 M 10.3

M 10.1

M 10.1

A 4.0

A 4.0 Bobine

26

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

1.15 )

Oprations combinatoires sur bits Fermer la parenthse d'une expression

1.16
Format

Affectation

= <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT x RLG /PI 0

Exemple

Programme LIST
U = E 1.0 A 4.0

Schma de circuit relais


Barre d'alimentation E 1.0

Schma des tats de signaux


E 1.0 A 4.0 1 0 1 0 A 4.0 Bobine

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

27

Oprations combinatoires sur bits 1.17 R Mettre 0

1.17
Format

Mettre 0

R <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT x RLG /PI 0

Exemple
Programme LIST
U S U R E 1.0 E 1.1 A 4.0 E 1.0 A 4.0 E 1.1 A 4.0

Schma de circuit relais


Barre d'alimentation E 1.0 Contact fermeture 1 0 1 0 1 0 Contact ouverture A 4.0 Bobines A 4.0 E 1.1

Schmas des tats de signaux

28

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.18 S Mettre 1

1.18
Format

Mettre 1

S <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire 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 Ecriture : BI1 BI0 DEB DM OU ETAT RLG /PI

Exemple

Programme LIST
U S U R E 1.0 E 1.1 A 4.0 E 1.0 A 4.0 E 1.1 A 4.0

Schma de circuit relais


Barre d'alimentation E 1.0 Contact fermeture 1 0 1 0 1 0 Contact ouverture A 4.0 Bobines A 4.0 E 1.1

Schmas des tats de signaux

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

29

Oprations combinatoires sur bits 1.19 NOT Ngation du RLG

1.19
Format

NOT

Ngation du RLG

NOT

Description de l'opration
NOT
Cette opration inverse le RLG.

Mot d'tat
RB Ecriture : BI1 BI0 DEB DM OU ETAT 1 RLG x /PI -

1.20
Format

SET

Mettre RLG 1

SET

Description de l'opration
SET (Mettre RLG 1)
Cette opration met le RLG l'tat de signal 1.

Mot d'tat
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT 1 RLG 1 /PI 0

30

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.20 SET Mettre RLG 1

Exemple
Programme LIST
SET = M 10.0 = M 15.1 = M 16.0 CLR = M 10.1 = M 10.2 0 0 1 1 1 0

Etat de signal

Rsultat logique (RLG)


1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

31

Oprations combinatoires sur bits 1.20 SET Mettre RLG 1

1.21
Format

CLR

Mettre RLG 0

CLR

Description de l'opration
CLR (Mettre RLG 0)
Cette opration met le RLG l'tat de signal 0.

Mot d'tat
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT 0 RLG 0 /PI 0

Exemple
Programme LIST
SET = M 10.0 = M 15.1 = M 16.0 CLR = M 10.1 = M 10.2 0 0 1 1 1 0

Etat de signal

Rsultat logique (RLG)


1

32

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.20 SET Mettre RLG 1

1.22
Format

SAVE

Sauvegarder RLG dans le bit RB

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
RB Ecriture : x BI1 BI0 DEB DM OU ETAT RLG /PI -

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

33

Oprations combinatoires sur bits 1.20 SET Mettre RLG 1

1.23
Format

FN

Front descendant

FN <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire Description E, A, M, L, D Mmento de front, sauvegarde l'tat de signal prcdent du RLG

Description de l'opration
FN <bit> (Front descendant)
Cette opration permet de dtecter un front descendant si le RLG passe de 1 0, et donne 1 comme rsultat. Au cours de chaque cycle de programme, l'tat de signal du bit RLG est compar l'tat de signal du bit RLG du cycle prcdent pour dterminer toute modification de l'tat. Pour que la comparaison s'excute, l'tat de signal du bit RLG prcdent doit tre sauvegard dans l'adresse du mmento de front (<bit>). Si l'tat de signal en cours diffre de l'tat de signal prcdent (1 ; dtection d'un front descendant), le bit RLG gale 1 aprs cette opration.

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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT x RLG x /PI 1

Dfinition
Front montant Front descendant

RLG

1
0 Temps

34

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.20 SET Mettre RLG 1

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 FN = E 1.0 M 1.0 A 4.0 E 1.0 M 1.0 A 4.0 1

Schma des tats de signaux


1 0 1 0 1 0 2 3 4 5 6 7 8 9

Cycle OB1 n :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

35

Oprations combinatoires sur bits 1.20 SET Mettre RLG 1

1.24
Format

FP

Front montant

FP <bit>
Oprande <bit> Type de donnes BOOL Zone de mmoire Description E, A, M, L, D Mmento de front, sauvegarde l'tat de signal prcdent du RLG

Description de l'opration
FP <bit> (Front montant)
Cette opration permet de dtecter un front montant si le RLG passe de 0 1, et donne 1 comme rsultat. Au cours de chaque cycle de programme, l'tat de signal du bit RLG est compar l'tat de signal du bit RLG du cycle prcdent pour dterminer toute modification de l'tat. Pour que la comparaison s'excute, l'tat de signal du bit RLG prcdent doit tre sauvegard dans l'adresse du mmento de front (<bit>). Si l'tat de signal en cours diffre de l'tat de signal prcdent (0 ; dtection d'un front montant), le bit RLG gale 1 aprs cette opration.

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
RB Ecriture : BI1 BI0 DEB DM OU 0 ETAT x RLG x /PI 1

36

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur bits 1.20 SET Mettre RLG 1

Dfinition
Front montant Front descendant

RLG

1
0 Temps

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 FP = E 1.0 M 1.0 A 4.0 E 1.0 M 1.0 A 4.0 1

Schma des tats de signaux


1 0 1 0 1 0 2 3 4 5 6 7 8 9

Cycle OB1 n :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

37

Oprations combinatoires sur bits 1.20 SET Mettre RLG 1

38

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

2
2.1

Oprations de comparaison
Vue d'ensemble des oprations de comparaison

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 est gal ACCU 1 est diffrent de ACCU 1 est suprieur ACCU 1 est infrieur ACCU 1 est suprieur ou gal ACCU 1 est infrieur ou gal ACCU 1

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 ". Vous disposez des oprations de comparaison suivantes : ?I ?D ?R Comparer entiers de 16 bits Comparer entiers de 32 bits Comparer rels de 32 bits

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

39

Oprations de comparaison 2.1 Vue d'ensemble des oprations de comparaison

2.2
Format

?I

Comparer entiers de 16 bits

==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
RB Ecriture : BI1 x BI0 x DEB 0 DM OU 0 ETAT x RLG x /PI 1

Valeurs du RLG
Opration de comparaison excute ==I <>I >I <I >=I <=I RLG si ACCU 2 > ACCU 1 0 1 1 0 1 0 RLG si ACCU 2 = ACCU 1 1 0 0 0 1 1 RLG si ACCU 2 < ACCU 1 0 1 0 1 0 1

Exemple
LIST L L >I = 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.

MW10 EW24 M 2.0

40

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

2.3 ? D

Oprations de comparaison Comparer entiers de 32 bits

2.3
Format

?D

Comparer entiers de 32 bits

==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
RB Ecriture : BI1 x BI0 x DEB 0 DM OU 0 ETAT x RLG x /PI 1

Valeurs du RLG
Opration de comparaison excute ==D <>D >D <D >=D <=D RLG si ACCU 2 > ACCU 1 0 1 1 0 1 0 RLG si ACCU 2 = ACCU 1 1 0 0 0 1 1 RLG si ACCU 2 < ACCU 1 0 1 0 1 0 1

Exemple
LIST L L >D = 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.

MD10 ED24 M 2.0

accumulateur 1 (ED24).

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

41

Oprations de comparaison 2.4 ? R Comparer rels de 32 bits

2.4
Format

?R

Comparer rels de 32 bits

==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
RB Ecriture BI1 x BI0 x DEB x DM x OU 0 ETAT x RLG x /PI 1

Valeurs du RLG
Opration de comparaison excute ==R <>R >R <R >=R <=R RLG si ACCU 2 > ACCU 1 0 1 1 0 1 0 RLG si ACCU 2 = ACCU 1 1 0 0 0 1 1 RLG si ACCU 2 < ACCU 1 0 1 0 1 0 1

Exemple
LIST L L >R = 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.

MD10 1.359E+02

M 2.0

42

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3
3.1

Oprations de conversion
Vue d'ensemble des oprations de conversion

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 Convertir DCB en entier de 16 bits Convertir entier de 16 bits en DCB Convertir DCB en entier de 32 bits Convertir entier de 16 bits en entier de 32 bits Convertir entier de 32 bits en DCB Convertir entier de 32 bits en rel (IEEE 754 32 bits)

Les oprations suivantes permettent de former le complment de nombres entiers ou de raliser linversion de nombres virgule flottante : INVI INVD NEGI NEGD NEGR Complment 1 d'entier de 16 bits Complment 1 d'entier de 32 bits Complment 2 d'entier de 16 bits Complment 2 d'entier de 32 bits Inverser nombre virgule flottante (IEEE 754 32 bits)

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 Modifier l'ordre dans l'accumulateur 1-L (16 bits) Modifier l'ordre dans l'accumulateur 1 (32 bits)

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 TRUNC RND+ RNDArrondir l'entier Arrondir par troncature Arrondir l'entier suprieur Arrondir l'entier infrieur

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

43

Oprations de conversion 3.2 BTI Convertir DCB en entier de 16 bits

3.2
Format

BTI

Convertir DCB en entier de 16 bits

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
RB Ecriture : BI1 BI0 DEB DM OU ETAT RLG /PI -

Exemple
LIST L BTI T MW10 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.

MW20

"+" 15... MW10


0 0 0 0 1

"9" ...8
0 0 1

"1" 7...
0 0 0 1 0

"5" ...0
1 0 1

+915 DCB

BTI
MW20
0 0 0 0

Convertir DCB en entier


0 0 1 1 1 0 0 1 0 0 1 1

+915 nombre entier

44

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3.3 ITB

Oprations de conversion Convertir entier de 16 bits en DCB

3.3
Format

ITB

Convertir entier de 16 bits en DCB

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
RB Ecriture : BI1 BI0 DEB x DM x OU ETAT RLG /PI -

Exemple
LIST L ITB T 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.

MW10

MW20

15... MW10
1 1 1 1 1 1 1

...8
0

7...
0 1 1 0 0 0 1

...0
1

-413 nombre entier

ITB
MW20
1 1 1

Convertir entier de 16 bits en DCB


1 0 1 0 0 0 0 0 1 0 0 1 1

-413 DCB

"-"

"4"

"1"

"3"

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

45

Oprations de conversion 3.4 BTD Convertir DCB en entier de 32 bits

3.4
Format

BTD

Convertir DCB en entier de 32 bits

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
RB Ecriture : BI1 BI0 DEB DM OU ETAT RLG /PI -

Exemple
LIST L BTD T MD10 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.

MD20

"+" 31... MD10

"0"

"1"

"5"

"7"

"8"

"2"

"1" ...0 "+157821"

...16 15...

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

BTD
MD20

Convertir DCB en entier

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"

46

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3.5 ITD

Oprations de conversion Convertir entier de 16 bits en entier de 32 bits

3.5
Format

ITD

Convertir entier de 16 bits en entier de 32 bits

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
RB Ecriture : BI1 BI0 DEB DM OU ETAT RLG /PI -

Exemple
LIST L ITD T 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.

MW12

MD20

Exemple : MW12 = "-10" (nombre entier de 16 bits)


Contenu Bit avant excution de ITD aprs excution de ITD ACCU1-H 31 . . . XXXX 1111 .. XXXX 1111 .. XXXX 1111 . . . 16 XXXX 1111 ACCU1-L 15 . . . 1111 1111 .. 1111 1111 .. 1111 1111 ...0 0110 0110

(X = 0 ou 1, bits non requis pour la conversion)

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

47

Oprations de conversion 3.5 ITD Convertir entier de 16 bits en entier de 32 bits

3.6
Format

DTB

Convertir entier de 32 bits en DCB

DTB

Description de l'opration
DTB (Conversion d'un nombre entier de 32 bits en nombre DCB)
Cette opration value le contenu de l'accumulateur 1 comme nombre entier de 32 bits et le convertit en un nombre dcimal cod binaire (nombre DCB) sept chiffres. Le rsultat est rang dans l'accumulateur 1. Les bits 0 27 indiquent la valeur du nombre DCB. Les bits 28 31 reprsentent l'tat du signe du nombre DCB (0000 = positif, 1111 = ngatif). L'accumulateur 2 reste inchang. Le nombre DCB peut tre compris entre -9 999 999 et +9 999 999. S'il se situe hors de la plage correcte, les bits d'tat DEB et DM sont mis 1.

Mot d'tat
RB Ecriture : BI1 BI0 DEB x DM x OU ETAT RLG /PI -

Exemple
LIST L DTB T 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.

MD10

MD20

31... MD10

...16 15...

...0 -701 nombre entier

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

Convertir entier de 32 bits en DCB

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

48

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3.7 DTR

Oprations de conversion Convertir entier de 32 bits en rel (IEEE 754 32 bits)

3.7
Format

DTR

Convertir entier de 32 bits en rel (IEEE 754 32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L DTR T 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.

MD10

MD20

MD10

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

DTR
MD20

Convertir entier de 32 bits en nombre virgule flottante de de 32 bits 31 30... 22...

+500 nombre entier ...0

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

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

49

Oprations de conversion 3.8 INVI Complment 1 d'entier de 16 bits

3.8
Format

INVI

Complment 1 d'entier de 16 bits

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L INVI T Explication //Charger la valeur dans l'accumulateur 1-L. //Former le complment 1 (16 bits). //Transfrer le rsultat dans le mot de mmento MW10.

EW8 MW10

Contenu

ACCU1-L

Bit avant excution de INVI aprs excution de INVI

15 . . . 0110 1001

.. 0011 1100

.. 1010 0101

...0 1110 0001

50

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3.8 INVI

Oprations de conversion Complment 1 d'entier de 16 bits

3.9
Format

INVD

Complment 1 d'entier de 32 bits

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L INVD T Explication //Charger la valeur dans l'accumulateur 1. //Former le complment 1 (32 bits). //Transfrer le rsultat dans le double mot de mmento MD10.

ED8 MD10

Contenu

ACCU1-H

ACCU1-L

Bit avant excution de INVD aprs excution de INVD

31 . . . 0110 1001

.. 1111 0000

.. 1000 0111

. . . 16 1100 0011

15 . . . 0110 1001

.. 0011 1100

.. 1010 0101

...0 1110 0001

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

51

Oprations de conversion 3.8 INVI Complment 1 d'entier de 16 bits

3.10
Format

NEGI

Complment 2 d'entier de 16 bits

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

Ecriture :

Formation des bits d'tat

BI1

BI0

DEB

DM

rsultat = 0 -32768 <= rsultat <= -1 32767 >= rsultat >= 1 rsultat = 2768

0 0 1 0

0 1 0 1

0 0 0 1

Exemple
LIST L NEGI T Explication //Charger la valeur dans l'accumulateur 1-L. //Former le complment 2 (16 bits). //Transfrer le rsultat dans le mot de mmento MW10.

EW8 MW10

Contenu

ACCU1-L

Bit avant excution de NEGI aprs excution de NEGI

15 . . . 0101 1010

.. 1101 0010

.. 0011 1100

...0 1000 1000

52

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3.11 NEGD

Oprations de conversion Complment 2 d'entier de 32 bits

3.11
Format

NEGD

Complment 2 d'entier de 32 bits

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Formation des bits d'tat

BI1

BI0

DEB

DM

rsultat = 0 -2 147 483 647 <= rsultat <= -1 2 147 483 647 >= rsultat >= 1 rsultat = -2 147 483 648

0 0 1 0

0 1 0 1

0 0 0 1

Exemple
LIST L NEGD T Explication //Charger la valeur dans l'accumulateur 1. //Former le complment 2 (32 bits). //Transfrer le rsultat dans le double mot de mmento MD10.

ED8 MD10

Contenu

ACCU1-H

ACCU1-L

Bit avant excution de NEGD aprs excution de NEGD

31 . . . 0101 1010

.. 1111 0000

.. 0110 1001

. . . 16 0100 1011

15 . . . 0101 1010

.. 1101 0010

.. 0011 1100

...0 1000 1000

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

53

Oprations de conversion 3.12 NEGR Inverser nombre virgule flottante (IEEE 754 32 bits)

3.12
Format

NEGR

Inverser nombre virgule flottante (IEEE 754 32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L NEGR T 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).

ED8

MD10

54

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3.12 NEGR

Oprations de conversion Inverser nombre virgule flottante (IEEE 754 32 bits)

3.13
Format

TAW

Modifier l'ordre dans l'accumulateur 1-L (16 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L TAW T 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.

MW10 MW20

1.

Contenu

ACCU 1-H-H

ACCU 1-H-L

ACCU 1-L-H

ACCU 1-L-L

avant excution de TAW aprs excution de TAW

valeur A valeur A

valeur B valeur B

valeur C valeur D

valeur D valeur C

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

55

Oprations de conversion 3.12 NEGR Inverser nombre virgule flottante (IEEE 754 32 bits)

3.14
Format

TAD

Modifier l'ordre dans l'accumulateur 1 (32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L TAD T 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.

MD10 MD20

1.

Contenu

ACCU 1-H-H

ACCU 1-H-L

ACCU 1-L-H

ACCU 1-L-L

avant excution de TAD aprs excution de TAD

valeur A valeur D

valeur B valeur C

valeur C valeur B

valeur D valeur A

56

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3.12 NEGR

Oprations de conversion Inverser nombre virgule flottante (IEEE 754 32 bits)

3.15
Format

RND

Arrondir l'entier

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L RND 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

MD20

Valeur avant la conversion

Valeur aprs la conversion

MD10 = "100.5" MD10 = "-100.5"

=> RND => => RND =>

MD20 = "+100" MD20 = "-100"

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

57

Oprations de conversion 3.12 NEGR Inverser nombre virgule flottante (IEEE 754 32 bits)

3.16
Format

TRUNC

Arrondir par troncature

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L TRUNC 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

MD20

Valeur avant la conversion

Valeur aprs la conversion

MD10 = "100.5" MD10 = "-100.5"

=> TRUNC => => TRUNC =>

MD20 = "+100" MD20 = "-100"

58

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

3.12 NEGR

Oprations de conversion Inverser nombre virgule flottante (IEEE 754 32 bits)

3.17
Format

RND+

Arrondir l'entier suprieur

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L RND+ 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

MD20

Valeur avant la conversion

Valeur aprs la conversion

MD10 = "100.5" MD10 = "-100.5"

=> RND+ => => RND+ =>

MD20 = "+101" MD20 = "-100"

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

59

Oprations de conversion 3.12 NEGR Inverser nombre virgule flottante (IEEE 754 32 bits)

3.18
Format

RND-

Arrondir l'entier infrieur

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L RNDExplication //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

MD20

Valeur avant la conversion

Valeur aprs la conversion

MD10 = "100.5" MD10 = "-100.5"

=> RND- => => RND- =>

MD20 = "+100" MD20 = "-101"

60

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

4
4.1

Oprations de comptage
Vue d'ensemble des oprations de comptage

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 L LC R S ZV ZR Valider compteur Charger valeur de comptage en cours comme entier dans l'accumulateur 1 Charger valeur de comptage en cours comme nombre DCB dans l'accumulateur 1 Remettre compteur zro Initialiser compteur Incrmenter Dcrmenter

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

61

Oprations de comptage 4.1 Vue d'ensemble des oprations de comptage

4.2
Format

FR

Valider compteur

FR <compteur>
Paramtre Type de donnes Zone de mmoire Description

<compteur>

COUNTER

Compteur ; la plage dpend de la CPU.

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U FR Explication //Interroger l'tat de signal l'entre E 2.0. //Valider le compteur Z3 si le RLG passe de 0 1.

E 2.0 Z3

62

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de comptage 4.1 Vue d'ensemble des oprations de comptage

4.3

L Charger valeur de comptage en cours comme entier dans l'accumulateur 1

Format
L <compteur>
Paramtre Type de donnes Zone de mmoire Description

<compteur>

COUNTER

Compteur ; la plage dpend de la CPU.

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L Explication //Charger la valeur de comptage du compteur Z3 en format binaire dans //l'accumulateur 1-L.

Z3

Mot de compteur pour Z3 en mmoire

15

14

13

12

11

10

Valeur de compteur (0 999) binaire

Z3

Contenu de l'ACCU 1-L aprs l'instruction L Z3

15

14

13

12

11

10

Tous "0"

Valeur de compteur (0 999) binaire

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

63

Oprations de comptage 4.4 LC Charger valeur de comptage en cours comme nombre DCB dans l'accumulateur 1

4.4

LC Charger valeur de comptage en cours comme nombre DCB dans l'accumulateur 1

Format
LC <compteur>
Paramtre Type de donnes Zone de mmoire Description

<compteur>

COUNTER

Compteur ; la plage dpend de la CPU.

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

64

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

4.4 LC

Oprations de comptage Charger valeur de comptage en cours comme nombre DCB dans l'accumulateur 1

Exemple
LIST LC Explication //Charger la valeur de comptage du compteur Z3 en format DCB dans //l'accumulateur 1-L.

Z3

Mot de comptage pour Z3 en mmoire

15

14

13

12

11

10

Valeur de comptage (de 0 999) binaire

LC

Z3

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

2
1

2
0

10 Centaines

10 Dizaines

10 Units

Valeur de comptage en format DCB

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

65

Oprations de comptage 4.5 R Remettre compteur zro

4.5
Format

Remettre compteur zro

R <compteur>
Paramtre Type de donnes Zone de mmoire Description

<compteur>

COUNTER

Compteur ; la plage dpend de la CPU.

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U R Explication //Interroger l'tat de signal l'entre E 2.3. //Remettre le compteur Z3 0 si le RLG passe de 0

E 2.3 Z3

1.

66

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de comptage 4.6 S Initialiser compteur

4.6
Format

Initialiser compteur

S <compteur>
Paramtre Type de donnes Zone de mmoire Description

<compteur>

COUNTER

Compteur ; la plage dpend de la CPU.

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U L S 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.

E 2.3 C#3 Z1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

67

Oprations de comptage 4.7 ZV Incrmenter

4.7
Format

ZV

Incrmenter

ZV <compteur>
Paramtre Type de donnes Zone de mmoire Description

<compteur>

COUNTER

Compteur ; la plage dpend de la CPU.

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U ZV Explication //Interroger l'tat de signal l'entre E 2.1. //Incrmenter d'1 le compteur Z3 si le RLG passe de 0 1.

E 2.1 Z3

68

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de comptage 4.8 ZR Dcrmenter

4.8
Format

ZR

Dcrmenter

ZR <compteur>
Paramtre Type de donnes Zone de mmoire Description

<compteur>

COUNTER

Compteur ; la plage dpend de la CPU.

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L U S U ZR UN = 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.

C#14 E 0.1 Z1 E 0.0 Z1 Z1 A 0.0

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

69

Oprations de comptage 4.8 ZR Dcrmenter

70

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

5
5.1

Oprations sur blocs de donnes


Vue d'ensemble des oprations sur blocs de donnes

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 Ouvrir bloc de donnes Permuter DB global et DB d'instance Charger longueur de DB global dans l'accumulateur 1 Charger numro de DB global dans l'accumulateur 1 Charger longueur de DB d'instance dans l'accumulateur 1 Charger numro de DB d'instance dans l'accumulateur 1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

71

Oprations sur blocs de donnes 5.2 AUF Ouvrir bloc de donnes

5.2
Format

AUF Ouvrir bloc de donnes

AUF <bloc de donnes>


Oprande Type de blocs de donnes Adresse source

<bloc de donnes >

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST AUF L T AUF L T 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.

DB10 DBW35 MW22 DI20 DIB12 DBB37

72

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

5.3 TDB

Oprations sur blocs de donnes Permuter DB global et DB d'instance

5.3
Format

TDB

Permuter DB global et DB d'instance

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

5.4
Format

L DBLG

Charger longueur de DB global dans l'accumulateur 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST AUF L L <D SPB DB10 DBLG MD10 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.

ERRO

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

73

Oprations sur blocs de donnes 5.5 L DBNO Charger numro de DB global dans l'accumulateur 1

5.5
Format

L DBNO Charger numro de DB global dans l'accumulateur 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

5.6
Format

L DILG

Charger longueur de DB d'instance dans l'accumulateur 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST AUF L L <I SPB DI20 DILG MW10 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.

ERRO

74

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

5.7 L DINO

Oprations sur blocs de donnes Charger numro de DB d'instance dans l'accumulateur 1

5.7
Format

L DINO

Charger numro de DB d'instance dans l'accumulateur 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

75

Oprations sur blocs de donnes 5.7 L DINO Charger numro de DB d'instance dans l'accumulateur 1

76

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

6
6.1

Oprations de saut
Vue d'ensemble des oprations de saut

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.

Les oprations de saut suivantes permettent dinterrompre la squence normale de votre programme de manire inconditionnelle : SPA SPL Saut inconditionnel Saut vers liste

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 Saut si RLG est 1 Saut si RLG est 0 Saut si RLG est 1 avec RB Saut si RLG est 0 avec RB

Les oprations de saut suivantes interrompent la squence normale dans votre programme selon ltat de signal dun bit du mot dtat : SPBI SPBIN SPO SPS Saut si RB est 1 Saut si RB est 0 Saut si DEB est 1 Saut si DM est 1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

77

Oprations de saut 6.1 Vue d'ensemble des oprations de saut

Les oprations de saut suivantes interrompent la squence normale dans votre programme selon le rsultat dun calcul : SPZ SPN SPP SPM SPPZ SPMZ SPU Saut si gal 0 Saut si diffrent de 0 Saut si plus Saut si moins Saut si suprieur ou gal 0 Saut si infrieur ou gal 0 Saut si illicite

78

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

6.2 SPA

Oprations de saut Saut inconditionnel

6.2
Format

SPA

Saut inconditionnel

SPA <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST 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 Explication

//Saut au repre de saut EFFA si le RLG gale 1.

//Saut inconditionnel au repre de saut AVAN.

EFFA: AVAN:

//La squence de programme se poursuit ici aprs le saut au repre AVAN.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

79

Oprations de saut 6.3 SPL Saut vers liste

6.3
Format

SPL

Saut vers liste

SPL <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

80

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de saut 6.3 SPL Saut vers liste

Exemple
LIST 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 dans l'accumulateur 1-L-L. est suprieur 3. gale 0. gale 1. gale 2. gale 3.

LSTX: SEG0:

SEG1:

SEG3:

COMM:

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

81

Oprations de saut 6.4 SPB Saut si RLG est 1

6.4
Format

SPB

Saut si RLG est 1

SPB <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U U SPB L T U E 1.0 E 1.2 SAUT EW8 MW22 E 2.1 Explication

//Saut au repre de saut SAUT si RLG gale 1. //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.

SAUT:

82

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de saut 6.5 SPBN Saut si RLG est 0

6.5
Format

SPBN

Saut si RLG est 0

SPBN <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U U SPBN L T U E 1.0 E 1.2 SAUT EW8 MW22 E 2.1 Explication

//Saut au repre SAUT si RLG gale 0. //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.

SAUT:

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

83

Oprations de saut 6.6 SPBB Saut si RLG est 1 avec RB

6.6
Format

SPBB

Saut si RLG est 1 avec RB

SPBB <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U U SPBB L T U E 1.0 E 1.2 SAUT EW8 MW22 E 2.1 Explication

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

SAUT:

84

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

6.7 SPBNB

Oprations de saut Saut si RLG est 0 avec RB

6.7
Format

SPBNB

Saut si RLG est 0 avec RB

SPBNB <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U U SPBNB L T U E 1.0 E 1.2 SAUT EW MW22 E 2.1 Explication

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

SAUT:

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

85

Oprations de saut 6.8 SPBI Saut si RB est 1

6.8
Format

SPBI

Saut si RB est 1

SPBI <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

86

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de saut 6.9 SPBIN Saut si RB est 0

6.9
Format

SPBIN

Saut si RB est 0

SPBIN <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

87

Oprations de saut 6.10 SPO Saut si DEB est 1

6.10
Format

SPO

Saut si DEB est 1

SPO <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST 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 //Multiplication du contenu de MW10 par 3. //Saut si le rsultat dborde de la plage maximale (DEB gale 1). //La squence de programme se poursuit ici si le saut ne s'excute pas. Explication

DEBO: SUIV:

//La squence de programme se poursuit ici aprs le saut au repre DEBO. //La squence de programme se poursuit ici aprs le saut au repre SUIV.

88

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de saut 6.11 SPS Saut si DM est 1

6.11
Format

SPS

Saut si DM est 1

SPS <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

89

Oprations de saut 6.11 SPS Saut si DM est 1

Exemple
LIST L L *I L +I L -I SPS 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 //Saut si dbordement dans l'une des 3 oprations prcdentes, //DM gale 1 (voir nota). //La squence de programme se poursuit ici si le saut ne s'excute pas. Explication

DEBO: SUIV:

//La squence de programme se poursuit ici aprs le saut au repre DEBO. //La squence de programme se poursuit ici aprs le saut au repre SUIV.

Nota Dans pareil cas, n'utilisez jamais l'opration SPO qui ne testerait de dbordement que pour l'opration -I prcdente.

90

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de saut 6.12 SPZ Saut si gal 0

6.12
Format

SPZ

Saut si gal 0

SPZ <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L SRW SPZ L INC T SPA L INC T NOP 0 MW10 1 ZERO MW2 1 MW2 SUIV MW4 1 MW4 Explication

//Sauter au repre de saut ZERO si le bit dcal gale 0. //La squence de programme se poursuit ici si le saut ne s'excute pas.

ZERO:

//La squence de programme se poursuit ici aprs le saut au repre ZERO.

SUIV:

//La squence de programme se poursuit ici aprs le saut au repre SUIV.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

91

Oprations de saut 6.13 SPN Saut si diffrent de 0

6.13
Format

SPN

Saut si diffrent de 0

SPN <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST 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 //Saut si le contenu de l'accumulateur 1-L est diffrent de 0. //La squence de programme se poursuit ici si le saut ne s'excute pas. Explication

DIZE: SUIV:

//La squence de programme se poursuit ici aprs le saut au repre DIZE. //La squence de programme se poursuit ici aprs le saut au repre SUIV.

92

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de saut 6.14 SPP Saut si plus

6.14
Format

SPP

Saut si plus

SPP <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L L -I SPP UN S SPA UN S NOP 0 EW8 MW12 POS M 4.0 M 4.0 SUIV M 4.1 M 4.1 //Soustraction du contenu de MW12 du contenu de EW8. //Saut si le rsultat est suprieur 0 (c'est--dire contenu de //l'accumulateur 1 > 0). //La squence de programme se poursuit ici si le saut ne s'excute pas. Explication

POS: SUIV:

//La squence de programme se poursuit ici aprs le saut au repre POS. //La squence de programme se poursuit ici aprs le saut au repre SUIV.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

93

Oprations de saut 6.15 SPM Saut si moins

6.15
Format

SPM

Saut si moins

SPM <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L L -I SPM UN S SPA UN S NOP 0 EW8 MW12 NEG M 4.0 M 4.0 SUIV M 4.1 M 4.1 //Soustraction du contenu de MW12 du contenu de EW8. //Saut si rsultat infrieur 0 (c'est--dire contenu de l'accumulateur //1 < 0). //La squence de programme se poursuit ici si le saut ne s'excute pas. Explication

NEG: SUIV:

//La squence de programme se poursuit ici aprs le saut au repre NEG. //La squence de programme se poursuit ici aprs le saut au repre SUIV.

94

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

6.16 SPPZ

Oprations de saut Saut si suprieur ou gal 0

6.16
Format

SPPZ

Saut si suprieur ou gal 0

SPPZ <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L L -I SPPZ UN S SPA UN S NOP 0 EW8 MW12 REG0 M 4.0 M 4.0 SUIV M 4.1 M 4.1 //Soustraction du contenu de MW12 du contenu de EW8. //Saut si le rsultat est suprieur ou gal 0 (c'est--dire contenu de //l'accumulateur 1 >= 0). //La squence de programme se poursuit ici si le saut ne s'excute pas. Explication

REG0: SUIV:

//La squence de programme se poursuit ici aprs le saut au repre REG0. //La squence de programme se poursuit ici aprs le saut au repre SUIV.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

95

Oprations de saut 6.17 SPMZ Saut si infrieur ou gal 0

6.17
Format

SPMZ

Saut si infrieur ou gal 0

SPMZ <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST 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 //Soustraction du contenu de MW12 du contenu de EW8. //Saut si rsultat <= 0 (c'est--dire contenu de l'accumulateur 1 <= 0). //La squence de programme se poursuit ici si le saut ne s'excute pas. Explication

RGE0: SUIV:

//La squence de programme se poursuit ici aprs le saut au repre RGE0. //La squence de programme se poursuit ici aprs le saut au repre SUIV.

96

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de saut 6.18 SPU Saut si illicite

6.18
Format

SPU

Saut si illicite

SPU <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

97

Oprations de saut 6.18 SPU Saut si illicite

Exemple
LIST 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 //Division du contenu de MD10 par le contenu de ED2. //Saut si division par 0 (c'est--dire ED2 = 0). //La squence de programme se poursuit ici si le saut ne s'excute pas. Explication

ERRE: SUIV:

//La squence de programme se poursuit ici aprs le saut au repre ERRE. //La squence de programme se poursuit ici aprs le saut au repre SUIV.

98

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

6.19 LOOP

Oprations de saut Boucle de programme

6.19
Format

LOOP

Boucle de programme

LOOP <repre de saut>


Oprande Description

<repre de saut>

Nom de la destination 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple de calcul de la factorielle de 5 (5!)


LIST L T L T L * T L LOOP L L >I L#1 MD20 5 MW10 MD20 D MD20 MW10 SUIV 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.

SUIV:

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

99

Oprations de saut 6.19 LOOP Boucle de programme

100

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

7
7.1

Fonctions sur nombres entiers


Vue d'ensemble des oprations arithmtiques sur nombre entiers

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 Additionner accumulateurs 1 et 2 (entiers de 16 bits) Soustraire accumulateur 1 de accumulateur 2 (entiers de 16 bits) Diviser accumulateur 2 par accumulateur 1 (entiers de 16 bits) Multiplier accumulateur 1 par accumulateur 2 (entiers de 16 bits) Additionner constante entire (16, 32 bits) Additionner accumulateurs 1 et 2 (entiers de 32 bits) Soustraire accumulateur 1 de accumulateur 2 (entiers de 32 bits) Multiplier accumulateur 1 par accumulateur 2 (entiers de 32 bits) Diviser accumulateur 2 par accumulateur 1 (entiers de 32 bits) Reste de division entire (32 bits)

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

101

Fonctions sur nombres entiers 7.2 Evaluation des bits du mot d'tat dans les oprations sur nombres entiers

7.2

Evaluation des bits du mot d'tat dans les oprations sur nombres entiers

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) 16 bits : 32 768 <= rsultat < 0 (nombre ngatif) 32 bits : 2 147 483 648 <= rsultat < 0 (nombre ngatif) 16 bits : 32 767 > =rsultat > 0 (nombre positif) 32 bits : 2 147 483 647 > = rsultat > 0 (nombre positif)

0 0 1

0 1 0

0 0 0

* * *

* Le bit DM n'est pas influenc par le rsultat de l'opration.


Plage non autorise BI1 BI0 DEB DM

Dpassement ngatif de la plage pour une addition 16 bits : rsultat = 65536 32 bits : rsultat = 4 294 967 296 Dpassement ngatif de la plage pour une multiplication 16 bits : rsultat < 32 768 (nombre ngatif) 32 bits : rsultat < 2 147 483 648 (nombre ngatif) Dpassement positif de la plage pour addition, soustraction 16 bits : rsultat > 32 767 (nombre positif) 32 bits : rsultat > 2 147 483 647 (nombre positif) Dpassement positif de la plage pour multiplication, division 16 bits : rsultat > 32 767 (nombre positif) 32 bits : rsultat > 2 147 483 647 (nombre positif) Dpassement ngatif de la plage pour addition, soustraction 16 bits : rsultat < 32 768 (nombre ngatif) 32 bits : rsultat < 2 147 483 648 (nombre ngatif) Division par zro

Opration

BI1

BI0

DEB

DM

+D : rsultat = 4 294 967 296 /D ou MOD : division par 0

0 1

0 1

1 1

1 1

102

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

7.3 +I

Fonctions sur nombres entiers Additionner accumulateurs 1 et 2 (entiers de 16 bits)

7.3
Format

+I

Additionner accumulateurs 1 et 2 (entiers de 16 bits)

+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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

BI1

BI0

DEB

DM

Formation des bits d'tat

somme -32768 32767 somme 65534 -65535

= <= >= = >= <=

0 somme < somme > -65536 somme > somme < 32767 -32768 0 0

0 0 1 0 0 1

0 1 0 0 1 0

0 0 0 1 1 1

1 1 1

Exemple
LIST L L +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.

EW10 MW14

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

103

Fonctions sur nombres entiers 7.4 -I Soustraire accumulateur 1 de accumulateur 2 (entiers de 16 bits)

7.4
Format

-I

Soustraire accumulateur 1 de accumulateur 2 (entiers de 16 bits)

-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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

BI1

BI0

DEB

DM

Formation des bits d'tat

diffrence -32768 32767 65535 -65535

= <= >= >= <=

0 diffrence diffrence diffrence diffrence < > > < 0 0 32767 -32768

0 0 1 0 1

0 1 0 1 0

0 0 0 1 1

1 1

Exemple
LIST L L -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. //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.

EW10 MW14

104

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

7.5 *I

Fonctions sur nombres entiers Multiplier accumulateur 1 par accumulateur 2 (entiers de 16 bits)

7.5
Format

*I

Multiplier accumulateur 1 par accumulateur 2 (entiers de 16 bits)

*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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Formation des bits d'tat

BI1

BI0

DEB

DM

produit -32768 32767 1.073.741.824 -1.073.709.056

= <= >= >= <=

0 produit < produit > produit > produit < 0 0 32767 -32768

0 0 1 1 0

0 1 0 0 1

0 0 0 1 1

1 1

Exemple
LIST L L *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.

EW10 MW14

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

105

Fonctions sur nombres entiers 7.6 /I Diviser accumulateur 2 par accumulateur 1 (entiers de 16 bits)

7.6
Format

/I

Diviser accumulateur 2 par accumulateur 1 (entiers de 16 bits)

/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

Ecriture :

Formation des bits d'tat

BI1

BI0

DEB

DM

quotient = 0 -32768 32767 quotient Division par zro <= >= = quotient < quotient > 32768 0 0

0 0 1 1 1

0 1 0 0 1

0 0 0 1 1

1 1

Exemple
LIST L L /I T 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.

EW10 MW14

106

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

7.6 /I

Fonctions sur nombres entiers Diviser accumulateur 2 par accumulateur 1 (entiers de 16 bits)

Exemple : 13 divis par 4


Contenu de l'accumulateur 2-L avant l'opration (EW10) : Contenu de l'accumulateur 1-L avant l'opration (MW14) : Opration /I (accumulateur 2-L / accumulateur 1-L) : Contenu de l'accumulateur 1-L aprs l'opration (quotient) : Contenu de l'accumulateur 1-H aprs l'opration (reste) : "13" "4" "13/4" "3" "1"

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

107

Fonctions sur nombres entiers 7.7 + Additionner constante entire (16, 32 bits)

7.7
Format

Additionner constante entire (16, 32 bits)

+ <constante entire>
Oprande Type de donnes Description

<constante entire >

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple 1
LIST L L +I + T 25 DB1.DBW25 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.

EW10 MW14

108

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

7.7 +

Fonctions sur nombres entiers Additionner constante entire (16, 32 bits)

Exemple 2
LIST L L + >I SPB Explication EW12 EW14 100

SUIV

//Additionner l'accumulateur 1-L 100 et sauvegarder le rsultat dans //l'accumulateur 1-L. //Si accumulateur 2 > accumulateur 1, c'est--dire EW12 > (EW14 + 100) //Alors sauter au repre de saut SUIV.

Exemple 3
LIST L L +D + T Explication MD20 MD24 //Additionner l'accumulateur 1 l'accumulateur 2 et sauvegarder le rsultat //dans l'accumulateur 1. //Additionner l'accumulateur 1 -200 et sauvegarder le rsultat dans //l'accumulateur 1.

L#-200 MD28

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

109

Fonctions sur nombres entiers 7.8 +D Additionner accumulateurs 1 et 2 (entiers de 32 bits)

7.8
Format

+D

Additionner accumulateurs 1 et 2 (entiers de 32 bits)

+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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Formation des bits d'tat

BI1

BI0

DEB

DM

somme -2.147.483.648 2.147.483.647 somme 4.294.967.294 -4.294.967.295

= <= >= = >= <=

0 somme < somme > -4.294.967.296 somme > somme < 2.147.483.647 -2.147.483.648 0 0

0 0 1 0 0 1

0 1 0 0 1 0

0 0 0 1 1 1

1 1 1

Exemple
LIST L L +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 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.

ED10 MD14

110

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

7.9 -D

Fonctions sur nombres entiers Soustraire accumulateur 1 de accumulateur 2 (entiers de 32 bits)

7.9
Format

-D Soustraire accumulateur 1 de accumulateur 2 (entiers de 32 bits)

-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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Formation des bits d'tat

BI1

BI0

DEB

DM

diffrence -2.147.483.648 2.147.483.647 4.294.967.295 -4.294.967.295

= <= >= >= <=

0 diffrence diffrence diffrence diffrence < > 0 0

0 0 1 0 1

0 1 0 1 0

0 0 0 1 1

1 1

> 2.147.483.647 < -2.147.483.648

Exemple
LIST L L -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.

ED10 MD14

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

111

Fonctions sur nombres entiers 7.10 *D Multiplier accumulateur 1 par accumulateur 2 (entiers de 32 bits)

7.10
Format

*D Multiplier accumulateur 1 par accumulateur 2 (entiers de 32 bits)

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

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Formation des bits d'tat

BI1

BI0

DEB

DM

produit

0 produit < produit > 2.147.483.647 -2.147.483.648 0 0

0 0 1 1 0

0 1 0 0 1

0 0 0 1 1

1 1

-2.147.483.648 <= 2.147.483.647 >= produit produit > <

Exemple
LIST L L *D T DB1.DBD25 ED10 MD14 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.

112

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

7.11 /D

Fonctions sur nombres entiers Diviser accumulateur 2 par accumulateur 1 (entiers de 32 bits)

7.11
Format

/D

Diviser accumulateur 2 par accumulateur 1 (entiers de 32 bits)

/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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

BI1

BI0

DEB

DM

Formation des bits d'tat

Quotient = 0 -2147483648 2147483647 quotient Division par zro <= >= = quotient < quotient > 2147483648 0 0

0 0 1 1 1

0 1 0 0 1

0 0 0 1 1

1 1

Exemple
LIST L L /D T MD20 ED10 MD14 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.

Exemple : 13 divis par 4


Contenu de l'accumulateur 2 avant l'opration (ED10) : Contenu de l'accumulateur 1 avant l'opration (MD14) : Opration /D (accumulateur 2 / accumulateur 1) : Contenu de l'accumulateur 1 aprs l'opration (quotient) : "13" "4" "13/4" "3"

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

113

Fonctions sur nombres entiers 7.12 MOD Reste de division entire (32 bits)

7.12
Format

MOD

Reste de division entire (32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

BI1

BI0

DEB

DM

Formation des bits d'tat

reste -2147483648 2147483647 Division par zro

= <= >=

0 reste reste < > 0 0

0 0 1 1

0 1 0 1

0 0 0 1

Exemple
LIST L L MOD T MD20 ED10 MD14 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.

Exemple : 13 divis par 4


Contenu de l'accumulateur 2 avant l'opration (ED10) : Contenu de l'accumulateur 1 avant l'opration (MD14) : Opration /MOD (accumulateur 2 / accumulateur 1) : Contenu de l'accumulateur 1 aprs l'opration (reste de la division) : "13" "4" "13/4" "1"

114

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

8
8.1

Fonctions sur nombres virgule flottante


Vue d'ensemble des oprations arithmtiques sur nombres virgule flottante

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 Additionner accumulateurs 1 et 2 (rels VF IEEE, 32 bits) Soustraire accumulateur 1 d'accumulateur 2 (rels VF IEEE, 32 bits) Multiplier accumulateur 1 par accumulateur 2 (rels VF IEEE, 32 bits) Diviser accumulateur 2 par accumulateur 1 (rels VF IEEE, 32 bits)

Les oprations suivantes permettent dexcuter les fonctions arithmtiques suivantes sur un nombre virgule flottante IEEE de 32 bits : ABS SQR Valeur absolue d'un nombre virgule flottante (VF IEEE, 32 bits) Carr d'un nombre virgule flottante (32 bits)

SQRT Racine carre d'un nombre virgule flottante (32 bits) EXP LN SIN COS TAN ASIN Valeur exponentielle d'un nombre virgule flottante (32 bits) Logarithme naturel d'un nombre virgule flottante (32 bits) Sinus d'un angle comme nombres virgule flottante (32 bits) Cosinus d'un angle comme nombres virgule flottante (32 bits) Tangente d'un angle comme nombres virgule flottante (32 bits) Arc sinus d'un nombre virgule flottante (32 bits)

ACOS Arc cosinus d'un nombre virgule flottante (32 bits) ATAN Arc tangente d'un nombre virgule flottante (32 bits)

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

115

Fonctions sur nombres virgule flottante 8.2 Evaluation des bits du mot d'tat dans les oprations sur nombres virgule flottante

8.2

Evaluation des bits du mot d'tat dans les oprations sur nombres virgule flottante

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) -3.402823E+38 < rsultat < -1.175494E-38 (nombre ngatif) +1.175494E-38 < rsultat < 3.402824E+38 (nombre positif)

0 0 1

0 1 0

0 0 0

* * *

* Le bit DM n'est pas influenc par le rsultat de l'opration.


Plage non autorise 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) Pas un nombre rel correct ou opration illicite (valeur d'entre hors de la plage de valeurs autorise)

0 1 1

1 0 1

1 1 1

1 1 1

116

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Fonctions sur nombres virgule flottante 8.3 Oprations de base

8.3
8.3.1
Format

Oprations de base
+R Additionner accumulateurs 1 et 2 (rels VF IEEE, 32 bits)

+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 Indication

+qNaN +infini +normalis +dnormalis +zro -zro -dnormalis -normalis -infini -qNaN

1 1 1 0 0 0 0 0 0 1

1 0 0 0 0 0 0 1 1 1

1 1 0 1 0 0 1 0 1 1

1 1 1 1 1 1 Dbordement Dbordement bas Dbordement bas Dbordement

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

117

Fonctions sur nombres virgule flottante 8.3 Oprations de base

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST AUF L L +R T DBD25 Explication DB10 ED10 MD14 //Charger dans l'accumulateur 1 la valeur du double mot d'entre ED10. //Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la //valeur du double mot de mmento MD14 dans l'accumulateur 1. //Additionner l'accumulateur 2 et l'accumulateur 1 ; sauvegarder le rsultat //dans l'accumulateur 1. //Le contenu de l'accumulateur 1 (rsultat) est transfr au double mot de //donnes DBD25 dans DB10.

118

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Fonctions sur nombres virgule flottante 8.3 Oprations de base

8.3.2
Format

-R

Soustraire accumulateur 1 d'accumulateur 2 (rels VF IEEE, 32 bits)

-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 Indication

+qNaN +infini +normalis +dnormalis +zro -zro -dnormalis -normalis -infini -qNaN

1 1 1 0 0 0 0 0 0 1

1 0 0 0 0 0 0 1 1 1

1 1 0 1 0 0 1 0 1 1

1 1 1 1 1 1 Dbordement Dbordement bas Dbordement bas Dbordement

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST AUF L L -R T DBD25 Explication DB10 ED10 MD14 //Charger dans l'accumulateur 1 la valeur du double mot d'entre ED10. //Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la //valeur du double mot de mmento MD14 dans l'accumulateur 1. //Soustraire l'accumulateur 1 de l'accumulateur 2 ; sauvegarder le rsultat //dans l'accumulateur 1. //Le contenu de l'accumulateur 1 (rsultat) est transfr au double mot de //donnes DBD25 dans DB10.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

119

Fonctions sur nombres virgule flottante 8.3 Oprations de base

8.3.3
Format

*R

Multiplier accumulateur 1 par accumulateur 2 (rels VF IEEE, 32 bits)

*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 Indication

+qNaN +infini +normalis +dnormalis +zro -zro -dnormalis -normalis -infini -qNaN

1 1 1 0 0 0 0 0 0 1

1 0 0 0 0 0 0 1 1 1

1 1 0 1 0 0 1 0 1 1

1 1 1 1 1 1

Dbordement Dbordement bas

Dbordement bas Dbordement

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST AUF L L *R T DBD25 Explication DB10 ED10 MD14 //Charger dans l'accumulateur 1 la valeur du double mot d'entre ED10. //Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la //valeur du 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 DB10.

120

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Fonctions sur nombres virgule flottante 8.3 Oprations de base

8.3.4

/R

Diviser accumulateur 2 par accumulateur 1 (rels VF IEEE, 32 bits)

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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +infini +normalis +dnormalis +zro -zro -dnormalis -normalis -infini -qNaN

1 1 1 0 0 0 0 0 0 1

1 0 0 0 0 0 0 1 1 1

1 1 0 1 0 0 1 0 1 1

1 1 1 1 1 1

Dbordement Dbordement bas

Dbordement bas Dbordement

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST AUF L L /R T DBD20 Explication DB10 ED10 MD14 //Charger dans l'accumulateur 1 la valeur du double mot d'entre ED10. //Charger le contenu de l'accumulateur 1 dans l'accumulateur 2. Charger la //valeur du double mot de mmento MD14 dans l'accumulateur 1. //Diviser l'accumulateur 2 par l'accumulateur 1 ; sauvegarder le rsultat dans //l'accumulateur 1. //Le contenu de l'accumulateur 1 (rsultat) est transfr au double mot de //donnes DBD20 dans DB10.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

121

Fonctions sur nombres virgule flottante 8.3 Oprations de base

8.3.5

ABS

Valeur absolue d'un nombre virgule flottante (VF IEEE, 32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture

Exemple
LIST L ABS T 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).

ED8 MD10

122

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4
8.4.1

Oprations tendues
SQR Carr d'un nombre virgule flottante (32 bits)

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 Indication

+qNaN +infini +normalis +dnormalis +zro -qNaN

1 1 1 0 0 1

1 0 0 0 0 1

1 1 0 1 0 1

1 1 1 1 Dbordement bas Dbordement

Exemple
LIST OPN L SQR UN SPB BEA OK: T DBD4 OV OK DB17 DBD0 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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

123

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.2

SQRT

Racine carre d'un nombre virgule flottante (32 bits)

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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +infini +normalis +dnormalis +zro -zro -qNaN

1 1 1 0 0 0 1

1 0 0 0 0 0 1

1 1 0 1 0 0 1

1 1 1 1 Dbordement bas Dbordement

Exemple
LIST L SQRT UN SPB BEA MD20 DBD4 OV OK MD10 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.

OK:

124

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.3

EXP

Valeur exponentielle d'un nombre virgule flottante (32 bits)

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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +infini +normalis +dnormalis +zro -qNaN

1 1 1 0 0 1

1 0 0 0 0 1

1 1 0 1 0 1

1 1 1 1 Dbordement bas Dbordement

Exemple
LIST L EXP MD10 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.

UN SPB BEA OK: T

OV OK

MD20

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

125

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.4

LN

Logarithme naturel d'un nombre virgule flottante (32 bits)

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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +infini +normalis +dnormalis +zro - zro -dnormalis -normalis - infini -qNaN

1 1 1 0 0 0 0 0 0 1

1 0 0 0 0 0 0 1 1 1

1 1 0 1 0 0 1 0 1 1

1 1 1 1 1 1 Dbordement Dbordement bas Dbordement bas Dbordement

Exemple
LIST L LN UN SPB BEA OK: T MD20 OV OK MD10 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.

126

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.5

SIN

Sinus d'un angle comme nombres virgule flottante (32 bits)

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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +normalis +dnormalis +zro +infini - zro -dnormalis -normalis -qNaN

1 1 0 0 1 0 0 0 1

1 0 0 0 0 0 0 1 1

1 0 1 0 1 0 1 0 1

1 1 1 1 1 Dbordement bas Dbordement

Exemple
LIST L SIN 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 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.

MD10

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

127

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.6

COS

Cosinus d'un angle comme nombres virgule flottante (32 bits)

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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +normalis +dnormalis +zro - zro -dnormalis -normalis -qNaN

1 1 0 0 0 0 0 1

1 0 0 0 0 0 1 1

1 0 1 0 0 1 0 1

1 1 1 1 Dbordement bas Dbordement

Exemple
LIST L 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.

MD10

128

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.7

TAN

Tangente d'un angle comme nombres virgule flottante (32 bits)

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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +infini +normalis +dnormalis +zro -zro -dnormalis -normalis - infini -qNaN

1 1 1 0 0 0 0 0 0 1

1 0 0 0 0 0 0 1 1 1

1 1 0 1 0 0 1 0 1 1

1 1 1 1 1 1 Dbordement Dbordement bas Dbordement bas Dbordement

Exemple
LIST L TAN UN SPB BEA OK: T MD20 OV OK MD10 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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

129

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.8

ASIN

Arc sinus d'un nombre virgule flottante (32 bits)

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 :

- / 2 <= arc sinus (ACCU 1) <= + / 2, avec = 3,14159...


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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +normalis +dnormalis +zro -zro -dnormalis -normalis -qNaN

1 1 0 0 0 0 0 1

1 0 0 0 0 0 1 1

1 0 1 0 0 1 0 1

1 1 1 1 Dbordement bas Dbordement

Exemple
LIST L ASIN UN SPB BEA OK: T MD20 OV OK MD10 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.

130

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.9

ACOS

Arc cosinus d'un nombre virgule flottante (32 bits)

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 :

0 <= arc cosinus (ACCU 1) <= , avec = 3,14159...


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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +normalis +dnormalis +zro -zro -dnormalis -normalis -qNaN

1 1 0 0 0 0 0 1

1 0 0 0 0 0 1 1

1 0 1 0 0 1 0 1

1 1 1 1 Dbordement bas Dbordement

Exemple
LIST L ACOS UN SPB BEA OK: T MD20 OV OK MD10 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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

131

Fonctions sur nombres virgule flottante 8.4 Oprations tendues

8.4.10 ATAN

Arc tangente d'un nombre virgule flottante (32 bits)

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 :

- / 2 <= arc tangente (ACCU 1) <= + / 2, avec = 3,14159...


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.

Rsultat
Le rsultat dans ACCU 1 est BI1 BI0 DEB DM Indication

+qNaN +normalis +dnormalis +zro -zro -dnormalis -normalis -qNaN

1 1 0 0 0 0 0 1

1 0 0 0 0 0 1 1

1 0 1 0 0 1 0 1

1 1 1 1 Dbordement bas Dbordement

Exemple
LIST L ATAN UN SPB BEA OK: T MD20 OV OK MD10 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.

132

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

9
9.1

Oprations de chargement et de transfert


Vue d'ensemble des oprations de chargement et de transfert

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 : L L STW LAR1 LAR1 <D> LAR1 AR2 LAR2 LAR2 <D> T T STW TAR TAR1 TAR1 <D> TAR1 AR2 TAR2 TAR2 <D> Charger Charger mot d'tat dans l'accumulateur 1 Charger contenu de l'accumulateur 1 dans registre d'adresse 1 Charger pointeur de 32 bits dans registre d'adresse 1 Charger contenu du registre d'adresse 2 dans registre d'adresse 1 Charger contenu de l'accumulateur 1 dans registre d'adresse 2 Charger pointeur de 32 bits dans registre d'adresse 2 Transfrer Transfrer accumulateur 1 dans mot d'tat Permuter registre d'adresse 1 avec registre d'adresse 2 Transfrer registre d'adresse 1 dans l'accumulateur 1 Transfrer registre d'adresse 1 l'adresse de destination (32 bits) Transfrer registre d'adresse 1 dans registre d'adresse 2 Transfrer registre d'adresse 2 dans l'accumulateur 1 Transfrer registre d'adresse 2 l'adresse de destination (32 bits)

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

133

Oprations de chargement et de transfert 9.2 L Charger

9.2
Format

Charger

L <oprande>
Type de donnes Zone de mmoire Adresse source

<oprande>

BYTE WORD DWORD

E, A, PE, M, L, D, pointeur, paramtre

0...65535 0...65534 0...65532

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L L L L L L L L 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.)

EB10 MB120 DBB12 DIW15 LD252 P# E 8.7 OTTO P# ANNA

134

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de chargement et de transfert 9.2 L Charger

Contenu de l'accumulateur 1
Contenu ACCU1-H-H ACCU1-H-L ACCU1-L-H ACCU1-L-L

avant excution de l'opration de chargement aprs excution de L MB10 (L <octet>) aprs excution de L MW10 (L <mot>) aprs excution de L MD10 (L <double mot>) aprs excution de L P# ANNA (dans le FB)

XXXXXXXX 00000000 00000000 <MB10> <86>

XXXXXXXX 00000000 00000000 <MB11>

XXXXXXXX 00000000 <MB10> <MB12>

XXXXXXXX <MB10> <MB11> <MB13>

<dcalage d'un bit de ANNA par rapport au dbut du FB> 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.

aprs excution de L P# ANNA (dans la FC)

<une adresse interzone de la donne transmise ANNA> X = "1" ou "0"

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

135

Oprations de chargement et de transfert 9.3 L STW Charger mot d'tat dans l'accumulateur 1

9.3
Format

L STW

Charger mot d'tat dans l'accumulateur 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L Explication //Charger le contenu du mot d'tat dans l'accumulateur 1.

STW

Le contenu de l'accumulateur 1 aprs excution de L STW est le suivant :


Bits 31-9 8 7 6 5 4 3 2 1 0

Contenu :

RB

BI1

BI0

DEB

DM

OU

ETAT

RLG

/PI

136

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

9.4 LAR1

Oprations de chargement et de transfert Charger contenu de l'accumulateur 1 dans registre d'adresse 1

9.4

LAR1 Charger contenu de l'accumulateur 1 dans registre d'adresse 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

137

Oprations de chargement et de transfert 9.5 LAR1 <D> Charger pointeur de 32 bits dans registre d'adresse 1

9.5
Format

LAR1 <D>

Charger pointeur de 32 bits dans registre d'adresse 1

LAR1 <D>
Paramtre Type de donnes Zone de mmoire Adresse source

<D>

DWORD Constante pointeur

D, M, L

0...65532

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples : Adresses directes


LIST LAR1 LAR1 LAR1 LAR1 Explication //Charger dans //Charger dans //Charger dans //LD180. //Charger dans

DBD 20 DID 30 LD 180 MD 24

AR1 le pointeur figurant dans le double mot de donnes DBD20. AR1 le pointeur figurant dans le double mot d'instance DID30. AR1 le pointeur figurant dans le double mot de donnes locales AR1 le pointeur figurant dans le double mot de mmento MD24.

Exemple : Constante pointeur


LIST LAR1 Explication //Charger une constante de pointeur de 32 bits dans AR1.

P#M100.0

138

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

9.6 LAR1 AR2

Oprations de chargement et de transfert Charger contenu du registre d'adresse 2 dans registre d'adresse 1

9.6

LAR1 AR2 Charger contenu du registre d'adresse 2 dans registre d'adresse 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

9.7

LAR2 Charger contenu de l'accumulateur 1 dans registre d'adresse 2

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

139

Oprations de chargement et de transfert 9.8 LAR2 <D> Charger pointeur de 32 bits dans registre d'adresse 2

9.8
Format

LAR2 <D>

Charger pointeur de 32 bits dans registre d'adresse 2

LAR2 <D>
Paramtre Type de donnes Zone de mmoire Adresse source

<D>

DWORD Constante pointeur

D, M, L

0...65532

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples : Adresses directes


LIST LAR2 LAR2 LAR2 LAR2 Explication //Charger dans //Charger dans //Charger dans //LD180. //Charger dans

DBD 20 DID 30 LD 180 MD 24

AR2 le pointeur figurant dans le double mot de donnes DBD20. AR2 le pointeur figurant dans le double mot d'instance DID30. AR2 le pointeur figurant dans le double mot de donnes locales AR2 le pointeur figurant dans le double mot de mmento MD24.

Exemple : Constante pointeur


LIST LAR2 Explication //Charger une constante de pointeur de 32 bits dans AR2.

P#M100.0

140

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de chargement et de transfert 9.9 T Transfrer

9.9
Format

Transfrer

T <oprande>
Paramtre Type de donnes Zone de mmoire Adresse source

<oprande>

BYTE WORD DWORD

E, A, PA, M, L, D

0...65535 0...65534 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples
LIST T T T 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.

AB10 MW14 DBD2

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

141

Oprations de chargement et de transfert 9.10 T STW Transfrer accumulateur 1 dans mot d'tat

9.10
Format

T STW

Transfrer accumulateur 1 dans mot d'tat

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. Remarque : dans la gamme de CPU S7-300, les bits du mot d'tat /ER, STA et OR ne sont pas dcrits par l'instruction T STW. Seuls les bit 1, 4, 5, 6, 7 et 8 sont crits selon l'affectation de bits de l'AKKU1.

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST T Explication //Transfrer les bits 0 8 de l'accumulateur 1 dans le mot d'tat.

STW

Les bits dans l'accumulateur 1 contiennent les bits d'tat suivants :


Bits 31-9 8 7 6 5 4 3 2 1 0

Contenu :

RB

BI1

BI0

DEB

DM

OU

ETAT

RLG

/PI

* Ces bits ne sont pas transfrs.

142

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

9.11 TAR

Oprations de chargement et de transfert Permuter registre d'adresse 1 avec registre d'adresse 2

9.11
Format

TAR

Permuter registre d'adresse 1 avec registre d'adresse 2

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

9.12
Format

TAR1

Transfrer registre d'adresse 1 dans l'accumulateur 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

143

Oprations de chargement et de transfert 9.13 TAR1 <D> Transfrer registre d'adresse 1 l'adresse de destination (32 bits)

9.13

TAR1 <D> Transfrer registre d'adresse 1 l'adresse de destination (32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples
LIST TAR1 TAR1 TAR1 TAR1 Explication //Transfrer //Transfrer //Transfrer //Transfrer

DBD20 DID30 LD18 MD24

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.

144

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

9.14 TAR1 AR2

Oprations de chargement et de transfert Transfrer registre d'adresse 1 dans registre d'adresse 2

9.14

TAR1 AR2 Transfrer registre d'adresse 1 dans registre d'adresse 2

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

9.15
Format

TAR2 Transfrer registre d'adresse 2 dans l'accumulateur 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

145

Oprations de chargement et de transfert 9.16 TAR2 <D> Transfrer registre d'adresse 2 l'adresse de destination (32 bits)

9.16

TAR2 <D> Transfrer registre d'adresse 2 l'adresse de destination (32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples
LIST TAR2 TAR2 TAR2 TAR2 Explication //Transfrer //Transfrer //Transfrer //Transfrer

DBD20 DID30 LD18 MD24

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.

146

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

10
10.1

Oprations de gestion d'excution de programme


Vue d'ensemble des oprations de gestion d'excution de programme

Description
Vous disposez des oprations de gestion de programme suivantes : BE BEB BEA CALL CC UC Fin de bloc Fin de bloc conditionnelle Fin de bloc inconditionnelle Appel de bloc Appel de bloc conditionnel Appel de bloc inconditionnel

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 Sauvegarder RLG dans pile MCR, dbut de zone MCR Fin de zone MCR

MCRA Activer la zone MCR MCRD Dsactiver la zone MCR

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

147

Oprations de gestion d'excution de programme 10.2 BE Fin de bloc

10.2
Format

BE

Fin de bloc

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U SPB L T U U S BE NOP 0 E 1.0 SUIV EW4 EW10 E 6.0 E 6.1 M 12.0 Explication //Saut au repre de saut SUIV si le rsultat logique gale 1 (E 1.0 = 1). //Poursuivre ici si le saut ne s'excute pas.

SUIV:

//Fin de bloc. //Poursuivre ici si le saut s'excute.

148

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.3 BEB Fin de bloc conditionnelle

10.3
Format

BEB

Fin de bloc conditionnelle

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U BEB L T 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).

E 1.0 EW4 MW10

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

149

Oprations de gestion d'excution de programme 10.4 BEA Fin de bloc inconditionnelle

10.4
Format

BEA

Fin de bloc inconditionnelle

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U SPB L T U U S BEA NOP 0 E 1.0 SUIV EW4 EW10 E 6.0 E 6.1 M 12.0 Explication //Saut au repre de saut SUIV si le rsultat logique RLG gale 1 //(E 1.0 = 1). //Poursuivre ici si le saut ne s'excute pas.

SUIV:

//Fin de bloc inconditionnelle. //Poursuivre ici si le saut s'excute.

150

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.5 CALL Appel de bloc

10.5
Format

CALL

Appel de bloc

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.

Exemple : CALL FB1, DB1 ou CALL REMPLIR1, SUBST1


Bloc de code Type de bloc Syntaxe pour l'appel (adressage absolu)

FC SFC FB SFB

Fonction Fonction systme Bloc fonctionnel Bloc fonctionnel systme

CALL FCn CALL SFCn CALL FBn1,DBn2 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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

151

Oprations de gestion d'excution de programme 10.5 CALL Appel de bloc

Transfert de paramtres ( cet effet, travaillez en mode de traitement incrmental)


Le bloc appelant peut changer des paramtres avec le bloc appel l'aide de la liste de variables. Cette liste est automatiquement complte dans votre programme LIST si vous entrez une instruction CALL correcte. Si vous appelez un FB, un SFB, une FC ou une SFC et si la table de dclaration des variables du bloc appel comporte des dclarations de type IN, OUT et IN_OUT, ces variables seront ajoutes dans le programme du bloc appelant comme liste des paramtres formels. Vous devez, lors de l'appel de FC et de SFC, affecter des paramtres effectifs du bloc de code appelant aux paramtres formels. Lors de l'appel de FB et de SFB, vous devez uniquement indiquer les paramtres effectifs devant changer par rapport au dernier appel, car les paramtres effectifs sont sauvegards dans le DB d'instance aprs le traitement du FB. Si le paramtre effectif est un DB, il faut toujours indiquer l'adresse absolue entire, par exemple DB1, DBW2. 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple 1 : Affectation de paramtres l'appel de la fonction FC6


CALL FC6 Paramtre formel NO OF TOOL TIME OUT FOUND ERROR

Paramtre effectif := MW100 := MW110 := A 0.1 := A 100.0

Exemple 2 : Appel d'une SFC sans paramtre


LIST CALL SFC43 Explication //Appeler SFC43 pour redmarrer la surveillance du temps (sans paramtre).

152

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.5 CALL Appel de bloc

Exemple 3 : Appel du FB99 avec le bloc de donnes d'instance DB1


CALL FB99,DB1 Paramtre formel MAX_RPM MIN_RPM MAX_POWER MAX_TEMP

Paramtre effectif := #RPM1_MAX := #RPM2 := #POWER := #TEMP

Exemple 4 : Appel du FB99 avec le bloc de donnes d'instance DB2


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

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

153

Oprations de gestion d'excution de programme 10.6 Appeler FB

10.6
Format

Appeler FB

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.

Transfert de paramtres ( cet effet, travaillez en mode de traitement incrmental)


Le bloc appelant peut changer des paramtres avec le bloc appel l'aide de la liste de variables. Cette liste est automatiquement complte dans votre programme LIST si vous entrez une instruction CALL correcte. Si vous appelez un FB dont la table de dclaration des variables comporte des dclarations de type IN, OUT et IN_OUT, ces variables seront ajoutes dans le programme du bloc appelant comme liste des paramtres formels. Lors de l'appel de FB, vous devez uniquement indiquer les paramtres effectifs devant changer par rapport au dernier appel, car les paramtres effectifs sont sauvegards dans le DB d'instance aprs le traitement du FB. Si le paramtre effectif est un DB, il faut toujours indiquer l'adresse absolue entire, par exemple DB1, DBW2. 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

154

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.6 Appeler FB

Exemple 1 : Appel du FB99 avec le bloc de donnes d'instance DB1


CALL FB99,DB1 Paramtre formel MAX_RPM MIN_RPM MAX_POWER MAX_TEMP

Paramtre effectif := #RPM1_MAX := #RPM1 := #POWER1 := #TEMP1

Exemple 2 : Appel du FB99 avec le bloc de donnes d'instance DB2


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

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

155

Oprations de gestion d'excution de programme 10.7 Appeler FC

10.7
Format

Appeler FC

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.

Transfert de paramtres ( cet effet, travaillez en mode de traitement incrmental)


Le bloc appelant peut changer des paramtres avec le bloc appel l'aide de la liste de variables. Cette liste est automatiquement complte dans votre programme LIST si vous entrez une instruction CALL correcte. Si vous appelez une FC dont la table de dclaration des variables comporte des dclarations de type IN, OUT et IN_OUT, ces variables seront ajoutes dans le programme du bloc appelant comme liste des paramtres formels. Vous devez, lors de l'appel de FC, affecter des paramtres effectifs du bloc de code appelant aux paramtres formels. 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

156

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.7 Appeler FC

Exemple : Affectation de paramtres l'appel de la fonction FC6


CALL FC6 Paramtre formel NO OF TOOL TIME OUT FOUND ERROR

Paramtre effectif := MW100 := MW110 := A 0.1 := A 100.0

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

157

Oprations de gestion d'excution de programme 10.8 Appeler SFB

10.8
Format

Appeler SFB

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.

Transfert de paramtres ( cet effet, travaillez en mode de traitement incrmental)


Le bloc appelant peut changer des paramtres avec le bloc appel l'aide de la liste de variables. Cette liste est automatiquement complte dans votre programme LIST si vous entrez une instruction CALL correcte. Si vous appelez un FB dont la table de dclaration des variables comporte des dclarations de type IN, OUT et IN_OUT, ces variables seront ajoutes dans le programme du bloc appelant comme liste des paramtres formels. Lors de l'appel de SFB, vous devez uniquement indiquer les paramtres effectifs devant changer par rapport au dernier appel, car les paramtres effectifs sont sauvegards dans le DB d'instance aprs le traitement du SFB. Si le paramtre effectif est un DB, il faut toujours indiquer l'adresse absolue entire, par exemple DB1, DBW2. 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.

158

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.8 Appeler SFB

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

159

Oprations de gestion d'excution de programme 10.9 Appeler SFC

10.9
Format

Appeler SFC

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.

Transfert de paramtres ( cet effet, travaillez en mode de traitement incrmental)


Le bloc appelant peut changer des paramtres avec le bloc appel l'aide de la liste de variables. Cette liste est automatiquement complte dans votre programme LIST si vous entrez une instruction CALL correcte. Si vous appelez une FC dont la table de dclaration des variables comporte des dclarations de type IN, OUT et IN_OUT, ces variables seront ajoutes dans le programme du bloc appelant comme liste des paramtres formels. Vous devez, lors de l'appel de SFC, affecter des paramtres effectifs du bloc de code appelant aux paramtres formels. 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.

160

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.9 Appeler SFC

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple : Appel d'une SFC sans paramtre


LIST CALL Explication //Appeler SFC43 pour redmarrer la surveillance du temps (sans paramtre).

SFC43

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

161

Oprations de gestion d'excution de programme 10.10 Appeler multi-instance

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

10.11 Appeler un bloc dans une bibliothque


La liste des bibliothques connues dans le gestionnaire de projets SIMATIC vous est propose. Vous pouvez y choisir des blocs 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.

162

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.12 CC Appel de bloc conditionnel

10.12 CC
Format

Appel de bloc conditionnel

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U CC U 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.

E 2.0 FC6 M3.0

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. L'utilisation d'une variable de type "BlockFB" ou "BlockFC" est interdite avec l'opration CC. Comme vous ne pouvez pas indiquer de bloc de donnes dans l'oprande de l'instruction pour un appel avec l'opration CC, vous ne pouvez utiliser cette opration que pour des blocs sans paramtres de bloc et donnes locales statiques.
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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

163

Oprations de gestion d'excution de programme 10.13 UC Appel de bloc inconditionnel

10.13 UC
Format

Appel de bloc inconditionnel

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

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. L'utilisation d'une variable de type "BlockFB" ou "BlockFC" est interdite avec l'opration UC. Comme vous ne pouvez pas indiquer de bloc de donnes dans l'oprande de l'instruction pour un appel avec l'opration UC, vous ne pouvez utiliser cette opration que pour des blocs sans paramtres de bloc et donnes locales statiques.
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.

164

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.14 Relais de masquage (Master Control Relay, MCR)

10.14

Relais de masquage (Master Control Relay, MCR)


Remarques importantes sur l'utilisation de la fonctionnalit MCR

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.

Ractions des oprations dpendant de l'tat de signal du bit MCR


Etat de signal du MCR = <bit> S <bit>, R <bit> T <octet>, T <mot> T <double mot>

0 (HORS FONCTION)

Ecrit 0. Imite un relais passant l'tat de repos en cas de perte de tension. Excution normale.

N'crit rien.

Ecrit 0.

Imite un relais restant Imite un composant produisant l'tat en vigueur en cas de une valeur de 0 en cas de perte perte de tension. de tension. Excution normale. Excution normale.

1 (EN FONCTION)

MCR( : Dbut de zone MCR et )MCR : Fin de zone MCR


Le MCR est command par une pile de un bit de large et de huit bits de profondeur. Le MCR est actif tant que toutes les huit entres galent 1. L'opration MCR( copie le bit RLG dans la pile MCR. L'opration )MCR annule la dernire entre de la pile et met l'emplacement libr 1. Les oprations MCR( et )MCR doivent toujours tre utilises par paires. Une erreur MCR (MCRF) est signale si plus de huit oprations MCR( se suivent ou si une opration )MCR doit tre excute alors que la pile est vide.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

165

Oprations de gestion d'excution de programme 10.14 Relais de masquage (Master Control Relay, MCR)

MCRA : Activer la zone MCR et MCRD : Dsactiver la zone MCR


Les oprations MCRA et MCRD doivent toujours tre utilises par paires. Les instructions entre MCRA et MCRD dpendent de l'tat de signal du bit MCR. En revanche, les instructions en dehors de la squence MCRA-MCRD ne dpendent pas de l'tat de signal de ce bit. Vous devez programmer la relation de dpendance au MCR des fonctions (FC) et des blocs fonctionnels (FB) dans les blocs eux-mmes en utilisant l'opration MCRA dans le bloc appel.

166

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.15 Remarques importantes sur l'utilisation de la fonctionnalit MCR

10.15 Remarques importantes sur l'utilisation de la fonctionnalit MCR

Attention avec les blocs dans lesquels le relais de masquage a t activ par l'instruction MCRA :

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

Danger : arrt de l'AP ou comportement indfini de la dure d'excution ! Pour les calculs d'adresses, le compilateur accde galement en criture aux donnes locales suivant les variables temporaires dfinies dans VAR_TEMP. De ce fait, les squences d'instructions suivantes mettent l'AP l'arrt ou conduisent des comportements indfinis de la dure d'excution : Accs des paramtres formels

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. L'accs un paramtre de type BLOCK_DB dans un FB admettant les multi-instances (bloc de version 2) ouvre le DB 0. Les accs ultrieurs aux donnes mettent la CPU l'arrt. Pour TIMER, COUNTER, BLOCK_FC, BLOCK_FB se sont aussi toujours T 0, Z 0, FC 0 ou FB 0 qui sont utiliss.

Transmission des paramtres


Appels pour lesquels des paramtres sont transmis.

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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

167

Oprations de gestion d'excution de programme 10.16 MCR( Sauvegarder RLG dans pile MCR, dbut de zone MCR

10.16 MCR(

Sauvegarder RLG dans pile MCR, dbut de zone MCR

Remarques importantes sur l'utilisation de la fonctionnalit 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.

Ractions des oprations dpendant de l'tat de signal du bit MCR


Etat de signal du MCR = <bit> S <bit>, R <bit> T <octet>, T <mot> T <double mot>

0 (HORS FONCTION)

Ecrit 0. Imite un relais passant l'tat de repos en cas de perte de tension. Excution normale.

N'crit rien. Imite un relais restant l'tat en vigueur en cas de perte de tension. Excution normale.

Ecrit 0. Imite un composant produisant une valeur de 0 en cas de perte de tension. Excution normale.

1 (EN FONCTION)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

168

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

10.16 MCR(

Oprations de gestion d'excution de programme Sauvegarder RLG dans pile MCR, dbut de zone MCR

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). E 4.0 A 8.0 MW20 AW10 //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.

U = L T )MCR MCRD U =

E 1.1 A 8.1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

169

Oprations de gestion d'excution de programme 10.17 )MCR Fin de zone MCR

10.17 )MCR

Fin de zone MCR

Remarques importantes sur l'utilisation de la fonctionnalit 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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

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). E 4.0 A 8.0 MW20 AW10 //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.

U = L T )MCR MCRD U =

E 1.1 A 8.1

170

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de gestion d'excution de programme 10.18 MCRA Activer la zone MCR

10.18 MCRA

Activer la zone MCR

Remarques importantes sur l'utilisation de la fonctionnalit MCR

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

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). E 4.0 A 8.0 MW20 AW10 //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.

U = L T )MCR MCRD U =

E 1.1 A 8.1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

171

Oprations de gestion d'excution de programme 10.19 MCRD Dsactiver la zone MCR

10.19 MCRD

Dsactiver la zone MCR

Remarques importantes sur l'utilisation de la fonctionnalit MCR

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

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). E 4.0 A 8.0 MW20 AW10 //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.

U = L T )MCR MCRD U =

E 1.1 A 8.1

172

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

11
11.1

Oprations de dcalage et de rotation


Oprations de dcalage

11.1.1 Vue d'ensemble des oprations de dcalage

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 Dcalage vers la droite d'un entier avec signe (16 bits) Dcalage vers la droite d'un entier avec signe (32 bits) Dcalage vers la gauche d'un mot (16 bits) Dcalage vers la droite d'un mot (16 bits) Dcalage vers la gauche d'un double mot (32 bits) Dcalage vers la droite d'un double mot (32 bits)

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

173

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

11.1.2 SSI

Dcalage vers la droite d'un entier avec signe (16 bits)

Formats
SSI SSI <nombre>
Oprande Type de donnes Description

<nombre>

Entier non sign

Nombre de bits dcaler ; plage de dcalage de 0 15

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

174

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

Exemples
Contenu ACCU1-H ACCU1-L

Bit avant excution de SSI 6 aprs excution de SSI 6

31 . . . 0101 0101

.. 1111 1111

.. 0110 0110

. . . 16 0100 0100

15 . . . 1001 1111

.. 1101 1110

.. 0011 0111

...0 1011 0100

Exemple 1
LIST L SSI T 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.

MW4 6 MW8

Exemple 2
LIST L L SSI 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.

+3 MW20

SPP

SUIV

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

175

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

11.1.3 SSD

Dcalage vers la droite d'un entier avec signe (32 bits)

Formats
SSD SSD <nombre>
Oprande Type de donnes Description

<nombre>

Entier non sign

Nombre de bits dcaler ; plage de dcalage de 0 32

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

176

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

Exemples
Contenu ACCU1-H ACCU1-L

Bit avant excution de SSD 7 aprs excution de SSD 7

31 . . . 1000 1111

.. 1111 1111

.. 0110 0001

. . . 16 0100 1110

15 . . . 0101 1100

.. 1101 1000

.. 0011 1011

...0 1011 1010

Exemple 1
LIST L SSD T 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.

MD4 7 MD8

Exemple 2
LIST L L SSD 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.

+3 MD20

SPP

SUIV

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

177

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

11.1.4 SLW

Dcalage vers la gauche d'un mot (16 bits)

Formats
SLW SLW <nombre>
Oprande Type de donnes Description

<nombre>

Entier non sign

Nombre de bits dcaler ; plage de dcalage de 0 15

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

178

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

Exemples
Contenu ACCU1-H ACCU1-L

Bit avant excution de SLW 5 aprs excution de SLW 5

31 . . . 0101 0101

.. 1111 1111

.. 0110 0110

. . . 16 0100 0100

15 . . . 0101 1010

.. 1101 0111

.. 0011 0110

...0 1011 0000

Exemple 1
LIST L SLW T 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.

MW4 5 MW8

Exemple 2
LIST L L 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.

+3 MW20

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

179

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

11.1.5 SRW

Dcalage vers la droite d'un mot (16 bits)

Formats
SRW SRW <nombre>
Oprande Type de donnes Description

<nombre>

Entier non sign

Nombre de bits dcaler ; plage de dcalage de 0 15

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

180

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

Exemples
Contenu ACCU1-H ACCU1-L

Bit avant excution de SRW 6 aprs excution de SRW 6

31 . . . 0101 0101

.. 1111 1111

.. 0110 0110

. . . 16 0100 0100

15 . . . 0101 0000

.. 1101 0001

.. 0011 0111

...0 1011 0100

Exemple 1
LIST L SRW T 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

MW4 6 MW8

Exemple 2
LIST L L 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.

+3 MW20

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

181

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

11.1.6 SLD

Dcalage vers la gauche d'un double mot (32 bits)

Formats
SLD SLD <nombre>
Oprande Type de donnes Description

<nombre>

Entier non sign

Nombre de bits dcaler ; plage de dcalage de 0 32

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

182

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

Exemples
Contenu ACCU1-H ACCU1-L

Bit avant excution de SLD 5 aprs excution de SLD 5

31 . . . 0101 1110

.. 1111 1100

.. 0110 1000

. . . 16 0100 1011

15 . . . 0101 1010

.. 1101 0111

.. 0011 0110

...0 1011 0000

Exemple 1
LIST L SLD T 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.

MD4 5 MD8

Exemple 2
LIST L L 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.

+3 MD20

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

183

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

11.1.7 SRD

Dcalage vers la droite d'un double mot (32 bits)

Formats
SRD SRD <nombre>
Oprande Type de donnes Description

<nombre>

Entier non sign

Nombre de bits dcaler ; plage de dcalage de 0 32

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples
Contenu ACCU1-H ACCU1-L

Bit avant excution de SRD 7 aprs excution de SRD 7

31 . . . 0101 0000

.. 1111 0000

.. 0110 1011

. . . 16 0100 1110

15 . . . 0101 1100

.. 1101 1000

.. 0011 1011

...0 1011 1010

184

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.1 Oprations de dcalage

Exemple 1
LIST L SRD T 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.

MD4 7 MD8

Exemple 2
LIST L L 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.

+3 MD20

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

185

Oprations de dcalage et de rotation 11.2 Oprations de rotation

11.2

Oprations de rotation

11.2.1 Vue d'ensemble des oprations de rotation

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 : RLD RRD RLDA RRDA Rotation vers la gauche d'un double mot (32 bits) Rotation vers la droite d'un double mot (32 bits) Rotation vers la gauche de l'accumulateur 1 via BI1 (32 bits) Rotation vers la droite de l'accumulateur 1 via BI1 (32 bits)

186

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.2 Oprations de rotation

11.2.2 RLD

Rotation vers la gauche d'un double mot (32 bits)

Formats
RLD RLD <nombre>
Oprande Type de donnes Description

<nombre>

Entier non sign

Nombre de bits objet de la rotation ; plage de rotation de 0 32

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

187

Oprations de dcalage et de rotation 11.2 Oprations de rotation

Exemples
Contenu ACCU1-H ACCU1-L

Bit avant excution de RLD 4 aprs excution de RLD 4

31 . . . 0101 1111

.. 1111 0110

.. 0110 0100

. . . 16 0100 0101

15 . . . 0101 1101

.. 1101 0011

.. 0011 1011

...0 1011 0101

Exemple 1
LIST L RLD T 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.

MD2 4 MD8

Exemple 2
LIST L L RLD +3 MD20 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.

SPP

SUIV

188

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.2 Oprations de rotation

11.2.3 RRD

Rotation vers la droite d'un double mot (32 bits)

Formats
RRD RRD <nombre>
Oprande Type de donnes Description

<nombre>

Entier non sign

Nombre de bits objet de la rotation ; plage de rotation de 0 32

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

189

Oprations de dcalage et de rotation 11.2 Oprations de rotation

Exemples
Contenu ACCU1-H ACCU1-L

Bit avant excution de RRD 4 aprs excution de RRD 4

31 . . . 0101 1011

.. 1111 0101

.. 0110 1111

. . . 16 0100 0110

15 . . . 0101 0100

.. 1101 0101

.. 0011 1101

...0 1011 0011

Exemple 1
LIST L RRD T 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.

MD2 4 MD8

Exemple 2
LIST L L RRD 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.

+3 MD20

SPP

SUIV

190

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de dcalage et de rotation 11.2 Oprations de rotation

11.2.4 RLDA

Rotation vers la gauche de l'accumulateur 1 via BI1 (32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples
Contenu BI1 X 0 ACCU1-H ACCU1-L

Bit avant excution de RLDA aprs excution de RLDA

31 . . .
0101

.. 1111 1110

.. 0110 1100

. . . 16 0100 1000

15 . . . 0101 1011

.. 1101 1010

.. 0011 0111

...0 1011 011X

1011

(X gale 0 ou 1, ancien tat de signal de BI1)


LIST L RLDA SPP 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.

MD2

SUIV

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

191

Oprations de dcalage et de rotation 11.2 Oprations de rotation

11.2.5 RRDA

Rotation vers la droite de l'accumulateur 1 via BI1 (32 bits)

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples
Contenu BI1 X 1 ACCU1-H ACCU1-L

Bit avant excution de RRDA aprs excution de RRDA

31 . . . 0101
X010

.. 1111 1111

.. 0110 1011

. . . 16 0100 0010

15 . . . 0101 0010

.. 1101 1110

.. 0011 1001

...0 1011 1101

(X gale 0 ou 1, ancien tat de signal de BI1)


LIST L RRDA SPP 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.

MD2

SUIV

192

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

12
12.1

Oprations de temporisation
Vue d'ensemble des oprations de temporisation

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 L LC R SI SV SE SS SA Valider temporisation Charger valeur de temps en cours comme nombre entier dans l'accumulateur 1 Charger valeur de temps en cours comme nombre DCB dans l'accumulateur 1 Remettre temporisation 0 Temporisation sous forme d'impulsion Temporisation sous forme d'impulsion prolonge Temporisation sous forme de retard la monte Temporisation sous forme de retard la monte mmoris Temporisation sous forme de retard la retombe

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

193

Oprations de temporisation 12.2 Adresse dune temporisation en mmoire et composants dune temporisation

12.2

Adresse dune temporisation en mmoire et composants dune temporisation

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

194

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de temporisation 12.2 Adresse dune temporisation en mmoire et composants dune 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 Code binaire de la base de temps

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 seconde 0,1 1 10 seconde seconde secondes

10MS 1S 10S

9S_990MS 16M_39S 2H_46M_30S

100MS 1M_39S_900MS

Configuration des bits dans la cellule de temporisation


Lorsquune temporisation est dmarre, le contenu de la cellule de temporisation est utilis comme valeur de temps. Les bits 0 11 de la cellule de temporisation contiennent la valeur de temps en format dcimal cod binaire (format DCB : chaque groupe de quatre bits contient le code binaire dune valeur dcimale). Les bits 12 et 13 contiennent la base de temps en code binaire. La figure suivante montre le contenu de la cellule de temporisation dans laquelle vous avez charg la valeur de temps 127 et une base de temps de 1 seconde.

15... x x

0 0

0 1

...8 7... 1 0 0 2

0 0

1 7

...0 1

Base de temps 1 seconde

Valeur de temps en format DBC (0 999)

Ces bits ne sont pas significatifs, cest--dire quils ne sont pas pris en compte lorsque la temporisation est dmarre.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

195

Oprations de temporisation 12.2 Adresse dune temporisation en mmoire et composants dune temporisation

Lecture de la valeur et de la base de temps


Chaque bote de temporisation possde deux sorties, DUAL (BI) et DEZ (BCD), pour lesquelles vous pouvez indiquer une adresse de mot. La sortie DUAL fournit la valeur de temps en format binaire. La sortie DEZ fournit la base de temps et la valeur de temps en format dcimal cod binaire (DCB).

Choix de la temporisation correcte


La vue densemble des cinq types de temporisations doit vous aider choisir la temporisation qui rpond le mieux vos besoins.

E 0.0

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

196

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de temporisation 12.2 Adresse dune temporisation en mmoire et composants dune temporisation

Temporisations S_IMPULS temporisation sous forme dimpulsion S_VIMP temporisation sous forme dimpulsion prolonge

Description

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.

S_EVERZ Le signal de sortie est gal 1 uniquement lorsque le temps programm sest temporisation sous forme de coul et que le signal dentre est toujours 1. retard la monte S_SEVERZ Le signal de sortie passe de 0 1 uniquement lorsque le temps programm sest temporisation sous forme de coul, quelle que soit la dure pendant laquelle le signal dentre reste 1. retard la monte mmoris S_AVERZ Le signal de sortie est gal 1 lorsque le signal dentre est gal 1 ou lorsque la temporisation sous forme de temporisation sexcute. La temporisation est dmarre lorsque le signal dentre retard la retombe passe de 1 0.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

197

Oprations de temporisation 12.3 FR Valider temporisation

12.3
Format

FR

Valider temporisation

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U FR U L SI U R U = L T Explication E 2.0 T1 E 2.1 S5T#10s T1 E 2.2 T1 T1 A 4.0 T1 MW10 //Valider la temporisation T1. //Dfinir une initialisation de 10 secondes dans l'accumulateur 1. //Dmarrer la temporisation T1 sous forme d'impulsion. //Remettre la temporisation T1 zro. //Interroger l'tat de signal de la temporisation T1. //Charger la valeur de temps en cours de la temporisation T1 sous forme de //nombre binaire.

198

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations de temporisation 12.3 FR Valider temporisation

RLG l'entre de validation E 2.0 RLG l'entre de dmarrage RLG l'entre de remise zro E 2.1 E 2.2

Raction de la temporisation Interroger l'tat de signal A 4.0 la sortie de la temporisation. Charger la temporisation: L, LC t = dure programme

(1) Le passage du RLG de 0 1 l'entre de validation, alors que la temporisation s'excute, redmarre la temporisation. Le temps programm est utilis comme temps en cours pour le redmarrage. Le passage du RLG de 1 0 l'entre de validation n'a pas d'influence. (2) Si le RLG passe de 0 1 l'entre de validation alors que la temporisation ne s'excute pas et qu'un RLG de 1 reste appliqu l'entre de dmarrage, la temporisation est galement dmarre sous forme d'impulsion avec la valeur de temps programme. (3) Le passage du RLG de 0 1 l'entre de validation alors qu'un RLG gal 0 reste appliqu l'entre de dmarrage n'a aucun effet sur la temporisation.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

199

Oprations de temporisation 12.4 L Charger valeur de temps en cours comme nombre entier dans l'accumulateur 1

12.4

L Charger valeur de temps en cours comme nombre entier dans l'accumulateur 1

Format
L <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
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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

200

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

12.4 L

Oprations de temporisation Charger valeur de temps en cours comme nombre entier dans l'accumulateur 1

Exemple
LIST L Explication //Charger dans l'accumulateur 1-L la valeur de temps de la temporisation T1 //en format binaire.

T1

Mot de temporisation pour la temporisation T1 en mmoire

15

14

13

12

11

10

Base de temps 00 = 10 ms 01 = 100 ms 10 = 1 s 11 = 10 s

Valeur de temps (0 999) binaire


L T1

Contenu de l'ACCU 1-L aprs l'instruction L T1

15

14

13

12

11

10

Tous "0"

Valeur de temps (0 999) binaire

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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

201

Oprations de temporisation 12.5 LC Charger valeur de temps en cours comme nombre DCB dans l'accumulateur 1

12.5

LC Charger valeur de temps en cours comme nombre DCB dans l'accumulateur 1

Format
LC <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
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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

202

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

12.5 LC

Oprations de temporisation Charger valeur de temps en cours comme nombre DCB dans l'accumulateur 1

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

Mot de temporisation pour la temporisation T1 en mmoire

15

14

13

12

11

10

Base de temps 00 = 10 ms 01 = 100 ms 10 = 1 s 11 = 10 s

Valeur de temps (0 999) binaire LC T1 binaire en DCB

Contenu de l'ACCU 1-L aprs l'instruction LC T1

0 2
15

0 2
14

0 2
13

0 2
12

11

2
2

10

2
1

Base de temps 00 = 10 ms 01 = 100 ms 10 = 1 s 11 = 10 s

10 Centaines

10 Dizaines

10 Units

Valeur de temps en format DCB

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

203

Oprations de temporisation 12.6 R Remettre temporisation 0

12.6
Format

Remettre temporisation 0

R <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
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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST U R Explication E 2.1 T1 //Interroger l'tat de signal l'entre E 2.1. Si le RLG passe de 0 1, //remettre la temporisation T1 zro.

204

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

12.7 SI

Oprations de temporisation Temporisation sous forme d'impulsion

12.7
Format

SI

Temporisation sous forme d'impulsion

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

205

Oprations de temporisation 12.7 SI Temporisation sous forme d'impulsion

Exemple
LIST U FR U L SI U R U = L T LC T Explication E 2.0 T1 E 2.1 S5T#10s T1 E 2.2 T1 T1 A 4.0 T1 MW10 T1 MW12 //Valider la temporisation T1. //Dfinir une initialisation de 10 secondes dans l'accumulateur 1. //Dmarrer la temporisation T1 sous forme d'impulsion. //Remettre la temporisation T1 zro. //Interroger l'tat de signal de la temporisation T1. //Charger la valeur de temps en cours de la temporisation T1 sous forme de //nombre binaire. //Charger la valeur de temps en cours de la temporisation T1 en format DCB.

Validation Dmarrage Mise zro Temporisation

E 2.0 E 2.1 E 2.2

t Sortie Chargement de la temporisation : L, LC t = dure programme A 4.0

206

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

12.8 SV

Oprations de temporisation Temporisation sous forme d'impulsion prolonge

12.8
Format

SV

Temporisation sous forme d'impulsion prolonge

SV <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
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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

207

Oprations de temporisation 12.8 SV Temporisation sous forme d'impulsion prolonge

Exemple
LIST U FR U L SV U R U = L T LC T Explication E 2.0 T1 E 2.1 S5T#10s T1 E 2.2 T1 T1 A 4.0 T1 MW10 T1 MW12 //Valider la temporisation T1. //Dfinir une initialisation de 10 secondes dans l'accumulateur 1. //Dmarrer la temporisation T1 sous forme d'impulsion prolonge. //Remettre la temporisation T1 zro. //Interroger l'tat de signal de la temporisation T1. //Charger la valeur de temps en cours de la temporisation T1 sous forme de //nombre binaire. //Charger la valeur de temps en cours de la temporisation T1 en format DCB.

Validation Dmarrage Mise zro Temporisation

E 2.0 E 2.1 E 2.2

t Sortie A 4.0

Chargement de la temporisation : L, LC

t = dure programme

208

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

12.9 SE

Oprations de temporisation Temporisation sous forme de retard la monte

12.9
Format

SE

Temporisation sous forme de retard la monte

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

209

Oprations de temporisation 12.9 SE Temporisation sous forme de retard la monte

Exemple
LIST U FR U L SE U R U = L T LC T Explication E 2.0 T1 E 2.1 S5T#10s T1 E 2.2 T1 T1 A 4.0 T1 MW10 T1 MW12 //Valider la temporisation T1. //Dfinir une initialisation de 10 secondes dans l'accumulateur 1. //Dmarrer la temporisation T1 sous forme de retard la monte. //Remettre la temporisation T1 zro. //Interroger l'tat de signal de la temporisation T1. //Charger la valeur de temps en cours de la temporisation T1 sous forme de //nombre binaire. //Charger la valeur de temps en cours de la temporisation T1 en format DCB.

Validation Dmarrage Mise zro Temporisation

E 2.0 E 2.1 E 2.2

t Sortie A 4.0

Chargement de la temporisation : L, LC

t = dure programme

210

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

12.10 SS

Oprations de temporisation Temporisation sous forme de retard la monte mmoris

12.10 SS
Format

Temporisation sous forme de retard la monte mmoris

SS <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
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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

211

Oprations de temporisation 12.10 SS Temporisation sous forme de retard la monte mmoris

Exemple
LIST U FR U L SS U R U = L T LC T Explication E 2.0 T1 E 2.1 S5T#10s T1 E 2.2 T1 T1 A 4.0 T1 MW10 T1 MW12 //Valider la temporisation T1. //Dfinir une initialisation de 10 secondes dans l'accumulateur 1. //Dmarrer la temporisation T1 sous forme de retard la monte mmoris. //Remettre la temporisation T1 zro. //Interroger l'tat de signal de la temporisation T1. //Charger la valeur de temps en cours de la temporisation T1 sous forme de //nombre binaire. //Charger la valeur de temps en cours de la temporisation T1 en format DCB.

Validation Dmarrage Mise zro Temporisation

E 2.0 E 2.1 E 2.2

t Sortie A 4.0

Chargement de la temporisation : L, LC t = dure programme

212

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

12.11 SA

Oprations de temporisation Temporisation sous forme de retard la retombe

12.11 SA
Format

Temporisation sous forme de retard la retombe

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

213

Oprations de temporisation 12.11 SA Temporisation sous forme de retard la retombe

Exemple
LIST U FR U L SA U R U = L T LC T Explication E 2.0 T1 E 2.1 S5T#10s T1 E 2.2 T1 T1 A 4.0 T1 MW10 T1 MW12 //Valider la temporisation T1. //Dfinir une initialisation de 10 secondes dans l'accumulateur 1. //Dmarrer la temporisation T1 sous forme de retard la retombe. //Remettre la temporisation T1 zro. //Interroger l'tat de signal de la temporisation T1. //Charger la valeur de temps en cours de la temporisation T1 sous forme de //nombre binaire. //Charger la valeur de temps en cours de la temporisation T1 en format DCB.

Validation Dmarrage Mise zro Temporisation Sortie

E 2.0 E 2.1 E 2.2


t t

A 4.0

Chargement de la temporisation : L, LC

t = dure programme

214

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

13
13.1

Oprations combinatoires sur mots


Vue d'ensemble des oprations combinatoires sur mots

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 ET mot (16 bits) OU mot (16 bits) OU exclusif mot (16 bits) ET double mot (32 bits) OU double mot (32 bits) OU exclusif double mot (32 bits)

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

215

Oprations combinatoires sur mots 13.2 UW ET mot (16 bits)

13.2

UW

ET mot (16 bits)

Formats
UW UW <constante>
Oprande Type de donnes Description

<constante>

WORD, constante (16 bits)

Profil binaire combiner l'accumulateur 1-L selon la table de vrit ET

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.

UW : combine l'accumulateur 1-L l'accumulateur 2-L. UW <constante> : combine l'accumulateur 1-L une constante de 16 bits.

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemples
Bit 15 . . .. .. ...0

Accumulateur 1-L avant excution de UW Accumulateur 2-L ou constante (16 bits) Rsultat (ACCU 1-L) aprs excution de UW

0101 1111 0101

1001 0110 0000

0011 1011 0011

1011 0101 0001

216

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur mots 13.2 UW ET mot (16 bits)

Exemple 1
LIST L L UW 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.

EW20 EW22

MW 8

Exemple 2
LIST L UW 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).

EW20 W#16#0FFF

SPP

SUIV

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

217

Oprations combinatoires sur mots 13.3 OW OU mot (16 bits)

13.3

OW

OU mot (16 bits)

Formats
OW OW <constante>
Oprande Type de donnes Description

<constante>

WORD, constante (16 bits)

Profil binaire combiner l'accumulateur 1-L selon la table de vrit OU

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.

OW : combine l'accumulateur 1-L l'accumulateur 2-L. OW <constante> : combine l'accumulateur 1-L une constante de 16 bits.

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

218

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur mots 13.3 OW OU mot (16 bits)

Exemples
Bit 15 . . .. .. ...0

Accumulateur 1-L avant excution de OW Accumulateur 2-L ou constante (16 bits) Rsultat (ACCU 1-L) aprs excution de OW

0101 1111 1111

0101 0110 0111

0011 1011 1011

1011 0101 1111

Exemple 1
LIST L EW20 L EW22 OW 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.

MW8

Exemple 2
LIST L EW20 OW W#16#0FFF 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).

SPP

SUIV

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

219

Oprations combinatoires sur mots 13.4 XOW OU exclusif mot (16 bits)

13.4

XOW

OU exclusif mot (16 bits)

Formats
XOW XOW <constante>
Oprande Type de donnes Description

<constante>

WORD, constante (16 bits)

Profil binaire combiner l'accumulateur 1-L selon la table de vrit OU exclusif

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

XOW : combine l'accumulateur 1-L l'accumulateur 2-L. XOW <constante> : combine l'accumulateur 1-L une constante de 16 bits.

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

220

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur mots 13.4 XOW OU exclusif mot (16 bits)

Exemples
Bit 15 . . .. .. ...0

Accumulateur 1-L avant excution de XOW Accumulateur 2-L ou constante (16 bits) Rsultat (ACCU 1-L) aprs excution de XOW

0101 1111 1010

0101 0110 0011

0011 1011 1000

1011 0101 1110

Exemple 1
LIST L L XOW 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.

EW20 EW22

MW8

Exemple 2
LIST L XOW 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).

EW20 16#0FFF

SPP

SUIV

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

221

Oprations combinatoires sur mots 13.5 UD ET double mot (32 bits)

13.5

UD

ET double mot (32 bits)

Formats
UD UD <constante>
Oprande Type de donnes Description

<constante>

DWORD, constante (32 bits)

Profil binaire combiner l'accumulateur 1 selon la table de vrit ET

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.

UD : combine l'accumulateur 1 l'accumulateur 2. UD <constante> : combine l'accumulateur 1 une constante de 32 bits.

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

222

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur mots 13.5 UD ET double mot (32 bits)

Exemples
Bit 31 . . .. .. .. .. .. .. ...0

Accumulateur 1 avant excution de UD Accumulateur 2 ou constante (32 bits) Rsultat (ACCU 1) aprs excution de UD

0101 1111 0101

0000 0011 0000

1111 1000 1000

1100 0101 0100

1000 0111 0000

1001 0110 0000

0011 1011 0011

1011 0101 0001

Exemple 1
LIST L ED20 L ED24 UD 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.

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

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

223

Oprations combinatoires sur mots 13.6 OD OU double mot (32 bits)

13.6

OD

OU double mot (32 bits)

Formats

OD OD <constante>
Oprande Type de donnes Description

<constante>

DWORD, constante (32 bits)

Profil binaire combiner l'accumulateur 1 selon la table de vrit OU

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.

OD : combine l'accumulateur 1 l'accumulateur 2. OD <constante> : combine l'accumulateur 1 une constante de 32 bits.

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

224

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur mots 13.6 OD OU double mot (32 bits)

Exemples
Bit 31 . . .. .. .. .. .. .. ...0

Accumulateur 1 avant excution de OD Accumulateur 2 ou constante (32 bits) Rsultat (ACCU 1) aprs excution de OD

0101 1111 1111

0000 0011 0011

1111 1000 1111

1100 0101 1101

1000 0111 1111

0101 0110 0111

0011 1011 1011

1011 0101 1111

Exemple 1
LIST L ED20 L ED24 OD 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.

MD8

Exemple 2
LIST L ED20 OD DW#16#0FFF_EF21 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).

SPP

SUIV

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

225

Oprations combinatoires sur mots 13.7 XOD OU exclusif double mot (32 bits)

13.7

XOD

OU exclusif double mot (32 bits)

Formats
XOD XOD <constante>
Oprande Type de donnes Description

<constante>

DWORD, constante (32 bits)

Profil binaire combiner l'accumulateur 1 selon la table de vrit OU exclusif

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

XOD : combine l'accumulateur 1 l'accumulateur 2. XOD <constante> : combine l'accumulateur 1 une constante de 32 bits.

Mot d'tat
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

226

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations combinatoires sur mots 13.7 XOD OU exclusif double mot (32 bits)

Exemples
Bit 31 . . .. .. .. .. .. .. ...0

Accumulateur 1 avant excution de XOD Accumulateur 2 ou constante (32 bits) Rsultat (ACCU 1) aprs excution de XOD

0101 1111 1010

0000 0011 0011

1111 1000 0111

1100 0101 1001

1000 0111 1111

0101 0110 0011

0011 1011 1000

1011 0101 1110

Exemple 1
LIST L L XOD 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.

ED20 ED24

MD8

Exemple 2
LIST L XOD 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).

ED20 DW#16#0FFF_EF21

SPP

SUIV

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

227

Oprations combinatoires sur mots 13.7 XOD OU exclusif double mot (32 bits)

228

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

14
14.1

Oprations sur les accumulateurs


Vue d'ensemble des oprations sur les accumulateurs

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 NOP 1 Permuter accumulateur 1 et accumulateur 2 CPU avec deux accumulateurs CPU avec quatre accumulateurs CPU avec deux accumulateurs CPU avec quatre accumulateurs Entrer dans pile accumulateur Quitter pile accumulateur Incrmenter accumulateur 1-L-L Dcrmenter accumulateur 1-L-L Additionner accumulateur 1 au registre d'adresse 1 Additionner accumulateur 1 au registre d'adresse 2 Opration de composition d'image (opration nulle) Opration nulle Opration nulle

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

229

Oprations sur les accumulateurs 14.2 TAK Permuter accumulateur 1 et accumulateur 2

14.2
Format

TAK

Permuter accumulateur 1 et accumulateur 2

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple : Soustraire la plus petite valeur de la plus grande valeur


LIST L L >I SPB TAK -I T MW14 SUIV MW10 MW12 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.

SUIV:

Contenu

ACCU 1

ACCU 2

Avant excution de l'opration TAK Aprs excution de l'opration TAK

<MW12> <MW10>

<MW10> <MW12>

230

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations sur les accumulateurs 14.3 PUSH CPU avec deux accumulateurs

14.3
Format

PUSH

CPU avec deux accumulateurs

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L PUSH 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.

MW10

Contenu

ACCU 1

ACCU 2

Avant excution de l'opration PUSH Aprs excution de l'opration PUSH

<MW10> <MW10>

<X> <MW10>

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

231

Oprations sur les accumulateurs 14.4 PUSH CPU avec quatre accumulateurs

14.4
Format

PUSH CPU avec quatre accumulateurs

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L PUSH 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.

MW10

Contenu

ACCU 1

ACCU 2

ACCU 3

ACCU 4

Avant excution de l'opration PUSH Aprs excution de l'opration PUSH

valeur A valeur A

valeur B valeur A

valeur C valeur B

valeur D valeur C

232

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations sur les accumulateurs 14.5 POP CPU avec deux accumulateurs

14.5
Format

POP

CPU avec deux accumulateurs

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST T POP T 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.

MD10

MD14

Contenu

ACCU 1

ACCU 2

Avant excution de l'opration POP Aprs excution de l'opration POP

valeur A valeur B

valeur B valeur B

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

233

Oprations sur les accumulateurs 14.6 POP CPU avec quatre accumulateurs

14.6
Format

POP

CPU avec quatre accumulateurs

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST T POP Explication //Transfrer le contenu de l'accumulateur 1 //de mmento MD10. //Copier le contenu de l'accumulateur 2 dans //l'accumulateur 3 dans l'accumulateur 2 et //dans l'accumulateur 3. //Transfrer le contenu de l'accumulateur 1 //de mmento MD14.

MD10

(= valeur A) dans le double mot l'accumulateur 1, le contenu de le contenu de l'accumulateur 4 (= valeur B) dans le double mot

MD14

Contenu

ACCU 1

ACCU 2

ACCU 3

ACCU 4

Avant excution de l'opration POP Aprs excution de l'opration POP

valeur A valeur B

valeur B valeur C

valeur C valeur D

valeur D valeur D

234

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations sur les accumulateurs 14.7 ENT Entrer dans pile accumulateur

14.7
Format

ENT

Entrer dans pile accumulateur

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 L DBD0 DBD4 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 754 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.

+R L ENT L -R DBD12 DBD8

/R

DBD16

14.8
Format

LEAVE

Quitter pile accumulateur

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 Manuel de rfrence, 05/2010, A5E02790284-01

235

Oprations sur les accumulateurs 14.9 INC Incrmenter accumulateur 1-L-L

14.9
Format

INC

Incrmenter accumulateur 1-L-L

INC <entier, 8 bits>


Oprande Type de donnes Description

<entier, 8 bits>

Constante (entier, 8 bits)

Constante additionner au contenu de l'accumulateur 1-L-L, plage de 0 255

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L INC T 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.

MB22 1 MB22

236

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Oprations sur les accumulateurs 14.10 DEC Dcrmenter accumulateur 1-L-L

14.10 DEC
Format

Dcrmenter accumulateur 1-L-L

DEC <entier, 8 bits>


Oprande Type de donnes Description

<entier, 8 bits>

Constante (entier, 8 bits)

Constante soustraire du contenu de l'accumulateur 1-L-L, plage de 0 255

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Exemple
LIST L DEC T 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.

MB250 1 MB250

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

237

Oprations sur les accumulateurs 14.11 +AR1 Additionner accumulateur 1 au registre d'adresse 1

14.11 +AR1
Formats

Additionner accumulateur 1 au registre d'adresse 1

+AR1 +AR1 <P#octet.bit>


Oprande Type de donnes Description

<P#octet.bit>

Constante pointeur

Adresse additionne au registre d'adresse 1

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

238

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

14.11 +AR1

Oprations sur les accumulateurs Additionner accumulateur 1 au registre d'adresse 1

Exemple 1
LIST L +AR1 Explication //Charger la valeur dans l'accumulateur 1-L. //Additionner l'accumulateur 1-L (entier de 16 bits) au registre d'adresse 1.

+300

Exemple 2
LIST +AR1 Explication //Additionner le dcalage 300.0 au registre d'adresse 1.

P#300.0

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

239

Oprations sur les accumulateurs 14.12 +AR2 Additionner accumulateur 1 au registre d'adresse 2

14.12 +AR2
Formats

Additionner accumulateur 1 au registre d'adresse 2

+AR2 +AR2 <P#octet.bit>


Oprande Type de donnes Description

<P#octet.bit>

Constante pointeur

Adresse additionne au registre d'adresse 2

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

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 Explication //Additionner le dcalage 300.0 au registre d'adresse 2.

P#300.0

240

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

14.13 BLD

Oprations sur les accumulateurs Opration de composition d'image (opration nulle)

14.13 BLD
Format

Opration de composition d'image (opration nulle)

BLD <nombre>
Oprande Description

<nombre>

Numro de l'opration BLD ; plage de 0 255

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

14.14 NOP 0
Format
NOP 0

Opration nulle

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

241

Oprations sur les accumulateurs 14.15 NOP 1 Opration nulle

14.15 NOP 1
Format
NOP 1

Opration nulle

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
RB BI1 BI0 DEB DM OU ETAT RLG /PI

Ecriture :

242

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

A
A.1

Prsentation de toutes les oprations LIST


Oprations LIST classes d'aprs les abrviations allemandes (SIMATIC)
Abrviation anglaise Catalogue des lments de programme Description

Abrviation allemande

) *D *I *R /D /I /R ?D ?I ?R + +AR1 +AR2 +D +I +R ABS ACOS ASIN ATAN AUF BE

) *D *I *R /D /I /R ?D ?I ?R + +AR1 +AR2 +D +I +R ABS ACOS ASIN ATAN OPN BE

Combinaison sur bits Combinaison sur bits Fonction sur nombres entiers Fonction sur nombres entiers Fonction sur nombres virgule flottante Fonction sur nombres entiers Fonction sur nombres entiers Fonction sur nombres virgule flottante Comparaison Comparaison Comparaison Fonction sur nombres entiers Accumulateurs Accumulateurs Fonction sur nombres entiers Fonction sur nombres entiers Fonction sur nombres virgule flottante Fonction sur nombres virgule flottante Fonction sur nombres virgule flottante Fonction sur nombres virgule flottante Fonction sur nombres virgule flottante Blocs de donnes Gestion d'excution de programme

Affectation Fermer la parenthse d'une expression Multiplier accumulateur 1 par accumulateur 2 (entiers de 32 bits) Multiplier accumulateur 1 par accumulateur 2 (entiers de 16 bits) Multiplier accumulateur 1 par accumulateur 2 (rels IEEE 754, 32 bits) Diviser accumulateur 2 par accumulateur 1 (entiers de 32 bits) Diviser accumulateur 2 par accumulateur 1 (entiers de 16 bits) Diviser accumulateur 2 par accumulateur 1 (rels IEEE 754, 32 bits) Comparer entiers de 32 bits , <>, >, <, >, < Comparer entiers de 16 bits , <>, >, <, >, < Comparer rels de 32 bits , <>, >, <, >, < Additionner constante entire (16, 32 bits) Additionner accumulateur 1 au registre d'adresse 1 Additionner accumulateur 1 au registre d'adresse 2 Additionner accumulateurs 1 et 2 (entiers de 32 bits) Additionner accumulateurs 1 et 2 (entiers de 16 bits) Additionner accumulateurs 1 et 2 (rels IEEE 754, 32 bits) Valeur absolue d'un nombre virgule flottante (IEEE 754, 32 bits) Arc cosinus d'un nombre virgule flottante (32 bits) Arc sinus d'un nombre virgule flottante (32 bits) Arc tangente d'un nombre virgule flottante (32 bits) Ouvrir bloc de donnes Fin de bloc

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

243

Prsentation de toutes les oprations LIST A.1 Oprations LIST classes d'aprs les abrviations allemandes (SIMATIC)

Abrviation allemande

Abrviation anglaise

Catalogue des lments de programme

Description

BEA BEB BLD BTD BTI CALL CALL CALL CC CLR COS D DEC DTB DTR ENT EXP FN FP FR FR I INC INVD INVI ITB ITD L L STW L

BEU BEC BLD BTD BTI CALL CALL CALL CC CLR COS D DEC DTB DTR ENT EXP FN FP FR FR I INC INVD INVI ITB ITD L L STW L

Gestion d'excution de programme Gestion d'excution de programme Accumulateurs Conversions Conversions Gestion d'excution de programme Gestion d'excution de programme Gestion d'excution de programme Gestion d'excution de programme Combinaison sur bits Fonction sur nombres virgule flottante Fonction sur nombres entiers Accumulateurs Conversions Conversions Chargement/ Transfert Fonction sur nombres virgule flottante Combinaison sur bits Combinaison sur bits Compteurs Temporisations Fonction sur nombres entiers Accumulateurs Conversions Conversions Conversions Conversions Accumulateurs Chargement/ Transfert Temporisations

Fin de bloc inconditionnelle Fin de bloc conditionnelle Opration de composition d'image (opration nulle) Convertir DCB en entier de 32 bits Convertir DCB en entier de 16 bits Appel de bloc Appel de multi-instance Appel de bloc dans une bibliothque Appel de bloc conditionnel Mettre RLG 0 Cosinus d'angles comme nombres virgule flottante (32 bits) Soustraire accumulateur 1 de accumulateur 2 (entiers de 32 bits) Dcrmenter accumulateur 1-L-L Convertir entier de 32 bits en DCB Convertir entier de 32 bits en rel (IEEE 754 32 bits) Entrer dans pile accumulateur Valeur exponentielle d'un nombre virgule flottante (32 bits) Front descendant Front montant Valider compteur (valid, FR Z 0 Z 255) Valider temporisation Soustraire accumulateur 1 de accumulateur 2 (entiers de 16 bits) Incrmenter accumulateur 1-L-L Complment 1 d'entier de 32 bits Complment 1 d'entier de 16 bits Convertir entier de 16 bits en DCB Convertir entier de 16 bits en entier de 32 bits Charger Charger mot d'tat dans l'accumulateur 1 Charger valeur de temps en cours comme nombre entier dans l'accumulateur 1 (la valeur de temps en cours peut tre un nombre compris dans la plage de 0 255, par exemple : L T 32) Charger valeur de comptage en cours comme entier dans l'accumulateur 1 (la valeur de comptage en cours peut tre un nombre compris dans la plage de 0 255, par exemple : L Z 15) Charger longueur de DB global dans l'accumulateur 1 Charger numro de DB global dans l'accumulateur 1

Compteurs

L DBLG L DBNO

L DBLG L DBNO

Blocs de donnes Blocs de donnes

244

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Prsentation de toutes les oprations LIST A.1 Oprations LIST classes d'aprs les abrviations allemandes (SIMATIC)

Abrviation allemande

Abrviation anglaise

Catalogue des lments de programme

Description

L DILG L DINO LAR1 LAR1 LAR1 LAR2 LAR2 LC

L DILG L DINO LAR1 LAR1 LAR1 LAR2 LAR2 LC

Blocs de donnes Blocs de donnes Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Compteurs

Charger longueur de DB d'instance dans l'accumulateur 1 Charger numro de DB d'instance dans l'accumulateur 1 Charger contenu de l'accumulateur 1 dans registre d'adresse 1 Charger pointeur de 32 bits dans registre d'adresse 1 Charger contenu du registre d'adresse 2 dans registre d'adresse 1 Charger contenu de l'accumulateur 1 dans registre d'adresse 2 Charger pointeur de 32 bits dans registre d'adresse 2 Charger valeur de comptage en cours comme nombre DCB dans l'accumulateur 1 (la valeur de comptage en cours peut tre un nombre compris dans la plage de 0 255, par exemple : LC Z 15) Charger valeur de temps en cours comme nombre DCB dans l'accumulateur 1 (la valeur de temps en cours peut tre un nombre compris dans la plage de 0 255, par exemple : LC T 32) Quitter pile accumulateur Logarithme naturel d'un nombre virgule flottante (32 bits) Boucle de programme Sauvegarder RLG dans pile MCR, dbut de zone MCR Fin de zone MCR Activer la zone MCR Dsactiver la zone MCR Reste de division entire (32 bits) Complment 2 d'entier de 32 bits Complment 2 d'entier de 16 bits Inverser nombre virgule flottante (IEEE 754 32 bits) Opration nulle Opration nulle Ngation du RLG OU OU d'une expression OU double mot (32 bits) OU NON OU NON d'une expression OU mot (16 bits) POP CPU avec deux accumulateurs POP CPU avec quatre accumulateurs PUSH CPU avec deux accumulateurs PUSH CPU avec quatre accumulateurs Mettre 0

LC

LC

Temporisations

LEAVE LN LOOP MCR( )MCR MCRA MCRD MOD NEGD NEGI NEGR NOP 0 NOP 1 NOT O O( OD ON ON( OW POP POP PUSH PUSH R

LEAVE LN LOOP MCR( )MCR MCRA MCRD MOD NEGD NEGI NEGR NOP 0 NOP 1 NOT O O( OD ON ON( OW POP POP PUSH PUSH R

Accumulateurs Fonction sur nombres virgule flottante Sauts Gestion d'excution de programme Gestion d'excution de programme Gestion d'excution de programme Gestion d'excution de programme Fonction sur nombres entiers Conversions Conversions Conversions Accumulateurs Accumulateurs Combinaison sur bits Combinaison sur bits Combinaison sur bits Combinaison sur mots Combinaison sur bits Combinaison sur bits Combinaison sur mots Accumulateurs Accumulateurs Accumulateurs Accumulateurs Combinaison sur bits

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

245

Prsentation de toutes les oprations LIST A.1 Oprations LIST classes d'aprs les abrviations allemandes (SIMATIC)

Abrviation allemande

Abrviation anglaise

Catalogue des lments de programme

Description

R R R RLD RLDA RND RND RND+ RRD RRDA S S SA SAVE SE SET SI SIN SLD SLW SPA SPB SPBB SPBI SPBIN SPBN SPBNB SPL SPM SPMZ SPN SPO SPP SPPZ SPS SPU SPZ SQR SQRT SRD SRW

R R R RLD RLDA RND RND RND+ RRD RRDA S S SF SAVE SD SET SP SIN SLD SLW JU JC JCB JBI JNBI JCN JNB JL JM JMZ JN JO JP JPZ JOS JUO JZ SQR SQRT SRD SRW

Compteurs Temporisations Fonction sur nombres virgule flottante Dcalage/Rotation Dcalage/Rotation Conversions Conversions Conversions Dcalage/Rotation Dcalage/Rotation Combinaison sur bits Compteurs Temporisations Combinaison sur bits Temporisations Combinaison sur bits Temporisations Fonction sur nombres virgule flottante Dcalage/Rotation Dcalage/Rotation Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Fonction sur nombres virgule flottante Fonction sur nombres virgule flottante Dcalage/Rotation Dcalage/Rotation

Remettre compteur 0 (le compteur actuel peut tre un nombre compris dans la plage de 0 255, par exemple : R Z 15) Remettre temporisation 0 (la temporisation actuelle peut tre un nombre compris dans la plage de 0 255, par exemple : R T 32) Soustraire accumulateur 1 de accumulateur 2 (rels IEEE 754, 32 bits) Rotation vers la gauche d'un double mot (32 bits) Rotation vers la gauche de l'accumulateur 1 via BI1 (32 bits) Arrondir l'entier Arrondir l'entier infrieur Arrondir l'entier suprieur Rotation vers la droite d'un double mot (32 bits) Rotation vers la droite de l'accumulateur 1 via BI1 (32 bits) Mettre 1 Initialiser compteur (le compteur actuel peut tre un nombre compris dans la plage de 0 255, par exemple : S Z 15) Temporisation sous forme de retard la retombe Sauvegarder RLG dans le bit RB Temporisation sous forme de retard la monte Mettre 1 Temporisation sous forme d'impulsion Sinus d'angles comme nombres virgule flottante (32 bits) Dcalage vers la gauche d'un double mot (32 bits) Dcalage vers la gauche d'un mot (16 bits) Saut inconditionnel Saut si RLG est 1 Saut si RLG est 1 avec RB Saut si RB est 1 Saut si RB est 0 Saut si RLG est 0 Saut si RLG est 0 avec RB Saut vers liste Saut si moins Saut si infrieur ou gal 0 Saut si diffrent de 0 Saut si DEB est 1 Saut si plus Saut si suprieur ou gal 0 Saut si DM est 1 Saut si illicite Saut si gal 0 Carr d'un nombre virgule flottante (32 bits) Racine carre d'un nombre virgule flottante (32 bits) Dcalage vers la droite d'un double mot (32 bits) Dcalage vers la droite d'un mot (16 bits)

246

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Prsentation de toutes les oprations LIST A.1 Oprations LIST classes d'aprs les abrviations allemandes (SIMATIC)

Abrviation allemande

Abrviation anglaise

Catalogue des lments de programme

Description

SS SSD SSI SV T T STW TAD TAK TAN TAR TAR1 TAR1 TAR1 TAR2 TAR2 TAW TDB TRUNC U U( UC UD UN UN( UW X X( XN XN( XOD XOW ZR ZV

SS SSD SSI SE T T STW CAD TAK TAN CAR TAR1 TAR1 TAR1 TAR2 TAR2 CAW CDB TRUNC A A( UC AD AN AN( AW X X( XN XN( XOD XOW CD CU

Temporisations Dcalage/Rotation Dcalage/Rotation Temporisations Chargement/ Transfert Chargement/ Transfert Conversions Accumulateurs Fonction sur nombres virgule flottante Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Conversions Blocs de donnes Conversions Combinaison sur bits Combinaison sur bits Gestion d'excution de programme Combinaison sur mots Combinaison sur bits Combinaison sur bits Combinaison sur mots Combinaison sur bits Combinaison sur bits Combinaison sur bits Combinaison sur bits Combinaison sur mots Combinaison sur mots Compteurs Compteurs

Temporisation sous forme de retard la monte mmoris Dcalage vers la droite d'un entier avec signe (32 bits) Dcalage vers la droite d'un entier avec signe (16 bits) Temporisation sous forme d'impulsion prolonge Transfrer Transfrer accumulateur 1 dans mot d'tat Modifier l'ordre dans l'accumulateur 1 (32 bits) Permuter accumulateur 1 et accumulateur 2 Tangente d'angles comme nombres virgule flottante (32 bits) Permuter registre d'adresse 1 avec registre d'adresse 2 Transfrer registre d'adresse 1 dans l'accumulateur 1 Transfrer registre d'adresse 1 l'adresse de destination (32 bits) Transfrer registre d'adresse 1 dans registre d'adresse 2 Transfrer registre d'adresse 2 dans l'accumulateur 1 Transfrer registre d'adresse 2 l'adresse de destination (32 bits) Modifier l'ordre dans l'accumulateur 1 (16 bits) Permuter DB global et DB d'instance Arrondir par troncature ET ET d'une expression Appel de bloc inconditionnel ET double mot ET NON ET NON d'une expression ET mot (16 bits) OU exclusif OU exclusif d'une expression OU NON exclusif OU NON exclusif d'une expression OU exclusif double mot (32 bits) OU exclusif mot (16 bits) Dcrmenter Incrmenter

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

247

Prsentation de toutes les oprations LIST A.2 Oprations LIST classes d'aprs les abrviations anglaises (internationales)

A.2

Oprations LIST classes d'aprs les abrviations anglaises (internationales)


Abrviation allemande Catalogue des lments de programme Description

Abrviation anglaise

) *D *I *R /D /I /R ?D ?I ?R + +AR1 +AR2 +D +I +R A A( ABS ACOS AD AN AN( ASIN ATAN AW BE BEC

) *D *I *R /D /I /R ?D ?I ?R + +AR1 +AR2 +D +I +R U U( ABS ACOS UD UN UN( ASIN ATAN UW BE BEB

Combinaison sur bits Combinaison sur bits Fonction sur nombres entiers Fonction sur nombres entiers Fonction sur nombres virgule flottante Fonction sur nombres entiers Fonction sur nombres entiers Fonction sur nombres virgule flottante Comparaison Comparaison Comparaison Fonction sur nombres entiers Accumulateurs Accumulateurs Fonction sur nombres entiers Fonction sur nombres entiers Fonction sur nombres virgule flottante Combinaison sur bits Combinaison sur bits Fonction sur nombres virgule flottante Fonction sur nombres virgule flottante Combinaison sur mots Combinaison sur bits Combinaison sur bits Fonction sur nombres virgule flottante Fonction sur nombres virgule flottante Combinaison sur mots Gestion d'excution de programme Gestion d'excution de programme

Affectation Fermer la parenthse d'une expression Multiplier accumulateur 1 par accumulateur 2 (entiers de 32 bits) Multiplier accumulateur 1 par accumulateur 2 (entiers de 16 bits) Multiplier accumulateur 1 par accumulateur 2 (rels IEEE 754, 32 bits) Diviser accumulateur 2 par accumulateur 1 (entiers de 32 bits) Diviser accumulateur 2 par accumulateur 1 (entiers de 16 bits) Diviser accumulateur 2 par accumulateur 1 (rels IEEE 754, 32 bits) Comparer entiers de 32 bits , <>, >, <, >, < Comparer entiers de 16 bits , <>, >, <, >, < Comparer rels de 32 bits , <>, >, <, >, < Additionner constante entire (16, 32 bits) Additionner accumulateur 1 au registre d'adresse 1 Additionner accumulateur 1 au registre d'adresse 2 Additionner accumulateurs 1 et 2 (entiers de 32 bits) Additionner accumulateurs 1 et 2 (entiers de 16 bits) Additionner accumulateurs 1 et 2 (rels IEEE 754, 32 bits) ET ET d'une expression Valeur absolue d'un nombre virgule flottante (IEEE 754, 32 bits) Arc cosinus d'un nombre virgule flottante (32 bits) ET double mot ET NON ET NON d'une expression Arc sinus d'un nombre virgule flottante (32 bits) Arc tangente d'un nombre virgule flottante (32 bits) ET mot (16 bits) Fin de bloc Fin de bloc conditionnelle

248

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Prsentation de toutes les oprations LIST A.2 Oprations LIST classes d'aprs les abrviations anglaises (internationales)

Abrviation anglaise

Abrviation allemande

Catalogue des lments de programme

Description

BEU BLD BTD BTI CAD CALL CALL CALL CAR CAW CC CD CDB CLR COS CU D DEC DTB DTR ENT EXP FN FP FR FR I INC INVD INVI ITB ITD JBI JC JCB JCN JL

BEA BLD BTD BTI TAD CALL CALL CALL TAR TAW CC ZR TDB CLR COS ZV D DEC DTB DTR ENT EXP FN FP FR FR I INC INVD INVI ITB ITD SPBI SPB SPBB SPBN SPL

Gestion d'excution de programme Accumulateurs Conversions Conversions Conversions Gestion d'excution de programme Gestion d'excution de programme Gestion d'excution de programme Chargement/ Transfert Chargement/ Transfert Gestion d'excution de programme Compteurs Blocs de donnes Combinaison sur bits Fonction sur nombres virgule flottante Compteurs Fonction sur nombres entiers Accumulateurs Conversions Conversions Chargement/ Transfert Fonction sur nombres virgule flottante Combinaison sur bits Combinaison sur bits Compteurs Temporisations Fonction sur nombres entiers Accumulateurs Conversions Conversions Conversions Conversions Sauts Sauts Sauts Sauts Sauts

Fin de bloc inconditionnelle Opration de composition d'image (opration nulle) Convertir DCB en entier de 32 bits Convertir DCB en entier de 16 bits Modifier l'ordre dans l'accumulateur 1 (32 bits) Appel de bloc Appel de multi-instance Appel de bloc dans une bibliothque Permuter registre d'adresse 1 avec registre d'adresse 2 Modifier l'ordre dans l'accumulateur 1 (16 bits) Appel de bloc conditionnel Dcrmenter Permuter DB global et DB d'instance Mettre RLG 0 Cosinus d'angles comme nombres virgule flottante (32 bits) Incrmenter Soustraire accumulateur 1 de accumulateur 2 (entiers de 32 bits) Dcrmenter accumulateur 1-L-L Convertir entier de 32 bits en DCB Convertir entier de 32 bits en rel (IEEE 754 32 bits) Entrer dans pile accumulateur Valeur exponentielle d'un nombre virgule flottante (32 bits) Front descendant Front montant Valider compteur (valid, FR Z 0 Z 255) Valider temporisation Soustraire accumulateur 1 de accumulateur 2 (entiers de 16 bits) Incrmenter accumulateur 1-L-L Complment 1 d'entier de 32 bits Complment 1 d'entier de 16 bits Convertir entier de 16 bits en DCB Convertir entier de 16 bits en entier de 32 bits Saut si RB est 1 Saut si RLG est 1 Saut si RLG est 1 avec RB Saut si RLG est 0 Saut vers liste

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

249

Prsentation de toutes les oprations LIST A.2 Oprations LIST classes d'aprs les abrviations anglaises (internationales)

Abrviation anglaise

Abrviation allemande

Catalogue des lments de programme

Description

JM JMZ JN JNB JNBI JO JOS JP JPZ JU JUO JZ L L STW L

SPM SPMZ SPN SPBNB SPBIN SPO SPS SPP SPPZ SPA SPU SPZ L L STW L

Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Sauts Accumulateurs Chargement/ Transfert Temporisations

Saut si moins Saut si infrieur ou gal 0 Saut si diffrent de 0 Saut si RLG est 0 avec RB Saut si RB est 0 Saut si DEB est 1 Saut si DM est 1 Saut si plus Saut si suprieur ou gal 0 Saut inconditionnel Saut si illicite Saut si gal 0 Charger Charger mot d'tat dans l'accumulateur 1 Charger valeur de temps en cours comme nombre entier dans l'accumulateur 1 (la valeur de temps en cours peut tre un nombre compris dans la plage de 0 255, par exemple : L T 32) Charger valeur de comptage en cours comme entier dans l'accumulateur 1 (la valeur de comptage en cours peut tre un nombre compris dans la plage de 0 255, par exemple : L Z 15) Charger longueur de DB global dans l'accumulateur 1 Charger numro de DB global dans l'accumulateur 1 Charger longueur de DB d'instance dans l'accumulateur 1 Charger numro de DB d'instance dans l'accumulateur 1 Charger contenu de l'accumulateur 1 dans registre d'adresse 1 Charger pointeur de 32 bits dans registre d'adresse 1 Charger contenu du registre d'adresse 2 dans registre d'adresse 1 Charger contenu de l'accumulateur 1 dans registre d'adresse 2 Charger pointeur de 32 bits dans registre d'adresse 2

Compteurs

L DBLG L DBNO L DILG L DINO LAR1 LAR1 LAR1 LAR2 LAR2 LC

L DBLG L DBNO L DILG L DINO LAR1 LAR1 LAR1 LAR2 LAR2 LC

Blocs de donnes Blocs de donnes Blocs de donnes Blocs de donnes Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Compteurs

LC

LC

LEAVE LN LOOP MCR( )MCR

LEAVE LN LOOP MCR( )MCR

Charger valeur de comptage en cours comme nombre DCB dans l'accumulateur 1 (la valeur de comptage en cours peut tre un nombre compris dans la plage de 0 255, par exemple : LC Z 15) Temporisations Charger valeur de temps en cours comme nombre DCB dans l'accumulateur 1 (la valeur de temps en cours peut tre un nombre compris dans la plage de 0 255, par exemple : LC T 32) Accumulateurs Quitter pile accumulateur Fonction sur nombres Logarithme naturel d'un nombre virgule flottante (32 bits) virgule flottante Sauts Boucle de programme Gestion d'excution de Sauvegarder RLG dans pile MCR, dbut de zone MCR programme Gestion d'excution de Fin de zone MCR programme

250

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Prsentation de toutes les oprations LIST A.2 Oprations LIST classes d'aprs les abrviations anglaises (internationales)

Abrviation anglaise

Abrviation allemande

Catalogue des lments de programme

Description

MCRA MCRD MOD NEGD NEGI NEGR NOP 0 NOP 1 NOT O O( OD ON ON( OPN OW POP POP PUSH PUSH R R

MCRA MCRD MOD NEGD NEGI NEGR NOP 0 NOP 1 NOT O O( OD ON ON( AUF OW POP POP PUSH PUSH R R

Gestion d'excution de programme Gestion d'excution de programme Fonction sur nombres entiers Conversions Conversions Conversions Accumulateurs Accumulateurs Combinaison sur bits Combinaison sur bits Combinaison sur bits Combinaison sur mots Combinaison sur bits Combinaison sur bits Blocs de donnes Combinaison sur mots Accumulateurs Accumulateurs Accumulateurs Accumulateurs Combinaison sur bits Compteurs

Activer la zone MCR Dsactiver la zone MCR Reste de division entire (32 bits)

R R RLD RLDA RND RND RND+ RRD RRDA S S SAVE SD SE SET SF SIN

R R RLD RLDA RND RND RND+ RRD RRDA S S SAVE SE SV SET SA SIN

Complment 2 d'entier de 32 bits Complment 2 d'entier de 16 bits Inverser nombre virgule flottante (IEEE 754 32 bits) Opration nulle Opration nulle Ngation du RLG OU OU d'une expression OU double mot (32 bits) OU NON OU NON d'une expression Ouvrir bloc de donnes OU mot (16 bits) POP CPU avec deux accumulateurs POP CPU avec quatre accumulateurs PUSH CPU avec deux accumulateurs PUSH CPU avec quatre accumulateurs Mettre 0 Remettre compteur 0 (le compteur actuel peut tre un nombre compris dans la plage de 0 255, par exemple : R Z 15) Temporisations Remettre temporisation 0 (la temporisation actuelle peut tre un nombre compris dans la plage de 0 255, par exemple :R T 32) Fonction sur nombres Soustraire accumulateur 1 de accumulateur 2 virgule flottante (rels IEEE 754, 32 bits) Dcalage/Rotation Rotation vers la gauche d'un double mot (32 bits) Dcalage/Rotation Rotation vers la gauche de l'accumulateur 1 via BI1(32 bits) Conversions Arrondir l'entier Conversions Arrondir l'entier infrieur Conversions Arrondir l'entier suprieur Dcalage/Rotation Rotation vers la droite d'un double mot (32 bits) Dcalage/Rotation Rotation vers la droite de l'accumulateur 1 via BI1 (32 bits) Combinaison sur bits Mettre 1 Compteurs Initialiser compteur (le compteur actuel peut tre un nombre compris dans la plage de 0 255, par exemple : S Z 15) Combinaison sur bits Sauvegarder RLG dans le bit RB Temporisations Temporisation sous forme de retard la monte Temporisations Temporisation sous forme d'impulsion prolonge Combinaison sur bits Mettre 1 Temporisations Temporisation sous forme de retard la retombe Fonction sur nombres Sinus d'angles comme nombres virgule flottante (32 bits) virgule flottante

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

251

Prsentation de toutes les oprations LIST A.2 Oprations LIST classes d'aprs les abrviations anglaises (internationales)

Abrviation anglaise

Abrviation allemande

Catalogue des lments de programme

Description

SLD SLW SP SQR SQRT SRD SRW SS SSD SSI T T STW TAK TAN TAR1 TAR1 TAR1 TAR2 TAR2 TRUNC UC X X( XN XN( XOD XOW

SLD SLW SI SQR SQRT SRD SRW SS SSD SSI T T STW TAK TAN TAR1 TAR1 TAR1 TAR2 TAR2 TRUNC UC X X( XN XN( XOD XOW

Dcalage/Rotation Dcalage/Rotation Temporisations Fonction sur nombres virgule flottante Fonction sur nombres virgule flottante Dcalage/Rotation Dcalage/Rotation Temporisations Dcalage/Rotation Dcalage/Rotation Chargement/ Transfert Chargement/ Transfert Accumulateurs Fonction sur nombres virgule flottante Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Chargement/ Transfert Conversions Gestion d'excution de programme Combinaison sur bits Combinaison sur bits Combinaison sur bits Combinaison sur bits Combinaison sur mots Combinaison sur mots

Dcalage vers la gauche d'un double mot (32 bits) Dcalage vers la gauche d'un mot (16 bits) Temporisation sous forme d'impulsion Carr d'un nombre virgule flottante (32 bits) Racine carre d'un nombre virgule flottante (32 bits) Dcalage vers la droite d'un double mot (32 bits) Dcalage vers la droite d'un mot (16 bits) Temporisation sous forme de retard la monte mmoris Dcalage vers la droite d'un entier avec signe (32 bits) Dcalage vers la droite d'un entier avec signe (16 bits) Transfrer Transfrer accumulateur 1 dans mot d'tat Permuter accumulateur 1 et accumulateur 2 Tangente d'angles comme nombres virgule flottante (32 bits) Transfrer registre d'adresse 1 dans l'accumulateur 1 Transfrer registre d'adresse 1 l'adresse de destination (32 bits) Transfrer registre d'adresse 1 dans registre d'adresse 2 Transfrer registre d'adresse 2 dans l'accumulateur 1 Transfrer registre d'adresse 2 l'adresse de destination (32 bits) Arrondir par troncature Appel de bloc inconditionnel OU exclusif OU exclusif d'une expression OU NON exclusif OU NON exclusif d'une expression OU exclusif double mot (32 bits) OU exclusif mot (16 bits)

252

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

B
B.1

Exemples de programmation
Vue d'ensemble des exemples de programmation

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 Catalogue des lments de programme Description

UW OW ZV, ZR S, R NOT FP +I /I *I >=I, <=I U, UN O, ON = INC BE, BEB L, T SV

Combinaison sur mots Combinaison sur mots Compteurs Combinaison sur bits Combinaison sur bits Combinaison sur bits Fonction sur nombres entiers Fonction sur nombres entiers Fonction sur nombres entiers Comparaison Combinaison sur bits Combinaison sur bits Combinaison sur bits Accumulateurs Gestion d'excution de programme Chargement/Transfert Temporisations

ET mot OU mot Dcrmenter, Incrmenter Mettre 1, Mettre 0 Ngation du RLG Front montant Additionner entiers de 16 bits Diviser entiers de 16 bits Multiplier entiers de 16 bits Comparer entiers de 16 bits ET, ET NON OU, OU NON Affectation Incrmenter accumulateur 1 Fin de bloc, Fin de bloc conditionnelle Charger, Transfrer Temporisation sous forme dimpulsion prolonge

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

253

Exemples de programmation B.2 Exemples : Oprations combinatoires sur bits

B.2

Exemples : Oprations combinatoires sur bits

Exemple 1 : Commande dun tapis roulant


La figure suivante montre un tapis roulant pouvant tre mis en route lectriquement. Deux boutons-poussoirs, S1 pour MARCHE et S2 pour ARRET, se situent au dbut du tapis et deux, S3 pour MARCHE et S4 pour ARRET, la fin du tapis. Il est donc possible de dmarrer et darrter le tapis ses deux extrmits. Dautre part, le capteur S5 arrte le tapis lorsquun objet atteint la fin du tapis.

Capteur S5

MOTEUR_MAR

S1 S2

O Marche O Arrt

S3 S4

O Marche O Arrt

Programmation absolue et symbolique


Vous pouvez crire le programme de commande du tapis roulant en reprsentant les diverses composants du systme convoyeur laide d'adresses absolues ou laide de mnmoniques. Vous mettez les mnmoniques choisis dans la table des mnmoniques en relation avec les adresses absolues (voir laide en ligne de STEP 7).
Composant du systme Adresse absolue Mnmonique Table de mnmoniques

Bouton-poussoir Marche Bouton-poussoir Arrt Bouton-poussoir Marche Bouton-poussoir Arrt Capteur Moteur

E 1.1 E 1.2 E 1.3 E 1.4 E 1.5 A 4.0

S1 S2 S3 S4 S5 MOTEUR_MAR

E 1.1 E 1.2 E 1.3 E 1.4 E 1.5 A 4.0

S1 S2 S3 S4 S5 MOTEUR_MAR

Programme absolue

Programme symbolique

O O S O O ON R

E 1.1 E 1.3 A 4.0 E 1.2 E 1.4 E 1.5 A 4.0

O O S O O ON R

S1 S3 MOTOR_MAR S2 S4 S5 MOTOR_MAR

254

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Exemples de programmation B.2 Exemples : Oprations combinatoires sur bits

Programme LIST pour commander un tapis roulant


LIST O O S O O ON R Explication //Appuyer sur lun des deux boutons Marche fait dmarrer le moteur.

E E A E

1.1 1.3 4.0 1.2

//Appuyer sur lun des deux boutons Arrt ou ouvrir le contact ouverture // la fin du tapis arrte le moteur.

E 1.4 E 1.5 A 4.0

Exemple 2 : Dtection du sens de dplacement d'un tapis roulant


La figure suivante montre un tapis roulant quip de deux barrires photolectriques (BPE1 et BPE2) charges de dtecter le sens dans lequel se dplace un paquet sur le tapis. Chaque barrire photolectrique fonctionne comme un contact fermeture.
A 4.0 BPE2 BPE1 A 4.1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

255

Exemples de programmation B.2 Exemples : Oprations combinatoires sur bits

Programmation absolue et symbolique


Vous pouvez crire le programme de commande du tapis roulant en reprsentant les diverses composants du systme convoyeur laide d'adresses absolues ou laide de mnmoniques. Vous mettez les mnmoniques choisis dans la table des mnmoniques en relation avec les adresses absolues (voir laide en ligne de STEP 7).
Composant du systme Adresse absolue Mnmonique Table de mnmoniques

Barrire photolectrique 1 Barrire photolectrique 2 Affichage pour mouvement vers la droite Affichage pour mouvement vers la gauche Mmento de cadence 1 Mmento de cadence 2

E 1.1 E 0.0 A 4.0 A 4.1 M 0.0 M 0.1

BPE1 BPE2 DROITE GAUCHE MP1 MP2

E 0.0 E 0.1 A 4.0 A 4.1

BPE1 BPE2 DROITE GAUCHE

M 0.0 MP1 M 0.1 MP2

Programme absolue

Programme symbolique

U FP UN S U FP UN S UN UN R R

E 0.0 M 0.0 E 0.1 A 4.1 E 0.1 M 0.1 E 0.0 A 4.0 E 0.0 E 0.1 A 4.0 A 4.1

U FP UN S U FP UN S UN UN R R

BPE 1 MP1 BPE 2 GAUCHE BPE 2 MP2 BPE 1 DROITE BPE 1 BPE 2 DROITE GAUCHE

256

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Exemples de programmation B.2 Exemples : Oprations combinatoires sur bits

Programme LIST pour dtecter le sens de dplacement dun tapis roulant


LIST U 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.

E 0.0

FP UN S U

M E A E

0.0 0.1 4.1 0.1

//Si ltat de signal lentre E 0.1 passe de 0 1 (front montant) et si //ltat de signal lentre E 0.0 est simultanment 0, le paquet sur le //tapis se dplace vers la droite. Si lune des barrires photolectriques //est interrompue, cela signifie quun paquet se trouve entre les deux //barrires.

FP UN S UN UN R R

M E A E

0.1 0.0 4.0 0.0

//Si aucune des barrires photolectriques nest interrompue, aucun paquet //ne se trouve entre les barrires. Lindicateur de sens se dsactive.

E 0.1 A 4.0 A 4.1

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

257

Exemples de programmation B.3 Exemple : Oprations de temporisation

B.3

Exemple : Oprations de temporisation

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 UN L SV NOT BEB L INC T T1 S5T#250ms T1 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.

MB100 1 MB100

Linterrogation de ltat de signal


Linterrogation de ltat de signal de la temporisation T1 fournit le rsultat logique RLG :

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

258

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Exemples de programmation B.3 Exemple : Oprations de temporisation

Obtenir une frquence prcise


Vous pouvez obtenir les frquences suivantes avec les bits de loctet de mmento MB100 :
Bits de MB100 Frquence en hertz Dure

M 100.0 M 100.1 M 100.2 M 100.3 M 100.4 M 100.5 M 100.6 M 100.7

2.0 1.0 0.5 0.25 0.125 0.0625 0.03125 0.015625

0.5 s 1s 2s 4s 8s 16 s 32 s 64 s

(250 ms marche / 250 ms arrt) (0.5 s marche / 0.5 s arrt) (1 s marche / 1 s arrt) (2 s marche / 2 s arrt) (4 s marche / 4 s arrt) (8 s marche / 8 s arrt) (16 s marche / 16 s arrt) (32 s marche / 32 s arrt)

Programme LIST
LIST U U = Explication //M 10.0 = 1 en cas derreur. La lampe derreur clignote la frquence de //1 Hz en cas derreur.

M10.0 M100.1 A 4.0

Etat de signal des bits de loctet de mmento MB101


Cycle Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 0 0 Bit 0 Valeur de temps (ms)

0 1 2 3 4 5 6 7 8 9 10 11 12

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 1 1 1 1 0 0 0 0 1

0 1 0 1 0 1 0 1 0 1 0 1 0

250 250 250 250 250 250 250 250 250 250 250 250 250

1 1
0 0

1 1
0 0

1 1
0

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

259

Exemples de programmation B.3 Exemple : Oprations de temporisation

Etat de signal du bit 1 du MB101 (M 101.1)


Frquence = 1/T = 1/1 s = 1 Hz

T M 101.1 1 0 Temps 0 250 ms 0.5 s 0.75 s 1 s 1.25 s 1.5 s

260

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Exemples de programmation B.4 Exemple : Oprations de comptage et de comparaison

B.4

Exemple : Oprations de comptage et de comparaison

Espace de stockage avec compteur et comparateur


La figure suivante montre un systme avec deux tapis roulants et un espace de stockage temporaire entre eux. La tapis roulant 1 transporte les paquets dans lespace de stockage. Une barrire photolectrique lextrmit du tapis roulant 1, prs de lespace de stockage, dtermine le nombre de paquets qui y sont amens. Le tapis roulant 2 transporte les paquets de lespace de stockage temporaire une rampe de chargement do ils sont chargs dans des camions afin dtre livrs aux clients. Une barrire photolectrique lextrmit du tapis roulant 2 prs de lespace de stockage dtermine le nombre de paquets transports de lespace de stockage la rampe de chargement. Un tableau daffichage avec cinq lampes indique le niveau de remplissage de lespace de stockage temporaire.

Tableau d'affichage

Espace de stockage vide (A 12.0)

Espace de stockage non vide (A 12.1)

Espace de stockage plein 50% (A 15.2)

Espace de stockage plein 90% (A15.3)

Espace de stockage plein (A15.4)

Paquets arrivants

E 12.0

Espace de stockage temporaire pour 100 paquets

E 12.1

Paquets sortants

Tapis roulant 1 Barrire photolectrique 1

Tapis roulant 2 Barrire photolectrique 2

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

261

Exemples de programmation B.4 Exemple : Oprations de comptage et de comparaison

Programme LIST pour activer les lampes de signalisation sur un tableau daffichage
U ZV E 0.0 Z1 //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. //

U ZR

E 0.1 Z1

UN = U = L L <=I = L >=I = L L >=I =

Z1 A 4.0 Z1 A 4.1 50 Z1 A 4.2 90 A 4.3 Z1 100 A 4.4

//Si 50 est infrieur ou gal la valeur du compteur, //la lampe de signalisation Espace de stockage plein 50 % sallume. // //Si la valeur du compteur est suprieure ou gale 90, //la lampe de signalisation Espace de stockage plein 90 % sallume. //

//Si la valeur du compteur est suprieure ou gale 100, //la lampe de signalisation Espace de stockage plein sallume (vous pouvez //galement bloquer le tapis roulant 1 via la sortie A 4.4).

262

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Exemples de programmation B.5 Exemple : Oprations arithmtiques sur nombres entiers

B.5

Exemple : Oprations arithmtiques sur nombres entiers

Calcul dune quation


Lexemple de programme suivant montre comment obtenir en utilisant trois oprations arithmtiques sur nombres entiers le mme rsultat que montre lquation suivante : MD4 = ((EW0 + DBW3) x 15) / MW2

Programme LIST
LIST L L +I 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.

EW0 DB5.DBW3 E 0.1

L *I

+15

L /I

MW2

MD4

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

263

Exemples de programmation B.6 Exemple : Oprations combinatoires sur mots

B.6

Exemple : Oprations combinatoires sur mots

Chauffage dun Four


Loprateur du four dclenche le chauffage du four en appuyant sur le bouton-poussoir Marche. Il peut rgler la dure du chauffage laide des molettes reprsentes dans la figure La valeur indique donne les secondes en format dcimal cod binaire (DCB).

Molettes de rglage des chiffres DCB

Four

4 ...0

Chaleur A 4.0

7....

...0

7...

Bits EW0 Octets

XXXX

0001

1001

0001 EB1

EB0

Bouton-poussoir Marche E 0.7

Composant du systme

Adresse absolue

Bouton-poussoir Marche Molette de rglage des units Molette de rglage des dizaines Molette de rglage des centaines Dclenchement du chauffage

E 0.7 E 1.0 E 1.3 E 1.4 E 1.7 E 0.0 E 0.3 A 4.0

Programme LIST
LIST U = BEB 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.

T1 A 4.0

L UW

EW0 W#16#0FFF

OW U SV

W#16#2000 E 0.7 T1

264

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

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 :

Si possible, initialisez tous les paramtres OUTPUT. 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.

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

265

Transmission de paramtres B.6 Exemple : Oprations combinatoires sur mots

266

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Index
)
) 25 Appel de bloc conditionnel 163 Appel de bloc inconditionnel 164 Appeler FB 154 Appeler FC 156 Appeler multi-instance 162 Appeler SFB 158 Appeler SFC 160 Appeler un bloc dans une bibliothque 162 Applications pratiques 255, 256, 260, 263, 265, 266 Arc cosinus d'un nombre virgule flottante (32 bits) 131 Arc sinus d'un nombre virgule flottante (32 bits) 130 Arc tangente d'un nombre virgule flottante (32 bits) 132 Arrondir l'entier 57 Arrondir l'entier infrieur 60 Arrondir l'entier suprieur 59 Arrondir par troncature 58 ASIN 130 ATAN 132 AUF 72

*
*D 110 *I 103 *R 120

/
/D 111, 112 /I 104, 105 /R 121

+
+ 107 +AR1 238, 239 +AR2 240 +D 108 +I 101 +R 117, 118

B
BE 148 BEA 150 BEB 149 BLD 241 Boucle de programme 97 BTD 46 BTI 44

=
= 27 ==D 41 ==I 40 ==R 42

C
CALL 151, 152, 153 Carr d'un nombre virgule flottante (32 bits) 123 CC 163 Charger 134 Charger contenu de l'accumulateur 1 dans registre d'adresse 1 137 Charger contenu de l'accumulateur 1 dans registre d'adresse 2 139 Charger contenu du registre d'adresse 2 dans registre d'adresse 1 139 Charger longueur de DB d'instance dans l'accumulateur 1 74 Charger longueur de DB global dans l'accumulateur 1 73 Charger mot d'tat dans l'accumulateur 1 136 Charger numro de DB d'instance dans l'accumulateur 1 75 Charger numro de DB global dans l'accumulateur 1 74 Charger pointeur de 32 bits dans registre d'adresse 1 138 Charger pointeur de 32 bits dans registre d'adresse 2 140 Charger valeur de comptage en cours comme entier dans l'accumulateur 1 63

A
Abrviations allemandes (SIMATIC) 243 Abrviations anglaises (internationales) 249 ABS 122 ACOS 131 Activer la zone MCR 171 Additionner accumulateur 1 au registre d'adresse 1 238 Additionner accumulateur 1 au registre d'adresse 2 240 Additionner accumulateurs 1 et 2 (entiers de 16 bits) 101 Additionner accumulateurs 1 et 2 (entiers de 32 bits) 108 Additionner accumulateurs 1 et 2 (rels VF IEEE 32 bits) 117 Additionner constante entire (16 et 32 bits) 106 Adresse dune temporisation en mmoire et composants dune temporisation 194 Affectation 27 Aide en ligne 5 Appel de bloc 153

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

267

Index

Charger valeur de comptage en cours comme nombre DCB dans l'accumulateur 1 64 Charger valeur de temps en cours comme nombre DCB dans l'accumulateur 1 202 Charger valeur de temps en cours comme nombre entier dans l'accumulateur 1 200 CLR 32 Comparer entiers de 16 bits 40 Comparer entiers de 32 bits 41 Comparer rels de 32 bits 42 Complment 1 d'entier de 16 bits 50 Complment 1 d'entier de 32 bits 51 Complment 2 d'entier de 16 bits 52 Complment 2 d'entier de 32 bits 53 Convertir DCB en entier de 16 bits 44 Convertir DCB en entier de 32 bits 46 Convertir entier de 16 bits en DCB 45 Convertir entier de 16 bits en entier de 32 bits 47 Convertir entier de 32 bits en DCB 48 Convertir entier de 32 bits en rel (IEEE 754 32 bits) 49 COS 128 Cosinus d'un angle comme nombres virgule flottante (32 bits) 128

Evaluation des bits du mot d'tat dans les oprations sur nombres entiers 100 Exemple Oprations arithmtiques sur nombres entiers 265 Oprations combinatoires sur mots 266 Oprations de comptage et de comparaison 263 Exemples Oprations combinatoires sur bits 256 Exemples de programmation 255 EXP 125

F
FB appel 154, 155 FC appel 156 Fermer la parenthse d'une expression 25 Fin de bloc 148 Fin de bloc conditionnelle 149 Fin de bloc inconditionnelle 150 Fin de zone MCR 170 FN 34 FP 36 FR 62, 198 Front descendant 34, 35 Front monant 36

D
-D 109 DEC 237 Dcalage vers la droite d'un double mot (32 bits) 184 Dcalage vers la droite d'un entier avec signe (16 bits) 174 Dcalage vers la droite d'un entier avec signe (32 bits) 176 Dcalage vers la droite d'un mot (16 bits) 180 Dcalage vers la gauche d'un double mot (32 bits) 182 Dcalage vers la gauche d'un mot (16 bits) 178 Dcrmenter 69 Dcrmenter accumulateur 1-L-L 237 Dsactiver la zone MCR 172 Diviser accumulateur 2 par accumulateur 1 (entiers de 16 bits) 104 Diviser accumulateur 2 par accumulateur 1 (entiers de 32 bits) 111 Diviser accumulateur 2 par accumulateur 1 (rels VF IEEE 32 bits) 121 DTB 48 DTR 49

I
-I 102 INC 236 Incrmenter 68 Incrmenter accumulateur 1-L-L 236 Initialiser compteur 67 INVD 51 Inverser nombre virgule flottante (IEEE 754 32 bits) 54 INVI 50 ITB 45 ITD 47

L
L 63, 134, 200 L DBLG 73 L DBNO 74 L DILG 74 L DINO 75 L STW 136 LAR1 137 LAR1 <d> 138 LAR1 AR2 139 LAR2 139 LAR2 <d> 140 LC 64, 65, 202, 203 LEAVE 235 LN 126 Logarithme naturel d'un nombre virgule flottante (32 bits) 126 LOOP 97

E
ENT 235 Entrer dans pile accumulateur 235 ET 15 ET avant OU 21 ET double mot (32 bits) 222 ET d'une expression 22 ET mot (16 bits) 216 ET NON 16 ET NON d'une expression 23 Evaluation des bits du mot d'tat (oprations sur nombres virgule flottante) 116

268

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Index

M
MCR 170 MCR( 168, 169 MCR) 170 MCRA 171 MCRD 172 Mettre 0 28 Mettre 1 29 Mettre RLG 0 32 Mettre RLG 1 30 MOD 113 Modifier l'ordre dans l'accumulateur 1 (32 bits) 56 Modifier l'ordre dans l'accumulateur 1-L (16 bits) 55 Multiplier accumulateur 1 par accumulateur 2 (entiers de 16 bits) 103 Multiplier accumulateur 1 par accumulateur 2 (entiers de 32 bits) 110 Multiplier accumulateur 1 par accumulateur 2 (rels VF IEEE 32 bits) 120

P
Permuter accumulateur 1 et accumulateur 2 230 Permuter DB global et DB d'instance 73 Permuter registre d'adresse 1 avec registre d'adresse 2 143 POP 233, 234 POP CPU avec deux accumulateurs 233 POP CPU avec quatre accumulateurs 234 PUSH 231, 232 PUSH CPU avec deux accumulateurs 231 PUSH CPU avec quatre accumulateurs 232

Q
Quitter pile accumulateur 235

N
Ngation du RLG 30 NEGD 53 NEGI 52 NEGR 54 NOP 0 241 NOP 1 242 NOT 30

R
R 28, 66, 204 -R 119 -R 119 Racine carre d'un nombre virgule flottante (32 bits) 124 Relais de masquage (Master Control Relay - MCR) 165 Remarques importantes sur l'utilisation de la fonctionnalit MCR 167 Remettre compteur zro 66 Remettre temporisation 0 204 Reste de division entire (32 bits) 113 RLD 187, 188 RLDA 191 RND 57 RND- 60 RND- 60 RND- 60 RND- 60 RND+ 59 Rotation vers la droite de l'accumulateur 1 via BI1 (32 bits) 192 Rotation vers la gauche de l'accumulateur 1 via BI1 (32 bits) 191 Rotation vers la gauche d'un double mot (32 bits) 187 Rotiation vers la droite d'un double mot (32 bits) 189 RRD 189, 190 RRDA 192

O
O 17, 21 O( 23 OD 224, 225 ON 18 ON( 24 Opration de composition d'image (opration nulle) 241 Opration nulle 241, 242 Oprations arithmtiques sur nombres flottantes 115 Oprations LIST classes d'aprs les abrviations allemandes (SIMATIC) 243 Oprations LIST classes d'aprs les abrviations anglaises (internationales) 249 OPN = AUF 72 OU 17 OU double mot (32 bits) 224 OU d'une expression 23 OU exclusif 19 OU exclusif double mot (32 bits) 226 OU exclusif d'une expression 24 OU exclusif mot (16 bits) 220 OU mot (16 bits) 218 OU NON 18 OU NON d'une expression 24 OU NON exclusif 20 OU NON exclusif d'une expression 25 Ouvrir bloc de donnes 72 OW 218, 219

S
S 29, 67 SA 213, 214 Saut inconditionnel 79 Saut si <= 0 95 Saut si = 0 90 Saut si >= 0 94 Saut si DEB = 1 87 Saut si diffrent de 0 91 Saut si DM = 1 88 Saut si illicite 96

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

269

Index

Saut si moins 93 Saut si plus 92 Saut si RB = 0 86 Saut si RB = 1 85 Saut si RLG = 0 82 Saut si RLG = 0 avec RB 84 Saut si RLG = 1 81 Saut si RLG = 1 avec RB 83 Saut vers liste 80 Sauvegarder RLG dans le bit RB 33 Sauvegarder RLG dans pile MCR dbut de zone MCR 168 SAVE 33 SE 209, 210 SET 30 SFB appel 158, 159 SFC appel 160, 161 SI 205, 206 SIN 127 Sinus d'un angle comme nombres virgule flottante (32 bits) 127 SLD 182, 183 SLW 178, 179 Soustraire accumulateur 1 d'accumulateur 2 (rels VF IEEE 32 bits) 119 Soustraire accumulateur 1 de accumulateur 2 (entiers de 16 bits) 102 Soustraire accumulateur 1 de accumulateur 2 (entiers de 32 bits) 109 SPA 79 SPB 81 SPBB 83 SPBI 85 SPBIN 86 SPBN 82 SPBNB 84 SPL 80 SPM 93 SPMZ 95 SPN 91 SPO 87 SPP 92 SPPZ 94 SPS 88, 89 SPU 96 SPZ 90 SQR 123 SQRT 124 SRD 184, 185 SRW 180, 181 SS 211, 212 SSD 176, 177 SSI 174, 175 SV 207, 208

T
T 141 T STW 142 TAD 56 TAK 230 TAN 129 Tangente d'un angle comme nombres virgule flottante (32 bits) 129 TAR 143 TAR1 143 TAR1 <D> 144 TAR1 AR2 145 TAR2 145 TAR2 <d> 146 TAW 55 TDB 73 Temporisation sous forme de retard la monte 209 Temporisation sous forme de retard la monte mmorise 211 Temporisation sous forme de retard la retombe 213 Temporisation sous forme d'impulsion 205 Temporisation sous forme d'impulsion prolonge 207 Transfrer 141 Transfrer accumulateur 1 dans mot d'tat 142 Transfrer registre d'adresse 1 l'adresse de destination (32 bits) 144 Transfrer registre d'adresse 1 dans l'accumulateur 1 143 Transfrer registre d'adresse 1 dans registre d'adresse 2 145 Transfrer registre d'adresse 2 l'adresse de destination (32 bits) 146 Transfrer registre d'adresse 2 dans l'accumulateur 1 145 Transmission de paramtres 267 TRUNC 58

U
U 15 U( 22 UC 164 UD 222, 223 UN 16 UN( 23 UW 216, 217

V
Valeur absolue d'un nombre virgule flottante (VF IEEE 32 bits) 122 Valeur exponentielle d'un nombre virgule flottante (32 bits) 125 Valider compteur 62 Valider temporisation 198 Vue d'ensemble 115, 255 Vue d'ensemble des oprations arithmtiques sur nombre entiers 99 Vue d'ensemble des oprations combinatoires sur bits 13 Vue d'ensemble des oprations combinatoires sur mots 215

270

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

Index

Vue d'ensemble des oprations de chargement et de transfert 133 Vue d'ensemble des oprations de comparaison 39 Vue d'ensemble des oprations de comptage 61 Vue d'ensemble des oprations de conversion 43 Vue d'ensemble des oprations de dcalage 173 Vue d'ensemble des oprations de gestion d'excution de programme 147 Vue d'ensemble des oprations de rotation 186 Vue d'ensemble des oprations de saut 77 Vue d'ensemble des oprations de temporisation 193 Vue d'ensemble des oprations sur blocs de donnes 71 Vue d'ensemble des oprations sur les accumulateurs 229

X
X 19 X( 24 XN 20 XN( 25 XOD 226, 227 XOW 220, 221

Z
ZR 69 ZV 68

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01

271

Index

272

Langage LIST pour SIMATIC S7-300/400 Manuel de rfrence, 05/2010, A5E02790284-01