2 s7 programmieren awl kurz
Post on 24-Jun-2015
792 Views
Preview:
TRANSCRIPT
2-2AWL für S7-300/400
C79000-G7000-C505-02
2.1 Struktur von Anwenderprogrammen
Ein Anwenderprogramm besteht aus Codebausteinen und Datenbausteinen.Zu den Codebausteinen gehören alle Bausteine mit einem Anweisungsungs-teil, also Organisationsbausteine, Funktionsbausteine und Funktionen.
Organisationsbausteine (OBs) stellen die Schnittstelle zwischen Betriebs-system und Anwenderprogramm dar. Verschiedene Organisationsbausteineübernehmen dabei ganz bestimmte Aufgaben. Das AWL-Anwenderpogrammfür Ihre S7-CPU stellen Sie aus den Organisationsbausteinen (OBs)zusammen, die Sie für Ihre Automatisierungslösung benötigen. Im einfach-sten Fall gehören dazu Organisationsbausteine für
� Anlauf (OB 100, OB 101)
� zyklisches Hauptprogramm (OB1) und
� Fehlerbearbeitung (OB 80 ... OB 87, OB 121, OB 122), falls Ihre CPUim Fehlerfall nicht in STOP gehen soll.
Darüberhinaus gibt es noch weitere Organisationsbausteine, mit deren HilfeSie Alarme der CPU oder des Prozesses bearbeiten können.
Welche Aufgaben jedem Organisationsbaustein zugeordnet sind und welcheStartinformation das CPU-Betriebssystem mitliefert, entnehmen Sie bittedem Referenzhandbuch /235/.
Jeden Organisationsbaustein können Sie als strukturiertes Progammprogrammieren, indem Sie Funktionen (FC) und Funktionsbausteine (FB)erstellen und diese im Anweisungsteil aufrufen. Beim Bausteinaufruf müssenSie die deklarierten Parameter entsprechend mit Daten versorgen.
� Ein Funktionsbaustein (FB) ist ein Codebaustein ”mit Gedächtnis”. AlsGedächtnis dient dabei ein dem FB zugeordneter Instanz-Datenbaustein,in dem die Aktualparameter und statischen Daten des Funktionsbausteinsgespeichert werden.
� Eine Funktion (FC) ist ein Codebaustein ”ohne Gedächtnis”. Die Aus-gangsparameter enthalten nach der Bearbeitung der FC die berechnetenFunktionswerte. Die weitere Verwendung und Speicherung der Aktual-parameter nach dem Aufruf einer FC liegt in der Hand des Anwenders.
Das Betriebssystem stellt Ihnen folgende Daten bereit:
� Peripherieein- und ausgänge
� Prozeßabbild der Ein- und Ausgänge
� Merker
� Zeiten
� Zähler
Codebausteineund Datenbausteine
Organisations-bausteine
Funktionen/Funktions-bausteine
Daten
Einführung
2-3AWL für S7-300/400C79000-G7000-C505-02
Zusätzlich können Sie sich eigene Daten definieren:
� Globaldaten, die für das gesamte Anwenderprogramm Gültigkeit haben,definieren Sie in Datenbausteinen.
� Statische Variablen sind jeweils in dem FB gültig, in dem Sie definiertsind. Bei jedem FB-Aufruf wird ein Instanz-DB angegeben, der nebenallen Parametern die statischen Daten enthält. Sind Multiinstanzendefiniert, sind deren Instanzdaten inklusive deren statischer Daten in demInstanz-DB eingebettet.
� Temporäre Daten definieren Sie bei der Erstellung von Codebausteinen.Sie belegen nur während der Bearbeitung des Codebausteins Speicher-platz im Stack.
Datenbausteine speichern die Daten des Anwenderprogramms. Bei denDatenbausteinen wird zwischen Global-Datenbausteinen und Instanz-Daten-bausteinen unterschieden.
� Auf Global-Datenbausteine können Sie von jeder Stelle des Anwender-programms zugreifen.
� Instanz-Datenbausteine sind einem Funktionsbaustein zugeordnet undenthalten neben den Daten des FBs auch die Daten eventuell definierterMultiinstanzen. Deshalb sollten Sie auch nur im Zusammenhang mit die-sem Funktionsbaustein auf den Instanz-Datenbaustein zugreifen.
Eine Einführung in die Methodik der Programmierung erhalten Sie imProgrammierhandbuch /234/.
Datenbausteine
Weitere Informationen
Einführung
8-9AWL für S7-300/400C79000-G7000-C505-02
Tabelle 8-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 8-10 erklärt.
Tabelle 8-11 Speicherbereiche und ihre Adreßbereiche
BereichsnameBereichszugriff über
Maximaler AdreßbereichBereichsnameEinheiten 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
11-7AWL für S7-300/400C79000-G7000-C505-02
Bild 11-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 11-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 11-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 11-3 Reihenschaltung von Kontakten mit der Operation UND
Öffner
Signalfluß in einerReihenschaltung
Bitverknüpfungsoperationen
11-21AWL für S7-300/400C79000-G7000-C505-02
11.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 13.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 12.3 und 13.2). Die Operationen S und R schließen eineVerknüpfungskette (siehe Kapitel 11.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 11-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 11-9 Statisches Setzen und Rücksetzen eines Bits
Beschreibung
Setzen eines Bits
Bitverknüpfungsoperationen
12-3AWL für S7-300/400C79000-G7000-C505-02
12.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
12-4AWL für S7-300/400
C79000-G7000-C505-02
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 12-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 12-2 zeigt die möglichen Auflösungen unddie zugehörigen Bereiche.
Tabelle 12-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 12-1). Bild 12-2 zeigt den Inhaltdes AKKU1-L, nachdem Sie den Zeitwert 127 mit der Zeitbasis 1 Sekundegeladen haben (siehe auch Kapitel 14.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 12-2 Inhalt des AKKU1-L für den Zeitwert 127 mit der Zeitbasis eine Sekunde
Zeitbasis
Bit-Konfigurationin AKKU 1
Zeitoperationen
12-5AWL für S7-300/400C79000-G7000-C505-02
12.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 12.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. 14.4und 14.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 12-3 zeigt ein Beispiel für das Starten einer Zeit als Impuls. Wechseltder Signalzustand an Eingang E 2.1 von ”0” auf ”1”, so wird die Zeitgestartet. Bild 12-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 12-3 Starten einer Zeit als Impuls
Beschreibung
Laden
Startzeit
Beispiel für dasStarten einer Zeit
Zeitoperationen
12-6AWL für S7-300/400
C79000-G7000-C505-02
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
12-7AWL für S7-300/400C79000-G7000-C505-02
12.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 12-4 und 12-5 geben Beispiele für eine Zeit als Impuls. Dieumrahmten Zahlen in den Bildern weisen auf die Erläuterungen hin, die sichan Bild 12-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 12-4 Beispiel für eine Zeit als Impuls, Teil 1
Einführung
Zeit als Impuls: SI
Zeitoperationen
12-8AWL für S7-300/400
C79000-G7000-C505-02
Die folgende Liste beschreibt die Elemente der Bilder 12-4 und 12-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 12-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 12-5 Beispiel für eine Zeit als Impuls, Teil 2
Zeitoperationen
12-9AWL für S7-300/400C79000-G7000-C505-02
Die Bilder 12-6 und 12-7 geben Beispiele für eine Zeit als verlängertenImpuls. Die umrahmten Zahlen in den Bildern weisen auf die Erläuterungenhin, die sich an Bild 12-6 anschließen. Die Bilder beziehen sich auf dasfolgende AWL-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 12-6 Beispiel für eine Zeit als verlängerten Impuls, Teil 1
Zeit als verlän-gerter Impuls: SV
Zeitoperationen
12-18AWL für S7-300/400
C79000-G7000-C505-02
12.6 Auswahl der richtigen Zeit
Bild 12-14 bietet einen Überblick über die fünf verschiedenen Zeiten, die inKapitel 12.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 12-14 Auswahl der richtigen Zeit
Zeitoperationen
15-2AWL für S7-300/400
C79000-G7000-C505-02
15.1 Grundrechenoperationen
Tabelle 15-1 listet die AWL-Operationen auf, mit denen Sie Ganzzahlen(16 Bit und 32 Bit) addieren, subtrahieren, multiplizieren oder dividierenkönnen.
Tabelle 15-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 15-1 zeigen, daß die arithmetischenOperationen den Inhalt der AKKUs 1 und 2 miteinander verknüpfen. DasErgebnis wird in AKKU 1 abgelegt. Der alte Inhalt von AKKU 1 wird in AKKU 2 geschoben.
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
15-3AWL für S7-300/400C79000-G7000-C505-02
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 15-1). Ein Programmbeispiel schließt sich an Bild15-2 an.
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 15-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 15-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 15-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
15-4AWL für S7-300/400
C79000-G7000-C505-02
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 15-5 können Sie diese Bits des Statuswortsauswerten.
Tabelle 15-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 15-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
15-5AWL für S7-300/400C79000-G7000-C505-02
Tabelle 15-4 Signalzustand der Bits im Statuswort: arithmetische Operationen mitGanzzahlen (32 Bit) +D, /D und MOD
OperationBits des Statusworts
OperationA1 A0 OV OS
+D: Ergebnis = -4 294 967 296 0 0 1 1
/D oder MOD: Division durch 0 1 1 1 1
Tabelle 15-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 11.3
SPO <Sprungmarke> OV 22.4
SPS <Sprungmarke> OS 22.4
SPU <Sprungmarke> A1 und A0 22.5
SPZ <Sprungmarke> A1 und A0 22.5
SPN <Sprungmarke> A1 und A0 22.5
SPP <Sprungmarke> A1 und A0 22.5
SPM <Sprungmarke> A1 und A0 22.5
SPMZ <Sprungmarke> A1 und A0 22.5
SPPZ <Sprungmarke> A1 und A0 22.5
Festpunktarithmetik
15-6AWL für S7-300/400
C79000-G7000-C505-02
15.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 15-6 listet die Möglichkeiten auf. Diese Operationenbeeinflussen die Bits im Statuswort nicht.
Tabelle 15-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
17-2AWL für S7-300/400
C79000-G7000-C505-02
17.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 17-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 17-2). Dieses Ergebnis ist imVerknüpfungsergebnis-Bit gespeichert (VKE-Bit, siehe Kapitel 9.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 17-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
17-3AWL für S7-300/400C79000-G7000-C505-02
17.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 17-2.Ein Programmbeispiel schließt sich an Tabelle 17-3 an.
Tabelle 17-2 Vergleichsoperationen (Ganzzahlen, 16 und 32 Bit)
Operation ErläuterungOperation 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
17-4AWL für S7-300/400
C79000-G7000-C505-02
Die Vergleichsoperationen für Ganzzahlen (16 und 32 Bit) setzenverschiedene Signalzustandskombinationen der Bits A1 und A0, umanzuzeigen, welche Bedingung erfüllt wurde (siehe Tabelle 17-3).
Tabelle 17-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
top related