Technische Fachhochschule Berlin Fachbereich VIII Grundlegende Programmierbefehle Seite 1 von 74
INHALT Seiten 5 bis 40 Grundlegende Programmierbefehle Zuweisung UND Verknüpfung ODER - Verknüpfung UND - vor ODER Verknüpfung ODER - vor UND Verknüpfung Abfrage auf Signalzustand 0 EXKLUSIV - ODER Verknüpfung Abfrage von Ausgängen R - S Speicherfunktionen Vorrangiges Zurücksetzen Vorrangiges Setzen Flankenoperationen Steigende Flanke (FP) Fallende Flanke (FN) Zeitfunktionen Zeit freigeben zeit starten (SI/SV/SE/SS/SA) Zeitwert - Vorgabe (TW) Zeitbasis Zeitwert abfragen (L/LC) Signalzustand der Zeit (Q, R) Zeit als Impuls (SI) Verlängerter Impuls (SV) Einschaltverzögerung (SE) Speichernde Einschaltverzögerung (SS) Ausschaltverzögerung (SA) Seite 2 von 74
INHALT Seiten 41 bis 62 Taktgeber Zähloperationen Zählfunktionen (FR; ZV; ZR) Zähler setzen (S) Zählwert - vorgeben (ZW, R) Zählwert - abfragen (L/LC, Q) Lade- u. Transferoperationen (L/T) Vergleichsfunktionen Programmorganisation (CALL) Bausteinaufruf (CC, UC) Aufschlagen Datenbaustein (AUF) Bausteinende (BEB, BEA) Sprungoperationen (SPA) Sprungoperationen (SPB, SPBN) Programmschleife (LOOP) Nulloperation (NOP0) Bearbeitung des VKE (NOT,SET,CLR) Sichern des VKE (SAVE) Seite 3 von 74
INHALT Seiten 63 bis 74 Allgemeines zur STEP7-Software Programmorganisation Programmaufbau - Bausteintypen Aufgabenverteilung Bausteine Kriterien der Bausteinauswahl Art der Programmbearbeitung SPS-Programm aus Funktionstabellen Funktionstabelle als Hilfsmittel Disjunktive Normalform DNF Vereinfachung mit KVS Diagramm Seite 4 von 74
GRUNDLEGENDE PROGRAMMIERBEFEHLE Die folgenden Programmierbefehle sind für die Grundlagen der Programmierung ausreichend. Dies ist jedoch keine vollständige Auflistung aller Befehle. Information zu weiteren Befehlen in KOP/FUP/AWL finden Sie in den Handbüchern unter dem Stichpunkt Sprachbeschreibung KOP, FUP bzw. AWL. KOP Kontaktplan FUP Funktionsplan nicht alle Befehle darstellbar, d.h. eingeschränkter Befehlssatz AWL Anweisungsliste maximaler Befehlsatz (möglich) SIMATIC; STEP7 sind registrierte Handelsmarken der SIEMENS AG. Seite 5 von 74
ZUWEISUNG Die Zuweisung (=) kopiert das Verknüpfungsergebnis (VKE) der vorhergehenden Operation und weist es dem nachfolgenden Operanden zu. Eine Verknüpfungskette kann durch eine Zuweisung abgeschlossen werden. Seite 6 von 74
UND - VERKNÜPFUNG Die UND - Verknüpfung entspricht einer Reihenschaltung von Kontakten im Stromlaufplan. Am Ausgang A 0.0 erscheint Signalzustand 1, wenn alle Eingänge gleichzeitig den Signalzustand 1 aufweisen. Wenn einer der Eingänge den Signalzustand 0 aufweist, bleibt der Ausgang im Signalzustand 0. Seite 7 von 74
ODER - VERKNÜPFUNG Die ODER - Verknüpfung entspricht einer Parallelschaltung von Kontakten im Stromlaufplan. Am Ausgang A 0.1 erscheint der Signalzustand 1, wenn mindestens einer der Eingänge den Signalzustand 1 aufweist. Nur wenn alle Eingänge den Signalzustand 0 aufweisen, bleibt der Signalzustand am Ausgang auf 0. Seite 8 von 74
UND - vor ODER VERKNÜPFUNG 1-2 Die UND- vor ODER- Verknüpfung entspricht einer Parallelschaltung mehrerer in Reihe geschalteter Kontakte im Stromlaufplan. Bei diesen aus Reihen- und Parallelschaltung zusammengesetzten Zweigen führt der Ausgang 0.1 den Signalzustand 1, wenn in mindestens einem Zweig alle in Reihe geschalteten Kontakte geschlossen sind (den Signalzustand 1 haben). Seite 9 von 74
UND - vor ODER VERKNÜPFUNG 2-2 UND- vor ODER- Verknüpfungen werden in der Darstellungsart AWL ohne Klammern programmiert, es müssen jedoch die parallelgeschalteten Zweige durch Eingabe des Zeichens O (ODER- Funktion) voneinander getrennt werden. Dabei werden zuerst die UND- Funktionen bearbeitet und aus Ihren Ergebnissen das Ergebnis der ODER- Funktion gebildet. AWL U E 0.0 U E 0.1 O U E 0.2 U E 3.3 = A 0.1 Die erste UND- Funktion (E 0.0, E 0.1) wird von der zweiten UND- Funktion (E 0.2, E 0.3) durch das einzelne O (ODER- Funktion) getrennt. UND- Verknüpfungen haben Vorrang und werden damit immer vor den ODER- Verknüpfungen bearbeitet. Seite 10 von 74
ODER - vor UND VERKNÜPFUNG 1-2 Die ODER- vor UND- Verknüpfung entspricht einer Reihenschaltung mehrerer parallelgeschalteter Kontakte im Stromlaufplan. Bei dieser aus Reihen- und Parallelschaltung zusammengesetzten Verknüpfung hat der Ausgang 1.0 nur dann den Signalzustand 1, wenn in jedem der beiden Parallelzweige mindestens einer der Kontakte den Signalzustand 1 aufweisen. Seite 11 von 74
ODER - vor UND VERKNÜPFUNG 2-2 ODER- vor UND Verknüpfungen werden in der Darstellungsart AWL mit Klammern programmiert, es müssen jedoch die parallelgeschalteten Zweige durch Klammer ( ODER- Funktionen) zusammengefasst werden. Dabei werden zuerst die ODER Funktionen bearbeitet und aus Ihren Ergebnissen das Ergebnis der UND- Funktion gebildet. Die erste ODER- Funktion (E 0.0, E 0.1) wird von der zweiten ODER- Funktion (E 0.2, E 0.3) durch die in Klammern gesetzte UND-Funktion getrennt. AWL U( O E 0.0 O E 0.1 ) U( O E 0.2 O E 3.3 ) = A 0.1 Damit ODER- Verknüpfungen Vorrang vor UND- Verknüpfungen haben müssen sie durch Klammern zusammengefasst werden. Seite 12 von 74
ABFRAGE AUF SIGNALZUSTAND 0 Die Abfrage auf Signalzustand 0 entspricht in einer kontaktbehafteten Schaltung einem Öffner und ist in den folgenden Verbindungen realisiert: UND NICHT (UN), ODER NICHT (ON) und EXKLUSIV ODER NICHT (XN) AWL O E 0.2 ON E 0.3 = A 0.1 Seite 13 von 74
EXKLUSIV - ODER - VERKNÜPFUNG Der Ausgang 1.0 ist nur dann eingeschaltet (Signalzustand 1), wenn nur einer der Eingänge den Signalzustand 1 aufweist. In einer kontaktbehafteten Schaltung kann dies nur mit Öffnern und Schließern realisiert werden. Hinweis: Die Exklusiv- ODER- Verknüpfung darf nur mit genau zwei Eingängen verwendet werden. Vorteil: Knappe Programmierung AWL X E 1.0 X E 1.1 = A 0.1 Anwendungsbeispiel: Sicherheitsverriegelung Seite 14 von 74
ABFRAGE VON AUSGÄNGEN Für das Einschalten der Ausgänge A 1.0 und A 1.1 gelten unterschiedliche Bedingungen. In diesen Fällen muss für jeden Ausgang ein eigener Strompfad bzw. ein eigenes Verknüpfungssymbol vorgesehen werden. Da das Automatisierungsgerät nicht nur den Signalzustand von Eingängen, sondern auch den von Ausgängen, Merkern usw. abfragen kann, wird in der UND- Verknüpfung für den Ausgang A 1.1 der Ausgang A 1.0 abgefragt. AWL U E1.0 U E1.1 = A1.0 U A1.0 U E1.2 = A1.1 Anwendungsbeispiel: Folgeschaltung Seite 15 von 74
R - S - SPEICHERFUNKTIONEN Nach DIN 40900 und DIN 19239 wird eine R-S- Speicherfunktion als Rechteck mit dem Setzeingang S und dem Rücksetzeingang R dargestellt. Kurzzeitiger Signalzustand 1 am Setzeingang S setzt die Speicherfunktion. Kurzzeitiger Signalzustand 1 am Rücksetzeingang R führt zum Rücksetzen der Speicherfunktion. Signalzustand 0 an den Eingängen R und S verändert den vorher eingestellten Zustand nicht. Sollte an beiden Eingängen R und S der Signalzustand 1 gleichzeitig anstehen, wird vorrangig gesetzt oder zurückgesetzt. Dieses vorrangige Rücksetzen oder Setzen muss bei der Programmierung berücksichtigt werden. Seite 16 von 74
VORRANGIGES ZURÜCKSETZEN Die zuletzt programmierten Anweisungen werden von der Steuerung mit Vorrang bearbeitet. Im Beispiel wird zunächst die Setzoperation ausgeführt; der Ausgang A 2.0 wird wieder zurückgesetzt und bleibt für den Rest der Programmbearbeitung zurückgesetzt. Dieses kurzzeitige Setzen des Ausgangs wird nur im Prozessabbild durchgeführt. Der Signalzustand auf der dazugehörigen Peripheriebaugruppe wird während der Programmbearbeitung nicht beeinflusst. AWL U E1.1 S A2.0 U E1.0 R A2.0 Seite 17 von 74
VORRANGIGES SETZEN Gemäß des vorigen Beispiels, wird hier Ausgang A 2.1 mit Vorrang gesetzt. Anwendungsbeispiel: Anstatt Ausgänge werden oft Merker, Zähler oder Zeiten gesetzt AWL U E1.1 R A2.1 U E1.00 S A2.1 Seite 18 von 74
FLANKENOPERATIONEN Die Flankenoperationen erfassen im Gegensatz zu einem statischen Signalzustand "0" und "1" die Signaländerung, z.b. eines Eingangs. Wechsel auf EIN Wechsel auf AUS Das Programm einer Flankenoperation entspricht einem flankenerkennenden Kontakt in einem Relaisschaltkreis. Seite 19 von 74
STEIGENDE FLANKE (FP) 1-2 Ist eine steigende (positive) Flanke (Wechsel von 0 auf 1 ) an E 0.2 erkannt, so wird A 4.0 für einen OB1-Zyklus auf 1 gesetzt. Dieser Ausgang kann wiederum verwendet werden um z.b. einen Merker zu setzen. Ausgang A4.0 bleibt nur einen Zyklus lang gesetzt, unabhängig von der Zeitdauer des Eingangssignals! E 0.2 Eingangssignal M2.0 Merker A 4.0 Ausgangssignal Seite 20 von 74
STEIGENDE FLANKE (FP) 2-2 Der Vorteil der zweiten Darstellungsart in KOP/FUP ist, dass hier am Eingang der Flankenoperation auch Verknüpfungen stehen können. Eine steigende Flanke wird erkannt, indem das Automatisierungssystem das VKE, das die Operation U geliefert hat, im Flankenmerker M 2.0 speichert, und es mit dem VKE des vorhergehenden Zyklus vergleicht. AWL U E 0.2 FP M2.0 = A 4.0 Seite 21 von 74
FALLENDE FLANKE (FN) 1-2 Ist eine fallende (negative) Flanke (Wechsel von 1 auf 0 ) an E 0.2 erkannt, so wird A 4.0 für einen OB1-Zyklus auf 1 gesetzt. Dieser Ausgang kann wiederum verwendet werden um z.b. einen Merker zu setzen. Ausgang A4.0 bleibt nur einen Zyklus lang gesetzt, unabhängig von der Zeitdauer des Eingangssignals! E 0.2 Eingangssignal M2.0 Merker A 4.0 Ausgangssignal Seite 22 von 74
FALLENDE FLANKE (FN) 2-2 Der Vorteil der zweiten Darstellungsart in KOP/FUP ist, dass hier am Eingang der Flankenoperation auch Verknüpfungen stehen können. Eine steigende Flanke wird erkannt, indem das Automatisierungssystem das VKE, das die Operation U geliefert hat, im Flankenmerker M 2.0 speichert, und es mit dem VKE des vorhergehenden Zyklus vergleicht. AWL U E0.2 FN M2.0 = A 4.0 Seite 23 von 74
ZEITFUNKTIONEN Für die Realisierung von Steuerungsaufgaben müssen sehr häufig verschiedene Zeitfunktionen eingesetzt werden. Es wird zwischen fünf zeitlichen Verhalten Zeitglieder unterschieden, diese sind in der Zentralbaugruppe des Automatisierungsgeräts integriert. SI Impuls SV verlängerter Impuls SE Einschaltverzögerung SS Speichernde Einschaltverzögerung SA Ausschaltverzögerung Die Auswahl des Verhaltens, Einstellung der Laufzeit und das Starten und evtl. Rücksetzen der Timer erfolgt über das Anwenderprogramm. CPU abhängig sind nur eine bestimmte Anzahl von Zeitgliedern verfügbar: Timer: T1, T2...bis Tn, jedem ist ein 16-BIT-WORT zugeordnet. Seite 24 von 74
ZEIT FREIGEBEN Programmierbare Funktionen der Zeitglieder ZEIT FREIGEBEN (FR) Ein positiver Flankenwechsel ( von 0 auf 1 ) im Verknüpfungsergebnis der Operation Freigabe (FR) gibt eine Zeit frei. Zum Starten oder für die normale Funktion einer Zeit wird die Freigabe nicht benötigt. Die Freigabe wird lediglich dazu verwendet, eine laufende Zeit nachzutriggern, d.h. sie wieder anlaufen zu lassen. Dieser Wiederanlauf ist nur dann möglich, wenn die Startoperation weiterhin mit dem VKE 1 bearbeitet wird Die Operation Freigabe (FR) existiert nur in der Darstellungsart AWL. Seite 25 von 74
ZEIT STARTEN (SI/SV/SE/SS/SA) Bei Signalwechsel am Starteingang ( positive Flanke ) wird das Zeitglied gestartet. Um eine Zeit zu starten, genügen drei Anweisungen im AWL- Programm: AWL Abfragen eines Signalzustandes U E0.0 Laden einer Startzeit in AKKU 1 L S5T#2S Startoperation SE T5 (wahlweise SI, SV, SE, SS oder SA) Seite 26 von 74
ZEITWERT - VORGABE (TW) Ein Zeitglied soll immer eine bestimmte Zeit ablaufen. Die Zeitdauer TW kann entweder als vordefinierte Konstante im Programm fest vergeben werden oder als Eingangswort EW, als Ausgangswort AW, als Datenwort DBW/DIW, als Lokaldatenwort LW oder als Merkerwort MW vorgegeben werden. Das Aktualisieren der Zeit vermindert den Zeitwert um jeweils eine Einheit in einem Intervall, das von der Zeitbasis festgelegt wurde. Einen vordefinierten Zeitwert können Sie mit folgender Syntax laden: L W#16#abcd mit: a = Zeitbasis binär- codiert bcd = Zeitwert im BCD- Format L S5T#aH_bbM_ccS_dddMS mit: a = Stunden, bb = Minuten, cc = Sekunden und ddd = Millisekunden Die Zeitbasis wird automatisch gewählt Seite 27 von 74
ZEITBASIS ZEITWERT - VORGABE (TW) Die Zeitbasis definiert das Intervall, in dem der Zeitwert um eine Einheit vermindert wird. Werte die keine genaue Vielfache des Zeitintervalls sind werden abgeschnitten. Werte, deren Auflösung für den gewünschten Bereich zu groß sind, werden abgerundet. Seite 28 von 74
ZEITWERT ABFRAGEN (L/LC) Ein Zeitwert ist in einem Zeitwort binär- codiert gespeichert. Der im Zeitwort stehende Wert kann in den AKKU geladen und von dort in andere Operandenbereiche transferiert werden als: Dualzahl (DUAL) oder als BCD- Zahl (DEZ) Bei der AWL-Programmierung haben Sie die Wahl zwischen L T1 für die Abfrage der Dualzahl und LC T1 für die Abfrage der BCD- Zahl. Befehlssatz siehe unten Seite 29 von 74
SIGNALZUSTAND DER ZEIT (Q, R) SIGNALZUSTAND DER ZEIT BINÄR ABFRAGEN (Q) Eine Zeit kann auf ihren Signalzustand ( 0 oder 1 ) abgefragt werden. Die Signalzustände können - wie gewohnt - mit U T1, UN T1, ON T1,etc... abgefragt und für weitere Verknüpfungen verwandt werden. ZEIT RÜCKSETZEN (R) Ein Signal am Rücksetzeingang beendet die Bearbeitung des Zeitgliedes. Der aktuelle Zeitwert wird gelöscht, der Ausgang Q der Zeitzelle zurückgesetzt. Befehlssatz siehe unten Seite 30 von 74
ZEIT ALS IMPULS (SI) 1-2 Der Ausgang eines Zeitglieds, das als Impulsglied gestartet wird, führt nach dem Starten Signalzustand 1. Der Ausgang wird zurückgesetzt, 1. wenn die programmierte Zeitdauer abgelaufen ist, 2. wenn das Startsignal auf Null zurückgesetzt wird oder 3. wenn am Rücksetzeingang des Zeitglieds Signalzustand 1 ansteht. Ein positiver Flankenwechsel (von 0 auf 1 ) des Freigabesignals (FR) startet die Zeit neu jedoch nur dann, wenn das Startsignal weiterhin mit '1 ansteht. E 0.2 E 0.0 E 0.1 A 4.0 Freigabesignal Startsignal Rücksetzsignal Ausgangssignal Seite 31 von 74
ZEIT ALS IMPULS (SI) Befehlssatz 2-2 Seite 32 von 74
VERLÄNGERTER IMPULS (SV) 1-2 Der Ausgang eines Zeitglieds, das als verlängerter Impuls gestartet wird, führt nach dem Starten Signalzustand 1. Durch die Selbsthaltung ist die ablaufende Zeit dann unabhängig von der Dauer des anstehenden Startsignals Der Ausgang wird zurückgesetzt 1. wenn die programmierte Zeitdauer abgelaufen ist, 2. wenn am Rücksetzeingang des Zeitglieds Signalzustand 1 ansteht. Wechselt der Starteingang erneuert auf 1 - während die Zeit noch läuft - wird das Zeitglied neu gestartet (nachgetriggert) E 0.0 E 0.1 A 4.0 Startsignal Rücksetzsignal Ausgangssignal Seite 33 von 74
VERLÄNGERTER IMPULS (SV) 2-2 Seite 34 von 74
EINSCHALTVERZÖGERUNG (SE) 1-2 Der Ausgang eines Zeitgliedes, das als Einschaltverzögerung gestartet wird, führt nach dem Starten erst dann Signalzustand 1, wenn die Zeitverzögerung abgelaufen ist und das VKE 1 am Starteingang noch ansteht. Der Ausgang wird zurückgesetzt wenn der Starteingang ausgeschaltet wird, unabhängig ob die Einschaltverzögerung noch läuft wenn am Rücksetzeingang des Zeitglieds Signalzustand 1 ansteht. E 0.0 E 0.1 A 4.0 Startsignal Rücksetzsignal Ausgangssignal Seite 35 von 74
EINSCHALTVERZÖGERUNG (SE) 2-2 Seite 36 von 74
SPEICHERNDE EINSCHALTVERZÖGERUNG (SS) 1-2 Der Ausgang eines Zeitgliedes, das als Einschaltverzögerung gestartet wird, führt nach dem Starten erst dann Signalzustand 1, wenn die Zeitverzögerung abgelaufen ist. Durch die Selbsthaltung ist die ablaufende Einschaltverzögerung dann unabhängig von der Dauer des anstehenden Startsignals. Der Ausgang wird zurückgesetzt wenn am Rücksetzeingang des Zeitglieds Signalzustand 1 ansteht. Wechselt der Starteingang erneuert auf 1 - während die Zeit noch läuft - wird das Zeitglied neu gestartet (nachgetriggert) E 0.0 E 0.1 A 4.0 Startsignal Rücksetzsignal Ausgangssignal Seite 37 von 74
SPEICHERNDE EINSCHALTVERZÖGERUNG (SS) 2-2 Seite 38 von 74
AUSSCHALTVERZÖGERUNG (SA) 1-2 Der Ausgang eines Zeitglieds, das als Ausschaltverzögerung gestartet wird, führt nach dem Starten Signalzustand 1. Wird der Starteingang ausgeschaltet, bleibt der Ausgang noch solange im Signalzustand 1, bis die Ausschaltverzögerung abgelaufen ist. Der Ausgang wird zurückgesetzt wenn am Rücksetzeingang des Zeitglieds Signalzustand 1 ansteht auch falls am Starteingang 1 anstehen sollte. Wechselt der Starteingang erneuert von 0 auf 1 - während die Zeit noch läuft - wird das Zeitglied neu gestartet (nachgetriggert) E 0.0 E 0.1 A 4.0 Startsignal Rücksetzsignal Ausgangssignal Seite 39 von 74
AUSSCHALTVERZÖGERUNG (SA) 2-2 Seite 40 von 74
Taktgeber Taktgeber sind astabile Kippschaltungen und werden für unterschiedliche Kontroll-, Überwachungs- und Steuerungsaufgaben eingesetzt. Beispiel: Blinkfrequenz für Betriebs- oder Störmeldungen Je nach Leistungsklasse der Steuerung sind Taktgeber zu programmieren (Zeitimpulse) oder sie sind in der Ausstattung der CPU fest enthalten. Beispiel für parametrierbare Periodendauer (S7-300) Seite 41 von 74
ZÄHLOPERATIONEN Zum Erfassen von Stückzahlen oder Impulsen, zur Auswertung von Zeiten und Entfernungen werden Zählfunktionen benötigt. Bei der SIMATIC S7 sind Zähler bereits in der Zentralbaugruppe integriert und besitzen einen eigenen reservierten Speicherbereich. Der Bereich des Zählwertes liegt zwischen 0 und 999. Ähnlich wie bei den Zeitgliedern, können auch bei Zählern unterschiedliche Funktionen programmiert werden: Seite 42 von 74
ZÄHLFUNKTIONEN (FR; ZV; ZR) Die Funktionen werden nur bei einem positiven Flankenwechsel der vor der Operation programmierten Verknüpfung wirksam. ZÄHLER FREIGEBEN (FR) NUR IN AWL Eine Zählerfreigabe wird nur für die Zähloperation (ZV, ZR) bzw. Zähler setzen (S) ohne steigende Flanke benötigt, noch für normale Zähloperationen. VORWÄRTSZÄHLEN (ZV) Der Wert des adressierten Zählers wird um 1 erhöht bis zur oberen Grenze 999, dann wird er nicht mehr erhöht. ( Ein Übertrag wird nicht gebildet! ) RÜCKWÄRTSZÄHLEN (ZR) Der Wert des adressierten Zählers wird um 1 verringert bis zur unteren Grenze 0, dann wird er nicht mehr verringert. ( Nur positive Zählwerte! ) Seite 43 von 74
ZÄHLER SETZEN (S) Oft benötigt man einen bestimmten Anfangswert, um von da aus zu zählen (Beispiel: Rückwärtszählen) Abfragen eines Signalzustandes U E 2.3 Laden eines Zählwertes L C#5 Setzen eines Zählers mit dem S Z1 geladenen Zählwert Diese Funktion wird nur bei einem positiven Flankenwechsel am Eingang U E 2.3 bearbeitet. Signalzustandsdiagramm siehe unten Seite 44 von 74
ZÄHLWERT - VORGEBEN (ZW, R) ZÄHLWERT - VORGABE (ZW) Als Zählwert wird der Inhalt von AKKU 1 gesetzt. Der Zählwert kann entweder binär- oder BCD- codiert geladen werden. Mögliche Operanden: ZÄHLER RÜCKSETZEN (R) Eingangswort EW.. Ausgangswort AW.. Merkerwort MW.. Datenwort DBW/DIW.. Lokaldatenwort LW.. Konstanten C#5, 2#...etc. Bei VKE 1 wird der Zähler auf Null gesetzt (rücksetzen). Bei VKE 0 bleibt der Zähler unbeeinflusst. Das Rücksetzen eines Zählers wirkt statisch. Bei erfüllter Rücksetzbedingung kann weder gesetzt noch gezählt werden. Seite 45 von 74
ZÄHLWERT - ABFRAGEN (L/LC, Q) 1-3 ZÄHLWERT ABFRAGEN (L/LC) Ein Zählwert ist in einem Zählerwort binär- codiert gespeichert. Der Wert kann als Dualzahl (DU) oder als BCD- Zahl (DE) in den AKKU geladen und von dort in andere Operandenbereiche transferiert werden. Bei der AWL- Programmierung haben Sie die Wahl zwischen L Z1 für die Abfrage der Dualzahl und LC Z1 für die Abfrage der BCD- Zahl. SIGNALZUSTAND DES ZÄHLERS BINÄR ABFRAGEN (Q) Die Signalzustände können - wie gewohnt - mit U Z1, UN Z1, ON Z1,etc... abgefragt und für weitere Verknüpfungen verwandt werden. Signalzustand 0 = Zähler steht auf Wert 0; Signalzustand 1 = Zähler arbeitet, d.h. ist zählbereit. Seite 46 von 74
ZÄHLWERT - ABFRAGEN (L/LC, Q) 2-3 Seite 47 von 74
ZÄHLWERT - ABFRAGEN (L/LC, Q) 3-3 Seite 48 von 74
LADE - UND TRANSFEROPERATIONEN (L/T) 1-2 Lade- und Transferoperationen ermöglichen den byte-, wort-, bzw. doppelwortweisen Austausch von Informationen zwischen Ein- und Ausgabebaugruppen, dem Prozessabbild der Ein- und Ausgänge, den Zeit-, Zähler - und Merkerspeichern sowie den Datenbausteinen. Dieser Informationsaustausch erfolgt nicht direkt, sondern immer über den Akkumulator 1 (AKKU 1). Der AKKU 1 ist ein Register im Prozessor und dient als Zwischenspeicher. LADEN: vom Quellspeicher in den AKKU 1 TRANSFERIEREN: vom AKKU in den Zielspeicher Seite 49 von 74
LADE - UND TRANSFEROPERATIONEN (L/T) 2-2 Beim Laden wird der Inhalt des angesprochenen Quellspeichers kopiert und in den AKKU 1 geschrieben. Der bisherige Akkuinhalt wird dabei in ein AKKU 2 übertragen. Beim Transferieren wird der Inhalt von AKKU 1 nur kopiert und in den angesprochenen Zielspeicher geschrieben, der Akkuinhalt steht für weitere Transferoperationen zur Verfügung. AWL : L EW 0 : T AW 4 : L +5 : T AW 6 : BE *1: Prozessabbild der Eingänge, *2: Prozessabbild der Ausgänge Seite 50 von 74
VERGLEICHSFUNKTIONEN 1-2 STEP7 ermöglicht zwei Zahlenwerte direkt zu vergleichen und das Ergebnis des Vergleichs ( VKE ) sofort weiterzuschalten. Voraussetzung: beide Zahlen haben dasselbe Zahlenformat. Folgende Paare von Zahlenwerten können verglichen werden: zwei Ganzzahlen ( 16 Bit Symbol: I ) zwei Ganzzahlen ( 32 Bit Symbol: D ) zwei Realzahlen ( Gleitpunktzahlen 32 Bit, Symbol: R ) Seite 51 von 74
VERGLEICHSFUNKTIONEN 2-2 1. Lade ersten Operand (z.b. EW 0) in AKKU 1 Verschiebe ersten Operand vom AKKU 1 in den AKKU 2 1. Lade zweiten Operand (z.b. EW 2) in den AKKU 1 Vergleiche die in beiden Akkumulatoren stehenden Zahlenwerte bitweise miteinander (im Arithmetikbaustein. Das Ergebnis ist binär). Der Vergleich ist erfüllt: VKE 1 Der Vergleich ist nicht erfüllt: VKE 0 Seite 52 von 74
PROGRAMMORGANISATION (CALL) Bausteinaufruf CALL Mit CALL können aufgerufen werden: Funktionen (FCs), Funktionsbausteine (FBs), Systemfunktionen (SFCs) und Systemfunktionsbausteine (SFBs). Gleichzeitig können Parameter transferiert, bzw. Variablen beschrieben sowie der dem FB oder SFB zugehörige lokale Datenbaustein geöffnet werden. Sind in dem aufgerufenen Baustein keine Variablen deklariert, so entspricht dieser Befehl dem Befehl UC. CALL FB1, DB20 ZAHL := EW 1 ZAHL (Formalparameter) wird EW 1 (Aktualparameter) zugeordnet. AUS := AUS (Formalparameter) wird kein Parameter zugeordnet. TEST := TEST (Formalparameter) wird kein Parameter zugeordnet. EN DB20 FB1 ENO EW1 Zahl AUS Test Seite 53 von 74
BAUSTEINAUFRUF (CC, UC) Mit Bausteinaufrufen (CC; UC) können Sie Funktionen (FCs) und Funktionsbausteine (FBs) sowie Systemfunktionen (SFCs) und Systemfunktionsbausteine (SFBs) aufrufen. Sie können jedoch keine Parameter transferieren bzw. Variablen beschreiben. KONDITIONIERTER BAUSTEINAUFRUF (CC) Der Aufruf wird nur ausgeführt, wenn das Verknüpfungsergebnis 1 beträgt. KOP / FUP E 0.0 FC 1 ( CALL ) AWL U E0.0 CC FC1 UNKONDITIONIERTER BAUSTEINAUFRUF (UC) Der Aufruf wird unabhängig vom Verknüpfungsergebnis ausgeführt. FC 1 ( CALL ) UC FC1 Seite 54 von 74
AUFSCHLAGEN DATENBAUSTEIN (AUF) Mit der Operation (AUF) können Sie einen Datenbaustein (DB) oder Instanz - Datenbaustein (DI) öffnen, um auf die enthaltenen Daten zugreifen zu können ( z.b. mit Lade- und Transferoperationen ). KOP / FUP DB 1 ( OPN ) AWL AUF DB 1 L DBW 0 T MW 1 Seite 55 von 74
BAUSTEINENDE (BEB, BEA) Abhängig vom Verknüpfungsergebnis beendet diese Operation die Bearbeitung des aktuellen Bausteins und springt zurück in den Baustein, der den gerade Beendeten aufgerufen hat. BAUSTEINENDE BEDINGT (BEB) Diese Operation wird nur ausgeführt, wenn das Verknüpfungsergebnis 1 beträgt. Nur in AWL U E0.0 BEB BAUSTEINENDE ABSOLUT (BEA) Diese Operation wird unabhängig vom Verknüpfungsergebnis ausgeführt. BEA Seite 56 von 74
SPRUNGOPERATIONEN (SPA) SPRINGE ABSOLUT (SPA) unterbricht den normalen Ablauf des Programms und springt zu der, im Operanden angegebenen, Sprungmarke. Der Sprung erfolgt unabhängig vom Verknüpfungsergebnis. KOP / FUP Netzwerk 1 SUP ( JMP ) AWL Netzwerk 1 beliebige Anweisungen SPA SUP Netzwerk 4 SUP E 1.1 A 4.1 ( S ) SUP Netzwerk 4 U 1.1 S A4.1 Seite 57 von 74
SPRUNGOPERATIONEN (SPB, SPBN) SPRINGE BEDINGT (SPB, SPBN) unterbricht den normalen Ablauf des Programms und springt zu der, im Operanden angegebenen, Sprungmarke. Der Sprung erfolgt in Abhängigkeit vom Verknüpfungsergebnis. SPB Springe wenn VKE = 1 SPBN Springe wenn VKE = 0 SUP Seite 58 von 74
PROGRAMMSCHLEIFE (LOOP) Mit einer Programmschleife (LOOP) können Sie einen Programmteil mehrmals hintereinander bearbeiten. Dazu müssen Sie eine Konstante in das niederwertige Wort von AKKU 1 laden. Diese Zahl wird dann durch die Operation LOOP um 1 vermindert. Danach wird der Wert dieser Zahl auf <>0 überprüft. Beträgt er nicht 0, dann wird ein Sprung zur Marke (hier NEXT ) der Operation LOOP ausgeführt; andernfalls wird die nächste Operation ausgeführt. Nur in AWL NEXT: T L 5.. L MW 10 LOOP NEXT Seite 59 von 74
NULLOPERATION (NOP) Nulloperationen (NOP0/NOP1) führen keine Funktion aus und beeinflussen den Inhalt des Statuswortes nicht. Der STEP7 Interpreter benötigt die Nulloperationen für die Darstellung von KOP und FUP Programmierbefehlen (Grafiken). NOP s werden bei Übersetzung von KOP oder FUP in AWL sichtbar und sind notwendig, wenn ausgehend von AWL das Programm in KOP oder FUP gezeigt werden soll. Nur in AWL L 5 NOP 0 NOP 0 NOP 0 R T1 = A1.0 Seite 60 von 74
BEARBEITUNG DES VKE (NOT,SET,CLR) In STEP7 gibt es Operationen mit denen das Verknüpfungsergebnis (VKE) verändert werden kann. (nur in AWL) Da dabei das VKE direkt beeinflusst wird, besitzen diese Operationen keine Operanden. NEGIEREN DES VKE NOT negiert in ihrem Programm das aktuelle VKE (umkehren). Ist das aktuelle VKE 0, dann ändert NOT es in 1 ; ist das aktuelle VKE 1, dann ändert NOT es in 0. SETZEN DES VKE (SET) SET setzt in ihrem Programm das VKE- Bit unkonditioniert auf 1. RÜCKSETZEN DES VKE (CLR) CLR setzt in ihrem Programm das VKE- Bit unkonditioniert auf 0 zurück. Seite 61 von 74
SICHERN DES VKE (SAVE) Sie können mit der Operation SAVE das VKE für einen zukünftigen Gebrauch im Statusbit (BIE) des Statuswortes sichern. Das Statuswort enthält Bits, auf die Sie im Operanden der Bit- und Wortverknüpfungsoperationen zugreifen können. AWL SET = M 1.0 = E 0.0 CLR = M 1.0 = E 0.0 NOT SAVE Signalzustand 1 1 0 0 1 1 Sichern im BIE-Bit im VKE 1 0 Statuswort Seite 62 von 74
ALLGEMEINES ZUR STEP7-SOFTWARE Die Programmiersoftware STEP 7 bietet die Möglichkeit, das Anwenderprogramm zu strukturieren, d. h. in einzelne, in sich geschlossene Programmabschnitte aufzuteilen. Damit wird es übersichtlicher. Daraus ergeben sich die folgenden Vorteile: umfangreiche Programme können standardisierte, funktionsfähige Programmteile nutzen. Änderungen des Programms lassen sich leichter durchführen der Programmtest / die Inbetriebnahme wird vereinfacht, weil er abschnittsweise erfolgen kann STEP 7 übersetzt das Anwenderprogramm vor der Übertragung in den Programmspeicher in eine entsprechende Anzahl von Steueranweisungen, egal in welcher Darstellungsart (KOP/FUP/AWL) das Anwenderprogramm erstellt wurde. Im Anwenderspeicher bleibt das Anwenderprogramm wie programmiert erhalten (wenn auch ohne Kommentare). Dadurch kann jedes Programmiergerät an allen S7-SPS das Anwenderprogramm auslesen und anzeigen. Dieses ermöglicht den Service, auch wenn die Dokumentation / das ursprüngliche Programm nicht greifbar sein sollte. Seite 63 von 74
PROGRAMMORGANISATION Bausteinaufrufe werden innerhalb von Codebausteinen (Obs, FBs, FCs, SFBs und SFCs) programmiert. Sie sind vergleichbar mit Sprüngen in ein Unterprogramm. Die Rücksprungadresse im aufrufenden Baustein wird vom System zwischengespeichert. Die Reihenfolge und Schachtelung der Bausteinaufrufe wird Aufrufhierarchie genannt. Die zulässige Schachtelungstiefe ist CPU abhängig. Betriebssystem BESY OB1 CALL U E0.1 CALL (+1) FB2 FC5. FB4 SFC5 DB1 z.b. E0.1 = Alarmeingang BE Seite 64 von 74
PROGRAMMAUFBAU - BAUSTEINTYPEN Die bislang vorgestellten Programmierbefehle entsprechen der klassischen SPS Programmierung die auch heute noch wichtig ist und funktioniert. Moderne Programmiersysteme und Automatisierungsgeräte der Mittel und Oberklasse gehen darüber hinaus. (SPS Norm IEC 1131-3, 1993). Neben den Operationsbausteinen die das gesamte Programm organisieren, gibt es Spezialisten, die mit deklarierten Variablen Spezial- bzw. wiederkehrende Funktionen übernehmen. Zum Teil werden solche Bausteine auch als Software vom Hersteller angeboten: Beispiel: Mathematikbaustein zur Berechnung von Übergängen an Radien. Code-Bausteintypen (Für Programme) Daten-Bausteintypen Organisationsbaustein OB Funktionsbaustein FB Funktion FC (SFC) Instanz -DB DB Global -DB DB Seite 65 von 74
AUFGABENVERTEILUNG BAUSTEINE Zyklisch OB1 Haupt FB FC -programm Instanz - DB Betriebssystem der CPU Aufgaben 1. 2. FC (SFC) Global -DB DB 3. Unterprogramme für Steuerungslogik BESY OB n Ereignis Andere OB s 1. Aufrufe der FB / FC Bausteine 2. Baustein-Parameter mit E-/A- Operanden bedienen 3. Parameterübergabe zwischen Bausteinen Seite 66 von 74
KRITERIEN DER BAUSTEINAUSWAHL Operationsbausteine Der OB1 muss zwingend vorhanden sein. Dieser Baustein organisiert den Ablauf des gesamten Programms in seinen Strukturen. Weitere OB s sind möglich, E/A Adressen sind zulässig und erforderlich. In einfachsten Programmen (und Steuerungen) genügt auch mal ein einziger OB (lineare Programmierung). Funktion FC FC s sind parametrierbare Programmbausteine ohne eigenen Datenbereich. FC s genügen, wenn keine interne Speicherfunktion nötig ist oder die Speicherung einer Variablen nach außen verlagert werden kann. Funktionsbaustein FB FB s sind parametrierbare Programmbausteine, denen beim Aufruf ein eigener Speicherbereich zugewiesen wird (Instanz - DB). FB s sind notwendig, wenn ein speicherndes Verhalten einer bausteininternen Variablen nötig ist. Seite 67 von 74
ART DER PROGRAMMBEARBEITUNG Das Steuerwerk liest von vorne beginnend die Anweisungen ein und führt das Programm entsprechend aus Es gibt zwei verschiedene Möglichkeiten, die Steuerbefehle zu programmieren (hängt auch von der Leistungsklasse der SPS ab) Lineare Programmbearbeitung Das Programm besteht aus nur einem einzigen Baustein (z. B. OB1), der alle Anweisungen des Programms enthält. Wird meist für einfache, nicht zu umfangreiche Steuerungen verwendet. Strukturierte Programmbearbeitung Das Anwenderprogramm besteht aus mehreren Bausteinen z. B. aus Funktionsbausteinen. Die Reihenfolge der Bausteinbearbeitung wird im OB1 festgelegt. Wird bei umfangreichen Steuerungen verwendet. Seite 68 von 74
SPS-Programm aus Funktionstabellen 1-2 Zusammengesetzte logische Grundverknüpfungen UND-vor-ODER-Verknüpfung Allgemeiner Fall siehe nachfolgend bei DNF A = E1 E2 E3 v E1 E2 v E3 U E0.1 U E0.2 UN E0.3 O U E0.1 UN E0.2 O E0.3 = A4.0 2) Spezieller Fall: Antivalenz (Exclusiv-ODER) A = E1 E2 X E0.1 X E0.2 = A5.0 Seite 69 von 74
SPS-Programm aus Funktionstabellen 2-2 Zusammengesetzte logische Grundverknüpfungen ODER-vor-UND-Verknüpfung A = (E1v E2) Λ (E1v E2) Λ E3 FUP AWL U( O E0.1 O E0.2 ) O U( ON E0.1 ON E0.2 ) U E0.3 = A4.0 Seite 70 von 74
FUNKTIONSTABELLE ALS HILFSMITTEL Funktionstabelle als Hilfsmittel für den Entwurf von Verknüpfungsteuerungen Zeile E3 E2 E1 A E 1 Schaltnetz 00 0 0 0 0 E 2 01 0 0 1 0 E 3 A 02 0 1 0 0 03 04 05 06 07 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 Mit n Eingangsvariablen ergeben sich 2 n verschiedene Eingangskombinationen, denen gemäß Aufgabenstellung logische Ausgangssignale zugeordnet werden müssen. Seite 71 von 74
DISJUNKTIVE NORMALFORM DNF Operationsbausteine Aus der Funktionstabelle kann die DNF Schaltfunktion für den Ausgang A gebildet werden. Für jede Zeile der Tabelle, bei der die Ausgangsvariable A den Signalzustand 1 führt, wird ein UND-Term mit allen Eingangsvariablen E3 E2 E1 gebildet. Bei Signalzustand 0 wird die Variable E negiert, bei Signalzustand 1 nicht negiert notiert. Die komplette Schaltfunktion erhält man durch ODER- Verknüpfung der UND-Terme: UND-vor-ODER- Verknüpfung. DNF für Ausgang A aus Funktionstabelle: A= E3 E2 E1 v E3 E2 E1 v E3 E2 E1 v E3 E2 E1 Regeln des Vereinfachungsverfahren 1. In die nummerierten Felder des KVS Diagramms sind die Signalwerte von A einzutragen 2. Einkreisungen symmetrisch liegender 1-Felder zu 2er, 4er, 8er Blöcken einzuzeichnen. 3. Jedes Feld ist mindestens einmal einzukreisen, Möglichst große Einkreisungen finden. 4. Bei den 2er oder 4er oder 8er Einkreisungen entfallen genau 1 oder 2 oder 3 Variablen. 5. Es entfallen die Variablen, die in Einkreisungen negiert und auch nicht negiert vorkommen Seite 72 von 74
VEREINFACHUNG MIT KVS DIAGRAMM Ziel ist die minimierte Schaltfunktion für den Ausgang A Zeile E4 E3 E2 E1 A 00 8 0 0 0 0 0 01 8 0 0 0 1 0 02 8 0 0 1 0 0 03 8 0 0 1 1 1 04 8 0 1 0 0 0 05 8 0 1 0 1 1 06 8 0 1 1 0 1 07 8 0 1 1 1 1 E1 00 01 05 04 E2 02 03 07 06 1 1 1 E3 E2 & E1 Minimierte DNF für den Ausgang A: 1 E3 & E1 E3 & E2 A= E2 E1 v E3 E1 v E3 E2 Seite 73 von 74
Zeile E4 E3 E2 E1 A 00 8 0 0 0 0 0 01 8 0 0 0 1 0 02 8 0 0 1 0 0 03 8 0 0 1 1 1 04 8 0 1 0 0 0 05 8 0 1 0 1 1 06 8 0 1 1 0 1 07 8 0 1 1 1 1 10 8 1 0 0 0 1 11 8 1 0 0 1 1 12 8 1 0 1 0 1 13 8 1 0 1 1 1 14 8 1 0 0 0 0 15 8 1 0 0 1 1 16 8 1 0 1 0 1 17 8 1 0 1 1 1 E2 00 02 12 1 10 1 01 03 13 1 11 1 E1 E2 &E1 05 07 17 15 1 1 1 1 E3 04 06 14 1 16 1 Minimierte DNF für den Ausgang A: A= E3 E1 v E3 E2 v E2 E1 E3 & E1 E3 & E2 E4 Seite 74 von 74