Preisliste a7 Sportback s7 SportbackAudi A7 Sportback & S7 Price List (DE)
Anweisungsliste (AWL) für S7-300/400 · vi Anweisungsliste (AWL) für S7-300/400...
Transcript of Anweisungsliste (AWL) für S7-300/400 · vi Anweisungsliste (AWL) für S7-300/400...
Vorwort, Inhaltsverzeichnis
Produktübersicht 1
Aufbau und Elemente von AWL 2
Adressierung 3
Akkumulatoroperationen undAdreßregisteranweisungen 4
Bitverknüpfungsoperationen 5
Zeitoperationen 6
Zähloperationen 7
Lade- und Transferoperationen 8
Festpunktarithmetik 9
Gleitpunktarithmetik 10
Vergleichsoperationen 11
Umwandlungsoperationen 12
Wortverknüpfungsoperationen 13
Schiebe- und Rotieroperationen 14
Datenbausteinoperationen 15
Sprungoperationen 16
Operationen zur Programmsteuerung 17
Anhänge
Glossar, Stichwortverzeichnis10/98
C79000-G7000-C565
Ausgabe 01
Anweisungsliste ( AWL)für S7-300/400
Referenzhandbuch
Dieses Referenzhandbuch ist Bestandteil desDokumentationspaketes mit der Bestellnummer:
6ES7810-4CA04-8AR0
SIMATIC S7
Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Ver-meidung von Sachschäden beachten müssen. Die Hinweise sind durch ein Warndreieck her-vorgehoben und je nach Gefährdungsgrad folgendermaßen dargestellt:
!Gefahr
bedeutet, daß Tod, schwere Körperverletzung oder erheblicher Sachschaden eintretenwerden, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.
!Warnung
bedeutet, daß Tod, schwere Körperverletzung oder erheblicher Sachschaden eintretenkönnen, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.
!Vorsicht
bedeutet, daß eine leichte Körperverletzung oder ein Sachschaden eintreten können, wenndie entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.
Hinweis
ist eine wichtige Information über das Produkt, die Handhabung des Produktes oder denjeweiligen Teil der Dokumentation, auf den besonders aufmerksam gemacht werden soll.
Beachten Sie folgendes:
!Warnung
Dieses Produkt darf nur für die im Katalog und in der technischen Beschreibung vorgesehe-nen Einsatzfälle und nur in Verbindung mit von Siemens empfohlenen bzw. zugelassenenFremdgeräten und -komponenten verwendet werden.
SIMATIC�, SIMATIC HMI� und SIMATIC NET� sind eingetragene Marken derSIEMENS AG.
Die übrigen Bezeichnungen in dieser Schrift könnenWarenzeichen sein, deren Benutzungdurch Dritte für deren Zwecke die Rechte der Inhaber verletzen können.
Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit derbeschriebenen Hard- und Software geprüft. Dennoch könnenAbweichungen nicht ausgeschlossen werden, so daß wir für dievollständige Übereinstimmung keine Gewähr übernehmen. DieAngaben in dieser Druckschrift werden regelmäßig überprüft, undnotwendige Korrekturen sind in den nachfolgenden Auflagenenthalten. Für Verbesserungsvorschläge sind wir dankbar.
HaftungsausschlußCopyright Siemens AG 1998 All rights reserved
Weitergabe sowie Vervielfältigung dieser Unterlage, Verwertungund Mitteilung ihres Inhalts ist nicht gestattet, soweit nichtausdrücklich zugestanden. Zuwiderhandlungen verpflichten zuSchadenersatz. Alle Rechte vorbehalten, insbesondere für den Fallder Patenterteilung oder GM-Eintragung.
Siemens AGBereich Automatisierungs- und AntriebstechnikGeschäftsgebiet Industrie-AutomatisierungssystemePostfach 4848, D-90327 Nürnberg
� Siemens AG 1998Technische Änderungen bleiben vorbehalten.
Siemens Aktiengesellschaft C79000-G7000-C565
Sicherheitstech-nische Hinweise
Bestimmungsge-mäßer Gebrauch
Marken
iiiAnweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Vorwort
Dieses Handbuch unterstützt Sie bei der Erstellung von Anwender-programmen in der Programmiersprache AWL.
Es beschreibt die Sprachelemente der Programmiersprache AWL, ihre Syntaxund Funktionsweise.
Dieses Handbuch richtet sich an Programmierer von S7-Programmen,Inbetriebsetzer und Servicepersonal. Allgemeine Kenntnisse auf dem Gebietder Automatisierungstechnik werden vorausgesetzt.
Dieses Handbuch ist gültig für die Programmiersoftware STEP 7 abVersion 5.0.
AWL entspricht der in der Norm DIN EN-61131-3 ( int. IEC 1131-3) festgelegtenSprache ”Anweisungsliste” (engl. Instruction List), wobei hinsichtlich derOperationen wesentliche Unterschiede bestehen. Genaue Aussagen zurNormerfüllung finden Sie in der Normerfüllungstabelle in der NORM.TAB-Datei von STEP 7.
Zweck des Hand-buchs
Leserkreis
Gültigkeitsbereichdes Handbuchs
Normerfüllungnach IEC 1131-3
ivAnweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Das vorliegende Handbuch zu AWL setzt theoretische Kenntnisse überS7-Programme voraus, die Sie in der Online-Hilfe zu STEP 7 nachlesenkönnen. Da die Sprachpakete auf der Basissoftware STEP 7 aufsetzen, solltenSie bereits Kenntnisse im Umgang mit der Basissoftware STEP 7 und derenDokumentation haben.
Handbücher Zweck Bestell-Nummer
STEP 7-Grundwissen mit
� Erste Schritte und Übungen mit STEP 7V5.0
� Programmieren mit STEP 7 V5.0
� Hardware konfigurieren und Verbindungenprojektieren mit STEP 7 V5.0
� Von S5 nach S7, Umsteigerhandbuch
Das Grundwissen für technischesPersonal, das das Vorgehen zur Reali-sierung von Steuerungsaufgaben mitSTEP 7 und S7-300/400 beschreibt.
6ES7810-4CA04-8AA0
STEP 7-Referenzwissen mit
� Handbücher KOP/FUP/AWL fürS7-300/400
� Standard- und Systemfunktionen fürS7-300/400
Das Referenzwissen zum Nachschla-gen, das die ProgrammiersprachenKOP, FUP und AWL sowie Stan-dard- und Systemfunktionen ergän-zend zum STEP 7-Grundwissen be-schreibt.
6ES7810-4CA04-8AR0
Online-Hilfen Zweck Bestell-Nummer
Hilfe zu STEP 7 Das Grundwissen zum Programmie-ren und Hardware konfigurieren mitSTEP 7 als Online-Hilfe
Bestandteil der Basissoft-ware STEP 7
Referenzhilfen zu AWL/KOP/FUP
Referenzhilfe zu SFBs/SFCs
Referenzhilfe zu Organisationsbausteinen
Kontextsensitives Referenzwissen Bestandteil der Basissoft-ware STEP 7
Auf die Inhalte der Online-Hilfe können Sie wie folgt zugreifen:
� Kontext-sensitive Hilfe zum markierten Objekt über Menübefehl Hilfe >Hilfe zum Kontext über Funktionstaste F1 oder über Fragezeichen inder Funktionsleiste.
� Hilfe zu STEP 7 über Menübefehl Hilfe > Hilfethemen
Hinweise auf weitere Dokumentation sind mit Hilfe von Literaturnummern inSchrägstrichen /.../ angegeben. Anhand dieser Nummern können Sie demLiteraturverzeichnis am Ende des Handbuchs den genauen Titel derDokumentation entnehmen.
Voraussetzungen
Zugriffe auf dieOnline-Hilfe
Literaturhinweise
Vorwort
vAnweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Das SIMATIC Customer Support bietet Ihnen über die Online-Dienste um-fangreiche zusätzliche Informationen zu den SIMATIC-Produkten:
� Allgemeine aktuelle Informationen erhalten Sie
– im Internet unter http://www.ad.siemens.de/simatic
– über Fax-Polling Nr. 08765-93 02 77 95 00
� Aktuelle Produkt–Informationen und Downloads, die beim Einsatz nütz-lich sein können:
– im Internet unter http://www.ad.siemens.de/support/html_00/
– über das Bulletin Board System (BBS) in Nürnberg (SIMATICCustomer Support Mailbox) unter der Nummer +49 (911) 895-7100.
Verwenden Sie zur Anwahl der Mailbox ein Modem mit bis zuV.34 (28,8 kBaud), dessen Parameter Sie wie folgt einstellen: 8, N, 1,ANSI, oder wählen Sie sich per ISDN (x.75, 64 kBit) ein.
Bei weiteren Fragen wenden Sie sich bitte an Ihren Siemens-Ansprechpartnerin den für Sie zuständigen Vertretungen und Geschäftsstellen. Die Adressenfinden Sie z.B. in Katalogen und in Compuserve (go autforum).
Darüber hinaus steht Ihnen unsere SIMATIC Basis Hotline zur Verfügung:
� in Nürnberg, Deutschland
– von Mo–Fr. 07:00 bis 17:00 (Ortszeit) unter Telefon +49 (911)895–7000
– oder E–Mail: [email protected]
� in Johnson City (TN), USA
– von Mo–Fr. 08:00 bis 17:00 (Ortszeit) unter Telefon +1 423 461–2522
– oder E–Mail: [email protected]
� in Singapur
– von Mo–Fr. 08:30 bis 17:30 (Ortszeit) unter Telefon +65 740–7000
– oder E–Mail: [email protected]
Weltweit rund um die Uhr steht Ihnen über die SIMATIC Card die SIMATICPremium Hotline zur Verfügung (Telefon: +49 (911) 895-7777).
Um Ihnen den Einstieg in das Automatisierungssystem SIMATIC S7 zu er-leichtern, bieten wir entsprechende Kurse an. Wenden Sie sich bitte an Ihrregionales Trainingscenter oder das zentrale Trainigscenter in Nürnberg unterder Telefonnummer +49 (911) 895–3154.
SIMATIC CustomerSupport Online-Dienste
Weitere Unterstüt-zung
Kurse für SIM ATIC-Produkte
Vorwort
viAnweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Um Ihnen und zukünftigen STEP 7-Anwendern eine optimale Dokumenta-tion anbieten zu können, bitten wir Sie, uns hierbei zu unterstützen. BeiAnmerkungen zum vorliegenden Handbuch oder zur Online-Hilfe füllen Siebitte den Fragebogen am Ende des Handbuchs aus und schicken Sie ihn andie dort angegebene Adresse. Bitte tragen Sie dort auch Ihre persönlicheBewertung ein.
Rückmeldungenzu Handbuch undOnline-Hilfe
Vorwort
viiAnweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Inhaltsverzeichnis
Vorwort iii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 Produktübersicht 1-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Aufbau und Elemente von AWL 2-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Aufbau einer Anweisung 2-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Bedeutung der CPU-Register in Anweisungen 2-10. . . . . . . . . . . . . . . . . . . . . . .
3 Adressierung 3-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Unmittelbare Adressierung 3-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Direkte Adressierung 3-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Speicherindirekte Adressierung 3-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Adreßregister 3-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Registerindirekte, bereichsinterne Adressierung 3-7. . . . . . . . . . . . . . . . . . . . . .
3.6 Registerindirekte, bereichsübergreifende Adressierung 3-11. . . . . . . . . . . . . . .
4 Akkumulatoroperationen und Adreßregisteranweisungen 4-1. . . . . . . . . . . . . . . . . .
4.1 Übersicht 4-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 ENT und LEAVE 4-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Inkrementieren und Dekrementieren 4-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 +AR1 und +AR2: Addieren einer Konstanten zu Adreßregister 1 oder Adreßregister 2 4-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Bitverknüpfungsoperationen 5-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 Verknüpfungsoperationen mit Bitoperanden 5-2. . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Bitverknüpfungsoperationen und Relaisschaltkreise 5-6. . . . . . . . . . . . . . . . . .
5.3 Auswerten von Bedingungen mit UND, ODER und EXKLUSIV ODER 5-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Verknüpfungsoperationen von Klammerausdrücken und UND vor ODER 5-14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Flankenoperationen: FP, FN 5-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 Abschließen einer Verknüpfungskette 5-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7 Operationen Setze und Rücksetze: S und R 5-21. . . . . . . . . . . . . . . . . . . . . . . . .
5.8 Operation Zuweisung (=) 5-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.9 Negieren, Setzen, Rücksetzen und Sichern des VKE 5-26. . . . . . . . . . . . . . . . .
viiiAnweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
6 Zeitoperationen 6-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 Übersicht 6-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Speicherbereiche und Komponenten einer Zeit 6-3. . . . . . . . . . . . . . . . . . . . . .
6.3 Laden, Starten, Rücksetzen und Freigeben einer Zeit 6-5. . . . . . . . . . . . . . . . .
6.4 Beispiele für Zeiten 6-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5 Operanden und Bereiche für Zeitoperationen 6-17. . . . . . . . . . . . . . . . . . . . . . . .
6.6 Auswahl der richtigen Zeit 6-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 Zähloperationen 7-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1 Übersicht 7-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Setzen, Rücksetzen und Freigeben eines Zählers 7-3. . . . . . . . . . . . . . . . . . . .
7.3 Vorwärts- und Rückwärtszählen 7-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Laden eines Zählwerts als Ganzzahl 7-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5 Laden eines Zählwerts im BCD-Format 7-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6 Beispiel eines Zählers 7-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.7 Operanden und Bereiche für Zähloperationen 7-10. . . . . . . . . . . . . . . . . . . . . . .
8 Lade- und Transferoperationen 8-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1 Übersicht 8-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Laden und Transferieren 8-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3 Lesen oder Transferieren des Statusworts 8-6. . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4 Laden der Zeit- und Zählwerte als Ganzzahlen 8-7. . . . . . . . . . . . . . . . . . . . . . .
8.5 Laden der Zeit- und Zählwerte im BCD-Format 8-9. . . . . . . . . . . . . . . . . . . . . .
8.6 Laden und Transferieren zwischen Adreßregistern 8-11. . . . . . . . . . . . . . . . . . .
8.7 Laden der Informationen aus einem Datenbaustein 8-12. . . . . . . . . . . . . . . . . . .
9 Festpunktarithmetik 9-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1 Grundrechenoperationen 9-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Addieren einer Ganzzahl zu AKKU 1 9-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Gleitpunktarithmetik 10-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.1 Grundrechenoperationen 10-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Bilden des Betrags einer Gleitpunktzahl 10-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3 Erweiterte Rechenoperationen 10-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4 Bilden des Quadrats bzw. der Quadratwurzel einer Gleitpunktzahl 10-9. . . . . .
10.5 Bilden des natürlichen Logarithmus einer Gleitpunktzahl 10-11. . . . . . . . . . . . . .
10.6 Bilden des Exponentialwerts einer Gleitpunktzahl 10-12. . . . . . . . . . . . . . . . . . . .
10.7 Bilden von trigonometrischen Funktionen von Winkeln als Gleitpunktzahlen 10-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inhaltsverzeichnis
ixAnweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
11 Vergleichsoperationen 11-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1 Übersicht 11-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Vergleichen zweier Ganzzahlen 11-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3 Vergleichen zweier Gleitpunktzahlen 11-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 Umwandlungsoperationen 12-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1 Umwandeln von binär-codierten Dezimalzahlen und Ganzzahlen 12-2. . . . . . .
12.2 Umwandeln von Gleitpunktzahlen (32 Bit) in Ganzzahlen (32 Bit) 12-8. . . . . . .
12.3 Umkehren der Reihenfolge der Bytes in AKKU 1 12-13. . . . . . . . . . . . . . . . . . . . .
12.4 Bilden der Komplemente von Ganzzahlen und Wechseln des Vorzeichens einer Gleitpunktzahl 12-14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13 Wortverknüpfungsoperationen 13-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.1 Übersicht 13-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Wortverknüpfungsoperationen (16 Bit) 13-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3 Wortverknüpfungen (32 Bit) 13-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14 Schiebe- und Rotieroperationen 14-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.1 Schiebeoperationen 14-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2 Rotieroperationen 14-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 Datenbausteinoperationen 15-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.1 Öffnen der Datenbausteine 15-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.2 Tauschen der Datenbausteinregister 15-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.3 Laden der Längen und Nummern von Datenbausteinen 15-3. . . . . . . . . . . . . . .
16 Sprungoperationen 16-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.1 Übersicht 16-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2 Absolute Sprungoperationen 16-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3 Vom Verknüpfungsergebnis abhängige Sprungoperationen 16-4. . . . . . . . . . . .
16.4 Von den Bits BIE, OV oder OS des Statusworts abhängige Sprungoperationen 16-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.5 Vom Inhalt der Bits A1 und A0 des Statusworts abhängige Sprungoperationen 16-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.6 Programmschleife 16-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17 Operationen zur Programmsteuerung 17-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.1 Parametrierung bei Aufruf von FCs und FBs 17-2. . . . . . . . . . . . . . . . . . . . . . . . .
17.2 Aufrufen der Funktionen und Funktionsbausteine mit CALL 17-3. . . . . . . . . . . .
17.3 Aufrufen der Funktionen und Funktionsbausteine mit CC und UC 17-7. . . . . .
17.4 Funktionen des Master Control Relay 17-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.5 Operationen für das Master Control Relay 17-11. . . . . . . . . . . . . . . . . . . . . . . . . . .
17.6 Bausteinende 17-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inhaltsverzeichnis
xAnweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
A Alphabetische Liste der Operationen A-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1 Liste der deutschen und internationalen Mnemonik A-2. . . . . . . . . . . . . . . . . . .
A.2 Alphabetische Liste der deutschen Beschreibungen A-12. . . . . . . . . . . . . . . . . .
B Programmierbeispiele B-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.1 Übersicht B-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.2 Bitverknüpfungsoperationen B-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.3 Zeitoperationen B-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.4 Zähl- und Vergleichsoperationen B-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.5 Arithmetische Operationen mit Ganzzahlen B-12. . . . . . . . . . . . . . . . . . . . . . . . . .
B.6 Wortverknüpfungsoperationen B-14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C Quelldateien - Reservierte Schlüsselwörter C-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
D Literaturverzeichnis D-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Glossar Glossar-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stichwortverzeichnis Index-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inhaltsverzeichnis
1-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Produktübersicht
AWL steht für Anweisungsliste. AWL ist eine textuelle Programmiersprache,die zur Erstellung des Anweisungsteils von Codebausteinen genutzt werdenkann. Die Syntax der Anweisungen ähnelt der Assemblersprache: auf Befehlebzw. Operationen folgen Operanden.
AWL ist unter den Programmiersprachen, mit denen die S7-Steuerungenprogrammiert werden können, diejenige, die dem Maschinencode MC7 derS7-CPUs am nächsten steht. Dadurch kann man mit ihr Steuerungsaufgabensehr speicherplatz- und laufzeitoptimal programmieren.
Die Programmiersprache AWL stellt Ihnen alle Elemente zur Verfügung, diefür die Erstellung eines vollständigen Anwenderprogramms erforderlich sind.AWL hat einen mächtigen Befehlssatz. Über 130 verschiedene Grund-operationen sowie eine umfassende Palette an Operanden und derenAdressierung stehen Ihnen zur Verfügung. Das gleiche gilt für das Konzeptder Funktionen und Funktionsbausteine, mit deren Hilfe ein AWL-Programmm übersichtlich strukturiert werden kann.
Das AWL-Programmierpaket ist integrierter Bestandteil der BasissoftwareSTEP 7. Damit stehen Ihnen nach der Installation Ihrer STEP 7-Software alleEditor-, Compiler- und Testfunktionen für AWL zur Verfügung.
Mit AWL können Sie Ihr Anwenderprogramm erstellen
� mit einem inkrementellen Editor. Hierin ist die Eingabe der baustein-lokalen Datenstruktur komfortabel über Tabelleneditoren gelöst.
� als Quelldatei im Texteditor. Im mitgelieferten Editor wird Ihnen dieTexteingabe durch Bausteinvorlagen vereinfacht.
Da neben AWL auch die Programmiersprachen FUP und KOP in die Basis-software integriert sind, können Sie zwischen den Sprachen wechseln undsomit jeweils die geeignete Darstellung für eine Bausteinprogrammierungwählen.
Generell gilt, Programme, die in KOP oder FUP geschrieben sind, könnenproblemlos in AWL dargestellt werden. Bei der Umsetzung von KOP-Programmen in FUP-Programme und umgekehrt, werden Programm-elemente, die in der Zielsprache nicht darstellbar sind, in AWL angezeigt.
Was bedeutetAWL?
Die Programmier-sprache AWL
Das Programmier-paket
1
1-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
2-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Aufbau und Elemente von AWL
Im Kapitel finden Sie auf Seite
2.1 Aufbau einer Anweisung 2-2
2.2 Bedeutung der CPU-Register in Anweisungen 2-10
Kapitelübersicht
2
2-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
2.1 Aufbau einer Anweisung
Abhängig von ihrem Aufbau werden Anweisungen in eine der beidenfolgenden Hauptgruppen eingeordnet (siehe auch Bild 2-1):
� Anweisungen, die nur aus der Operation bestehen (zum Beispiel NOT,siehe hierzu Kapitel 5.9).
� Anweisungen, die aus einer Operation und einem Operanden bestehen(siehe Tabellen 2-1 bis 2-5 und Tabelle 2-9).
Anweisungen der 1. Gruppe
Operation und OperandNur Operation
Anweisungen der 2. Gruppe
Bild 2-1 Hauptgruppen der Anweisungen
Der Operand einer Anweisung gibt eine Konstante oder eine Adresse an, beider die Operation einen Wert (Datenobjekt) findet, mit dem sie eineVerknüpfung ausführen kann. Der Operand kann einen symbolischen Namenoder eine absolute Bezeichnung haben. Er kann auf die folgenden Elementezeigen (siehe auch Tabellen 2-1 bis 2-9):
� Eine Konstante, den Wert einer Zeit oder eines Zählers oder eine ASCII-Zeichenkette, die bzw. der in Akkumulator 1 (AKKU 1) geladen werdensoll (z. B. L +27, siehe Tabelle 2-1).
� Ein Bit im Statuswort des Automatisierungssystems (z. B. U UO, sieheTabelle 2-2).
� Einen symbolischen Namen (z. B. U MOTOR_EIN, siehe Tabelle 2-3).
� Einen Datenbaustein und eine Adresse innerhalb dieses Datenbaustein-bereichs (z. B. L DB4.DBD10, siehe Tabelle 2-4).
� Eine Funktion (FC), einen Funktionsbaustein (FB), eine integrierteSystemfunktion (SFC) oder einen integrierten Systemfunktionsbaustein(SFB) und die Nummer der Funktion bzw. des Funktionsbausteins (sieheTabelle 2-5).
� Ein Operandenkennzeichen und eine Adresse innerhalb des Speicher-bereichs, den das Operandenkennzeichen angibt (z.B. U E 1.0 oderU E [AR 1,P#4.3], siehe Tabelle 2-9).
Die Tabellen 2-1 bis 2-9 zeigen verschiedene Anweisungen, von denen jedeaus einer Operation und einem Operanden besteht.
Komponenteneiner Anweisung
Operand einerAnweisung
Aufbau und Elemente von AWL
2-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 2-1 zeigt Ihnen, wie Sie einen konstanten Wert als Operanden einerAnweisung verwenden.
Tabelle 2-1 Operanden, die auf einen Wert oder eine Zeichenkette zeigen
Anweisung
Operation Operand Beschreibung= KONSTANTE
g
L +27 Lade Ganzzahl 27 in AKKU 1.
L ’ENDE’ Lade die ASCII-Zeichen ’ENDE’ in AKKU 1.
Der Operand einer AWL-Operation kann sich auf ein Bit oder mehrere Bitsim Statuswort des Automatisierungssystems beziehen (siehe Kapitel 2.2). DieOperation fragt den Signalzustand eines einzelnen Bits im Statuswort ab(z.B. U BIE) und reagiert darauf, oder sie wertet die Bitverknüpfung vonzwei der Bits aus (z.B. U UO).
Tabelle 2-2 Operanden, die sich auf ein Bit im Statuswort beziehen
Anweisung
Operation OperandBeschreibung
Bit im Statuswort
Beschre bung
U BIE Die ”1” oder ”0” in Bit 8 des Statuswortes wird ver-knüpft.
U UO Die Operation wertet die Bitverknüpfung in den Status-bits A1 und A0 aus, um zu überprüfen, ob eine be-stimmte Bedingung erfüllt wurde. So gibt zum Beispieldie Verknüpfung von ”1” und ”1” ”unzulässig” an, d. h.einer der Werte in einer Gleitpunktoperation war keinegültige Gleitpunktzahl.
Konstante Werte
Bit im Statuswort
Aufbau und Elemente von AWL
2-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle 2-3 zeigt Ihnen, wie Sie einen symbolischen Namen als Operandeneiner Anweisung verwenden. Symbolische Namen müssen Sie global (in derSymboltabelle) oder lokal (in einem Baustein) vereinbart haben, wenn Sie siein AWL-Anweisungen benutzen wollen.
Tabelle 2-3 Operanden, die auf einen symbolischen Namen zeigen
Anweisung
Operation Operand BeschreibungSymbol
g
U MOTOR.EIN Führe eine UND-Verknüpfung des Bits aus, dessensymbolischer Name MOTOR.EIN lautet. In diesemBeispiel kann der symbolische Name MOTOR.EINnur ein Bit im Speicherbereich Datenbaustein (D)oder Element einer Struktur ”MOTOR” darstellen.
L DREHZAHL Lade den Byte-, Wort- oder Doppelwortwert, des-sen symbolischer Name DREHZAHL lautet, inAKKU 1.
Tabelle 2-4 zeigt Ihnen, wie Sie einen Datenbaustein und eine Adresse indiesem Datenbaustein als den Operanden einer Anweisung verwenden.
Tabelle 2-4 Operanden, die auf einen Datenbaustein oder eine Adresse in einemDatenbaustein zeigen
Anweisung
Operation OperandBeschreibung
Datenbausteinund Adresse
Beschre bung
L DB4.DBD10 Lade Datendoppelwort DBD10 aus DatenbausteinDB4 in AKKU 1.
U DB10.DBX4.3 Führe eine UND-Verknüpfung des DatenbitsDBX4.3 aus Datenbaustein DB10 aus.
SymbolischeNamen
Datenbaustein undAdresse im Daten-baustein
Aufbau und Elemente von AWL
2-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 2-5 zeigt Ihnen, wie Sie eine Funktion (FC), einen Funktionsbaustein(FB), eine integrierte Systemfunktion (SFC), einen integriertenSystemfunktionsbaustein (SFB) und die Nummer der Funktion bzw. desFunktionsbausteins als Operanden einer Operation verwenden.
Tabelle 2-5 Operanden, die auf eine Funktion, einen Funktionsbaustein, eineSystemfunktion oder einen Systemfunktionsbaustein zeigen
Anweisung
Operation OperandBeschreibung
FC, FB, SFC,SFB undNummer
Beschre bung
CALL FB10, DB 10 Rufe Funktionsbaustein FB10 mit Instanz-Daten-baustein DB10 auf.
CALL SFC43 Rufe Systemfunktion SFC43 auf.
Einige Operanden bestehen aus einem Operandenkennzeichen und einerAdresse innerhalb des im Operandenkennzeichen angegebenenSpeicherbereichs. Ein Operandenkennzeichen kann zu den folgenden dreiArten gehören (siehe Tabellen 2-6 bis 2-8):
� Ein Operandenkennzeichen, das den Speicherbereich und die Größe einesDatenobjekts in diesem Bereich wie folgt angibt (siehe Tabelle 2-6):
– Speicherbereich, in dem die Operation einen Wert (Datenobjekt)findet, mit dem sie eine Verknüpfung ausführt (z.B. ”E” für Pro-zeßabbild der Eingänge).
– Größe eines Werts (Datenobjekts), mit dem die Operation eineVerknüpfung ausführen soll (z.B. B für ”Byte”, W für ”Wort” und Dfür ”Doppelwort”).
� Ein Operandenkennzeichen, das einen Speicherbereich, nicht jedoch dieGröße des Datenobjekts in diesem Bereich angibt (z.B. ein Kennzeichenfür den Bereich T (Zeiten), Z (Zähler) oder DB bzw. DI (Datenbaustein)und die Nummer der Zeit, des Zählers oder des Datenbausteins) (sieheTabelle 2-7).
� Ein Operandenkennzeichen, das die Größe eines Datenobjekts ohne denSpeicherbereich angibt. Der Speicherbereich ist in der Operandenadresse,die auf das Operandenkennzeichen folgt, codiert (siehe Tabelle 2-8).
FCs, FBs, SFCsund SFBs
Operanden-kennzeichen
Aufbau und Elemente von AWL
2-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle 2-6 Operandenkennzeichen, das den Speicherbereich und die Größe des Datenobjekts angibt
Adressierungsart Operation Operandenkennzeichen: OperandenadresseSpeicher-bereich
Größe des Datenobjekts(Bit, wenn nicht anders
angegeben)
Direkt U E 0.0
Direkt L E B 10
Speicherindirekt U E [MD2]
Speicherindirekt L E B [DID4]
Registerindirekt, be-reichsintern
U E [AR1, P#4.3]
Registerindirekt, be-reichsintern
T L D [AR2, P#53.0]
Tabelle 2-7 Operandenkennzeichen, das den Speicherbereich, aber keine Größe des Datenobjekts angibt
Adressierungsart Operation Operandenkennzeichen:Speicherbereich
Nummer oderAdresse der
Nummer
Direkt AUF DB 5
Direkt SI T 7
Speicherindirekt AUF DB [LW2]
Speicherindirekt S Z [MW44]
Tabelle 2-8 Operandenkennzeichen, das die Größe des Datenobjekts, aber keinen Speicherbereich angibt
Adressierungsart Operation Größe des Datenobjekts(Bit, wenn nicht anders
angegeben)
Operandenadresse
Registerindirekt, be-reichsübergreifend
U [AR1, P#4.3]
Registerindirekt, be-reichsübergreifend
L B [AR1, P#100.0]
Tabelle 2-9 Operanden, die aus Operandenkennzeichen und Operandenadresse bestehen
Anweisung
Operation OperandBeschreibung
Operan-denkenn-zeichen
Adresse imSpeicher-
bereich oderRegister
Beschre bung
U E 1.0 Führe eine UND-Verknüpfung des Eingangsbits E 1.0 aus.
U E [MD2] Führe eine UND-Verknüpfung des Eingangsbits aus. Die genaueAdresse befindet sich im Merkerdoppelwort MD2.
L Z 1 Lade den Zählwert des Zählers Z1 in AKKU 1.
Aufbau und Elemente von AWL
2-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Wenn Sie mit einer Operation arbeiten, deren Operandenkennzeichen einenSpeicherbereich Ihres Automatisierungssystems angibt, und mit einemDatenobjekt, daß von der Größe her entweder ein Wort oder ein Doppelwortist (siehe Tabelle 2-6), müssen Sie berücksichtigen, daß sich auf dieSpeicheradresse immer als Byteadresse bezogen wird. Diese Byteadresse istdie Nummer des höchstwertigen Bytes innerhalb des Worts oderDoppelworts. Der Operand in der in Bild 2-2 gezeigten Operation beziehtsich beispielsweise auf vier aufeinanderfolgende Bytes imSpeicherbereich M, angefangen bei Byte 10 (MB10) bis Byte 13 (MB13).
Operation: L MD10
Operandenkennzeichen Byteadresse
Bild 2-2 Beispiel für eine Speicheradresse, auf die sich in Form einer Byteadressebezogen wird
Bild 2-3 zeigt Datenobjekte mit den folgenden Größen:
� Doppelwort: Merkerdoppelwort MD10
� Wort: Merkerwörter MW10, MW11 und MW12
� Byte: Merkerbytes MB10, MB11, MB12 und MB13
Wenn Sie absolute Operanden verwenden, die von der Breite her ein Wortoder ein Doppelwort sind, dann stellen Sie sicher, daß Sie Byte-Zuweisungenvermeiden, die sich überlappen.
MB10 MB11 MB12 MB13
MW11
MW10 MW12
MSB LSB
0|15
16|15MD10
031
015
Bild 2-3 Bezug auf Speicheradresse in Form einer Byteadresse
Die meisten Operanden in AWL beziehen sich auf Speicherbereiche. Diefolgende Tabelle zeigt die Arten und ihre Funktionen
Arbeiten mit Wortoder Doppelwortals Datenobjekt
Speicherbereicheund ihreFunktionen
Aufbau und Elemente von AWL
2-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle 2-10 Speicherbereiche und ihre Funktionen
Bereichs-Bereichszugriff über
Bere chs-name Funktion des Speicherbereichs Einheiten der folgen-
den Größen:Abk.
Prozeßabbildder Eingänge
Zu Beginn des Zyklus liest das Betriebssystem die Eingängeaus dem Prozeß und zeichnet die Werte in diesem Bereich auf.Das Programm kann diese Werte bei seiner zyklischenBearbeitung verwenden.
EingangEingangsbyteEingangswortEingangsdoppelwort
EEBEWED
Prozeßabbildder Ausgänge
Während des Zyklus errechnet das Programm dieAusgangswerte und legt sie in diesem Bereich ab. Am Ende desZyklus liest das Betriebssystem die errechneten Ausgangswerteaus diesem Bereich und sendet sie zu den Prozeßausgängen.
AusgangAusgangsbyteAusgangswortAusgangsdoppelwort
AABAWAD
Merker Dieser Bereich stellt Speicherplatz zur Verfügung fürZwischenergebnisse, die das Programm errechnet hat.
MerkerMerkerbyteMerkerwortMerkerdoppelwort
MMBMWMD
Peripherie-bereichEingänge:ext. Eingänge
Dieser Bereich ermöglicht Ihrem Programm den direktenZugriff auf die Eingabe- und Ausgabebaugruppen (periphereEingänge und Ausgänge).
PeripherieeingangsbytePeripherieeingangswortPeripherieeingangs-Doppelwort
PEBPEWPED
Peripherie-bereichAusgänge:ext. Ausgänge
PeripherieausgangsbytePeripherieausgangswortPeripherieausgangs-Doppelwort
PABPAWPAD
Zeiten Zeiten sind Funktionselemente in AWL. Dieser Bereich stelltSpeicherplatz für Zeitzellen zur Verfügung. In diesem Bereichgreift der Zeitimpulsgeber auf die Zeitzellen zu, um sie durchVerminderung des Zeitwertes zu aktualisieren. Zeitoperationengreifen hier auf die Zeitzellen zu.
Zeit (T) T
Zähler Zähler sind Funktionselemente in AWL. Dieser Bereich stelltSpeicherplatz für Zähler zur Verfügung. Zähloperationengreifen hier auf sie zu.
Zähler (Z) Z
Datenbaustein In diesem Bereich sind Daten enthalten, auf die von jedemBaustein aus zugegriffen werden kann. Falls Sie zwei verschie-dene Datenbausteine gleichzeitig öffnen müssen, können Sieden einen mit der Anweisung ”AUF DB” und den anderen mitder Anweisung ”AUF DI” öffnen. Auf diese Weise kann dieCPU unterscheiden, auf welchen der beiden Datenbausteine IhrProgramm zugreifen will, wenn beide geöffnet sind.Ob hl Si it d A i ”AUF DI” f j d b li bi
Datenbaustein, geöffnetmit der Anweisung”AUF DB”:DatenbitDatenbyteDatenwortDatendoppelwort
DBXDBBDBWDBD
Obwohl Sie mit der Anweisung ”AUF DI” auf jeden beliebigenDatenbaustein zugreifen können, wird diese Anweisung jedochhauptsächlich für das Öffnen von Instanz-Datenbausteinenverwendet, die Funktionsbausteinen (FBs) undSystemfunktionsbausteinen (SFBs) zugeordnet sind. WeitereInformationen zu FBs und SFBs entnehmen Sie derOnline-Hilfe zu STEP 7.
Datenbaustein, geöffnetmit der Anweisung”AUF DI”:DatenbitDatenbyteDatenwortDatendoppelwort
DIXDIBDIWDID
Lokaldaten Dieser Bereich enthält bausteintemporäre Daten einesCodebausteins (OB, FB oder FC). Diese Daten heißen auchdynamische Lokaldaten. Sie dienen als Zwischenspeicher.Wenn der Codebaustein geschlossen wird, gehen diese Datenverloren. Die Daten sind im Lokaldaten-Stack (L-Stack)enthalten.
Temporäre LokaldatenTemporäresLokaldatenbyteTemp. LokaldatenwortTemporäresLokaldaten-Doppelwort
LLB
LWLD
Aufbau und Elemente von AWL
2-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 2-11 listet die maximalen Adreßbereiche der verschiedenen Speicher-bereiche auf. Die Adreßbereiche für Ihre CPU entnehmen Sie bitte dementsprechenden technischen Daten der CPU. Die Funktion der Speicher-bereiche ist in Tabelle 2-10 erklärt.
Tabelle 2-11 Speicherbereiche und ihre Adreßbereiche
BereichsnameBereichszugriff über
M i l Ad ßb i hBere chsnameEinheiten der folgenden Größen: Abk. Maximaler Adreßbereich
Prozeßabbild derEingänge
EingangEingangsbyteEingangswortEingangsdoppelwort
EEBEWED
0.0 bis 65 535.70 bis 65 5350 bis 65 5340 bis 65 532
Prozeßabbild derAusgänge
AusgangAusgangsbyteAusgangswortAusgangsdoppelwort
AABAWAD
0.0 bis 65 535.70 bis 65 5350 bis 65 5340 bis 65 532
Merker Merker MerkerbyteMerkerwortMerkerdoppelwort
MMBMWMD
0.0 bis 65535.70 bis 655350 bis 655340 bis 65532
PeripheriebereichEingänge:Externe Eingänge
PeripherieeingangsbytePeripherieeingangswortPeripherieeingangs-Doppelwort
PEBPEWPED
0 bis 65 5350 bis 65 5340 bis 65 532
PeripheriebereichAusgänge:Externe Ausgänge
PeripherieausgangsbytePeripherieausgangswortPeripherieausgangs-Doppelwort
PABPAWPAD
0 bis 65 5350 bis 65 5340 bis 65 532
Zeit Zeit T 0 bis 65 535
Zähler Zähler Z 0 bis 65 535
Datenbaustein Datenbaustein, geöffnet mit der Anweisung”AUF DB”:
Datenbit im DatenbausteinDatenbyteDatenwortDatendoppelwort
DBXDBBDBWDBD
0.0 bis 65 535.70 bis 65 5350 bis 65 5340 bis 65 532
Datenbaustein, geöffnet mit der Anweisung”AUF DI”:
Datenbit im Instanz-DBDatenbyteDatenwortDatendoppelwort
DIXDIBDIWDID
0.0 bis 65 535.70 bis 65 5350 bis 65 5340 bis 65 532
Lokaldaten LokaldatenbitLokaldatenbyteLokaldatenwortLokaldaten-Doppelwort
LLBLWLD
0.0 bis 65 535.70 bis 65 5350 bis 65 5340 bis 65 532
Aufbau und Elemente von AWL
2-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
2.2 Bedeutung der CPU-Register in Anweisungen
Die Akkumulatoren (AKKUs) sind Universalregister für die Verarbeitung vonBytes, Wörtern und Doppelwörtern. Sie sind 32 Bit breit. Sie können ausdem Speicher Konstanten oder Werte als Operanden in den Akkumulatorladen und dort verknüpfen. Ebenso können Sie das Ergebnis einer Operationvon AKKU 1 zu einer Operandenadresse transferieren. Bild 2-4 zeigt dieBereiche eines Akkumulators.
Der Stack-Mechanismus für die Akkumulatorverwaltung sieht wie folgt aus:
� Eine Ladeoperation wirkt immer auf AKKU 1 und rettet den alten Inhaltin AKKU 2.
� Eine Transferoperation verändert die Akkumulatoren nicht (aus-genommen die Operationen TAR1 und TAR2).
� Die Operation TAK tauscht den Inhalt der AKKUs 1 und 2.
Informationen über die Akkumulatorverwaltung bei arithmetischenOperationen entnehmen Sie dem Kapitel 9.1.
0781516232431
AKKU (1 oder 2)NiederwertigesWort
HöherwertigesWort
NiederwertigesByte
HöherwertigesByte
HöherwertigesByte
NiederwertigesByte
Bild 2-4 Bereiche eines Akkumulators
Der Klammerstack ist ein Speicherbereich, den die Verknüpfungsoperationenvon Klammerausdrücken U(, O(, X(, UN(, ON( und XN( verwenden. Er istein Byte breit. Diese Operationen speichern das aktuelleVerknüpfungsergebnis (VKE) im Klammerstack und beginnen eine neueVerknüpfungskette.
Der Klammerstack kann bis zu sieben Einträge aufnehmen. Ein Eintrag imKlammerstack besteht aus den Bits VKE, BIE und OR des Statuswortes undeinem Funktionscode, der angibt, welche Verknüpfung ausgeführt werdensoll (U, UN, O, ON, X oder XN).
Die Operation ) schließt einen Klammerausdruck und führt folgendeFunktionen aus:
� Holt einen Eintrag aus dem Klammerstack.
� Holt die Bits OR und BIE.
� Definiert das neue VKE durch Verknüpfen des aktuellen VKE (d. h. dasVKE des Klammerausdrucks) mit dem VKE des Stackeintrags nach demFunktionscode (siehe Kapitel 5.4).
Akkumulatoren
Klammerstack
Aufbau und Elemente von AWL
2-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Bild 2-5 zeigt den Aufbau eines Eintrags im Klammerstack. Im Anschluß andas Bild folgt eine Erläuterung der Bits des Klammerstack-Byte.
2427 26 25 2023 22 21
BIE OR0 0 VKE Funktionscode
Bild 2-5 Aufbau eines Eintrags im Klammerstack
Das Klammerstack-Byte enthält folgende Bits (siehe auch Bild 2-5):
� nicht zugewiesene Bits (Bits 7 und 6 mit Signalzustand ”0”),
� das gespeicherte Binärergebnis (BIE),
� das gespeicherte Verknüpfungsergebnis (VKE),
� das gespeicherte OR-Bit in den Funktionen U( und UN(. Null wird injeder anderen Funktion gespeichert,
� den Funktionscode (in den Bits 2, 1 und 0).
Funktionscode
Die Operation ) bestimmt die Funktion, die für die Verknüpfung desKlammer-VKE mit dem VKE aus dem Klammereintrag verwendet werdensoll, anhand des Funktionscodes. Tabelle 2-12 listet die Bitkombinationendes Funktionscodes für jede Funktionsart auf.
Tabelle 2-12 Funktionscode des Klammerstack-Bytes
Operationsfunktion Funktionscode 2 Funktionscode 1 Funktionscode 0
U( 0 0 0
UN( 0 0 1
O( 0 1 0
ON( 0 1 1
X( 1 0 0
XN( 1 0 1
Aufbau und Elemente von AWL
2-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Klammerstack mit Einträgen und Pointer
Der Klammerstack sowie der Klammerstack-Pointer müssen im Unter-brechungs-Stack gespeichert oder vom Unterbrechungs-Stack geholt werden,wenn die Schichten gewechselt werden. Die Zahl im Klammerstack-Pointergibt an, wieviele Einträge im Klammerstack vorhanden sind (siehe Bild 2-6).
15 7 0
SteigendeAdressen
Klammerstack-Pointer
Klammerstack-Eintrag 7
Klammerstack-Eintrag 5
Klammerstack-Eintrag 3
Klammerstack-Eintrag 1
Klammerstack-Eintrag 6
Klammerstack-Eintrag 4
Klammerstack-Eintrag 2
Bild 2-6 Aufbau eines Klammerstacks mit Einträgen und Pointer
Das Statuswort enthält Bits, auf die Sie im Operanden der Bit- undWortverknüpfungsoperationen zugreifen können. Bild 2-7 zeigt den Aufbaudes Statusworts. Die folgenden Kapitel erläutern die Bedeutung der Bits 0bis 8.
28215... ...29 2427 26 25 2023 22 21
BIE OSA1 A0 OV /EROR STA VKE
Bild 2-7 Aufbau des Statusworts
Das Bit 0 des Statuswortes wird Erstabfragebit genannt (/ER-Bit: sieheBild 2-8). Der Signalzustand ”0” im /ER-Bit gibt an, daß die nächsteVerknüpfungsoperation in Ihrem Programm eine neue Verknüpfungskettebeginnt. (Der Schrägstrich vor der Abkürzung ER gibt an, daß das /ER-Bitnegiert ist).
Jede Verknüpfungsoperation fragt den Signalzustand des /ER-Bits und desangesprochenen Operanden ab. Ist das /ER-Bit ”0”, dann speichert dieOperation das Ergebnis der Signalzustandsabfrage im VKE-Bit des Status-worts (zu VKE-Bit: siehe nächstes Kapitel) und setzt das /ER-Bit auf 1.Dieser Vorgang wird Erstabfrage genannt (siehe Bild 2-8 und Kapitel 5.6).
Ist der Signalzustand des /ER-Bits gleich ”1”, dann verknüpft eine Operationdas Ergebnis ihrer Signalzustandsabfrage am von ihr angesprochenenKontakt mit dem Wert, der im vorherigen VKE-Bit gespeichert wurde (sieheBild 2-8).
Eine Kette von Verknüpfungsoperationen endet immer mit einer Aus-gabeoperation (S, R oder =, siehe Kapitel 5.7 und 5.8), einer Sprungopera-tion, die sich auf das Verknüpfungsergebnis bezieht (SPB, siehe Kapitel 16)oder einem Klammerausdruck U(, O(, X( UN(, ON( oder XN( (siehe Kapitel5.4). Diese Operationen setzen das /ER-Bit auf ”0” zurück (siehe Bild 2-8).
Statuswort
Erstabfrage
Aufbau und Elemente von AWL
2-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Das Bit 1 des Statusworts wird VKE-Bit genannt (VKE steht für”Verknüpfungsergebnis”, siehe Bild 2-7). Dieses Bit speichert das Ergebniseiner Verknüpfungsoperation oder einer Vergleichsoperation.
Die zweite Operation in einer Kette von Verknüpfungsoperationen fragt z. B.den Signalzustand eines Kontakts ab und erhält das Ergebnis ”1” oder ”0”.Die Operation verknüpft nun dieses Ergebnis nach den Regeln der Boole-schen Logik mit dem Wert, der im VKE-Bit des Statusworts gespeichert ist(siehe oben ”Erstabfrage” und Kapitel 5). Das Ergebnis dieserVerknüpfungsoperation wird im VKE-Bit des Statusworts gespeichert undersetzt den vorherigen Wert im VKE-Bit. Jede nachfolgende Operation in derKette führt eine Verknüpfung mit zwei Werten aus: mit dem Ergebnis derSignalabfrage am Kontakt und mit dem aktuellen VKE.
Sie können das VKE mit der Anweisung SET absolut auf ”1” setzen oder mitder Anweisung CLR absolut auf ”0” zurücksetzen. Mit einerVerknüpfungsoperation an der Erstabfrage können Sie den Inhaltsstatus einesBitspeicherplatzes dem VKE zuweisen. Mit dem VKE können Sie Sprung-operationen auslösen.
Abfrageergebnis wird mit vorherigem VKEgemäß der UND-Wahrheitstabelle verknüpft./ER-Bit bleibt ”1”.
AWL-Programm
Signalzustand amEingang (E) oderAusgang (A)
U E 1.0
UN E 1.1
= A 4.0
VKE- Bit
Abfrage-ergebnis
1 1 Erstabfrageergebnis ist in VKE-Bit gespei-chert. /ER- Bit wird auf ”1” gesetzt.
0 1
1 VKE wird Ausgangsspule zugewiesen./ER-Bit wird auf ”0” zurückgesetzt.
1
1
Erläuterung/ER- Bit
0
1
1
0
/ER-Bit = 0 gibt an, daß die nächste Opera-tion eine Verknüpfungskette beginnt.
Bild 2-8 Auswirkungen des Signalzustands des /ER-Bits bei Verknüpfungsoperationen
Das Statusbit (STA) speichert den Wert eines angesprochenen Bits. DerStatus einer Verknüpfungsoperation, die Lesezugriff auf den Speicher hat(U, UN, O, ON, X oder XN), ist immer gleich dem Wert des Bits, das dieseOperation abfragt (das Bit, mit dem sie ihre Verknüpfung ausführt). DerStatus einer Verknüpfungsoperation, die Schreibzugriff auf den Speicher hat(S, R, =) ist gleich dem Wert des Bits, in das die Operation schreibt. Fallskein Schreiben stattfindet, ist er gleich dem Wert des angesprochenen Bits.Das Statusbit hat keine Bedeutung für Verknüpfungsoperationen, die nichtauf den Speicher zugreifen. Diese Operationen setzen das Statusbit auf ”1”(STA = 1). Das Statusbit wird nicht von Operationen abgefragt. Es wirdlediglich während des Programmtests (Programmstatus) ausgewertet.
Verknüpfungs-ergebnis
Statusbit
Aufbau und Elemente von AWL
2-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Das OR-Bit (ODER) wird benötigt, wenn Sie mit der Operation O eine UNDvor ODER-Verknüpfung ausführen. Eine UND-Verknüpfung kann folgendeOperationen enthalten: U, UN, U(, UN(, ) und NOT. Das OR-Bit zeigt diesenOperationen, daß eine zuvor ausgeführte UND-Verknüpfung den Wert ”1”geliefert hat, womit das Ergebnis der ODER-Verknüpfung vorweggenommenwird. Jede andere bitverarbeitende Operation setzt das OR-Bit zurück (sieheKapitel 5.4).
Das OV-Bit (Überlauf) zeigt einen Fehler an. Es wird von einerarithmetischen Operation oder einer Vergleichsoperation mitGleitpunktzahlen gesetzt, nachdem ein Fehler aufgetreten ist (Überlauf,unzulässige Operation, unzulässige Gleitpunktzahl). Das Bit wirdentsprechend dem Ergebnis der nächsten Arithmetik- bzw.Vergleichsoperation gesetzt.
Das OS-Bit (Überlauf, speichernd) wird zusammen mit dem OV-Bit gesetzt,wenn ein Fehler auftritt. Da das OS-Bit auch nach Beseitigung des Fehlersgesetzt bleibt, speichert es den Status des OV-Bits und zeigt an, ob in einerder zuvor ausgeführten Operationen ein Fehler aufgetreten ist. FolgendeOperationen setzen das OS-Bit zurück: SPS (Springe, wenn OS = 1),Bausteinaufrufe und Bausteinende.
Die Bits A1 und A0 (Anzeigenbits) informieren über die folgendenErgebnisse oder Bits:
� Ergebnis einer arithmetischen Operation.
� Ergebnis einer Vergleichsoperation.
� Ergebnis einer digitalen Operation.
� Bits, die durch eine Schiebe- oder Rotieroperation geschoben wurden.
Die Tabellen 2-13 bis 2-18 listen die Bedeutung von A1 und A0 auf, nach-dem Ihr Programm bestimmte Operationen ausgeführt hat.
Tabelle 2-13 A1 und A0 nach arithmetischen Operationen, ohne Überlauf
A1 A0 Erläuterung
0 0 Ergebnis = 0
0 1 Ergebnis < 0
1 0 Ergebnis > 0
Tabelle 2-14 A1 und A0 nach arithmetischen Operationen (Festpunktarithmetik), mitÜberlauf
A1 A0 Erläuterung
0 0 Negative Bereichsüberschreitung bei +I und +D
0 1 Negative Bereichsüberschreitung bei *I und *DPositive Bereichsüberschreitung bei +I, -I, +D, -D, NEGI undNEGD
1 0 Positive Bereichsüberschreitung bei *I, *D, /I und /DNegative Bereichsüberschreitung bei +I, -I, +D und -D
1 1 Division durch 0 in /I, /D und MOD
OR-Bit
OV-Bit
OS-Bit
A1 und A0
Aufbau und Elemente von AWL
2-15Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 2-15 A1 und A0 nach arithmetischen Operationen (Gleitpunktarithmetik), mitÜberlauf
A1 A0 Erläuterung
0 0 Stufenweise Unterschreitung
0 1 Negative Bereichsüberschreitung
1 0 Positive Bereichsüberschreitung
1 1 Keine gültige Gleitpunktzahl
Tabelle 2-16 A1 und A0 nach Vergleichsoperationen
A1 A0 Erläuterung
0 0 AKKU 2 = AKKU 1
0 1 AKKU 2 < AKKU 1
1 0 AKKU 2 > AKKU 1
1 1 AKKU 1 oder AKKU 2 ist keine gültige Gleitpunktzahl
Tabelle 2-17 A1 und A0 nach Schiebe- und Rotieroperationen
A1 A0 Erläuterung
0 0 Zuletzt geschobenes Bit = 0
1 0 Zuletzt geschobenes Bit = 1
Tabelle 2-18 A1 und A0 nach digitalen Verknüpfungsoperationen
A1 A0 Erläuterung
0 0 Ergebnis = 0
1 0 Ergebnis <> 0
Aufbau und Elemente von AWL
2-16Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Das BIE-Bit ist ein Bindeglied zwischen Bit- und Wortverarbeitung. Esermöglicht auf effiziente Art und Weise die binäre Interpretation desErgebnisses einer Wortoperation und dessen Einbindung in eine binäreVerknüpfungskette. BIE stellt bei dieser Betrachtungsweise einenmaschineninternen Merker dar, in den das VKE vor einer VKE-veränderndenWortoperation gerettet wird, damit es nach der Operation zur Fortführung derunterbrochenen Bitkette wieder zur Verfügung steht.
Das BIE-Bit ermöglicht es Ihnen, z. B. einen Funktionsbaustein (FB) odereine Funktion (FC) in AWL zu programmieren und den FB oder die FC inKOP aufzurufen (zu KOP siehe Referenzhandbuch /233/ ).
Wenn Sie einen Funktionsbaustein oder eine Funktion in KOP oder in AWLschreiben und in KOP aufrufen wollen, müssen Sie das BIE-Bit verwalten.Das BIE-Bit entspricht dem Freigabeausgang (ENO) für die KOP-Box. Mitder Operation SAVE (in AWL, siehe Kapitel 5.9) oder mit der Spulespeichern Sie ein VKE nach den folgenden Kriterien im BIE-Bit:
� Speichern Sie ein VKE von 1 im BIE-Bit, wenn der FB oder die FCfehlerfrei bearbeitet wurde.
� Speichern Sie ein VKE von 0 im BIE-Bit, wenn der FB oder die FC miteinem Fehler bearbeitet wurde.
Programmieren Sie diese Operationen an das Ende des FB oder der FC, sodaß es die letzten Operationen sind, die im Baustein ausgeführt werden.
Wenn Sie in Ihrem Programm einen Systemfunktionsbaustein (SFB) odereine Systemfunktion (SFC) aufrufen, zeigt der SFB bzw. die SFC über denSignalzustand des BIE-Bits an, ob die CPU die Funktion fehlerfrei oderfehlerhaft ausgeführt hat:
� Trat während der Bearbeitung ein Fehler auf, ist das BIE-Bit ”0”.
� Wurde die Funktion fehlerfrei bearbeitet, ist das BIE-Bit ”1”.
BIE-Bit
Aufbau und Elemente von AWL
3-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Adressierung
Im Kapitel finden Sie auf Seite
3.1 Unmittelbare Adressierung 3-2
3.2 Direkte Adressierung 3-2
3.3 Speicherindirekte Adressierung 3-3
3.4 Adreßregister 3-6
3.5 Registerindirekte, bereichsinterne Adressierung 3-7
3.6 Registerindirekte, bereichsübergreifende Adressierung 3-11
Kapitelübersicht
3
3-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
3.1 Unmittelbare Adressierung
Bei der unmittelbaren Adressierung ist der Operandenwert direkt in derOperation codiert, d. h. es folgt direkt der Wert, mit dem diese Operationarbeiten soll (z. B. Laden). Ebenso kann eine Operation ihren eigenen Wertzur Verfügung stellen (z. B. SET, siehe Tabelle 3-1).
Tabelle 3-1 Unmittelbare Adressierung
Beispiel Beschreibung
SET Setze VKE auf 1.
OW W#16#A320 ODER-Wort
L 27 Lade die Ganzzahl 27 in AKKU 1.
L ’ABCD’ Lade die ASCII-Zeichen ABCD in AKKU 1.
L B#(100,12) Lade eine Konstante als 2 Bytes (100 und 12) inAKKU 1.
L C#100 Lade den BCD-Wert 100 in AKKU 1.
3.2 Direkte Adressierung
Bei der direkten Adressierung ist die Operandenadresse in der Operationcodiert, d. h. der Operand gibt die Adresse des Werts an, den die Operationverarbeiten wird. Der Operand besteht aus den beiden folgenden Teilen:
� einem Operandenkennzeichen (z.B. ”EB” für ”Eingangsbyte”).
� einer genauen Adresse innerhalb des Speicherbereichs, den dasOperandenkennzeichen angibt.
Der Operand zeigt direkt auf die Adresse des Werts.
Tabelle 3-2 Direkte Adressierung
Beispiel Beschreibung
U E 0.0 Führe eine UND-Verknüpfung des EingangsbitsE 0.0 aus.
S L 20.0 Setze Lokaldatenbit L20.0.
= M 115.4 Weise das VKE dem Merkerbit M 115.4 zu.
L EB 0 Lade Eingangsbyte EB0 in AKKU 1.
L MW 64 Lade Merkerwort MW64 in AKKU 1.
T DBD 12 Transferiere den Inhalt von AKKU 1 ins Daten-doppelwort DBD12.
Beschreibung
Beispiele
Beschreibung
Beispiele
Adressierung
3-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
3.3 Speicherindirekte Adressierung
Bei der speicherindirekten Adressierung gibt der Operand die Adresse desWerts an, den die Operation verarbeiten wird. Der Operand besteht aus denbeiden folgenden Teilen:
� einem Operandenkennzeichen (z. B. ”EB” für ”Eingangsbyte”) und
� einem Wort, das die Nummer einer Zeit (T), eines Zählers (Z), Daten-bausteins (DB), einer Funktion (FC) oder eines Funktionsbausteins (FB)enthält oder
� einem Doppelwort, das die genaue Adresse eines Werts innerhalb desSpeicherbereichs enthält, den das Operandenkennzeichen angibt.
Der Operand gibt die Adresse des Werts oder der Nummer indirekt über denPointer an. Dieses Wort oder Doppelwort kann sich in einem der folgendenBereiche befinden:
� Merker (M)
� Datenbaustein (DB)
� Instanz-Datenbaustein (DI)
� Lokaldaten (L)
Vorteil der speicherindirekten Adressierung ist, daß Sie den Operanden derAnweisung während der Programmbearbeitung dynamisch modifizieren können.
Wenn Sie mit einem speicherindirekten Operanden arbeiten, der imSpeicherbereich des Datenbausteins gespeichert ist, müssen Sie zuerst denDatenbaustein öffnen, indem Sie die Operation Aufschlage Datenbausteinverwenden. Dann können Sie das Datenwort oder das Datendoppelwort alsindirekten Operanden verwenden, wie im nachfolgenden Beispiel gezeigt:
AUF DB10L EB [DBD20]
Tabelle 3-3 Speicherindirekte Adressierung
Beispiel BeschreibungU E [MD2]oderU E [anna]
Führe UND-Verknüpfung des Eingangsbits aus. Die genaue Adresse befindet sich im Merker-doppelwort MD2 oder in der mit ”anna” bezeichneten Adresse in der Symboltabelle als Bezugauf MD2.
= DIX [DBD2] Weise VKE-Bit dem Instanz-Datenbit zu. Die genaue Adresse befindet sich im DatendoppelwortDBD2.
AUF DB [LW2] Öffne den Datenbaustein. Die Datenbausteinnummer befindet sich im Lokaldatenwort LW2.
O A [LD3]oderO A [hans]
Führe ODER-Verknüpfung des Ausgangsbits aus. Die genaue Adresse befindet sich im Lokal-datendoppelwort 3 oder in der mit ”hans” bezeichneten Adresse in der Symboltabelle als Bezugauf LD3.
Beschreibung
Verwenden derkorrekten Syntax
Beispiele
Adressierung
3-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Es gibt zwei mögliche Pointerformate: Wort und Doppelwort. Die Abkürzungfür einen Pointer im Wortformat endet auf W (z. B. DBW). Bild 3-1 zeigt dasPointerformat für ein Wort. Die Abkürzung für einen Pointer imDoppelwortformat endet auf D (z. B. DBD). In Bild 3-2 sehen Sie dasPointerformat für ein Doppelwort.
15.. ..8 7.. ..0n n n n n n n n
Bits 0 bis 15 (nnnn nnnn nnnn nnnn): Nummer (Bereich 0 bis 65 535) einerZeit (T), eines Zählers (Z), Datenbausteins (DB), einer Funktion (FC) odereines Funktionsbausteins (FB)
n n n n n n n n
Bild 3-1 Pointer im Wortformat für die speicherindirekte Adressierung
Die folgenden beiden Beispiele zeigen, wie Sie mit einem Pointer im Wort-format arbeiten:
AWL Erläuterung
L +5T MW2AUF DB[MW2]
Lade den Wert 5 als Ganzzahl in AKKU 1.Transferiere den Inhalt von AKKU 1 ins Merkerwort MW2.Öffne Datenbaustein 5.
AWL Erläuterung
AUF DB10L +20T DBW10U T[DBW10]
Öffne Datenbaustein DB10.Lade den Wert 20 als Ganzzahl in AKKU 1.Transferiere den Inhalt von AKKU 1 ins Datenwort DBW10.Frage Signalzustand der Zeit T20 ab.
Pointerformat
Adressierung
3-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
31.. ..24 23.. ..16 15.. ..8 7.. ..00 0 0 0 0 0 0 0 0 0 0 0 0 b b b b b b b b b b b b b b b b x x x
Bits 3 bis 18 (bbbb bbbb bbbb bbbb): Nummer (Bereich 0 bis 65 535) desadressierten Byte
Bits 0 bis 2 (xxx): Nummer (Bereich 0 bis 7) des adressierten Bit
Bild 3-2 Pointer im Doppelwortformat für die speicherindirekte Adressierung
Hinweis
Wenn Sie auf ein Byte, Wort oder Doppelwort zugreifen, vergewissern Siesich zunächst, daß die Bitnummer des Pointers ”0” ist.
Die folgenden beiden Beispiele zeigen, wie Sie mit einem Pointer imDoppelwortformat arbeiten:
AWL Erläuterung
L P#8.7
T MD2
U E [MD2]= A [MD2]
Lade 2#0000 0000 0000 0000 0000 0000 0100 0111 (Binärwert) inAKKU 1.Speichere die Adresse 8.7 im Merkerdoppelwort MD2.
Die Steuerung fragt den Eingang E 8.7 ab und weist seinen Si-gnalzustand dem Ausgang A 8.7 zu.
AWL Erläuterung
L P#8.0
T MD2
L EB [MD2]T MW [MD2]
Lade 2#0000 0000 0000 0000 0000 0000 0100 0000 (Binärwert) inAKKU 1.Speichere die Adresse 8 im Merkerdoppelwort MD2.
Die Steuerung lädt das Eingangsbyte EB8 und transferiert denInhalt ins Merkerwort MW8.
Adressierung
3-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
3.4 Adreßregister
Für einige Arten der indirekten Adressierung sind beim Programmieren mitAWL bestimmte Register in der CPU notwendig. Diese Register sind imfolgenden beschrieben.
Die Adreßregister AR 1 und AR 2 enthalten die bereichsinternen oderbereichsübergreifenden Adressen für die registerindirekt adressierendenOperationen. Sie sind 32 Bit breit (siehe Kapitel 3.5 und 3.6).
Pointer werden bei der registerindirekten Adressierung verwendet (sieheKapitel 3.5 und 3.6). Folgende zwei Arten stehen zur Verfügung:
� bereichsintern: für den bereichsinternen Zugriff auf Bits, Bytes, Wörterund Doppelwörter in den Speicherbereichen P, E, A, M, DBX, DIXund L,
� bereichsübergreifend: für den bereichsübergreifenden Zugriff auf Bits,Bytes, Wörter und Doppelwörter in den Speicherbereichen P, E, A, M,DBX, DIX und L.
Erläuterung
Adreßregister 1und 2
Pointer
Adressierung
3-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
3.5 Registerindirekte, bereichsinterne Adressierung
Bei der registerindirekten, bereichsinternen Adressierung gibt der Operanddie Adresse des Werts an, den die Operation verarbeiten wird. Der Operandbesteht aus den beiden folgenden Teilen:
� einem Operandenkennzeichen (z. B. ”LD” für ”Lokaldaten-Doppelwort”,siehe Tabelle 2-6),
� einem Adreßregister und einem Pointer zur Angabe eines Versatzes, derzum Inhalt des Adreßregisters addiert wird, um die genaue Adresse, diedie Operation verarbeiten soll, zu ermitteln. Der Pointer wird durchP#Byte.Bit angegeben.
Der Operand zeigt indirekt auf die Adresse des Werts, und zwar über dasAdreßregister plus Versatz.
Eine Operation, die die bereichsinterne, registerindirekte Adressierungverwendet, verändert den Wert im Adreßregister nicht.
Der Operand einer Operation zeigt auf den Wert, den die Operationverarbeiten wird. Bei registerindirekter, bereichsinterner Adressierung zeigtder Operand indirekt auf die Adresse des Werts, und zwar über dasAdreßregister plus Versatz. Bild 3-3 zeigt, wie Sie die Operandenadresse fürdie Operation Zuweisung (=) in der folgenden Anweisung berechnen:
= A [AR1, P#1.1]
Inhalt des Adreßregisters AR1: 8.7 Byte 8, Bit 7
Versatz P#: 1.1 Byte 1, Bit 1
Adresse: Ausgangsbyte A 10.0 Bytes: 9, Bits: 8 (= 1 Byte)
(9 Bytes + 1 Byte = 10 Bytes)
+
Byte Bit
Bild 3-3 Berechnen der Adresse von Ausgang A [AR1, P#1.1]
Die Operandenadresse errechnen Sie, indem Sie den Byteanteil des Inhaltsdes Adreßregisters zum Byteanteil des Versatz-Pointers addieren und indemSie den Bitanteil des Inhalts des Adreßregisters zum Bitanteil desVersatz-Pointers addieren. Bei der Berechnung des Byteanteils der Adresseverwenden Sie das Dezimalsystem, bei der Berechnung des Bitanteilsverwenden Sie das Oktalsystem (8 Bit = 1 Byte). Es kann sich hier um einenÜbertrag zwischen den Bit- und Byteanteilen handeln.
Beschreibung
Berechnen derOperandenadresse
Adressierung
3-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle 3-4 Registerindirekte, bereichsinterne Adressierung
Beispiel Beschreibung
U E [AR1, P#4.3] Führe eine UND-Verknüpfung des Eingangsbits aus.Die Adresse errechnet sich aus dem Inhalt vonAdreßregister AR 1 plus 4 Bytes plus 3 Bits.
= DIX [AR2, P#0.0] Weise das VKE-Bit dem Instanz-Datenbit zu. DieAdresse befindet sich im Adreßregister AR 2.
L EB [AR1, P#100.0] Lade das Eingangsbyte in AKKU 1. Die Adresseerrechnet sich aus dem Inhalt von AdreßregisterAR 1 plus 100 Bytes.
T LD [AR2, P#56.0] Transferiere den Inhalt von AKKU 1 in das Lokal-daten-Doppelwort LD. Die Adresse errechnet sichaus dem Inhalt von Adreßregister AR 2 plus 56Bytes.
Zur Adressierung von Lokaldaten lesen Sie bitte dieuntenstehende Warnung.
!Warnung
Mögliches Überschreiben der vom Übersetzer verwendeten Daten.
Wenn Sie auf temporäre Lokaldaten über die absolute Adressierungzugreifen, so kann es zu einem Konflikt zwischen den vom Übersetzerverwendeten Daten und den Lokaldaten kommen. Es ist möglich, daß Siedann einige der vom Übersetzer verwendeten Daten überschreiben. (DerÜbersetzer verwendet beispielsweise für das Übertragen vonFormatparametern Lokaldaten.) Lokaldaten, die der Übersetzer verwendet,sind an die symbolischen Daten geknüpft, die vom Programmierer definiertwerden.
Wenn sie auf temporäre Lokaldaten zugreifen wollen, so empfiehlt es sich,symbolische Adressierung zu wählen, und nicht absolute Adressierung.
Beispiele
Adressierung
3-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Für die registerindirekte, bereichsinterne Adressierung steht nur einmögliches Pointerformat zur Verfügung: das Doppelwort. Dieses Doppelwortenthält einen als Bitadresse codierten Operanden. Die Abkürzung für einenPointer im Doppelwortformat endet auf D (z. B. DBD). In Bild 3-4 sehen Siedas Pointerformat für ein Doppelwort.
31.. ..24 23.. ..16 15.. ..8 7.. ..00 0 0 0 0 0 0 0 0 0 0 0 0 b b b b b b b b b b b b b b b b x x x
Bit 31 = 0 kennzeichnet registerindirekte, bereichsinterne Adressierung
Bits 3 bis 18 (bbbb bbbb bbbb bbbb): Nummer (Bereich 0 bis 65 535) desadressierten Bytes
Bits 0 bis 2 (xxx): Nummer (Bereich 0 bis 7) des adressierten Bits
..3
Bild 3-4 Pointer im Doppelwortformat für die registerindirekte, bereichsinterneAdressierung
Hinweis
Wenn Sie auf ein Byte, Wort oder Doppelwort zugreifen, vergewissern Siesich zunächst, daß die Bitnummer des Pointers ”0” ist.
Pointerformat
Adressierung
3-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die folgenden beiden Beispiele zeigen, wie Sie mit einem Pointer imDoppelwortformat arbeiten:
AWL Erläuterung
L P#8.7
LAR1
U E [AR1, P#0.0]
= A [AR1, P#1.1]
Lade einen Pointer im Doppelwortformat auf Bitadresse 8.7 inAKKU 1.
Speichere einen Pointer im Doppelwortformat auf Bitadresse 8.7in Adreßregister AR 1.
Die CPU fügt dem Inhalt des Adreßregisters AR1 (8.7) den Ver-satz (P#0.0) hinzu und verwendet diese Adresse als Operand ei-ner UND-Verknüpfung des Bits. Der Inhalt von AR1 bleibt unver-ändert.
Die CPU weist das Verknüpfungsergebnis (VKE) einer Adresse(A 10.0) zu. Die CPU berechnet diesen Operanden, indem der In-halt des Adreßregisters AR1 (8.7) und der Versatz (P#1.1) ad-diert werden.
AWL Erläuterung
L P#8.0
LAR2
L EB [AR2, P#2.0]
T MW [AR2, P#200.0]
Lade einen Pointer im Doppelwortformat auf Bitadresse 8.0 inAKKU 1.
Speichere einen Pointer im Doppelwortformat auf Bitadresse 8.0in Adreßregister AR 2.
Die CPU lädt das Eingangsbyte EB10 in AKKU 1.
Die CPU transferiert den Inhalt von AKKU 1 ins MerkerwortMW208.
Die Adresse 208 errechnet sich aus 8 (AR 2) plus 200 (Versatz).Dies ergibt 208.
Adressierung
3-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
3.6 Registerindirekte, bereichsübergreifende Adressierung
Bei der registerindirekten, bereichsübergreifenden Adressierung gibt derOperand die Adresse des Wertes an, den die Operation verarbeiten wird, undbesteht aus den beiden folgenden Teilen:
� einem Operandenkennzeichen, das die Größe eines Datenobjekts (z. B.”B” für ”Byte”, siehe Tabelle 2-8) angibt. Der Speicherbereich wird inden Bits 24, 25 und 26 des Adreßregisters angegeben.
� einem Adreßregister und einem Pointer zur Angabe eines Versatzes, derzum Inhalt des Adreßregisters addiert wird, um die genaue Adresse, diedie Operation verarbeiten soll, zu ermitteln. Der Pointer wird durchP#Byte.Bit angegeben.
Der Operand zeigt indirekt auf die Adresse des Werts, und zwar über dasAdreßregister plus Versatz.
Eine Operation, die die registerindirekte, bereichsübergreifende Adressierungverwendet, verändert den Wert im Adreßregister nicht.
Der Operand einer Operation zeigt auf den Wert, den die Operationverarbeiten wird. Bei registerindirekter, bereichsübergreifender Adressierungzeigt der Operand indirekt auf die Adresse des Werts, und zwar über dasAdreßregister plus Versatz. Bild 3-5 zeigt, wie Sie die Operandenadresse fürdie Operation Zuweisung (=) in der folgenden Anweisung berechnen:
= [AR1, P#1.1]
Inhalt des Adreßregisters AR1: 8.7 Byte 8, Bit 7
Versatz P#: 1.1 Byte 1, Bit 1
Adresse: Byte 10.0 Bytes: 9, Bits: 8 (= 1 Byte)
(9 Bytes + 1 Byte = 10 Bytes)
+
Byte Bit
Bild 3-5 Berechnen der Adresse [AR1, P#1.1]
Die Operandenadresse errechnen Sie, indem Sie den Byteanteil des Inhaltsdes Adreßregisters zum Byteanteil des Versatz-Pointers addieren und indemSie den Bitanteil des Inhalts des Adreßregisters zum Bitanteil desVersatz-Pointers addieren. Bei der Berechnung des Byteanteils der Adresseverwenden Sie das Dezimalsystem, bei der Berechnung des Bitanteilsverwenden Sie das Oktalsystem (8 Bit = 1 Byte). Es kann sich hier um einenÜbertrag zwischen den Bit- und Byteanteilen handeln.
Beschreibung
Berechnen derOperandenadresse
Adressierung
3-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle 3-5 gibt Beispiele für die registerindirekte, bereichsübergreifendeAdressierung. Der Operand muß in den Bits 24, 25 und 26 des Pointers einezusätzliche Bereichskennung enthalten. Die angesprochenen Informationenbefinden sich im Adreßregister.
Tabelle 3-5 Registerindirekte, bereichsübergreifende Adressierung
Beispiel Beschreibung
U [AR 1, P#4.3] Führe eine UND-Verknüpfung des Bits aus. DieAdresse errechnet sich aus dem Inhalt von Adreß-register AR 1 plus 4 Bytes plus 3 Bits. Der Speicher-bereich des Bits ist in den Bits 24, 25 und 26 desAdreßregisters AR 1 angegeben.
= [AR 2, P#0.0] Weise das VKE-Bit dem Bit zu. Die Adresse des Bitbefindet sich im Adreßregister AR 2. Der Speicher-bereich des Bits ist in den Bits 24, 25 und 26 desAdreßregisters AR 2 angegeben.
L B [AR 1, P#100.0] Lade das Byte in AKKU 1. Die Adresse des Byteerrechnet sich aus Adreßregister AR 1 plus 100Bytes. Der Speicherbereich des Bytes ist in den Bits24, 25 und 26 des Adreßregisters AR 1 angegeben.
T D [AR 2, P#56.0] Transferiere den Inhalt von AKKU 1 in das Doppel-wort. Die Adresse des Doppelworts errechnet sichaus dem Inhalt des Adreßregisters AR 2 plus 56Bytes. Der Speicherbereich des Doppelwortes ist inden Bits 24, 25 und 26 des Adreßregisters AR 2angegeben.
Tabelle 3-6 listet den Binärcode in den Pointerbits 24, 25 und 26 auf, diediesen Bereich kennzeichnen.
Tabelle 3-6 Bereichskennung für die registerindirekte, bereichsübergreifendeAdressierung
Bereichskennung (Speicherbereich) Binärcode der Bits 26, 25, und 24
P (Peripheriebereich der Ein- und Ausgänge)
000
E (Prozeßabbild der Eingänge) 001
A (Prozeßabbild der Ausgänge) 010
M (Merker) 011
DBX (Datenbaustein) 100
DIX (Instanz-Datenbaustein) 101
(Lokaldaten des aufrufendenBausteins, d.h. Lokaldaten des unmittelbaren Vorgängers in der Aufrufhierarchie.
111
Beispiel
Adressierung
3-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Für die registerindirekte, bereichsübergreifende Adressierung steht nur einmögliches Pointerformat zur Verfügung: das Doppelwort. Die Abkürzung füreinen Pointer im Doppelwortformat endet auf D (z. B. DBD). In Bild 3-6sehen Sie das Pointerformat für ein Doppelwort.
31.. 26..24 23.. ..16 15.. ..8 7.. ..01 0 0 0 0 r r r 0 0 0 0 0 b b b b b b b b b b b b b b b b x x x
Bit 31 = 1 gibt registerindirekte, bereichsübergreifende Adressierung an
Bit 24, 25 und 26 (rrr): Bereichskennung (Speicherbereich, siehe Tabelle3-6
Bits 3 bis 18 (bbbb bbbb bbbb bbbb): Nummer (Bereich 0 bis 65 535) desadressierten Bytes
Bits 0 bis 2 (xxx): Nummer (Bereich 0 bis 7) des adressierten Bits
3..
Bild 3-6 Pointer im Doppelwortformat für die registerindirekte, bereichsüber-greifende Adressierung
Hinweis
Wenn Sie auf ein Byte, Wort oder Doppelwort zugreifen, vergewissern Siesich zunächst, daß die Bitnummer des Pointers ”0” ist.
Auf Lokaldaten kann nicht registerindirekt, bereichsübergreifend zugegriffenwerden!
Pointerformat
Adressierung
3-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die folgenden beiden Beispiele zeigen, wie Sie mit einem Pointer imDoppelwortformat arbeiten:
AWL Erläuterung
L P#E8.7
LAR1
L P#A8.7
LAR2
U [AR1, P#0.0]
= [AR2, P#1.1]
Lade einen Pointer im Doppelwortformat auf Bitadresse E 8.7 inAKKU 1.
Speichere einen Pointer im Doppelwortformat auf BitadresseE 8.7 in Adreßregister AR 1.
Lade einen Pointer im Doppelwortformat auf Bitadresse A 8.7 inAKKU 1.
Speichere einen Pointer im Doppelwortformat auf BitadresseA 8.7 in Adreßregister AR 2.
Die CPU fügt den Inhalt des Adreßregisters AR1 (P# E 8.7) undden Versatz (P#0.0) hinzu und verwendet den Operanden, auf dendas Ergebnis (E 8.7) zeigt, als Operanden einer UND-Verknüpfungdes Bits. Der Inhalt von AR1 bleibt unverändert.
Die CPU weist das Verknüpfungsergebnis (VKE) einem Operanden(A 10.0) zu. Die CPU berechnet diesen Operanden, indem der In-halt des Adreßregisters AR2 (P#A 8.7) und der Versatz (P#1.1)addiert werden und der Pointer deaktiviert wird. Der Inhalt vonAR2 bleibt unverändert.
AWL Erläuterung
L P#E8.0
LAR2
L P#M8.0
LAR1
L B [AR2, P#2.0]
T W [AR1, P#200.0]
Lade einen Pointer im Doppelwortformat auf Bitadresse E 8.0 inAKKU 1.
Speichere einen Pointer im Doppelwortformat auf BitadresseE 8.0 in Adreßregister AR 2.
Lade einen Pointer im Doppelwortformat auf Bitadresse M 8.0 inAKKU 1.
Speichere einen Pointer im Doppelwortformat auf BitadresseM 8.0 in Adreßregister AR 1.
Die CPU lädt das Eingangsbyte EB10 in AKKU 1.
Die CPU transferiert den Inhalt von AKKU 1 ins MerkerwortMW208.
Eingangsbyte 10 errechnet sich aus 8 (AR 2) plus 2 (Versatz).Merkerwort 208 errechnet sich aus 8 (AR 1) plus 200 (Versatz).Dies ergibt 208.
Adressierung
4-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Akkumulatoroperationen undAdreßregisteranweisungen
Im Kapitel finden Sie auf Seite
4.1 Übersicht 4-2
4.2 ENT und LEAVE 4-3
4.3 Inkrementieren und Dekrementieren 4-6
4.4 +AR1 und +AR2: Addieren einer Konstanten zu Adreß-register 1 oder Adreßregister 2
4-7
Kapitelübersicht
4
4-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
4.1 Übersicht
Die folgenden Operationen stehen Ihnen zur Verfügung, um den Inhalt voneinem oder mehreren Akkumulatoren bzw. Adreßregistern zu bearbeiten:
Mnemonik Operation Bedeutung
TAK Tausche AKKU 1 mit AKKU 2 Diese Operation tauscht den Inhalt von AKKU 1 mitdem Inhalt von AKKU 2.
PUSHmit zwei Akkus
Kopiere AKKU 1 in AKKU 2 Diese Operation kopiert den Inhalt von AKKU 1 inAKKU 2.
POPmit zwei Akkus
Kopiere AKKU 2 in AKKU 1 Diese Operation kopiert den Inhalt von AKKU 2 inAKKU 1.
PUSHmit vier Akkumula-toren
Kopiere AKKU 3 in AKKU 4,AKKU 2 in AKKU 3, AKKU 1 inAKKU 2
Diese Operation kopiert den Inhalt von AKKU 3 inAKKU 4, den Inhalt von AKKU 2 in AKKU 3 undden Inhalt von AKKU 1 in AKKU 2.
POPmit vier Akkumula-toren
Kopiere AKKU 2 in AKKU 1,AKKU 3 in AKKU 2, AKKU 4 inAKKU 3
Diese Operation kopiert den Inhalt von AKKU 2 inAKKU 1, den Inhalt von AKKU 3 in AKKU 2 undden Inhalt von AKKU 4 in AKKU 3.
ENT Enter Akku-Stack Diese Operation kopiert den Inhalt von AKKU 3 inAKKU 4 und den Inhalt von AKKU 2 in AKKU 3.
LEAVE Leave Akku-Stack Diese Operation kopiert den Inhalt von AKKU 3 inAKKU 2 und den Inhalt von AKKU 4 in AKKU 3.
INC Inkrementiere AKKU 1 Diese Operation erhöht den Inhalt des niederwerti-gen Bytes im niederwertigen Wort von AKKU 1 umdie 8-Bit-Konstante, die in der Anweisung angege-ben ist. Die Konstante kann im Bereich von 0 bis255 liegen.
DEC Dekrementiere AKKU 1 Diese Operation verringert den Inhalt des niederwer-tigen Bytes im niederwertigen Wort von AKKU 1um die 8-Bit-Konstante, die in der Anweisung ange-geben ist. Die Konstante kann im Bereich von 0 bis255 liegen.
+AR1, +AR2 Addiere AKKU 1 zu Adreßregister Diese Operation addiert den Inhalt des niederwerti-gen Worts von AKKU 1 zu Adreßregister 1 bzw. 2.
+AR1 P#Byte.Bit,+AR2 P#Byte.Bit
Addiere Konstante zu AdreßregisterDiese Operation addiert eine Konstante zu dem In-halt von Adreßregister 1 bzw. 2.
BLD Bildbefehl Diese Operation führt keine Funktion aus und beein-flußt die Statusbits nicht. Die Operation ist nur fürdas Programmiergerät (PG) wichtig, wenn ein Pro-gramm angezeigt wird. Der Operand <Zahl> ist dieKennummer der Operation BLD und wird vom Pro-grammiergerät erzeugt.
NOP 0
NOP 1
Nulloperation 0
Nulloperation 1
Diese Operationen führen weder eine Operation aus,noch beeinflussen sie den Inhalt des Statusworts.Die Operationen NOP 1 und NOP 0 sind zumRückübersetzen erforderlich. Der Operationscodeenthält ein Bitmuster mit 16 Nullen bzw. 16 Einsen.
Nähere Informationen zum Tauschen der Reihenfolge der Bytes in AKKU 1entnehmen Sie dem Kapitel 12.3.
Akkumulatoroperationen
4-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
4.2 ENT und LEAVE
Mit den Operationen ENT (Enter Akku-Stack) und LEAVE (LeaveAkku-Stack) können Sie die folgenden Funktionen ausführen:
� Die Operation ENT kopiert den Inhalt von AKKU 3 in AKKU 4 und denInhalt von AKKU 2 in AKKU 3. Wenn Sie die Operation ENT direkt voreiner Ladeoperation programmieren, dann schiebt die Operation ENTAKKU 2 und AKKU 3 tiefer in den Stack.
� Die Operation LEAVE kopiert den Inhalt von AKKU 3 in AKKU 2 undden Inhalt von AKKU 4 in AKKU 3. Wenn Sie die Operation LEAVEdirekt vor einer Schiebe- oder Rotieroperation programmieren, dieAkkumulatoren verknüpft, dann funktioniert die Operation LEAVE wieeine arithmetische Operation.
Bild 4-1 zeigt, wie die Operation ENT arbeitet.
031
AKKU 3 AKKU 3
AKKU 4 AKKU 4031
031 031
I II III IV
V VI VII VIII
V VI VII VIII
ENT
IX X XI XII
031
AKKU 1 AKKU 1
AKKU 2 AKKU 2031
031 031
IX X XI XII
XIII XIV XV XVI XIII XIV XV XVI
IX X XI XII
Bild 4-1 Kopieren des Inhalts von AKKU 3 in AKKU 4 und des Inhalts von AKKU 2 in AKKU 3 mit derOperation ENT
Beschreibung
ENT
Akkumulatoroperationen
4-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Bild 4-2 zeigt, wie die Operation LEAVE arbeitet.
031
AKKU 3 AKKU 3
AKKU 4 AKKU 4031
031 031
I II III IV
V VI VII VIII
031
AKKU 1 AKKU 1
AKKU 2 AKKU 2031
031 031
IX X XI XII
XIII XIV XV XVI
LEAVE
I II III IV
I II III IV
V VI VII VIII
XIII XIV XV XVI
Bild 4-2 Kopieren des Inhalts von AKKU 3 in AKKU 2 und des Inhalts von AKKU 4 in AKKU 3 mit derOperation LEAVE
Der folgende Programmausschnitt zeigt die Verwendung der Operation ENT.
Die in den Datendoppelwörtern DBD0 und DBD4 liegenden Gleitpunkt-zahlen sollen addiert werden. Die Summe ist durch die Differenz der in denDatendoppelwörtern DBD8 und DBD12 liegenden Gleitpunktzahlen zudividieren.
DBD16 =DBD0 + DBD4
DBD8 – DBD12
Das Ergebnis soll in Datendoppelwort DBD16 abgelegt werden.
Die Operation ENT dient in diesem Beispiel dazu, das Zwischenergebnis(DBD0+DBD4), das in AKKU 2 steht, in AKKU 3 zu retten. DerSubtraktionsbefehl (–R) kopiert das in AKKU 3 gerettete Zwischenergebnisim Anschluß an die Subtraktion wieder in AKKU 2.
LEAVE
Beispiel
Akkumulatoroperationen
4-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
AWL Erläuterung
L DBD0
L DBD4
+R
L DBD8
ENT
L DBD12
–R
/R
T DBD16
Lade den Wert aus Datendoppelwort DBD0 in AKKU 1(Dieser Wert muß Gleitpunktformt haben).Kopiere den Wert aus AKKU 1 in AKKU 2Lade den Wert aus Datendoppelwort DBD4 in AKKU 1.(Dieser Wert muß Gleitpunktformat haben.)Addiere die Inhalte von AKKU 1 und AKKU 2 alsGleitpunktzahlen (32 Bit, IEEE-FP) und speichere das Ergebnisin AKKU 1.Kopiere den Wert aus AKKU 1 in AKKU 2.Lade den Wert aus Datendoppelwort DBD8 in AKKU 1Kopiere den Inhalt von AKKU 3 in AKKU 4.Kopiere den Inhalt von AKKU 2 (Zwischenergebnis) in AKKU 3.Kopiere den Inhalt von AKKU 1 in AKKU 2.Lade den Inhalt aus Datendoppelwort DBD12 in AKKU 1.Subtrahiere den Inhalt von AKKU 1 vom Inhalt von AKKU 2. Spei-chere das Ergebnis in AKKU 1. Kopiere den Inhalt von AKKU 3 inAKKU 2.Dividiere den Inhalt von AKKU 2 durch den Inhalt von AKKU 1.Speichere das Ergebnis in AKKU 1.Transferiere das Ergebnis (AKKU 1) in das DatendoppelwortDBD16.
Akkumulatoroperationen
4-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
4.3 Inkrementieren und Dekrementieren
Mit den Operationen INC (Inkrementiere AKKU 1) und DEC (DekrementiereAKKU 1) können Sie folgende Funktionen ausführen:
� Die Operation INC erhöht den Inhalt des niederwertigen Bytes imniederwertigen Wort von AKKU 1 um die 8-Bit-Konstante, die in derAnweisung angegeben ist. Die Konstante kann im Bereich zwischen 0und 255 liegen.
� Die Operation DEC vermindert den Inhalt des niederwertigen Bytes imniederwertigen Wort von AKKU 1 um die 8-Bit-Konstante, die in derAnweisung angegeben ist. Die Konstante kann im Bereich zwischen 0und 255 liegen.
Die Operationen INC und DEC werden unabhängig vom VKE ausgeführt.Diese Operationen beeinflussen weder das VKE, noch verändern sie eines derBits im Statuswort.
Hinweis
Diese Operationen eignen sich nicht für arithmetische Operationen (16 oder32 Bit), da vom niederwertigen Byte des niederwertigen Worts von AKKU 1nichts in das höherwertige Byte des niederwertigen Worts von AKKU 1übertragen wird. Für arithmetische Operationen (16 oder 32 Bit) verwendenSie die Operation +I bzw. +D.
Das folgende Programmbeispiel zeigt, wie die Operation INC innerhalb einerProgrammschleife (Loop) arbeitet, die durch einen bedingten Sprungausgelöst wurde.
AWL Erläuterung
L 1T MB10
M1: L MB10INC 1T MB10..L B#16#5<= ISPB M1
Rumpf der Schleifenoperation.
Setze Schleifenzähler auf ”1”.
Lade den Inhalt von Merkerbyte MB10 in AKKU 1.Inkrementiere den Schleifenzähler um ”1”.Transferiere den Inhalt von AKKU 1 ins Merkerbyte MB10.Anweisungsteil, der 5 mal bearbeitet wird
Wenn das Programm die Programmschleife nicht fünfmal durchlau-fen hat, kehre zur Schleifenoperation zurück.
Beschreibung
Beispiel
Akkumulatoroperationen
4-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
4.4 +AR1 und +AR2: Addieren einer Konstanten zu Adreßregister 1oder Adreßregister 2
Mit den Operationen +AR1 und +AR2 können Sie zu dem Inhalt vonAdreßregister 1 bzw. Adreßregister 2 einen Wert addieren:
Tabelle 4-1 Addieren eines Werts zu dem Inhalt von Adreßregistern
Operation Operand Funktion
+AR1 – Addiert den Inhalt des niederwertigenWorts von AKKU 1 zu dem Inhalt vonAdreßregister 1.
+AR2 – Addiert den Inhalt des niederwertigenWorts von AKKU 1 zu dem Inhalt vonAdreßregister 2.
+AR1 P#Byte.Bit:(Bereich 0.0 bis 4 095.7)1
Addiert eine Pointer-Konstante zu demInhalt von Adreßregister 1.
+AR2 P#Byte.Bit:(Bereich 0.0 bis 4 095.7)1
Addiert eine Pointer-Konstante zu demInhalt von Adreßregister 2.
1 Die Bits 24, 25 und 26 des Adreßregisters werden nicht geändert. Diese Bits zeigen denSpeicherbereich an.
Hinweis
Das Adreßregister AR2 wird bei der Bearbeitung von Multiinstanzenverwendet. Wenn Sie daher den Befehl ”+AR2” programmieren, so solltenSie zuvor den Inhalt des AR2 ”retten” und später wieder zurückladen.
Im folgenden sind einige Beispielanweisungen mit den Operationen +AR1und +AR2 aufgeführt. Wenn Sie das Pointerformat in AKKU 1 laden unddann eine der Operationen +AR1 bzw. +AR2 verwenden, wie in den beidenersten Anweisungen in dem Beispiel, dann steht Ihnen ein Bereich von 0.0bis 8191.7 zur Verfügung.
AWL Erläuterung
L P#250.7+AR1
TAR2 #SAVE_AR2
+AR2 P#126.7..L AR2 #SAVE_AR2
Lade eine Pointer-Konstante (250.7) in AKKU 1.Addiere den Akkuinhalt (250.7) zu dem Inhalt von Adreßregi-ster 1.Wegen Multiinstanzen, die AR2 als Basis verwenden
Addiere eine Pointer-Konstante (126.7) zu dem Inhalt von Adreß-register 2.
AR2 restaurieren
Beschreibung
Beispiele
Akkumulatoroperationen
4-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Akkumulatoroperationen
5-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Bitverknüpfungsoperationen
Im Kapitel finden Sie auf Seite
5.1 Verknüpfungsoperationen mit Bitoperanden 5-2
5.2 Bitverknüpfungsoperationen und Relaisschaltkreise 5-6
5.3 Auswerten von Bedingungen mit UND, ODER undEXKLUSIV ODER
5-10
5.4 Verknüpfungsoperationen von Klammerausdrücken undUND vor ODER
5-14
5.5 Flankenoperationen: FP, FN 5-16
5.6 Abschließen einer Verknüpfungskette 5-20
5.7 Operationen Setze und Rücksetze: S und R 5-21
5.8 Operation Zuweisung (=) 5-24
5.9 Negieren, Setzen, Rücksetzen und Sichern des VKE 5-26
Kapitelübersicht
5
5-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
5.1 Verknüpfungsoperationen mit Bitoperanden
Für Verknüpfungsoperationen mit Bitoperanden gibt es folgende Grund-operationen:
� U (UND) und seine negierte Form UN (UND NICHT).
� O (ODER) und seine negierte Form ON (ODER NICHT).
� X (EXKLUSIV ODER) und seine negierte Form XN (EXKLUSIV ODERNICHT).
Diese Operationen führen folgende Grundfunktionen aus:
� Zustandsabfrage eines Bitoperanden auf ”1” (aktiviert, ein) oder ”0”(nicht aktiviert, aus).
� Zustandsabfrage einer Zeitzelle (Timer) oder eines Zählers auf ”0” (Wertder Zelle = 0) oder auf ”1” (Wert der Zelle > 0).
Das Verknüpfungsergebnis wird in Abhängigkeit vom /ER-Bit gebildet:
� Ist /ER = ”0”, wird das Ergebnis der Zustandsabfrage unverändert imVerknüpfungsergebnis abgelegt (Beginn einer Verknüpfungskette).
� Ist /ER = ”1”, wird das Ergebnis der Zustandsabfrage entsprechend derWahrheitstabelle der logischen Operation (U, O, X) verknüpft und imVerknüpfungsergebnis abgelegt.
Das Verknüpfungsergebnis zu Beginn einer Verknüpfungskette kann anhandder folgenden Wahrheitstabelle ermittelt werden:
Mnemonic Operation Status desOperanden
Ergebnis im VKE
U UND 01
01
UN UND NICHT 01
10
O ODER 01
01
ON ODER NICHT 01
10
X EXKLUSIV ODER 01
01
XN EXKLUSIV ODER NICHT 01
10
Erläuterung
Wahrheitstabellebei Beginn einerVerknüpfungskette
Bitverknüpfungsoperationen
5-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Das Verknüpfungsergebnis ab der zweiten Bitverknüpfungsoperation kannanhand der folgenden Wahrheitstabelle ermittelt werden:
Mnemonic Operation VKEvor Ausführung
Status desOperan-
den
Ergebnisim VKE
U UND 0011
0101
0001
UN UND NICHT 0011
0101
0010
O ODER 0011
0101
0111
ON ODER NICHT 0011
0101
1011
X EXKLUSIV ODER 0011
0101
0110
XN EXKLUSIV ODERNICHT
0011
0101
1001
Der Operand, den die Operationen ansprechen, kann ein Bit, eine Zeitzelleoder ein Zähler sein. Die Operation greift über eine der folgenden Operande-narten auf den Kontakt zu:
� Operandenkennzeichen und Adresse innerhalb des Speicherbereichs, dendas Operandenkennzeichen angibt (siehe Tabellen 5-1 bis 5-3).
� Bit, Zeit oder Zähler als Parameter transferiert (siehe Tabelle 5-4).
� Bedingung, ausgedrückt durch Bits im Statuswort (siehe Tabelle 5-8).
Wahrheitstabelleinnerhalb einerVerknüpfungskette
Operanden derGrundoperationen(U, UN, O, ON, X,XN)
Bitverknüpfungsoperationen
5-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle 5-1 Operanden: direkte und indirekte Adressierung
Operanden- Maximaler Adreßbereich je nach Adressierungsartpkennzeichen direkt speicherindirekt registerindirekt, bereichsintern
EA
0.0 bis 65 535.7
[DBD][DID][LD][MD]
0 bis 65 532
[AR1, P#byte.bit]
[AR2, P#byte.bit]
0.0 bis 8 191.7
M0.0 bis
65535.7
[DBD][DID][LD][MD]
0 bis 65 532
[AR1, P#byte.bit]
[AR2, P#byte.bit]
0.0 bis 8 191.7
DBXDIX
L
0.0 bis 65 535.7
[DBD][DID][LD][MD]
0 bis 65 532
[AR1, P#byte.bit]
[AR2, P#byte.bit]
0.0 bis 8 191.7
Tabelle 5-2 Operanden: registerindirekte, bereichsübergreifende Adressierung
Operandenkennzeichen1) Maximaler Adreßbereich
E, A, M, DBX, DIX oder L[AR1, P# byte.bit][AR2, P# byte.bit]
0.0 bis 8 191.7
1) Der Speicherbereich ist in den Pointerbits 24, 25 und 26 codiert (siehe Kapitel 3.6).
Tabelle 5-3 Operanden: Zeiten und Zähler
Operanden- Maximaler Adreßbereich je nach Adressierungsartpkennzeichen direkt speicherindirekt
TZ
0 bis 65535
[DBW][DIW][LW][MW]
0 bis 65 534
Tabelle 5-4 Operanden: Bits, Zeiten oder Zähler als Parameter transferiert
Operand Adreßparameterformat
SymbolischerName
Bit, Zeit oder Zähler als Parameter transferiert.
Tabelle 5-5 Operanden der Bitverknüpfungsoperationen: Bits des Statusworts
Speicherbereich oder Verweisauf eine Adresse
Bits des Statusworts
>0, <0, <>0, >=0, <=0, ==0 7 und 6: Anzeigenbits (Speicherbereich)
UO 7 und 6: Anzeigenbits (Speicherbereich)
BIE 8: Binärergebnis (Adresse)
OV 5: Überlauf (Adresse)
OS 4: Überlauf, speichernd (Adresse)
Bitverknüpfungsoperationen
5-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Operation OR STA VKE /ER
UUNU(
UN(
xx00
xx11
xx––
1100
OONO(
ON(
0000
xx11
xx––
1100
XXNX(
XN(
0000
xx11
xx––
1100
= 0 x – 0
CLR 0 0 0 0
FN 0 x x 1
FP 0 x x 1
NOT – 1 x –
R 0 x – 0
S 0 x – 0
SAVE – – – –
SET 0 1 1 0
Änderung derBits desZustandswortes
Bitverknüpfungsoperationen
5-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
5.2 Bitverknüpfungsoperationen und Relaisschaltkreise
Bitverknüpfungsoperationen werden auch Relais-Operationen genannt, damit ihnen typischerweise solche Befehlsfolgen realisiert werden können, diedie Funktion von Relaisschaltungen ersetzen. Im folgenden wird erläutert,wie mit AWL-Befehlsfolgen typische Relaisschaltungen nachgebildet werdenkönnen.
Bild 5-1 zeigt die Darstellung eines Schließer-Relais-Schaltkreises mit einemKontakt zwischen einer Stromschiene und einer Spule. Im Normalzustand istder Kontakt geöffnet. Wird der Kontakt nicht aktiviert, dann bleibt er geöff-net. Der Signalzustand des geöffneten Kontakts ist ”0” (nicht aktiviert).Bleibt der Kontakt geöffnet, dann kann der Strom von der Stromschiene nichtzur Spule am Ende des Schaltkreises fließen. Wird der Kontakt aktiviert (derSignalzustand des Kontakts ist ”1”), dann fließt der Strom zur Spule.
Stromschiene
Schließer
Spule
E 1.1
A 4.0
Bild 5-1 Relais-Schaltkreis mit Schließer
Mit der Operation U (UND) oder O (ODER) können Sie den Signalzustandeines Schließers abfragen. Ist der Schließer (E 1.1 = 0) geöffnet, ist dasAbfrageergebnis ”0”, ist er geschlossen, ist das Abfrageergebnis ”1”.
Einführung
Schließer
Bitverknüpfungsoperationen
5-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Bild 5-2 zeigt die Darstellung eines Öffner-Relais-Schaltkreises mit einemKontakt zwischen einer Stromschiene und einer Spule. Im Normalzustand istder Kontakt geschlossen. Wird der Kontakt nicht aktiviert, dann bleibt ergeschlossen. Der Signalzustand des geschlossenen Kontakts ist ”0” (nichtaktiviert). Bleibt der Kontakt geschlossen, dann kann der Strom von derStromschiene durch den Kontakt fließen, und die Spule am Ende des Schalt-kreises führt Strom. Beim Aktivieren des Kontakts (der Signalzustand desKontakts ist ”1”) wird der Kontakt geöffnet und der Signalfluß zur Spuleunterbrochen.
Stromschiene
Öffner
Spule
E 1.1
A 4.0
Bild 5-2 Relais-Schaltkreis mit Öffner
Mit der Operation UN (UND NICHT) oder ON (ODER NICHT) können Sieden Signalzustand eines Öffners abfragen. Ist der Öffner geschlossen (E 1.1= 0), ist das Abfrageergebnis ”1”, ist er geöffnet, ist das Abfrageergebnis ”0”.
Bild 5-3 zeigt ein Beispiel mit einer Anweisungsliste, in der mit der Opera-tion U (UND) zwei Schließer in Reihe geschaltet werden. Der Ausgang A 4.0ist nur dann ”1” und damit die Spule stromführend, wenn beide Schließer denZustand ”1” (geschlossen) haben.
AWL-Programm
U E 1.0
U E 1.1
= A 4.0
Relais-Schaltplan
E 1.0
E 1.1
A 4.0
Bild 5-3 Reihenschaltung von Kontakten mit der Operation UND
Öffner
Signalfluß in einerReihenschaltung
Bitverknüpfungsoperationen
5-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Bild 5-4 zeigt eine Anweisungsliste, in der mit der Operation O (ODER)zwei Schließer parallel geschaltet werden.
Der Ausgang A 4.0 ist dann ”1” und damit die Spule stromführend, wenneiner der beiden Schließer den Zustand ”1” (geschlossen) hat.
Relais-Schaltplan
O E 1.0
O E 1.1
= A 4.0
Strom-schiene
E 1.0 E 1.1
A 4.0
AWL-Programm
Bild 5-4 Parallelschaltung von Kontakten mit der Operation ODER
Die EXKLUSIV ODER-Operation in AWL entspricht einer Relaisschaltunggemäß Bild 5-5, in den jeweils ein Öffner und ein Schließer mechanisch mit-einander verbunden sind. A 4.0 ist dann ”1”, wenn E 1.0 und E 1.1 unter-schiedliche Werte besitzen.
X E 1.0
X E 1.1
= A 4.0
AWL-Programm Relais-Schaltplan
Strom-schiene
KontaktE 1.0
KontaktE 1.1
SpuleA 4.0
Bild 5-5 Parallelschaltung von Kontakten mit der Operation EXKLUSIV ODER
Signalfluß in einerParallelschaltung
EXKLUSIV ODER
Bitverknüpfungsoperationen
5-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
In entsprechender Weise lassen sich mit der Operation
O E 1.0
ON E 1.1
= A 4.0
Stromschiene
E 1.0Schließer
E 1.1Öffner
A 4.0Spule
AWL-Programm
Relais-Schaltplan
AWL-Programm
Relais-Schaltplan
U E 1.0
UN E 1.1
= A 4.0
E 1.0Schließer
E 1.1Öffner
A 4.0Spule
Stromschiene
X E 1.0
XN E 1.1
= A 4.0
Stromschiene
E 1.0Schließer
E 1.1Öffner
A 4.0Spule
AWL-Programm
Relais-Schaltplan
UN: die Reihenschaltung einesÖffners realisieren
ON: die Parallelschaltung einesÖffners realisieren
XN: die gekoppelte Reihen-schaltung eines Öffners/Schließers realisieren
UN, ON, XN
Bitverknüpfungsoperationen
5-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
5.3 Auswerten von Bedingungen mit UND, ODER und EXKLUSIV ODER
Mit den Bitverknüpfungsbefehlen können Sie die Bits im Statuswort A0, A1,BIE, OV und OS abfragen. Diese Bits können zuvor durch folgendeOperationen gesetzt worden sein (Tabelle 5-6).
Tabelle 5-6 Operationen, die die Bits A0 u. A1, BIE, OV und OS des Statuswortsbeeinflussen
Operationsart Operation Kapitel indiesem
Handbuch
Festpunktarithmetik �I, �I, /I,�I, �D, �D,/D,�D, MOD
9.1
Vergleichsoperationen(Festpunktarithmetik)
==I, <>I, <I, <=I, >I, >=I, ==D,<>D, <D, <=D,>D, >=D
11.2
Gleitpunktarithmetik �R, �R,�R , /R, SQRT, SQR,LN, EXP, SIN, COS, TAN,ASIN, ACOS, ATAN
10.1
Gleitpunktzahlen: Vergleichso-perationen
==R, <>R, <R, <=R, >R, >=R 11.3
Umwandlungsoperationen ITB, DTB, RND, RND�,RND�, TRUNC, NEGI, NEGD
12.1, 12.2und 12.4
Schiebe- und Rotierfunktionen SLW, SRW, SLD, SRD, SSI,SSD, RLD, RRD, RLDA, RRDA
14.1 und14.2
Wortverknüpfung UW, OW, XOW, UD, OD, XOD 13.2
Klammerausdrücke ) 5.4
Sichere VKE in BIE-Flag SAVE 5.9
Sprungoperationen SPBB, SPBNB, SPS 16.1
Programmsteuerung BEB, BE, BEA, CC, UC 17.6
Transferoperation T STW 8.3
Beschreibung
Bitverknüpfungsoperationen
5-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Kombination des Bits A1 und A0 im Statuswort kann auch durch”Ersatzoperanden” (z.B. >0, ==0, <0, etc.) vereinfacht abgefragt werden.Tabelle 5-7 stellt den Zusammenhang verschiedener Bitkombinationen mitvereinfachter Abfrage dar. So kann z.B. die Kombination A1=0 und A0=1 ineine UND-Operation mit U<0 abgefragt werden.
Tabelle 5-7 Zustandskombinationen von A0 und A1 und zugehörige Abfrage-möglichkeit
Wenn folgende Signalkombination im Statuswort vorhanden ist,
dann kann Abfrage erfolgenmit
Signalzustand von A1 Signalzustand von A0
1 0 >0
0 1 <0
0oder
1
1oder
0<>0
1oder
0
0oder
0>=0
0oder
0
1oder
0<=0
0 0 ==0
1 1 UO
AWL Erläuterung
L +10 // UNTERERGRENZWERTL MW30
<=I
L +100 // OBERERGRENZWERT
-I
U <=0
= A 4.0
Lade Ganzzahl 10 als unteren Grenzwert in AKKU1-L.
Lade Wert im Merkerwort MW30 in AKKU1-L und transferiere denGanzzahlwert 10 in AKKU2–L.
Ist 10 kleiner als oder gleich dem Wert in MW30? Wenn ja, dannsetze VKE auf ”1”; ansonsten setze VKE auf ”0” zurück.
Lade Ganzzahl 100 als oberen Grenzwert in AKKU1-L und transferiere den Wert von Merkerwort MW30, der in AKKU1-L ge-speichert ist, in AKKU2–L.
Subtrahiere 100 vom Wert in MW30. Das Ergebnis setzt A1 und A0 mit einer Bitverknüpfung, die zeigt, wie sich dasErgebnis zu ”0” verhält (siehe Tabelle 5-7). Das VKE bleibtunverändert.
Ist die Bedingung <=0 entsprechend der Bitverknüpfung in A1 undA0 erfüllt? ”Ja” liefert eine ”1”, ”Nein” liefert eine ”0”(siehe Tabelle 5-7). Verknüpfe diese ”1” bzw. ”0” mit dem VKEentsprechend der UND-Wahrheitstabelle. Speichere das Ergebnisim VKE-Bit.
Schreibe Wert des VKE in Signalzustand des Ausgangs A 4.0. DieSpule am Ausgang A 4.0 wird stromführend (hat den Signalzustand”1”), wenn der Wert in MW30 größer als oder gleich 10 bzw.kleiner als oder gleich 100 ist.
Verhältnis einesErgebnisses zu 0
Bitverknüpfungsoperationen
5-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Bitverknüpfungsoperationen ermöglichen es Ihrem Programm, auch dannzu reagieren, wenn das Ergebnis einer arithmetischen Operation mit Gleit-punktzahlen unzulässig ist, weil eine der Zahlen keine gültige Gleitpunktzahlist (ungültig, UO). Die Operation fragt den Signalzustand der Bits A1 und A0des Statusworts ab (siehe Tabelle 5-7).
Einige der Operationen aus Tabelle 5-6 können das Binärergebnisbit (BIE)oder die Überlaufbits (OV und OS) des Statusworts auf ”1” setzen. Siekönnen die Bitverknüpfungsoperationen U, UN, O, ON, X und XNzusammen mit den folgenden Speicherbereichen verwenden, damit IhrProgramm auf die Bits BIE, OV oder OS mit dem Signalzustand ”1”reagieren kann.
AWL Erläuterung
L MW10
L MW20
+I
T MW30
U E 0.0
U OV
= A 4.0
Lade Ganzzahl im Merkerwort MW10 in AKKU1-L.
Lade Ganzzahl im Merkerwort MW20 in AKKU1-L und transferiereden Wert von MW10 in AKKU2–L.
Addiere die beiden Ganzzahlenwerte in den Akkumulatoren.
Transferiere das Ergebnis von AKKU1-L in MW30.
Frage Signalzustand an Eingang E 0.0 auf ”1” oder ”0” ab.
Frage Bit OV des Statusworts auf ”1” oder ”0” ab.
Wenn der Signalzustand von E 0.0 ”1” ist und eine ”1” im Bit OVdes Statusworts vorhanden ist (z. B.: während der letztenarithmetischen Operation trat ein Überlauf auf), dann setze denSignalzustand von Ausgang A 4.0 auf ”1”; ansonsten setze ihnauf ”0”.
AWL Erläuterung
U BIE
= A 4.0
Frage Bit BIE des Statusworts auf ”1” oder ”0” ab.
Wenn im Bit BIE des Statusworts eine ”1” vorhanden ist, setzeden Signalzustand des Ausgangs A 4.0 auf ”1”; ansonsten setzeihn auf ”0”.
Überlauf undBinärergebnis
Bitverknüpfungsoperationen
5-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Bitverknüpfungsoperationen bewerten Bedingungen mit Hilfe derOperanden, die in Tabelle 5-8 aufgeführt sind.
Tabelle 5-8 Operanden der Bitverknüpfungsoperationen: Bits des Statusworts
Speicherbereich oder Verweisauf eine Adresse
Bits des Statusworts
>0, <0, <>0, >=0, <=0, ==0 7 und 6: Anzeigenbits (Speicherbereich)
UO 7 und 6: Anzeigenbits (Speicherbereich)
BIE 8: Binärergebnis (Adresse)
OV 5: Überlauf (Adresse)
OS 4: Überlauf, speichernd (Adresse)
Adressieren derBits im Statuswort
Bitverknüpfungsoperationen
5-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
5.4 Verknüpfungsoperationen von Klammerausdrücken und UND vorODER
Sie können mit den Operationen U (UND), O (ODER) und X (EXKLUSIVODER) und ihren negierten Formen UN, ON und XN Abschnitte vonVerknüpfungsketten verknüpfen, die in Klammern eingeschlossen sind(Klammerausdrücke). Steht ein Abschnitt einer Verknüpfungskette inKlammern, dann führt Ihr Programm die Operationen in den Klammern aus,bevor es die Verknüpfung ausführt, die vor dem Klammerausdruck steht.
Ebenso können Sie die Operationen UND und ODER in einer Verknüpfungs-kette ohne Klammern angeben. Es gibt die Festlegung, daß zuerst dieOperation UND ausgewertet wird und die Ergebnisse dann entsprechend derODER-Wahrheitstabelle verknüpft werden.
Die Operation, die einen Klammerausdruck öffnet, speichert das VKE dervorherigen Operation im Klammerstack. Später wird das Programm diesesgespeicherten VKE mit dem Ergebnis aus den Verknüpfungen, die innerhalbder Klammern ausgeführt wurden, verknüpfen.
AWL Erläuterung
U(O E 0.0
O M 10.0)
U(
O E 0.2
O M 10.3
)
U M 10.1
= A 4.0
Die Operationen zwischen U( und ) bilden eine normale ODER-Ver-knüpfung. Das Erstabfrageergebnis wird im VKE-Bit gespeichert.
Entsprechend der ODER-Wahrheitstabelle wird das Abfrageergebnismit dem VKE der vorherige Operation verknüpft. Diese Verknüp-fung erzeugt ein neues Ergebnis, das den Wert im VKE-Bit er-setzt.
U( kopiert den aktuellen Wert im VKE-Bit, speichert ihn imKlammerstack und beendet die vorherige Verknüpfungskette. Daherbeginnt die nächste Verknüpfungsoperation eine neue Kette undführt eine Erstabfrage aus.
Die Operationen zwischen U( und ) bilden eine normale ODER-Ver-knüpfung. Das Abfrageergebnis wird im VKE-Bit gespeichert.
Entsprechend der ODER-Wahrheitstabelle wird das Abfrageergebnismit dem VKE aus der vorherigen Operation verknüpft. Diese Ver-knüpfung erzeugt ein neues Ergebnis, das den Wert im VKE-Bitersetzt.
Die Operation ) verknüpft das VKE, das im Klammerstack gespei-chert ist (siehe Schritt 3 oben), mit dem aktuellen VKE ent-sprechend der UND-Wahrheitstabelle. Diese Operation verwendetdie UND-Wahrheitstabelle, weil das Zeichen ) einen Klammeraus-druck beendet, der mit U begann. Diese Verknüpfung bildet einneues VKE.
Diese normale UND-Verknüpfung verknüpft das neue VKE ausSchritt 6 mit dem Abfrageergebnis entsprechend der UND-Wahr-heitstabelle.
Die Operation Zuweisung (=, siehe Kapitel 5.8.) weist den Wertdes VKE der Ausgangsspule zu.
Beschreibung
Verknüpfungs-ergebnis
Bitverknüpfungsoperationen
5-15Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die nachfolgende Anweisungsliste verwendet das UND-vor-ODER-Prinzip,um einen Schaltkreis zu programmieren. Per Festlegung bewertet dasProgramm die UND-Verknüpfung zuerst und verknüpft dann die Ergebnisseder UND-Verknüpfung entsprechend der ODER-Wahrheitstabelle. Klammernwerden nicht benötigt. Das Prinzip, das hier zum Tragen kommt, wird ”UNDvor ODER” genannt.
AWL Erläuterung
U E 0.0
U M 10.0
O
U E 0.2
U M 0.3
O M 10.1
= A 4.0
Das Erstabfrageergebnis wird im VKE-Bit gespeichert.
Entsprechend der UND-Wahrheitstabelle wird das Abfrageergebnismit dem VKE der vorherigen Operation verknüpft. Diese Verknüp-fung erzeugt ein neues Ergebnis, das den Wert im VKE-Bit er-setzt.
Die Operation O kopiert den aktuellen Wert im VKE-Bit, spei-chert ihn im OR-Bit und beendet die vorherige Verknüpfungsket-te. Die Operation O sichert das VKE als einen der beiden Werte,den sie verwenden wird, um eine ODER-Verknüpfung entsprechenddem UND-vor-ODER-Prinzip auszuführen.
Das Erstabfrageergebnis wird im VKE-Bit gespeichert. In jederOperation UND, die auf eine Operation ODER folgt, wird zusätz-lich zu der normalen Operation das gebildete VKE mit dem OR-Bitverknüpft.
Entsprechend der UND-Wahrheitstabelle wird das Abfrageergebnismit dem VKE verknüpft, das durch die vorhergehende Operationgebildet wurde. Diese Verknüpfung erzeugt ein neues Ergebnis,das den Wert im VKE-Bit ersetzt. In jeder Operation UND wirdzusätzlich zu der normalen Operation das gebildete VKE mit demOR-Bit verknüpft.
Die erste Operation O holt das im Klammerstack gespeicherte VKEwieder und verknüpft es mit dem aktuellen VKE. Diese Operationbildet einen neuen Wert, der im VKE-Bit als Ergebnis der UND-vor-ODER-Verknüpfung gespeichert wird. (Eine besondere Opera-tion zum Beenden einer UND-vor-ODER-Verknüpfung gibt es nicht.Ein spezieller Bitprozessor im Automatisierungssystem findetdie letzte Operation U in der UND-vor-ODER-Verknüpfung. DieOperation, die auf die letzte Operation U folgt (z. B. =, S, Roder O), schließt die UND-vor-ODER-Verknüpfung automatisch beimBerechnen des VKE.)
Die nächste Operation O verknüpft das Ergebnis der UND-vor-ODER-Verknüpfung mit dem Abfrageergebnis der zweiten OperationO.
Die Operation Zuweisung (=, siehe Kapitel 5.8) weist den Wertdes VKE der Ausgangsspule zu.
Der Ausgang A 4.0 wird stromführend (ihr Signalzustand beträgt ”1”), wenndas Ergebnis entweder des einen oder des anderen UND-Verknüpfungspaares”1” ist, oder wenn das Ergebnis der normalen ODER-Verknüpfung von M10.1 ”1” ist.
UND vor ODER
Bitverknüpfungsoperationen
5-16Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
5.5 Flankenoperationen: FP, FN
Sie können die Operationen FP (Flanke Positiv) und FN (Flanke Negativ) wieflankenerkennende Kontakte in einem Relais-Schaltkreis verwenden. DieseOperationen erfassen und reagieren auf Wechsel im Verknüpfungsergebnis.Ein Wechsel von ”0” auf ”1” wird ”steigende (positive) Flanke” genannt, undein Wechsel von ”1” auf ”0” ”fallende (negative) Flanke” (siehe Bild 5-6).
VKE
0 Zeit
1fallende Flanke
steigende Flanke
Bild 5-6 Darstellung steigender und fallender Flanken
Bild 5-7 zeigt eine Anweisungsliste, die es Ihrem Programm ermöglicht, aufeinen steigenden Flankenwechsel zu reagieren. Eine Erläuterung folgt nachdem Bild.
10
10
3 75
�� E�1.0
FP M 1.0
= A 4.0
Anweisungsliste
Nr. des OB1-Zyklus:
E 1.0
A 4.0
1 2 4 6 8 9
Signalzustandsdiagramm
10
M 1.0
Bild 5-7 Reaktion auf einen steigenden Flankenwechsel programmieren
Wenn das Automatisierungssystem eine steigende Flanke an Kontakt E 1.0erkennt, aktiviert es den Ausgang A 4.0 für einen OB1-Zyklus. Das Auto-matisierungssystem speichert das Verknüpfungsergebnis, das die Operation Ugeliefert hat, im Flankenmerker M 1.0 und vergleicht es mit dem VKE desvorhergehenden Zyklus. (Im Beispiel in Bild 5-7 ist das VKE der Anweisung”U E 1.0” zufällig gleich dem Signalzustand von Eingang E 1.0. Dies wirdjedoch nicht bei jedem Programm der Fall sein.) Wenn das aktuelle VKE ”1”ist und das VKE des vorherigen Zyklus, das im Merker M 1.0 gespeichertwurde, ”0” ist, dann setzt die Operation FP das VKE auf ”1”. Die OperationFP erkennt eine steigende Flanke am Kontakt (z. B. der Signalzustand desVKE hat von ”0” auf ”1” gewechselt). Gibt es keinen Wechsel im VKE (dasaktuelle VKE und das vorherige VKE, das im Flankenmerker gespeichert ist,sind beide gleich ”0” oder ”1”), dann setzt die Operation FP das VKE auf ”0”zurück.
Beschreibung
Reaktion auf einesteigende Flanke
Bitverknüpfungsoperationen
5-17Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 5-9 Abfrage auf steigenden Flankenwechsel an Eingang E 1.0
Nr. desOB1-Zyklus
Signalzustandam Eingang imvorherigenZyklus
Signalzustandam Eingangim aktuellenZyklus
Hat Signalzu-stand von ”0”auf ”1” ge-wechselt?
Führt Spulean A 4.0Strom?
1 0 (Default-Wert)
0 Nein. Nein.
2 0 1 Ja. Ja.
3 1 1 Nein. Nein.
4 1 0 Nein. Nein.
5 0 0 Nein. Nein.
6 0 1 Ja. Ja.
7 1 0 Nein. Nein.
8 0 1 Ja. Ja.
9 1 1 Nein. Nein.
Tabelle 5-9 bezieht sich auf das AWL-Programm in Bild 5-7. Im allgemeinensollten Sie die Wechsel, die die Operationen FP und FN erkennen, als Wech-sel betrachten, die sich im VKE niederschlagen und nicht im Signalzustandder Kontakte. Zum Beispiel kann eine Verknüpfungskette ein VKE bilden,das nicht direkt mit dem Signalzustand eines Kontakts zusammenhängt.
Bild 5-8 zeigt eine Anweisungsliste, die es Ihrem Programm ermöglicht, aufeinen fallenden Flankenwechsel zu reagieren. Eine Erläuterung folgt imAnschluß an dieses Bild.
E 1.0
2
U� E�1.0
FN M 1.0
= A 4.0
Anweisungsliste
M 1.0
A 4.0
3 75Nr. des OB1-Zyklus: 1 4 6 8 9
Signalzustandsdiagramm
10
10
10
Bild 5-8 Reaktion auf einen fallenden Flankenwechsel programmieren
Wenn das Automatisierungssystem eine fallende Flanke an Kontakt E 1.0erkennt, aktiviert es den Ausgang A 4.0 für einen OB1-Zyklus. Das Automatisierungssystem speichert das Verknüpfungsergebnis, das dieOperation U geliefert hat, im Flankenmerker M 1.0 und vergleicht es mitdem VKE des vorherigen Zyklus (siehe Tabelle 5-10). (Im Beispiel in Bild5-8 ist das VKE der Anweisung ”U E 1.0” zufällig gleich dem Signalzustandvon Eingang E 1.0. Dies wird jedoch nicht bei jedem Programm der Fallsein.) Wenn das aktuelle VKE ”0” ist und das VKE des vorherigen Zyklus,das im Merker M 1.0 gespeichert wurde, ”1” ist, dann setzt die Operation FNdas VKE auf ”1”.
Reaktion auf einefallende Flanke
Bitverknüpfungsoperationen
5-18Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Operation FN erkennt eine fallende Flanke am Kontakt (z. B. wenn derSignalzustand des VKE von ”1” auf ”0” gewechselt hat). Gibt es keinenWechsel im VKE (das aktuelle VKE und das vorherige VKE, das imFlankenmerker gespeichert ist, sind beide gleich ”0” oder ”1”), dann setzt dieOperation FN das VKE auf ”0” zurück.
Tabelle 5-10 Abfrage auf fallenden Flankenwechsel an Eingang E 1.0
Nr. desOB1-Zyklus
Signalzustandam Eingang imvorherigenZyklus
Signalzustandam Eingangim aktuellenZyklus
Hat Signalzu-stand von ”1”auf ”0”gewechselt?
Führt Spulean A 4.0Strom?
1 0 (Default-Wert)
0 Nein. Nein.
2 0 1 Nein. Nein.
3 1 0 Ja. Ja.
4 0 0 Nein. Nein.
5 0 1 Nein. Nein.
6 1 1 Nein. Nein.
7 1 1 Nein. Nein.
8 1 0 Ja. Ja.
9 0 0 Nein. Nein.
Tabelle 5-10 bezieht sich auf das AWL-Programm in Bild 5-8. Im allgemei-nen sollten Sie die Wechsel, die die Operationen FP und FN erkennen, alsWechsel betrachten, die sich im VKE niederschlagen und nicht im Signal-zustand der Kontakte. Zum Beispiel kann eine Verknüpfungskette ein VKEbilden, das nicht direkt mit dem Signalzustand eines Kontakts zusammen-hängt.
Der Operand, der von der Operation FP oder FN angesprochen wird, ist einBit. Die Operation greift auf den Ausgang über eine der folgendenOperandenarten zu:
� Operandenkennzeichen und Adresse innerhalb des Speicherbereichs, dendas Operandenkennzeichen angibt (siehe Tabellen 5-11 und 5-12).
� Bit als Parameter transferiert (siehe Tabelle 5-13).
AngesprochenerOperand
Bitverknüpfungsoperationen
5-19Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 5-11 Operanden von FP und FN: direkte und indirekte Adressierung
Operan-den-
Maximaler Adreßbereich je nach Adressierungsart
kennzei-chen1) direkt speicherindirekt registerindirekt, bereichsintern
E2)A3)M
DBXDIX
0.0 bis65 535.7
[DBD][DID][LD][MD]
0 bis65 532
[AR 1, P#byte.bit]
[AR 2, P#byte.bit]
0.0 bis 8 191.7
1) Beachten Sie den Warnhinweis im Anschluß an diese Tabelle.2) Da das Betriebssystem das Prozeßabbild der Eingänge zu Beginn jedes Zyklus
überschreibt, wird das von der Operation FP oder FN gespeicherte VKE, das einEingangsbit des Operanden benutzt, verfälscht. Beachten Sie den Warnhinweis imAnschluß an diese Tabelle.
3) Es ist nicht empfehlenswert, einen Ausgang als Operanden für die Operation FP oderFN zu benutzen. Wenn Sie einen Ausgang beeinflussen wollen, verwenden Sie dazudie Operation S, R oder =.
!Vorsicht
Verfälschen des gespeicherten Verknüpfungsergebnisses.
Dies kann geringen Sachschaden zur Folge haben.
Wenn Sie in Ihrem Programm die Operation FP oder FN verwenden, dannwird der Merker, der der Operand dieser Operation ist, von FP oder FN aus-schließlich für deren eigene Speicherzwecke benutzt. Sie sollten daher keineOperationen verwenden, die dieses Bit verändern, da Sie ansonsten dasgespeicherte VKE verfälschen. Dieser Warnhinweis gilt für alle imOperanden angegebenen Speicherbereiche, die in Tabelle 5-11 aufgeführtsind.
Tabelle 5-12 Operanden von FP und FN: registerindirekte, bereichsübergreifendeAdressierung
Operandenkennzeichen1) Adreßbereich
E, A, M, DBX, DIX[AR 1, P#byte.bit][AR 2, P#byte.bit]
0.0 bis 8 191.7
1) Der Speicherbereich ist in AR 1 bzw. AR 2 codiert (siehe Kapitel 3.6).
Tabelle 5-13 Operanden von FP und FN: Bit als Parameter transferiert
Operand Adreßparameterformat
SymbolischerName
Bit als Parameter transferiert.
Bitverknüpfungsoperationen
5-20Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
5.6 Abschließen einer Verknüpfungskette
Sie können eine Verknüpfungskette mit einer der drei folgenden AWL-Operationen abschließen. Jede dieser Operationen kann ein Bit beeinflussen,welches das Ende dieser Kette darstellt.
� S (Setze): wenn das VKE im vorherigen Befehl auf ”1” gesetzt wurde,dann wird durch S der Signalzustand des angesprochenen Kontakts oderder angesprochenen Spule auf ”1” gesetzt.
� R (Rücksetze): wenn das VKE im vorherigen Befehl auf ”1” gesetztwurde, dann wird durch R der Signalzustand des angesprochenenKontakts oder der angesprochenen Spule auf ”0” zurückgesetzt;
� = (Zuweisung): Unabhängig vom Zustand des VKE wird der Wert desVKE dem angesprochenen Operanden zugewiesen.
Wenn eine Verknüpfungskette abgeschlossen wird, wird das Erstabfragebit(/ER) zurückgesetzt. Wenn der Wert im /ER-Bit ”0” ist, so heißt dies, daß dienächste Operation im Programm die erste Operation einer neuenVerknüpfungskette darstellt (siehe Kapitel 2.2, Erstabfrage). (BedingteSprunganweisungen setzen das /ER-Bit ebenfalls auf ”0” zurück; sieheKapitel 16.3 bis 16.5).
Verknüpfungsketten, die mit den Operationen U(, UN(, O( usw. gestartetwurden, müssen mit der Operation ) beendet werden. Da diese Befehle auchinmitten einer Verknüpfungskette verwendet werden können, stellen sie indieser eine Unterbrechung dar. Das heißt, daß eine neue Verknüpfunggestartet wird, bevor die ältere beendet ist. Um nach Beenden der inKlammern auszuführenden Befehle die ältere Verknüpfungskette ordnungs-gemäß weiterführen zu können, wird das alte, beim Öffnen einer Klammergerettete /ER Bit wieder ”restauriert”. Von Klammern eingerahmteProgrammteile kann man sich also als eine Art ”Zwischenrechnung”vorstellen, nach deren Abschluß ”der alte Faden wieder aufgenommen wird”.
Beschreibung
Abschließen einerVerknüpfungskette
Bitverknüpfungsoperationen
5-21Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
5.7 Operationen Setze und Rücksetze: S und R
Mit der Operation S (Setze) können Sie den Signalzustand einesangesprochenen Bits auf ”1” setzen. (Informationen darüber, wie Sie mit derOperation S einen angesprochenen Zähler auf einen bestimmten Wert setzen:siehe Kapitel 7.2).
Mit der Operation R (Rücksetze) können Sie den Signalzustand einesangesprochenen Bits auf ”0” rücksetzen. Die Operation R kann außerdem dieangesprochene Zeit oder einen angesprochenen Zähler auf ”0” rücksetzen(siehe Kapitel 6.3 und 7.2). Die Operationen S und R schließen eineVerknüpfungskette (siehe Kapitel 5.6).
Die Operation S setzt das angesprochene Bit auf ”1”, wenn dasVerknüpfungsergebnis der vorherigen Anweisung ”1” beträgt und das MasterControl Relay (MCR) stromführend wird (d. h. sein Signalzustand ist ”1”).Wenn das MCR nicht aktiviert wird (sein Signalzustand ist ”0”), wird dasangesprochene Bit nicht verändert. Die Operation S schließt eineVerknüpfungskette ab.
Bild 5-9 zeigt, wie die Operation S den Signalzustand der von ihrangesprochenen Spule A 4.0 auf ”1” hält, bis die Operation R den Signal-zustand auf ”0” rücksetzt. Die Tatsache, daß der Signalzustand derangesprochenen Spule auf ”1” bleibt, bis ihn eine Operation R auf ”0”rücksetzt, verdeutlicht den statischen Charakter der Operation S.
Wenn im Relais-Schaltplan der Schließer an Eingang E 1.0 aktiviert wurde(der Signalzustand wird ”1”), schließt sich der Kontakt. Der Strom fließt überden Kontakt an E 1.0 und über den Öffner darunter und aktiviert dabei denAusgang A 4.0 (der Signalzustand von A 4.0 wird ”1”).
Wenn die Spule aktiviert wird, wird der Schließer an Ausgang A 4.0 gegen-über von E 1.0 geschlossen. Danach bleibt die Spule an Ausgang A 4.0aktiviert (Signalzustand ”1”), gleichgültig, ob der Kontakt an Eingang E 1.0geöffnet oder geschlossen ist. Die Spule hält sich selbst unter Spannung.
Relais-Schaltplan
Stromschiene
E 1.0Schließer
A 4.0Spule
A 4.0
AnweisungslisteU E 1.0S A 4.0U E 1.1R A 4.0
E 1.0
E 1.1
A 4.0
0
1
0
1
0
1
SignalzustandsdiagrammÖffner
E 1.1
Bild 5-9 Statisches Setzen und Rücksetzen eines Bits
Beschreibung
Setzen eines Bits
Bitverknüpfungsoperationen
5-22Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Operation R setzt das angesprochene Bit auf ”0” zurück, wenn dasVerknüpfungsergebnis der vorherigen Operation ”1” beträgt und das MasterControl Relay (MCR) aktiviert wird (d. h. sein Signalzustand ist ”1”). Wenndas MCR nicht aktiviert wird (sein Signalzustand ist ”0”), wird dasangesprochene Bit nicht verändert. Die Operation R schließt eineVerknüpfungskette ab.
Bild 5-9 zeigt, wie die Operation R den Signalzustand der von ihrangesprochenen Spule A 4.0 auf ”0” hält, unabhängig von einem Wechsel imSignalzustand des Kontakts, der das Rücksetzen ausgelöst hat (E 1.1). DieTatsache, daß der Signalzustand der angesprochenen Spule auf ”0” bleibt, biseine Operation S ihn auf ”1” rücksetzt, verdeutlicht den statischen Charakterder Operation R.
Im Relais-Schaltplan wird die Spule an Ausgang A 4.0, die durch die Ope-ration S aktiviert wurde, nun durch Schließen des Schließers an Eingang E1.1 stromlos (ihr Signalzustand wird ”0”). Durch Schließen des Kontakts E1.1 kann Strom bis zu der Spule darunter fließen. Diese Spule öffnet denÖffner über der Spule an A 4.0, wobei der Signalfluß zur Spule unterbrochenwird. Durch Schließen des Kontakts E 1.1 wird die Operation R ausgelöst.
Der Operand, der von der Operation S angesprochen wird, kann ein Bit sein.Der Operand, der von der Operation R angesprochen wird, kann ein Bit, eineZeitnummer oder eine Zählernummer sein. Die Operanden können folgender-maßen angegeben werden:
� Operandenkennzeichen und Adresse innerhalb des Speicherbereichs, dendas Operandenkennzeichen angibt (siehe Tabellen 5-14 bis 5-16).
� Bit, Zeit oder Zähler als Parameter transferiert (siehe Tabelle 5-17).
Tabelle 5-14 Operanden von S und R: direkte und indirekte Adressierung
Operan-den-
Maximaler Adreßbereich je nach Adressierungsart
kennzei-chen direkt speicherindirekt bereichsintern, registerindirekt
EA
0.0 bis65 535.7
[DBD][DID][LD][MD]
0 bis65 532
[AR 1,P#byte.bit]
[AR 2,P#byte.bit]
0.0 bis8 191.7
M 0.0 bis 255.7
[DBD][DID][LD][MD]
0 bis65 532
[AR 1,P#byte.bit]
[AR 2,P#byte.bit]
0.0 bis8 191.7
DBXDIX
L
0.0 bis65 535.7
[DBD][DID][LD][MD]
0 bis65 532
[AR 1,P#byte.bit]
[AR 2,P#byte.bit]
0.0 bis8 191.7
Rücksetzen einesBits
AngesprochenerOperand
Bitverknüpfungsoperationen
5-23Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 5-15 Operanden von S und R: registerindirekte, bereichsübergreifendeAdressierung
Operandenkennzeichen1) Maximaler Adreßbereich
E, A, M, D, DBX, DIX oder L[AR1,P#byte.bit][AR2,P#byte.bit]
0.0 bis 8191.7
1) Der Speicherbereich ist in den Pointerbits 24, 25 und 26 codiert (siehe Kapitel 3.6).
Tabelle 5-16 Operanden von R: Zeiten und Zähler
Operanden- Maximaler Adreßbereich je nach Adressierungsartpkennzeichen direkt speicherindirekt
T1)
Z0 bis 65535
[DW][DXW][LW][MW]
0 bis 65 534
1) Die Operation S, die ein angesprochenes Bit auf ”1” setzt, gilt nicht für Zeiten oderZähler. Die Operation S, die mit einem Zähler verwendet wird, setzt diesen Zählerauf einen bestimmten Wert. Zeiten werden mit Operationen für bestimmte Zeittypengestartet (siehe Kapitel 6.2, 6.3 und 7.2).
Tabelle 5-17 Operanden von S und R: Bit, Zeit oder Zähler als Parameter transferiert
Operand Adreßparameterformat
SymbolischerName
Bit, Zeit1) oder Zähler als Parameter transferiert.
1) Die Operation S gilt nicht für Zeiten. Zeiten werden mit Operationen für bestimmteZeittypen gestartet (siehe Kapitel 6.2 und 6.3).
Bitverknüpfungsoperationen
5-24Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
5.8 Operation Zuweisung (=)
Jede Verknüpfungsoperation liefert ein Ergebnis, das als ”Verknüpfungs-ergebnis” (VKE) bezeichnet wird. Dieses VKE ist entweder ”1” oder ”0”. BeiKontakten und Spulen zeigt ”1” an, daß Strom fließt, und ”0”, daß keinStrom fließt.
Sie können mit der Operation Zuweisung (=) das VKE der vorherigenOperation in einer Verknüpfungskette kopieren und es dann als Signalzustandder Spule zuweisen, die von der Operation = angesprochen wird. DieOperation = schließt eine Verknüpfungskette ab (siehe Kapitel 5.6).
Der Wert, den die Operation = der angesprochenen Spule zuweist, kann ”1”oder ”0” sein, abhängig vom VKE der Operation, die der Operation = voraus-geht. Anders als bei den Operationen S und R hat die Operation =dynamischen Charakter. Sie weist das VKE als Signalzustand dem Ausgangzu, der von der Operation = angesprochen wird. Bild 5-10 zeigt, wie sichdieser Wert verändert, wenn sich das VKE der Anweisung ”U E 1.0” ändert.
In Bild 5-10 ermöglicht die Operation = dem Eingangssignal an dem Kontakt(E 1.0) den Ausgang (A 4.0) zu aktivieren oder zu deaktivieren (d. h. durchZuweisen des VKE der vorherigen Operation setzt oder rücksetzt die Opera-tion = den Ausgang A 4.0).
Relais-Schaltplan
Stromschiene
A 4.0Spule
Anweisungsliste
U E 1.0= A 4.0
E 1.0
A 4.0
0
1
0
1
Signalzustandsdiagramm
E 1.0
Bild 5-10 Dynamisches Setzen und Rücksetzen eines Bits
Beschreibung
Setzen oder Rück-setzen eines Bits
Bitverknüpfungsoperationen
5-25Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Der Operand, der von der Operation = angesprochen wird, kann ein Bit sein.Die Operation greift auf die Spule über eine der folgenden Operandenartenzu:
� Operandenkennzeichen und Adresse innerhalb des Speicherbereichs, dendas Operandenkennzeichen angibt (siehe Tabelle 5-18 und 5-19).
� Bit als Parameter transferiert (siehe Tabelle 5-20).
Tabelle 5-18 Operanden von =: direkte und indirekte Adressierung
Operanden-Maximaler Adreßbereich je nach Adressierungsart
Operanden-kennzeichen direkt speicherindirekt
bereichsintern, registerindi-rekt
EA
0.0 bis65 535.7
[DBD][DID][LD][MD]
0 bis65 532
[AR1,P#byte.bit]
[AR2,P#byte.bit]
0.0 bis8 191.7
M0.0 bis65535
[DBD][DID][LD][MD]
0 bis65 532
[AR1,P#byte.bit]
[AR2,P#byte.bit]
0.0 bis8 191.7
DBXDIX
L
0.0 bis65 535.7
[DBD][DID][LD][MD]
0 bis65 532
[AR1,P#byte.bit]
[AR2,P#byte.bit]
0.0 bis8 191.7
Tabelle 5-19 Operanden von =: registerindirekte, bereichsübergreifende Adressierung
Operandenkennzeichen1) Maximaler Bereich der Adreßparameter
E, A, M, D, DBX, DIX oder L[AR1,P#byte.bit][AR2,P#byte.bit]
0.0 bis 8 191.7
1) Der Speicherbereich ist in den höchstwertigen 8 Bits von AR 1 bzw. AR 2 codiert
Tabelle 5-20 Operanden von =: Bit als Parameter transferiert
Operand Adreßparameterformat
SymbolischerName
Bit als Parameter transferiert.
Operanden
Bitverknüpfungsoperationen
5-26Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
5.9 Negieren, Setzen, Rücksetzen und Sichern des VKE
Sie können mit den folgenden Operationen das Verknüpfungsergebnis (VKE),das im VKE-Bit im Statuswort des Automatisierungssystems gespeichert ist,verändern (siehe Kapitel 5.8):
Mnemonik Operation Bedeutung
NOT Negiere VKE Negieren (Umkehren) des aktuellen VKE
SET Setze VKE Setzen des aktuellen VKE auf ”1”
CLR Rücksetze VKE Rücksetzen des aktuellen VKE auf ”0”
SAVE Sichere VKE im BIE-Flag Sichern des aktuellen VKE im Bit des Status-worts
Da diese Operationen das VKE direkt beeinflussen, besitzen sie keineOperanden.
Sie können mit der Operation NOT in Ihrem Programm das aktuelle VKEnegieren (umkehren). Ist das aktuelle VKE ”0”, dann ändert die OperationNOT es in ”1” wenn das OR-Bit nicht gesetzt ist. Ist das aktuelle VKE ”1”,dann ändert NOT es in ”0”, wenn das OR-Bit nicht gesetzt ist. DieseOperation ist nützlich, um Ihr Programm beispielsweise durch Wechseln vonpositiver zu negativer Schaltung zu verkürzen (siehe Beispiel in Kapitel B.3:Zeiten).
Sie können mit der Operation SET in Ihrem Programm das VKE-Bit absolutauf ”1” setzen. Bild 5-11 zeigt, wie die Operation SET in einem Programmarbeitet.
Sie können mit der Operation CLR in Ihrem Programm das VKE-Bit absolutauf ”0” rücksetzen. CLR setzt auch /ER-, OR- und STA-Bits auf ”0”. DieVerknüpfungskette ist dann beendet. Bild 5-11 zeigt, wie die Operation CLRin einem Programm arbeitet.
Sie können mit der Operation SAVE in Ihrem Programm das VKE für einenzukünftigen Gebrauch sichern oder das BIE-Bit des Statusworts im Automa-tisierungssystem beeinflussen, so z. B., wenn Sie Funktionsbausteine (FBs)und Funktionen (FCs) für KOP-Programmierboxen programmieren.
Operation Wirkung auf die Bits des Statusworts
BIE A1 A0 OV OS OR STA VKE /ER
NOT – 1 x –
SET 0 1 1 0
CLR 0 0 0 0
SAVE x
Beschreibung
Negieren des VKE
Setzen des VKEauf ”1”
Rücksetzen desVKE auf ”0”
Sichern des VKE
Bitverknüpfungsoperationen
5-27Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Das Programm in Bild 5-11 zeigt die Anwendung der Operationen SET undCLR zum absoluten Setzen oder Rücksetzen eines Bits.
Anweisungsliste Signalzustand Verknüpfungsergebnis (VKE)
SET
= M 10.0
= M 15.1
= M 16.0
CLR
= M 10.1
= M 10.2
1
0
1
1
1
0
0
Bild 5-11 Absolutes Setzen und Rücksetzen eines Bits mit SET und CLR
Sie können die Anweisungen im Programm, das in Bild 5-11 abgebildet ist,in einem Anlauf-Organisationsbaustein (OB) verwenden. Nachdem Sie IhrAutomatisierungssystem eingeschaltet haben, bearbeitet es den Anlauf-OBmit den darin enthaltenen Anweisungen. Nachdem das Automatisierungs-system alle Anweisungen ausgeführt hat, haben die folgenden Merkerbitsunabhängig von den Bedingungen einen bestimmten Signalzustand:
� Der Signalzustand der Merker M 10.0, M 15.1 und M 16.0 ist ”1”.
� Der Signalzustand der Merker M 10.1 und M 10.2 ist ”0”.
Anwenden vonSET und CLR
Bitverknüpfungsoperationen
5-28Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Bitverknüpfungsoperationen
6-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Zeitoperationen
Im Kapitel finden Sie auf Seite
6.1 Übersicht 6-2
6.2 Speicherbereiche und Komponenten einer Zeit 6-3
6.3 Laden, Starten, Rücksetzen und Freigeben einer Zeit 6-5
6.4 Beispiele für Zeiten 6-7
6.5 Operanden und Bereiche für Zeitoperationen 6-17
6.6 Auswahl der richtigen Zeit 6-18
Kapitelübersicht
6
6-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
6.1 Übersicht
Zeiten sind Funktionselemente der Programmiersprache STEP 7, diezeitgesteuerte Abläufe ausführen und überwachen. Die Zeitoperationenermöglichen es Ihrem Programm, folgende Funktionen auszuführen:
� Wartezeiten ermöglichen. Beispiel: Nach einem Spritzgußverfahren mußdie Form zwei Sekunden lang geschlossen bleiben. Ihr Programm stelltsicher, daß zwei Sekunden verstreichen, bevor das Spritzgußteil aus derForm freigegeben wird.
� Überwachungszeiten ermöglichen. Beispiel: Nachdem Sie den Start-schalter gedrückt haben, überwacht das Programm 30 Sekunden lang dieDrehzahl eines Motors.
� Impulse erzeugen. Beispiel: Ihr Programm liefert Impulse, durch die eineLampe zum Blinken gebracht wird.
� Zeit messen. Beispiel: Ihr Programm kann bestimmen, wieviel Zeitbenötigt wird, bis ein Behälter gefüllt ist.
Die Programmiersprache AWL der Programmiersoftware STEP 7 bietetIhnen folgende Zeitoperationen:
� Starten einer Zeit als:
– SI: Impuls
– SV: verlängerten Impuls
– SE: Einschaltverzögerung
– SS: speichernde Einschaltverzögerung
– SA: Ausschaltverzögerung
� R: Rücksetzen einer Zeit
� FR: Freigeben einer Zeit
� Laden einer Zeit in einem der folgenden Formate:
– L: binär-codiert
– LC: BCD-codiert
� U, UN, O, ON, X, XN: Signalzustandsabfrage einer Zeit, Verknüpfen desErgebnisses (siehe Kap. 5).
Bild 6-1 faßt die Operationen zusammen, die ein Timerwort als Operandenverwenden.
Freigabe einerZeit (FR)
Rücksetzen einer Zeit (R)
Laden einer Zeit (L, LC)Signalzustandsabfrage einer Zeit (U, O, X, UN, ON, XN)
Starten einer Zeit (SI, SV, SE, SS, SA)
Timerwort
Bild 6-1 Operationen, die ein Timerwort als Operanden verwenden
Definition
Welche Opera-tionen stehenIhnen zurVerfügung?
Zeitoperationen
6-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
6.2 Speicherbereiche und Komponenten einer Zeit
Zeiten haben einen eigenen reservierten Speicherbereich in Ihrer CPU.Dieser Speicherbereich reserviert ein 16-Bit-Wort für jeden Zeitoperanden.Das Programmieren mit AWL unterstützt 256 Zeiten. Wieviele Zeitworte inIhren CPUs zur Verfügung stehen, entnehmen Sie bitte deren technischenDaten.
Folgende Funktionen greifen auf den Speicherbereich der Zeiten zu:
� Zeitoperationen
� Aktualisieren der Timerwörter über Zeitimpulsgeber. Diese FunktionIhrer CPU im RUN-Zustand vermindert einen bestimmten Wert um je-weils eine Einheit in einem Intervall, das von der Zeitbasis festgelegtwurde, bis der Zeitwert gleich ”0” ist.
Die Bits 0 bis 9 des Timerworts enthalten den Zeitwert binär-codiert. DerZeitwert gibt eine Anzahl von Einheiten an. Das Aktualisieren der Zeitvermindert den Zeitwert um jeweils eine Einheit in einem Intervall, das vonder Zeitbasis festgelegt wurde. Der Zeitwert wird solange vermindert, bis ergleich ”0” ist. Sie können einen Zeitwert im dualen, hexadezimalen oderbinär-codierten Dezimalformat (BCD) in das niederwertige Wort vonAKKU 1 laden. Der Zeitbereich umfaßt 0 bis 9 990 Sekunden.
Mit der folgenden Syntax können Sie einen vordefinierten Zeitwert laden.
� L W#16#wxyz
– mit: w = Zeitbasis (d. h. Zeitintervall oder Auflösung)
– xyz = Zeitwert im BCD-Format
� L S5T#aH_bbM_ccS_dddMS
– mit: a = Stunden, bb = Minuten, cc = Sekunden undddd = Millisekunden.
– Die Zeitbasis wird automatisch gewählt und der Wert zur nächst-niederen Zahl mit dieser Zeitbasis gerundet.
Sie können einen Zeitwert von max. 9 990 Sekunden bzw. 2H_46M_30Seingeben.
Speicherbereich
Zeitwert
Zeitoperationen
6-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Bits 12 und 13 des Timerworts enthalten die Zeitbasis binär-codiert. DieZeitbasis definiert das Intervall, in dem der Zeitwert um eine Einheitvermindert wird. Die kleinste Zeitbasis beträgt 10 ms; die größte 10 s.
Tabelle 6-1 Zeitbasis und Binärcode
Zeitbasis Binärcode für Zeitbasis
10 ms 00
100 ms 01
1 s 10
10 s 11
Da Zeitwerte nur in einem Zeitintervall gespeichert werden, werden Werte,die keine genauen Vielfache des Zeitintervalls sind, abgeschnitten. Werte,deren Auflösung für den gewünschten Bereich zu groß ist, werdenabgerundet, so daß der gewünschte Bereich erzielt wird, nicht jedoch diegewünschte Auflösung. Tabelle 6-2 zeigt die möglichen Auflösungen und diezugehörigen Bereiche.
Tabelle 6-2 Auflösung und Bereiche der Zeitbasis
Auflösung Zeitbasis
0,01 Sekunde 10MS bis 9S_990MS
0,1 Sekunde 100MS bis 1M_39S_900MS
1 Sekunde 1S bis 16M_39S
10 Sekunden 10S bis 2HR_46M_30S
Wird eine Zeit gestartet, so wird der Inhalt des AKKU 1 als Zeitwertverwendet. Die Bits 0 bis 11 des AKKU1-L enthalten den Zeitwert imbinär-codierten Dezimalformat (BCD-Format: jede Gruppe von vier Bitsenthält den Binärcode für einen Dezimalwert). Die Bits 12 und 13 enthaltendie Zeitbasis im Binärcode (siehe Tabelle 6-1). Bild 6-2 zeigt den Inhalt desAKKU1-L, nachdem Sie den Zeitwert 127 mit der Zeitbasis 1 Sekundegeladen haben (siehe auch Kapitel 8.5).
Zeitbasis1 Sekunde
Irrelevant: Diese Bits werden nicht beachtet, wenn die Zeit gestartet wird
Zeitwert im BCD-Format (0 bis 999)
15... ...8 7... ...0
1 2 7
x x 1 0 0 0 0 1 0 0 1 0 0 1 1 1
Bild 6-2 Inhalt des AKKU1-L für den Zeitwert 127 mit der Zeitbasis eine Sekunde
Zeitbasis
Bit-Konfigurationin AKKU 1
Zeitoperationen
6-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
6.3 Laden, Starten, Rücksetzen und Freigeben einer Zeit
In Ihrem AWL-Programm können Sie mit drei Anweisungen die folgendenOperationen auslösen:
� Abfragen eines Signalzustands auf ”0” oder ”1” (z. B. U E 2.1).
� Laden eines Zeitwerts und einer zugehörigen Zeitbasis (z. B. L EW0).
� Starten einer Zeit als:
– Impuls (SI, z. B. SI T 1)
– verlängerten Impuls (SV)
– Einschaltverzögerung (SE)
– speichernde Einschaltverzögerung (SS)
– Ausschaltverzögerung (SA)
In Ihrem AWL-Programm startet ein Wechsel im Verknüpfungsergebnis(VKE) vor einer Startoperation die Zeit. Ein Wechsel im VKE von ”1” auf”0” startet eine Zeit als Ausschaltverzögerung (SA); ein Wechsel von ”0” auf”1” startet eine der anderen Möglichkeiten. Die programmierte Zeit und dieOperationen zum Start der Zeit müssen direkt auf die Verknüpfung folgen,die die Bedingung für das Starten der Zeit liefert. Kapitel 6.4 gibt Beispielefür die fünf möglichen Startoperationen für Zeiten.
Das Laden eines Zeitwerts als Ganzzahl oder als BCD-Zahl ist in Kap. 8.4und 8.5 beschrieben.
Da die Zeit von einer eingestellten Zeit aus rückwärts gegen Null läuft,müssen Sie die Zeit mit einer Startzeit versehen. Wenn Sie eine Zeit in IhremProgramm starten, übernimmt die CPU die Startzeit aus dem AKKU 1. DerZeitbereich reicht von 0 bis 9 990 Sekunden.
Bild 6-3 zeigt ein Beispiel für das Starten einer Zeit als Impuls. Wechselt derSignalzustand an Eingang E 2.1 von ”0” auf ”1”, so wird die Zeit gestartet.Bild 6-3 bezieht sich auf das folgende AWL-Programm:
AWL Erläuterung
U E 2.1L S5T#00H02M23S00MSSI T1
Frage Signalzustand an Eingang E 2.1 ab.Lade Startzeit in AKKU 1.Starte Zeit T1 als Impuls.
E 2.1
Frage E 2.1 nach Wechselvon ”0” auf ”1” ab.
Zeit wird mit der Startzeit gestartet, die in AKKU 1 angegeben ist.
Signalzustandsdiagramm:
0
0
1
1
Bild 6-3 Starten einer Zeit als Impuls
Beschreibung
Laden
Startzeit
Beispiel für dasStarten einer Zeit
Zeitoperationen
6-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Eine Zeit setzen Sie mit der Operation R (Rücksetze) zurück. Die CPU setzteine Zeit zurück, wenn das Verknüpfungsergebnis unmittelbar vor derOperation R in Ihrem Programm ”1” ist. Solange das VKE vor einerOperation R ”1” beträgt, bildet eine Operation U, O oder X, die denSignalzustand einer Zeit abfragt, das Ergebnis ”0” und eine Operation UN,ON oder XN das Ergebnis ”1”.
Das Rücksetzen einer Zeit stoppt die aktuelle Zeitfunktion und setzt den Zeit-wert auf ”0” zurück.
Ein Wechsel im Verknüpfungsergebnis von ”0” auf ”1” vor einerFreigabeoperation (FR) gibt eine Zeit frei. Dieser Wechsel im Signalzustandist immer nötig, um eine Zeit freizugeben. Die CPU führt die Operation FRnur auf einer steigenden Signalflanke aus.
Zum Starten oder für die normale Funktion einer Zeit wird die Freigabe nichtbenötigt. Die Freigabe wird lediglich dazu verwendet, eine laufende Zeitnachzutriggern, d. h. sie wieder anlaufen zu lassen. Dieser Wiederanlauf istnur dann möglich, wenn die Startoperation weiterhin mit dem VKE ”1”bearbeitet wird.
Rücksetzen einerZeit
Freigabe einer Zeitzum Wiederanlauf
Zeitoperationen
6-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
6.4 Beispiele für Zeiten
Das Programmieren mit der Anweisungsliste bietet Ihnen fünf verschiedeneZeiten. Im folgenden AWL-Programm sind Beispiele für alle Zeitenenthalten.
Die Bilder 6-4 und 6-5 geben Beispiele für eine Zeit als Impuls. Dieumrahmten Zahlen in den Bildern weisen auf die Erläuterungen hin, die sichan Bild 6-4 anschließen. Die Bilder beziehen sich auf das folgendeAWL-Programm:
AWL Erläuterung
U E 2.0FR T1U E 2.1L S5T#00H02M23S00MSSI T1U E 2.2R T1U T1= A 4.0L T1T MW10LC T1T MW12
Freigabe der Zeit T1.
Starte Zeit T1 als Impuls.
Setze Zeit T1 zurück.
Signalzustandsabfrage der Zeit T1.
Lade Zeit T1.
E 2.0
E 2.1
E 2.2
A 4.0
VKE am Freigabeeingang
VKE am Starteingang
VKE am Rücksetzeingang
Timerreaktion
Signalzustandsabfrageam Timerausgang
Lade Zeit: L, LC
t
� ��
�
�
�
�
t = programmierte Startzeit
Bild 6-4 Beispiel für eine Zeit als Impuls, Teil 1
Einführung
Zeit als Impuls: SI
Zeitoperationen
6-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die folgende Liste beschreibt die Elemente der Bilder 6-4 und 6-5:
� Wechselt das VKE von ”0” auf ”1” am Starteingang, so startet diesdie Zeit. Die programmierte Zeit t beginnt dann abzulaufen.
� Liegt am Starteingang ein VKE von ”0” an, dann wird die Zeitzurückgesetzt.
� Die Signalzustandsabfrage am Ausgang A 4.0 ergibt einenSignalzustand von ”1” für die gesamte Dauer der Zeitoperation.
� Liegt am Rücksetzeingang ein VKE von ”1” an, dann wird die Zeitzurückgesetzt. Solange ein Signalzustand von ”1” am Starteinganganliegt, hat ein Wechsel im VKE von ”1” auf ”0” amRücksetzeingang keinerlei Einfluß auf die Zeit.
� Ein Wechsel im VKE von ”0” auf ”1” am Starteingang beigleichzeitigem Rücksetzsignal veranlaßt die Zeit, kurzzeitig zustarten. Dann jedoch setzt sie sofort zurück aufgrund der OperationRücksetze, die im Programm direkt folgt (im Impulsdiagramm inBild 6-4 als Impulslinie dargestellt). Für diesen Impuls gibt es keinAbfrageergebnis, vorausgesetzt, daß die Reihenfolge derOperationen, wie sie oben abgebildet sind, eingehalten wird.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang, währenddie Zeit läuft, so läßt dies die Zeit wieder neu anlaufen. Dieprogrammierte Zeit wird als aktuelle Zeit für den Wiederanlaufverwendet. Ein Wechsel des VKE von ”1” auf ”0” amFreigabeeingang hat keinen Einfluß.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang, währenddie Zeit nicht läuft und gleichzeitig noch immer ein VKE von ”1”am Starteingang anliegt, wird die Zeit ebenfalls als Impuls mit derprogrammierten Zeit gestartet.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang beigleichzeitigem VKE von ”0” am Starteingang, so hat dies keinenEinfluß auf die Zeit.
E 2.0
E 2.1
E 2.2
A 4.0
t
�
t
���
VKE am Freigabeeingang
VKE am Starteingang
VKE am Rücksetzeingang
Timerreaktion
Signalzustandsabfrageam Timerausgang
Lade Zeit: L, LC
t = programmierte Startzeit
Bild 6-5 Beispiel für eine Zeit als Impuls, Teil 2
Zeitoperationen
6-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Bilder 6-6 und 6-7 geben Beispiele für eine Zeit als verlängerten Impuls.Die umrahmten Zahlen in den Bildern weisen auf die Erläuterungen hin, diesich an Bild 6-6 anschließen. Die Bilder beziehen sich auf das folgendeAWL-Programm:
AWL Erläuterung
U E 2.0FR T1U E 2.1L S5T#00H02M23S00MSSV T1U E 2.2R T1U T1= A 4.0L T1T MW10LC T1T MW12
Freigabe der Zeit T1.
Starte Zeit T1 als verlängerten Impuls.
Setze Zeit T1 zurück.
Signalzustandsabfrage der Zeit T1.Lade Zeit T1 binär codiert
Lade Zeit T1 BCD-codiert.
E 2.0
E 2.1
E 2.2
A 4.0
t
� �� �
�
�
�
�
�
VKE am Frei-gabeeingang
VKE am Starteingang
VKE am Rücksetz-eingang
Timerreaktion
Signalzu-standsabfrageam Timer-ausgangLade Zeit: L, LC
t = programmierte Startzeit
Bild 6-6 Beispiel für eine Zeit als verlängerten Impuls, Teil 1
Zeit als verlän-gerter Impuls: SV
Zeitoperationen
6-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die folgende Liste beschreibt die Elemente der Bilder 6-6 und 6-7:
� Wechselt das VKE von ”0” auf ”1” am Starteingang, so startet diesdie Zeit. Die programmierte Zeit t läuft dann ab, unabhängig voneinem späteren Wechsel des VKE von ”1” auf ”0” am Starteingang.
� Wenn das VKE von ”0” auf ”1” wechselt, bevor die Zeit abgelaufenist, wird die Zeit mit der ursprünglich programmierten Zeitnachgetriggert.
� Die Signalzustandsabfrage am Ausgang A 4.0 ergibt das Ergebnis”1” für die gesamte Dauer der Zeitoperation.
� Liegt am Rücksetzeingang ein VKE von ”1” an, dann wird die Zeitzurückgesetzt. Solange ein Signalzustand von ”1” am Starteinganganliegt, hat ein Wechsel im VKE von ”1” auf ”0” amRücksetzeingang keinerlei Einfluß auf die Zeit.
� Ein Wechsel im VKE von ”0” auf ”1” am Starteingang beigleichzeitigem Rücksetzsignal veranlaßt die Zeit, kurzzeitig zustarten. Dann jedoch setzt sie sofort zurück aufgrund der OperationRücksetze, die im Programm direkt folgt (im Impulsdiagramm inBild 6-6 als Impulslinie dargestellt). Für diesen Impuls gibt es keinAbfrageergebnis, vorausgesetzt, daß die Reihenfolge derOperationen, wie sie oben abgebildet sind, eingehalten wird.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang, währenddie Zeit läuft, so läßt dies die Zeit wieder neu anlaufen. Dieprogrammierte Zeit wird als aktuelle Zeit für den Wiederanlaufverwendet. Ein Wechsel im VKE von ”1” auf ”0” amFreigabeeingang hat keinen Einfluß.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang, währenddie Zeit nicht läuft und gleichzeitig noch immer das VKE ”1” amStarteingang anliegt, dann wird die Zeit ebenfalls als Impuls mit derprogrammierten Zeit gestartet.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang beigleichzeitigem VKE von ”0” am Starteingang, so hat dies keinenEinfluß auf die Zeit.
E 2.0
E 2.1
E 2.2
A 4.0
t
�
t
���
t
�
VKE am Frei-gabeeingang
VKE am Starteingang
VKE amRücksetz-eingang
Timerreaktion
Signalzu-standsabfrageam Timer-ausgangLade Zeit: L, LC
t = programmierte Startzeit
Bild 6-7 Beispiel für eine Zeit als verlängerten Impuls, Teil 2
Zeitoperationen
6-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Bilder 6-8 und 6-9 geben Beispiele für eine Zeit alsEinschaltverzögerung. Die umrahmten Zahlen in den Bildern weisen auf dieErläuterungen hin, die sich an Bild 6-8 anschließen. Die Bilder beziehen sichauf das folgende AWL-Programm:
AWL Erläuterung
U E 2.0FR T1U E 2.1L S5T#00H02M23S00MSSE T1U E 2.2R T1U T1= A 4.0L T1T MW10LC T1T MW12
Freigabe der Zeit T1.
Starte Zeit T1 als Einschaltverzögerung.
Setze Zeit T1 zurück.
Signalzustandsabfrage der Zeit T1.
Lade Zeit T1.
E 2.0
E 2.1
E 2.2
t
�
�
�
�
�
t
�
�
�
VKE am Frei-gabeeingang
VKE am Starteingang
VKE am Rücksetz-eingang
Timerreaktion
Signalzu-standsabfrageam Timer-ausgangLade Zeit: L, LC
t = programmierte Startzeit
A 4.0
Bild 6-8 Beispiel für eine Zeit als Einschaltverzögerung, Teil 1
Zeit als Einschalt-verzögerung: SE
Zeitoperationen
6-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die folgende Liste beschreibt die Elemente der Bilder 6-8 und 6-9:
� Wechselt das VKE von ”0” auf ”1” am Starteingang, so startet diesdie Zeit. Die programmierte Zeit t beginnt dann abzulaufen.
� Wenn am Starteingang ein VKE von ”0” anliegt, wird die Zeitzurückgesetzt.
� Die Signalzustandsabfrage am Ausgang A 4.0 ergibt einenSignalzustand von ”1”, wenn die Zeit abgelaufen und derStarteingang ”1” ist.
� Wenn am Rücksetzeingang ein VKE von ”1” anliegt, wird die Zeitzurückgesetzt. Solange ein Signalzustand von ”1” am Starteinganganliegt, hat ein Wechsel im VKE von ”1” auf ”0” amRücksetzeingang keinerlei Einfluß auf die Zeit.
� Ein Wechsel im VKE von ”0” auf ”1” am Starteingang beigleichzeitigem Rücksetzsignal veranlaßt die Zeit, kurzzeitig zustarten. Dann jedoch setzt sie sofort zurück aufgrund der OperationRücksetze, die im Programm direkt folgt (im Impulsdiagramm inBild 6-8 als Impulslinie dargestellt). Für diesen Impuls gibt es keinAbfrageergebnis, vorausgesetzt, daß die Reihenfolge derOperationen, wie sie oben abgebildet sind, eingehalten wird.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang, währenddie Zeit läuft, so läßt dies die Zeit wieder neu anlaufen. Dieprogrammierte Zeit wird als aktuelle Zeit für den Wiederanlaufverwendet. Ein Wechsel im VKE von ”1” auf ”0” amFreigabeeingang hat keinen Einfluß.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang und folgteine normale Zeitoperation, so wird die Zeit nicht beeinflußt.
� Wechselt das VKE von ”0” auf ”1” am Freigabeeingang nachRücksetzen der Zeit und bei gleichzeitigem VKE von ”1” amStarteingang, so startet dies die Zeit. Die programmierte Zeit wirdals aktuelle Zeit verwendet.
E 2.0
E 2.1
E 2.2
A 4.0
t
�
�
�� �
VKE am Frei-gabeeingang
VKE am Starteingang
VKE am Rücksetz-eingang
Timerreaktion
Signalzu-standsabfrageam Timer-ausgangLade Zeit: L, LC
t = programmierte Startzeit
Bild 6-9 Beispiel für eine Zeit als Einschaltverzögerung, Teil 2
Zeitoperationen
6-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Bilder 6-10 und 6-11 geben Beispiele für eine Zeit als speicherndeEinschaltverzögerung. Die umrahmten Zahlen in den Bildern weisen auf dieErläuterungen hin, die sich an Bild 6-10 anschließen. Die Bilder beziehensich auf das folgende AWL-Programm:
AWL Erläuterung
U E 2.0FR T1U E 2.1L S5T#00H02M23S00MSSS T1U E 2.2R T1U T1= A 4.0L T1T MW10LC T1T MW12
Freigabe der Zeit T1.
Starte Zeit T1 als speichernde Einschaltverzögerung.
Setze Zeit T1 zurück.
Signalzustandsabfrage der Zeit T1.
Lade Zeit T1.
E 2.0
E 2.1
E 2.2
t
�
�
� �
�
�
�
VKE am Frei-gabeeingang
VKE am Starteingang
VKE am Rücksetz-eingang
Timerreaktion
Signalzu-standsabfrageam Timer-ausgangLade Zeit: L, LC
t = programmierte Startzeit
A 4.0
Bild 6-10 Beispiel für eine Zeit als speichernde Einschaltverzögerung, Teil 1
Die folgende Liste beschreibt die Elemente der Bilder 6-10 und 6-11:
� Wechselt das VKE von ”0” auf ”1” am Starteingang, so startet diesdie Zeit. Die programmierte Zeit t läuft dann ab, unabhängig voneinem späteren Wechsel des VKE von ”1” auf ”0” am Starteingang.
� Die Signalzustandsabfrage am Timerausgang ergibt ”1”, wenn dieZeit abgelaufen ist.
Zeit als spei-chernde Einschalt-verzögerung: SS
Zeitoperationen
6-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
� Das Ergebnis der Signalzustandsabfrage am Ausgang A 4.0 wechseltnur dann auf ”0”, wenn das VKE am Rücksetzeingang ”1” beträgt.
� Wenn am Rücksetzeingang ein VKE von ”1” anliegt, wird die Zeitzurückgesetzt. Solange ein Signalzustand von ”1” am Starteinganganliegt, hat ein Wechsel des VKE von ”1” auf ”0” amRücksetzeingang keinerlei Einfluß auf die Zeit.
� Ein Wechsel im VKE von ”0” auf ”1” am Starteingang beigleichzeitigem Rücksetzsignal veranlaßt die Zeit, kurzzeitig zustarten. Dann jedoch setzt sie sofort zurück aufgrund der OperationRücksetze, die im Programm direkt folgt (im Impulsdiagramm inBild 6-10 als Impulslinie dargestellt). Für diesen Impuls gibt es keinAbfrageergebnis, vorausgesetzt, daß die Reihenfolge derOperationen, wie sie oben abgebildet sind, eingehalten wird.
� Wechselt das VKE am Freigabeeingang von ”0” auf ”1”, währenddie Zeit läuft und das VKE am Starteingang der Zeit ”1” ist, so läßtdies die Zeit wieder neu anlaufen. Die programmierte Zeit wird alsaktuelle Zeit für den Wiederanlauf verwendet. Ein Wechsel im VKEvon ”1” auf ”0” am Freigabeeingang hat keinen Einfluß auf die Zeit.
� Die Zeit wird nicht beeinflußt, wenn das VKE nach einer normalenZeitoperation am Freigabeeingang von ”0” auf ”1” wechselt.
� Wechselt das VKE am Freigabeeingang von ”0” auf ”1”, währenddie Zeit läuft und das VKE am Starteingang der Zeit ”0” ist, dannwird die Zeit nicht beeinflußt.
� Wechselt das VKE am Freigabeeingang von ”0” auf ”1”, wenn dieZeit zurückgesetzt wurde und das VKE am Starteingang nochimmer ”1” ist, dann wird die Zeit neu gestartet. Die programmierteZeit wird als aktuelle Zeit für den Wiederanlauf verwendet.
ttt
�
� � � �
� �
E 2.0
E 2.1
E 2.2
VKE am Frei-gabeeingang
VKE amStarteingang
VKE am Rücksetz-eingang
Timerreaktion
Signalzu-standsabfrageam Timer-ausgangLade Zeit: L, LC
t = programmierte Startzeit
A 4.0
Bild 6-11 Beispiel für eine Zeit als speichernde Einschaltverzögerung, Teil 2
Zeitoperationen
6-15Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Bilder 6-12 und 6-13 geben Beispiele für eine Zeit alsAusschaltverzögerung. Die umrahmten Zahlen in den Bildern weisen auf dieErläuterungen hin, die sich an Bild 6-12 anschließen. Die Bilder beziehensich auf das folgende AWL-Programm:
AWL Erläuterung
U E 2.0FR T1U E 2.1L S5T#00H02M23S00MSSA T1U E 2.2R T1U T1= A 4.0L T1T MW10LC T1T MW12
Freigabe der Zeit T1.
Starte Zeit T1 als Ausschaltverzögerung.
Setze Zeit T1 zurück.Signalzustandsabfrage der Zeit T1.
Lade Zeit T1.
t t
� � � � �
�
�
� �
� �
�
E 2.0
E 2.1
E 2.2
VKE am Frei-gabeeingang
VKE am Starteingang
VKE am Rücksetz-eingang
Timerreaktion
Signalzu-standsabfrageam Timer-ausgangLade Zeit: L, LC
t = programmierte Startzeit
A 4.0
Bild 6-12 Beispiel für eine Zeit als Ausschaltverzögerung, Teil 1
Zeit als Ausschalt-verzögerung: SA
Zeitoperationen
6-16Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die folgende Liste beschreibt die Elemente der Bilder 6-12 und 6-13:
� Wechselt das VKE von ”0” auf ”1” am Starteingang, so ergibt sicheine Änderung von ”0” auf ”1” am Ausgang A 4.0. Ein Wechsel imVKE von ”1” auf ”0” am Starteingang startet die Zeit. Dieprogrammierte Zeit t läuft dann ab.
� Wenn am Starteingang erneut ein VKE von ”1” auftritt, wird dieZeit zurückgesetzt.
� Die Signalzustandsabfrage am Ausgang A 4.0 der Zeit ergibt einenSignalzustand von ”1”, wenn das VKE am Starteingang ”1” beträgtund die Zeit noch nicht abgelaufen ist.
� Liegt ein VKE von ”1” am Rücksetzeingang an, dann wird die Zeitzurückgesetzt. Eine Signalzustandsabfrage der Zeit ergibt dann ”0”.Wechselt das VKE von ”1” auf ”0” am Rücksetzeingang, so hat dieskeinen Einfluß auf die Zeit.
� Liegt eine ”1” am Rücksetzeingang an, während die Zeit nicht läuft,so hat dies keinen Einfluß auf die Zeit.
� Ein Wechsel im VKE von ”1” auf ”0” am Starteingang beigleichzeitigem Rücksetzsignal veranlaßt die Zeit, kurzzeitig zustarten. Dann jedoch setzt sie sofort zurück aufgrund der OperationRücksetze, die im Programm direkt folgt (im Impulsdiagramm inBild 6-12 als Impulslinie dargestellt). Die Signalzustandsabfrage derZeit ergibt dann ”0”.
� Die Zeit wird nicht beeinflußt, wenn das VKE am Freigabeeingangvon ”0” auf ”1” wechselt, während die Zeit nicht läuft. Ein Wechselim VKE von ”1” auf ”0” hat ebenfalls keinen Einfluß auf die Zeit.
� Wechselt das VKE am Freigabeeingang von ”0” auf ”1”, währenddie Zeit läuft, dann wird die Zeit neu gestartet. Die programmierteZeit wird als aktuelle Zeit für den Wiederanlauf verwendet.
t
� ��
E 2.0
E 2.1
E 2.2
VKE am Freigabeeingang
VKE am Starteingang
VKE am Rücksetzeingang
Timerreaktion
Signalzustandsabfrageam Timerausgang
Lade Zeit: L, LC
t = programmierte Startzeit
A 4.0
Bild 6-13 Beispiel für eine Zeit als Ausschaltverzögerung, Teil 2
Zeitoperationen
6-17Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
6.5 Operanden und Bereiche für Zeitoperationen
Die Tabellen 6-3 und 6-4 zeigen die Adressierungsarten, Operanden undAdreßbereiche für Zeitoperationen.
Tabelle 6-3 Operanden, Bereiche und Adressierungsarten für Zeitoperationen
Adreßbereich je nach Adressierungsart
direkt speicherindirekt
0 bis 65535
[DBW][DIW][LW][MW]
0 bis 65 534
Tabelle 6-4 Operand der Zeit als Parameter transferiert
Operand Adreßparameterformat
SymbolischerName
Zeit als Parameter transferiert.
Zeitoperationen
6-18Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
6.6 Auswahl der richtigen Zeit
Bild 6-14 bietet einen Überblick über die fünf verschiedenen Zeiten, die inKapitel 6.4 beschrieben wurden. Diese Übersicht soll Ihnen helfen, die fürIhre Zwecke adäquate Zeit auszuwählen.
Das Ausgangssignal wechselt nur von ”0” auf ”1”, wenn dasEingangssignal von ”0” auf ”1” wechselt. Das Ausgangssignalbleibt auf ”1”. Die Zeit wird gestartet, wenn das Eingangssignalvon ”0” auf ”1” wechselt.
E 2.1
A 4.0
SV:
SE:
SS:
SA:
Eingangssignal
Ausgangssignal(Zeit als Impuls) t
SI:
t
t
t
t
Die maximale Zeit, in der das Ausgangssignal auf ”1” bleibt,ist gleich dem programmierten Zeitwert t. DasAusgangssignal bleibt für eine kürzere Zeit auf ”1”, wenn dasEingangssignal auf ”0” wechselt.
Das Ausgangssignal bleibt für die programmierte Zeit auf ”1”,unabhängig davon, wie lange das Eingangssignal auf ”1”bleibt.
Das Ausgangssignal wechselt nur von ”0” auf ”1”, wenn dieprogrammierte Zeit abgelaufen ist, und das Eingangssignalnoch immer ”1” beträgt.
Das Ausgangssignal wechselt von ”0” auf ”1”, wenn dieprogrammierte Zeit abgelaufen ist, unabhängig davon, wielange das Eingangssignal auf ”1” bleibt.
A 4.0Ausgangssignal(Zeit als verlän-gerter Impuls)
A 4.0Ausgangssignal(Zeit als Ein-schaltverzögerung)
A 4.0Ausgangssignal(Zeit als speich.Einschaltverzögerung)
A 4.0Ausgangssignal(Zeit als Aus-schaltverzögerung)
Bild 6-14 Auswahl der richtigen Zeit
Zeitoperationen
7-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Zähloperationen
Im Kapitel finden Sie auf Seite
7.1 Übersicht 7-2
7.2 Setzen, Rücksetzen und Freigeben eines Zählers 7-3
7.3 Vorwärts- und Rückwärtszählen 7-5
7.4 Laden eines Zählwerts als Ganzzahl 7-6
7.5 Laden eines Zählwerts im BCD-Format 7-7
7.6 Beispiel eines Zählers 7-8
7.7 Operanden und Bereiche für Zähloperationen 7-10
Kapitelübersicht
7
7-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
7.1 Übersicht
Ein Zähler ist ein Funktionselement der Programmiersprache STEP 7.
Zähler haben einen eigenen reservierten Speicherbereich in Ihrer CPU.Dieser Speicherbereich reserviert ein Wort von 16 Bit für jeden Zähler. DasProgrammieren mit AWL unterstützt 256 Zähler. Die bei Ihrer CPU verfüg-bare Anzahl von Zählern entnehmen Sie bitte deren technischen Daten.
Zähloperationen sind die einzigen Funktionen, die Zugriff auf den für Zählerreservierten Speicherbereich haben.
Die Programmiersprache AWL der Programmiersoftware STEP 7 bietetIhnen folgende Zähloperationen:
� S: Setzen
� R: Rücksetzen
� ZV: Vorwärtszählen
� ZR: Rückwärtszählen
� FR: Zähler freigeben
� Zähler in einem der folgenden Formate laden:
– L: binär-codiert
– LC: BCD-codiert
� U, UN, O, ON, X, XN: Signalzustand eines Zählers abfragen und dasErgebnis verknüpfen. Eine Signalzustandsabfrage mit der Operation U, Ooder X ergibt das Ergebnis ”1”, wenn der Zählwert größer als ”0” ist. Eine Signalzustandsabfrage mit der Operation U, O oder X ergibt dasErgebnis ”0”, wenn der Zählwert gleich ”0” ist.
Bild 7-1 faßt die Operationen zusammen, die ein Zählerwort als Operandenverwenden.
Zähler freigeben (FR)Rückwärtszählen (ZR)
Zählwert laden (L, LC)
Zählerwort
Zähler setzen (S)Vorwärtszählen (ZV) Zähler rücksetzen (R)
Signalzustandsabfrage eines Zählers (U, UN, O, ON, X, XN)
Bild 7-1 Operationen, die ein Zählerwort als Operanden verwenden können.
Definition
Welche Operatio-nen stehen Ihnenzur Verfügung?
Zähloperationen
7-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
7.2 Setzen, Rücksetzen und Freigeben eines Zählers
Um einen Zähler zu setzen, fügen Sie drei Anweisungen in IhremAWL-Programm ein, damit die folgenden Operationen ausgelöst werden:
� Abfragen eines Signalzustands nach ”0” oder ”1” (z. B. U E 2.3).
� Laden eines Zählwerts (z.B. L C# 3) in das niederwertige Wort vonAKKU 1.
� Setzen eines Zählers mit dem geladenen Zählwert (z. B. S Z 1). Durchdiese Operation wird der Zählwert von AKKU 1 in das Zählerwort über-tragen.
In Ihrem AWL-Programm setzt ein Wechsel im Verknüpfungsergebnis von”0” auf ”1” vor der Operation Setzen (S) den Zähler auf den programmiertenZählwert. Der programmierte Zählwert und die Operation Setzen müssendirekt auf die Verknüpfungsoperation folgen, die die Bedingungen zumSetzen des Zählers liefert.
Ein Zähler wird auf einen bestimmten Wert gesetzt, indem Sie diesen Wert indas niederwertige Wort von AKKU 1 laden und sofort anschließend diesenZähler setzen. Wenn Sie in Ihrem Programm einen Zähler setzen, sucht dieCPU den Zählwert im AKKU 1. Nun überträgt die CPU den Zählwert vomAkkumulator in das Zählerwort, das Sie in Ihrer Operation Setzen (z B. S Z1)festgelegt haben. Der Bereich des Zählwerts liegt zwischen 0 und 999.
Bild 7-2 zeigt ein Beispiel für das Setzen eines Zählers. Wechselt derSignalzustand von ”0” auf ”1” am Eingang E 2.3, so wird der Zähler gesetzt.Bild 7-2 bezieht sich auf das folgende AWL-Programm.
AWL Erläuterung
U E 2.3L C# 3S Z1
Signalzustandsabfrage an Eingang E 2.3. Wenn Signalzustand ”1” ist, lade Zählwert 3 in AKKU 1. Setze Zähler Z1 auf den Zählwert 3. Diese Operation bewegt denZählwert 3 vom Akkumulator in das Zählerwort 1.
E 2.3
Abfrage von E 2.3 nachWechsel von ”0” auf ”1”.
Zähler wird auf den Wert gesetzt, der in der Ladeoperation angegeben ist.
Signalzustandsdiagramm:
0
0
1
1
Bild 7-2 Setzen eines Zählers
Beschreibung
Startwert
Beispiel für dasSetzen eines Zäh-lers
Zähloperationen
7-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Einen Zähler setzen Sie mit der Operation R (Rücksetze) zurück. Die CPUsetzt einen Zähler zurück, wenn das Verknüpfungsergebnis unmittelbar vorder Operation Rücksetzen in Ihrem Programm ”1” ist. Solange das VKE voreiner Operation R ”1” beträgt, bildet die Operation U, O oder X, die denSignalzustand eines Zählers abfragt, das Ergebnis ”0” und eine OperationUN, ON oder XN das Ergebnis ”1”.
Wenn Ihr Programm einen Zähler rücksetzt, löscht es ihn, d. h. es setzt ihnauf den Wert ”0”.
Wenn der Zähler durch ein statisches Signal am Eingang Rücksetzen undunabhängig vom VKE der anderen Zählereingänge zurückgesetzt werdensoll, dann müssen Sie die Operation zum Rücksetzen direkt nach derOperation zum Setzen, Vorwärts- oder Rückwärtszählen und vor dieSignalabfrage oder Ladeoperation schreiben (siehe Kapitel 7.3).
Die Zählerprogrammierung sollte sich also an die folgende Reihenfolgehalten (siehe auch Programmierbeispiel in Kapitel 7.6).
1. Vorwärtszählen
2. Rückwärtszählen
3. Zähler setzen
4. Zähler rücksetzen
5. Signalzustand des Zählers abfragen
6. Zählwert laden (Zählwert lesen)
Ein Wechsel im Verknüpfungsergebnis der Operation FR (Freigabe) von ”0”auf ”1” gibt einen Zähler frei. Die CPU führt die Operation FR nur bei einersteigenden Signalflanke aus.
Eine Zählerfreigabe wird weder für das normale Setzen eines Zählers, nochfür normale Zähloperationen benötigt. Eine Freigabe wird lediglich dazuverwendet, einen Zähler dann zu setzen bzw. vorwärts oder rückwärts zuzählen, wenn eine positive Flanke (Wechsel von ”0” auf ”1”) vor derentsprechenden Zähloperation benötigt wird und die Signalabfrage vor derentsprechenden Operation das VKE ”1” hat.
Rücksetzen einesZählers
Freigabe einesZählers zumWiederanlauf
Zähloperationen
7-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
7.3 Vorwärts- und Rückwärtszählen
In Ihrem AWL-Programm erhöht ein Wechsel im Verknüpfungsergebnis von”0” auf ”1” vor einer Anweisung zum Vorwärtszählen (ZV) den Zähler.Jedesmal, wenn direkt vor einer Operation Vorwärtszählen das VKE von ”0”auf ”1” wechselt, wird der Zählwert um 1 Einheit erhöht.
Wenn der Zählwert seinen oberen Grenzwert von 999 erreicht, erhöht er sichnicht weiter, und jeder folgende Wechsel im Signalzustand am EingangVorwärtszählen ist wirkungslos. Überläufe (OV) sind nicht vorgesehen.
AWL Erläuterung
U E 0.1ZV Z1
Wenn ein Wechsel der positiven Flanke an Eingang E 0.1 auf-tritt, wird Zählwert Z 1 um 1 Einheit erhöht.
In Ihrem AWL-Programm vermindert ein Wechsel im Verknüpfungsergebnisvon ”0” auf ”1” vor einer Anweisung zum Rückwärtszählen (ZR) den Zähler.Jedesmal, wenn direkt vor einer Operation Rückwärtszählen das VKE von”0” auf ”1” wechselt, wird der Zählwert um 1 Einheit vermindert.
Wenn der Zählwert seinen unteren Grenzwert von ”0” erreicht, vermindert ersich nicht weiter, und jeder folgende Wechsel im Signalzustand am EingangRückwärtszählen ist wirkungslos. Der Zähler zählt nicht mit negativenWerten.
AWL Erläuterung
U E 0.2ZR Z1
Wenn ein Wechsel der positiven Flanke an Eingang E 0.2 auf-tritt, wird Zählwert Z 1 um 1 Einheit vermindert.
Vorwärtszählen -Beschreibung
Rückwärtszählen -Beschreibung
Zähloperationen
7-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
7.4 Laden eines Zählwerts als Ganzzahl
Ein Zählwert ist in einem Zählerwort binär-codiert gespeichert. Mit derfolgenden Operation können Sie den binär-codierten Zählwert aus einemZählerwort auslesen und binär-codiert in das niederwertige Wort vonAKKU 1 laden:
L <Zählerwort>
Diese Art des Ladens bezeichnet man als direktes Laden eines Zählwerts.
AWL Erläuterung
L Z1 Lade den binär-codierten Zählwert von Zähler Z1 in AKKU1-L.
0 0 0 0 0 0
9 0
X X X X X X
Zählwert
Zählerwort fürZ1 (binär)
AKKU1-L (binär)
1015
15 10 09
Bild 7-3 Laden eines Zählwerts in AKKU 1 mit der Ladeoperation L
Der Wert, der als Ergebnis der Ladeoperation L in AKKU 1 enthalten ist,kann zur weiteren Verarbeitung verwendet werden. Sie können jedoch keinenWert aus dem Akkumulator in das Zählerwort transferieren. Wenn Sie einenZähler mit einem bestimmten Zählwert starten wollen, benötigen Sie dieentsprechende Operation zum Setzen des Zählers.
Beschreibung
Zähloperationen
7-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
7.5 Laden eines Zählwerts im BCD-Format
Ein Zählwert ist in einem Zählerwort binär-codiert gespeichert. Mit derfolgenden Operation können Sie den Zählwert aus einem Zählerwort auslesenund BCD-codiert in das niederwertige Wort von AKKU 1 laden:
LC <Zählerwort>
Diese Art des Ladens bezeichnet man als Laden eines Zählwerts im BCD-Format.
Der Wert, der als Ergebnis der Operation LC im niederwertigen Wort vonAKKU 1 enthalten ist, hat das gleiche Format, das benötigt wird, um einenZähler zu setzen.
AWL Erläuterung
LC Z1 Lade den Zählwert von Zähler Z1 im BCD-Format in AKKU1-L.
Zählwert
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Zählwert im BCD-Format
15
102 101 100
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BCD-codiert
0 0 0 0
(Hunderter) (Zehner) (Einer)
Zählerwort für Z1
AKKU1-L
Bild 7-4 Laden eines Zählwerts in AKKU 1 mit der Operation LC
Der Wert, der im Akkumulator als Ergebnis der Operation LC enthalten ist,kann zur weiteren Verarbeitung verwendet werden, so z. B. zumTransferieren des Werts zu den Ausgängen, um ein Display anzusteuern.
Beschreibung
Zähloperationen
7-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
7.6 Beispiel eines Zählers
Bild 7-5 gibt ein Beispiel für das Vorwärtszählen, Rückwärtszählen, Setzenund Rücksetzen eines Zählers, die Signalzustandsabfrage eines Zählers unddas Laden eines Zählwerts. Das Beispiel hält sich an die Programmierfolge,die in Kapitel 7.2 empfohlen wurde. Die umrahmten Zahlen weisen auf dieErläuterungen hin, die sich an das Bild anschließen. Die Liste, die Sie unterBild 7-5 finden, erklärt die Elemente des AWL-Programms.
ÎÎÎÎÎÎ
E 2.0 Freigabe
E 2.1VorwärtszählenE 2.2Rückwärts-zählen
E 2.3 Setzen
E 2.4Rücksetzen
Zählerreaktion
�
�
Signalzustands-abfrage vonZählerausgangA 4.0
MW10 LadenMW12 ÎÎÎ
ÎÎÎ
ÎÎÎÎÎÎ
�
�
�
�
� �
��
�
�
�
�
Bild 7-5 Beispiel für Zähloperationen
Zähloperationen
7-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die folgende Liste beschreibt die Elemente aus Bild 7-5:
� Ein Wechsel des VKE von ”0” auf ”1” am Eingang Setzen setzt denZähler auf den Zählwert 3. Ein Wechsel von ”1” auf ”0” amEingang Setzen hat keinen Einfluß auf den Zähler.
� Ein Wechsel des VKE von ”0” auf ”1” am Eingang Rückwärts-zählen vermindert den Zähler um eins. Ein Wechsel von ”1” auf ”0”am Eingang Rückwärtszählen hat keinen Einfluß auf den Zähler.
� Das Ergebnis der Anweisung zur Signalzustandsabfrage U Z1 ist”0”, wenn der Zählwert ”0” ist.
� Ein Wechsel des VKE von ”0” auf ”1” am Eingang Vorwärtszählenerhöht den Zähler um eins. Ein Wechsel von ”1” auf ”0” amEingang Vorwärtszählen hat keinen Einfluß auf den Zähler.
� Bei einem VKE von ”1” am Eingang Rücksetzen wird der Zählerzurückgesetzt. Die Signalzustandsabfrage ergibt ”0”. Ein Wechseldes VKE von ”1” auf ”0” am Eingang Rücksetzen hat keinenEinfluß auf den Zähler.
� Ein Wechsel des VKE von ”0” auf ”1” am Eingang Vorwärtszählenbei gleichzeitigem Rücksetzsignal veranlaßt den Zähler, sich kurz-zeitig zu erhöhen, dann jedoch aufgrund der im Programm direktfolgenden Operation Rücksetzen sofort wieder rückzusetzen. (Diekurzzeitige Erhöhung wird in Bild 7-5 durch eine Impulslinie imImpulsdiagramm angezeigt). Die Signalzustandsabfrage ergibt ”0”.
� Ein Wechsel des VKE von ”0” auf ”1” am Freigabeeingang beigegebener Anweisung zum Vorwärts- und Rückwärtszählenveranlaßt den Zähler, sich kurzzeitig zu erhöhen, sich dann jedochaufgrund der im Programm direkt folgenden OperationRückwärtszählen sofort wieder zu vermindern. (Die kurzzeitigeErhöhung wird in Bild 7-5 durch eine Impulslinie im Impuls-diagramm angezeigt) . Ein Wechsel von ”1” auf ”0” amFreigabeeingang hat keinen Einfluß auf den Zähler.
AWL Erläuterung
U E 2.0FR Z 1U E 2.1ZV Z 1U E 2.2ZR Z 1U E 2.3L C# 3S Z 1U E 2.4R Z 1U Z 1= A 4.0L Z 1T MW10LC Z 1T MW12
Aktiviere Zähler Z 1.
Vorwärtszählen (Erhöhung um 1).
Rückwärtszählen (Verminderung um 1).
Setze Zähler Z 1.
Setze Zähler Z 1 zurück.
Signalzustandsabfrage an Zähler Z 1.Lade Zähler Z 1 (binär-codiert)
Lade Zähler Z 1 (BCD-codiert).
Zähloperationen
7-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
7.7 Operanden und Bereiche für Zähloperationen
Die Tabelle 7-1 zeigt die Adressierungsarten, Operanden und Adreßbereichefür Zähloperationen.
Tabelle 7-1 Operanden, Bereiche und Adressierungsarten für Zähloperationen
Adreßbereich je nach Adressierungsart
direkt speicherindirekt
0 bis 65535
[DBW][DIW][LW][MW]
0 bis 65 534
Zähloperationen
8-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Lade- und Transferoperationen
Im Kapitel finden Sie auf Seite
8.1 Übersicht 8-2
8.2 Laden und Transferieren 8-3
8.3 Lesen oder Transferieren des Statusworts 8-6
8.4 Laden der Zeit- und Zählwerte als Ganzzahlen 8-7
8.5 Laden der Zeit- und Zählwerte im BCD-Format 8-9
8.6 Laden und Transferieren zwischen Adreßregistern 8-11
8.7 Laden der Informationen aus einem Datenbaustein 8-12
Kapitelübersicht
8
8-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
8.1 Übersicht
Die Lade- (L) und Transferoperationen (T) ermöglichen es Ihnen, denInformationsaustausch zwischen Ein- oder Ausgabebaugruppen undSpeicherbereichen oder zwischen Speicherbereichen zu programmieren. DieCPU führt diese Operationen in jedem Zyklus als unbedingte Operationenaus, d.h. sie werden vom Verknüpfungsergebnis einer Operation nichtbeeinflußt.
Die Lade- und Transferoperationen ermöglichen den Informationsaustauschzwischen den folgenden Peripherie- oder Speicherbereichen:
� Ein- und Ausgabebaugruppen und folgende Speicherbereiche:
– Prozeßabbilder der Eingänge und Ausgänge
– Merker
– Zeiten und Zähler
– Datenbereiche
� Prozeßabbilder der Eingänge und Ausgänge und folgende Speicher-bereiche:
– Merker
– Zeiten und Zähler
– Datenbereiche
� Zeiten und Zähler und folgende Speicherbereiche:
– Prozeßabbilder der Eingänge und Ausgänge
– Merker
– Datenbereiche
Die Lade- und Transferoperationen tauschen die Informationen über denAkkumulator aus. Die Ladeoperation L schreibt (lädt) den Inhalt derangesprochenen Quelladresse in AKKU 1, wobei sie alle dort enthaltenenInformationen in AKKU 2 schiebt. Der alte Inhalt von AKKU 2 wirdüberschrieben. Die Transferoperation T kopiert den Inhalt von AKKU 1 undschreibt ihn in den Speicher des angesprochenen Ziels. Da dieTransferoperation T die Informationen, die im AKKU 1 enthalten sind, nurkopiert, ist diese auch noch für andere Operationen verfügbar.
Die Lade- und Transferoperationen können Informationen in Bytes (8 Bits),Wörtern (16 Bits) und Doppelwörtern (32 Bits) bearbeiten.
Der Akkumulator ist 32 Bit breit. Daten, die weniger als 32 Bits umfassen,werden im Akkumulator rechtsbündig angeordnet. Die übrigen Bits desAkkumulators werden mit Nullen aufgefüllt.
31 16 15 0LADENQuelle
TRANSFERIEREN Ziel
AKKU 1
Definition
Informations-austausch
Austauschvorgang
Lade- und Transferoperationen
8-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
8.2 Laden und Transferieren
Sie können mit den Lade- oder Transferoperation Informationen von oder inAKKU 1 transferieren. Die Informationen können dabei die folgendenGrößen haben:� Byte (B, 8 Bits)� Wort (W, 16 Bits)� Doppelwort (D, 32 Bits)
Ein Byte wird in das niederwertige Byte des niederwertigen Wortes vonAKKU 1 geladen. Ein Wort wird in das niederwertige Wort von AKKU 1geladen. Nicht genutzte Bytes werden beim Laden im AKKU auf Null zu-rückgesetzt.
Die Ladeoperation kann auf Konstanten von 8, 16 und 32 Bits wie auchASCII-Zeichen zugreifen. Diese Adressierungsart nennt man unmittelbareAdressierung (siehe Kapitel 3.1 und Tabelle 8-1).
Tabelle 8-1 Operanden der Ladeoperationen: unmittelbare Adressierung
Operand Beispiel Erläuterung
±.. L +5 Lade eine Konstante (Ganzzahl, 16 Bit) in AKKU 1.
B#(..,..) L B#(1,10)
L B#(1,10,5,4)
Lade eine Konstante als 2 Bytes in AKKU 1.(In diesem Beispiel liegt 10 im niederwertigen Byte des niederwertigen Worts vonAKKU 1; die 1 liegt im höherwertigen Byte des niederwertigen Worts von AKKU1, siehe Bild 2-4.)Lade eine Konstante als 4 Bytes in AKKU 1.(In diesem Beispiel liegen 4 und 5 jeweils im niederwertigen und höherwertigenByte des niederwertigen Worts von AKKU 1; 10 und 1 liegen jeweils im nieder-und höherwertigen Byte des höherwertigen Worts von AKKU 1, siehe Bild 2-4.)
L# L L#+5 Lade eine 32-Bit-Ganzzahl-Konstante in AKKU 1.
16#.. L B#16#EFL W#16#FAFBL DW#16#1FFE_1ABC
Lade Hexadezimalkonstante (8 Bit) in AKKU 1.Lade Hexadezimalkonstante (16 Bit) in AKKU 1.Lade Hexadezimalkonstante (32 Bit) in AKKU 1.
2#.. L 2#1111_0000_1111_0000L 2#1111_0000_1111_0000 _1111_0000_1111_0000
Lade Binärkonstante (16 Bit) in AKKU 1.Lade Binärkonstante (32 Bit) in AKKU 1.
’..’ L ’AB’L ’ABCD’
Lade 2 Zeichen in AKKU 1.Lade 4 Zeichen in AKKU 1.
C#.. L C#1000 Lade Zählerkonstante (16 Bit) in AKKU 1.
S5TIME#.. L S5TIME#2S ��� ��������������� ��� ��� �� ���� ��
.. L 1.0E+5 Lade Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1.
P#.. L P#E1.0L P##StartL P#ANNA
Lade einen Pointer (32 Bit) in AKKU 1.Lade einen Pointer (32 Bit) auf eine Lokalvariable (Start) in AKKU 1.Lade einen Pointer auf den angegebenen Parameter in AKKU 1. (Dieser Be-fehl lädt den relativen Adreßoffset des angegebenen Parameters. Um in mul-tiinstanzfähigen FBs den absoluten Offset im Instanz-Datenbaustein zu ermit-teln, muß zu diesem Wert noch der Inhalt des AR2-Registers addiert werden.
D# L D#1994-3-15 Lade ein Datum (16 Bit) in AKKU 1.
T# LT#0D_1H_1M_0S_0MS
Lade einen Zeitwert (32 Bit) in AKKU 1.
TOD# L TOD#1:10:3.3 Lade einen Uhrzeitwert (32 Bit) in AKKU 1.
Beschreibung
UnmittelbareAdressierung
Lade- und Transferoperationen
8-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Lade- und Transferoperationen können durch direkte oder indirekteAdressierung auf ein Byte (B), Wort (W) oder Doppelwort (D) in den folgendenSpeicherbereichen zugreifen (siehe auch Kapitel 3.2, 3.3, 3.5):
� Prozeßabbild der Eingänge und Ausgänge (Operandenkennzeichen EB,EW, ED, AB, AW, AD).
� Externe Eingänge und Ausgänge (Operandenkennzeichen PEB, PEW,PED, PAB, PAW, PAD). Externe Eingänge können nur als Operanden vonLadeoperationen, externe Ausgänge nur als Operanden von Transfer-operationen fungieren.
� Bitspeicher (Operandenkennzeichen MB, MW, MD).
� Datenbaustein (Operandenkennzeichen DBB, DBW, DBD, DIB, DIW,DID).
� Lokaldaten (temporäre Lokaldaten, Operandenkennzeichen LB, LW, LD)
Tabelle 8-2 listet die Operanden der Lade- und Transferoperationen auf, diedie direkte und indirekte Adressierung verwenden.
Tabelle 8-2 Operanden der Lade- und Transferoperationen: direkte und indirekteAdressierung
Operan- Maximaler Adreßbereich je nach Adressierungsartpdenkenn-zeichen
direkt speicherindirekt registerindirekt,bereichsintern
EBEWED
ABAWAD
0 bis 65 5350 bis 65 5340 bis 65 532
0 bis 65 5350 bis 65 5340 bis 65 532
[DBD][DID][LD][MD]
0 bis 65 532
[AR 1, P#byte.bit]
[AR 2, P#byte.bit]0 bis 8 191
PEBPEWPED(nur L)
PABPAWPAD(nur T)
0 bis 65 5350 bis 65 5340 bis 65 532
0 bis 65 5350 bis 65 5340 bis 65 532
[DBD][DID][LD][MD]
0 bis 65 532
[AR 1, P#byte.bit]
[AR 2, P#byte.bit]0 bis 8 191
MBMWMD
0 bis 655350 bis 655340 bis 65532
[DBD][DID][LD][MD]
0 bis 65 532
[AR 1, P#byte.bit]
[AR 2, P#byte.bit]0 bis 8 191
DBBDBWDBD
DIBDIWDID
LBLWLD
0 bis 65 5350 bis 65 5340 bis 65 532
0 bis 65 5350 bis 65 5340 bis 65 532
0 bis 65 5350 bis 65 5340 bis 65 532
[DBD][DID][LD][MD]
0 bis 65 532
[AR 1, P#byte.bit]
[AR 2, P#byte.bit]0 bis 8 191
Direkte undindirekteAdressierung
Lade- und Transferoperationen
8-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Lade- und Transferoperationen können auf ein Byte (B), Wort (W) oderDoppelwort (D) durch die registerindirekte, bereichsübergreifendeAdressierung zugreifen (siehe Kapitel 3.6).
Tabelle 8-3 Operanden der Lade- und Transferoperationen: registerindirekte,bereichsübergreifende Adressierung
Operandenkennzeichen1) Adreßbereich
B (Byte), W (Wort), D (Doppelwort)[AR 1, P#byte.bit][AR 2, P#byte.bit]
0 bis 8 191
1) Dieser Speicherbereich ist in den Bits 24 bis 31 des Adreßregisters AR 1 oder AR 2codiert (siehe Kapitel 3.6).
Die Lade- und Transferoperationen können als Operanden ebenfalls ein Byte,Wort oder Doppelwort verwenden, das als Parameter transferiert wird.
Tabelle 8-4 Operanden der Lade- und Transferoperationen: Byte, Wort oderDoppelwort als Parameter transferiert
Operand Adreßparameterformat
SymbolischerName
Byte, Wort oder Doppelwort als Parameter transferiert
Indirekte,bereichsüber-greifendeAdressierung
Byte, Wort oderDoppelwort alsParameter
Lade- und Transferoperationen
8-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
8.3 Lesen oder Transferieren des Statusworts
Mit der Ladeoperation L können Sie die Bits 0 bis 8 des Statusworts inAKKU 1 laden (siehe Bild 8-1). Die Bits 9 bis 31 des AKKU 1 werden auf”0” zurückgesetzt. Die Anweisung können Sie dem Beispiel entnehmen, dassich an Bild 8-1 anschließt.
Hinweis
Bei den CPUs der Familie S7-300 werden die Bits des Statusworts /ER, STAund OR nicht durch die Anweisung L STW geladen. Lediglich Bit 1, 4, 5, 6,7 und 8 werden an die entsprechenden Bitpositionen des niederwertigenWorts von AKKU 1 geladen.
28215... ...29 2427 26 25 2023 22 21
BIE OSA1 A0 OV /EROR STA VKE
Bild 8-1 Aufbau des Statusworts
AWL Erläuterung
L STW Lade Bit 0 bis Bit 8 des Statusworts in das niederwertige Wortvon AKKU 1.
Mit der Transferoperation T können Sie den Inhalt des AKKU 1 in dasStatuswort transferieren (siehe Bild 8-1). Die Anweisung können Sie demfolgenden Beispiel entnehmen.
AWL Erläuterung
T STW Transferiere den Inhalt von AKKU 1 in das Statuswort.
Laden desStatusworts
Transferieren desStatusworts
Lade- und Transferoperationen
8-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
8.4 Laden der Zeit- und Zählwerte als Ganzzahlen
Ein Zeitwert ist in einem Timerwort binär-codiert gespeichert. Mit derfolgenden Ladeoperation L können Sie den dualen Zeitwert aus einemTimerwort auslesen und im gleichen Format in das niederwertige Wort vonAKKU 1 laden:
L <Timerwort>
Diese Art des Ladens bezeichnet man als direktes Laden eines Zeitwerts.
Der Zeitwert im Timerwort wird bei der Bearbeitung des Anwenderpro-gramms in der CPU von seinem Startwert aus bis auf ”0” vermindert. WennSie die Ladeoperation L mit einem Timerwort als Operanden verwenden,erhalten Sie einen Wert zwischen der Startzeit des Timerworts und ”0”. DieZeit, die vom Zeitpunkt des Starts an abläuft, errechnet sich aus der Differenzzwischen der Startzeit und der aktuell abgelesenen Zeit.
AWL Erläuterung
L T1 Lade den binär-codierten Zeitwert der Zeit T1 direkt in AKKU1-L.
0 0 0 0 0 0
9 0
X X X X X X
AKKU1-L
1015
15 10 0
Timerwort
Zeit
Bild 8-2 Laden eines Zeitwerts in AKKU 1 mit der Operation L
Sie können den Wert, der im Akkumulator als Ergebnis der Ladeoperationenthalten ist, zur weiteren Verarbeitung verwenden. Sie können jedoch kei-nen Wert aus dem Akkumulator in das Timerwort transferieren.
Hinweis
Wenn Sie mit der Ladeoperation L ein Timerwort auslesen, erhalten Sie ei-nen Wert zwischen 0 und 999. Sie erhalten jedoch nicht die Zeitbasis, diemit dem Zeitwert geladen wurde.
Laden einesZeitwerts
Lade- und Transferoperationen
8-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Ein Zählwert ist im Zählerwort binär-codiert gespeichert. Mit der folgendenLadeoperation L können Sie den binär-codierten Zählwert aus einemZählerwort auslesen und im gleichen Format in das niederwertige Wort vonAKKU 1 laden:
L <Zählerwort>
Diese Art des Ladens bezeichnet man als direktes Laden eines Zählwerts.
AWL Erläuterung
L Z1 Lade den binär-codierten Zählwert des Zählers Z1 direkt in AK-KU1-L.
0 0 0 0 0 0
9 0
X X X X X X
Zählwert
Zählerwort fürZ 1
AKKU1-L
1015
15 10 0
Bild 8-3 Laden eines Zählwerts in AKKU 1 mit der Operation L
Sie können den Wert, der im Akkumulator als Ergebnis der Ladeoperation Lenthalten ist, zur weiteren Verarbeitung verwenden. Sie können jedoch kei-nen Wert aus dem Akkumulator in das Zählerwort transferieren. Wenn Sieeinen Zähler mit einem bestimmten Zählwert starten wollen, benötigen Siedazu die entsprechende Operation zum Setzen des Zählers (siehe Kapi-tel 7.2).
Laden einesZählwerts
Lade- und Transferoperationen
8-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
8.5 Laden der Zeit- und Zählwerte im BCD-Format
Ein Zeitwert ist in einem Timerwort binär-codiert gespeichert. Mit derfolgenden Ladeoperation können Sie den Zeitwert BCD-codiert aus einemTimerwort auslesen und in das niederwertige Wort von AKKU 1 laden:
LC <Timerwort>
Zusätzlich zum Zeitwert wird die Zeitbasis geladen. Der Wert, der als Ergeb-nis der Operation LC im niederwertigen Wort von AKKU 1 enthalten ist,besitzt genau das Format, das zum Starten einer Zeit benötigt wird. Diese Artdes Ladens bezeichnet man als direktes Laden eines Zeitwerts im BCD-For-mat.
Der Zeitwert im Timerwort wird von seinem Startwert aus bis auf ”0” ver-mindert. Wenn Sie die Operation LC mit einem Timerwort als Operandenverwenden, erhalten Sie einen Wert zwischen der Startzeit des Timerwortsund ”0”. Die Zeit, die vom Zeitpunkt des Starts an abläuft, errechnet sich ausder Differenz zwischen Startzeit und der aktuell abgelesenen Zeit.
AWL Erläuterung
LC T1 Lade Zeit und Zeitbasis von T1 im BCD-Format in AKKU1-L.
Timerwort
AKKU1-L
15 10 9 0Zeit
BCD-codiert
13 1214
15 013 1214 11
102 101 100Zeit-basis (Hunderter) (Zehner) (Einer)
11
0 0
Zeitbasis
Bild 8-4 Laden eines Zeitwerts in AKKU 1 mit der Operation LC
Der Wert, der im Akkumulator als Ergebnis der Operation LC enthalten ist,kann zur weiteren Verarbeitung verwendet werden, so z. B. zum Transferie-ren des Werts zu den Ausgängen, um ein Display anzusteuern. Sie könnenjedoch keinen Wert aus dem Akkumulator in das Timerwort transferieren.
Laden einesZeitwerts im BCD-Format
Lade- und Transferoperationen
8-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Ein Zählwert ist im Zählerwort binär-codiert gespeichert. Mit der folgendenLadeoperation können Sie den Zählwert BCD-codiert aus einem Zählerwortauslesen und in das niederwertige Wort von AKKU 1 laden:
LC <Zählerwort>
Diese Art des Ladens bezeichnet man als direktes Laden eines Zählwerts imBCD-Format. Der Wert, der als Ergebnis der Operation LC im nieder-wertigen Wort von AKKU 1 enthalten ist, hat genau das Format, das für dasSetzen des Zählers benötigt wird.
Ein Zählwert ist im Zählerwort binär-codiert gespeichert. Sie können denZählwert BCD-codiert in das niederwertige Wort von AKKU 1 laden (BCD-Format, siehe Bild 8-5). Mit der Operation LC können Sie einen Zähl-wert im BCD-Format auslesen.
AWL Erläuterung
LC Z1 Lade den Zählwert von Zähler Z1 im BCD-Format direkt inAKKU1-L.
Zählwert
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Zählwert im BCD-Format
15
102 101 100
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BCD-codiert
0 0 0 0
(Hunderter) (Zehner) (Einer)
Zählerwort für Z1
AKKU1-L
X X X X X X
Bild 8-5 Laden eines Zählwerts in AKKU 1 mit der Operation LC
Der Wert, der als Ergebnis der Operation LC im Akkumulator enthalten ist,kann für eine weitere Verarbeitung verwendet werden, so z. B. zumTransferieren des Werts zu den Ausgängen, um ein Display anzusteuern. Siekönnen jedoch keinen Wert aus dem Akkumulator in das Zählerworttransferieren.
Laden einesZählwerts im BCD-Format
Lade- und Transferoperationen
8-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
8.6 Laden und Transferieren zwischen Adreßregistern
Mit den folgenden Operationen ermöglicht Ihr Programm der CPU einenInformationsaustausch zwischen Adreßregistern oder den Austausch zweierRegisterinhalte:
Operation Bedeutung
LAR1 Lädt den Inhalt des adressierten Bereichs in das Adreßregister 1. Istkein Operand angegeben, dann lädt LAR1 den Inhalt von AKKU 1 indas Adreßregister 1. LAR1 kann ebenso AR 2 als Operanden verwen-den, d. h., LAR1 kann den Inhalt von AR 2 in AR 1 laden.
LAR2 Lädt den Inhalt des adressierten Bereiches in das Adreßregister 2. Istkein Operand angegeben, dann lädt LAR2 den Inhalt von AKKU 1 indas Adreßregister 2.
TAR1 Transferiert den Inhalt des Adreßregisters 1 an das Ziel, auf das dieOperation zugreift. Ist kein Operand angegeben, dann transferiertTAR1 den Inhalt des Adreßregisters 1 in AKKU 1. TAR1 kann zudemAR 2 als Operanden verwenden, d. h., TAR1 kann den Inhalt vonAR 1 in AR 2 transferieren.
TAR2 Transferiert den Inhalt des Adreßregisters 2 an das Ziel, auf das dieOperation zugreift. Ist kein Operand angegeben, dann transferiertTAR2 den Inhalt des Adreßregisters 2 in AKKU 1.
TAR Tauscht den Inhalt von AR 1 mit dem von AR 2.
Die Operationen LAR1 und LAR2 können auf 32-Bit-Konstanten zugreifen.Diese Adressierungsart nennt man unmittelbare Adressierung (siehe Kapitel3.1). Die unmittelbare Adresse wird verwendet, um einen 32-Bit-Pointerunmittelbar in das Adreßregister zu laden (siehe Tabelle 8-5).
LAR1 P#{Bereich}, Byte{.Bit}
mit {Bereich} = {E, A, M, D, DX, L}Byte = 0 bis 65 535{.Bit} = 0 bis 7
Tabelle 8-5 LAR1 und LAR2: unmittelbare Adressierung
Beispiel Beschreibung
LAR1 P#E 0.0 Lädt den bereichsübergreifenden PointerP#E 0.0 in Adreßregister 1.
LAR2 P#0.0 Lädt den bereichsinternen Pointer mit derAdresse 0 in Adreßregister 2.
LAR1 P##Start Lädt den bereichsübergreifenden Pointerauf die Lokalvariable (Start) inAdreßregister 1.
Beschreibung
UnmittelbareAdressierung
Lade- und Transferoperationen
8-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Mit den Operationen LAR1, LAR2, TAR1 und TAR2 können Sie direktadressieren.
Tabelle 8-6 LAR1, LAR2, TAR1, TAR2: direkte Adressierung
Operation Direkt Operandenkennzeichen undBereich
LAR1 {LEER} 1) oder AR 2 DBDDID
bi 65 5LAR2 {LEER} 1) LDMD
0 bis 65 532
TAR1 {LEER} 2) oder AR 2 DBDDID
bi 65 5TAR2 {LEER} 2) LDMD
0 bis 65 532
1) {LEER} Ist kein Operand angegeben, so lädt LAR1/LAR2 den Inhalt von AKKU 1 indas Adreßregister.
2) {LEER} Ist kein Operand angegeben, so transferiert TAR1/TAR2 den Inhalt desAdreßregisters in AKKU 1.
8.7 Laden der Informationen aus einem Datenbaustein
Sie können mit einer Ladeoperation die Länge oder Nummer eines Daten-bausteins in AKKU 1 laden. Tabelle 8-7 faßt die Operanden für diese Art desLadens zusammen. Nähere Informationen zum Laden der Länge oder derNummer eines Datenbausteins in AKKU 1 finden Sie in Kapitel 15.3.
Tabelle 8-7 Laden der Länge oder Nummer eines Datenbausteins in AKKU 1
Operand Erläuterung
DBLG Lädt die Länge (in Bytes) eines globalen Datenbausteins in AKKU 1.
DILG Lädt die Länge (in Bytes) eines Instanz-Datenbausteins in AKKU 1.
DBNO Lädt die Nummer eines globalen Datenbausteins in AKKU 1.
DINO Lädt die Nummer eines Instanz-Datenbausteins in AKKU 1.
DirekteAdressierung
Lade- und Transferoperationen
9-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Festpunktarithmetik
Im Kapitel finden Sie auf Seite
9.1 Grundrechenoperationen 9-2
9.2 Addieren einer Ganzzahl zu AKKU 1 9-6
Kapitelübersicht
9
9-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
9.1 Grundrechenoperationen
Tabelle 9-1 listet die AWL-Operationen auf, mit denen Sie Ganzzahlen(16 Bit und 32 Bit) addieren, subtrahieren, multiplizieren oder dividierenkönnen.
Tabelle 9-1 Grundrechenoperationen für Ganzzahlen (16 Bit und 32 Bit)
Operation Größe inBit
Funktion
+I 16 Addiert den Inhalt des niederwertigen Worts der AKKUs 1und 2 und speichert das Ergebnis im niederwertigen Wortvon AKKU 1.
-I 16 Subtrahiert den Inhalt des niederwertigen Worts vonAKKU 1 vom Inhalt des niederwertigen Worts von AKKU2 und speichert das Ergebnis im niederwertigen Wort vonAKKU 1.
�I 16 Multipliziert den Inhalt der niederwertigen Wörter derAKKUs 1 und 2 und speichert das Ergebnis (32 Bit) inAKKU 1.
/I 16 Dividiert den Inhalt des niederwertigen Worts von AKKU 2durch den Inhalt des niederwertigen Worts von AKKU 1.Das Ergebnis wird im niederwertigen Wort von AKKU 1gespeichert. Der Divisionsrest wird im höherwertigen Wortvon AKKU 1 gespeichert.
+D 32 Addiert den Inhalt der AKKUs 1 und 2 und speichert dasErgebnis in AKKU 1.
-D 32 Subtrahiert den Inhalt von AKKU 1 vom Inhalt von AKKU 2 und speichert das Ergebnis in AKKU 1.
�D 32 Multipliziert AKKU 1 mit dem Inhalt von AKKU 2 undspeichert das Ergebnis in AKKU 1.
/D 32 Dividiert den Inhalt von AKKU 2 durch den Inhalt vonAKKU 1 und speichert den Quotienten in AKKU 1.
MOD 32 Dividiert den Inhalt von AKKU 2 durch den Inhalt vonAKKU 1 und speichert den Divisionsrest als Ergebnis inAKKU 1.
Die Funktionsbeschreibungen in Tabelle 9-1 zeigen, daß die arithmetischenOperationen den Inhalt der AKKUs 1 und 2 miteinander verknüpfen. DasErgebnis wird in AKKU 1 abgelegt. Der Inhalt von AKKU 2 bleibt unverän-dert.
Bei CPUs mit 4 AKKUs werden anschließend die Inhalte von AKKU 3 inAKKU 2 und von AKKU 4 in AKKU 3 kopiert. Der alte Inhalt von AKKU 4bleibt unverändert.
Beschreibung
BeziehungzwischenarithmetischenOperationen undAkkumulatoren
Festpunktarithmetik
9-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Operation Addiere AKKU 1 und 2 als Ganzzahl (16 Bit) (+I) weist dieCPU an, den Inhalt des niederwertigen Worts von AKKU 1 und desniederwertigen Worts von AKKU 2 zu addieren und das Ergebnis imniederwertigen Wort von AKKU 1 zu speichern. Diese Operationüberschreibt den alten Inhalt des niederwertigen Worts von AKKU 1. Deralte Inhalt von AKKU 2 und das höherwertige Wort von AKKU 1 bleibenunverändert (siehe Bild 9-1). Ein Programmbeispiel schließt sich an Bild 9-2an.
AKKU 2
AKKU 1
AKKU 2
AKKU 1
31 016 15
31 016 15
IV III
II I
IV III
+ I
II III + I
Akkumulator-Inhalt vorarithmetischer Operation
Akkumulator-Inhalt nacharithmetischer Operation
Bild 9-1 Addieren zweier Ganzzahlen
Die Operation Addiere AKKU 1 und 2 als Ganzzahl (16 Bit) (+I) weist dieCPU an, den Inhalt des niederwertigen Worts von AKKU 1 und des nieder-wertigen Worts von AKKU 2 zu addieren und das Ergebnis im nieder-wertigen Wort von AKKU 1 zu speichern. Diese Operation überschreibt denalten Inhalt des niederwertigen Worts von AKKU 1. Anschließend werdendie Inhalte von AKKU 3 in AKKU 2 und von AKKU 4 in AKKU 3 kopiert.AKKU 4 und das höherwertige Wort von AKKU 1 bleiben unverändert (sieheBild 9-2).
AKKU 2
AKKU 1
AKKU 2
AKKU 1
31 016 15
31 016 15
IV III
II I
VI V
+ I
II III + I
Akkumulator-Inhalt vorarithmetischer Operation
Akkumulator-Inhalt nacharithmetischer Operation
AKKU 3 AKKU 331 016 15
VI V VIII VII
AKKU 4 AKKU 431 016 15
VIII VII VIII VII
Bild 9-2 Addieren zweier Ganzzahlen bei CPUs mit 4 AKKUs
Verknüpfen zweierGanzzahlen(16 Bit) bei CPUsmit 2 AKKUs
Verknüpfen zweierGanzzahlen(16 Bit) bei CPUsmit 4 AKKUs
Festpunktarithmetik
9-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
AWL Erläuterung
L MW10L DBW12
+I
T DBW14
Lade den Wert aus Merkerwort MW10 in AKKU 1.Lade den Wert aus Datenwort DBW12 in AKKU 1.Der alte Inhalt von AKKU 1 wird in AKKU 2 geschoben.Die CPU wertet den Inhalt der niederwertigen Wörter der AKKUs 1und 2 als Ganzzahlen (16 Bit) aus, addiert sie und speichertdas Ergebnis im niederwertigen Wort von AKKU 1. Transferiere den Inhalt des niederwertigen Worts von AKKU 1 (das Ergebnis) in das Datenwort DBW14.
Die arithmetischen Operationen beeinflussen die folgenden Bits des Status-worts:
� A1 und A0
� OV
� OS
Ein Strich (-) bei einem der in der Tabelle aufgeführten Bits bedeutet, daßdieses Bit nicht vom Ergebnis der arithmetischen Operation beeinflußt wird.Mit den Operationen aus Tabelle 9-5 können Sie diese Bits des Statuswortsauswerten.
Tabelle 9-2 Signalzustand der Bits im Statuswort: Rechenergebnis innerhalb desgültigen Bereichs
Gültiger Bereich für das Ergebnis bei Bits des Statuswortsg gGanzzahlen (16 und 32 Bit) A1 A0 OV OS
0 (Null) 0 0 0 -
16 Bit: -32 768 � Ergebnis � 0 (negative Zahl)32 Bit: -2 147 483 648 � Ergebnis � 0 (negativeZahl)
0 1 0 -
16 Bit: 32 767 � Ergebnis �0 (positive Zahl)32 Bit: 2 147 483 647 � Ergebnis �0 (positiveZahl)
1 0 0 -
Tabelle 9-3 Signalzustand der Bits im Statuswort: Rechenergebnis außerhalb desgültigen Bereichs
Ungültiger Bereich für das Ergebnis bei Bits des Statuswortsg g gGanzzahlen (16 und 32 Bit) A1 A0 OV OS
16 Bit: Ergebnis � 32 767 (positive Zahl)32 Bit: Ergebnis � 2 147 483 647 (positive Zahl)
1 0 1 1
16 Bit: Ergebnis � -32 768 (negative Zahl)32 Bit: Ergebnis � -2 147 483 648 (negative Zahl)
0 1 1 1
Auswerten der Bitsim Statuswort
Ergebnis gültig
Ergebnisungültig
Festpunktarithmetik
9-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 9-4 Signalzustand der Bits im Statuswort: arithmetische Operationen mitGanzzahlen (32 Bit) +D, /D und MOD
OperationBits des Statusworts
Operat onA1 A0 OV OS
+D: Ergebnis = -4 294 967 296 0 0 1 1
/D oder MOD: Division durch 0 1 1 1 1
Tabelle 9-5 Operationen, die die Bits A1, A0, OV und OS auswerten
Operation Verweis auf Bit imStatuswort oderSprungmarke
Bits im Statuswort,die ausgewertet wer-den (mit X markiert)
Kapitel indiesem
Handbuch
U,O,X,UN,ON,XN >0, <0, <>0, >=0, <=0,==0, UO, OV, OS
A1, A0, OV, OS 5.3
SPO <Sprungmarke> OV 16.4
SPS <Sprungmarke> OS 16.4
SPU <Sprungmarke> A1 und A0 16.5
SPZ <Sprungmarke> A1 und A0 16.5
SPN <Sprungmarke> A1 und A0 16.5
SPP <Sprungmarke> A1 und A0 16.5
SPM <Sprungmarke> A1 und A0 16.5
SPMZ <Sprungmarke> A1 und A0 16.5
SPPZ <Sprungmarke> A1 und A0 16.5
Festpunktarithmetik
9-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
9.2 Addieren einer Ganzzahl zu AKKU 1
Mit der Operation Addiere Ganzzahl-Konstante können Sie eineGanzzahl-Konstante zum Inhalt des niederwertigen Worts von AKKU 1addieren. Tabelle 9-6 listet die Möglichkeiten auf. Diese Operationenbeeinflussen die Bits im Statuswort nicht.
Tabelle 9-6 Addieren einer Ganzzahl zu AKKU 1
Operation Operand Funktion
+ + Ganzzahl (16 Bit) Addiert eine 16-Bit-Ganzzahl-Konstante zum Inhalt desniederwertigen Worts von AKKU 1. Das Ergebnis wird inAKKU 1 gespeichert. Der alte Inhalt des niederwertigen Wortsvon AKKU 1 wird überschrieben. AKKU 2 und dashöherwertige Wort von AKKU 1 bleiben unverändert.
+ + L# Ganzzahl (32 Bit) Addiert eine 32-Bit-Ganzzahl-Konstante zum Inhalt vonAKKU 1. Das Ergebnis wird in AKKU 1 gespeichert. Der alteInhalt dieses Akkumulators wird überschrieben. AKKU 2bleibt unverändert.
Nachfolgend sind zwei Programme abgebildet, die die Operation AddiereGanzzahl-Konstante enthalten.
AWL Erläuterung
L MW10L MW20+I+ -5T MW14
Lade den Wert aus MW10 in AKKU 1.Lade den Wert aus MW20 in AKKU 1.Addiere die 16-Bit-Werte in AKKU 1 und 2.Addiere minus 5 zum Ergebnis der Operation +I.Transferiere das neue Ergebnis in MW14.
AWL Erläuterung
L MD10L MD16+D+ L#-1T MD24
Lade den Wert aus MD10 in AKKU 1.Lade den Wert aus MD16 in AKKU 1.Addiere die 32-Bit-Werte in AKKU 1 und 2.Addiere minus 1 zum Ergebnis der Operation +D.Transferiere das neue Ergebnis in MD24.
Addieren vonGanzzahl-Konstanten (8 Bit,16 Bit und 32 Bit)
Beispiele
Festpunktarithmetik
10-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Gleitpunktarithmetik
Im Kapitel finden Sie auf Seite
10.1 Grundrechenoperationen 10-2
10.2 Bilden des Betrags einer Gleitpunktzahl 10-6
10.3 Erweiterte Rechenoperationen 10-7
10.4 Bilden des Quadrats bzw. der Quadratwurzel einer Gleit-punktzahl
10-9
10.5 Bilden des natürlichen Logarithmus einer Gleitpunktzahl 10-11
10.6 Bilden des Exponentialwerts einer Gleitpunktzahl 10-12
10.7 Bilden von trigonometrischen Funktionen von Winkeln alsGleitpunktzahlen
10-13
Kapitelübersicht
10
10-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
10.1 Grundrechenoperationen
Tabelle 10-1 listet die AWL-Operationen auf, mit denen Sie Gleitpunktzahlen(32 Bit, IEEE-FP) addieren, subtrahieren, multiplizieren und dividierenkönnen. Da die Gleitpunktzahlen (32 Bit, IEEE-FP) zum Datentyp REAL(Gleitpunktzahl) gehören, lautet die mnemotechnische Abkürzung für dieseOperationen ”R”
Tabelle 10-1 Arithmetische Operationen: Grundrechenoperationen für Gleitpunkt-zahlen (32-Bit, IEEE-FP)
Operation Funktion
+R Addiert die Gleitpunktzahlen (32 Bit, IEEE-FP) in den AKKUs 1 und 2und speichert das 32-Bit-Ergebnis in AKKU 1.
-R Subtrahiert die Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1 von derGleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 und speichert das 32-Bit-Ergebnis in AKKU 1.
�R Multipliziert die Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1 mit derGleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 und speichert das 32-Bit-Ergebnis in AKKU 1.
/R Dividiert die Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 durch dieGleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1. Das 32-Bit-Ergebniswird in AKKU 1 gespeichert.
Die Funktionsbeschreibungen in Tabelle 10-1 zeigen, daß die arithmetischenOperationen den Inhalt der AKKUs 1 und 2 miteinander verknüpfen. DasErgebnis wird in AKKU 1 abgelegt. Der Inhalt von AKKU 2 bleibtunverändert.
Bei CPUs mit 4 AKKUs werden anschließend die Inhalte von AKKU 3 inAKKU 2 und von AKKU 4 in AKKU 3 kopiert. Der alte Inhalt von AKKU 4bleibt unverändert.
Beschreibung
BeziehungzwischenarithmetischenOperationen undAkkumulatoren
Gleitpunktarithmetik
10-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Operation Addiere AKKU 1 und AKKU 2 als Gleitpunktzahl (32 Bit,IEEE-FP) (+R) weist die CPU an, den Inhalt der AKKUs 1 und 2 zu addierenund das Ergebnis in AKKU 1 zu speichern. Diese Operation überschreibt denalten Inhalt von AKKU 1. Der alte Inhalt von AKKU 2 bleibt unverändert(siehe Bild 10-1). Ein Programmbeispiel schließt sich an Bild 10-2 an.
AKKU 2
AKKU 1
AKKU 2
AKKU 1
31 016 15
31 016 15
II
I
II
+ R
II + I
Akkumulator-Inhalt vorarithmetischer Operation
Akkumulator-Inhalt nacharithmetischer Operation
Bild 10-1 Addieren zweier Gleitpunktzahlen (IEEE-FP)
Das gleiche Schema gilt für die restlichen Operationen der Gleitpunkt-arithmetik.
Tabelle 10-2 Ergebnis der Operationen für denormalisierte Zahlen beiCPUs mit 2 AKKUs
Operation Eingangswerte ErgebnisAKKU 1 AKKU 2 AKKU 1 AKKU 2
+R a b a b
–R a b –a b
*R a b 0 b
+R a b FFFF b
Darstellung derErgebnisse beimVerknüpfen zweierGleitpunktzahlenbei CPUs mit2 AKKUs
Gleitpunktarithmetik
10-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Operation Addiere AKKU 1 und AKKU 2 als Gleitpunktzahl (32 Bit,IEEE-FP) (+R) weist die CPU an, den Inhalt der AKKUs 1 und 2 zu addierenund das Ergebnis in AKKU 1 zu speichern. Diese Operation überschreibt denalten Inhalt von AKKU 1. Anschließend werden die Inhalte von AKKU 3 inAKKU 2 und von AKKU 4 in AKKU 3 kopiert (siehe Bild 10-2).
AKKU 4
AKKU 3
AKKU 4
AKKU 3
31 016 15
31 016 15
IV
III
IV
IV
Akkumulator-Inhalt vorarithmetischer Operation
Akkumulator-Inhalt nacharithmetischer Operation
AKKU 2
AKKU 1
AKKU 2
AKKU 1
31 016 15
31 016 15
II
I
II
+ R
II + I
Bild 10-2 Addieren zweier Gleitpunktzahlen (IEEE-FP) bei CPUs mit 4 AKKUs
Das gleiche Schema gilt für die restlichen Operationen der Gleitpunkt-arithmetik.
AWL Erläuterung
L MD100L DBD4
+R
T DBD16
Lade den Wert aus Merkerdoppelwort MD100 in AKKU 1.Lade den Wert aus Datendoppelwort DBD4 in AKKU 1. Der alte In-halt von AKKU 1 wird in AKKU 2 geschoben. (Die Werte in diesenDoppelwörtern müssen Gleitpunktformat haben.) Die CPU wertet den Inhalt der AKKUs 1 und 2 als Gleitpunktzah-len (32 Bit, IEEE-FP) aus, addiert sie und speichert das Ergeb-nis in AKKU 1.Transferiere den Inhalt von AKKU 1 (das Ergebnis) in das Daten-doppelwort DBD16 (<DBD16> = <MD100> + <DBD4>).
Die arithmetischen Operationen beeinflussen folgende Bits des Statusworts:
� A1 und A0
� OV
� OS
Mit den Operationen aus Tabelle 10-5 können Sie diese Bits des Statuswortsauswerten. Tabelle 10-3 zeigt den Signalzustand der Bits des Statusworts fürdie Ergebnisse der Gleitpunktarithmetik innerhalb des gültigen Bereichs. EinStrich (-) bei einem der in der Tabelle aufgeführten Bits bedeutet, daß dasbetreffende Bit nicht vom Ergebnis der arithmetischen Operation beeinflußtwird.
Darstellung der Er-gebnisse beim Ver-knüpfen zweierGleitpunktzahlenbei CPUs mit4 AKKUs
Beispiel
Auswerten der Bitsim Statuswort
Gleitpunktarithmetik
10-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 10-3 Signalzustand der Bits im Statuswort: Rechenergebnis mit Gleitpunkt-zahlen innerhalb des gültigen Bereichs
Gültiger Bereich für Ergebnis mit Gleitpunkt- Bits des Statuswortsg g p zahlen (32 Bit) A1 A0 OV OS
+0, -0 (Null) 0 0 0 -
-3,402823E+38 < Ergebnis < -1,175494E-38 (negative Zahl)
0 1 0 -
+1,175494E-38 < Ergebnis < 3,402823E+38 (positive Zahl)
1 0 0 -
Tabelle 10-4 Signalzustand der Bits im Statuswort: Rechenergebnis mit Gleitpunkt-zahlen außerhalb des gültigen Bereichs
Ungültiger Bereich für Ergebnis mit Gleit- Bits des Statuswortsg g gpunktzahlen (32 Bit) A1 A0 OV OS
-1,175494E-38 < Ergebnis < - 1,401298E-45 (negative Zahl) Unterschreitung
0 0 1 1
+1,401298E-45 < Ergebnis < +1,175494E-38 (positive Zahl) Unterschreitung
0 0 1 1
Ergebnis < -3,402823E+38 (negative Zahl) Überlauf
0 1 1 1
Ergebnis > 3,402823E+38 (positive Zahl) Überlauf
1 0 1 1
Tabelle 10-5 Operationen, die die Bits A1, A0, OV und OS des Statuswortsauswerten
Operation Verweis auf Bit desStatusworts oder
Sprungmarke
Bits im Statuswort,die ausgewertet wer-den (markiert durch
X)
Kapitel indiesem
Handbuch
U,O,X,UN,ON,XN >0, <0, <>0, >=0, <=0,==0, UO, OV, OS
A1, A0, OV, OS 5.3
SPO <Sprungmarke> OV 16.4
SPS <Sprungmarke> OS 16.4
SPU <Sprungmarke> A1 und A0 16.4
SPZ <Sprungmarke> A1 und A0 16.5
SPN <Sprungmarke> A1 und A0 16.5
SPP <Sprungmarke> A1 und A0 16.5
SPM <Sprungmarke> A1 und A0 16.5
SPMZ <Sprungmarke> A1 und A0 16.5
SPPZ <Sprungmarke> A1 und A0 16.5
Gleitpunktarithmetik
10-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
10.2 Bilden des Betrags einer Gleitpunktzahl
Mit der Operation ABS (Bilde Absolutwert einer Gleitpunktzahl (32 Bit,IEEE-FP)) können Sie den Betrag einer Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 bilden. Der Betrag ist eine nicht-negative Zahl, deren Zahlenwertgleich einer gegebenen Gleitpunktzahl ist. Bei einem Betrag ist dasVorzeichen (+ oder -) irrelevant; so ist beispielsweise 5 der Betrag von +5oder -5.
Das folgende Programm gibt ein Beispiel für die Operation ABS:
AWL Erläuterung
L DBD0L +12.3E+00
/R
T MD20
NEGR
T MD24
ABS
T MD28
Lade den Wert aus Datendoppelwort DBD0 in AKKU 1.Lade den Wert +12.3E+00 in AKKU 1. Der alte Inhalt von AKKU 1 wird in AKKU 2 geschoben.Die CPU dividiert den Inhalt von AKKU 2 durch den Inhalt vonAKKU 1 und speichert das Ergebnis in AKKU 1.Transferiere den Inhalt von AKKU 1 (das Ergebnis) in das Mer-kerdoppelwort MD20 (<MD20> = <DBD0> / 12.3).Negiere die IEEE-Gleitpunktzahl in AKKU 1 (siehe Kapitel 12.4).
Transferiere das Ergebnis von AKKU 1 in das MerkerdoppelwortMD24 (<MD24> = [-1] * <MD20>).Die CPU bildet den Betrag der IEEE-Gleitpunktzahl in AKKU 1.
Transferiere den Betrag von AKKU 1 in das Merkerdoppelwort MD28(<MD28> = ABS[<MD20>]).
Beschreibung
Beispiel
Gleitpunktarithmetik
10-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
10.3 Erweiterte Rechenoperationen
Tabelle 10-6 listet die AWL-Operationen auf, mit denen Sie erweiterteRechenoperationen auf Gleitpunktzahlen (32 Bit, IEEE-FP) anwendenkönnen.
Tabelle 10-6 Erweiterte Rechenoperationen für Gleitpunktzahlen(32 Bit, IEEE-FP)
ÁÁÁÁÁÁÁÁÁÁ
Operation ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Funktion
ÁÁÁÁÁÁÁÁÁÁ
SQRT ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet die Quadratwurzel der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 und speichert das 32 Bit-Ergebnis in AKKU 1.ÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁ
SQRÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet das Quadrat der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 und speichert das 32 Bit-Ergebnis in AKKU 1.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
LN ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet den natürlichen Logarithmus der Gleitpunktzahl (32 Bit,IEEE-FP) in AKKU 1 und speichert das 32 Bit-Ergebnis in AKKU 1.
ÁÁÁÁÁÁÁÁÁÁ
EXP ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet den Exponentialwert der Gleitpunktzahl (32 Bit, IEEE-FP)zur Basis e und speichert das 32 Bit-Ergebnis in AKKU 1.ÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁ
SINÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet den Sinus der Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1und speichert das 32 Bit-Ergebnis in AKKU 1.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
COS ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet den Cosinus der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 und speichert das 32 Bit-Ergebnis in AKKU 1.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
TAN ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet den Tangens der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 und speichert das 32 Bit-Ergebnis in AKKU 1.
ÁÁÁÁÁÁÁÁÁÁ
ASIN ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet den Arcussinus der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 und speichert das 32 Bit-Ergebnis in AKKU 1.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
ACOSÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet den Arcuscosinus der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 und speichert das 32 Bit-Ergebnis in AKKU 1.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
ATAN ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechnet den Arcustangens der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 und speichert das 32 Bit-Ergebnis in AKKU 1.
Die erweiterten Rechenoperationen arbeiten nur mit dem AKKU 1. Der Wert,auf den die Operation angewendet wird, wird in AKKU 1 erwartet. DasErgebnis wird in AKKU 1 gespeichert; der bisherige Inhalt von AKKU 1wird überschrieben. Die Inhalte von AKKU 2, AKKU 3 und AKKU 4 bleibenunverändert.
Beschreibung
BeziehungzwischenerweitertenRechenoperationenund Akkumulatoren
Gleitpunktarithmetik
10-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die CPU führt die in Tabelle 10-1 aufgeführten mathematischen Operationenaus, ohne das Verknüpfungsergebnis zu berücksichtigen oder zu beeinflussen.Die erweiterten Rechenoperationen beeinflussen die folgenden Bits:
� ⋅A1 und A0
� OV
� OS
Tabelle 10-7 listet die AWL-Operationen auf, mit denen Sie diese Bits aus-werten können (siehe Kapitel 5.3 und ”Auswerten der Statusbits” in diesemKapitel).
Tabelle 10-7 Erweiterte Rechenoperationen für Gleitpunktzahlen(32 Bit, IEEE-FP)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Operation ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Verweis auf Bits imStatuswort oderSprungmarke
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Bits des Status-worts, die ausge-wertet werden
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Kapitel indiesem
HandbuchÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
U, O, X, UN, ON, XNÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
>0, <0, <>0, >=0, <=0,==0, UO, OV, OS
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
A1, A0, OV, OSÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
5.3
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPO ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
OV ÁÁÁÁÁÁÁÁÁÁ
16.4
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPS ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
OS ÁÁÁÁÁÁÁÁÁÁ
16.4
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPU ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
A1 und A0 ÁÁÁÁÁÁÁÁÁÁ
16.4
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPZ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
A1 und A0 ÁÁÁÁÁÁÁÁÁÁ
16.5
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPN ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
A1 und A0 ÁÁÁÁÁÁÁÁÁÁ
16.5
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPP ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
A1 und A0 ÁÁÁÁÁÁÁÁÁÁ
16.5ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPM ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
A1 und A0 ÁÁÁÁÁÁÁÁÁÁ
16.5ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPMZ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
A1 und A0 ÁÁÁÁÁÁÁÁÁÁ
16.5ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPPZ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
<Sprungmarke> ÁÁÁÁÁÁÁÁÁÁÁÁ
A1 und A0 ÁÁÁÁÁÁÁÁÁÁ
16.5
Auswirkung dererweitertenRechenopera-tionen auf die Bitsim Statuswort
Gleitpunktarithmetik
10-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
10.4 Bilden des Quadrats bzw. der Quadratwurzel einer Gleitpunktzahl
Die Operation SQR (Quadrat) berechnet das Quadrat der Gleitpunktzahl(32 Bit, IEEE-FP) in AKKU 1 und speichert das 32-Bit-Ergebnis in AKKU 1.Die Operation SQR überschreibt den alten Inhalt von AKKU 1; die Inhaltevon AKKU 2, AKKU 3 und AKKU 4 bleiben unverändert.
Die Operation SQRT (Quadratwurzel) berechnet die Quadratwurzel der Gleit-punktzahl (32 Bit, IEEE-FP) in AKKU 1 und speichert das 32-Bit-Ergebnisin AKKU 1. Der Eingangswert muß größer oder gleich Null sein. DieOperation SQRT überschreibt den alten Inhalt von AKKU 1; die Inhalte vonAKKU 2, AKKU 3 und AKKU 4 bleiben unverändert.Diese Operation gibt ein positives Ergebnis aus, wenn alle Operanden größerals “0” sind. Einzige Ausnahme: die Quadratwurzel von – 0 ist - 0.
Tabelle 10-8 Auswirkungen der Operation SQR auf die Bits A1, A0, OV und OS
Ergebnis in AKKU 1 A1 A0 OV OS
+ qNaN 1 1 1 1
+ unendlich (Überlauf) 1 0 1 1
+ normalisiert 1 0 0 –
+ denormalisiert (Unterschreitung) 0 0 1 1
+ Null 0 0 0 –
– qNaN 1 1 1 1
Der folgende Programmausschnitt zeigt anhand eines Beispiels dieVerwendung der Operation SQR.
AWL ErläuterungÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
AUF DB17ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Schlage Datenbaustein DB17 auf. (Er enthalte den Eingangswertund diene auch als Ablage für das Ergebnis.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
L DBD0 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Lade den Wert aus Datendoppelwort DBD0 in AKKU 1.(Dieser Wert muß Gleitpunktformat haben.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SQR ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Berechne das Quadrat der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1. Lege das Ergebnis in AKKU 1 ab.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
UN OV ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁFrage Statusbit OV auf 0 ab.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPB OK ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Falls bei der Operation SQR kein Fehler aufgetreten ist, dannspringe zur Marke OK.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
... ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
(Hier erfolgt die Reaktion auf einen aufgetretenen Fehler.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
OK: T DBD4 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Transferiere das Ergebnis aus AKKU 1 in das DatendoppelwortDBD4.
Beschreibung
Auswirkungenauf die Bits A1,A0, OV und OSdes Statusworts
Beispiel
Gleitpunktarithmetik
10-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle 10-9 Auswirkungen der Operation SQRT auf die Bits A0, A1, OS und OV
Ergebnis in AKKU 1 A1 A0 OV OS
+ qNaN 1 1 1 1
+ unendlich (Überlauf) 1 0 1 1
+ normalisiert 1 0 0 –
+ denormalisiert (Unterschreitung) 0 0 1 1
+ Null 0 0 0 –
– Null 0 0 0 –
– qNaN 1 1 1 1
Der folgende Programmausschnitt zeigt anhand eines Beispiels dieVerwendung der Operation SQRT.
AWL Erläuterung
L MD10
SQRT
UN OVSPB OK
...OK: T MD20
Lade den Wert aus Merkerdoppelwort MD10 in AKKU 1.(Dieser Wert muß Gleitpunktformat haben.)Bilde die Quadratwurzel der Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1. Lege das Ergebnis in AKKU 1 ab.Frage Statusbit OV auf 0 ab.Falls bei der Operation SQRT kein Fehler aufgetreten ist, dannspringe zur Marke OK.(Hier erfolgt die Reaktion auf einen aufgetretenen Fehler.)Transferiere das Ergebnis (AKKU 1) in das Merkerdoppelwort MD20.
Beispiel
Gleitpunktarithmetik
10-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
10.5 Bilden des natürlichen Logarithmus einer Gleitpunktzahl
Die Operation LN (Natürlicher Logarithmus) berechnet den natürlichenLogarithmus der Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1 und speichertdas 32-Bit-Ergebnis in AKKU 1. Der Eingangswert muß größer Null sein.Die Operation LN überschreibt den alten Inhalt von AKKU 1; die Inhalte vonAKKU 2, AKKU 3 und AKKU 4 bleiben unverändert.
Tabelle 10-10 zeigt die Auswirkungen, die die Operation LN auf den Signal-zustand der Bits A1, A0, OV und OS des Statusworts hat. Ein “–” in derTabelle zeigt an, daß das entsprechende Bit nicht beeinflußt wird.
Tabelle 10-10 Auswirkungen der Operation LN auf die Statusbits A1, A0, OV und OS
Ergebnis in AKKU 1 A1 A0 OV OS
+ qNaN 1 1 1 1
+ unendlich (Überlauf) 1 0 1 1
+ normalisiert 1 0 0 –
+ denormalisiert (Unterschreitung) 0 0 1 1
+ Null 0 0 0 –
– Null 0 0 0 –
– denormalisiert (Unterschreitung) 0 0 1 1
– normalisiert 0 1 0 –
– unendlich (Überlauf) 0 1 1 1
– qNaN 1 1 1 1
Der folgende Programmausschnitt zeigt anhand eines Beispiels dieVerwendung der Operation LN.
AWL ErläuterungÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
L MD10ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Lade den Wert aus Merkerdoppelwort MD10 in AKKU 1.(Dieser Wert muß Gleitpunktformat haben.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
LN ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁBilde den natürlichen Logarithmus der Gleitpunktzahl (32 Bit,IEEE-FP) in AKKU 1. Lege das Ergebnis in AKKU 1 ab.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
UN OVÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁFrage Statusbit OV auf 0 ab.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPB OKÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Falls bei der Operation LN kein Fehler aufgetreten ist, dannspringe zur Marke OK.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
... ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ(Hier erfolgt die Reaktion auf einen aufgetretenen Fehler.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
OK: T MD20 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁTransferiere das Ergebnis aus AKKU 1 in das MerkerdoppelwortMD20.
Beschreibung
Auswirkungen aufdie Bits A1, A0, OVund OS desStatusworts
Beispiel
Gleitpunktarithmetik
10-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
10.6 Bilden des Exponentialwerts einer Gleitpunktzahl
Die Operation EXP (Exponentialwert zur Basis e) berechnet den Exponen-tialwert der Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1 zur Basis e(= 2,71828...) und speichert das 32 Bit-Ergebnis in AKKU 1. Die OperationEXP überschreibt den alten Inhalt von AKKU 1; die Inhalte von AKKU 2,AKKU 3 und AKKU 4 bleiben unverändert.
Tabelle 10-11 zeigt die Auswirkungen, die die Operation EXP auf denSignalzustand der Bits A1, A0, OV und OS des Statusworts hat. Ein “–” inder Tabelle zeigt an, daß das entsprechende Bit nicht beeinflußt wird.
Tabelle 10-11 Auswirkungen der Operation EXP auf die Bits A1, A0, OV und OS desStatusworts
Ergebnis in AKKU 1 A1 A0 OV OS
+ qNaN 1 1 1 1
+ unendlich (Überlauf) 1 0 1 1
+ normalisiert 1 0 0 –
+ denormalisiert (Unterschreitung) 0 0 1 1
+ Null 0 0 0 –
– qNaN 1 1 1 1
Der folgende Programmausschnitt zeigt anhand eines Beispiels dieVerwendung der Operation EXP.
AWL Erläuterung
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
L MD10 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Lade den Wert aus Merkerdoppelwort MD10 in AKKU 1.(Dieser Wert muß Gleitpunktformat haben.)ÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
EXPÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Bilde den Exponentialwert zur Basis e der Gleitpunktzahl(32 Bit, IEEE-FP) in AKKU 1. Lege das Ergebnis in AKKU 1 ab.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
UN OV ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Frage Statusbit OV auf 0 ab.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPB OK ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Falls bei der Operation EXP kein Fehler aufgetreten ist, dannspringe zur Marke OK.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
... ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
(Hier erfolgt die Reaktion auf einen aufgetretenen Fehler.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
OK: T MD20 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Transferiere das Ergebnis aus AKKU 1 in das MerkerdoppelwortMD20.
Beschreibung
Auswirkungen aufdie Bits A1, A0, OVund OS desStatusworts
Beispiel
Gleitpunktarithmetik
10-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
10.7 Bilden von trigonometrischen Funktionen von Winkeln als Gleit-punktzahlen
Mit den folgenden Operationen können Sie trigonometrische Funktionen vonWinkeln, die als Gleitpunktzahlen (32 Bit, IEEE-FP) dargestellt sind, bilden.Das 32 Bit-Ergebnis wird in AKKU 1 abgelegt, die Inhalte von AKKU 2,AKKU 3 und AKKU 4 bleiben unverändert.
Operation Bedeutung
SIN Bilden des Sinus einer Gleitpunktzahl von einem Winkel, der imBogenmaß angegeben wird. Sie speichern den Winkel als Gleitpunkt-zahl in AKKU 1.
ASIN Bilden des Arcussinus einer Gleitpunktzahl in AKKU 1. Das Ergebnisist ein Winkel, der im Bogenmaß angegeben wird. Der Wert liegt indem folgenden Bereich: ��/ 2 � Arcussinus (AKKU 1) � + � / 2, wobei � = 3.14...
COS Bilden des Cosinus einer Gleitpunktzahl von einem Winkel, der imBogenmaß angegeben wird. Sie speichern den Winkel als Gleitpunkt-zahl in AKKU 1.
ACOS Bilden des Arcuscosinus einer Gleitpunktzahl in AKKU 1. DasErgebnis ist ein Winkel, der im Bogenmaß angegeben wird. Der Wertliegt in dem folgenden Bereich:
0 � Arcuscosinus (AKKU 1) � + �, wobei � = 3.14...
TAN Bilden des Tangens einer Gleitpunktzahl von einem Winkel, der imBogenmaß angegeben wird. Sie speichern den Winkel als Gleitpunkt-zahl in AKKU 1
ATAN Bilden des Arcustangens einer Gleitpunktzahl in AKKU 1. DasErgebnis ist ein Winkel, der im Bogenmaß angegeben wird. Der Wertliegt in dem folgenden Bereich:
��/ 2 � Arcustangens (AKKU 1) � + � / 2, wobei � = 3.14...
Tabelle 10-12 zeigt die Auswirkungen, die die Operationen SIN, ASIN, COS,ACOS und ATAN auf den Signalzustand der Bits A1, A0, OV und OS imStatuswort haben. Tabelle 10-13 zeigt, wie die Operation TAN diese Bitsbeeinflußt. Ein “–” zeigt an, daß das entsprechende Bit nicht beeinflußt wird.
Tabelle 10-12 Auswirkungen der Operationen SIN, ASIN, COS, ACOS und ATAN
Ergebnis in AKKU 1 A1 A0 OV OS
+ qNaN 1 1 1 1
+ normalisiert 1 0 0 –
+ denormalisiert (Überlauf) 0 0 1 1
+ Null 0 0 0 –
– Null 0 0 0 –
– denormalisiert (Unterschreitung) 0 0 1 1
– normalisiert 0 1 0 –
– qNaN 1 1 1 1
Beschreibung
Auswirkungen aufdie Bits A1, A0, OVund OS desStatusworts
Gleitpunktarithmetik
10-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle 10-13 Auswirkungen der Operation TAN auf die Bits A1, A0, OV und OS desStatusworts
Ergebnis in AKKU 1 A1 A0 OV OS
+ qNaN 1 1 1 1
+ unendlich (Überlauf) 1 0 1 1
+ normalisiert 1 0 0 –
+ denormalisiert (Unterschreitung) 0 0 1 1
+ Null 0 0 0 –
– Null 0 0 0 –
– denormalisiert (Unterschreitung) 0 0 1 1
– normalisiert 0 1 0 –
– unendlich (Überlauf) 0 1 1 1
– qNaN 1 1 1 1
Der folgende Programmausschnitt zeigt anhand eines Beispiels dieVerwendung der Operation SIN.
AWL Erläuterung
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
L MD10 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Lade den Wert aus Merkerdoppelwort MD10 in AKKU 1.(Dieser Wert muß Gleitpunktformat haben.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SINÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Bilde den Sinus der Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1.Lege das Ergebnis in AKKU 1 ab.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
T MD20 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Transferiere das Ergebnis aus AKKU 1 in das MerkerdoppelwortMD20.
Der folgende Programmausschnitt zeigt anhand eines Beispiels dieVerwendung der Operation ASIN.
AWL ErläuterungÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
L MD10 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Lade den Wert aus Merkerdoppelwort MD10 in AKKU 1.(Dieser Wert muß Gleitpunktformat haben.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
ASIN ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Bilde den Arcussinus der Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1. Lege das Ergebnis in AKKU 1 ab.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
UN OVÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Frage Statusbit OV auf 0 ab.ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
SPB OKÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Falls bei der Operation ASIN kein Fehler aufgetreten ist, dannspringe zur Marke OK.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
... ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
(Hier erfolgt die Reaktion auf einen aufgetretenen Fehler.)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
OK: T MD20 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Transferiere das Ergebnis aus AKKU 1 in das MerkerdoppelwortMD20.
Beispiel
Beispiel
Gleitpunktarithmetik
10-15Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die erweiterten Rechenoperationen beeinflussen die folgenden Bits imStatuswort:
� A1 und A0
� OV
� OS
Ein Strich (–) bei einem der in der Tabelle aufgeführten Bits bedeutet, daßdieses Bit nicht vom Ergebnis der arithmetischen Operation beeinflußt wird.
Tabelle 10-14 Arcusfunktionen für Gleitpunktzahlen (32 Bit, IEEE-FP)und zulässige Wertebereiche für den Eingangswert
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Gültiger Bereich für Ergebnis mit Gleitpunktzah-l (32 Bit)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Bit im Statuswort
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
len (32 Bit)ÁÁÁÁÁÁ
A1ÁÁÁÁÁÁ
A0ÁÁÁÁÁÁ
OVÁÁÁÁÁÁ
OS
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
+0, –0 (Null) ÁÁÁÁÁÁ
0ÁÁÁÁÁÁ
0ÁÁÁÁÁÁ
0 ÁÁÁÁÁÁ
–
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
–3,402823E+38 < Ergebnis < –1,175494E–38(negative Zahl)
ÁÁÁÁÁÁ
0ÁÁÁÁÁÁ
1ÁÁÁÁÁÁ
0 ÁÁÁÁÁÁ
–
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
+1,175494E–38 < Ergebnis < 3,402823E+38(positive Zahl)
ÁÁÁÁÁÁÁÁÁ
1ÁÁÁÁÁÁÁÁÁ
0ÁÁÁÁÁÁÁÁÁ
0ÁÁÁÁÁÁÁÁÁ
–
Tabelle 10-15 Signalzustände der Bits im Statuswort: Rechenergebnis mitGleitpunktzahlen außerhalb des gültigen Bereichs
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Gültiger Bereich für Ergebnis mit Gleitpunktzah-l (32 Bit)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Bit im Statuswort
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
len (32 Bit) ÁÁÁÁÁÁ
A1ÁÁÁÁÁÁ
A0ÁÁÁÁÁÁ
OVÁÁÁÁÁÁ
OS
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
–1,175494E–38 < Ergebnis < –1,401298E–45(negative Zahl) Unterschreitung
ÁÁÁÁÁÁ
0ÁÁÁÁÁÁ
0ÁÁÁÁÁÁ
1 ÁÁÁÁÁÁ
1
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
+1,401298E–45 < Ergebnis < +1,175494E–38(positive Zahl) Unterschreitung
ÁÁÁÁÁÁÁÁÁ
0ÁÁÁÁÁÁÁÁÁ
0ÁÁÁÁÁÁÁÁÁ
1ÁÁÁÁÁÁÁÁÁ
1
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Ergebnis < –3,402823E+38(negative Zahl) Überlauf
ÁÁÁÁÁÁÁÁÁ
0ÁÁÁÁÁÁÁÁÁ
1ÁÁÁÁÁÁÁÁÁ
1 ÁÁÁÁÁÁÁÁÁ
1
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Ergebnis > 3,402823E+38(positive Zahl) Überlauf
ÁÁÁÁÁÁ
1ÁÁÁÁÁÁ
0ÁÁÁÁÁÁ
1 ÁÁÁÁÁÁ
1
Tabelle 10-16 Signalzustände der Bits im Statuswort: Eingangswert keinegültige Gleitpunktzahl oder außerhalb des gültigen Wertebereichs
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Ungültiger Bereich für Eingangswert mit Gl it kt hl (32 Bit)
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Bit im StatuswortÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Gleitpunktzahlen (32 Bit) ÁÁÁÁÁÁ
A1ÁÁÁÁÁÁ
A0ÁÁÁÁÁÁ
OVÁÁÁÁÁÁ
OSÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Keine gültige 32 Bit-Gleitpunktzahl(Format IEEE-FP) in AKKU 1
ÁÁÁÁÁÁÁÁÁ
1ÁÁÁÁÁÁÁÁÁ
1ÁÁÁÁÁÁÁÁÁ
1ÁÁÁÁÁÁÁÁÁ
1
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Unzulässige Operation: Eingangswert in AKKU 1außerhalb des gültigen Wertebereichs
ÁÁÁÁÁÁÁÁÁ
1ÁÁÁÁÁÁÁÁÁ
1ÁÁÁÁÁÁÁÁÁ
1 ÁÁÁÁÁÁÁÁÁ
1
Auswerten der Bitsim Statuswort
Ergebnis gültig
Ergebnisungültig
Eingangswertungültig
Gleitpunktarithmetik
10-16Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Gleitpunktarithmetik
11-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Vergleichsoperationen
Im Kapitel finden Sie auf Seite
11.1 Übersicht 11-2
11.2 Vergleichen zweier Ganzzahlen 11-3
11.3 Vergleichen zweier Gleitpunktzahlen 11-5
Kapitelübersicht
11
11-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
11.1 Übersicht
Mit den Vergleichsoperationen können Sie folgende Paare von Zahlenwertenmiteinander vergleichen:
� zwei Ganzzahlen (16 Bit)
� zwei Ganzzahlen (32 Bit)
� zwei Gleitpunktzahlen (Gleitpunktzahlen, 32 Bit, IEEE-FP)
Sie laden die Zahlenwerte in die AKKUs 1 und 2. Eine Vergleichsoperationvergleicht den Wert in AKKU 2 mit dem Wert in AKKU 1 nach den inTabelle 11-1 aufgeführten Kriterien.
Das Ergebnis des Vergleichs ist eine Binärziffer, d. h. entweder ”1” oder ”0”.Eine ”1” zeigt an, daß das Ergebnis des Vergleichs ”wahr” ist, eine ”0” zeigtan, daß das Ergebnis ”falsch” ist (siehe Tabelle 11-2). Dieses Ergebnis ist imVerknüpfungsergebnis-Bit gespeichert (VKE-Bit, siehe Kapitel 3.4). Siekönnen das Ergebnis in Ihrem Programm zur weiteren Verarbeitungverwenden.
Wenn die CPU eine Vergleichsoperation ausführt, setzt sie die Bits im Status-wort. Andere AWL-Operationen können die Bits des Statusworts auswerten.Die CPU führt Vergleichsoperationen unabhängig vom Verknüpfungsergebnisaus.
Tabelle 11-1 Vergleichskriterien
Art des Zahlenwertes inAKKU 2
Vergleichskriterium Operationssymbol(e) Art des Zahlenwerts inAKKU 1
ist gleich ==I==D==R
ist ungleich <>I<>D<>R
Ganzzahl (16 Bit)
Ganzzahl (32 Bit)
ist größer als >I>D>R
Ganzzahl (16 Bit)
Ganzzahl (32 Bit)Ganzzahl (32 Bit)
Gleitpunktzahl (32 Bit)
ist kleiner als <I<D<R
Ganzzahl (32 Bit)
Gleitpunktzahl (32 Bit)
ist größer als oder gleich >=I>=D>=R
ist kleiner als oder gleich <=I<=D<=R
Vergleichsoperationen
11-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
11.2 Vergleichen zweier Ganzzahlen
Die Operationen Vergleiche Ganzzahlen (16 Bit) vergleichen zweiGanzzahlen (16 Bit), die Operationen Vergleiche Ganzzahlen (32 Bit)vergleichen zwei Ganzzahlen (32 Bit) gemäß den Kriterien in Tabelle 11-2.Ein Programmbeispiel schließt sich an Tabelle 11-3 an.
Tabelle 11-2 Vergleichsoperationen (Ganzzahlen, 16 und 32 Bit)
Operation ErläuterungOperat on Erläuterung
==I
==D
Vergleiche Ganzzahl (16 Bit) im niederwertigen Wort von AKKU 2 mit der Ganzzahl (16 Bit) imniederwertigen Wort von AKKU 1 auf Gleichheit.Vergleiche Ganzzahl (32 Bit) in AKKU 2 mit der Ganzzahl (32 Bit) in AKKU 1.
<>I
<>D
Vergleiche Ganzzahl (16 Bit) im niederwertigen Wort von AKKU 2 mit der Ganzzahl (16 Bit) imniederwertigen Wort von AKKU 1 auf Ungleichheit.Vergleiche Ganzzahl (32 Bit) in AKKU 2 mit der Ganzzahl (32 Bit) in AKKU 1 auf Ungleichheit.
>I
>D
Vergleiche Ganzzahl (16 Bit) im niederwertigen Wort von AKKU 2 mit der Ganzzahl (16 Bit) imniederwertigen Wort von AKKU 1 auf größer.Vergleiche Ganzzahl (32 Bit) in AKKU 2 mit der Ganzzahl (32 Bit) in AKKU 1 auf größer.
<I
<D
Vergleiche Ganzzahl (16 Bit) im niederwertigen Wort von AKKU 2 mit der Ganzzahl (16 Bit) imniederwertigen Wort von AKKU 1 auf kleiner.Vergleiche Ganzzahl (32 Bit) in AKKU 2 mit der Ganzzahl (32 Bit) in AKKU 1 auf kleiner.
>=I
>=D
Vergleiche Ganzzahl (16 Bit) im niederwertigen Wort von AKKU 2 mit der Ganzzahl (16 Bit) imniederwertigen Wort von AKKU 1 auf größer und gleich.Vergleiche Ganzzahl (32 Bit) in AKKU 2 mit der Ganzzahl (32 Bit) in AKKU 1 auf größer und gleich.
<=I
<=D
Vergleiche Ganzzahl (16 Bit) im niederwertigen Wort von AKKU 2 mit der Ganzzahl (16 Bit) imniederwertigen Wort von AKKU 1 auf kleiner und gleich.Vergleiche Ganzzahl (32 Bit) in AKKU 2 mit der Ganzzahl (32 Bit) in AKKU 1 auf kleiner und gleich.
Beschreibung
Vergleichsoperationen
11-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Vergleichsoperationen für Ganzzahlen (16 und 32 Bit) setzenverschiedene Signalzustandskombinationen der Bits A1 und A0, umanzuzeigen, welche Bedingung erfüllt wurde (siehe Tabelle 11-3).
Tabelle 11-3 Zustände der Bits A1 und A0 nach einer Vergleichsoperation
Bedingung Signalzustand:Mögliche Abfrage mitden Operationen
A1 A0 U, O, X, UN, ON, XN
Akku2>Akku1 1 0 >0
Akku2<Akku1 0 1 <0
Akku2=Akku1 0 0 ==0
Akku2<>Akku10
oder1
1oder
0<>0
Akku2>=Akku11
oder0
0oder
0>=0
Akku2<=Akku10
oder0
1oder
0<=0
Das folgende Programmbeispiel zeigt, wie die Vergleichsoperationen fürGanzzahlen (16 Bit) arbeiten.
AWL Erläuterung
L MW10L EW0
==I
= A 4.0
>I
= A 4.1
<I
= A 4.2
Lade den Inhalt von Merkerwort MW10 in AKKU 1.Lade den Inhalt von Eingangswort EW0 in AKKU 1.Der alte Inhalt von AKKU 1 wird in AKKU 2 geschoben.Vergleiche den Wert im niederwertigen Wort von AKKU 2 mit demWert im niederwertigen Wort von AKKU 1, um herauszufinden, obsie gleich sind.Ausgang A 4.0 wird stromführend, wenn MW10 und EW0 gleich sind.
Vergleiche den Wert im niederwertigen Wort von AKKU 2 mit demWert im niederwertigen Wort von AKKU 1, um herauszufinden, ober größer ist als der Wert im niederwertigen Wort von AKKU 1.
Ausgang A 4.1 wird stromführend, wenn MW10 größer als EW0 ist.
Vergleiche den Wert im niederwertigen Wort von AKKU 2 mit demWert im niederwertigen Wort von AKKU 1, um herauszufinden, ober kleiner ist als der Wert im niederwertigen Wort von AKKU 1.
Ausgang A 4.2 wird stromführend, wenn MW10 kleiner als EW0 ist.
Setzen der Bits A1und A0 im Status-wort
Beispiel
Vergleichsoperationen
11-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
11.3 Vergleichen zweier Gleitpunktzahlen
Die Vergleichsoperationen für Gleitpunktzahlen vergleichen zweiGleitpunktzahlen (32 Bit, IEEE-FP) nach den in Tabelle 11-4 aufgeführtenKriterien. Da die Gleitpunktzahlen (32 Bit, IEEE-FP) zum Datentyp REAL(Gleitpunktzahl) gehören, lautet die mnemotechnische Abkürzung für dieseOperationen ”R”.
Tabelle 11-4 Vergleichsoperationen (Gleitpunktzahlen, 32 Bit, IEEE-FP)
Operation ErläuterungOperat on Erläuterung
==R Vergleiche Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 mit der Gleit-punktzahl (32 Bit, IEEE-FP) in AKKU 1 auf Gleichheit.
<>R Vergleiche Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 mit der Gleit-punktzahl (32 Bit, IEEE-FP) in AKKU 1 auf Ungleichheit.
>R Vergleiche Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 mit der Gleit-punktzahl (32 Bit, IEEE-FP) in AKKU 1 auf größer.
<R Vergleiche Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 mit der Gleit-punktzahl (32 Bit, IEEE-FP) in AKKU 1 auf kleiner.
>=R Vergleiche Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 mit der Gleit-punktzahl (32 Bit, IEEE-FP) in AKKU 1 auf größer und gleich.
<=R Vergleiche Gleitpunktzahl (32 Bit, IEEE-FP) in AKKU 2 mit der Gleit-punktzahl (32 Bit, IEEE-FP) in AKKU 1 auf kleiner und gleich.
Die Vergleichsoperationen für Gleitpunktzahlen (32 Bit, IEEE-FP) setzenverschiedene Signalzustandskombinationen der Bits A1, A0, OV und OS desStatusworts, um anzuzeigen, welche Bedingung erfüllt wurde.
Tabelle 11-5 Zustände der Bits im Statuswort nach einer Vergleichsoperation fürGleitpunktzahlen (32 Bit, IEEE-FP)
Bedingung A1 A0 OV OS
== 0 0 0 entfällt
<>0
oder1
1oder
00 entfällt
> 1 0 0 entfällt
< 0 1 0 entfällt
>=1
oder0
0oder
00 entfällt
<=0
oder0
1oder
00 entfällt
UO 1 1 1 1
Beschreibung
Setzen der Bits imStatuswort
Vergleichsoperationen
11-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Andere AWL-Operationen können die Bits im Statuswort auswerten (sieheKapitel 5.3 und Tabelle 11-6).
Tabelle 11-6 Operationen, die die Bits A1, A0, OV und OS des Statuswortsauswerten
Operation Verweis auf Bits des Statusworts oder Sprung-marke
Kapitel indiesem
Handbuch
U,O,X,UN,ON,XN >0, <0, <>0, >=0, <=0, ==0, UO, OV, OS 5.3
SPU <Sprungmarke> 16.4
SPZ <Sprungmarke> 16.5
SPN <Sprungmarke> 16.5
SPP <Sprungmarke> 16.5
SPM <Sprungmarke> 16.5
SPMZ <Sprungmarke> 16.5
SPPZ <Sprungmarke> 16.5
Das folgende Programmbeispiel zeigt, wie die Vergleichsoperationen fürGleitpunktzahlen (32 Bit, IEEE-FP) arbeiten.
AWL Erläuterung
L MD24
L +1.00E+00
>R
= A 4.1
<R
= A 4.2
Lade den Inhalt von Merkerdoppelwort MD24 in AKKU 1.
Lade den Wert 1.0 als eine Gleitpunktzahl (32 Bit) in AKKU 1.Der alte Inhalt von AKKU 1 wird in AKKU 2 geschoben.
Vergleiche den Wert in AKKU 2 mit dem Wert in AKKU 1, um herauszufinden, ob er größer ist als der Wert in AKKU 1.
Ausgang A 4.1 wird stromführend, wenn MD24 größer als 1.0 ist.
Vergleiche den Wert in AKKU 2 mit dem Wert in AKKU 1, um herauszufinden, ob er kleiner ist als der Wert in AKKU 1.
Ausgang A 4.2 wird stromführend, wenn MD24 kleiner als 1.0 ist.
Auswerten der Bitsim Statuswort
Beispiel
Vergleichsoperationen
12-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Umwandlungsoperationen
Im Kapitel finden Sie auf Seite
12.1 Umwandeln von binär-codierten Dezimalzahlen und Ganz-zahlen
12-2
12.2 Umwandeln von Gleitpunktzahlen (32 Bit) in Ganzzahlen(32 Bit)
12-8
12.3 Umkehren der Reihenfolge der Bytes in AKKU 1 12-13
12.4 Bilden der Komplemente und Wechseln des Vorzeichenseiner Gleitpunktzahl
12-14
Kapitelübersicht
12
12-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
12.1 Umwandeln von binär-codierten Dezimalzahlen und Ganzzahlen
Mit den folgenden Operationen können Sie binär-codierte Dezimalzahlen undGanzzahlen in andere Zahlenarten umwandeln:
Mne-monik
Operation Bedeutung
BTI BCD wandeln inGanzzahl (16 Bit)
Diese Operation wandelt einen binär-codiertenDezimalwert im niederwertigen Wort von AKKU 1 ineine Ganzzahl (16 Bit) um.
BTD BCD wandeln inGanzzahl (32 Bit)
Diese Operation wandelt einen binär-codiertenDezimalwert in AKKU 1 in eine Ganzzahl (32 Bit)um.
ITB Ganzzahl (16 Bit)wandeln in BCD
Diese Operation wandelt eine Ganzzahl (16 Bit) imniederwertigen Wort von AKKU 1 in einen binär-co-dierten Dezimalwert um.
ITD Ganzzahl (16 Bit)wandeln in Ganz-zahl
Diese Operation wandelt eine Ganzzahl (16 Bit) imniederwertigen Wort von AKKU 1 in eine Ganzzahl(32 Bit) um.
DTB Ganzzahl (32 Bit)wandeln in BCD
Diese Operation wandelt eine Ganzzahl (32 Bit) inAKKU 1 in einen binär-codierten Dezimalwert um.
DTR Ganzzahl (32 Bit)wandeln in Gleit-punktzahl (32 Bit,IEEE-FP)
Diese Operation wandelt eine Ganzzahl (32 Bit) inAKKU 1 in eine Gleitpunktzahl (32 Bit, IEEE-FP)(Gleitpunktzahl) um.
Beschreibung
Umwandlungsoperationen
12-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Operation BTI wandelt eine dreistellige binär-codierte Dezimalzahl imniederwertigen Wort von AKKU 1 in eine Ganzzahl (16 Bit) um (zuBCD-Zahlen: siehe Bild 12-1). Die BCD-Zahl kann im Bereich von -999 bis+999 liegen. Das Umwandlungsergebnis wird im niederwertigen Wort vonAKKU 1 gespeichert.
Vorzeichen: ”0000” steht für positiv, ”1111” für negativ.
Wert der BCD-Zahl
15
102 101 100
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
V V V V
Hunderter Zehner Einer
Diese Bits werden bei der Umwandlung nichtverwendet.
Bild 12-1 Aufbau einer binär-codierten Dezimalzahl, die in eine Ganzzahlumgewandelt werden soll
Wenn eine Stelle einer BCD-Zahl im ungültigen Bereich zwischen 10 und 15liegt, tritt während einer versuchten Umwandlung ein BCDF-Fehler auf. Eineder folgenden Erscheinungen tritt auf:
� Die CPU geht in STOP. Im Diagnosespeicher wird ein ”BCD-Umwandlungsfehler” der Ereignisnummer 2521 eingetragen.
� Wenn OB121 programmiert ist, so wird er aufgerufen.
Das folgende Programmbeispiel enthält die Operation BTI. Bild 12-2 zeigt,wie diese Operation arbeitet.
AWL Erläuterung
L MW10BTI
T MW20
Lade den BCD-Wert aus Merkerwort MW10 in AKKU 1.Wandle den BCD-Wert in eine Ganzzahl (16 Bit) um und speicheredas Ergebnis in AKKU 1.Transferiere das Ergebnis ins Merkerwort MW20.
15... ...8 7... ...0
0 0 1 1
0 0 0 1 0 1 0 10 0 0 0
1 0 0 10 0 0 0
L MW10
BTI
T MW20 0 0 1 1
1 0 0 1
BCD in Ganzzahl
“ + ” “ 9 ” “ 1 ” “ 5 ”
MW10
MW20
“+915” BCD
“+915”Ganzzahl
Bild 12-2 Umwandeln einer BCD-Zahl in eine Ganzzahl (16 Bit) mit der Operation BTI
BCD wandeln inGanzzahl (16 Bit):BTI
Umwandlungsoperationen
12-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Operation BTD wandelt eine siebenstellige binär-codierte Dezimalzahlin AKKU 1 in eine Ganzzahl (32 Bit) um (zu BCD-Zahlen: siehe Bild 12-3).Die BCD-Zahl kann im Bereich von -9 999 999 bis +9 999 999 liegen. DasUmwandlungsergebnis wird in AKKU 1 gespeichert.
Wenn eine Stelle einer BCD-Zahl im ungültigen Bereich zwischen 10 und 15liegt, tritt während einer versuchten Umwandlung ein BCDF-Fehler auf. Eineder folgenden Erscheinungen tritt auf:
� Die CPU geht in STOP. Im Diagnosespeicher wird ein ”BCD-Umwandlungsfehler” der Ereignisnummer 2521 eingetragen.
� Wenn OB121 programmiert ist, so wird er aufgerufen.
31... ...16 15... ...0
V V V V
106 105 104 103 102 101 100
Vorzeichen: ”0000” steht für positiv, ”1111” für negativ.
Wert der BCD-Zahl
Diese Bits werden bei der Umwandlung nichtverwendet.
Bild 12-3 Aufbau einer BCD-Zahl (32 Bit), die in eine Ganzzahl (32 Bit) umgewandeltwerden soll
Das folgende Programmbeispiel enthält die Operation BTD. Bild 12-4 zeigt,wie diese Operation arbeitet.
AWL Erläuterung
L MD10BTD
T MD20
Lade den BCD-Wert aus Merkerdoppelwort MD10 in AKKU 1.Wandle den BCD-Wert in eine Ganzzahl (32 Bit) um und speicheredas Ergebnis in AKKU 1.Transferiere das Ergebnis ins Merkerdoppelwort MD20.
31... ...16 15... ...0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1
0 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1
L MD10
BTD
T MD20
BCD in Ganzzahl
“ + ” “ 0 ” “ 1 ” “ 5 ”
MD10
MD20
“157821”
“+157821”
“ 7 ” “ 8 ” “ 2 ” “ 1 ”
Bild 12-4 Umwandeln einer BCD-Zahl in eine Ganzzahl (32 Bit) mit der Operation BTD
BCD wandeln inGanzzahl (32 Bit):BTD
Umwandlungsoperationen
12-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Operation ITB wandelt eine Ganzzahl (16 Bit) im niederwertigen Wortvon AKKU 1 in eine dreistellige binär-codierte Dezimalzahl um. DieBCD-Zahl kann im Bereich von -999 bis +999 liegen. DasUmwandlungsergebnis wird im niederwertigen Wort von AKKU 1gespeichert.
Ist die Ganzzahl zu groß, um im BCD-Format dargestellt zu werden, findetkeine Umwandlung statt. In diesem Fall werden das OV-Bit (Überlauf) unddas OS-Bit (Überlauf, speichernd) des Statusworts (siehe Kapitel 3.4) auf denSignalzustand ”1” gesetzt.
Das folgende Programmbeispiel enthält die Operation ITB. Bild 12-5 zeigt,wie diese Operation arbeitet.
AWL Erläuterung
L MW10
ITB
T MW20
Lade den Wert der Ganzzahl (16 Bit) aus Merkerwort MW10 in AKKU1.Wandle die Ganzzahl (16 Bit) in einen BCD-Wert um und speicheredas Ergebnis in AKKU 1.Transferiere das Ergebnis ins Merkerwort MW20.
15... ...8 7... ...0
0 1 0 0
0 1 1 0 0 0 1 11 1 1 1
0 0 0 11 1 1 1
L MW10
ITB
T MW20 0 0 1 1
1 1 1 0
Ganzzahl in BCD
“ - ” “ 4 ” “ 1 ” “ 3 ”
MW10
MW20 “-413” BCD
“-413”Ganzzahl
Bild 12-5 Umwandeln einer Ganzzahl (16 Bit) in eine BCD-Zahl mit der Operation ITB
Ganzzahl (16 Bit)wandeln in BCD:ITB
Umwandlungsoperationen
12-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Operation ITD wandelt eine Ganzzahl (16 Bit) im niederwertigen Wortvon AKKU 1 in eine Ganzzahl (32 Bit) um. Das Umwandlungsergebnis wirdin AKKU 1 gespeichert. Das folgende Programmbeispiel enthält dieOperation ITD. Bild 12-6 zeigt, wie diese Operation arbeitet.
AWL Erläuterung
L MW10
ITD
T MD20
Lade den Wert der Ganzzahl (16 Bit) aus Merkerwort MW10 in AKKU1.Wandle den Wert der Ganzzahl (16 Bit) in eine Ganzzahl (32 Bit)um und speichere das Ergebnis in AKKU 1.Transferiere das Ergebnis ins Merkerdoppelwort MD20.
15... ...0
1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
1 1 1 1 0 1 1 0
L MW10
ITD
T MD20
Ganzzahl (16 Bit) in Ganzzahl (32 Bit)
MW10
MD20
”-10”Ganzzahl
31... ...16 15... ...0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ”-10”Ganzzahl
Bild 12-6 Umwandeln einer Ganzzahl (16 Bit) in eine Ganzzahl (32 Bit) mit der Operation ITD
Die Operation DTB wandelt eine Ganzzahl (32 Bit) in AKKU 1 in einensiebenstelligen binär-codierten Dezimalwert um. Die BCD-Zahl kann in demBereich von -9 999 999 bis +9 999 999 liegen. Das Umwandlungsergebniswird in AKKU 1 gespeichert.
Ist die Ganzzahl (32 Bit) zu groß, um im BCD-Format dargestellt zu werden,findet keine Umwandlung statt. In diesem Fall werden das OV-Bit (Überlauf)und das OS-Bit (Überlauf, speichernd) des Statusworts (siehe Kapitel 3.4) aufden Signalzustand ”1” gesetzt.
Das folgende Programmbeispiel enthält die Operation DTB. Bild 12-7 zeigt,wie diese Operation arbeitet.
AWL Erläuterung
L MD10
DTB
T MD20
Lade die Ganzzahl (32 Bit) aus Merkerdoppelwort MD10 in AKKU 1.Wandle die Ganzzahl (32 Bit) in einen BCD-Wert um und speicheredas Ergebnis in AKKU 1.Transferiere das Ergebnis ins Merkerdoppelwort MD20.
31... ...16 15... ...0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1
0 0 0 01 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 1
L MD10
DTB
T MD20
Ganzzahl in BCD
“ - ” “ 0 ” “ 0 ” “ 0 ”
MD10
MD20
”-701”Ganzzahl
“-701”BCD
“ 0 ” “ 7 ” “ 0 ” “ 1 ”
Bild 12-7 Umwandeln einer Ganzzahl (32 Bit) in eine BCD-Zahl mit der Operation DTB
Ganzzahl (16 Bit)wandeln in Ganz-zahl (32 Bit): ITD
Ganzzahl (32 Bit)wandeln in BCD:DTB
Umwandlungsoperationen
12-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Operation DTR wandelt eine Ganzzahl (32 Bit) in AKKU 1 in eineGleitpunktzahl (32 Bit, IEEE-FP) um. Falls nötig, rundet die Operation dasErgebnis. Das Umwandlungsergebnis wird in AKKU 1 gespeichert. Dasfolgende Programmbeispiel enthält die Operation DTR. Bild 12-8 zeigt, wiediese Operation arbeitet.
AWL Erläuterung
L MD10
DTR
T MD20
Lade die Ganzzahl (32 Bit) aus Merkerdoppelwort MD10 in AKKU 1.
Wandle die Ganzzahl (32 Bit) in den Wert einer Gleitpunktzahl(32 Bit, IEEE-FP) um und speichere das Ergebnis in AKKU 1.
Transferiere das Ergebnis ins Merkerdoppelwort MD20.
31 ...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 1 0 0L MD10
DTR
T MD20
Ganzzahl (32 Bit) in Gleitpunktzahl (IEEE)
MD10
MD20
“+500”Ganzzahl
30... 22...”+500” IEEE
1 BitVorzeichen der Mantisse
Exponent, 8 Bit Mantisse, 32 Bit
0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0
Bild 12-8 Umwandeln einer Ganzzahl (32 Bit) in eine Gleitpunktzahl (32 Bit, IEEE FP) mit der Operation DTR
Eine Zusammenfassung der möglichen Umwandlungsoperationen finden Siein Bild 12-13 am Ende des Kapitels 12.2.
Ganzzahl (32 Bit)wandeln in Gleit-punktzahl (32-Bit,IEEE-FP): DTR
Umwandlungsoperationen
12-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
12.2 Umwandeln von Gleitpunktzahlen (32 Bit) in Ganzzahlen (32 Bit)
Mit den folgenden Operationen können Sie eine Gleitpunktzahl (32 Bit,IEEE-FP) in AKKU 1 in eine Ganzzahl (32 Bit) umwandeln. Die einzelnenOperationen unterscheiden sich in ihrer Art des Rundens.
Mne-monik
Operation Bedeutung
RND Runden zur Ganz-zahl
Diese Operation rundet die umgewandelte Zahl zurnächsten Ganzzahl. Wenn der Bruch der umgewan-delten Zahl genau zwischen einem geraden undeinem ungeraden Ergebnis liegt, wählt die Opera-tion das gerade Ergebnis.
RND+ Runden zur nächst-höheren Ganzzahl
Diese Operation rundet die umgewandelte Zahl zurkleinsten Ganzzahl, die größer als oder gleich derumgewandelten Gleitpunktzahl ist.
RND- Runden zur nächst-niederen Ganzzahl
Diese Operation rundet die umgewandelte Zahl zurgrößten Ganzzahl, die kleiner als oder gleich derumgewandelten Gleitpunktzahl ist.
TRUNC Runden mit Ab-schneiden
Diese Operation wandelt den ganzzahligen Teil derGleitpunktzahl um.
Das Umwandlungsergebnis wird in AKKU 1 gespeichert. Wenn es sich beider Zahl, die umgewandelt werden soll, nicht um eine Gleitpunktzahl handeltoder wenn es sich um eine Gleitpunktzahl handelt, die nicht als Ganzzahl(32 Bit) dargestellt werden kann, findet keine Umwandlung statt, und es wirdein Überlauf angezeigt.
Beschreibung
Umwandlungsoperationen
12-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Operation RND wandelt eine Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 in eine Ganzzahl (32 Bit) um und rundet sie zur nächsten Ganzzahl.Wenn der Bruch der umgewandelten Zahl genau zwischen einer geraden undeiner ungeraden Zahl liegt, wählt die Operation die gerade Zahl als Ergebnis.Das folgende Programmbeispiel enthält die Operation RND. Bild 12-9 zeigt,wie diese Operation arbeitet.
AWL Erläuterung
L MD10
RND
T MD20
Lade den Wert der Gleitpunktzahl (32 Bit, IEEE-FP) aus Merker-doppelwort MD10 in AKKU 1.Wandle die Gleitpunktzahl (32 Bit) in eine Ganzzahl (32 Bit)um, runde zur nächsten Ganzzahl und speichere das Ergebnis inAKKU 1.Transferiere das Ergebnis in das Merkerdoppelwort MD20.
31 ...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 0 0 1 0 0
0 1 0 0 0 0 1 0 1
T MD20
RND
L MD10
MD20
MD10
“+100”
“+100.5”IEEE
30... 22...
31 ...0
1 1 1 1 1 0 0 1 1 1 0 0
1
T MD20
RND
L MD10
MD20
MD10
“-100”
“-100.5”IEEE
30... 22...
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
IEEE in Ganzzahl (32 Bit)
Ganzzahl
IEEE in Ganzzahl (32 Bit)
Ganzzahl
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 01 0 0 0 0 1 0 1
Bild 12-9 Umwandeln einer Gleitpunktzahl (32 Bit, IEEE-FP) in eine Ganzzahl (32 Bit) mit der Operation RND
Runden zur Ganz-zahl: RND
Umwandlungsoperationen
12-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Operation RND+ wandelt eine Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 in eine Ganzzahl (32 Bit) um. Die Operation rundet dieumgewandelte Zahl zur kleinsten Ganzzahl, die größer als oder gleich derumgewandelten Gleitpunktzahl ist. Das folgende Programmbeispiel enthältdie Operation RND+. Bild 12-10 zeigt, wie diese Operation arbeitet.
AWL Erläuterung
L MD10
RND+
T MD20
Lade den Wert der Gleitpunktzahl (32 Bit, IEEE-FP) aus Merker-doppelwort MD10 in AKKU 1.Wandle die Gleitpunktzahl (32 Bit) in eine Ganzzahl (32 Bit)um. Runde zur kleinsten Ganzzahl die größer als oder gleich derumgewandelten Gleitpunktzahl ist und speichere das Ergebnis inAKKU 1.Transferiere das Ergebnis ins Merkerdoppelwort MD20.
31 ...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 0 0 1 0 1
0
T MD20
RND+
L MD10
MD20
MD10
“+101”
“+100.5”IEEE
30... 22...
31 ...0
1 1 1 1 1 0 0 1 1 1 0 0
1
T MD20
RND+
L MD10
MD20
MD10
“-100”
“-100.5”IEEE
30... 22...
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
IEEE in Ganzzahl (32 Bit)
IEEE in Ganzzahl (32 Bit)
Ganzzahl
Ganzzahl
1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0
1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0
Bild 12-10 Umwandeln einer Gleitpunktzahl (32 Bit, IEEE-FP) in eine Ganzzahl (32 Bit) mit der Operation RND+
Runden zurnächsthöherenGanzzahl (32 Bit):RND+
Umwandlungsoperationen
12-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die Operation RND- wandelt eine Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 in eine Ganzzahl (32 Bit) um. Die Operation rundet dieumgewandelte Zahl zur größten Ganzzahl, die kleiner als oder gleich derumgewandelten Gleitpunktzahl ist. Das folgende Programmbeispiel enthältdie Operation RND–. Bild 12-11 zeigt, wie diese Operation arbeitet.
AWL Erläuterung
L MD10
RND-
T MD20
Lade den Wert der Gleitpunktzahl (32 Bit, IEEE-FP) aus Merker-doppelwort MD10 in AKKU 1.Wandle die Gleitpunktzahl (32 Bit) in eine Ganzzahl (32 Bit)um. Runde zur größten Ganzzahl die kleiner als oder gleich derumgewandelten Gleitpunktzahl ist und speichere das Ergebnis inAKKU 1.Transferiere das Ergebnis ins Merkerdoppelwort MD20.
31 ...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 0 0 1 0 0
0
T MD20
RND-
L MD10
MD20
MD10
“+100”Ganzzahl
“+100.5”IEEE
30... 22...
31 ...0
1 1 1 1 1 0 0 1 1 0 1 1
1
T MD20
RND-
L MD10
MD20
MD10
“-101”Ganzzahl
“-100.5”IEEE
30... 22...
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
IEEE in Ganzzahl (32 Bit)
IEEE in Ganzzahl (32 Bit)
1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0
1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0
Bild 12-11 Umwandeln einer Gleitpunktzahl (32 Bit, IEEE-FP) in eine Ganzzahl (32 Bit) mit der Operation RND–
Runden zurnächstniederenGanzzahl (32 Bit):RND-
Umwandlungsoperationen
12-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Operation TRUNC wandelt eine Gleitpunktzahl (32 Bit, IEEE-FP) inAKKU 1 in eine Ganzzahl (32 Bit) um. Die Operation wandelt denganzzahligen Teil der Gleitpunktzahl um. Das folgende Programmbeispielenthält die Operation TRUNC. Bild 12-12 zeigt, wie diese Operation arbeitet.
AWL Erläuterung
L MD10
TRUNC
T MD20
Lade den Wert der Gleitpunktzahl (32 Bit, IEEE-FP) aus Mer-kerdoppelwort MD10 in AKKU 1.Wandle die Gleitpunktzahl (32 Bit) in eine Ganzzahl (32 Bit)um. Wandle den ganzzahligen Teil der Gleitpunktzahl um undspeichere das Ergebnis in AKKU 1.Transferiere das Ergebnis ins Merkerdoppelwort MD20.
31 ...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 0 0 1 0 0
0
T MD20
TRUNC
L MD10
MD20
MD10
“+100”Ganzzahl
“+100.5”IEEE
30... 22...
31 ...0
1 1 1 1 1 0 0 1 1 1 0 0
1
T MD20
TRUNC
L MD10
MD20
MD10
“-100”Ganzzahl
“-100.5”IEEE
30... 22...
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
IEEE in Ganzzahl (32 Bit)
IEEE in Ganzzahl (32 Bit)
1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0
1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0
Bild 12-12 Umwandeln einer Gleitpunktzahl (32 Bit, IEEE-FP) in eine Ganzzahl (32 Bit) mit der Operation TRUNC
Bild 12-13 faßt die Umwandlungs- und Rundungsoperationen zusammen(siehe auch Kapitel 12.1 und 12.2).
16 Bit
32 Bit
32 BitIEEE
3-stellig
7-stellig
BCD BTI Ganzzahl GleitpunktzahlITB
BTDDTB
ITD
DTR
RND, RND+, RND-,TRUNC
Bild 12-13 Übersicht über die Umwandlungs- und Rundungsoperationen
Runden mit Ab-schneiden: TRUNC
Zusammenfassungder Umwandlungs-operationen
Umwandlungsoperationen
12-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
12.3 Umkehren der Reihenfolge der Bytes in AKKU 1
Mit den folgenden Operationen können Sie die Reihenfolge der Bytes imniederwertigen Wort von AKKU 1 oder im gesamten Akkumulatorumkehren:
� TAW: Tausche Reihenfolge in AKKU 1 (16 Bit)
� TAD: Tausche Reihenfolge in AKKU 1 (32 Bit)
Die Operation TAW kehrt die Reihenfolge der Bytes im niederwertigen Wortvon AKKU 1 um (siehe Bild 12-14).
31... ...16 15... ...0
0 1 0 1MD10
MD20
1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0L MD10
T MD20
TAW
0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0
Bild 12-14 Umkehren der Reihenfolge der Bytes im niederwertigen Wort von AKKU 1 mit der Operation TAW
Die Operation TAD kehrt die Reihenfolge aller Bytes in AKKU 1 um (sieheBild 12-15).
31... ...16 15... ...0
0 1 0 1MD10
MD20
1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0L MD10
T MD20
TAD
0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 1 11 0 1 0
Bild 12-15 Umkehren der Reihenfolge der Bytes in AKKU 1 mit der Operation TAD
Beschreibung
TAW
TAD
Umwandlungsoperationen
12-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
12.4 Bilden der Komplemente von Ganzzahlen und Wechseln des Vorzei-chens einer Gleitpunktzahl
Beim Bilden des Einerkomplements einer Ganzzahl im Akkumulator werdendie einzelnen Bits umgekehrt, d. h. die Nullen werden durch Einsen und dieEinsen durch Nullen ersetzt.
Beim Bilden des Zweierkomplements einer Ganzzahl im Akkumulator werdenebenfalls die einzelnen Bits umgekehrt, d. h. die Nullen werden durch Einsenund die Einsen durch Nullen ersetzt. Dann wird +1 zum Inhalt desAkkumulators addiert. Wenn Sie das Zweierkomplement einer Ganzzahl bilden,dann entspricht dies der Multiplikation der Zahl mit –1. Das Wechseln desVorzeichens einer Gleitpunktzahl kehrt das Vorzeichenbit um.
Sie können mit den folgenden Operationen die Komplemente von Ganz-zahlen bilden oder das Vorzeichen einer Gleitpunktzahl wechseln:
Mne-monik
Operation Bedeutung
INVI 1-KomplementGanzzahl (16 Bit)
Diese Operation bildet das Einerkomplement des16-Bit-Werts im niederwertigen Wort von AKKU 1.Das Ergebnis wird im niederwertigen Wort von AKKU 1 gespeichert (siehe Bild 12-16).
INVD 1-KomplementGanzzahl (32 Bit)
Diese Operation bildet das Einerkomplement des32-Bit-Werts in AKKU 1. Das Ergebnis wird in AKKU 1 gespeichert.
NEGI 2-KomplementGanzzahl (16 Bit)
Diese Operation bildet das Zweierkomplement eines 16-Bit-Werts im niederwertigen Wort vonAKKU 1, d. h. sie multipliziert ihn mit -1. DasErgebnis wird im niederwertigen Wort von AKKU 1gespeichert (siehe Bild 12-17). Im Statuswort (sieheKapitel 3.4) setzt die Operation NEGI die Bits A1,A0, OV und OS.
NEGD 2-KomplementGanzzahl (32 Bit)
Diese Operation bildet das Zweierkomplement des32-Bit-Werts in AKKU 1, d. h. sie multipliziert ihnmit -1. Das Ergebnis wird in AKKU 1 gespeichert.Im Statuswort (siehe Kapitel 3.4) setzt die OperationNEGI die Bits A1, A0, OV und OS.
NEGR Vorzeichen einerGleitpunktzahl wech-seln
Diese Operation kehrt das Vorzeichenbit (Bit 31) derGleitpunktzahl (32 Bit, IEEE-FP) in AKKU 1 um(siehe Bild 12-18).
Beschreibung
Umwandlungsoperationen
12-15Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
AWL-Programm
Bitmuster
L DBW30 Lade den Wert von Datenwort DBW30 in das niederwertige Wort von AKKU 1.INVI Bilde das Einerkomplement des Wert im niederwertigen Wort von AKKU 1.T DBW32 Übertrage den Inhalt des niederwertigen Worts von AKKU 1 zu Datenwort DBW32.
0 1 0 1L DBW30
T DBW32
INVI Einerkomplement Ganzzahl
1 1 0 1 0 0 1 1 1 0 0 0
1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1
Bild 12-16 Bilden des Einerkomplements einer Ganzzahl (16 Bit)
AWL-Programm
Bitmuster
L DBW40 Lade den Wert von Datenwort DBW40 in das niederwertige Wort von AKKU 1.NEGI Bilde das Zweierkomplement des Werts im niederwertigen Wort von AKKU 1.T DBW42 Übertrage den Inhalt des niederwertigen Worts von AKKU 1 zu Datenwort DBW42.
0 1 0 1L DBW40
T DBW42
NEGI Zweierkomplement Ganzzahl
1 1 0 1 0 0 1 1 1 0 0 0
1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0
“23.864”Ganzzahl
“–23.864”Ganzzahl
Bild 12-17 Bilden des Zweierkomplements einer Ganzzahl (16 Bit)
Umwandlungsoperationen
12-16Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
1 0 0 0 0 00 0 0 00 0 0 000 0 000 0 01 10 00 0 01 0 0
0 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00100100 0000 1
0 0
037 481112Bits
Mantissen-vorzeichen:V (1 Bit)
151619202324272831
Exponent: e(8 Bit)
e = 27 + 21 = 1301.f � 2e–bias = 1,25 � 23 = 10,0[1,25 � 2(130–127) = 1,25 � 23 = 10,0]
Mantisse: f(23 Bit)
f = 2–2 = 0,25
1 0 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Hexadezimal-wert 4 1 2 0 0 0 0 0
Dezimalwert 10.0
AWL-Programm
L DBD62 Lade den Wert von Datendoppelwort DBD62 in AKKU 1NEGR Kehre das Vorzeichen des Werts in AKKU 1 um.T DBD66 Übertrage den Inhalt von AKKU 1 in Datendoppelwort DBD66.
L DBD62
T DBD66
NEGR Vorzeichen einer Gleitpunktzahlwechseln
Mantissenvorzeichen (0 = positiv, 1 = negativ)
Bild 12-18 Umkehren des Vorzeichens einer Gleitpunktzahl
Umwandlungsoperationen
13-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Wortverknüpfungsoperationen
Im Kapitel finden Sie auf Seite
13.1 Übersicht 13-2
13.2 Wortverknüpfungsoperationen (16 Bit) 13-3
13.3 Wortverknüpfungen (32 Bit) 13-6
Kapitelübersicht
13
13-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
13.1 Übersicht
Durch Wortverknüpfungsoperationen werden Paare von Wörtern (16 Bits)oder Doppelwörtern (32 Bits) entsprechend den Booleschen Verknüpfungenbitweise miteinander verknüpft. Jedes der beiden Wörter oder Doppelwörtermuß sich in einem der beiden Akkumulatoren befinden.
Bei der Verknüpfung von Wörtern wird der Inhalt des niederwertigen Wortsvon AKKU 2 mit dem Inhalt des niederwertigen Worts von AKKU 1verknüpft. Das Verknüpfungsergebnis wird im niederwertigen Wort vonAKKU 1 gespeichert, wobei der alte Inhalt überschrieben wird.
Bei der Verknüpfung von Doppelwörtern wird der Inhalt von AKKU 2 mitdem Inhalt von AKKU 1 verknüpft. Das Verknüpfungsergebnis wird inAKKU 1 gespeichert, wobei der alte Inhalt überschrieben wird.
Beträgt das Verknüpfungsergebnis ”0”, wird das Bit A1 des Statusworts auf”0” zurückgesetzt. Beträgt das Verknüpfungsergebnis nicht ”0”, dann wirddas Bit A1 des Statusworts auf ”1” gesetzt. In jedem Fall werden die Bits A0und OV im Statuswort auf ”0” zurückgesetzt.
Die folgenden Operationen stehen Ihnen für Wortverknüpfungen zurVerfügung:
Mnemonik Operation Bedeutung
UW Und Wort (16 Bit) Verknüpft zwei Wörter bitweise nachder UND-Wahrheitstabelle
OW Oder Wort (16 Bit) Verknüpft zwei Wörter bitweise nachder ODER-Wahrheitstabelle
XOW Exklusiv Oder Wort (16 Bit) Verknüpft zwei Wörter bitweise nachder EXKLUSIV ODER-Wahrheitsta-belle
UD Und Doppelwort (32 Bit) Verknüpft zwei Doppelwörter bitweisenach der UND-Wahrheitstabelle
OD Oder Doppelwort (32 Bit) Verknüpft zwei Doppelwörter bitweisenach der ODER-Wahrheitstabelle
XOD Exklusiv-Oder Doppelwort(32 Bit)
Verknüpft zwei Doppelwörter bitweisenach der EXKLUSIV-ODER-Wahrheitstabelle
Die Operationen UW, OW oder XOW können eine 16-Bit-Konstante alsOperanden verwenden. Die Operation verknüpft den Inhalt desniederwertigen Worts von AKKU 1 mit der 16-Bit-Konstanten.
Die Operationen UD, OD oder XOD können eine 32-Bit-Konstante alsOperanden verwenden.
Beschreibung
Akkumulator-verwaltung
Einfluß auf Bitsdes Statusworts
Welche Operatio-nen stehen Ihnenzur Verfügung?
Konstanten alsOperanden
Wortverknüpfungsoperationen
13-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
13.2 Wortverknüpfungsoperationen (16 Bit)
Die Operationen UW, OW, XOW Und Wort (16 Bit), Oder Wort (16 Bit) undExklusiv-Oder Wort (16 Bit) verknüpfen Wortpaare (16 Bit) bitweiseentsprechend den Booleschen Verknüpfungen.
Mnemonic Operation VKEvor Ausführung
Operand Ergebnisim VKE
UW UND WORT 0011
0101
0001
OW ODER WORT 0011
0101
0111
XOW EXKLUSIV ODERWORT
0011
0101
0110
Bei einer Operation, die 16-Bit-Wörter verknüpft, wird der Inhalt desniederwertigen Worts von AKKU 2 mit dem Inhalt des niederwertigen Wortsvon AKKU 1 verknüpft. Das Verknüpfungsergebnis wird im niederwertigenWort von AKKU 1 gespeichert, wobei der alte Inhalt überschrieben wird. DerInhalt des höherwertigen Worts von AKKU 1 und beide Wörter von AKKU 2bleiben unverändert (siehe Bild 13-1).
AKKU 2
AKKU 1
31 016 15
31 016 15
III
II I
IV III
UW, OW, XOW
II III v. I
Akkumulator-Inhalt vorWortverknüpfungsoperation
VerknüpfungIV
v=verknüpft mit
AKKU 2
AKKU 1
Akkumulator-Inhalt nachWortverknüpfungsoperation
Bild 13-1 Verknüpfen der Inhalte der niederwertigen Wörter von AKKU 2 und 1
Beschreibung
Beziehung zu denAkkumulatoren
Wortverknüpfungsoperationen
13-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Das folgende Programmbeispiel enthält die Operation UW. Bild 13-2 zeigt, wie diese Operation arbeitet.
AWL Erläuterung
L MW10
L MW20
UW
T MW24
Lade den Inhalt von Merkerwort MW10 in AKKU 1.
Lade den Inhalt von Merkerwort MW20 in AKKU 1.Der alte Inhalt von AKKU 1 wird in AKKU 2 geschoben.Der Inhalt des niederwertigen Worts von AKKU 2 wird bitweisenach der UND-Wahrheitstabelle mit dem Inhalt des niederwertigenWorts von AKKU 1 verknüpft. Das Ergebnis wird im niederwertigenWort von AKKU 1 gespeichert.Transferiere den Inhalt von AKKU 1 ins Merkerwort MW24.
15... ...8 7... ...0
0 1 0 1 1 1 1 0 1 0 1 0
1 0 1 0 0 1 0 1 0 1 1 1
0 1 1 0
1 0 1 0
0 0 0 0 0 1 0 0 0 0 1 00 0 1 0
MW10
MW20
MW24
UND bitweise
Bild 13-2 Verknüpfen zweier Wörter mit der Operation UW
Die Operationen UW, OW oder XOW können eine 16-Bit-Konstante alsOperanden verwenden. Die Operation verknüpft den Inhalt desniederwertigen Worts von AKKU 1 mit der 16-Bit-Konstanten, die in derAnweisung angegeben ist. Das Verknüpfungsergebnis wird im niederwertigenWort von AKKU 1 gespeichert. AKKU 2 und das höherwertige Wort vonAKKU 1 bleiben unverändert (siehe Bild 13-3).
31 016 15
31 016 15
IV III
II I
IV III
UW2#, OW2#,XOW2#
II I v. 2#
AKKU 2
AKKU 1
Akkumulator-Inhalt vorWortverknüpfungsoperation
Verknüpfung
v=verknüpft mit
AKKU 2
AKKU 1
Akkumulator-Inhalt nachWortverknüpfungsoperation
Bild 13-3 Verknüpfen des niederwertigen Worts von AKKU 1 mit einer 16-Bit-Konstanten
Beispiel für dieOperation UW
Verknüpfen vonAkkumulator undKonstante
Wortverknüpfungsoperationen
13-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Das folgende Programmbeispiel enthält die Operation UW, die dieVerknüpfung mit einer in der Anweisung angegebenen 16-Bit-Konstantenvornimmt. Bild 13-4 zeigt, wie diese Operation arbeitet.
AWL Erläuterung
L MW10
UW 2#1010_1010_0101_0101
T MW24
Lade den Inhalt von Merkerwort MW10 in AKKU 1.
Der Inhalt des niederwertigen Worts von AKKU 1 wirdnach der UND-Wahrheitstabelle bitweise mit1010_1010_0101_0101 verknüpft. Das Ergebnis wird im niederwertigen Wort von AKKU 1gespeichert.Transferiere den Inhalt von AKKU 1 ins MerkerwortMW24.
15... ...8 7... ...0
0 0 0 0
1 1 1 0 1 0 1 0
1 0 1 0 0 1 0 1
0 1 1 0
1 0 1 0
0 1 0 01 0 1 0
MW10
Wert in der AnweisungUW
MW24
UND bitweise
0 1 0 1
0 0 0 0
0 1 0 1
Bild 13-4 Operation UW mit einer 16-Bit-Konstanten
Beispiel für dieOperation UW miteiner Konstanten
Wortverknüpfungsoperationen
13-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
13.3 Wortverknüpfungen (32 Bit)
Die Operationen Und Doppelwort, Oder Doppelwort und Exklusiv-OderDoppelwort (UD, OD, XOD) verknüpfen Wortpaare (32 Bit) bitweiseentsprechend den Booleschen Verknüpfungen.
Mnemonic Operation VKEvor Ausführung
Operand Ergebnisim VKE
UD UNDDOPPELWORT
0011
0101
0001
OD ODERDOPPELWORT
0011
0101
0111
XOD EXKLUSIV ODERDOPPELWORT
0011
0101
0110
Bei Operationen, die Doppelwörter verknüpfen, wird der Inhalt von AKKU 2mit dem Inhalt von AKKU 1 verknüpft. Das Verknüpfungsergebnis wird inAKKU 1 gespeichert, wobei der alte Inhalt überschrieben wird. Der Inhaltvon AKKU 2 bleibt unverändert (siehe Bild 13-5).
31 016 15
31 016 15
IV III
II I
IV III
UD, OD, XOD
IV v. II III v. I
AKKU 2
AKKU 1
Akkumulator-Inhalt vorWortverknüpfungsoperation
Verknüpfung
v=verknüpft mit
AKKU 2
AKKU 1
Akkumulator-Inhalt nachWortverknüpfungsoperation
Bild 13-5 Verknüpfen der Inhalte von AKKU 2 und 1
Beschreibung
Beziehung zu denAkkumulatoren
Wortverknüpfungsoperationen
13-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Das folgende Programmbeispiel enthält die Operation UD. Bild 13-6 zeigt, wie diese Operation arbeitet.
AWL Erläuterung
L MD10L MD20
UD
T MD24
Lade den Inhalt von Merkerdoppelwort MD10 in AKKU 1.Lade den Inhalt von Merkerdoppelwort MD20 in AKKU 1. Der alte Inhalt von AKKU 1 wird in AKKU 2 geschoben.Der Inhalt von AKKU 2 wird nach der UND-Wahrheitstabelle bit-weise mit dem Inhalt von AKKU 1 verknüpft. Das Ergebnis wird inAKKU 1 gespeichert.Transferiere den Inhalt von AKKU 1 ins Merkerdoppelwort MD24.
0 1 0 1
31... ...16 15... ...0
0 1 1 0MD10
MD20
MD24
UND bitweise
1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 00 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
Bild 13-6 Operation UD
Die Operation UD, OD oder XOD kann eine 32-Bit-Konstante als Operandenverwenden. Die Operation verknüpft den Inhalt von AKKU 1 mit der32-Bit-Konstanten, die in der Anweisung angegeben ist. DasVerknüpfungsergebnis wird in AKKU 1 gespeichert. AKKU 2 bleibtunverändert (siehe Bild 13-7).
31 016 15
31 016 15
IV III
II I
IV III
UD, OD, XODDW#16#
II v. DW#16# I v. DW#16#
AKKU 2
AKKU 1
Akkumulator-Inhalt vorWortverknüpfungsoperation
Verknüpfung
v=verknüpft mit
AKKU 2
AKKU 1
Akkumulator-Inhalt nachWortverknüpfungsoperation
Bild 13-7 Verknüpfen von AKKU 1 mit einer 32-Bit-Konstanten
Beispiel für dieOperation UD
Verknüpfen vonAkkumulator undKonstante
Wortverknüpfungsoperationen
13-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Das folgende Programmbeispiel enthält die Operation UD, die dieVerknüpfung mit einer in der Anweisung angegebenen 32-Bit-Konstantenvornimmt. Bild 13-8 zeigt, wie diese Operation arbeitet.
AWL Erläuterung
L MD10UD DW#16#AAAA_5555
T MD24
Lade den Inhalt von Merkerdoppelwort MD10 in AKKU 1.Der Inhalt von AKKU 1 wird nach der UND-Wahrheitstabelle bit-weise mit DW#16#AAAA_5555 verknüpft. Das Ergebnis wird in AKKU 1 gespeichert.Transferiere den Inhalt von AKKU 1 ins Merkerdoppelwort MD24.
0 1 0 1
31... ...16 15... ...0
0 1 1 0MD10
Wert in der AnweisungUD
MD24
UND bitweise
1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 00 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
Bild 13-8 Operation UD mit einer 32-Bit-Konstanten
Beispiel für dieOperation UD miteiner Konstanten
Wortverknüpfungsoperationen
14-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Schiebe- und Rotieroperationen
Im Kapitel finden Sie auf Seite
14.1 Schiebeoperationen 14-2
14.2 Rotieroperationen 14-6
Kapitelübersicht
14
14-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
14.1 Schiebeoperationen
Mit den Schiebeoperationen können Sie den Inhalt des niederwertigen Wortsvon AKKU 1 oder den Inhalt des gesamten Akkumulators bitweise nach linksoder rechts schieben. Ein Schieben um n Bits nach links multipliziert denAkkumulatorinhalt mit 2n, ein Schieben um n Bits nach rechts dividiert denAkkumulatorinhalt durch 2n. Wenn Sie also beispielsweise das binäreÄquivalent des Dezimalwerts 3 um 3 Bits nach links schieben, so ergibt sichdas binäre Äquivalent des Dezimalwerts 24 im Akkumulator. Schieben Siedas binäre Äquivalent des Dezimalwerts 16 um 2 Bits nach rechts, so ergibtsich das binäre Äquivalent des Dezimalwerts 4 im Akkumulator.
Die Zahl, die auf eine Schiebeoperation oder einen Wert im niederwertigenByte des niederwertigen Worts von AKKU 2 folgt, gibt an, um wieviele Bitsgeschoben werden soll. Die Stellen, die durch die Schiebeoperation frei wer-den, werden entweder mit Nullen oder dem Signalzustand des Vorzeichenbitsaufgefüllt (”0” steht für positiv, ”1” für negativ). Das zuletzt geschobene Bitwird in das Bit A1 des Statusworts geladen (siehe Bild 2-7). Die Bits A0 undOV im Statuswort werden auf ”0” rückgesetzt. Mit den Sprungoperationenkönnen Sie das Bit A1 auswerten.
Die Schiebeoperationen sind absolut, d. h. ihre Ausführung hängt nicht vonbestimmten Bedingungen ab. Sie beeinflussen das Verknüpfungsergebnisnicht.
Die folgenden Operationen schieben den Inhalt des niederwertigen Worts vonAKKU 1 bitweise nach links oder rechts:
� SLW: Schiebe links Wort (16 Bit)
� SRW: Schiebe rechts Wort (16 Bit)
Die folgenden Operationen schieben den gesamten Inhalt von AKKU 1bitweise nach links oder rechts:
� SLD: Schiebe links Doppelwort (32 Bit)
� SRD: Schiebe rechts Doppelwort (32 Bit)
In allen Fällen werden die frei gewordenen Bitpositionen mit Nullen auf-gefüllt.
Das folgende Programmbeispiel und Bild 14-1 zeigen, wie die OperationSLW arbeitet. In Tabelle 14-1 finden Sie eine Zusammenfassung allerSchiebeoperationen.
AWL Erläuterung
L MW10
SLW 6
T MW20
Lade den Inhalt von Merkerwort MW10 ins niederwertige Wort vonAKKU 1.Schiebe die Bits im niederwertigen Wort von AKKU 1 um sechsStellen nach links.Transferiere den Inhalt vom niederwertigen Wort von AKKU 1 insMerkerwort MW20.
Beschreibung
Schiebeoperatio-nen: Zahlen ohneVorzeichen
Schiebe links Wort(16 Bit): SLW
Schiebe- und Rotieroperationen
14-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
15... ...8 7... ...0
0 1 0 1
0 1 0 1 0 1 0 10 0 0 0
0 1 0 01 1 0 1 0 0 0 0
1 1 1 1
0 0 0 0 1 1
6 Stellen
Das zuletzt geschobene Bit wird imBit A1 des Statusworts gespeichert.
Diese fünf Bitsgehenverloren.
Die frei gewordenenStellen werden mitNullen aufgefüllt.
Bild 14-1 Schieben der Bits im niederwertigen Wort von AKKU 1 um sechs Bits nach links
Das folgende Programmbeispiel und Bild 14-2 zeigen, wie die OperationSRD arbeitet. In Tabelle 14-1 finden Sie eine Zusammenfassung allerSchiebeoperationen.
AWL Erläuterung
L +3L MD10
SRDT MD20
Lade den Wert +3 in AKKU 1.Lade den Inhalt von Merkerdoppelwort MD10 in AKKU 1. Der alteInhalt von AKKU 1 (+3) wird in AKKU 2 geschoben.Schiebe die Bits in AKKU 1 um drei Stellen nach rechts.Transferiere den Inhalt von AKKU 1 ins Merkerdoppelwort MD20.
1 1 1
31... ...16 15... ...0
1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
0 1 0 10 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1
3 Stellen
Die frei gewordenenStellen werden mitNullen aufgefüllt.
Das zuletzt geschobene Bit wird imBit A1 des Statusworts gespeichert.
Diese beiden Bitsgehen verloren.
Bild 14-2 Schieben der Bits von AKKU 1 um drei Bits nach rechts
Schiebe rechtsWort (32 Bit): SRD
Schiebe- und Rotieroperationen
14-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Die Operation SSI Schiebe Vorzeichen Ganzzahl (16 Bit) schiebt den Inhaltdes niederwertigen Worts von AKKU 1 einschließlich Vorzeichen bitweisenach rechts.
Die Operation SSD Schiebe Vorzeichen Ganzzahl (32 Bit) schiebt dengesamten Inhalt von AKKU 1 einschließlich Vorzeichen bitweise nach rechts.
Das Vorzeichenbit wird in die freigewordenen Bitpositionen kopiert.
Das folgende Programmbeispiel und Bild 14-3 zeigen, wie die Operation SSIarbeitet. In Tabelle 14-1 finden Sie eine Zusammenfassung allerSchiebeoperationen.
AWL Erläuterung
L MW10
SSI 4
T MW20
Lade den Inhalt von Merkerwort MW10 ins niederwertige Wort vonAKKU 1.
Schiebe die Bits im niederwertigen Wort von AKKU 1 einschließ-lich Vorzeichen um vier Stellen nach rechts.
Transferiere den Inhalt vom niederwertigen Wort von AKKU 1 insMerkerwort MW20.
15... ...8 7... ...0
1 0 1 0
0 0 0 0 1 0 1 01 0 1 0
1 1 1 11 1 1 1 0 0 0 0
1 1 1 1
4 Stellen
Das zuletzt geschobene Bit wirdim Bit A1 des Statusworts gespei-chert.
Die frei gewordenenStellen werden mit demSignalzustand des Vor-zeichenbits aufgefüllt.
1 0 1 0
Diese drei Bitsgehen verloren.
Vorzeichen
Bild 14-3 Schieben der Bits im niederwertigen Wort von AKKU 1 einschließlich Vorzeichen um vier Bits nach rechts
Schiebe-operationen: Zah-len mit Vorzeichen
SchiebeVorzeichenGanzzahl (16 Bit):SSI
Schiebe- und Rotieroperationen
14-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 14-1 Übersicht über die Schiebeoperationen
Operation Betroffener Bereich
Richtung Angabe, um wieviele Stel-len geschoben werden soll
Frei gewor-dene Stellen
ausfüllenmit
Schiebe-bereich 1)
SLW n NiederwertigesWort von AKKU 1
Links in der Anweisung 0 n=0 bis 15
SLW NiederwertigesWort von AKKU 1
Links im niederwertigen Byte desniederwertigen Worts vonAKKU 2
0 0 bis 2552)
SLD n AKKU 1 Links in der Anweisung 0 n=0 bis 32
SLD AKKU 1 Links im niederwertigen Byte desniederwertigen Worts vonAKKU 2
0 0 bis 2553)
SRW n NiederwertigesWort von AKKU 1
Rechts in der Anweisung 0 n=0 bis 15
SRW NiederwertigesWort von AKKU 1
Rechts im niederwertigen Byte desniederwertigen Worts vonAKKU 2
0 0 bis 2552)
SRD n AKKU 1 Rechts in der Anweisung 0 n=0 bis 32
SRD AKKU 1 Rechts im niederwertigen Byte desniederwertigen Worts vonAKKU 2
0 0 bis 2553)
SSI n NiederwertigesWort von AKKU 1
Rechts in der Anweisung Vorzeichenbit n=0 bis 15
SSI NiederwertigesWort von AKKU 1
Rechts im niederwertigen Byte desniederwertigen Worts vonAKKU 2
Vorzeichenbit 0 bis 2554)
SSD n AKKU 1 Rechts in der Anweisung Vorzeichenbit n=0 bis 32
SSD AKKU 1 Rechts im niederwertigen Byte desniederwertigen Worts vonAKKU 2
Vorzeichenbit 0 bis 2555)
1) Beträgt die Anzahl der Bits, um die geschoben werden soll, 0, dann wird die Operation wie eine Nulloperationausgeführt.
2) Bei einem Wert größer als 16, ist das Ergebnis der Schiebefunktion W#16#0000 und A1 = 0.3) Bei einem Wert größer als 32, ist das Ergebnis der Schiebefunktion DW#16#0000_0000 und A1 = 0.4) Bei einem Wert größer als 15, ist das Ergebnis der Schiebefunktion je nach Vorzeichen (0 oder 1) W#16#0000
und A1 = 0 oder W#16#FFFF und A1 = 1.
5) Bei einem Wert größer als 31, ist das Ergebnis der Schiebefunktion je nach Vorzeichen der Anzahl der Bits, diegeschoben werden sollen, DW#16#0000_0000 (A1 = 0) oder DW#16#FFFF_FFFF (A1 = 1).
Schiebe- und Rotieroperationen
14-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
14.2 Rotieroperationen
Mit den Rotieroperationen können Sie den gesamten Inhalt von AKKU 1bitweise nach links oder rechts rotieren. Die Rotieroperationen lösenFunktionen aus, die den in Kapiteln 14.1 beschriebenen Schiebefunktionenähnlich sind. Die frei gewordenen Stellen werden jedoch mit denSignalzuständen der Bits aufgefüllt, die aus dem Akkumulator geschobenwerden.
Die Zahl, die auf die Rotieroperation folgt oder ein Wert im niederwertigenByte des niederwertigen Worts von AKKU 2, gibt an, um wieviele Bitsrotiert werden soll.
Je nach Operation wird die Rotation über das Bit A1 im Statuswort aus-geführt (siehe Kapitel 2.2). Das Bit A0 im Statuswort wird auf ”0” rück-gesetzt.
Folgende Rotieroperationen stehen Ihnen zur Verfügung:
� RLD: Rotiere links Doppelwort (32 Bit).
� RRD: Rotiere rechts Doppelwort (32 Bit).
� RLDA: Rotiere AKKU 1 links über A1-Anzeige (32 Bit).
� RRDA: Rotiere AKKU 1 rechts über A1-Anzeige (32 Bit).
Beträgt die Anzahl der Bits um die rotiert werden soll 0, dann wird dieOperation wie eine Nulloperation durchgeführt.
Tabelle 14-2 Übersicht über die Rotieroperationen
Operation Über A 1rotieren?
Richtung Angabe, um wieviele Stellen rotiertwerden soll
Schiebe-bereich
RLD n Nein Links in der Anweisung n=0 bis 32
RLD Nein Links im niederwertigen Byte des niederwerti-gen Worts von AKKU 2
0 bis 255
RRD n Nein Rechts in der Anweisung n=0 bis 32
RRD Nein Rechts im niederwertigen Byte des niederwerti-gen Worts von AKKU 2
0 bis 255
RLDA Ja Links – 1 (fest)
RRDA Ja Rechts – 1 (fest)
Beschreibung
Schiebe- und Rotieroperationen
14-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
In Tabelle 14-2 finden Sie eine Zusammenfassung aller Rotieroperationen.Das folgende Programmbeispiel und Bild 14-4 zeigen, wie die OperationRLD arbeitet.
AWL Erläuterung
L MD10RLD 3T MD20
Lade den Inhalt von Merkerdoppelwort MD10 in AKKU 1.Rotiere die Bits in AKKU 1 um drei Stellen nach links.Transferiere den Inhalt von AKKU 1 ins Merkerdoppelwort MD20.
1 1 1
31... ...16 15... ...0
1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 1 1 11 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1
3 Stellen
Die drei Bits, um die rotiert wur-de, werden auf die frei geworde-nen Stellen gesetzt.
Das zuletzt rotierte Bit wird inA1 gespeichert.
Bild 14-4 Rotieren der Bits von AKKU 1 um drei Bits nach links
Das folgende Programmbeispiel und Bild 14-5 zeigen, wie die OperationRRD arbeitet.
AWL Erläuterung
L +3L MD10
RRDT MD20
Lade den Wert +3 in AKKU 1.Lade den Inhalt von Merkerdoppelwort MD10 in AKKU 1. Der alteInhalt von AKKU 1 (+3) wird in AKKU 2 geschoben.Rotiere die Bits in AKKU 1 um drei Stellen nach rechts.Transferiere den Inhalt von AKKU 1 ins Merkerdoppelwort MD20.
Rotiere linksDoppelwort(32 Bit): RLD
Rotiere rechtsDoppelwort(32 Bit): RRD
Schiebe- und Rotieroperationen
14-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
1 0 1
31... ...16 15... ...0
1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1
1 1 1 01 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0
3 Stellen
Das zuletzt rotierte Bitwird ebenfalls in A1 ge-speichert.
Die drei Bits, um die rotiert wurde, wer-den auf die frei gewordenen Stellen ge-setzt.
Bild 14-5 Rotieren der Bits von AKKU 1 um drei Bits nach rechts
Das folgende Programmbeispiel und Bild 14-6 zeigen, wie die OperationRLDA arbeitet.
X
1
31... ...16 15... ...0
1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1
1 0 1 00 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 X
1 Stelle
Das zuletzt rotierte Bitwird in A1 gespeichert.
A1
Der Signalzustand desBits A1 wird in die frei ge-wordene Stelle geladen.
Bild 14-6 Rotieren des AKKU 1 über das Bit A1 des Statusworts um ein Bit nach links
Die Operation RRDA arbeitet ähnlich wie die Operation RLDA; der einzigeUnterschied besteht darin, daß in die andere Richtung rotiert wird.
Rotiere AKKU 1links überA1-Anzeige(32 Bit): RLDA
Rotiere AKKU 1rechts überA1-Anzeige(32 Bit): RRDA
Schiebe- und Rotieroperationen
15-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Datenbausteinoperationen
Im Kapitel finden Sie auf Seite
15.1 Öffnen der Datenbausteine 15-2
15.2 Tauschen der Datenbausteinregister 15-2
15.3 Laden der Längen und Nummern von Datenbausteinen 15-3
Kapitelübersicht
15
15-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
15.1 Öffnen der Datenbausteine
Mit der Operation AUF (Aufschlage Datenbaustein) können Sie einenglobalen Datenbaustein oder einen Instanz-Datenbaustein öffnen. Es kanngleichzeitig im Programm je ein globaler Datenbaustein und ein Instanz-Datenbaustein geöffnet sein.
Die Tabellen 15-1 und 15-2 fassen die Operanden und Operandenbereiche derOperation AUF zusammen.
Tabelle 15-1 Operanden der Operation AUF
Daten-baustein-
Maximaler Adreßbereich je nach Adressierungsartbauste n-bereich direkt speicherindirekt
DBDI
1 bis 65 535
[DBW][DIW][LW][MW]
1 bis 65 534
Tabelle 15-2 Operanden der Operation AUF als Parameter transferiert
Art des geöffneten DB Adreßparameterformat
DBpara BLOCK_DB
DIpara
15.2 Tauschen der Datenbausteinregister
Mit der Operation Tausche Global-DB und Instanz-DB (TDB) können SieDatenbausteinregister tauschen. Ein Global-Datenbaustein wird so zumInstanz-Datenbaustein und umgekehrt.
Beschreibung
Adressierungs-format
Beschreibung
Datenbausteinoperationen
15-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
15.3 Laden der Längen und Nummern von Datenbausteinen
Mit den folgenden Operationen können Sie die Länge oder Nummer einesDatenbausteins oder Instanz-Datenbausteins in AKKU 1 laden:
� L DBLG: Lade Länge Global-DB in AKKU. 1
� L DBNO: Lade Nummer Global-DB in AKKU 1.
� L DILG: Lade Länge Instanz-DB in AKKU 1.
� L DINO: Lade Nummer Instanz-DB in AKKU 1.
Das folgende Programmbeispiel zeigt, wie Sie die Operation L DBLGverwenden, um zur Marke FEHL zu springen, wenn die Länge eines Daten-bausteins 50 Byte oder weniger beträgt. Die Anweisung an der Marke FEHLruft die FC 10 auf, die Sie als eine entsprechende Reaktion für den Fallprogrammiert haben, das die Länge des Datenbausteins 50 Byte oder wenigerbeträgt.
AWL Erläuterung
AUF DB40
L DBLG
L +50
<=I
SPB FEHL
U E 0.0= M 1.0
BEA
FEHL: CALL FC10
Öffne Globaldaten-Baustein DB40.
Lade die Länge des geöffneten Datenbausteins in AKKU 1.
Lade die Ganzzahl +50 in AKKU 1. Der alte Inhalt von AKKU 1 (dieLänge des geöffneten Datenbausteins) wird in AKKU 2 bewegt.
Vergleiche den Inhalt von AKKU 2 (die Länge des geöffneten Daten-bausteins) mit dem Inhalt von AKKU 1 (+50).
Wenn die Länge des Datenbausteins kleiner oder gleich +50 ist,springe zur Marke FEHL. Wenn die Länge des Datenbausteins größer+50 ist, gehe zur nächsten Operation.
Das Programm fährt mit einer Operation UND fort.
Beende den aktuellen Baustein, ungeachtet des Verknüpfungsergeb-nisses.
FC10 enthält eine Reaktion für den Fall, daß die Länge des aktuellgeöffneten Bausteins (DB40) kleiner als oder gleich 50 Bytes ist.
Beschreibung
Beispiele
Datenbausteinoperationen
15-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Das folgende Programmbeispiel zeigt, wie Sie die Operation L DBNOverwenden, um den Datenbaustein zu prüfen, der im Augenblick in IhremProgramm geöffnet ist. Mit dieser Operation können Sie feststellen, ob er ineinen bestimmten Bereich von Datenbausteinen fällt, wie z.B. DatenbausteinDB190 bis Datenbaustein DB250.
AWL Erläuterung
L DBNO
L +190
<I
SPB FEHL
L DBNO
L +250
>I
SPB FEHL
SET = M 1.0
BEA
FEHL: CALL FC10
Lade die Nummer des geöffneten Datenbausteins in AKKU 1.
Lade die Ganzzahl +190 als unteren Grenzwert in AKKU 1. Der alteInhalt von AKKU 1 (die Nummer des geöffneten Datenbausteins) wirdin AKKU 2 bewegt.
Vergleiche den Inhalt von AKKU 2 (die Nummer des geöffneten Daten-bausteins) mit dem Inhalt von AKKU 1 (+190).
Wenn die Nummer des Datenbausteins kleiner +190 ist, springe zurMarke FEHL. Wenn die Nummer des Datenbausteins nicht kleiner +190ist, gehe zur nächsten Operation.
Lade die Nummer des geöffneten Datenbausteins in AKKU 1.
Lade die Ganzzahl +250 als oberen Grenzwert in AKKU 1. Der alteInhalt von AKKU 1 (die Nummer des geöffneten Datenbausteins) wirdin AKKU 2 bewegt.
Vergleiche den Inhalt von AKKU 2 (die Nummer des geöffneten Daten-bausteins) mit dem Inhalt von AKKU 1 (+250).
Wenn die Nummer des Datenbausteins größer +250 ist, springe zurMarke FEHL. Wenn die Nummer des Datenbausteins nicht größer +250ist, gehe zur nächsten Operation.
Setze das VKE auf 1.Weise das VKE dem Merker M 1.0 zu.
Beende den aktuellen Baustein, ungeachtet des Verknüpfungsergeb-nisses.
FC10 enthält eine Reaktion für den Fall, daß die Nummer des ak-tuell geöffneten Bausteins nicht im Bereich zwischen 190 und 250liegt.
Datenbausteinoperationen
16-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Sprungoperationen
Im Kapitel finden Sie auf Seite
16.1 Übersicht 16-2
16.2 Absolute Sprungoperationen 16-3
16.3 Vom Verknüpfungsergebnis abhängige Sprungoperationen 16-4
16.4 Von den Bits BIE, OV oder OS des Statusworts abhängigeSprungoperationen
16-5
16.5 Vom Ergebnis in den Bits A1 und A0 des Statuswortsabhängige Sprungoperationen
16-6
16.6 Programmschleife 16-8
Kapitelübersicht
16
16-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
16.1 Übersicht
Mit den folgenden Sprungoperationen und der Operation LOOP können Sieden Programmablauf steuern. Diese Operationen ermöglichen es IhremProgramm, seinen linearen Ablauf zu unterbrechen, um die Bearbeitung aneinem anderen Punkt wiederaufzunehmen. Als Operand einer Sprung-operation bzw. der Operation LOOP dient eine Sprungmarke.
Operation Erläuterung
Absolute Sprungoperationen
SPA Springe absolut
SPL Sprungleiste
Bedingte Sprungoperationen, abhängig vom VKE
SPB Springe, wenn VKE = 1
SPBN Springe, wenn VKE = 0
SPBB Springe, wenn VKE = 1 und rette VKE in BIE
SPBNB Springe, wenn VKE = 0 und rette VKE in BIE
Bedingte Sprungoperationen, abhängig von BIE oder OV/OS
SPBI Springe, wenn BIE = 1
SPBIN Springe, wenn BIE = 0
SPO Springe, wenn OV = 1
SPS Springe, wenn OS = 1
Bedingte Sprungoperationen, abhängig vom Ergebnis einer Operation, codiert in A1und A0
SPZ Springe, wenn Ergebnis = 0
SPN Springe, wenn Ergebnis < > 0
SPP Springe, wenn Ergebnis > 0
SPM Springe, wenn Ergebnis < 0
SPMZ Springe, wenn Ergebnis <=0
SPPZ Springe, wenn Ergebnis >=0
SPU Springe, wenn Ergebnis ungültig
Programmschleife
LOOP Springe, wenn Inhalt von AKKU 1 > 0
Obwohl die Operationen für das Master Control Relay ebenfalls den Pro-grammablauf steuern, werden sie in diesem Kapitel nicht behandelt. Die Be-schreibung der MCR-Operationen finden Sie in den Kapiteln 17.4 und 17.5.
Eine Sprungmarke kann Operand einer Sprungoperation sein oder alsMarkierung für das Ziel einer Sprungoperation dienen. Sie besteht aus max.4 Buchstaben. Das erste Zeichen muß ein Buchstabe sein, die anderenZeichen können Buchstaben oder Zahlen sein (z. B. PRT3). AlsZielmarkierung muß die Sprungmarke zusätzlich mit einem Doppelpunktabgeschlossen werden. Der Sprungmarke muß immer eine Anweisung folgen(z. B. PRT3: NOP 0).
Operationen
Sprungmarke
Sprungoperationen
16-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
16.2 Absolute Sprungoperationen
Mit den folgenden Sprungoperationen können Sie den normalen Ablauf IhresProgramms unabhängig von einer Bedingung unterbrechen:
� SPA: Springe absolut.
� SPL: Sprungleiste.
Die Operation SPA unterbricht den normalen Programmablauf und veranlaßtdas Programm, zu einer Sprungmarke zu springen (dem Operanden derOperation SPA). Die Sprungmarke markiert den Punkt, an dem dasProgramm die Bearbeitung wiederaufnehmen soll. Der Sprung wirdunabhängig von einer Bedingung ausgeführt.
Die Operation SPL ist ein Sprungverteiler. An sie schließt sich eine Reihevon absoluten Sprungmarken an (siehe Bild 16-1). Auf diese Leiste wird inAKKU 1 zugegriffen.
Start
L MB100
SPL LIST
SPA PRT0
SPA PRT1
SPA GEMP
SPA PRT3
LIST: SPA GEMP
PRT0:
SPA GEMP
PRT1:
SPA GEMP
PRT3:
GEMP:
Programm-teil 0
GemeinsamesProgramm
Auswahl gemäßProgrammteilnummer
(Sprungverteiler)
GemeinsamesProgramm
Ende
Sprungverteiler
Laden des Ziels:0 = Springe zu PRT01 = Springe zu PRT12 = Springe zu GEMP3 = Springe zu PRT33 = Springe zu LIST=0 =1 =2 =3 >3
Teil 0 Teil 1 Teil 3
Programm-teil 1
Programm-teil 3
>
Bild 16-1 Steuern des Programmablaufs durch die Operation Sprungleiste (SPL)
Beschreibung
SPA: Springe ab-solut
SPL: Sprungleiste
Sprungoperationen
16-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
16.3 Vom Verknüpfungsergebnis abhängige Sprungoperationen
Die folgenden Sprungoperationen unterbrechen den Programmablauf. IhreAusführung ist vom Verknüpfungsergebnis (VKE) abhängig, das dievorherige Anweisung gebildet hat:
� SPB: Springe, wenn VKE = 1.
� SPBN: Springe, wenn VKE = 0.
� SPBB: Springe, wenn VKE = 1 und speichere das VKE im BIE-Bit desStatusworts.
� SPBNB: Springe, wenn VKE = 0 und speichere das VKE im BIE-Bit desStatusworts.
Unabhängig von der Ausführung des Sprungs werden folgende Bits imStatuswort beschrieben:
OR := 0STA := 1VKE := 1/ER := 0
E 1.0 = 1und E 1.1 = 1
?
Start
Programmteil B
Lösche Inhalt vonMB10.
GemeinsamesProgramm
Nein VKE=1
Ja
VKE=0
Ende
U E 1.0
U E 1.1
SPBN GEMP
L 0
T MB10
GEMP:
Teil B
Gemein-samesProgramm
WennVKE=0
Bild 16-2 Steuern des Programmablaufs durch die Operation SPBN (Springe, wenn VKE = 0)
Beschreibung
Sprungoperationen
16-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
16.4 Von den Bits BIE, OV oder OS des Statusworts abhängige Sprung-operationen
Die folgenden Sprungoperationen unterbrechen den Programmablauf abhän-gig vom Signalzustand eines Bits im Statuswort (siehe Kapitel 2.2).
� SPBI: Springe, wenn BIE = 1 oder SPBIN: Springe, wenn BIE = 0.� SPO: Springe, wenn OV = 1 oder SPS: Springe, wenn OS = 1.
Die Operationen Springe, wenn BIE = 1 (SPBI) und Springe, wenn BIE = 0(SPBIN) setzen die Bits OR und /ER des Statusworts auf ”0” und das STA-Bit auf ”1”. Die Operation SPS setzt das OS-Bit auf ”0” zurück.
Überlaufspeichernd?
Start
Teil C
Lösche<MB10>
Ja
Nein
SPS ODEL
ODEL: L MW12
L MW14
+ I
L MW16
- I
T MW10
SPS PRTC*
SPPZ PRTB
L +10
T MW20
SPA GEMP
PRTB: L +17
T MW30
SPA GEMP
PRTC: L 0
T MW10
GEMP:
Teil A
Teil B
Gemein-samesProgramm
Setze OS-Bitzurück
Berechne<MW10>=<MW12>+<MW14>-<MW16>
Teil A
<MW20> = 10
GemeinsamesProgramm
Ende
Ergebnis<MW10> ≥ 0
Ja
Nein
Teil B
<MW30> = 17
Berechne.
Setze OS-Bitzurück.
Teil C
* Verwenden Sie in diesem Fall nicht dieOperation SPO. Die Operation SPO fragtlediglich die vorherige Operation –I ab, obein Überlauf aufgetreten ist.
Bild 16-3 Steuern des Programmablaufs durch die Operation SPS (Springe, wenn OS = 1)
Beschreibung
Sprungoperationen
16-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
16.5 Vom Inhalt der Bits A1 und A0 des Statusworts abhängige Sprung-operationen
Die folgenden Sprungoperationen unterbrechen den Programmablaufabhängig vom Ergebnis einer vorhergehenden Operation:
� SPZ: Springe, wenn Ergebnis = 0.
� SPN: Springe, wenn Ergebnis < > 0.
� SPP: Springe, wenn Ergebnis > 0.
� SPM: Springe, wenn Ergebnis < 0.
� SPMZ: Springe, wenn Ergebnis <=0 (d.h. kleiner als oder gleich Null).
� SPPZ: Springe, wenn Ergebnis >= 0 (d.h. größer als oder gleich Null,siehe Bild 16-4).
� SPU: Springe, wenn ungültig (d.h. eine der Zahlen in einer arithmetischenOperation mit Gleitpunktzahlen ist keine gültige Gleitpunktzahl).
Abhängig vom Ergebnis der vorhergehenden Operation werden dieAnzeigenbits A1 und A0 des Statusworts beschrieben. Die Signalzuständeder Bits A1 und A0 werden von den bedingten Sprungfunktionenentsprechend Tabelle 16-1 ausgewertet und ausgelöst.
Tabelle 16-1 Beziehung zwischen A1 bzw. A0 und den bedingten Sprungoperationen
SignalzustandRechenergebnis ausgelöste Sprungoperation
A1 A0Rechenergebn s ausgelöste Sprungoperat on
0 0 =0 SPZ
1oder
0
0oder
1<>0 SPN
1 0 >0 SPP
0 1 <0 SPM
0oder
1
0oder
0>=0 SPPZ
0oder
0
0oder
1<=0 SPMZ
1 1 UO (ungültig) SPU
Beschreibung
A1 und A0 imStatuswort
Sprungoperationen
16-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Überlaufspeichernd?
Start
Teil C
Lösche<MB10>
Ja
Nein
SPS ODEL
ODEL L MW12
L MW14
+ I
L MW16
- I
T MW10
SPS PRTC*
SPPZ PRTB
L +10
T MW20
SPA GEMP
PRTB: L +17
T MW30
SPA GEMP
PRTC: L 0
T MW10
GEMP:
Teil A
Teil B
GemeinsamesProgramm
Setze OS-Bitzurück
Berechne<MW10>=<MW12>+<MW14>-<MW16>
Teil A
<MW20> = 10
GemeinsamesProgramm
Ende
Ergebnis<MW10> >= 0
Ja
Nein
Teil B
<MW30> = 17
Berechne
Setze OS-Bitzurück.
Teil C
* Verwenden Sie in diesem Fall nicht dieOperation SPO. Die Operation SPO fragtlediglich die vorherige Operation –I ab,wenn ein Überlauf aufgetreten ist.
Bild 16-4 Steuern des Programmablaufs durch die Operation SPPZ (Springe, wenn Ergebnis > = 0)
Sprungoperationen
16-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
16.6 Programmschleife
Mit der Operation LOOP (Programmschleife) können Sie einen Programmteilmehrmals aufrufen (siehe Bild 16-5). Die Operation LOOP vermindert dasniederwertige Wort von AKKU 1 um ”1”. Danach wird der Wert imniederwertigen Wort von AKKU 1 überprüft. Beträgt er nicht ”0”, dann wirdein Sprung zu der Marke in der Operation LOOP ausgeführt; andernfalls wirddie nächste Operation ausgeführt.
Sie versehen die Operation LOOP mit einer Sprungmarke, so daß sie dieStelle kennt, an die sie im Programm zurückkehren soll. Die OperationLOOP im Programm, das in Bild 16-5 gezeigt ist, hat als Operand dieSprungmarke NSTE. Durch diese Sprungmarke wird festgelegt, daß dieOperation zur Anweisung T MB 10 im Programm zurückkehrt. An dieserStelle wird Programmteil A bearbeitet. Die Operation LOOP kehrt so oft zurSprungmarke zurück, wie es im niederwertigen Wort von AKKU 1angegeben ist. Eine Möglichkeit zur Eingabe dieser Information bestehtdarin, einen Loop-Zähler zu setzen und diesen in den Akkumulator zu laden.
Loop-Zähler<>0?
Start
Programmteil A
Ja
Nein
Ende
L +5
NSTE: T MB10
L MB10
LOOP NSTE
Teil A
Initialisiere Loop-Zähler
DekrementiereLoop-Zähler um 1
InitialisiereLoop-Zähler
Bild 16-5 Mehrfachaufruf eines Programmteils mit der Operation LOOP
Beschreibung
Sprungmarke mitOperand versehen
Sprungoperationen
16-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Sie versehen eine Operation LOOP über den AKKU 1 mit einem Wert, derangibt, wie oft LOOP einen bestimmten Programmteil aufrufen soll.
Die Operation LOOP interpretiert den Loop-Zähler als Datentyp WORD.
In Tabelle 16-2 finden Sie die zwei möglichen Formate für einenLoop-Zähler.
Tabelle 16-2 Mögliches Format für einen Loop-Zähler
Wert Wertbereich Datentyp Speicherbereich
Ganzzahl1 bis 65535
(nur positiver Wert)WORD E, A, M, D, L
WortW#16#0001 bis
W#16#FFFFWORD E, A, M, D, L
Um zu vermeiden, daß eine Programmschleife öfter als notwendig ausgeführtwird, sollten Sie die folgenden Eigenschaften der Operation LOOPberücksichtigen:
� Wenn Sie den Loop-Zähler mit einer ”0” initialisieren, wird die Schleife65 535mal ausgeführt.
� Eine Initialisierung des Loop-Zählers mit negativen Ganzzahlen solltevermieden werden.
Setzen eines Loop-Zählers
Wie Sie dieOperation LOOPwirkungsvollverwenden
Sprungoperationen
16-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Sprungoperationen
17-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Operationen zur Programmsteuerung
Im Kapitel finden Sie auf Seite
17.1 Parametrierung bei Aufruf von FCs und FBs 17-2
17.2 Aufrufen der Funktionen und Funktionsbausteine mitCALL
17-3
17.3 Aufrufen der Funktionen und Funktionsbausteine mit CCund UC
17-7
17.4 Funktionen des Master Control Relay 17-10
17.5 Operationen für das Master Control Relay 17-11
17.6 Bausteinende 17-16
Kapitelübersicht
17
17-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
17.1 Parametrierung bei Aufruf von FCs und FBs
Für den Aufruf von parametrierbaren Bausteinen sind die beiden BegriffeFormalparameter und Aktualparameter wichtig.
Ein Formalparameter ist ein Parameter, dessen Name und Datentyp bei derErstellung des parametrierbaren Bausteins festgelegt und zum Beispiel alsINPUT oder OUTPUT deklariert wurde. Beim Aufruf des Bausteins (z. B.CALL SFC 31) im inkrementellen Editor zeigt STEP 7 automatisch die Listeder Formalparameter an.
Diesen Formalparametern müssen Sie dann Aktualparameter zuweisen. EinAktualparameter ist ein Parameter, mit dessen Wert die Funktion oder derFunktionsbaustein zur Laufzeit des Anwenderprogramms arbeitet.
Das folgende Bild zeigt den Aufruf der SFC 31 ”QRY_TINT” (Uhrzeitalarmabfragen) in AWL.
Darstellung AWL
CALL SFC 31 OB_NR := 10 RET_VAL:= MW 22 STATUS := MW 100
Formalparameter
Aktualparameter
Begriffe
Operationen zur Programmsteuerung
17-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
17.2 Aufrufen der Funktionen und Funktionsbausteine mit CALL
Mit der Operation Bausteinaufruf (CALL) können Sie Funktionen (FCs) undFunktionsbausteine (FBs) aufrufen, die Sie selbst für Ihr Programm erstellthaben oder die Sie von Siemens als Standardfunktionen und Standardfunk-tionsbausteine erhalten haben. Die Operation CALL ruft die FC oder den FBauf, die bzw. den Sie als Operanden angeben, unabhängig vomVerknüpfungsergebnis oder einer beliebigen anderen Bedingung.
Wenn Sie mit der Operation CALL einen Funktionsbaustein aufrufen, müssenSie ihn mit einem Instanz-Datenbaustein (Instanz-DB) versehen oder alslokale Instanz deklarieren. In diesem Instanz-Datenbaustein werden alle sta-tischen Variablen und Aktualparameter des Funktionsbausteins gespeichert.
Informationen darüber, wie Sie eine Funktion oder einen Funktionsbausteinprogrammieren bzw. wie Sie mit ihren Parametern arbeiten können, findenSie in der Online-Hilfe zu STEP 7.
Beim Aufruf einer Funktion (FC) oder eines Funktionsbausteins (FB) müssenSie den bei der Bausteinvereinbarung definierten Formalparameternentsprechende Aktualparameter zuweisen.
Der Aktualparameter, der beim Aufrufen eines Funktionsbausteins angegebenwird, muß denselben Datentyp wie der Formalparameter haben.
Die Aktualparameter, die beim Aufrufen einer Funktion oder einesFunktionsbausteins verwendet werden, werden in der Regel als symbolischeNamen angegeben. Die absolute Adressierung von Aktualparametern ist nurbei Operanden möglich, deren maximale Größe ein Doppelwort beträgt(z. B. E 1.0, MB2, AW4, ED0).
Wenn Sie Funktionen aufrufen, müssen alle Formalparameter mit Aktual-parametern versehen sein. Wenn Sie Funktionsbausteine aufrufen, müssen Sienur die Aktualparameter angeben, die sich gegenüber dem letzten Aufrufändern sollen (die Aktualparameter bleiben nach Bearbeitung des FB imInstanz-DB gespeichert).
Wenn Sie einen Funktionsbaustein aufrufen, kopiert die Operation CALLeinen der folgenden Werte in den Instanz-Datenbaustein des Funktions-bausteins, je nach dem Datentyp des Aktualparameters und nach derDeklaration des Formalparameters (EIN, AUS, EIN-AUS).
� Wert des Aktualparameters
� Pointer zum Operanden des Aktualparameters
� Pointer zum L-Stack des aufrufenden Bausteins, in dem der Wert desAktualparameters gepuffert wurde.
Beschreibung
Formal- undAktualparameter
Angeben derAktualparameter
Operationen zur Programmsteuerung
17-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Der Aufruf erfolgt unter Angabe
� des Funktionsbausteinnamens,
� des Instanz-Datenbausteinnamens sowie
� der Parameterversorgung (Ist der Aktualparameter ein Datenbaustein,muß immer die vollständige, absolute Adresse angegeben werden, z. B.DB1.DBW2).
Der Aufruf kann absolut oder symbolisch erfolgen.
Absoluter Aufruf:
CALL FBx,DBy ( Parameterversorgung );
x = Bausteinnummery = Datenbausteinnummer
Symbolischer Aufruf:
CALL fbname,datenbausteinname (Parameterversorgung);
fbname = symbolischer Bausteinnamedatenbausteinname = symbolischer Datenbausteinname
Im folgenden Programmbeispiel wird der Funktionsbaustein FB40 mit demInstanz-Datenbaustein DB41 aufgerufen. In diesem Beispiel haben dieFormalparameter folgende Datentypen:
EIN1: BOOL EIN2: WORD AUS1: DWORD
AWL Erläuterung
CALL FB40,DB41
EIN1:= E 1.0
EIN2:= MW2
AUS1:= MD20
L MD20
Aufruf von Funktionsbaustein FB40 mit Instanz-DatenbausteinDB41.EIN1 (Formalparameter) wird E 1.0 (Aktualparameter) zugeordnet.
EIN2 (Formalparameter) wird MW2 (Aktualparameter) zugeordnet.
AUS1 (Formalparameter) wird MD20 (Aktualparameter) zugeordnet.
Mit dieser Operation greift das Programm auf den FormalparameterAUS1 zu.
Im folgenden Beispiel wird der Funktionsbaustein FB50 mit dem Instanz-Datenbaustein DB51 aufgerufen. In diesem Beispiel haben die Formal-parameter folgende Datentypen:
EIN10: BOOL AUS11: STRUCT V1: BOOL V2: INT END_STRUCT
Aufrufen eines FBmit Instanz-DB undBaustein-parametern
Beispiele
Operationen zur Programmsteuerung
17-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
AWL Erläuterung
CALL FB50,DB51
EIN10:= E1.0
AUS11:= AKTPA11
Aufruf von Funktionsbaustein FB50 mit Instanz-DatenbausteinDB51.EIN10 (Formalparameter) wird E 1.0 (Aktualparameter) zugeordnet.
In diesem Fall ist es nicht möglich, einen absoluten Aktualpara-meter anzugeben (z. B. MW10), da der Formalparameter AUS11 alsStruktur definiert wurde. Stattdessen wurde der symbolischeAktualparameter AKTPA11 angegeben. Bitte beachten Sie, daß AKT-PA11 die gleiche Struktur wie der Formalparameter AUS11 habenmuß.
Der Zugriff auf die Werte der Struktur AUS11 in FB50 geschieht auffolgende Weise:
AWL Erläuterung
U AUS11.V1L AUS11.V2
Führe eine UND-Verknüpfung des Bits AUS11.V1 aus.Lade Wort AUS11.V2 in AKKU 1.
Der Aufruf erfolgt unter Angabe
� des Instanznamens (= Name einer statischen Variable vom Typ FB z)sowie
� der Parameterversorgung.
Der Aufruf ist immer symbolisch.
CALL Instanzname (Parameterversorgung);
AWL Erläuterung
FUNCTION_BLOCK FB 11VARloc_inst : FB 10;END_VARBEGIN NETWORKCALL #loc_inst (in_bool := M 0.0);
Quelldatei
Deklaration der Multiinstanz vom Datentyp FB 10
Aufruf der Multiinstanz mit SyntaxParameterversorgung(in_bool ist dabei eine im FB 10 deklarierte Variable)
Aufrufen vonMultiinstanzen
Operationen zur Programmsteuerung
17-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Der Aufruf erfolgt unter Angabe
� des Funktionsbausteinnamens sowie
� der Parameterversorgung.
Der Aufruf kann absolut oder symbolisch erfolgen.
Absoluter Aufruf:
CALL FCx ( Parameterversorgung );
x = Bausteinnummer
Symbolischer Aufruf:
CALL fcname (Parameterversorgung);
fcname = symbolischer Bausteinname
Im folgenden Programmbeispiel wird die Funktion FC80 mit Baustein-parametern aufgerufen. In diesem Beispiel haben die Formalparameterfolgende Datentypen:
INK1: BOOL INK2: INT AUS: WORD
AWL Erläuterung
CALL FC80INK1:= M 1.0
INK2:= EW2
AUS:= AW4
Aufruf von Funktion FC80.INK1 (Formalparameter) wird M 1.0 (Aktualparameter) zugeordnet.
INK2 (Formalparameter) wird EW2 (Aktualparameter) zugeordnet.
AUS (Formalparameter) wird AW4 (Aktualparameter) zugeordnet.
Sie können eine Funktion (FC) erstellen, die einen Rückgabewert liefert(RET_VAL). Möchten Sie beispielsweise eine Rechenoperation mitGleitpunktzahlen erstellen, können Sie diesen Rückgabewert als Ausgang fürdas Ergebnis der Funktion verwenden. Wenn Sie die Funktion in IhremProgramm aufrufen, stellen Sie den Ausgang RET_VAL mit einerDoppelwortadresse zur Verfügung, so daß diese das 32-Bit-Ergebnis derRechenoperation aufnehmen kann.
Aufrufen einer FCmit Baustein-parametern
Beispiel
Aufrufen einer FC,die einen Rück-gabewert liefert
Operationen zur Programmsteuerung
17-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
17.3 Aufrufen der Funktionen und Funktionsbausteine mit CC und UC
Mit den folgenden Operationen können Sie Funktionen (FC) undFunktionsbausteine (FB) auf die gleiche Weise wie mit der Operation CALLaufrufen. Sie können jedoch keine Parameter übergeben.
� Bedingter Bausteinaufruf (CC): Diese Operation ruft die Funktion bzw.den Funktionsbaustein auf, die Sie als Operanden angegeben haben. DerAufruf wird nur ausgeführt, wenn das Verknüpfungsergebnis ”1” beträgt.
� Unbedingter Bausteinaufruf (UC): Diese Operation ruft die Funktion bzw.den Funktionsbaustein auf, die Sie als Operanden angegeben haben. DerAufruf wird unabhängig vom Verknüpfungsergebnis oder einer beliebigenanderen Bedingung ausgeführt.
Bei Aufruf eines Funktionsbausteins (FB) mit der Operation CC oder UCkann dem Operanden kein Datenbaustein zugeordnet werden.
Die Operationen CC oder UC können FC und FB durch direkte oderspeicherindirekte Adressierung bzw. über als Parameter übergebene FC undFB aufrufen (siehe Tabellen 17-1 und 17-2). Der Operand ist FC bzw. FBplus die Angabe der Nummer der Funktion oder des Funktionsbausteins.
Tabelle 17-1 Operanden der Operationen CC und UC: direkte und indirekteAdressierung
FC- oderFB-Teil des
Maximaler Adreßbereich je nach AdressierungsartFB-Te l desOperanden direkt speicherindirekt
FCFB
0 bis 65 535
[DBW][DIW][LW][MW]
0 bis 65 534
Tabelle 17-2 Operanden der Operationen CC und UC: FC als Parameter transferiert
Operand Adreßparameterarten
Name des Formalpa-rameters oder ein
symbolischer Name
BLOCK_FC1
BLOCK_FB1
1 Parameter des Typs BLOCK_FC bzw. BLOCK_FB können mit der Operation CC in FCs und FBs nicht verwendet werden.
Einen FC, den Sie selbst erstellt und dem Sie beispielsweise die Nummer 12gegeben haben, können Sie mit einer der beiden folgenden Operationenaufrufen. Welche Operation Sie wählen, hängt davon ab, ob Sie den Bausteinkonditioniert oder unkonditioniert aufrufen wollen:
CC FC12 (Rufe FC12 auf, wenn VKE gleich ”1” ist)UC FC12 (Rufe FC12 unabhängig vom VKE auf)
Beschreibung
Adressierungs-format
Beispiel
Operationen zur Programmsteuerung
17-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Abhängig vom Datentyp haben Sie verschiedene Möglichkeiten, beim Aufrufeiner Funktion oder eines Funktionsbausteins dem Formalparameter einenAktualparameter zuzuweisen. Die folgende Tabelle ist geordnet nach derLänge des Datentyps:
Tabelle 17-3 Zuweisung von Aktualparametern
FormalparameterD t t
Beispiel für Zuweisung eines Aktualparametersvom Datentyp ... Direkte Eingabe (Wert) Eingabe eines
GlobaldatumsEingabe
symbolisch1
BOOL (Bit) TRUE M 100.0
E 0.0
A 0.0
DBX 3.0
#OK_MERKER
BYTE (Byte) B#16#1F MB 100
EB 0
AB 0
#TYP_BYTE
CHAR ’K’ DBB 1 #TYP_CHAR
WORD (Wort) W#16#1F12
2#0001_1111_0001_0010
C#32
B#(5,25)
MW 100
EW 0
AW 0
DBW 2
#TYP_WORT
INT (Ganzzahl) 27
–25
#TYP_INT
S5TIME (S5-Zeit) S5T#10MS #TYP_S5_TIME
DATE (IEC-Datum) D#1995–12–24 #TYP_DATE
DWORD (Doppelwort) DW#16#FFFF_0F02
2#0001_1111_0001_0010_0001_1111_0001_0010
B#(5,4,59,8)
MD 100
ED 0
AD 0
DBD 4
#TYP_DWORT
DINT (Doppel-Ganz-zahl)
L#170
L#-350
#TYP_DINT
REAL (Gleitpunktzahl) 1.23 #TYP_REAL
TIME (IEC-Zeit) T#20MS #TYP_TIME
TIME_OF_DAY (IEC-Uhrzeit)
TOD#23:59:12.3 #TYP_TOD
Zuweisung vonAktualparametern
Operationen zur Programmsteuerung
17-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle 17-3 Zuweisung von Aktualparametern, Fortsetzung
FormalparameterD t t
Beispiel für Zuweisung eines Aktualparametersvom Datentyp ... Direkte Eingabe (Wert) Eingabe eines
GlobaldatumsEingabe
symbolisch1
DATE_AND_TIME(IEC-Datum undUhrzeit)
nicht möglich
(Variable muß z. B. als temporäre Variable deklariertwerden)
#TYP_8_BYTE
ANY (Datentyp”beliebigen” Typsund ”beliebiger”Größe)
P#M0.0 BYTE20
20 Bytes 2 ...... ab Merker 0.0 3
Präfix für ANY-Pointer
P#DB58.DBX16.0 BYTE14
14 Bytes 2 ...... im DB58 ab Datenbit 16.0 3
Präfix für ANY-Pointer
E 0.0
MB 5
AW 2
(Verwendung vonbeliebigenSTEP 7-Globalope-randen möglich)
#TYP_ANYTYP
(Deklaration vonFeldern undStrukturen)
1 Voraussetzung: Bei Globaldaten müssen Sie den Namen (=Symbol) in der globalen Symboltabelle festlegen, bevorSie das Symbol als Aktualparameter verwenden können. Bei Lokaldaten müssen Sie den Namen (=Symbol) in derDeklarationstabelle des Bausteins festlegen, bevor Sie das Symbol als Aktualparameter verwenden können.Bei Lokaldaten müssen Sie dem Symbol das Zeichen # voranstellen.
2 Die Längenangabe dürfen elementare Datentypen sein, z. B. BOOL, BYTE, WORD oder DWORD bzw. zusammen-gesetzte Datentypen, z. B. DATE_AND_TIME.
3 Immer eine Bitadresse angeben; bei Längenangaben immer Bitadresse 0 eingeben (Ausnahme: BOOL).
Um eine SFC bedingt aufzurufen in der Programmiersprache AWL, könnenSie zum Beispiel folgende Sequenz von Anweisungen benutzen:
AWL Erläuterung
U #OK_MERKERSPBNB m001CALL SFC 28 OB_NR := 10 SDT := #OUT_UHRZEIT_DATUM PERIOD := W#16#1201 RET_VAL := MW 200
m001: U BIE= M 202.3
Bedingung für den Aufruf.Falls die Bedingung nicht erfüllt ist(VKE=0), wird der Aufruf der SFC über-sprungen und das VKE in das StatusbitBIE gerettet.
Abfrage des Statusbits BIE
Bedingter Aufruf inAWL
Operationen zur Programmsteuerung
17-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
17.4 Funktionen des Master Control Relay
Das Master Control Relay (MCR) wird in Relais-Kontaktplänen für dasAktivieren und Deaktivieren des Signalflusses (Strompfad) verwendet. Eindeaktivierter Strompfad entspricht einer Operationsfolge, die einen Nullwertstatt des errechneten Wertes schreibt bzw. einer Operationsfolge, die denbestehenden Speicherwert unverändert läßt. Operationen, die durch diefolgenden Verknüpfungs- oder Transferoperationen ausgelöst werden, hängenvom MCR ab:
� =
� S
� R
� T (mit Byte, Wort oder Doppelwort verwendet)
Die Operation T, die mit Byte, Wort oder Doppelwort verwendet wird, unddie Operation = schreiben eine ”0” in den Speicher, wenn das MCR ”0” ist.Die Operationen S und R verändern den bestehenden Wert nicht.
Tabelle 17-4 Vom MCR abhängige Operationen und ihre Reaktionen auf den Signal-zustand des MCR
Signalzu-stand des
MCR
= S oder R T
0 Schreibt ”0”
(Imitiert ein Relais,das bei Spannungs-abfall in seinen Ruhe-zustand geht.)
Schreibt nicht
(Imitiert ein Relais,das bei Spannungs-abfall in seinem ak-tuellen Zustandbleibt.)
Schreibt ”0”
(Imitiert eine Kompo-nente, die bei Span-nungsausfall einenWert von ”0” liefert.)
1 Normale Bearbeitung Normale Bearbeitung Normale Bearbeitung
Beschreibung
Operationen zur Programmsteuerung
17-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
17.5 Operationen für das Master Control Relay
Mit den folgenden Operationen können Sie ein Master Control Relaybearbeiten:
� MCRA Aktiviere MCR-Bereich
� MCRD Deaktiviere MCR-Bereich
� MCR( VKE in MCR-Stack sichern, Beginn MCR-Bereich
� )MCR Beende MCR-Bereich
Die folgenden Operationen aktivieren oder deaktivieren den MCR-Bereich,d. h., sie geben an, welche Operationen in Ihrem Programm vom MCRabhängen (siehe auch Bild 17-2):
� Aktiviere MCR-Bereich: MCRA
� Deaktiviere MCR-Bereich: MCRD
Die Operationen, die zwischen MCRA und MCRD programmiert sind,hängen vom Signalzustand des MCR-Bits ab. Die Operationen, die außerhalbeiner MCRA-MCRD-Sequenz programmiert sind, sind vom Signalzustanddes MCR-Bits unabhängig. Fehlt eine Operation MCRD, dann hängen dieOperationen, die zwischen den Operationen MCRA und BEA programmiertsind, vom MCR-Bit ab (siehe Bild 17-1).
Die Abhängigkeit der Funktionen (FC) und Funktionsbausteine (FB) vomMCR müssen Sie in den Bausteinen selbst programmieren. Wird dieseFunktion oder dieser Funktionsbaustein aus einer MCRA-MCRD-Sequenzaufgerufen, dann sind nicht automatisch alle Anweisungen innerhalb dieserSequenz vom MCR-Bit abhängig. Um die Operationen in einemaufgerufenen Baustein vom MCR-Bit abhängig zu machen, müssen Sie dieOperation MCRA des aufgerufenen Bausteins verwenden.
!Gefahr
Verwenden Sie die Operation MCR niemals als NOT-AUS- oder Sicherheits-einrichtung für Personen.
Übersicht
Beschreibung:MCRA, MCRD
Operationen zur Programmsteuerung
17-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
OB1
MCRA
MCRD
MCRA
MCRA
MCRA
MCRD
BEA
BEA
Vom MCR-Bit abhängige Operationen
Vom MCR-Bit unabhängige Operationen
CALL FBx
FBx FCy
CALL FCy
ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
Bild 17-1 Aktivieren und Deaktivieren eines MCR-Bereichs
Operationen zur Programmsteuerung
17-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Die folgenden Operationen schalten die Funktion des Master Control Relayein oder aus:
� Sichere VKE im MCR-Stack, Beginn MCR-Bereich: MCR(
� Beende MCR-Bereich: )MCR
Sie können die Operationen MCR( und )MCR schachteln. Die maximaleSchachtelungstiefe beträgt acht, d. h. Sie können maximal achtMCR(-Operationen hintereinander schreiben, bevor Sie die Operation )MCReinfügen. Sie müssen die gleiche Anzahl von MCR(- und )MCR-Operationenprogrammieren (siehe Bild 17-3).
Sind MCR(-Operationen geschachtelt, dann wird das MCR-Bit der tieferenSchachtelungsebenen gebildet durch Verknüpfen des aktuellen VKE derOperation MCR( mit dem aktuellen MCR-Bit nach der UND-Wahrheits-tabelle.
Wenn eine Operation )MCR eine Schachtelungsebene beendet, holt sie dasMCR-Bit aus der nächsthöheren Ebene. Die Operation ) MCR der höchstenEbene setzt das MCR-Bit auf ”1”.
Die Operation MCR( und )MCR müssen Sie in Ihrem Programm immer paar-weise verwenden.
Bild 17-2 zeigt, wie ein Master Control Relay implementiert wird.
Der MCR-Kontakt wird geschlossen, wenn das MCR-Bit ”1” beträgt. DieSignalzustände der Ausgänge A 4.0 und A 4.1 werden nach dem Signal-zustand der Eingänge E 1.0 bis E 1.3 und ihren Verknüpfungen berechnet.
Der MCR-Kontakt wird geöffnet, wenn das MCR-Bit ”0” beträgt. DieAusgänge A 4.0 und A 4.1 werden auf ”0” rückgesetzt, und zwar unabhängigvon den Signalzuständen der Eingänge E 1.0 bis E 1.3.
Stromschiene
E 2.0
MCR-Kontakt
MCR-Spule
Master Control Relay durchdie Operationen MCR( und)MCR implementiert.
E 1.0 E 1.1
A 4.0 A 4.1
E 1.2
E 1.3
MCRAU E 2.0MCR(O E 1.0O E 1.1= A 4.0U E 1.2U E 1.3= A 4.1)MCRMCRD
Durch das MCR (Master Control Relay)gesteuerter Bereich, implementiert durchdie Operationen MCRA und MCRD.
Relais-SchaltplanAWL
Bild 17-2 Implementieren eines Master Control Relay
Beschreibung:MCR(, )MCR
Beispiel
Operationen zur Programmsteuerung
17-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Bild 17-3 zeigt, wie die Operationen zur Schachtelung verwendet werdenkönnen.
MCRAU E 1.1MCR (U E 1.2MCR (U E 1.3MCR (
S M 1.0)MCR
S M 1.1)MCR
)MCRMCRD
1
1
0
1
1
0
Abfrage-ergebnis
Signal-zustand
VKE MCR-Bit der Ebene
Dieses Bit (M 1.0) bleibt unverändert,unabhängig von jeder vorherigenVerknüpfungskette, da das MCR-Bit= 0 ist.
AWL
00000
Dieses Bit (M 1.1) wird aufgrund dervorherigen Verknüpfungskette undder Funktion der Operation Sverändert, da das MCR-Bit = 1 ist.
1
1
1111
1
1
0
1
1
1111
* Das MCR-Bit der tieferen Schachtelungsebene wird gebildet. Dazu verknüpft die Operation MCR( das aktuelle VKE mit dem MCR-Bit der aktuellen Schachtelungsebene gemäß der UND-Wahrheitstabelle.
** Wenn die Operation )MCR eine Schachtelungsebene beendet, holt die Operation das MCR-Bit der nächsthöheren Ebene.
**
*
1 2 3
Bild 17-3 Schachtelung der MCR-Operationen
Operationen zur Programmsteuerung
17-15Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Wichtige Hinweise zur Benutzung der MCR-Funktionalität
Vorsicht bei Bausteinen, in denen mit MCRA das Master Control Relay akti-viert wurde:
� Wenn das MCR abgeschaltet ist, wird in Programmabschnitten zwischenMCR( und )MCR durch alle Zuweisungen (T=) der Wert 0 geschrieben!
� Das MCR ist genau dann abgeeschaltet, wenn vor einem MCR(-Befehldas VKE=0 war.
!Gefahr
STOP des AS oder undefiniertes Laufzeitverhalten!
Der Compiler greift für Adeßberechnungen auch schreibend auf Lokaldatenhinter den in VAR_TEMP definierten temporären Variablen zu. Daher setzenfolgende Befehlssequenzen das AS in STOP oder führen zu undefiniertemLaufzeitverhalten:
Formalparameterzugriffe
� Zugriffe auf Komponenten komplexer FC-Parameter vom Typ STRUCT,UDT, ARRAY, STRING
� Zugriffe auf Komponenten komplexer FB-Parameter vom Typ STRUCT,UDT, ARRAY, STRING aus dem Bereich IN_OUT in einem Bausteinder Bausteinversion 2.
� Zugriffe auf Parameter eines FB der Bausteinversion 2, wenn ihreAdresse größer als 8180.0 ist.
� Zugriff im FB mit Bausteinversion 2 auf einen Parameter vom TypBLOCK_DB schlägt den DB 0 auf. Nachfolgende Datenzugriffe bringendie CPU in STOP. Bei TIMER, COUNTER, BLOCK_FC, BLOCK_FBwird auch immer T 0, Z 0. FC 0 bzw. FB 0 verwendet.
Parameterübergabe
� Calls, bei denen Parameter übergeben werden.
KOP/FUP
� T-Abzweige und Konnektoren in KOP oder FUP starten mit VKE=0.
Abhilfe
Lösen Sie die genannten Befehle aus der MCR-Abhängigkeit:
1. Deaktivieren Sie das Master Control Relay mit dem MCRD-Befehl vorder betreffenden Anweisung bzw. vor dem betreffenden Netzwerk.
2. Aktivieren Sie das Master Control Relay mit dem MCRA-Befehl nachder betreffenden Anweisung bzw. nach dem betreffenden Netzwerk.
Operationen zur Programmsteuerung
17-16Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
17.6 Bausteinende
Die Operation Bausteinende ist eine Programmieranweisung, die dieBearbeitung eines Bausteins beendet. Sie können mit einer der beidenfolgenden Operationen einen Baustein beenden:
� Bausteinende absolut (BEA): Diese Operation beendet die Bearbeitungdes aktuellen Bausteins und übergibt die Steuerung wieder an denBaustein, der den gerade beendeten Baustein aufgerufen hat. Wenn dasProgramm auf die Operation BEA stößt, beendet es den aktuellenBaustein, unabhängig vom Verknüpfungsergebnis.
� Bausteinende bedingt (BEB): Diese Operation beendet die Bearbeitungdes aktuellen Bausteins und übergibt die Steuerung wieder an denBaustein, der den gerade beendeten Baustein aufgerufen hat. Wenn dasProgramm auf die Operation BEB stößt, beendet es den aktuellenBaustein nur, wenn das Verknüpfungsergebnis ”1” ist (VKE = 1). Wenndas VKE ”0” ist, führt das Programm die Operation Bausteinende nichtaus. Das VKE wird auf ”1” gesetzt und die Programmbearbeitung imaktuellen Baustein fortgesetzt.
Beschreibung
Operationen zur Programmsteuerung
Alphabetische Liste derOperationen A
Programmierbeispiele B
Quelldateien - ReservierteSchlüsselwörter C
Literaturverzeichnis D
Anhänge
Q-18Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
A-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Alphabetische Liste der Operationen
Im Kapitel finden Sie auf Seite
A.1 Liste der deutschen und internationalen Mnemonik A-2
A.2 Alphabetische Liste der deutschen Beschreibungen A-12
Kapitelübersicht
A
A-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
A.1 Liste der deutschen und internationalen Mnemonik
In Tabelle A-1 finden Sie die SIMATIC- und internationale Mnemonik derAWL-Operationen mit den dazugehörigen Beschreibungen alphabetisch auf-gelistet sowie die Seite, auf der die jeweilige Operation erläutert wird.
Tabelle A-1 Liste der deutschen SIMATIC-Mnemonik und ihrer internationalen (englischen) Entsprechung in al-phabetischer Reihenfolge
SIMATIC-Mnemonik
InternationaleMnemonik
Beschreibung Seite
+ + Addiere Ganzzahlkonstante (Integer: 8, 16, 32 Bit) 9-6
= = Zuweisung 5-24
) ) Verzweigung schließen 5-14
+AR1 +AR1 Addiere AKKU 1 zum Adreßregister 1 4-7
+AR2 +AR2 Addiere AKKU 1 zum Adreßregister 2 4-7
+D +D Addiere AKKU 1 und AKKU 2 als Ganzzahl (32 Bit) 9-2
-D -D Subtrahiere AKKU 1 von AKKU 2 als Ganzzahl (32 Bit) 9-2
*D *D Multipliziere AKKU 1 mit AKKU 2 als Ganzzahl (32 Bit) 9-2
/D /D Dividiere AKKU 2 durch AKKU 1 als Ganzzahl (32 Bit) 9-2
==D ==D Vergleiche Ganzzahlen (32 Bit) >, <, >=, <=, ==, <> 11-3
+I +I Addiere AKKU 1 und AKKU 2 als Ganzzahl (16 Bit) 9-2
-I -I Subtrahiere AKKU 1 von AKKU 2 als Ganzzahl (16 Bit) 9-2
*I *I Multipliziere AKKU 1 mit AKKU 2 als Ganzzahl (16 Bit) 9-2
/I /I Dividiere AKKU 2 durch AKKU 1 als Ganzzahl (16 Bit) 9-2
==I ==I Vergleiche Ganzzahlen (16 Bit) >, <, >=, <=, ==, <> 11-3
+R +R Addiere AKKU 1 und AKKU 2 als Gleitpunktzahl (32 Bit, IEEE-FP) 10-2
-R -R Subtrahiere AKKU 1 von AKKU 2 als Gleitpunktzahl (32 Bit, IEEE-FP)10-2
*R *R Multipliziere AKKU 1 mit AKKU 2 als Gleitpunktzahl (32 Bit, IEEE-FP) 10-2
/R /R Dividiere AKKU 2 durch AKKU 1 als Gleitpunktzahl (32 Bit, IEEE-FP) 10-2
==R ==R Vergleiche Gleitpunktzahlen >, <, >=, <=, ==, <> 11-5
ABS ABS Absolutwert einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-6
ACOS ACOS Arcuscosinus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
ASIN ASIN Arcussinus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
ATAN ATAN Arcustangens einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
AUF OPN Aufschlage Datenbaustein 15-2
BEA BEU Bausteinende absolut 17-16
BEB BEC Bausteinende bedingt 17-16
BLD BLD Bildbefehl 4-2
BTD BTD BCD in Ganzzahl (32 Bit) wandeln 12-4
BTI BTI BCD in Ganzzahl (16 Bit) wandeln 12-2
CALL CALL Bausteinaufruf 17-3
CC CC Konditionierter Bausteinaufruf 17-7
Alphabetische Liste der Operationen
A-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle A-1 Liste der deutschen SIMATIC-Mnemonik und ihrer internationalen (englischen) Entsprechung in al-phabetischer Reihenfolge, Fortsetzung
SIMATIC-Mnemonik
SeiteBeschreibungInternationaleMnemonik
CLR CLR Rücksetze VKE (= 0) 5-26
COS COS Cosinus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
DEC DEC Dekrementiere AKKU 1 4-6
DTB DTB Ganzzahl (32 Bit) in BCD wandeln 12-6
DTR DTR Ganzzahl (32 Bit) in Gleitpunktzahl (32 Bit, IEEE-FP) wandeln 12-7
ENT ENT AKKU 3 ---> AKKU 4, AKKU 2 ---> AKKU 3 4-3
EXP EXP Exponentialwert einer Gleitpunktzahl (32 Bit, IEEE-FP) zur Basis e 10-12
FN FN Flanke Negativ 5-17
FP FP Flanke Positiv 5-16
FR FR Freigabe Zähler (Frei, FR Z 0 zu Z 255) 6-5
FR FR Freigabe Timer (Frei, FR T 0 zu T 255) 7-3
INC INC Inkrementiere AKKU 1 4-6
INVD INVD 1-Komplement Ganzzahl (32 Bit) 12-14
INVI INVI 1-Komplement Ganzzahl (16 Bit) 12-14
ITB ITB Ganzzahl (16 Bit) in BCD wandeln 12-5
ITD ITD Ganzzahl (16 Bit) in Ganzzahl (32 Bit) wandeln 12-6
L L Laden 8-3
L L Lade Länge Global-DB in AKKU 1 (L DBLG) 8-1215-2
L L Lade Nummer Global-DB in AKKU 1 (L DBNO) 8-12
L L Lade Länge Instanz-DB in AKKU 1 (L DILG) 8-1215-2
L L Lade Nummer Instanz-DB in AKKU 1 (L DINO) 8-1215-2
L L Lade Statuswort in AKKU 1 (L STW) 8-6
L L Lade aktuellen Zeitwert als Ganzzahl in AKKU 1 (der aktuelle Zeitwertkann eine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: L T 32)
8-7
L L Lade aktuellen Zählerwert als Ganzzahl in AKKU 1 (der aktuelle Zähler-wert kann eine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: L Z 15)
7-68-8
LAR1 LAR1 Lade Adreßregister 1 mit Inhalt von AKKU 1 (wenn kein Operand angegeben ist)
8-11
LAR1 LAR1 Lade Adreßregister 1 mit Inhalt von ... (von angegebenem Operanden)8-11
LAR1 LAR1 Lade Adreßregister 1 mit Inhalt von Adreßregister 2 (LAR1 AR2) 8-11
LAR1 LAR1 Lade Adreßregister 1 mit Ganzzahl (32 Bit, LAR1 P#area byte.bit) 8-11
LAR2 LAR2 Lade Adreßregister 2 mit Inhalt von AKKU 1 (wenn kein Operand angegeben ist)
8-11
LAR2 LAR2 Lade Adreßregister 2 mit Inhalt von ... (von angegebenem Operanden)8-11
LAR2 LAR2 Lade Adreßregister 2 mit Ganzzahl (32 Bit, LAR2 P#area byte.bit) 8-11
LC LC Lade aktuellen Zählerwert als BCD in AKKU 1 (der aktuelle Zählerwertkann eine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: LC Z 15)
8-9
Alphabetische Liste der Operationen
A-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle A-1 Liste der deutschen SIMATIC-Mnemonik und ihrer internationalen (englischen) Entsprechung in al-phabetischer Reihenfolge, Fortsetzung
SIMATIC-Mnemonik
SeiteBeschreibungInternationaleMnemonik
LC LC Lade aktuellen Zeitwert als BCD in AKKU 1 (der aktuelle Zeitwert kanneine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: LC T 32)
7-78-10
LEAVE LEAVE AKKU 3 ---> AKKU 2, AKKU 4 ---> AKKU 3 4-3
LN LN Natürlicher Logarithmus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-11
LOOP LOOP Programmschleife 16-8
MCR( MCR( Sichere VKE in MCR-Stack, Beginn MCR-Bereich 17-11
)MCR MCR) Hole VKE vom MCR-Stack, Ende MCR-Bereich 17-11
MCRA MCRA Aktiviere MCR-Bereich 17-11
MCRD MCRD Deaktiviere MCR-Bereich 17-11
MOD MOD Divisionsrest Ganzzahl (32 Bit) 9-5
NEGD NEGD 2-Komplement Ganzzahl (32 Bit) 12-14
NEGI NEGI 2-Komplement Ganzzahl (16 Bit) 12-14
NEGR NEGR Vorzeichen einer Gleitpunktzahl wechseln 12-14
NOP 0 NOP 0 Nulloperation 0 4-2
NOP 1 NOP 1 Nulloperation 1 4-2
NOT NOT Negiere VKE 5-26
O O ODER 5-10
O( O( ODER mit Verzweigung 5-14
OD OD ODER Doppelwort (32 Bit) 13-6
ON ON ODER NICHT 5-9
ON( ON( ODER NICHT mit Verzweigung 5-14
OW OW ODER Wort (16 Bit) 13-3
POP POP AKKU 1 <--- AKKU 2, AKKU 2 <--- AKKU 3, AKKU 3 <--- AKKU 4 4-2
PUSH PUSH AKKU 3 ---> AKKU 4, AKKU 2 ---> AKKU 3, AKKU 1 ---> AKKU 2 4-2
R R Rücksetze 5-22
R R Rücksetze Zähler (der aktuelle Zähler kann eine Zahl von 0 bis 255 sein,zum Beispiel: R Z 15)
6-5
R R Rücksetze Timer (der aktuelle Timer kann eine Zahl im Bereich von 0 bis255 sein, zum Beispiel: R T 32)
7-4
RLD RLD Rotiere links Doppelwort (32 Bit) 14-6
RLDA RLDA Rotiere AKKU 1 links über A1-Anzeige (32 Bit) 14-6
RND RND Runden zur Ganzzahl 12-9
RND+ RND+ Runden zur nächsthöheren Ganzzahl 12-10
RND- RND- Runden zur nächstniederen Ganzzahl 12-11
RRD RRD Rotiere rechts Doppelwort (32 Bit) 14-8
RRDA RRDA Rotiere AKKU 1 rechts über A1-Anzeige (32 Bit) 14-6
S S Setze 5-21
S S Setze Zählerstartwert (der aktuelle Zähler kann eine Zahl im Bereich von0 bis 255 sein, zum Beispiel: S Z 15)
7-3
Alphabetische Liste der Operationen
A-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle A-1 Liste der deutschen SIMATIC-Mnemonik und ihrer internationalen (englischen) Entsprechung in al-phabetischer Reihenfolge, Fortsetzung
SIMATIC-Mnemonik
SeiteBeschreibungInternationaleMnemonik
SA SF Zeit als Ausschaltverzögerung 6-15
SAVE SAVE Sichere VKE im BIE-Flag 5-26
SE SD Zeit als Einschaltverzögerung 6-11
SET SET Setze VKE (= 1) 5-26
SI SP Zeit als Impuls 6-7
SIN SIN Sinus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
SLD SLD Schiebe links Doppelwort (32 Bit) 14-2
SLW SLW Schiebe links Wort (16 Bit) 14-2
SPA JU Springe absolut 16-3
SPB JC Springe, wenn VKE = 1 16-4
SPBB JCB Springe, wenn VKE = 1 mit BIE 16-4
SPBI JBI Springe, wenn BIE = 1 16-4
SPBIN JNBI Springe, wenn BIE = 0 16-4
SPBN JCN Springe, wenn VKE = 0 16-4
SPBNB JNB Springe, wenn VKE = 0 mit BIE 16-4
SPL JL Sprungleiste 16-3
SPM JM Springe, wenn Ergebnis < 0 16-6
SPMZ JMZ Springe, wenn Ergebnis < = 0 16-6
SPN JN Springe, wenn Ergebnis < > 0 16-6
SPO JO Springe, wenn OV = 1 16-5
SPP JP Springe, wenn Ergebnis > 0 16-6
SPPZ JPZ Springe, wenn Ergebnis > = 0 16-6
SPS JOS Springe, wenn OS = 1 16-5
SPU JUO Springe, wenn Ergebnis ungültig 16-6
SPZ JZ Springe, wenn Ergebnis = 0 16-6
SQR SQR Quadrat einer Gleitpunktzahl (32 Bit, IEEE-PF) 10-9
SQRT SQRT Quadratwurzel einer Gleitpunktzahl (32 Bit, IEEE-PF) 10-9
SRD SRD Schiebe rechts Doppelwort (32 Bit) 14-3
SRW SRW Schiebe rechts Wort (16 Bit) 14-2
SS SS Zeit als speichernde Einschaltverzögerung 6-13
SSD SSD Schiebe Vorzeichen Ganzzahl (32 Bit) 14-4
SSI SSI Schiebe Vorzeichen Ganzzahl (16 Bit) 14-4
SV SE Zeit als verlängerten Impuls starten 6-9
T T Transferieren 8-3
T T Transferiere AKKU 1 in Statuswort (T STW) 8-6
TAD CAD Tausche Reihenfolge der Bytes im AKKU 1 (32 Bit) 12-13
TAK TAK Tausche AKKU 1 mit AKKU 2 4-2
Alphabetische Liste der Operationen
A-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle A-1 Liste der deutschen SIMATIC-Mnemonik und ihrer internationalen (englischen) Entsprechung in al-phabetischer Reihenfolge, Fortsetzung
SIMATIC-Mnemonik
SeiteBeschreibungInternationaleMnemonik
TAN TAN Tangens einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
TAR CAR Tausche Adreßregister 1 mit Adreßregister 2 8-11
TAR1 TAR1 Transferiere Adreßregister 1 in AKKU 1 (wenn kein Operand angegebenist)
8-11
TAR1 TAR1 Transferiere Adreßregister 1 in ... (in angegebenen Operanden) 8-11
TAR1 TAR1 Transferiere Adreßregister 1 in Adreßregister 2 (TAR1 AR2) 8-11
TAR2 TAR2 Transferiere Adreßregister 2 in AKKU 1 (wenn kein Operand angegebenist)
8-11
TAR2 TAR2 Transferiere Adreßregister 2 in ... (in angegebenen Operanden) 8-11
TAW CAW Tausche Reihenfolge der Bytes im AKKU 1 (16 Bit) 12-13
TDB CDB Tausche Global-DB und Instanz-DB 15-2
TRUNC TRUNC Runden mit Abschneiden 12-12
U A UND 5-10
U( A( UND mit Verzweigung 5-14
UC UC Unkonditionierter Bausteinaufruf 17-7
UD AD UND Doppelwort (32 Bit) 13-6
UN AN UND NICHT 5-9
UN( AN( UND NICHT mit Verzweigung 5-14
UW AW UND Wort (16 Bit) 13-3
X X EXKLUSIV ODER 5-10
X( X( EXKLUSIV ODER mit Verzweigung 5-14
XN XN EXKLUSIV ODER NICHT 5-9
XN( XN( EXKLUSIV ODER NICHT mit Verzweigung 5-14
XOD XOD EXKLUSIV-ODER Doppelwort (32 Bit) 13-6
XOW XOW EXKLUSIV-ODER Wort (16 Bit) 13-3
ZR CD Zählen rückwärts 7-5
ZV CU Zählen vorwärts 7-5
Alphabetische Liste der Operationen
A-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
In Tabelle A-2 finden Sie die internationale- und SIMATIC-Mnemonik derAWL-Operationen mit den dazugehörigen Beschreibungen alphabetisch auf-gelistet sowie die Seite, auf der die jeweilige Operation erläutert wird.
Tabelle A-2 Liste der internationalen (englischen) Mnemonik und ihrer deutschen SIMATIC Entsprechung in al-phabetischer Reihenfolge
InternationaleMnemonik
SIMATIC-Mnemonik
Beschreibung Seite
+ + Addiere Ganzzahlkonstante (Integer: 8, 16, 32 Bit) 9-6
= = Zuweisung 5-24
) ) Verzweigung schließen 5-14
+AR1 +AR1 Addiere AKKU 1 zum Adreßregister 1 4-7
+AR2 +AR2 Addiere AKKU 1 zum Adreßregister 2 4-7
+D +D Addiere AKKU 1 und AKKU 2 als Ganzzahl (32 Bit) 9-2
-D -D Subtrahiere AKKU 1 von AKKU 2 als Ganzzahl (32 Bit) 9-2
*D *D Multipliziere AKKU 1 mit AKKU 2 als Ganzzahl (32 Bit) 9-2
/D /D Dividiere AKKU 2 durch AKKU 1 als Ganzzahl (32 Bit) 9-2
==D ==D Vergleiche Ganzzahlen (32 Bit) >, <, >=, <=, ==, <> 11-3
+I +I Addiere AKKU 1 und AKKU 2 als Ganzzahl (16 Bit) 9-2
-I -I Subtrahiere AKKU 1 von AKKU 2 als Ganzzahl (16 Bit) 9-2
*I *I Multipliziere AKKU 1 mit AKKU 2 als Ganzzahl (16 Bit) 9-2
/I /I Dividiere AKKU 2 durch AKKU 1 als Ganzzahl (16 Bit) 9-2
==I ==I Vergleiche Ganzzahlen (16 Bit) >, <, >=, <=, ==, <> 11-3
+R +R Addiere AKKU 1 und AKKU 2 als Gleitpunktzahl (32 Bit, IEEE-FP) 10-2
-R -R Subtrahiere AKKU 1 von AKKU 2 als Gleitpunktzahl (32 Bit, IEEE-FP)10-2
*R *R Multipliziere AKKU 1 mit AKKU 2 als Gleitpunktzahl (32 Bit, IEEE-FP) 10-2
/R /R Dividiere AKKU 2 durch AKKU 1 als Gleitpunktzahl (32 Bit, IEEE-FP) 10-2
==R ==R Vergleiche Gleitpunktzahlen >, <, >=, <=, ==, <> 11-5
A U UND 5-10
A( U( UND mit Verzweigung 5-14
ABS ABS Absolutwert einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-6
ACOS ACOS Arcuscosinus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
AD UD UND Doppelwort (32 Bit) 13-6
AN UN UND NICHT 5-9
AN( UN( UND NICHT mit Verzweigung 5-14
ASIN ASIN Arcussinus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
ATAN ATAN Arcustangens einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
AW UW UND Wort (16 Bit) 13-3
BEC BEB Bausteinende bedingt 17-16
BEU BEA Bausteinende absolut 17-16
BLD BLD Bildbefehl 4-2
BTD BTD BCD in Ganzzahl (32 Bit) wandeln 12-4
Alphabetische Liste der Operationen
A-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle A-2 Liste der internationalen (englischen) Mnemonik und ihrer deutschen SIMATIC Entsprechung in al-phabetischer Reihenfolge, Fortsetzung
InternationaleMnemonik
SeiteBeschreibungSIMATIC-Mnemonik
BTI BTI BCD in Ganzzahl (16 Bit) wandeln 12-2
CAD TAD Tausche Reihenfolge der Bytes im AKKU 1 (32 Bit) 12-13
CALL CALL Bausteinaufruf 17-3
CAR TAR Tausche Adreßregister 1 mit Adreßregister 2 8-11
CAW TAW Tausche Reihenfolge der Bytes im AKKU 1 (16 Bit) 12-13
CC CC Konditionierter Bausteinaufruf 17-7
CD ZR Zählen rückwärts 7-5
CDB TDB Tausche Global-DB und Instanz-DB 15-2
CLR CLR Rücksetze VKE (= 0) 5-26
COS COS Cosinus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
CU ZV Zählen vorwärts 7-5
DEC DEC Dekrementiere AKKU 1 4-6
DTB DTB Ganzzahl (32 Bit) wandeln in BCD 12-6
DTR DTR Ganzzahl (32 Bit) in Gleitpunktzahl (32 Bit, IEEE-FP) wandeln 12-7
ENT ENT AKKU 3 ---> AKKU 4, AKKU 2 ---> AKKU 3 4-3
EXP EXP Exponentialwert einer Gleitpunktzahl (32 Bit, IEEE-FP) zur Basis e 10-12
FN FN Flanke Negativ 5-17
FP FP Flanke Positiv 5-16
FR FR Freigabe Zähler (Frei, FR Z 0 zu Z 255) 6-5
FR FR Freigabe Timer (Frei, FR T 0 zu T 255) 7-3
INC INC Inkrementiere AKKU 1 4-6
INVD INVD 1-Komplement Ganzzahl (32 Bit) 12-14
INVI INVI 1-Komplement Ganzzahl (16 Bit) 12-14
ITB ITB Ganzzahl (16 Bit) in BCD wandeln 12-5
ITD ITD Ganzzahl (16 Bit) in Ganzzahl (32 Bit) wandeln 12-6
JBI SPBI Springe, wenn BIE = 1 16-4
JC SPB Springe, wenn VKE = 1 16-4
JCB SPBB Springe, wenn VKE = 1 mit BIE 16-4
JCN SPBN Springe, wenn VKE = 0 16-4
JL SPL Sprungleiste 16-3
JM SPM Springe, wenn Ergebnis < 0 16-6
JMZ SPMZ Springe, wenn Ergebnis < = 0 16-6
JN SPN Springe, wenn Ergebnis ungleich null 16-6
JNB SPBNB Springe, wenn VKE = 0 mit BIE 16-4
JNBI SPBIN Springe, wenn BIE = 0 16-4
JO SPO Springe, wenn OV = 1 16-5
JOS SPS Springe, wenn OS = 1 16-5
Alphabetische Liste der Operationen
A-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle A-2 Liste der internationalen (englischen) Mnemonik und ihrer deutschen SIMATIC Entsprechung in al-phabetischer Reihenfolge, Fortsetzung
InternationaleMnemonik
SeiteBeschreibungSIMATIC-Mnemonik
JP SPP Springe, wenn Plus 16-6
JPZ SPPZ Springe, wenn Ergebnis > = 0 16-6
JU SPA Springe absolut 16-3
JUO SPU Springe, wenn ungültig 16-6
JZ SPZ Springe, wenn Ergebnis = 0 16-6
L L Laden 8-3
L L Lade Länge Global-DB in AKKU 1 (L DBLG) 8-1215-2
L L Lade Nummer Global-DB in AKKU 1 (L DBNO) 8-12
L L Lade Länge Instanz-DB in AKKU 1 (L DILG) 8-1215-2
L L Lade Nummer Instanz-DB in AKKU 1 (L DINO) 8-1215-2
L L Lade Statuswort in AKKU 1 (L STW) 8-6
L L Lade aktuellen Zeitwert als Ganzzahl in AKKU 1 (der aktuelle Zeitwertkann eine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: L T 32)
8-7
L L Lade aktuellen Zählerwert als Ganzzahl in AKKU 1 (der aktuelle Zähler-wert kann eine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: L Z 15)
7-68-8
LAR1 LAR1 Lade Adreßregister 1 mit Inhalt von AKKU 1 (wenn kein Operand angegeben ist)
8-11
LAR1 LAR1 Lade Adreßregister 1 mit Inhalt von ... (von angegebenem Operanden)8-11
LAR1 LAR1 Lade Adreßregister 1 mit Inhalt von Adreßregister 2 (LAR1 AR2) 8-11
LAR1 LAR1 Lade Adreßregister 1 mit Ganzzahl (32 Bit, LAR1 P#area byte.bit) 8-11
LAR2 LAR2 Lade Adreßregister 2 mit Inhalt von AKKU 1 (wenn kein Operand angegeben ist)
8-11
LAR2 LAR2 Lade Adreßregister 2 mit Inhalt von ... (von angegebenem Operanden)8-11
LAR2 LAR2 Lade Adreßregister 2 mit Ganzzahl (32 Bit, LAR2 P#area byte.bit) 8-11
LC LC Lade aktuellen Zählerwert als BCD in AKKU 1 (der aktuelle Zählerwertkann eine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: LC Z 15)
8-9
LC LC Lade aktuellen Zeitwert als BCD in AKKU 1 (der aktuelle Zeitwert kanneine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: LC T 32)
7-78-10
LEAVE LEAVE AKKU 3 ---> AKKU 2, AKKU 4 ---> AKKU 3 4-3
LN LN Natürlicher Logarithmus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-11
LOOP LOOP Programmschleife 16-8
MCR( MCR( Sichere VKE in MCR-Stack, Beginn MCR-Bereich 17-11
MCR) )MCR Hole VKE vom MCR-Stack, Ende MCR-Bereich 17-11
MCRA MCRA Aktiviere MCR-Bereich 17-11
MCRD MCRD Deaktiviere MCR-Bereich 17-11
MOD MOD Divisionsrest Ganzzahl (32 Bit) 9-5
NEGD NEGD 2-Komplement Ganzzahl (32 Bit) 12-14
Alphabetische Liste der Operationen
A-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle A-2 Liste der internationalen (englischen) Mnemonik und ihrer deutschen SIMATIC Entsprechung in al-phabetischer Reihenfolge, Fortsetzung
InternationaleMnemonik
SeiteBeschreibungSIMATIC-Mnemonik
NEGI NEGI 2-Komplement Ganzzahl (16 Bit) 12-14
NEGR NEGR Vorzeichen einer Gleitpunktzahl wechseln 12-14
NOP 0 NOP 0 Nulloperation 0 4-2
NOP 1 NOP 1 Nulloperation 1 4-2
NOT NOT Negiere VKE 5-26
O O ODER 5-10
O( O( ODER mit Verzweigung 5-14
OD OD ODER Doppelwort (32 Bit) 13-6
ON ON ODER NICHT 5-9
ON( ON( ODER NICHT mit Verzweigung 5-14
OPN AUF Aufschlage Datenbaustein 15-2
OW OW ODER Wort (16 Bit) 13-3
POP POP AKKU 1 <--- AKKU 2, AKKU 2 <--- AKKU 3, AKKU 3 <--- AKKU 4 4-2
PUSH PUSH AKKU 3 ---> AKKU 4, AKKU 2 ---> AKKU 3, AKKU 1 ---> AKKU 2 4-2
R R Rücksetze 5-22
R R Rücksetze Zähler (der aktuelle Zähler kann eine Zahl von 0 bis 255 sein,zum Beispiel: R Z 15)
6-5
R R Rücksetze Timer (der aktuelle Timer kann eine Zahl im Bereich von 0 bis255 sein, zum Beispiel: R T 32)
7-4
RLD RLD Rotiere links Doppelwort (32 Bit) 14-6
RLDA RLDA Rotiere AKKU 1 links über A1-Anzeige (32 Bit) 14-8
RND RND Runden zur Ganzzahl 12-9
RND+ RND+ Runden zur nächsthöheren Ganzzahl 12-10
RND- RND- Runden zur nächstniederen Ganzzahl 12-11
RRD RRD Rotiere rechts Doppelwort (32 Bit) 14-8
RRDA RRDA Rotiere AKKU 1 rechts über A1-Anzeige (32 Bit) 14-6
S S Setze 5-21
S S Setze Zählerstartwert (der aktuelle Zähler kann eine Zahl im Bereich von0 bis 255 sein, zum Beispiel: S Z 15)
7-3
SAVE SAVE Sichere VKE im BIE-Flag 5-26
SD SE Zeit als Einschaltverzögerung 6-11
SE SV Zeit als verlängerten Impuls starten 6-9
SET SET Setze VKE (= 1) 5-26
SF SA Zeit als Ausschaltverzögerung 6-15
SP SI Zeit als Impuls 6-7
SIN SIN Sinus einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
SLD SLD Schiebe links Doppelwort (32 Bit) 14-2
SLW SLW Schiebe links Wort (16 Bit) 14-2
Alphabetische Liste der Operationen
A-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle A-2 Liste der internationalen (englischen) Mnemonik und ihrer deutschen SIMATIC Entsprechung in al-phabetischer Reihenfolge, Fortsetzung
InternationaleMnemonik
SeiteBeschreibungSIMATIC-Mnemonik
SQR SQR Quadrat einer Gleitpunktzahl (32 Bit, IEEE-PF) 10-9
SQRT SQRT Quadratwurzel einer Gleitpunktzahl (32 Bit, IEEE-PF) 10-9
SRD SRD Schiebe rechts Doppelwort (32 Bit) 14-3
SRW SRW Schiebe rechts Wort (16 Bit) 14-2
SS SS Zeit als speichernde Einschaltverzögerung 6-13
SSD SSD Schiebe Vorzeichen Ganzzahl (32 Bit) 14-4
SSI SSI Schiebe Vorzeichen Ganzzahl (16 Bit) 14-4
T T Transferieren 8-3
T T Transferiere AKKU 1 in Statuswort (T STW) 8-6
TAK TAK Tausche AKKU 1 mit AKKU 2 4-2
TAN TAN Tangens einer Gleitpunktzahl (32 Bit, IEEE-FP) 10-7
TAR1 TAR1 Transferiere Adreßregister 1 in AKKU 1 (wenn kein Operand angegebenist)
8-11
TAR1 TAR1 Transferiere Adreßregister 1 in ... (in angegebenen Operanden) 8-11
TAR1 TAR1 Transferiere Adreßregister 1 in Adreßregister 2 (TAR1 AR2) 8-11
TAR2 TAR2 Transferiere Adreßregister 2 in AKKU 1 (wenn kein Operand angegebenist)
8-11
TAR2 TAR2 Transferiere Adreßregister 2 in ... (in angegebenen Operanden) 8-11
TRUNC TRUNC Runden mit Abschneiden 12-12
UC UC Unkonditionierter Bausteinaufruf 17-7
X X EXKLUSIV ODER 5-10
X( X( EXKLUSIV ODER mit Verzweigung 5-14
XN XN EXKLUSIV ODER NICHT 5-9
XN( XN( EXKLUSIV ODER NICHT mit Verzweigung 5-14
XOD XOD EXKLUSIV-ODER Doppelwort (32 Bit) 13-6
XOW XOW EXKLUSIV-ODER Wort (16 Bit) 13-3
Alphabetische Liste der Operationen
A-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
A.2 Alphabetische Liste der deutschen Beschreibungen
In Tabelle A-3 finden Sie die deutschen Beschreibungen der AWL-Operatio-nen mit ihrer Mnemonik alphabetisch aufgelistet sowie die Seite, auf der diejeweilige Operation erläutert wird.
Tabelle A-3 AWL-Operationen alphabetisch geordnet nach deutscher Beschreibung
Beschreibung Mnemonik Seite
Absolutwert einer Gleitpunktzahl (32 Bit, IEEE-FP) ABS 10-6
Addiere AKKU 1 und AKKU 2 als Ganzzahl (16 Bit) +I 9-2
Addiere AKKU 1 und AKKU 2 als Ganzzahl (32 Bit) +D 9-2
Addiere AKKU 1 und AKKU 2 als Gleitpunktzahl (32 Bit, IEEE-FP) +R 10-2
Addiere AKKU 1 zum Adreßregister 1 +AR1 4-7
Addiere AKKU 1 zum Adreßregister 2 +AR2 4-7
Addiere Ganzzahlkonstante (Integer: 8, 16, 32 Bit) + 9-6
AKKU 3 ---> AKKU 4, AKKU 2 ---> AKKU 3, AKKU 1 ---> AKKU 2 PUSH 4-2
AKKU 1 <--- AKKU 2, AKKU 2 <--- AKKU 3, AKKU 3 <--- AKKU 4 POP 4-2
AKKU 3 ---> AKKU 2, AKKU 4 ---> AKKU 3 LEAVE 4-3
AKKU 3 ---> AKKU 4, AKKU 2 ---> AKKU 3 ENT 4-3
Aktiviere MCR-Bereich MCRA 17-11
Arcuscosinus einer Gleitpunktzahl (32 Bit, IEEE-FP) ACOS 10-7
Arcussinus einer Gleitpunktzahl (32 Bit, IEEE-FP) ASIN 10-7
Arcustangens einer Gleitpunktzahl (32 Bit, IEEE-FP) ATAN 10-7
Aufschlage Datenbaustein AUF 15-2
Bausteinaufruf CALL 17-3
Bausteinende absolut BEA 17-16
Bausteinende bedingt BEB 17-16
BCD in Ganzzahl (16 Bit) wandeln BTI 12-2
BCD in Ganzzahl (32 Bit) wandeln BTD 12-4
Bildbefehl BLD 4-2
Cosinus einer Gleitpunktzahl (32 Bit, IEEE-FP) COS 10-7
Deaktiviere MCR-Bereich MCRD 17-11
Dekrementiere AKKU 1 DEC 4-6
Dividiere AKKU 2 durch AKKU 1 als Ganzzahl (16 Bit) /I 9-2
Dividiere AKKU 2 durch AKKU 1 als Ganzzahl (32 Bit) /D 9-2
Dividiere AKKU 2 durch AKKU 1 als Gleitpunktzahl (32 Bit, IEEE-FP) /R 9-2
Divisionsrest Ganzzahl (32 Bit) MOD 9-5
EXKLUSIV ODER X 5-10
EXKLUSIV-ODER Doppelwort (32 Bit) XOD 13-6
EXKLUSIV ODER mit Verzweigung X( 5-14
EXKLUSIV ODER NICHT XN 5-9
Alphabetische Liste der Operationen
A-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle A-3 AWL-Operationen alphabetisch geordnet nach deutscher Beschreibung, Fortsetzung
Beschreibung SeiteMnemonik
EXKLUSIV ODER NICHT mit Verzweigung XN( 5-14
EXKLUSIV-ODER Wort (16 Bit) XOW 13-3
Exponentialwert einer Gleitpunktzahl (32 Bit, IEEE-FP) EXP 10-12
Flanke Negativ FN 5-17
Flanke Positiv FP 5-16
Freigabe Timer (Frei, FR T 0 zu T 255) FR 6-5
Freigabe Zähler (Frei, FR Z 0 zu Z 255) FR 7-3
Ganzzahl (16 Bit) in BCD wandeln ITB 12-5
Ganzzahl (16 Bit) in Ganzzahl (32 Bit) wandeln ITD 12-6
Ganzzahl (32 Bit) in BCD wandeln DTB 12-6
Ganzzahl (32 Bit) in Gleitpunktzahl (32 Bit; IEEE-FP) wandeln DTR 12-7
Hole VKE vom MCR-Stack, Ende MCR-Bereich MCR) 17-11
Inkrementiere AKKU 1 INC 4-6
1-Komplement Ganzzahl (16 Bit) INVI 12-14
1-Komplement Ganzzahl (32 Bit) INVD 12-14
2-Komplement Ganzzahl (16 Bit) NEGI 12-14
2-Komplement Ganzzahl (32 Bit) NEGD 12-14
Konditionierter Bausteinaufruf CC 17-7
Laden L 8-3
Lade Adreßregister 1 mit Ganzzahl (32 Bit, LAR1 P#area byte.bit) LAR1 8-11
Lade Adreßregister 1 mit Inhalt von ... (von angegebenem Operanden) LAR1 8-11
Lade Adreßregister 1 mit Inhalt von Adreßregister 2 (LAR1 AR2) LAR1 8-11
Lade Adreßregister 1 mit Inhalt von AKKU 1 (wenn kein Operand angegeben ist)
LAR1 8-11
Lade Adreßregister 2 mit Ganzzahl (32 Bit, LAR2 P#area byte.bit) LAR2 8-11
Lade Adreßregister 2 mit Inhalt von ... (von angegebenem Operanden) LAR2 8-11
Lade Adreßregister 2 mit Inhalt von AKKU 1 (wenn kein Operand angegeben ist)
LAR2 8-11
Lade aktuellen Zählerwert als Ganzzahl in AKKU 1 (der aktuelle Zählerwertkann eine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: L Z 15)
L 7-6, 8-8
Lade aktuellen Zählerwert als BCD in AKKU 1 (der aktuelle Zählerwert kanneine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: LC Z 15)
LC 7-7, 8-9
Lade aktuellen Zeitwert als Ganzzahl in AKKU 1 (der aktuelle Zeitwert kanneine Zahl im Bereich von 0 bis 255 sein, zum Beispiel: L T 32)
L 8-7
Lade aktuellen Zeitwert als BCD in AKKU 1 (der aktuelle Zeitwert kann eineZahl im Bereich von 0 bis 255 sein, zum Beispiel: LC T 32)
LC 8-9
Lade Länge Global-DB in AKKU 1 (L DBLG) L 8-12, 15-2
Lade Länge Instanz-DB in AKKU 1 (L DILG) L 8-12, 15-2
Lade Nummer Global-DB in AKKU 1 (L DBNO) L 8-12, 15-2
Lade Nummer Instanz-DB in AKKU 1 (L DINO) L 8-12, 15-2
Lade Statuswort in AKKU 1 (L STW) L 8-6
Alphabetische Liste der Operationen
A-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle A-3 AWL-Operationen alphabetisch geordnet nach deutscher Beschreibung, Fortsetzung
Beschreibung SeiteMnemonik
Multipliziere AKKU 1 mit 2 als Ganzzahl (16 Bit) *I 9-2
Multipliziere AKKU 1 mit 2 als Ganzzahl (32 Bit) *D 9-2
Multipliziere AKKU 1 mit 2 als Gleitpunktzahl (32 Bit, IEEE-FP) *R 10-2
Natürlicher Logarithmus einer Gleitpunktzahl (32 Bit, IEEE-FP) LN 10-11
Negiere VKE NOT 5-26
Nulloperation 0 NOP 0 4-2
Nulloperation 1 NOP 1 4-2
ODER O 5-10
ODER Doppelwort (32 Bit) OD 13-6
ODER mit Verzweigung O( 5-14
ODER NICHT ON 5-9
ODER NICHT mit Verzweigung ON( 5-14
ODER Wort (16 Bit) OW 13-3
Programmschleife LOOP 16-8
Quadrat einer Gleitpunktzahl (32 Bit, IEEE-FP) SQR 10-9
Quadratwurzel einer Gleitpunktzahl (32 Bit, IEEE-FP) SQRT 10-9
Rotiere AKKU 1 links über A1-Anzeige (32 Bit) RLDA 14-8
Rotiere AKKU 1 rechts über A1-Anzeige (32 Bit) RRDA 14-8
Rotiere links Doppelwort (32 Bit) RLD 14-6
Rotiere rechts Doppelwort (32 Bit) RRD 14-7
Rücksetze R 5-22
Rücksetze Timer (der aktuelle Timer kann eine Zahl im Bereich von 0 bis 255sein, zum Beispiel: R T 32)
R 6-5
Rücksetze VKE (=0) CLR 5-26
Rücksetze Zähler (der aktuelle Zähler kann eine Zahl im Bereich von 0 bis 255sein, zum Beispiel: R Z 15)
R 7-3
Runden mit Abschneiden TRUNC 12-12
Runden zur Ganzzahl RND 12-9
Runden zur nächsthöheren Ganzzahl RND+ 12-10
Runden zur nächstniederen Ganzzahl RND- 12-11
Schiebe links Doppelwort (32 Bit) SLD 14-2
Schiebe links Wort (16 Bit) SLW 14-2
Schiebe rechts Doppelwort (32 Bit) SRD 14-3
Schiebe rechts Wort (16 Bit) SRW 14-2
Schiebe Vorzeichen Ganzzahl (16 Bit) SSI 14-4
Schiebe Vorzeichen Ganzzahl (32 Bit) SSD 14-4
Setze S 5-21
Setze VKE (= 1) SET 5-26
Setze Zählerstartwert (der aktuelle Zähler kann eine Zahl im Bereich von 0 bis255 sein, zum Beispiel: S Z 15)
S 7-3
Alphabetische Liste der Operationen
A-15Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle A-3 AWL-Operationen alphabetisch geordnet nach deutscher Beschreibung, Fortsetzung
Beschreibung SeiteMnemonik
Sichere VKE im BIE-Flag SAVE 5-26
Sichere VKE in MCR-Stack, Beginn MCR-Bereich MCR( 17-11
Sinus einer Gleitpunktzahl (32 Bit, IEEE-FP) SIN 10-7
Springe absolut SPA 16-3
Springe, wenn BIE = 0 SPBIN 16-5
Springe, wenn BIE = 1 SPBI 16-5
Springe, wenn Ergebnis < = 0 SPMZ 16-6
Springe, wenn Ergebnis = 0 SPZ 16-6
Springe, wenn Ergebnis > = 0 SPPZ 16-6
Springe, wenn Minus SPM 16-6
Springe, wenn OS = 1 SPS 16-5
Springe, wenn OV = 1 SPO 16-5
Springe, wenn Plus SPP 16-6
Springe, wenn ungleich null SPN 16-6
Springe, wenn ungültig SPU 16-6
Springe, wenn VKE = 0 SPBN 16-4
Springe, wenn VKE = 0 mit BIE SPBNB 16-4
Springe, wenn VKE = 1 SPB 16-4
Springe, wenn VKE = 1 mit BIE SPBB 16-4
Sprungleiste SPL 16-3
Subtrahiere AKKU 1 von AKKU 2 als Ganzzahl (16 Bit) -I 9-2
Subtrahiere AKKU 1 von AKKU 2 als Ganzzahl (32 Bit) -D 9-2
Subtrahiere AKKU 1 von AKKU 2 als Gleitpunktzahl (32 Bit, IEEE-FP) -R 10-2
Tangens einer Gleitpunktzahl (32 Bit, IEEE-FP) TAN 10-7
Tausche Adreßregister 1 mit Adreßregister 2 TAR 8-11
Tausche AKKU 1 mit AKKU 2 TAK 4-2
Tausche Global-DB und Instanz-DB TDB 15-2
Tausche Reihenfolge der Bytes im AKKU 1 (16 Bit) TAW 12-13
Tausche Reihenfolge der Bytes im AKKU 1 (32 Bit) TAD 12-13
Transferiere Adreßregister 1 in Adreßregister 2 (T AR1 AR2) TAR1 8-11
Transferiere Adreßregister 1 in AKKU 1 (wenn kein Operand angegeben ist)TAR1 8-11
Transferiere Adreßregister 1 in ... (in angegebenen Operanden) TAR1 8-11
Transferiere Adreßregister 2 in AKKU 1 (wenn kein Operand angegeben ist)TAR2 8-11
Transferiere Adreßregister 2 in ... (in angegebenen Operanden) TAR2 8-11
Transferiere AKKU 1 in Statuswort (T STW) T 8-6
Transferieren T 8-3
UND U 5-10
UND Doppelwort (32 Bit) UD 13-6
UND mit Verzweigung U( 5-14
Alphabetische Liste der Operationen
A-16Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle A-3 AWL-Operationen alphabetisch geordnet nach deutscher Beschreibung, Fortsetzung
Beschreibung SeiteMnemonik
UND NICHT UN 5-9
UND NICHT mit Verzweigung UN( 5-14
UND Wort (16 Bit) UW 13-3
Unkonditionierter Bausteinaufruf UC 17-7
Vergleiche Ganzzahlen (16 Bit) >, <, >=, <=, ==, <> ==I 11-3
Vergleiche Ganzzahlen (32 Bit) >, <, >=, <=, ==, <> ==D 11-3
Vergleiche Gleitpunktzahlen >, <, >=, <=, ==, <> ==R 11-5
Verzweigung schließen ) 5-14
Vorzeichen einer Gleitpunktzahl wechseln NEGR 12-14
Zählen rückwärts ZR 7-5
Zählen vorwärts ZV 7-5
Zeit als Ausschaltverzögerung SA 6-15
Zeit als Einschaltverzögerung SE 6-11
Zeit als Impuls SI 6-7
Zeit als speichernde Einschaltverzögerung SS 6-13
Zeit als verlängerten Impuls starten SV 6-9
Zuweisung = 5-24
Alphabetische Liste der Operationen
B-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Programmierbeispiele
Im Kapitel finden Sie auf Seite
B.1 Übersicht B-2
B.2 Bitverknüpfungsoperationen B-3
B.3 Zeitoperationen B-7
B.4 Zähl- und Vergleichsoperationen B-10
B.5 Arithmetische Operationen mit Ganzzahlen B-12
B.6 Wortverknüpfungsoperationen B-14
Kapitelübersicht
B
B-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
B.1 Übersicht
Jede der in diesem Handbuch beschriebenen AWL-Operationen löst einebestimmte Funktion aus. Durch Kombination dieser Operationen in einemProgramm können Sie eine breite Palette von Automatisierungsaufgabenausführen. In diesem Kapitel finden Sie im folgenden einige Beispiele fürpraktische Anwendungen der AWL-Operationen:
� Steuern eines Förderbandes durch Bitverknüpfungsoperationen.
� Feststellen der Bewegungsrichtung auf einem Förderband durch Bit-verknüpfungsoperationen.
� Generieren eines Taktimpulses durch Zeitoperationen.
� Überwachen des Lagerbereichs durch Zähl- und Vergleichsoperationen.
� Berechnungen mit arithmetischen Operationen für Ganzzahlen.
� Einstellen der Zeitdauer für das Beheizen eines Ofens.
Wenn Sie eine ASCII-Datei erstellen, die in den Program Editor (AWL)importiert werden soll, müssen Sie sich an die in Anhang C aufgeführtenKonventionen halten.
Die Beispiele in diesem Kapitel verwenden folgende Operationen:
� U (UND) sowie UN (UND NICHT)
� = (Zuweisen)
� BE (Bausteinende) und BEB (Bausteinende bedingt)
� 16 Bit, <=, >= (Vergleiche Ganzzahlen)
� ZR (Zählen rückwärts) und ZV (Zählen vorwärts)
� FP (Flanke positiv)
� SV (Zeit als verlängerten Impuls starten)
� INC (Inkrementiere AKKU 1)
� Arithmetische Operationen mit Ganzzahlen (16 Bit)
– +I: Addiere AKKU 1 und 2 als Ganzzahl
– /I: Dividiere AKKU 2 durch 1 als Ganzzahl
– *I: Multipliziere AKKU 1 und 2 als Ganzzahl
� L (Laden) und T (Transferieren)
� NOT (Negiere VKE)
� O (ODER) und ON (ODER NICHT)
� S (Setze) und R (Rücksetze)
� UND-Wort, ODER-Wort (Wortverknüpfungen)
PraktischeAnwendungen
VerwendeteOperationen
Programmierbeispiele
B-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
B.2 Bitverknüpfungsoperationen
Bild B-1 zeigt ein Förderband, das elektrisch in Gang gesetzt werden kann.Am Anfang des Bandes befinden sich zwei Druckschalter, S1 für START undS2 für STOP. Am Ende des Bandes befinden sich ebenfalls zwei Druck-schalter, S3 für START und S4 für STOP. Das Band kann von beiden Endenaus gestartet oder gestoppt werden. Außerdem stoppt der Sensor S5 dasBand, wenn ein Gegenstand auf dem Band dessen Ende erreicht.
Sie können ein Programm zum Steuern des Förderbandes aus Bild B-1schreiben, indem Sie die verschiedenen Komponenten des Förderband-systems mit Hilfe von Symbolen darstellen. Wenn Sie sich für diese Methodeentscheiden, müssen Sie eine Signalliste erstellen, um die von Ihnengewählten Symbole mit absoluten Werten in Beziehung zu setzen (sieheTabelle B-1). In Tabelle B-3 wird ein AWL-Programm, das Symbole alsOperanden verwendet, mit einem Programm verglichen, das absolute Werteals Operanden verwendet. Die Symbole definieren Sie in der Symboltabelle(siehe Hilfe zu STEP 7).
Tabelle B-1 Elemente der symbolischen Programmierung für Förderbandsysteme
SystemkomponenteAbsolute
BezeichnungSymbol Symboltabelle
Startschalter E 1.1 S1 E 1.1 S1
Stoppschalter E 1.2 S2 E 1.2 S2
Startschalter E 1.3 S3 E 1.3 S3
Stoppschalter E 1.4 S4 E 1.4 S4
Sensor E 1.5 S5 E 1.5 S5
Motor A 4.0 MOTOR_EIN A 4.0 MOTOR_EIN
MOTOR_EIN
S1S2
� Start� Stop
S3S4
� Start� Stop
Sensor S5
Bild B-1 Förderbandsystem
Steuern einesFörderbandes
SymbolischeProgrammierung
Programmierbeispiele
B-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Sie können ein Programm zum Steuern des Förderbandes aus Bild B-1schreiben, indem Sie die verschiedenen Komponenten des Förderband-systems mit Hilfe von absoluten Werten darstellen (siehe Tabelle B-2). InTabelle B-3 wird ein AWL-Programm, das absolute Werte als Operandenverwendet, mit einem Programm verglichen, das Symbole als Operandenverwendet. An die Tabelle schließt sich eine Erläuterung des Programms an.
Tabelle B-2 Elemente der absoluten Programmierung für Förderbandsysteme
Systemkomponente Absolute Bezeichnung
Startschalter E 1.1
Stoppschalter E 1.2
Startschalter E 1.3
Stoppschalter E 1.4
Sensor E 1.5
Motor A 4.0
Tabelle B-3 Symbolische und absolute Programmierung zum Steuern einesFörderbandes
Symbolische Programmierung Absolute Programmierung
O S1O S3S MOTOR_EINO S2O S4ON S5R MOTOR_EIN
O E 1.1O E 1.3S A 4.0O E 1.2O E 1.4ON E 1.5R A 4.0
AWL Erläuterung
O E 1.1O E 1.3S A 4.0O E 1.2O E 1.4ON E 1.5R A 4.0
Durch Drücken einer der beiden Startschalter wird der Motoreingeschaltet.
Durch Drücken einer der beiden Stoppschalter oder Öffnen einesÖffners am Ende des Bandes wird der Motor abgeschaltet.
AbsoluteProgrammierung
Programmierbeispiele
B-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Bild B-2 zeigt ein Förderband, das mit zwei Lichtschranken (LS 1 und LS 2)ausgestattet ist. Die Lichtschranken sollen feststellen, in welche Richtungsich ein Paket auf dem Band bewegt. Jede dieser beiden Lichtschrankenfunktioniert wie ein Schließer (siehe Kapitel 5.1).
Sie können ein Programm schreiben, das die Richtungsanzeige für das inBild B-2 gezeigte Förderbandsystem aktiviert, indem Sie die verschiedenenKomponenten des Fördersystems – einschließlich der zur Richtungserfassungbenötigten Lichtschranken – mit Hilfe von Symbolen darstellen. Wenn Siesich für diese Methode entscheiden, müssen Sie eine Symbolliste erstellen,um die von Ihnen gewählten Symbole mit absoluten Werten in Beziehung zusetzen (siehe Tabelle B-4). In Tabelle B-6 wird ein AWL-Programm, dasSymbole als Operanden verwendet, mit einem Programm verglichen, dasabsolute Werte als Operanden verwendet. Die Symbole definieren Sie in derSymboltabelle (siehe Hilfe zu STEP 7).
Tabelle B-4 Elemente der symbolischen Programmierung zur Richtungserfassung
SystemkomponenteAbsolute
BezeichnungSymbol Symboltabelle
Lichtschranke 1 E 0.0 LS1 E 0.0 LS1
Lichtschranke 2 E 0.1 LS2 E 0.1 LS2
Anzeige für Bewegung nachrechts
A 4.0 RECHTS A 4.0 RECHTS
Anzeige für Bewegung nachlinks
A 4.1 LINKS A 4.1 LINKS
Taktmerker 1 M 0.0 TM1 M 0.0 TM1
Taktmerker 2 M 0.1 TM2 M 0.1 TM2
LS1LS2 A 4.1A 4.0
Bild B-2 Förderbandsystem mit Lichtschranken zur Richtungserfassung
Erfassen derRichtung einesFörderbandes
SymbolischeProgrammierung
Programmierbeispiele
B-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Sie können ein Programm schreiben, um die Richtungsanzeige für das in BildB-2 gezeigte Förderbandsystem zu steuern, indem Sie die zurRichtungserfassung benötigten Lichtschranken mit Hilfe von absolutenWerten darstellen (siehe Tabelle B-5). Tabelle B-6 vergleicht einAWL-Programm, das absolute Werte als Operanden verwendet, mit einemProgramm, das Symbole als Operanden verwendet. Eine Erläuterung desProgramms schließt sich an die Tabelle an.
Tabelle B-5 Elemente der absoluten Programmierung zur Richtungserfassung
Systemkomponente Absolute Bezeichnung
Lichtschranke 1 E 0.0
Lichtschranke 2 E 0.1
Anzeige für Bewegung nach rechts A 4.0
Anzeige für Bewegung nach links A 4.1
Taktmerker 1 M 0.0
Taktmerker 2 M 0.1
Tabelle B-6 Symbolische und absolute Programmierung zur Richtungserfassung
Symbolische Programmierung Absolute Programmierung
U LS 1FP TM 1UN LS 2S LINKSU LS 2FP TM 2UN LS 1S RECHTSUN LS 1UN LS 2R RECHTSR LINKS
U E 0.0FP M 0.0UN E 0.1S A 4.1U E 0.1FP M 0.1UN E 0.0S A 4.0UN E 0.0UN E 0.1R A 4.0R A 4.1
AWL Erläuterung
U E 0.0FP M 0.0UN E 0.1S A 4.1
U E 0.1FP M 0.1UN E 0.0S A 4.0
UN E 0.0UN E 0.1R A 4.0R A 4.1
Wechselt der Signalzustand am Eingang E 0.0 von ”0” auf ”1”(steigende Flanke) und ist gleichzeitig der Signalzustand amEingang E 0.1 ”0”, dann wird das Paket auf dem Band nach linksbewegt.
Wechselt der Signalzustand an Eingang E 0.1 von ”0” auf ”1”(steigende Flanke) und ist gleichzeitig der Signalzustand vonEingang E 0.0 ”0”, dann wird das Paket auf dem Band nach rechtsbewegt. Ist eine der Lichtschranken unterbrochen, so bedeutetdies, daß sich ein Paket zwischen beiden Lichtschranken befin-det.
Sind die Lichtschranken nicht unterbrochen, dann befindet sichkein Paket zwischen den Schranken. Der Richtungsanzeiger schal-tet sich ab.
AbsoluteProgrammierung
Programmierbeispiele
B-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
B.3 Zeitoperationen
Zur Erzeugung eines sich periodisch wiederholenden Signals können Sieeinen Taktgeber oder ein Blinkrelais verwenden. Taktgeber finden sich häufigin Meldesystemen, die das Blinken von Anzeigeleuchten steuern.
Wenn Sie das S7-300 einsetzen, können Sie eine Taktgeberfunktion imple-mentieren, indem Sie die zeitgesteuerte Verarbeitung in speziellen Organisa-tionsbausteinen verwenden. Das im folgenden AWL-Programm aufgeführteBeispiel zeigt den Einsatz von Zeitfunktionen, um einen Takt zu generieren.
Das folgende Beispiel zeigt, wie ein Freilauf-Taktgeber mit Hilfe einer Zeitimplementiert wird (Tastverhältnis 1:1). Die Frequenz ist in die Werteunterteilt, die in Tabelle B-7 aufgeführt sind.
AWL Erläuterung
UN T1L S5T#250msSV T1NOTBEB
L MB100INC 1T MB100
Wenn Zeit T1 abgelaufen ist, dann lade den Zeitwert 250 ms inT1 und starte T1 als verlängerten Impuls.
Negiere (kehre um) das Verknüpfungsergebnis. Beende den aktuellen Baustein, wenn die Zeit läuft.
Wenn die Zeit abgelaufen ist, dann lade den Inhalt von Merker-byte MB100, inkrementiere den Inhalt um ”1” und transferiere das Ergebnis ins Merkerbyte MB100.
Eine Signalabfrage an der Zeit T1 liefert das Verknüpfungsergebnis.
0
1
250 ms
Bild B-3 VKE für die Anweisung UN T1 im Beispiel Taktzeit
Sobald die Zeit abgelaufen ist, wird die Zeit erneut gestartet. Daher liefertdie Signalabfrage, die von der Anweisung UN T1 ausgeführt wird, nur kurzden Signalzustand ”1”. Bild B-4 zeigt, wie das negierte (umgekehrte) VKE-Bit aussieht.
0
1
250 ms
Bild B-4 Negiertes VKE-Bit der Zeit T1 im Beispiel Taktzeit
Alle 250 ms beträgt das VKE-Bit ”0”. Die Operation BEB beendet dieBearbeitung des Bausteins dann jedoch nicht. Stattdessen wird der Inhalt desMerkerbytes MB100 um ”1” inkrementiert.
Der Inhalt des Merkerbytes MB100 verändert sich alle 250 ms wie folgt:0 �1�2�3��... �254�255�0�1 ...
Taktgeber
Programmierbeispiele
B-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle B-7 listet die Frequenzen auf, die Sie mit den einzelnen Bits desMerkerbytes MB100 erzielen können. Das sich an die Tabelle anschließendeAWL-Programm zeigt, wie Sie die erzeugten Frequenzen nutzen können.
Tabelle B-7 Frequenzen für das Beispiel Taktzeit
Bits desMB100
Frequenz in Hertz Dauer
M 100.0 2.0 0.5 s (250 ms ein/250 ms aus)
M 100.1 1.0 1 s (0.5 s ein/0.5 s aus)
M 100.2 0.5 2 s (1 s ein/1 s aus
M 100.3 0.25 4 s (2 s ein/2 s aus)
M 100.4 0.125 8 s (4 s ein/4 s aus)
M 100.5 0.0625 16 s (8 s ein/8 s aus)
M 100.6 0.03125 32 s (16 s ein/16 s aus)
M 100.7 0.015625 64 s (32 s ein/32 s aus)
AWL Erläuterung
U M10.0U M100.1= A 4.0
M 10.0 ist ”1”, wenn ein Fehler auftritt.
Tritt ein Fehler auf, dann blinkt die Fehlerlampe mit einerFrequenz von 1 Hz auf.
Erzielen einerbestimmtenFrequenz
Programmierbeispiele
B-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle B-8 listet die Signalzustände der Bits von Merkerbyte MB100 auf.Bild B-5 zeigt das VKE des Merkerbits M 100.1
Tabelle B-8 Signalzustände der Bits von Merkerbyte MB100
Zy- Signalzustände der Bits von Merkerbyte MB100 Zeit-werty
klus 7 6 5 4 3 2 1 0wertin ms
0 0 0 0 0 0 0 0 0 250
1 0 0 0 0 0 0 0 1 250
2 0 0 0 0 0 0 1 0 250
3 0 0 0 0 0 0 1 1 250
4 0 0 0 0 0 1 0 0 250
5 0 0 0 0 0 1 0 1 250
6 0 0 0 0 0 1 1 0 250
7 0 0 0 0 0 1 1 1 250
8 0 0 0 0 1 0 0 0 250
9 0 0 0 0 1 0 0 1 250
10 0 0 0 0 1 0 1 0 250
11 0 0 0 0 1 0 1 1 250
12 0 0 0 0 1 1 0 0 250
M 100.1
250 ms 0.5 s 0.75 s 1 s 1.25 s 1.5 s
T
Zeit01
Frequenz� 1T�
11 s
� 1Hz
0
Bild B-5 Signalzustand des Bits 1 von MB100 (M 100.1)
Programmierbeispiele
B-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
B.4 Zähl- und Vergleichsoperationen
Bild B-6 zeigt ein System mit zwei Förderbändern und einem temporärenLagerbereich dazwischen. Förderband 1 transportiert die Pakete zumLagerbereich. Eine Lichtschranke am Ende des Förderbandes 1 neben demLagerbereich ermittelt, wieviele Pakete in den Lagerbereich transportiertwerden. Förderband 2 transportiert Pakete von diesem temporärenLagerbereich zu einer Laderampe, wo sie zur Auslieferung beim Kunden aufLKW verladen werden. Eine Lichtschranke am Ende des Förderbandes 2neben dem Lagerbereich ermittelt, wieviele Pakete aus dem Lagerbereichheraus zur Laderampe transportiert werden.
Eine Anzeigenkonsole mit fünf Lampen zeigt an, wie weit der temporäreLagerbereich gefüllt ist. Im Anschluß an Bild B-6 finden Sie ein Beispiel fürein Programm, das die Anzeigeleuchten auf der Anzeigenkonsole aktiviert.
Lagerbereichleer
Anzeigenkonsole
Lagerbereichvoll
Lagerbereich zu90% gefüllt
Lagerbereich zu50% gefüllt
Lagerbereichnicht leer
ankommendePakete
abgehendePakete
E 0.0 E 0.1
Förderband 2Förderband 1
Lichtschranke 1 Lichtschranke 2
Temporärer Lagerbereichfür 100 Pakete
(A 4.0) (A 4.1) (A 4.2) (A 4.3) (A 4.4)
Bild B-6 Lagerbereich mit Zähler und Vergleicher
Lagerbereich mitZähler undVergleicher
Programmierbeispiele
B-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
AWL Erläuterung
U E 0.0ZV Z1
U E 0.1ZR Z1
UN Z1= A 4.0U Z1= A 4.1L +50
L Z1<=I= A 4.2L +90>=I= A 4.3L Z1L 100>=I= A 4.4
Jeder durch die Lichtschranke 1 generierte Impuls erhöht denZählwert des Zählers Z1 um ”1”, wodurch die Zahl der Paketegezählt wird, die in den Lagerbereich transportiert werden.Jeder durch die Lichtschranke 2 erzeugte Impuls vermindert denZählwert des Zählers Z1 um ”1”, wodurch die Pakete gezähltwerden, die den Lagerbereich verlassen.Wenn der Zählwert ”0” beträgt, schaltet sich die Anzeigeleuchtefür die Meldung ”Lagerbereich leer” ein.Beträgt der Zählwert nicht ”0”, dann schaltet sich die Anzeige-leuchte für die Meldung ”Lagerbereich nicht leer” ein. Ist 50 kleiner als oder gleich Zählwert, dann schaltet sich dieAnzeigeleuchte für die Meldung ”Lagerbereich zu 50% voll” ein.
Ist der Zählwert größer als oder gleich 90, dann schaltet sichdie Anzeigeleuchte für die Meldung ”Lagerbereich zu 90% voll”ein.
Ist der Zählwert größer als oder gleich 100, dann schaltet sichdie Anzeigeleuchte für die Meldung ”Lagerbereich voll” ein.(Sie könnten auch über Ausgang A 4.4 das Förderband 1blockieren.)
Programmierbeispiele
B-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
B.5 Arithmetische Operationen mit Ganzzahlen
Das folgende Programmbeispiel (gilt nur für S7-300) zeigt, wie Sie mit dreiarithmetischen Operationen für Ganzzahlen und den Operationen L und T dasgleiche Ergebnis erzielen wie die folgende Gleichung:
MD4�(EW0�DB5.DBW3)� 15
MW2
AWL Erläuterung
L EW0L DB5.DBW3
+I
L +15
�I
L MW2
/I
T MD4
Lade den Wert von Eingangswort EW0 in AKKU 1.Lade den Wert des Globaldatenworts DBW3 aus dem DB5in AKKU 1.Der alte Inhalt von AKKU 1 wird in AKKU 2 geschoben.Addiere den Inhalt der niederwertigen Wörter von AKKU 1 und 2.Das Ergebnis wird im niederwertigen Wort von AKKU 1 gespei-chert. Der Inhalt von AKKU 2 und das höherwertige Wort von AKKU1 bleiben unverändert.Lade den konstanten Wert +15 in AKKU 1. Der alte Inhalt vonAKKU 1 wird in AKKU 2 geschoben.Multipliziere den Inhalt des niederwertigen Worts von AKKU 2mit dem Inhalt des niederwertigen Worts von AKKU 1. DasErgebnis wird in AKKU 1 gespeichert. Der Inhalt von AKKU 2bleibt unverändert.Lade den Wert von Merkerwort MW2 in AKKU 1. Der alte Inhalt vonAKKU 1 wird in AKKU 2 geschoben.Dividiere den Inhalt des niederwertigen Worts von AKKU 2 durchden Inhalt des niederwertigen Worts von AKKU 1. Das Ergebniswird in AKKU 1 gespeichert. Der Inhalt von AKKU 2 bleibtunverändert.Transferiere das Endergebnis ins Merkerdoppelwort MD4. DerInhalt beider Akkumulatoren bleibt unverändert.
Berechnen einerGleichung
Programmierbeispiele
B-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Bild B-7 zeigt die Beziehung des Programms zur Gleichung.
+
L EW0
L DBW3
+I
L +15
�I
L MW2
/I
T MD4
AKKU 1 AKKU2
(EW0) � (alter Inhalt)
(DBW3) � (EW0)
(EW0) + (DBW3) (EW0)
15 � (EW0) + (DBW3)
[(EW0) + (DBW3)] �15 (EW0) + (DBW3)
MW2 � [(EW0) + (DBW3)] �15
(EW0�DBW3)� 15MW2
(EW0�DBW3)� 15
(EW0�DBW3)� 15MW2
�
�
�
/�
MD4�(EW0�DBW5)� 15
MW2
(EW0�DBW3)� 15
Bild B-7 Beziehung von arithmetischen Operationen für Ganzzahlen zu einerGleichung (S7-300)
Programmierbeispiele
B-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
B.6 Wortverknüpfungsoperationen
Der Bediener des in Bild B-8 gezeigten Ofens startet das Heizen des Ofens,indem er den Startschalter drückt. Mit den im Bild gezeigten digitalenVorwählschaltern kann er die Dauer der Heizzeit festlegen. Der Wert, den ersetzt, gibt die Sekunden im binär-codierten Dezimalformat (BCD) an. TabelleB-9 führt die Komponenten des Heizsystems sowie ihre entsprechendenabsoluten Adressen auf, die im Programmbeispiel im Anschluß an Bild B-8verwendet wurden.
Tabelle B-9 Heizsystemkomponenten und ihre entsprechenden absoluten Adressen
Systemkomponente Absolute Adresse im AWL-Programm
Startschalter E 0.7
Digitale Vorwählschalter für Einer E 1.0 bis E 1.3
Digitale Vorwählschalter für Zehner E 1.4 bis E 1.7
Digitale Vorwählschalter für Hunderter E 0.0 bis E 0.3
Beginn Heizvorgang A 4.0
7...
Ofen
ÎÎÎ
ÎÎÎÎÎÎ
ÎÎÎÎÎÎ
1 0 0 1 0 0 0 1X X X X 0 0 0 1
WärmeA 4.0
Digitale Vorwählschalter zum Stellen der BCD-Ziffern
EW0
4 4 4
Startschalter E 0.7
7....
EB1EB0
Bits...0 ...0
Bild B-8 Verwendung der Ein- und Ausgänge für zeitbegrenzten Heizvorgang
AWL Erläuterung
U T1= A 4.0BEB
L EW0UW W#16#0FFF
OW W#16#2000
U E 0.7SV T1BE
Wenn die Zeit läuft, dann beginne den Heizvorgang.
Wenn die Zeit läuft, dann beende die Bearbeitung hier. Dadurchwird ein Neustart der Zeit T1 verhindert, wenn der Schaltergedrückt wird.Maskiere die Eingangsbits E 0.4 bis E 0.7 (d. h. setze sie auf”0” zurück). Der Zeitwert in Sekunden befindet sich in binär-codiertem Dezimalformat im niederwertigen Wort von AKKU 1.Ordne die Zeitbasis als Sekunden in Bits 12 und 13 des nieder-wertigen Worts von AKKU 1 zu.Starte die Zeit T1 als verlängerten Impuls, wenn der Schaltergedrückt wird.Beende Programmteil.
Heizen einesOfens
Programmierbeispiele
C-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Quelldateien - Reservierte Schlüsselwörter
Ein Schlüsselwort ist eine reservierte Kennung, die nicht als allgemeineKennung verwendet werden kann.
Damit ein Schlüsselwort als globales Symbol verwendet werden kann, mußes als Systemkontrollpunkt (SKP) gekennzeichnet werden.
Damit ein Schlüsselwort als bausteinlokales Symbol verwendet werden kann,muß es mit # gekennzeichnet werden.
Tabelle C-1 zeigt die bei STEP 7 reservierten Schlüsselwörter.
Tabelle C-1 Schlüsselwörter
Schlüsselwörter
A B
AB BEGIN
AD BIE
ANY BLOCK_DB
AO BLOCK_FB
AR1 BLOCK_FC
AR2 BLOCK_SDB
ARRAY BOOL
AUTHOR BYTE
AW
C DATA_BLOCK
CALL DATE
CHAR DATE_AND_TIME
COUNTER DB
DBB
DBD
DBLG
DBNO
DBW
DBX
DI
Definition
Übersicht
C
C-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Tabelle C-1 Schlüsselwörter, Fortsetzung
Schlüsselwörter
DIB
DID
DILG
DINO
DINT
DIW
DIX
DT
DWORD
E FALSE
EB FAMILY
ED FB
END_Data_Block FC
END_Function FUNCTION
END_Function_Block FUNCTION_BLOCK
END_Organization_Block
END_Struct I
END_System_Function IB
END_System_Function_Block ID
END_Type INT
END_VAR IW
EW
KA L
KNOW_HOW_PROTECT LB
KP LD
LW
M NAME
MB NETWORK
MD NI
MW NO
OB PA
OF PAB
ORGANIZATION_BLOCK PAD
OS PAW
OV PE
Quelldateien - Reservierte Schlüsselwörter
C-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Tabelle C-1 Schlüsselwörter, Fortsetzung
Schlüsselwörter
PEB
PED
PEW
PI
PIB
PID
PIW
PQ
PQB
PQD
PQW
POINTER
Q READ_ONLY
QB REAL
QD RET_VAL
QW
S5T T
S5TIME TIME
SDB TIME_OF_DAY
SFB TIMER
SFC TITLE
STANDARD TOD
STRING TRUE
STRUCT TYPE
STW
SYSTEM_FUNCTION
SYSTEM_FUNCTION_BLOCK
UDT VAR
UNLINKED VAR_IN_OUT
UO VAR_INPUT
VAR_OUTPUT
VAR_TEMP
VERSION
VOID
WORD Z
Quelldateien - Reservierte Schlüsselwörter
C-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Quelldateien - Reservierte Schlüsselwörter
D-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Literaturverzeichnis
/30/ Getting Started: Erste Schritte und Übungen mit STEP 7 V5.0
/70/ Handbuch: Automatisierungssystem S7-300, Aufbauen der CPU-Daten
/71/ Referenzhandbuch: Automatisierungssysteme S7-300, M7-300 Baugruppendaten
/72/ Operationsliste: Automatisierungssystem S7-300
/100/ Installationshandbuch: Automatisierungssystem S7-400, M7-400, Aufbauen
/101/ Referenzhandbuch: Automatisierungssysteme S7-400, M7-400 Baugruppendaten
/102/ Operationsliste: Automatisierungssystem S7-400
/231/ Handbuch: Hardware konfigurieren und Verbindungen projektieren mitSTEP 7 V5.0
/233/ Referenzhandbuch: Kontaktplan (KOP) für S7-300/400
/234/ Handbuch: Programmieren mit STEP 7 V5.0
/235/ Referenzhandbuch: Systemsoftware für S7-300/400System-und Standardfunktionen
/236/ Referenzhandbuch: Funktionsplan (FUP) für S7-300/400
/250/ Handbuch: S7-SCL für S7-300/400, Bausteine programmieren
/251/ Handbuch: S7-GRAPH für S7-300/400, Ablaufsteuerungen programmieren
/252/ Handbuch: S7-HiGraph für S7-300/400, Zustandsgraphen programmieren
/253/ Handbuch: C für S7-300/400, C-Programme erstellen
/254/ Handbuch: CFC für S7 und M7, Technologische Funktionen graphisch verschalten
/270/ Handbuch: S7-PDIAG für S7-300/400 Prozeßdiagnose für KOP, FUP und AWL projektieren
/271/ Handbuch: NETPRONetze grafisch projektieren
/800/ DOCPROSchaltbücher normgerecht erstellen (nur auf CD)
D
D-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
/801/ TeleService für S7, C7 und M7Fernwartung eines Automatisierungssystems (nur auf CD)
/802/ S7-PLCSIMProgrammtest mit simulierter S7-CPU (nur auf CD)
/803/ Referenzhandbuch: Systemsoftware für S7-300/400STEP 7 Standardfunktionen Teil 2 (nur auf CD)
Literaturverzeichnis
Glossar-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
.Glossar
A
Bei der absoluten Adressierung wird die Adresse des zu bearbeitendenOperanden angegeben.
Bei der direkten Adressierung enthält der Operand die Speicheradresse desWertes, mit dem die Operation arbeiten soll.
Beispiel:
Die Adresse A 4.0 bezeichnet das Bit 0 im Byte 4 des Prozeßabbilds derAusgänge.
Bei der registerindirekten Adressierung gibt der Operand indirekt über einAdreßregister und einen Versatz die Adresse des Werts an, den die Operationverarbeiten wird.
Bei der speicherindirekten Adressierung gibt der Operand einer Operation dieAdresse des Werts, den die Operation verarbeiten wird, an.
Bei der symbolischen Adressierung wird der zu bearbeitende Operandsymbolisch angegeben (anstelle einer Adresse).
Bei der unmittelbaren Adressierung enthält der Operand den Wert, mit demdie Operation arbeiten soll.
Beispiel: L27 bedeutet das Laden der Konstante 27 in den Akku.
Die Adreßregister sind Bestandteil der Register, die sich imKommunikationsteil der CPU befinden. Sie dienen als Zeiger für die register-indirekte Adressierung (bei Programmierung in Anweisungsliste möglich).
Akkumulatoren sind Register in der CPU und dienen als Zwischenspeicherfür Lade-, Transfer- sowie Vergleichs-, Rechen- und Umwandlungs-operationen.
Adressierungabsolut
Adressierungdirekt
Adressierungregisterindirekt
Adressierungspeicherindirekte
Adressierungsymbolisch
Adressierungunmittelbar
Adreßregister
Akkumulator
Glossar-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Aktualparameter ersetzen beim Aufruf eines Funktionsbausteins (FB) odereiner Funktion (FC) die Formalparameter. Beispiel: Der Formalparameter ”Start” wird ersetzt durch den Aktual-parameter ”E 3.6”.
Eine Anweisung ist die kleinste selbständige Einheit eines in einer textuellenSprache erstellten Anwenderprogrammes. Sie stellt eine Arbeitsvorschrift fürden Prozessor dar.
Die Anweisungsliste (AWL) ist eine maschinennahe, textuelle Programmier-sprache. AWL ist die Assemblersprache von STEP 5 und STEP 7. Wird einProgramm in AWL programmiert, entsprechen die einzelnen Anweisungenden Arbeitsschritten, mit denen die CPU das Programm bearbeitet.
Anwenderdefinierte Datentypen sind von Ihnen erzeugte spezielle Daten-strukturen, die Sie nach ihrer Definition im gesamten CPU-Programmverwenden. Sie können wie elementare oder zusammengesetzte Datentypenin der Variablendeklaration von Codebausteinen (FC, FB, OB) verwendetwerden oder als Vorlage für die Erstellung von Datenbausteinen mit gleicherDatenstruktur dienen.
Das Anwenderprogramm enthält alle Anweisungen und Deklarationen sowieDaten für die Signalverarbeitung, durch die eine Anlage oder ein Prozeßgesteuert werden kann. Es ist einer programmierbaren Baugruppe (z. B. CPU,FM) zugeordnet und kann in kleinere Einheiten (Bausteine) strukturiertwerden.
Die Anwenderprogrammstruktur beschreibt die Aufrufhierarchie der Bau-steine innerhalb eines S7-Programms und ermöglicht den Überblick über dieverwendeten Bausteine und deren Abhängigkeit.
Alle Bausteine müssen erst aufgerufen werden, ehe sie bearbeitet werdenkönnen. Die Reihenfolge und Schachtelung dieser Aufrufe innerhalb einesOrganisationsbausteins wird Aufrufhierarchie genannt.
Die Bits A1 und A0 (Anzeigenbits) informieren über die folgenden Ergeb-nisse oder Bits:
� Ergebnis einer arithmetischen Operation
� Ergebnis einer Vergleichsoperation
� Ergebnis einer digitalen Operation
� Bits, die durch eine Schiebe- oder Rotieroperation geschoben wurden.
Aktualparameter
Anweisung
Anweisungsliste(AWL)
Anwenderdefi-nierte Datentypen(UDT)
Anwender-programm
Anwenderpro-grammstruktur
Aufrufhierarchie
A1 und A0
Glossar
Glossar-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Eine in der Programmiersprache AWL programmierte Quelle; entsprichteiner Quell- oder Textdatei.
B
Das BIE-Bit ist ein Bindeglied zwischen Bit- und Wortverarbeitung. Esermöglicht auf effiziente Art und Weise die binäre Interpretation desErgebnisses einer Wortoperation und dessen Einbindung in eine binäreVerknüpfungskette.
C
Ein Codebausteinen ist bei SIMATIC S7 ein Baustein, der einen Teil desSTEP 7-Anwenderprogramms enthält. Im Gegensatz dazu enthält ein Daten-baustein nur Daten. Es gibt folgende Codebausteine: Organisationsbausteine(OBs), Funktionsbausteine (FBs), Funktionen (FCs), Systemfunktionsbau-steine (SFBs) und Systemfunktionen (SFCs). Bausteine werden im Ordner“Bausteine” unter dem “S7-Programm” abgelegt.
Die CPU (central processing unit) ist eine Zentralbaugruppe desAutomatisierungssystems mit Steuer- und Rechenwerk, Speicher, Betriebs-system und Schnittstellen für Programmiergeräte.
D
Datenbausteine (DB) sind Datenbereiche im Anwenderprogramm, dieAnwenderdaten enthalten. Es gibt Global-Datenbausteine, auf die von allenCodebausteinen zugegriffen werden kann und es gibt Instanz-Datenbausteine,die einem bestimmten FB-Aufruf zugeordnet sind. Datenbausteine enthaltenim Gegensatz zu allen anderen Bausteinen keine Anweisungen.
Statische Daten sind Lokaldaten eines Funktionsbausteins, die im Instanz-Datenbaustein gespeichert werden und deshalb bis zur nächsten Bearbeitungdes Funktionsbausteins erhalten bleiben.
AWL-Quelle
BIE-Bit
Codebaustein
CPU
Datenbaustein(DB)
Daten, statisch
Glossar
Glossar-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Mit Hilfe eines Datentyps wird festgestellt, wie der Wert einer Variablen oderKonstanten im Anwenderprogramm verwendet werden soll.
Bei SIMATIC S7 stehen dem Anwender zwei Arten von Datentypen nachIEC 1131-3 zur Verfügung
� Elementare Datentypen
� Zusammengesetzte Datentypen
Elementare Datentypen sind vordefinierte Datentypen gemäß IEC 1131-3.
Beispiele:
� Datentyp ”BOOL” definiert eine binäre Variable (”Bit”);
� Datentyp ”INT” definiert eine 16-Bit-Festpunkt-Variable
Zusammengesetzte Datentypen werden vom Anwender mit der Datentyp-deklaration geschaffen. Sie haben keinen eigenen Namen und sind deshalbnicht mehrfach verwendbar. Man unterscheidet zwischen Feldern undStrukturen. Auch die Datentypen STRING und DATE AND TIME gehörenhierzu.
Im Deklarationsteil werden die Lokaldaten eines Codebausteins deklariert,wenn die Programmerstellung mit einem Texteditor erfolgt.
E
Bei der inkrementellen Eingabe eines Bausteins wird jede Zeile bzw. jedesElement sofort auf Eingabefehler (z. B. Syntax) geprüft. Eventuelle Fehlerwerden markiert und müssen vor Beenden der Eingabe korrigiert werden. Dieinkrementelle Eingabe ist z. B. möglich in den Programmiersprachen AWL,KOP und FUP.
Erstes Setzen des Verknüpfungsergebnisses.
F
Ein Feld (ARRAY) ist ein zusammengesetzter Datentyp (Datentyp, zusam-mengesetzt) bestehend aus Datenelementen gleichen Typs. Diese Datenele-mente können elementar oder zusammengesetzt sein.
Datentypen
Datentyp,elementar
Datentyp,zusammengesetzt
Deklarationsteil
Eingabeinkrementell
Erstabfrage
Feld
Glossar
Glossar-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Ein Formalparameter ist ein Platzhalter für den tatsächlichen Parameter(Aktualparameter) bei parametrierbaren Codebausteinen. Bei FB und FCwerden die Formalparameter vom Anwender deklariert, bei SFB und SFCsind sie bereits vorhanden. Beim Aufruf des Bausteins wird dem Formal-parameter ein Aktualparameter zugeordnet, so daß der aufgerufene Bausteinmit dessen aktuellen Wert arbeitet.Die Formalparameter zählen zu den Lokaldaten des Bausteins und unterteilensich nach Eingangs–, Ausgangs, und Durchgangsparametern.
Eine Funktion (FC) ist gemäß IEC 1131-3 ein Codebaustein ohne Gedächtnis.Eine Funktion bietet die Möglichkeit der Übergabe von Parametern imAnwenderprogramm. Dadurch eignen sich Funktionen zur Programmierungvon häufig wiederkehrenden komplexen Funktionen z.B. Berechnungen. Wichtig: Da kein Gedächtnis vorhanden, müssen die berchneten Werte direktnach dem FC-Aufruf weiterverarbeitet werden.
Ein Funktionsbaustein (FB) ist gemäß IEC 1131-3 ein Codebaustein mitGedächtnis. Ein FB bietet die Möglichkeit der Übergabe von Parametern imAnwenderprogramm. Dadurch eignen sich Funktionsbausteine zurProgrammierung von häufig wiederkehrenden komplexen Funktionen z.B.Regelungen, Betriebsartenanwahl. Da ein FB über ein Gedächtnis (Instanz-Datenbaustein) verfügt, kann auf dessen Parameter (z. B. Ausgänge) zu jederZeit an jeder beliebigen Stelle im Anwenderprogramm zugegriffen werden.
Der Funktionsplan ist eine der Programmiersprachen bei STEP 5 undSTEP 7. FUP benutzt zur Darstellung der Logik die von der BooleschenAlgebra bekannten logischen Boxen. Außerdem können komplexe Funktio-nen (z. B. mathematische Funktionen) direkt in Verbindung mit der logischenBox dargestellt werden. Eine Übersetzung in andere Programmiersprachen(z. B. Kontaktplan) ist möglich.
G
Ein Global-Datenbaustein ist technisch ein Datenbaustein, dessen Operandbeim Öffnen in das Adreßregister des DB geladen wird. Er liefert Speicherund Daten für alle Codebausteinsteine (FC, FB oder OB), die ausgeführtwerden sollen.
Im Gegensatz hierzu besteht die Aufgabe eines Instanz-Datenbaustein darin,als spezieller Speicher und als Daten für den Funktionsbaustein verwendet zuwerden, dem er zugeordnet wurde.
Formalparameter
Funktion(FC)
Funktionbausteine(FB)
Funktionsplan(FUP)
Global-Daten-baustein (DB)
Glossar
Glossar-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
I
Mit ”Instanz” wird der Aufruf eines Funktionbausteins bezeichnet; dabei istihm ein Instanz-Datenbaustein zugeordnet.
Ein Instanz-Datenbaustein speichert die Formalparameter und statischenDaten von Funktionsbausteinen. Ein Instanz-Datenbaustein kann einem FB-Aufruf oder einer Aufrufhierarchie von Funktionsbausteinen zugeordnet sein.
K
Der Klammerstack ist ein Speicherbereich, den die Verknüpfungsoperationenvon Klammerausdrücken U(, O(, X(, UN(, ON( und XN( verwenden. EineVerschachtelung von Bitverknüpfungsoperationen ist bis zur Tiefe 8 möglich.
Der Kontaktplan ist eine grafische Programmiersprache bei STEP 5 undSTEP 7. Die Darstellung ist genormt nach DIN 19239. Die Kontaktplan-darstellung entspricht der Darstellung eines Stromlaufplans. Im Gegensatzzur Anweisungsliste (AWL) ist bei KOP nur ein eingeschränkter Operations-vorrat darstellbar.
M
Das Master Control Relay (MCR) wird in Relais-Kontaktplänen für dasAktivieren und Deaktivieren des Signalflusses (Strompfad) verwendet. Eindeaktivierter Strompfad entspricht einer Operationsfolge, die einen Nullwertstatt des errechneten Wertes schreibt bzw. einer Operationsfolge, die denbestehenden Speicherwert unverändert läßt.
Die Mnemonik ist abgekürzte Darstellung der Operanden und derProgrammieroperationen im Programm (z. B. steht ”E” für Eingang). STEP 7unterstützt die internationale Darstellung (die auf der englischen Sprachebasiert) und die SIMATIC-Darstellung (die auf der deutschen Darstellung derOperationen und den Konventionen für SIMATIC-Adressierung beruht).
O
Ein Operand ist ein Teil einer STEP 7-Anweisung und sagt aus, womit derProzessor etwas tun soll. Er kann sowohl absolut als auch symbolisch adres-siert werden.
Instanz
Instanz-Daten-baustein (DB)
Klammerstack
Kontaktplan (KOP)
Master ControlRelay
Mnemonik
Operand
Glossar
Glossar-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Ein Operandenkennzeichen ist der Teil des Operanden einer Operation, indem Informationen enthalten sind, wie z. B. der Speicherbereich, in dem dieOperation einen Wert (Datenobjekt) findet, mit dem sie eine Verknüpfungausführt oder die Größe eines Werts (Datenobjekt), mit dem sie eineVerknüpfung ausführt. In der Anweisung ”L EB10” ist ”EB” das Operanden-kennzeichen (”E” steht für den Eingangsbereich des Speichers, ”B” steht fürein Byte in diesem Bereich).
Eine Operation ist Teil einer STEP 7-Anweisung und sagt aus, was derProzessor tun soll.
Das OR-Bit (ODER) wird benötigt, wenn Sie eine UND- vor ODER-Verknüpfung ausführen. Das OR-Bit zeigt den ODER-Operationen, daß einezuvor ausgeführte UND-Verknüpfung den Wert ”1” geliefert hat, womit dasErgebnis der ODER-Verknüpfung vorweggenommen wird. Jede anderebitverarbeitende Operation setzt das OR-Bit zurück (siehe Kapitel 5.4).
Verzeichnis auf der Benutzungsoberfläche des SIMATIC Managers, dasgeöffnet werden kann und weitere Verzeichnisse und Objekte enthalten kann.
Das Statusbit OS bedeutet ”Überlauf, speichernd”. Ein Überlauf kann bei-spielsweise nach Ausführung einer mathematischen Funktion auftreten.
Das Statusbit OS bedeutet ”Überlauf,”. Ein Überlauf kann beispielsweisenach Ausführung einer mathematischen Funktion auftreten.
P
Ein Ordner für alle Objekte einer Automatisierungslösung, unabhängig vonder Anzahl der Stationen, Baugruppen und deren Vernetzung.
Mit einem Pointer können Sie die Adresse einer Variablen identifizieren. EinPointer enthält einen Operanden anstelle eines Wertes. Wenn Sie derParameterart Pointer einen Aktualparameter zuweisen, liefern Sie dieSpeicheradresse. Mit STEP 7 können sie den Pointer entweder im Pointer-format eingeben oder einfach als Operanden (z. B. M 50.0). Im folgendenBeispiel ist das Pointerformat gezeigt, mit dem auf Daten ab M 50.0zugegriffen wird.
Operanden-kennzeichen
Operation
OR-Bit
Ordner
OS-Bit
OV-Bit
Projekt
Pointer
Glossar
Glossar-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Q
Eine Quelle (Textdatei) ist Teil eines Programms, der mit einem grafischenoder textuellen Editor erstellt wird und aus dem durch Übersetzen das lauffä-hige Anwenderprogramm bzw. der Maschinencode für M7 entsteht.
Eine S7-Quelle wird im Ordner ”Quellen” unter dem “S7-Programm”abgelegt.
R
Referenzdaten dienen zur Kontrolle des S7-Programms und umfassen dieQuerverweisliste, den Belegungsplan, die Anwenderprogrammstruktur, dieListe nicht verwendeter Operanden und die Liste der Operanden ohneSymbol.
S
Ein Ordner für Bausteine, Quellen und Pläne für programmierbare S7-Bau-gruppen, der auch die Symboltabelle enthält.
Schlüsselwörter werden bei der quellorientierten Eingabe verwendet, um beider Programmeingabe den Beginn eines Bausteines zu kennzeichenen undum die Sektionen im Deklarationsteil von Bausteinen, den Beginn vonBausteinkommentaren und den Beginn von Überschriften zu markieren.
Grafische Benutzungsoberfläche für SIMATIC-Anwender unterWindows 95/NT zur Verwaltung von STEP 7-Projekten.
Eine Zentralbaugruppe hat bei SIMATIC S7 drei Speicherbereiche:
� den Ladebereich
� den Arbeitsbereich und
� den Systembereich.
Gerät, das als zusammengehörige Einheit an ein oder mehrere Subnetzeangeschlossen werden kann, z. B. Automatisierungssystem, Programmier-gerät, Operator Station.
Quelle
Referenzdaten
S7-Programm
Schlüsselwort
SIMATIC Manager
Speicherbereich
Station
Glossar
Glossar-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Das Statusbit (STA) speichert den Wert eines angesprochenen Bits. DerStatus einer Verknüpfungsoperation, die Lesezugriff auf den Speicher hat (U,UN, O, ON, X oder XN), ist immer gleich dem Wert des Bits, das dieseOperation abfragt (das Bit, mit dem sie ihre Verknüpfung ausführt). DerStatus einer Verknüpfungsoperation, die Schreibzugriff auf den Speicher hat(S, R, =) ist gleich dem Wert des Bits, in das die Operation schreibt. Fallskein Schreiben stattfindet, ist er gleich dem Wert des angesprochenen Bits.Das Statusbit hat keine Bedeutung für Verknüpfungsoperationen, die nichtauf den Speicher zugreifen. Diese Operationen setzen das Statusbit auf ”1”(STA = 1). Das Statusbit wird nicht von Operationen abgefragt. Es wirdlediglich während des Programmtests (Programmstatus) ausgewertet.
Das Statuswort ist Bestandteil der Register der Zentralbaugruppe. Im Status-wort befinden sich Statusinformationen und Fehlerinformationen, die im Zu-sammenhang mit der Bearbeitung von STEP 7-Befehlen auftreten. Die Sta-tusbits können vom Anwender gelesen beschrieben werden; die Fehlerbitskönnen nur gelesen werden.
Ein Symbol ist ein vom Anwender unter Berücksichtigung bestimmterSyntaxvorschriften definierter Name. Dieser Name kann nach der Festlegung,wofür er stehen soll (z. B. Variable, Datentyp, Sprungmarke, Baustein) beider Programmierung und beim Bedienen und Beobachten verwendet werden.Beispiel: Operand: E 5.0, Datentyp: Bool, Symbol: Taster Notaus.
Tabelle zur Zuordnung von Symbolen (=Name) zu Adressen für Globaldatenund Bausteine. Beispiele: Notaus (Symbol) – E 1.7 (Adresse) oder Regler(Symbol) – SFB 24 (Baustein).
Eine Systemfunktion (SFC) ist eine im Betriebssystem der S7-CPU in-tegrierte Funktion (ohne Gedächtnis), die bei Bedarf im STEP 7-Anwender-programm wie eine Funktion (FC) aufgerufen werden kann.
Ein Systemfunktionsbaustein (SFB) ist ein im Betriebssystem der S7-CPUintegrierter Funktionsbaustein (mit Gedächtnis), der bei Bedarf imSTEP 7-Anwenderprogramm wie ein Funktionsbaustein (FB) aufgerufenwerden kann.
Statusbit
Statuswort
Symbol
Symboltabelle
Systemfunktion(SFC)
Systemfunktions-baustein (SFB)
Glossar
Glossar-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
V
Die Variablendeklaration umfaßt die Angabe eines symbolischen Namens,eines Datentyps und evtl. Vorbelegungswert, Adresse und Kommentar.
In der Variablendeklarationstabelle werden die Lokaldaten eines Codebau-steins deklariert, wenn die Programmerstellung in der inkrementellen Ein-gabe (Eingabe, inkrementell) erfolgt.
In der Variablentabelle werden die Variablen zusammengestellt, diebeobachtet und gesteuert werden sollen inkl. der zugehörigen Format-angaben.
Das Verknüpfungsergebnis (VKE) ist das Ergebnis einer Verknüpfungskette,das zur binären Signalverarbeitung verwendet wird. Bestimmte Operationenwerden abhängig vom vorherigen VKE ausgeführt oder nicht.
Eine Verknüpfungskette ist der Teil eines Anwenderprogramms, der miteinem /ER-Bit mit einem Signalzustand von ”0” beginnt und endet, wenneine Operation oder ein Ereignis das /ER-Bit auf ”0” zurücksetzt. Nachdemdie CPU die erste Operation in der Kette ausgeführt hat, ist der Signalzustanddes /ER-Bits immer gleich ”1”. Bestimmte Operationen, wie z. B.Ausgabeoperationen, (z. B. S, R oder =) setzen das /ER-Bit auf ”0” zurück.Siehe auch Erstabfrage.
Variablen-deklaration
Variablendeklara-tionstabelle
Variablentabelle
Verknüpfungs-ergebnis (VKE)
Verknüpfungskette
Glossar
Index-1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Stichwortverzeichnis
Zeichen)MCR. Siehe VKE vom MCR-Stack holen,
Ende bei MCR; VKE wiedereinsetzen, Endebei MCR
+I. Siehe Festpunktarithmetik, Addieren zweierGanzzahlen (16 Bit)
+R. Siehe Gleitpunktarithmetik, Addierenzweier Gleitpunktzahlen
/ER. Siehe Erstabfrage=. Siehe Zuweisung
Zahlen1er Komplement Ganzzahl (16 Bit) (INVI),
12-141er Komplement Ganzzahl (32 Bit) (INVD),
12-142er Komplement Ganzzahl (16 Bit) (NEGI),
12-142er Komplement Ganzzahl (32 Bit) (NEGD),
12-142er Komplement Gleitpunktzahl (32 Bit)
(NEGR), 12-1432 Bit, IEEE-FP. Siehe Gleitpunktarithmetik
oder Gleitpunktzahl
AA1 und A0. Siehe AnzeigenbitsAbfragen von Anzeigenbits (A1 und A0), 2-14ABS. Siehe Absolutwert, Bilde Absolutwert ei-
ner Gleitpunktzahl (32 Bit)Abschließen einer Verknüpfungskette, 5-20Absolute Adressierung, praktische Anwendung,
B-4Absolute Sprungoperationen
Springe absolut (SPA), 16-3Sprungleiste (SPL), 16-3
AbsolutwertBilde Absolutwert einer Gleitpunktzahl (32
Bit), 10-6Definition, 10-6
ACOS. Siehe Arcuscosinus
Adressierungabsolut, 17-3Bereiche, 2-9bereichsintern, registerindirekt, 3-7direkt, 3-2konstante Werte, 2-3Pointerformat
bereichsintern, registerindirekt, 3-8registerindirekt, bereichsübergreifend,
3-13speicherindirekt, 3-4
registerintern, bereichsübergreifend,3-11–3-14
speicherindirekt, 3-3symbolisch, 2-4, 17-3, B-3unmittelbar, 3-2
Adreßregister, 3-6Addieren einer Ganzzahl zum Adreßregister,
4-7Laden und transferieren zwischen Adreßre-
gistern, 8-11–8-12AKKU 1 in AKKU 2 (PUSH), 4-2AKKU 2 in AKKU 1 (POP), 4-2Akkumulator, Transferieren des Statusworts, 8-6Akkumulatoren
Addieren einer Ganzzahl zu Adreßregister 1oder Adreßregister 2, 4-7
Addieren einer Ganzzahl zu AKKU 1, 9-6Bearbeiten des Inhalts, 4-2–4-7Beschreibung, 2-10Funktion, 2-10
AKKU 1 in AKKU 2 (PUSH), 4-2AKKU 2 in AKKU 1 (POP), 4-2Dekrementiere AKKU 1 (DEC), 4-6Inkrementiere AKKU 1 (INC), 4-6
Informationsaustausch durch Verwendungder Operationen Laden und Transferie-ren, 8-2
Laden des Statusworts in AKKU 1, 8-6mit Gleitpunktarithmetik, 9-2–9-6mit Grundrechenoperationen für Gleitpunkt-
zahlen, 10-2–10-5mit Lade- und Transferoperationen, 8-2mit Vergleichsoperationen, 11-2
Index-2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
mit Wortverknüpfungsoperationen, 13-2,13-3, 13-6
Tausche AKKU 1 mit AKKU 2 (TAK), 4-2Tauschen der Inhalte, 4-2Umkehren der Reihenfolge der Bytes in
AKKU 1, 12-13Tausche Reihenfolge in AKKU 1 (16 Bit)
(TAW), 12-13Tausche Reihenfolge in AKKU 1 (32 Bit)
(TAD), 12-13Zeitwert in, 6-4
Akkumulatoroperationen und Adreßregisteran-weisungen, 4-2–4-6AKKU 1 in AKKU 2 (PUSH), 4-2AKKU 2 in AKKU 1 (POP), 4-2Dekrementiere AKKU 1 (DEC), 4-6Inkrementiere AKKU 1 (INC), 4-6Tausche AKKU 1 mit AKKU 2 (TAK), 4-2
Aktiviere MCR-Bereich (MCRA), 17-11Aktualparameter, 17-2, 17-3
Zuweisung, 17-8Anweisung
Adressierungkonstante Werte, 2-3symbolische Namen, 2-4
Aufbau, 2-2–2-9Anweisungsliste, 1-1ANY, 17-9Anzeigenbits (A1 und A0)
Auswirkung der arithmetischen Operationenauf die Anzeigenbits, 10-4
Beeinflussung durch Festpunktarithmetik,9-4
Beeinflussung durch Schiebe- und Rotiero-perationen, 14-2
Beeinflussung durch Vergleichsoperationen,11-4, 11-5
Beeinflussung durch Wortverknüpfungso-perationen, 13-2
Bits im Statuswort, 2-14Operationen zur Auswertung von A1 und
A0, 11-4, 11-5Verhältnis zu bedingten Sprungoperationen,
16-6Arcuscosinus (ACOS), 10-13–10-15Arcussinus (ASIN), 10-13–10-14Arcustangens (ATAN), 10-13Arithmetische Operationen, Ganzzahl, 9-2ASIN. Siehe ArcussinusATAN. Siehe ArcustangensAUF. Siehe Aufschlage DatenbausteinAufrufen eines Programmteils, mehrfach, 16-8Aufschlage Datenbaustein (AUF), 15-2
Ausgang einer Verknüpfungskette, 5-20AWL, Bedeutung, 1-1
BBausteinaufruf (CALL), 17-3–17-6Bausteinende
Bausteinende absolut (BEA), 17-16Bausteinende bedingt (BEB), 17-16
BCD tauschen in Ganzzahl (16 Bit) (BTI), 12-2BCD tauschen in Ganzzahl (32 Bit) (BTD), 12-4BCD-Format
Laden eines Zählwerts im BCD-Format,8-10
Laden eines Zeitwerts im BCD-Format, 8-9BCDF. Siehe Fehler bei BCD-UmwandlungenBEA. Siehe Bausteinende absolutBearbeitungsreihenfolge bei Und mit Oder-Ver-
knüpfungen, 5-15BEB. Siehe Bausteinende bedingtBedingte Sprungoperationen
Springe, wenn BIE = 0 (SPBIN), 16-5Springe, wenn BIE = 1 (SPBI), 16-5Springe, wenn Ergebnis = 0 (SPZ), 16-6Springe, wenn Ergebnis <= 0 (SPMZ), 16-6Springe, wenn Ergebnis >= 0 (SPPZ), 16-6Springe, wenn minus (SPM), 16-6Springe, wenn OS = 1 (SPS), 16-5Springe, wenn OV = 1 (SPO), 16-5Springe, wenn plus (SPP), 16-6Springe, wenn ungleich 0 (SPN), 16-6Springe, wenn ungültig (SPU), 16-6Springe, wenn VKE = 0 (SPBN), 16-4Springe, wenn VKE = 0 mit BIE (SPBNB),
16-4Springe, wenn VKE = 1 (SPB), 16-4Springe, wenn VKE = 1 mit BIE (SPBB),
16-4Verhältnis zu den Anzeigenbits (A1 und A0),
16-6Beginn einer Verknüpfungskette, 2-10Beispiele, praktische Anwendungen der Opera-
tionen, B-2Bereichsinterne, registerindirekte Adressierung,
3-7–3-10BIE. Siehe BinärergebnisBIE-Bit (Binärergebnis), Bit im Statuswort,
2-16Bilden der Komplemente, 12-14
Stichwortverzeichnis
Index-3Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Binär-codierte Dezimalzahlen und GanzzahlenAufbau einer BCD-Zahl (32 Bit), die in eine
Ganzzahl (32 Bit) umgewandelt werdensoll, 12-4
Aufbau einer BCD-Zahl, die aus einer Ganz-zahl (16 Bit) umgewandelt werden soll,12-5
Aufbau einer BCD-Zahl, die aus einer Ganz-zahl (32 Bit) umgewandelt wurde, 12-6
Aufbau einer BCD-Zahl, die in eine Ganz-zahl (16 Bit) umgewandelt werden soll,12-2
Umwandeln, 12-2Bit, als Datentyp, 3-4Bitverknüpfung
Funktion von Akkumulatoren, 11-2Umwandlung, Überblick über Umwandeln
und Runden von Zahlen, 3-5Vergleich, 11-2Vergleichskriterien, 11-2
BitverknüpfungenVerwenden von Zählern als Bitoperand, 7-2Zähler, 7-2
Bitverknüpfungsoperation, 5-26Exklusiv Oder (X), Verwenden von Zählern
als Boolescher Operand, 7-2Exklusiv Oder Nicht (XN), Verwenden von
Zählern als Boolescher Operand, 7-2Flanke negativ (FN), 5-16, 5-19Flanke positiv (FP), 5-16, 5-19Negiere VKE (NOT), 5-26Oder (O), Verwenden von Zählern als Boole-
scher Operand, 7-2Oder Nicht (ON), Verwenden von Zählern
als Boolescher Operand, 7-2praktische Anwendung, B-3, B-6Rücksetze (R), 5-20, 5-21, 5-23, 7-8, 7-9
Zähler, 7-4Zeiten, 6-6
Rücksetze VKE (CLR), 5-26Setze (S), Zähler, 7-3, 7-8, 7-9Setze (SET), 5-20, 5-21, 5-23Setze VKE (SET), 5-26Sichere VKE im BIE-Flag (SAVE), 5-26Und (U), 5-3
Verwenden von Zählern als BoolescherOperand, 7-2
Und Nicht (UN), 5-3Verwenden von Zählern als Boolescher
Operand, 7-2Zuweisung (=), 5-20, 5-24, 5-25
Bitverknüpfungsoperationen, Verwenden vonZählern als Bitoperand, 7-2
BTD. Siehe BCD in Ganzzahl wandeln (32 Bit)BTI. Siehe BCD in Ganzzahl wandeln (16 Bit)
CCALL. Siehe Bausteinaufruf (CALL)CC. Siehe Konditionierter BausteinaufrufCLR. Siehe Operation Rücksetze VKE (CLR)COS. Siehe CosinusCosinus (COS), 10-13CPU-Register, 3-6
AkkumulatorenFunktion, 2-10Zeitwert in AKKU 1, 6-4
Klammerstack, 2-10Pointer, 3-6Statuswort, 2-12
DDatenbaustein (DB)
Lade Länge Global-DB in AKKU 1 (LDBLG), 8-12, 15-3
Lade Länge Instanz-DB in AKKU 1 (LDILG), 8-12, 15-3
Lade Nummer Global-DB in AKKU 1 (LDBNO), 8-12, 15-3
Lade Nummer Instanz-DB in AKKU 1 (LDINO), 8-12, 15-3
Längen und Nummern, Laden, 15-3–15-4Register, tauschen, 15-2Speicherbereich, 2-8
Adreßbereich, 2-9Datenbausteinoperationen
Aufschlage Datenbaustein (AUF), 15-2Lade Länge Global-DB in AKKU 1 (L
DBLG), 15-3Lade Länge Instanz-DB in AKKU 1 (L
DILG), 15-3Lade Nummer Global-DB in AKKU 1 (L
DBNO), 15-3Lade Nummer Instanz-DB in AKKU 1 (L
DINO), 15-3Tausche Global-DB und Instanz-DB (TDB),
15-2Datentypen
ANY, 17-9für Formal- und Aktualparameter, 17-3
DBLG. Siehe Lade Länge Global-DB in AKKU1
DBNO. Siehe Lade Nummer Global-DB inAKKU 1
Stichwortverzeichnis
Index-4Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Deaktiviere MCR-Bereich, MCRD, 17-11DEC. Siehe Dekrementiere AKKU 1Dekrementiere AKKU 1 (DEC), 4-6Deutsche Mnemonik für die Bezeichnung der
Operationen, alphabetische Auflistung,A-2–A-11
Deutsche SIMATIC-Mnemonik für die Bezeich-nung der Operationen, A-12
DILG. Siehe Lade Länge Instanz-DB in AKKU1
DINO. Siehe Lade Nummer Instanz-DB inAKKU 1
Direkte Adressierung, 3-2DTB. Siehe Ganzzahl (32 Bit) in BCD wandelnDTR. Siehe Ganzzahl (32 Bit) in Gleitpunktzahl
wandeln (32 Bit)
EE/A (externe Ein- und Ausgänge), Speicherbe-
reich, 2-8Adreßbereich, 2-9
ENO. Siehe BIE-Bit (Binärergebnis)Erstabfrage (/ER), 2-12
Ergebnis, 2-12Exklusiv Oder (X), Verwenden von Zählern als
Boolescher Operand, 7-2Exklusiv Oder Doppelwort (XOD), 13-6Exklusiv Oder Nicht (XN), Verwenden von Zäh-
lern als Boolescher Operand, 7-2Exklusiv Oder Wort, 13-3–13-5EXP. Siehe ExponentialfunktionExponentialfunktion, EXP, 10-12
FFallender Flankenwechsel, 5-16–5-19FBs. Siehe FunktionsbausteineFCs. Siehe FunktionenFehler bei BCD-Umwandlung (BCDF), 12-3Festpunktarithmetik, 9-2
Addieren einer Ganzzahl zu Adreßregister 1oder Adreßregister 2, 4-7
Addieren einer Ganzzahl zu AKKU 1, 9-6Addieren zweier Ganzzahlen (16 Bit) (+I),
9-3Auswerten des Divisionsrests Ganzzahl (32
Bit), 9-4gültiger Bereich für Ergebnisse, 9-4praktische Anwendung, B-12–B-13
Überblick über die vier Grundrechenopera-tionen, 9-2
Verhältnis zu Akkumulatoren, 9-2Flanke negativ (FN), 5-16–5-19Flanke positiv (FP), 5-16–5-19FN. Siehe Flanke negativFormalparameter, 17-2, 17-3Format
Zählwert, 7-6Zeitwert, 6-4
FP. Siehe Flanke positivFR. Siehe FreigabeFreigabe
einer Zeit, 6-6eines Zählers, 7-4, 7-8Timer (FR), Zeiten, 6-6
Funktionen (FCs)Abhängigkeit vom Master Control Relay
(MCR), 17-11als Operand einer Operation, 2-5Aufrufen mit der Operation CALL,
17-3–17-6Aufrufen mit der Operation Konditionierter
Bausteinaufruf (CC), 17-7Aufrufen mit der Operation Unkonditionier-
ter Bausteinaufruf (UC), 17-7Funktionsbausteine (FBs)
Abhängigkeit vom Master Control Relay(MCR), 17-11
als Operand einer Operation, 2-5Aufrufen mit der Operation CALL,
17-3–17-6Aufrufen mit der Operation Konditionierter
Bausteinaufruf (CC), 17-7Aufrufen mit der Operation Unkonditionier-
ter Bausteinaufruf (UC), 17-7
GGanzzahl
Addieren einer Ganzzahl zu AKKU 1, 9-6Festpunktarithmetik, 9-2Umwandeln, 12-2
Ganzzahl (16 Bit), Vergleich zweier Ganzzahlen(16 Bit), 11-3–11-4
Ganzzahl (16 Bit) in BCD wandeln (ITB), 12-5Ganzzahl (32 Bit), Vergleich zweier Ganzzahlen
(32 Bit), 11-3Ganzzahl (32 Bit) in BCD wandeln (ITD), 12-6
Stichwortverzeichnis
Index-5Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Ganzzahl (32 Bit) in Gleitpunktzahl wandeln(32 Bit) (DTR), 12-7
Ganzzahlen (32 Bit) in BCD wandeln (DTB),12-6
GleitpunktarithmetikAddieren zweier Gleitpunktzahlen (+R),
10-3, 10-4Bilde Absolutwert einer Gleitpunktzahl (32
Bit, IEEE FP) (ABS), 10-6gültiger Bereich für Ergebnisse, 10-5Überblick über die vier Grundrechenopera-
tionen, 10-2Verhältnis zu Akkumulatoren, 10-2
Gleitpunktarithmetik, erweiterte OperationenArcuscosinus (ACOS), 10-13–10-15Arcussinus (ASIN), 10-13–10-14Arcustangens (ATAN), 10-13
GleitpunktzahlBilden des Absolutwerts, 10-6Vergleichen zweier Gleitpunktzahlen,
11-5–11-6
IINC. Siehe Inkrementiere AKKU 1Inkrementiere AKKU 1 (INC), 4-6Instanzdatenbaustein (Instanz-DB), für den Zu-
griff auf Daten von Formalparametern, 17-3INVD. Siehe 1er Komplement Ganzzahl (32
Bit)Invertieren von Zahlen, 12-14INVI. Siehe 1er Komplement Ganzzahl (16 Bit)ITB. Siehe Ganzzahl (16 Bit) in BCD wandelnITD. Siehe Ganzzahl (16 Bit) in Ganzzahl (32
Bit) wandeln
KKlammerausdrücke, 5-14
Und vor Oder, 5-15Klammerstack, 2-10, 5-14Komplemente, Bilden der Komplemente, 12-14Konditionierter Bausteinaufruf (CC), 17-7Konstante Werte
Addieren einer Ganzzahl zu AKKU 1, 9-6als Operanden für Wortverknüpfungsopera-
tionen, 13-2Dekrementieren von AKKU 1 um eine
8-Bit-Konstante, 4-6Inkrementieren von AKKU 1 um eine 8-Bit-
Konstante, 4-6
LL. Siehe Lade- und TransferoperationenLade Länge Global-DB in AKKU 1 (L DBLG),
15-3Lade Länge Instanz-DB in AKKU 1 (L DILG),
15-3Lade Nummer Global-DB in AKKU 1 (L
DBNO), 15-3Lade Nummer Instanz-DB in AKKU 1 (L
DINO), 15-3Lade- und Transferoperationen (L) (T),
8-2–8-12Siehe auch Operationen, Laden (L) und
Transferieren (T)Byte, Wort oder Doppelwort als Parameter,
8-5Definition, 8-2Direkte Adressierung, 8-4Indirekte Adressierung, 8-4Indirekte, bereichsübergreifende Adressie-
rung, 8-5Informationsaustausch, 8-2
über den Akkumulator, 8-2zwischen Baugruppen und Speicherberei-
chen, 8-2Lade Länge Global-DB in AKKU 1 (L
DBLG), 8-12Lade Länge Instanz-DB in AKKU 1 (L
DILG), 8-12Lade Nummer Global-DB in AKKU 1 (L
DBNO), 8-12Lade Nummer Instanz-DB in AKKU 1 (L
DINO), 8-12Laden des Status in AKKU 1, 8-6Laden und Transferieren zwischen Adreßre-
gister (LAR und TAR), 8-11–8-12Laden von Statusbits in AKKU 1, 8-6Transferieren des Inhalts von AKKU 1 in
das Statuswort, 8-6Unmittelbare Adressierung, 8-3
Laden, der Zeitbasis, 8-8Laden (L) und Transferieren (T)
Direkte Adressierung, 8-4Laden eines BCD-codierten Zählwerts in
AKKU 1, 7-7Laden der Länge eines Datenbausteins in
AKKU 1Globaldatenbaustein (L DBLG), 8-12Instanzdatenbaustein (L DILG), 8-12
Laden der Längen und Nummern von Datenbau-steinen, 15-3–15-4
Stichwortverzeichnis
Index-6Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Laden der Nummer eines Datenbausteins inAKKU 1Globaldatenbaustein (L DBNO), 8-12Instanzdatenbaustein (L DINO), 8-12
Laden eines aktuellen Werts in AKKU 1 als bi-när-codierte DezimalzahlZähler, 7-2, 7-7Zeit, 6-2
Laden eines ZählwertsFormat, 7-6im BCD-Format (LC), 8-10im binär-codierten Format (L Zählerwort),
8-8Laden eines Zählwerts in AKKU 1 als Ganz-
zahl, 7-6Laden eines Zeitwerts
Bereich, 6-5Format, 6-3im BCD-Format (LC), 8-9in binär-codierten Format (L Timerwort),
8-7Laden und Transferieren zwischen Adreßregi-
stern, 8-11–8-12LAR. Siehe Laden und Transferieren zwischen
AdreßregisternLN. Siehe Natürlicher LogarithmusLokaldaten, Speicherbereich, 2-8
Adreßbereich, 2-9LOOP, 16-8
Setzen eines Loop-Zählers, 16-9Sprungmarke als Operand, 16-2, 16-8wirkungsvolle Verwendung, 16-9
MMaster Control Relay (MCR)
Abhängigkeit, 17-10, 17-11Auswirkung auf die Operation Setze (S) und
Rücksetze (R), 5-21Auswirkung auf die Operationen Setze (S)
und Rücksetze (R), 17-10Implementierung, 17-13Wichtige Hinweise zur Benutzung, 17-15
Master Control Relay (MCR) Funktionen, 17-10Schachtelung, 17-13–17-15
MCR(, 17-13Siehe auch VKE in MCR-Stack sichern, Be-
ginn bei MCRMCR-Funktionalität, Wichtige Hinweise zur
Benutzung, 17-15MCRA. Siehe Aktiviere MCR-BereichMCRD. Siehe Deaktiviere MCR-Bereich
Mehrfaches Aufrufen eines Programmteils, 16-8Merker, Speicherbereich, 2-8
Adreßbereiche, 2-9Multiplikation einer Zahl mit –1, 12-14
NNatürlicher Logarithmus, LN, 10-11NEGD. Siehe 2er Komplement Ganzzahl (32
Bit)NEGI. Siehe 2er Komplement Ganzzahl (16 Bit)Negiere VKE (NOT), 5-26NEGR. Siehe 2er Komplement Gleitpunktzahl
(32 Bit)NOP. Siehe NulloperationenNulloperation (NOP), Verwendung zur Tren-
nung aufeinanderfolgender Sprungoperatio-nen, 16-2
OOder (O), Verwenden von Zählern als Bitope-
rand, 7-2Oder Doppelwort (OD), 13-6Oder Nicht (ON), Verwenden von Zählern als
Bitoperand, 7-2Oder Wort (OW), 13-3–13-5Öffner, 5-7Operand
Artenabsolut, 13-2Bit im Statuswort, 2-3Funktion (FC), 2-5Funktionsbaustein (FB), 2-5konstante Werte, 2-3Operandenkennzeichen und Adresse, 2-5symbolisch, 2-4Systemfunktion (SFC), 2-5Systemfunktionsbaustein (SFC), 2-5
Aufschlage Datenbaustein (AUF), 15-2Beschreibung, 2-2Bits im Statuswort, 5-13Datenbaustein, 2-4für Operationen
Konditionierter Bausteinaufruf (CC),17-7
Laden (L) und Transferieren (T), 8-3–8-5Unkonditionierter Bausteinaufruf (UC),
17-7Zähler, 7-10Zeit, 6-17
Stichwortverzeichnis
Index-7Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Konstanten als Operand, 13-2Sprungmarke für Operation LOOP, 16-3Sprungmarke für Sprungoperation, 16-3symbolisch, 17-3Zuweisen von Operanden zu einer Operation
CALL, 17-3Operationen
Abhängigkeit vom Master Control Relay(MCR), 17-10, 17-11
Akkumulatoroperationen und Adreßregiste-ranweisungen, 4-2–4-7
alphabetische AuflistungSIMATIC-Mnemonik mit SIMATIC-Be-
schreibung, A-2–A-11SIMATIC-Beschreibung mit SIMATIC-
Mnemonik, A-12–A-16Anzeigenbits (A1 und A0) beeinflussend,
9-4, 10-4Festpunktarithmetik, 9-2
Addiere Ganzzahlkonstante (+), 9-2Auswerten des Ergebnisses aus Division
zweier Ganzzahlen (32 Bit) und Spei-chern des Divisionsrests, 9-4
gültiger Bereich für Ergebnisse, 9-4praktische Anwendung, B-12–B-13Überblick über die vier Grundrecheno-
perationen, 9-2Verhältnis zu Akkumulatoren, 9-2–9-5
Gleitpunktarithmetikgültiger Bereich für Ergebnisse, 10-5Überblick über die vier Grundrecheno-
perationen, 10-2Verhältnis zu Akkumulatoren, 10-2–10-5
Laden (L) und Transferieren (T), 8-2–8-10Byte, Wort oder Doppelwort als Parame-
ter, 8-5Definition, 8-2Indirekte Adressierung, 8-4Indirekte, bereichsübergreifende Adres-
sierung, 8-5Informationsaustausch, 8-2Laden des Statuswort in AKKU 1, 8-6Laden und Transferieren zwischen
Adreßregistern (LAR und TAR),8-11–8-12
Laden von Statusbits in AKKU 1, 8-6Transferieren des Inhalts von AKKU 1 in
das Statuswort, 8-6Unmittelbare Adressierung, 8-3
Laden und Transferieren zwischen Adreßre-gistern (LAR und TAR), 8-11
LOOP, 16-8mit Sprungmarke als Operand versehen,
16-8Setzen eines LOOP-Zählers, 16-9wirkungsvolle Verwendung, 16-9
OS-Bit (Überlauf, speichernd) beeinflussend,10-4
OV-Bit (Überlauf) beeinflussend, 10-4praktische Anwendung, B-2Programmsteuerung, Zuweisen von Operan-
den zu einem Aufruf, 17-3–17-15Rotieroperationen, 14-2, 14-6–14-8Schiebe- und Rotieroperationen, 14-2Schiebeoperationen, 14-2–14-5
Zahlen mit Vorzeichen, 14-4Zusammenfassung, 14-5
Sprungoperationen, 16-2absolut, 16-3
Vergleichsoperationen, praktische Anwen-dung, B-10
Wortverknüpfungsoperationen, 13-2–13-816 Bit, 13-3–13-532 Bit, 13-6–13-8Akkumulatorverwaltung, 13-2, 13-3,
13-6Einfluß auf Statusbits, 13-2Konstanten als Operanden, 13-2praktische Anwendung, B-14
Zähloperationen, praktische Anwendung,B-10–B-11
Zeitoperationen, 6-2–6-18praktische Anwendung, B-7
Operationen, die das Statuswort beeinflussen,5-10
OR, Bit im Statuswort, 2-14OS. Siehe OS-Bit (Überlauf, speichernd)OS-Bit (Überlauf, speichernd), Beeinflussung
durch Vergleichen zweier Gleitpunktzahlen,11-5
OV. Siehe OV-Bit (Überlauf)OV-Bit (Überlauf)
Beeinflussung durch Schiebe- und Rotiero-perationen, 14-2
Beeinflussung durch Vergleichen zweierGleitpunktzahlen, 11-5
Beeinflussung durch Wortverknüpfungso-perationen, 13-2
OW. Siehe Oder Wort
Stichwortverzeichnis
Index-8Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
PParallele Verzweigung, Klammerausdrücke,
5-14–5-17Parameter
Aktualparameter, 17-3Formalparameter, 17-3
Pointerformatbereichsinterne, registerindirekte Adressie-
rung, 3-9bereichsübergreifende, registerindirekte
Adressierung, 3-13speicherindirekte Adressierung, 3-4
POP, 4-2Programmieren, praktische Anwendung, B-2Programmsteuerungsoperationen
Aktiviere MCR-Bereich, 17-11Bausteinaufruf (CALL), 17-3–17-6Bausteinende absolut (BEA), 17-16Bausteinende bedingt (BEB), 17-16Deaktiviere MCR-Bereich, 17-11Funktionen des Master Control Relay
(MCR), 17-10Konditionierter Bausteinaufruf (CC), 17-7Unkonditionierter Bausteinaufruf (UC), 17-7VKE in MCR-Stack sichern, Beginn bei
MCR, 17-11, 17-13VKE vom MCR-Stack holen, Ende bei
MCR: )MCR, 17-11VKE wiedereinsetzen, Ende bei MCR:
)MCR, 17-13Zuweisen von Operanden zu einem Aufruf
(CALL), 17-3Prozeßabbild der Ausgänge, Speicherbereich,
2-8Adreßbereich, 2-9
Prozeßabbild der Eingänge, Speicherbereich,2-8Adreßbereich, 2-9
PUSH, 4-2
QQuadrat (SQR), 10-9Quadratwurzel (SQRT), 10-9Querübersetzung, zwischen KOP, FUP, AWL,
1-1
RR. Siehe Rücksetze
RegisterCPU, 3-6Operand, 3-6Prozeßabbild der Ein- und Ausgänge. Siehe
Prozeßabbild der Eingänge, Prozeßabbildder Ausgänge
Tausche Global-DB und Instanz-DB (TDB),15-2
Tauschen der Datenbausteinregister, 15-2Registerinterne, bereichsübergreifende Adres-
sierung, 3-11–3-14Reihenfolge bei Und mit Oder-Operationen,
5-15RLD. Siehe Rotieroperationen, Rotiere links
Doppelwort (32 Bit)RLDA. Siehe Rotieroperationen, Rotiere AKKU
1 links über A1-Anzeige (32 Bit)RND. Siehe Runden zur Ganzzahl (16 Bit)RND+. Siehe Runden zur nächsthöheren Ganz-
zahl (32 Bit)RND–. Siehe Runden zur nächstniederen Ganz-
zahl (32 Bit)Rotieroperationen, 14-2, 14-6–14-8
Rotiere AKKU 1 links über A1-Anzeige (32Bit) (RLDA), 14-8
Rotiere AKKU 1 rechts über A1-Anzeige(32 Bit) (RRDA), 14-8
Rotiere links Doppelwort (32 Bit) (RLD),14-6–14-8
Rotiere rechts Doppelwort (32 Bit) (RRD),14-6–14-8
RRD. Siehe Rotieroperationen, Rotiere rechtsDoppelwort (32 Bit)
RRDA. Siehe Rotieroperationen, Rotiere AKKU1 rechts über A1-Anzeige (32 Bit)
Rückgabewert, Aufrufen einer Funktion, die ei-nen Rückgabe liefert, 17-6
Rücksetze (R), 5-21–5-23Zähler, 7-4, 7-8Zeiten, 6-6
Rücksetze VKE (CLR), 5-26Rücksetzen des Verknüpfungsergebnisses, 5-26Rücksetzen einer Zeit, 6-6Rücksetzen eines Zählers, 7-4Rückwärtszählen (ZR), 7-5Runden mit Abschneiden (TRUNC), 12-12Runden von Gleitpunktzahlen (32 Bit) in Ganz-
zahlen (32 Bit), 12-8Runden von Gleitpunktzahlen in Ganzzahlen
(32 Bit), 12-8Runden von Zahlen, Überblick, 12-12
Stichwortverzeichnis
Index-9Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Runden zur Ganzzahl (16 Bit) (RND), 12-9Runden zur nächsthöheren Ganzzahl (32 Bit)
(RND+), 12-10Runden zur nächstniederen Ganzzahl (32 Bit)
(RND–), 12-11
SS. Siehe SetzeS5 TIME
Zeitbasis, 6-4Zeitwert, 6-3
SA. Siehe Zeit als AusschaltverzögerungSAVE. Siehe Operation Sichere VKE im BIE-
Flag (SAVE)Schiebe- und Rotieroperationen, 14-2–14-5Schiebeoperationen
Auswirkung auf Anzeigenbits A1 und A0und auf das OV-Bit (Überlauf), 14-2
Funktionsweise, 14-2Schiebe links Doppelwort (32 Bit) (SLD),
14-2, 14-5Schiebe links Wort (16 Bit) (SLW), 14-2,
14-5Schiebe rechts Doppelwort (32 Bit) (SRD),
14-2, 14-5Schiebe rechts Wort (16 Bit) (SRW), 14-2,
14-5Schiebe Vorzeichen Ganzzahl (16 Bit) (SSI),
14-4Schiebe Vorzeichen Ganzzahl (32 Bit)
(SSD), 14-4, 14-5Zusammenfassung, 14-5
Schließer, 5-6Schlüsselwörter, C-1SE. Siehe Zeit als EinschaltverzögerungSET. Siehe Setze VKE = 1Setze (S), 5-20, 5-21–5-23
Zähler, 7-3Setze VKE = 1 (SET), 5-26Setzen des Verknüpfungsergebnisses, 5-26Setzen eines Zählers, 7-3, 7-8SI. Siehe Zeit als ImpulsSichere VKE im BIE-Flag (SAVE), 5-26Sichern des Verknüpfungsergebnisses, 5-26SLD. Siehe Schiebeoperationen, Schiebe links
Doppelwort (32 Bit)SLW. Siehe Schiebeoperationen, Schiebe links
Wort (16 Bit)
SPA. Siehe Springe absolutSPB. Siehe Springe, wenn VKE = 1SPBB. Siehe Springe, wenn VKE = 1 mit BIESPBI. Siehe Springe, wenn BIE = 1SPBIN. Siehe Springe, wenn BIE = 0SPBN. Siehe Springe, wenn VKE = 0SPBNB. Siehe Springe, wenn VKE = 0 mit BIESpeicherbereiche
Adreßbereiche, 2-9Datenbaustein, 2-8E/A (externe Ein- und Ausgänge), 2-8Lokaldaten, 2-8Merker, 2-8Periepheriebereiche. Siehe Speicherbereiche,
E/A (externe Ein- und Ausgänge)Prozeßabbild der Ausgänge, 2-8Prozeßabbild der Eingänge, 2-8Zähler, 2-8Zeiten, 2-8
Speicherindirekte Adressierung, 3-3–3-5SPL. Siehe SprungleisteSPM. Siehe Springe, wenn minusSPMZ. Siehe Springe, wenn ErgebnisSPN. Siehe Springe, wenn ungleich 0SPO. Siehe Springe, wenn OV = 1SPP. Siehe Springe, wenn plusSPPZ. Siehe Springe, wenn Ergebnis >= 0Springe absolut (SPA), 16-3Springe, wenn BIE = 0 (SPBIN), 16-5Springe, wenn BIE = 1 (SPBI), 16-5Springe, wenn Ergebnis <= 0 (SPMZ), 16-6Springe, wenn Ergebnis = 0 (SPZ), 16-6Springe, wenn Ergebnis >= 0 (SPPZ), 16-6Springe, wenn minus (SPM), 16-6Springe, wenn OS = 1 (SPS), 16-5Springe, wenn OV = 1 (SPO), 16-5Springe, wenn plus (SPP), 16-6Springe, wenn ungleich 0 (SPN), 16-6Springe, wenn ungültig (SPU), 16-6Springe, wenn VKE = 0 (SPBN), 16-4Springe, wenn VKE = 0 mit BIE (SPBNB), 16-4Springe, wenn VKE = 1 (SPB), 16-4Springe, wenn VKE = 1 mit BIE (SPBB), 16-4Sprungleiste (SPL), 16-3Sprungmarke, als Operand einer Sprungopera-
tion, 16-2
Stichwortverzeichnis
Index-10Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Sprungoperationen, 16-2, 16-3–16-10absolut
Springe absolut (SPA), 16-3Sprungleiste (SPL), 16-3
bedingtSpringe, wenn BIE = 0 (SPBIN), 16-5Springe, wenn BIE = 1 (SPBI), 16-5Springe, wenn Ergebnis <= 0 (SPMZ),
16-6Springe, wenn Ergebnis = 0 (SPZ), 16-6Springe, wenn Ergebnis >= 0 (SPPZ),
16-6Springe, wenn minus (SPM), 16-6Springe, wenn OS = 1 (SPS), 16-5Springe, wenn OV = 1 (SPO), 16-5Springe, wenn plus (SPP), 16-6Springe, wenn ungleich 0 (SPN), 16-6Springe, wenn ungültig (SPU), 16-6Springe, wenn VKE = 0 (SPBN), 16-4Springe, wenn VKE = 0 mit BIE
(SPBNB), 16-4Springe, wenn VKE = 1 (SPB), 16-4Springe, wenn VKE = 1 mit BIE (SPBB),
16-4Springe absolut (SPA), 16-3Sprungmarke als Operand, 16-2Übersicht, 16-2Vom Inhalt der Bits A1 und A0 abhängige
Sprungoperationen, 16-6–16-7Vom Verknüpfungsergebnis abhängige, 16-4Von den Statusbits BIE, OV oder OS abhän-
gige, 16-5SPS. Siehe Springe, wenn OS = 1SPU. Siehe Springe, wenn ungültigSPZ. Siehe Springe, wenn Ergebnis = 0SQR. Siehe QuadratSQRT. Siehe QuadratwurzelSRD. Siehe Schiebeoperationen, Schiebe rechts
Doppelwort (32 Bit)SRW. Siehe Schiebeoperationen, Schiebe rechts
Wort (16 Bit)SS. Siehe Zeit als speichernde Einschaltverzö-
gerungSSD. Siehe Schiebeoperationen, Schiebe Vorzei-
chen Ganzzahl (32 Bit)SSI. Siehe Schiebeoperationen, Schiebe Vorzei-
chen Ganzzahl (16 Bit)STA. Siehe Status (STA), StatusbitStarten einer Zeit als Impuls (SI), 6-7–6-16Status (STA), Statusbit, 2-13Statuswort
Angabe des gültigen Bereichs für Festpunk-tarithmetik, 9-4
Angabe des ungültigen Bereichs für Fest-punktarithmetik, 9-4
Anzeigenbits (A1 und A0), 2-14Abhängigkeit zu bedingtem Sprung, 16-6
Anzeigenbits (A1 und A0) nach Vergleichso-peration, 11-4, 11-5
Anzeigenbits (A1 und A0), OV-Bit (Über-lauf), die durch Wortverknüpfungsopera-tionen beeinflußt werden, 13-3
Auswerten des Ergebnisses der arithmeti-schen Operation für Ganzzahl (32 Bit),9-4
Beschreibung, 2-12Binärergebnis (BIE-Bit), 2-16Bits, die durch Festpunktarithmetik beein-
flußt werden, 9-4Bits, die durch Schiebe- und Rotieroperatio-
nen beeinflußt werden, 14-2Erstabfrage (/ER), 2-12Lesen unter Verwendung der Operation La-
den (L), 8-6Operationen, die das Statusbit auswerten,
11-4, 11-5Operationen, die das Statuswort beeinflus-
sen, 5-10OR-Bit, 2-14OS-Bit (Überlauf, speichernd), 2-14OS-Bit (Überlauf, speichernd), nach einer
Operation Vergleich zweier Gleitpunkt-zahlen, 11-5
OV-Bit (Überlauf), 2-14OV-Bit (Überlauf), nach einer Operation
Vergleich zweier Gleitpunktzahlen, 11-5Statusbit (STA), 2-13Transferieren des Inhalts von AKKU 1 in
das Statuswort, 8-6Verknüpfungsergebnis (VKE), 2-13
Steigender Flankenwechsel, 5-16–5-19STW. Siehe StatuswortSV. Siehe Zeit als verlängerten Impuls startenSymbolische Adressierung, 2-4, 17-3
praktische Anwendung, B-3Symbolische Operanden, 17-3Systemfunktionen (SFCs), als Operand einer
Operation, 2-5Systemfunktionsbausteine (SFBs), als Operand
einer Operation, 2-5
TT. Siehe Lade- und Transferoperationen
Stichwortverzeichnis
Index-11Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
TAD. Siehe Tausche Reihenfolge in AKKU 1(TAD)
TAK. Siehe Tausche AKKU 1 mit AKKU 2TAN. Siehe TangensTangens (TAN), 10-13TAR. Siehe Laden und Transferieren zwischen
AdreßregisternTausche AKKU 1 mit AKKU 2 (TAK), 4-2Tausche Global-DB und Instanz-DB (TDB),
15-2Tausche Reihenfolge in AKKU 1 (16 Bit)
(TAW), 12-13Tausche Reihenfolge in AKKU 1 (32 Bit)
(TAD), 12-13Tauschen der AKKU-Inhalte, 4-2Tauschen der Datenbausteinregister, 15-2Tauschen der Inhalt von AKKU 1 mit AKKU 2,
4-2TAW. Siehe Tausche Reihenfolge in AKKU 1
(16 Bit)TDB. Siehe Tausche Global-DB und Instanz-DBTransferieren des Inhalts von AKKU 1 in das
Statuswort, 8-6Transferoperation (T). Siehe Operationen, La-
den (L) und Transferieren (T)Transferoperationen (T). Siehe Laden (L) und
Transferieren (T) oder Lade- und Transfero-perationen
TRUNC. Siehe Runden mit Abschneiden
UÜberlauf (OV)
Beeinflussung durch Festpunktarithmetik,9-4
Beeinflussung durch Gleitpunktarithmetik,10-4
Bit im Statuswort, 2-14Überlauf, speichernd (OS)
Beeinflussung durch Festpunktarithmetik,9-4
Beeinflussung durch Gleitpunktarithmetik,10-4
Bit im Statuswort, 2-14UC. Siehe Unkonditionierter BausteinaufrufUD. Siehe Und DoppelwortUmkehren der Reihenfolge der Bytes in AKKU
1, 12-13Umkehren von Zahlen, bitweise, 12-13Umwandeln und Runden von Zahlen, 12-8Umwandeln von binär-codierten Dezimalzahlen
und Ganzzahlen, 12-2
Umwandeln von Gleitpunktzahlen (32 Bit) inGanzzahlen (32 Bit), 12-8
Umwandlungsoperationen1er Komplement Ganzzahl (16 Bit) (INVI),
12-141er Komplement Ganzzahl (32 Bit) (INVD),
12-142er Komplement Ganzzahl (16 Bit) (NEGI),
12-142er Komplement Ganzzahl (32 Bit) (NEGD),
12-142er Komplement Gleitpunktzahl (32 Bit)
(NEGR), 12-14BCD in Ganzzahl wandeln (16 Bit) (BTI),
12-2BCD in Ganzzahl wandeln (32 Bit) (BTD),
12-4Ganzzahl (16 Bit) in Ganzzahl wandeln (32
Bit) (ITD), 12-6Ganzzahl (16 Bit) tauschen in BCD (ITB),
12-5Ganzzahl (32 Bit) tauschen in BCD (DTB),
12-6Ganzzahl (32 Bit) tauschen in Gleitpunkt-
zahl (32 Bit) (DTR), 12-7Runden mit Abschneiden (TRUNC), 12-12Runden zur Ganzzahl (32 Bit) (RND), 12-9Runden zur nächsthöheren Ganzzahl (32 Bit)
(RND+), 12-10Runden zur nächstniederen Ganzzahl (32
Bit) (RND–), 12-11Tausche Reihenfolge in AKKU 1 (16 Bit)
(TAW), 12-13Tausche Reihenfolge in AKKU 1 (32 Bit)
(TAD), 12-13Überblick über Zahlenumwandlung und
Runden, 12-12Und (U), 5-3
Verwenden von Zählern als Bitoperand, 7-2Und Doppelwort (UD), 13-6Und Nicht (UN), 5-3
Verwenden von Zählern als Bitoperand, 7-2Und vor Oder, 5-15Und Wort (UW), 13-3–13-5
Kombinieren von Akkumulator und Kon-stante, 13-3–13-5
Unkonditionierter Bausteinaufruf (UC), 17-7Unmittelbare Adressierung, 3-2UW. Siehe Und Wort
Stichwortverzeichnis
Index-12Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
VVergleichen zweier Ganzzahlen, 11-3–11-4Vergleichen zweier Gleitpunktzahlen, 11-5–11-6Vergleichsoperationen, 11-2
Funktion der Akkumulatoren, 11-2praktische Anwendung, B-10Vergleiche Ganzzahlen (16 Bit), 11-3–11-6Vergleiche Ganzzahlen (32 Bit), 11-3–11-6Vergleiche Gleitpunktzahlen, 11-5Vergleichskriterien, 11-2
Verknüpfungsergebnisim Klammerstack gespeichert, 5-14mit Operation Zuweisung (=), 5-24–5-25Negieren, 5-26Setzen, 5-26Sichern, 5-26Wechsel, 5-16
Verknüpfungsergebnis (VKE)Bit im Statuswort, 2-13Operationen, die das VKE nicht beeinflus-
sen, 4-6Rücksetzen, 5-26Verhältnis zu Operation Bausteinende, 17-16
VerknüpfungsketteAbschließen, 5-20Ausgang, 5-20Beginn, 2-10Definition, 2-10
Verknüpfungsoperationen mit Bitoperanden,5-2–5-5Abfragen Anzeigenbits (A1 und A0), 2-14Abfragen Überlauf, 5-12Abschließen einer Verknüpfungskette, 5-20Klammerausdrücke, 5-14
VKE. Siehe VerknüpfungsergebnisVKE in MCR-Stack sichern, Beginn bei MCR:
MCR(, 17-11VKE vom MCR-Stack holen, Ende bei MCR:
)MCR, 17-13VKE wiedereinsetzen, Ende bei MCR: )MCR,
17-11Vorwärtszählen (ZV), 7-5
WWechselnde Kontakte, 5-16–5-19Wortverknüpfungsoperationen, 13-2
16 Bit, 13-332 Bit, 13-6Akkumulatorverwaltung, 13-2, 13-3, 13-6Exklusiv Oder Doppelwort (XOD), 13-6Exklusiv Oder Wort (XOW), 13-3
Oder Doppelwort (OD), 13-6Oder Wort (OW), 13-3, 13-4praktische Anwendung, B-14Und Doppelwort (UD), 13-6, 13-7, 13-8Und Wort (UW), 13-3, 13-4, 13-5
XX. Siehe Exklusiv Oder (O)XN. Siehe Exklusiv Oder (X)XOD. Siehe Exklusiv Oder Doppelwort (XOD)XOW. Siehe Operation Exklusiv Oder Wort
(XOW)
ZZähler
Definition, 7-2Freigabe, 7-4, 7-8–7-9Komponenten, 7-2Speicherbereich, 2-8
Adreßbereich, 2-9Typen
Rückwärtszählen (ZR), 7-2, 7-8Vorwärtszählen (ZV), 7-2, 7-8
Zähloperationen, 7-2Bitverknüpfung, 7-2praktische Anwendung, B-10–B-11Rücksetze (R), 7-2, 7-4, 7-8Rückwärtszählen (ZR), 7-2, 7-5Setze (S), 7-2, 7-3, 7-8Vorwärtszählen (ZV), 7-2, 7-5Zähler BCD-codiert laden (LC), 7-2, 7-7,
8-10Zähler binär-codiert laden (L), 7-2, 7-6,
8-8Zähler freigeben (FR), 7-2, 7-4
Zählwert, Format, 7-6Zähler freigeben (FR), Zähler, 7-4, 7-8Zählwert, Format, 7-6Zeit als Ausschaltverzögerung (SA), 6-5, 6-15Zeit als Einschaltverzögerung (SE), 6-5, 6-11Zeit als Impuls (SI), 6-5Zeit als speichernde Einschaltverzögerung (SS),
6-5, 6-13Zeit als verlängerten Impuls starten, 6-5Zeitauflösung. Siehe Zeitbasis für S5 TIMEZeitbasis für S5 TIME, 6-4
Lesen, 8-9Zeiten
Arten, 6-2Auflösung. Siehe Zeitbasis für S5 TIME
Stichwortverzeichnis
Index-13Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
Ausschaltverzögerung (SA), 6-2, 6-5, 6-15Definition, 6-2Einschaltverzögerung (SE), 6-2, 6-5, 6-11Freigabe Timer (FR), 6-6Impuls (SI), 6-2, 6-5, 6-7Komponenten, 6-3–6-4Rücksetze (R), 6-6Rücksetzen, 6-6Speicherbereich, 2-8, 6-3
Adreßbereich, 2-9speichernde Einschaltverzögerung (SS), 6-2,
6-5, 6-13Starten, 6-5Starten einer Zeit als verlängerten Impuls
(SV), 6-9Überblick, 6-18unterstützte Zahlen, 6-3verlängerter Impuls (SV), 6-2
Zeit als Impuls (SI), 6-5, 6-7Zeit als verlängerten Impuls (SV), 6-5Zeitbasis für S5 TME, 6-4Zeitoperationen, 6-2–6-21
praktische Anwendung, B-7–B-9Zeitwert, 6-3
Bereich, 6-3Syntax, 6-3
ZeitwertBereich, 6-3Format in AKKU 1, 6-4Syntax, 6-3
ZR. Siehe RückwärtszählenZuweisen von Operanden zu einer Operation
CALL, 17-3Zuweisung (=), 5-20, 5-24, 5-25ZV. Siehe Vorwärtszählen
Stichwortverzeichnis
Index-14Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Stichwortverzeichnis
1Anweisungsliste (AWL) für S7-300/400C79000-G7000-C565-01
�
An
Siemens AG
A&D AS E 81
Östliche Rheinbrückenstr. 50
76181 Karlsruhe
Absender:
Ihr Name: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ihre Funktion: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ihre Firma: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Straße: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ort: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Telefon: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Bitte kreuzen Sie Ihren zutreffenden Industriezweig an:
� Automobilindustrie
� Chemische Industrie
� Elektroindustrie
� Nahrungsmittel
� Leittechnik
� Maschinenbau
� Petrochemie
� Pharmazeutische Industrie
� Kunststoffverarbeitung
� Papierindustrie
� Textilindustrie
� Transportwesen
� Andere _ _ _ _ _ _ __ _ _ _
2Anweisungsliste (AWL) für S7-300/400
C79000-G7000-C565-01
Falls Sie auf konkrete Probleme gestoßen sind, erläutern Sie diese bitte in den fol-genden Zeilen:
_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Geben Sie bitte bei den folgenden Fragen Ihre persönliche Bewertung mit Wertenvon 1 = gut bis 5 = schlecht an.
1. Entspricht der Inhalt Ihren Anforderungen?
2. Sind die benötigten Informationen leicht zu finden?
3. Sind die Texte leicht verständlich?
4. Entspricht der Grad der technischen Einzelheiten Ihren Anforderungen?
5. Wie bewerten Sie die Qualität der Abbildungen und Tabellen?
Vorschläge und Anmerkungen zur Anwenderdokumentation
Ihre Anmerkungen und Vorschläge helfen uns, die Qualität und Benutzbarkeitunserer Dokumentation zu verbessern. Bitte füllen Sie diesen Fragebogen beider nächsten Gelegenheit aus und senden Sie ihn an Siemens zurück.