2 s7 programmieren awl kurz

21
2-2 AWL 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-Anwenderpogramm fü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 S Anlauf (OB 100, OB 101) S zyklisches Hauptprogramm (OB1) und S Fehlerbearbeitung (OB 80 ... OB 87, OB 121, OB 122), falls Ihre CPU im Fehlerfall nicht in STOP gehen soll. Darüberhinaus gibt es noch weitere Organisationsbausteine, mit deren Hilfe Sie Alarme der CPU oder des Prozesses bearbeiten können. Welche Aufgaben jedem Organisationsbaustein zugeordnet sind und welche Startinformation das CPU-Betriebssystem mitliefert, entnehmen Sie bitte dem Referenzhandbuch /235/. Jeden Organisationsbaustein können Sie als strukturiertes Progamm programmieren, indem Sie Funktionen (FC) und Funktionsbausteine (FB) erstellen und diese im Anweisungsteil aufrufen. Beim Bausteinaufruf müssen Sie die deklarierten Parameter entsprechend mit Daten versorgen. S Ein Funktionsbaustein (FB) ist ein Codebaustein ”mit Gedächtnis”. Als Gedächtnis dient dabei ein dem FB zugeordneter Instanz-Datenbaustein, in dem die Aktualparameter und statischen Daten des Funktionsbausteins gespeichert werden. S Eine Funktion (FC) ist ein Codebaustein ”ohne Gedächtnis”. Die Aus- gangsparameter enthalten nach der Bearbeitung der FC die berechneten Funktionswerte. 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: S Peripherieein- und ausgänge S Prozeßabbild der Ein- und Ausgänge S Merker S Zeiten S Zähler Codebausteine und Datenbausteine Organisations- bausteine Funktionen/ Funktions- bausteine Daten Einführung

Upload: gueklue

Post on 24-Jun-2015

800 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: 2 s7 Programmieren AWL Kurz

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

Page 2: 2 s7 Programmieren AWL Kurz

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

Page 3: 2 s7 Programmieren AWL Kurz

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

Page 4: 2 s7 Programmieren AWL Kurz

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

Page 5: 2 s7 Programmieren AWL Kurz

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

Page 6: 2 s7 Programmieren AWL Kurz

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

Page 7: 2 s7 Programmieren AWL Kurz

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

Page 8: 2 s7 Programmieren AWL Kurz

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

Page 9: 2 s7 Programmieren AWL Kurz

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

Page 10: 2 s7 Programmieren AWL Kurz

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

Page 11: 2 s7 Programmieren AWL Kurz

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

Page 12: 2 s7 Programmieren AWL Kurz

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

Page 13: 2 s7 Programmieren AWL Kurz

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

Page 14: 2 s7 Programmieren AWL Kurz

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

Page 15: 2 s7 Programmieren AWL Kurz

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

Page 16: 2 s7 Programmieren AWL Kurz

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

Page 17: 2 s7 Programmieren AWL Kurz

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

Page 18: 2 s7 Programmieren AWL Kurz

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

Page 19: 2 s7 Programmieren AWL Kurz

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

Page 20: 2 s7 Programmieren AWL Kurz

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

Page 21: 2 s7 Programmieren AWL Kurz

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