31
SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 1 erstellt in Anlehnung an die Hilfe des Programms MULTIPROGwt © U. Ohm, BBS4, Hannover, [email protected]

erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

Embed Size (px)

Citation preview

Page 1: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

1

erstellt in Anlehnung an die Hilfe desProgramms MULTIPROGwt

© U. Ohm, BBS4, Hannover, [email protected]

Page 2: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

2

Anm.: kursive Schrift bedeutet, daß der Begriff weiter unter erläutert wird.

1. Die Norm IEC 1131

Die Norm IEC 1131 wurde entwickelt, um die unterschiedlichen Sprachen, Befehlssätze und Konzepteim Bereich der Automatisierungssysteme zu vereinheitlichen. Die Vielzahl der verfügbaren SPS-Konzepte hat in der Vergangenheit dazu geführt, daß Systeme auf unterschiedlichen SPS-Plattformenvon unterschiedlichen Herstellern nicht kompatibel sind. Aus diesem Grund mußten bislang fürSchulungen sowie für Hard- und Software hohe Investitionen getätigt werden.In der IEC 1131 werden die Programmiersprachen, die Schnittstellen zwischen SPS undProgrammiersystem, die unterschiedlichen Anweisungen sowie die Bearbeitung und dieStrukturierung von Projekten vereinheitlicht. Der Einsatz IEC 1131 konformer SPS- undProgrammiersysteme bietet den Vorteil der Portabilität aller Plattformen und der Verwendungeinheitlicher Konzepte, wodurch die Kosten für die Automatisierungssysteme reduziert werden.Die Norm besteht aus mehreren Teilen und technischen Berichten. Der dritte Teil befaßt sich mit denProgrammiersprachen.Natürlich hat die Norm einen großen Einfluß auf das Konzept, die Struktur und die Funktionen einesProgrammiersystems sowie auf das Programmieren einer SPS.Die wesentlichen Veränderungen durch die IEC 1131-3 sind:

• Die Deklaration der Variablen ähnelt der Variablen-Deklaration in höherenProgrammiersprachen.

• Deklaration von Datentypen ist möglich.• Globale und lokale Daten können voneinander unterschieden werden.• Programmieren bedeutet symbolisches Programmieren.

Page 3: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

3

2. Konfigurationselemente in der IEC 1131-3

In einem IEC 1131-3 konformen SPS-Programmiersystem wird die Hardwarestruktur ! durchKonfigurationselemente abgebildet. Dabei handelt es sich hauptsächlich um Konfigurationen ",Ressourcen # und Tasks $..

2.1. Konfigurationen in der IEC 1131-3Eine Konfiguration " ist vergleichbar mit einem speicherprogrammierbaren Steuerungssystem, z. B.einem Rack. In einer Konfiguration können eine oder mehrere Ressourcen definiert werden.

2.2. Ressourcen in der IEC 1131-3Eine Ressource # ist vergleichbar mit einer CPU, die in das Rack eingesetzt werden kann. In einerRessource können globale Variablen deklariert werden, die nur in dieser Ressource gültig sind. Eskönnen eine oder mehrere Tasks ausgeführt werden.

2.3. Tasks in der IEC 1131-3Tasks % bestimmen den Zeitplan, wann ein Programm ausgeführt werden soll. Der Anwender mußdazu einer Task das entspechende Programm & zuweisen. Die Eigenschaften der Task bestimmenden zeitlichen Ablauf (Zeitplan) der Programmausführung.Die IEC 1131-3 beschreibt verschiedene Arten von Zeitverhalten. Daher wird zwischen dreiverschiedenen Task-Typen unterschieden:

• Zyklische Tasks werden innerhalb von bestimmten Zeitintervallen aktiviert und dasProgramm wird periodisch ausgeführt. $

• Systemtasks werden automatisch vom SPS-Betriebssystem aufgerufen, wenn in der SPS einFehler oder ein Wechsel des Betriebsstatus auftritt. Diese Tasks werden auch alsSystemprogramme oder SPGs bezeichnet.

• Ereignis-Tasks werden aktiviert, wenn ein bestimmtes Ereignis eingetreten ist.

Jede Task besitzt eine festgelegte Priorität. In sogenannten Systemen mit vorberechtigtem Aufruf wirdeine aktive Task mit niedrigerer Priorität sofort unterbrochen wenn eine höherpriore Task durch einbestimmtes Ereignis aktiviert wird. In Systemen mit nicht-vorberechtigtem Aufruf können Tasks nichtdurch höherpriore Tasks unterbrochen werden.Welche Task-Typen unterstützt werden, hängt von der eingesetzten SPS ab.

RACK

Page 4: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

4

3. POEs in der IEC 1131-3

Programm-OrganisationsEinheiten oder kurz POEs sind die Sprachelemente eines SPS-Programms.Sie sind kleine, unabhängige Softwareeinheiten, die den Programmcode enthalten. Der Name einerPOE muß eindeutig sein, d. h. er darf innerhalb eines Projektes nur einmal vergeben werden.Gemäß ihrer unterschiedlichen Verwendung wird in der IEC 1131 zwischen drei Typen von POEsunterschieden:

• Programme• Funktionsbausteine• Funktionen

Jede POE besteht aus zwei unterschiedlichen Teilen: Dem Deklarationsteil und dem Code-Teil.Im Deklarationsteil werden alle notwendigen Variablen deklariert, d.h. in Textform wird der Name, derDatentyp, evtl. die Zuordnung zu einer Ein- oder Ausgangsklemme und evtl. ein Startwert eingegeben.Der Anweisungsteil oder Code-Teil einer POE ist der Teil, in dem die Anweisungen in dergewünschten Sprache programmiert werden.

Page 5: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

5

3.1. Funktionen in der IEC 1131-3, FU

Funktionen sind POEs mit mehreren Eingangsparametern und genau einem Ausgangsparameter. DasAufrufen einer Funktion mit den gleichen Eingangsparametern liefert immer das gleiche Ergebnis.Rückgabewerte können einfache Datentypen sein. In einer Funktion können andere Funktionaufgerufen werden, jedoch keine Funktionsbausteine oder Programme. Rekursive Aufrufe, d.h. wennein Ausgang auf seinen Eingang zurückgeführt würde, sind nicht zulässig. Die Abkürzung fürFunktionen ist FU.In der IEC 1131-3 werden verschiedene Typen von Standardfunktionen aufgeführt:

• Funktionen zur Typumwandlung• Numerische Funktionen• Arithmetische Funktionen• Bitweise boolesche Funktionen• Bit-Folge-Funktionen• Funktionen für Auswahl• Funktionen für Vergleich• Funktionen für Zeichenfolgen

Es ist auch möglich, daß zusätzliche Firmware-Funktionen verfügbar sind.Detaillierte Informationen über die Standardfunktionen der IEC 1131-3 finden Sie in der Hilfe zuFunktionen und Funktionsbausteinen.

Page 6: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

6

3.2. Funktionsbausteine in der IEC 1131-3, FB

Funktionsbausteine sind POEs mit mehreren Eingangs- und Ausgangsparametern und internemSpeicher. Der Wert, den ein Funktionsbaustein als Ergebnis zurückgibt, hängt vom aktuellen Wertseines internen Speichers ab. In einem Funktionsbaustein können weitere Funktionsbausteine oderandere Funktionen aufgerufen werden. Dies ist aber nicht möglich für Programme. Rekursive Aufrufesind nicht zulässig. Die Abkürzung für Funktionsbausteine ist FB.Die IEC 1131-3 definiert Standardfunktionsbausteine, die Sie in einem SPS-Programm verwendenkönnen. Je nach eingesetzter Hardware und SPS stehen Ihnen eventuell nicht alleStandardfunktionsbausteine zur Verfügung. Es können aber auch zusätzliche Firmware-Funktionsbausteine verfügbar sein.

In der IEC 1131-3 werden verschiedene Typen von Standard-Funktionsbausteinen aufgeführt:

• Bistabile Elemente• Funktionsbausteine für Flankenerkennung• Funktionsbausteine Zähler• Funktionsbausteine Zeitgeber

Page 7: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

7

3.3. Programme in der IEC 1131-3

Programme sind POEs, die eine logische Kombination von Funktionen und Funktionsbausteinenenthalten, entsprechend den Erfordernissen des Steuerungsprozesses. Das Verhalten und dieVerwendung von Programmen ist ähnlich wie bei Funktionsbausteinen. Programme können Eingangs-und Ausgangsparameter sowie einen internen Speicher haben. Programme müssen Taskszugewiesen werden.In einem Programm können weitere Funktionen und Funktionsbausteine aufgerufen werden.Rekursive Aufrufe sind nicht zulässig.

Page 8: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

8

4. Instanziierung

Damit bereits definierte Funktionsbausteine mehrfach verwendet werden können, bietet dieIEC 1131-3 die Möglichkeit der Instanziierung. Das bedeutet, daß ein Funktionsbaustein oder einProgramm einmal definiert wird und davon mehrere "Ableger" (Instanzen) geschaffen werden, die alleihr "Eigenleben" haben. Z. B. kann ein FB vom Typ TON als 'Zeit_1' auf 3 s eingestellt sein und dergleiche FB als 'Zeit_2' auf 5 s. Jede Instanz hat einen Bezeichner (den Instanznamen), z.B. 'Zeit_1'.Ein Funktionsbaustein kann in anderen Funktionsbausteinen oder Programmen instanziiert werden.Der entsprechende Instanzname eines Funktionsbausteins muß in der VAR-Deklaration desProgramms oder Funktionsbausteins deklariert werden. Programme können nur innerhalb vonRessourcen instanziiert werden.

Page 9: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

9

5. Datentypen in der IEC 1131-3

Datentypen legen die Eigenschaften für die Werte einer Variablen fest. Sie definieren denAnfangswert, den Bereich der möglichen Werte und die Anzahl der Bits.

Die IEC 1131-3 unterscheidet drei Arten von Datentypen:• Elementare Datentypen• Generische Datentypen• Anwenderdefinierte Datentypen

Page 10: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

10

5.1. Elementare Datentypen

Die Wertebereiche und die Bitgröße elementarer Datentypen sind in der IEC 1131-3 definiert.Die elementaren Datentypen sind in der folgenden Tabelle dargestellt:

Datentyp Beschreibung Größe BereichStandard-Anfangswert

BOOL Boolesch 1 0...1 0

SINT 8-Bit-Integer 8 -128...127 0INT Integer 16 -32768...32767 0

DINT Double Integer 32-2.147.483.648 bis2.147.483.647

0

USINT8-Bit-IntegerohneVorzeichen

8 0 bis 255 0

UINTInteger ohneVorzeichen

16 0 bis 65535 0

UDINTDouble IntegerohneVorzeichen

32 0 bis 4.294.967.295 0

REALGleitkomma-Zahl

32 1.18 x 10-38 bis 3.40 x 1038 0.0

TIME Zeitdauer 32 t#0s

BYTEBitfolge derLänge 8

8 0

WORDBitfolge derLänge 16

16 0

DWORDBitfolge derLänge 32

32 0

Die Verwendung dieser elementaren Datentypen hängt von Ihrer Hardware ab. Informationen über dieunterstützten Datentypen finden Sie in Ihrer Hardware-Dokumentation.

Der Datentyp STRING ist zwar ein elementarer Datentyp, gehört aber nicht zu der oben angegebenenGruppe. Sein Format im Speicher hängt vom SPS-Typ ab.

Page 11: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

11

5.2. Generische Datentypen

Generische Datentypen sind Datentypen, in denen Gruppen elementarer Datentypenzusammengefaßt sind. Beispielsweise beinhaltet ANY_INT die elementaren Datentypen DINT, INT,SINT, UDINT, UINT und USINT. Wenn eine Funktion mit ANY_INT verbunden werden kann, bedeutetdas, daß sie Variablen der Datentypen DINT, INT, SINT, UDINT, UINT und USINT verarbeiten kann.

Die Verwendung von Datentypen hängt auch von Ihrer Hardware ab. Eventuelle Einschränkungenbezüglich der Verwendung generischer Datentypen sind in der Dokumentation zu Ihrer Hardwarebeschrieben.

Page 12: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

12

5.3. Anwenderdefinierte Datentypen

Anwenderdefinierte Datentypen müssen mit dem Schlüsselwort TYPE ... END_TYPE in einemDatentyp-Arbeitsblatt deklariert werden. Anwenderdefinierte Datentypen (sie werden auch alsabgeleitete Datentypen bezeichnet) können Aufzählungen, Strukturen oder Felder sein.

5.3.1. Felder

Der Datentyp Feld schließt mehrere Elemente eines Datentyps ein. Ein Feld kann verwendet werden,um mehrere Elemente des gleichen Typs in einer einzigen Zeile der Typendeklaration zu deklarieren.Das folgende Beispiel zeigt eine Deklaration für den Datentyp Feld:TYPE graph : ARRAY[1..23] OF INT;END_TYPE

In diesem Beispiel enthält das Feld 'graph' 23 Elemente des Datentyps 'INT'. Alle Elemente einesFelds werden fortlaufend nacheinander im SPS-Speicher abgelegt.

5.3.2. Der Datentyp Struktur enthält mehrere Elemente unterschiedlicher Datentypen.

Das folgende Beispiel zeigt eine Deklaration des Datentyps Struktur:TYPE maschine : STRUCT x_pos : INT; y-pos : INT; tiefe : INT; u_min : UINT; END_STRUCT;END_TYPE

In diesem Beispiel besteht die Struktur 'maschine' aus den Komponenten x_pos, y_pos, tiefe undu_min.

5.3.3. Zeichenfolgen

Anwenderdefinierte Zeichenfolgen sind Datentypen vom Typ STRING mit einer variablen Anzahl vonZeichen. Beim Deklarieren eines anwenderdefinierten Datentyps für Zeichenfolgen wird die Länge inKlammern hinter den Datentyp gestellt, wie im folgenden Beispiel dargestellt:

Das folgende Beispiel zeigt eine Deklaration für den Datentyp Zeichenfolge (String):TYPE STRING10 : STRING(10) (* 'STRING10' ist eine Variable *)END_TYPE

In diesem Beispiel beträgt die Länge der Zeichenfolge 10 Zeichen.Grenzen: Die kürzeste mögliche Zeichenfolge hat die Länge 1, die längste mögliche Zeichenfolge hatdie Länge 1024.

5.3.4. Aufzählungen

Der Datentyp Aufzählung begrenzt den Bereich der möglichen Werte auf die jeweils aufgezählten.Eine Variable dieses Datentyps kann jeweils nur einen der aufgezählten Werte annehmen.Das folgende Beispiel zeigt eine Deklaration des Datentyps Aufzählung:TYPE licht : (rot, gelb, gruen);END_TYPE

In diesem Beispiel kann der Datentyp 'licht' nur die Werte 'rot', 'gelb' oder 'gruen' annehmen.

Page 13: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

13

6. Variablen in der IEC 1131-3

In der IEC 1131-3 werden verschiedene Variablentypen beschrieben:• Symbolische Variablen• Direkt dargestellte Variablen• Adressierte Variablen

Variablen müssen unter Verwendung von Schlüsselwörtern im Variablen-Arbeitsblatt der POEdeklariert werden, in der sie verwendet werden.

Beispiel:Ein Programm kann die Aufgabe haben, zwei Eingangsgrößen durch ein logisches UND (AND) zuverknüpfen. Der Baustein (UND) ist dafür zwingend erforderlich. Welche Eingangsgrößen jedochverknüpft werden sollen, kann variabel entschieden werden. Deshalb nennt man diese Größen auchVariable.Eine Variable wird durch einen Namen - den Bezeichner oder Operand - gekennzeichnet.

Dieser ist – fast – frei wählbar, aber mit folgenden Einschränkungen:

• Es sind nur Buchstaben, Zahlen und der Unterstrich (_) in - fast – beliebiger Reihenfolge erlaubt.(Umlaute sind nicht erlaubt. Also anstatt z. B. ä muss ae geschrieben werden).

• Der Bezeichner darf nicht mit einer Zahl beginnen.• Es dürfen nicht mehrere Unterstriche direkt hinter einander folgen.• Es darf kein Leerzeichen zwischen den Zeichen stehen, es muss also ein zusammenhängender

Ausdruck entstehen.

Variablen bezeichnen Datenelemente, deren Inhalt sich ändern kann. Die Variablen können in zweiGruppen geteilt werden:

• Variablen, die zum Zwischenspeichern von internen Daten dienen.• Direkt dargestellte Variablen, die mit Ein- und Ausgängen der SPS verbunden sind.

Eine Anschlussklemme einer SPS hat eine genormte Bezeichnung:

Das Programm erkennt eine solche Klemme an dem %-Zeichen, das jeder Klemmenbezeichnungdirekt voran gestellt wird. Alle Eingänge sind an dem dann folgenden I (von: Input) und alle Ausgängean dem Q zu erkennen. Das folgende „X“ hat keine Bedeutung, sondern ist nur ein Füllzeichen, dashier als Platzhalter dient, weil das Programm eine bestimmte Länge der Eingabe erwartet.

Beispiel: %IX1.3 Eingangsklemme 3 der Eingangsklemmleiste 1%QX2.4 Ausgangsklemme 4 der Ausgangsklemmleiste 2

Das Zeichen nach 'I' oder 'Q' wird Präfix genannt.

Page 14: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

14

DatenbreiteDie Information, welche Klemme angesprochen werden soll, umfasst die Datenmenge 1 Bit.Die SPS verarbeitet außer Bit- auch Byte- und Wortsignale. Ein Byte besteht immer aus 8 Bits, einWort aus 2 Bytes, also 16 Bits. Das niedrigste Bit eines Bytes liegt an der Klemme 0, das höchste anKlemme 7.Soll eine Anweisung gleichzeitig ein ganzes Byte oder Wort umfassen, dann ist zum Kennzeichen desOperanden noch die Datenbreite B = Byte oder W = Wort hinzu zu fügen (dort, wo sonst das „X“stand):

%IB1 Lade Eingangs-Byte Nr. 1 = Bit-Eingänge Nr. 0 bis 7 der Eingangsklemmleiste 1

%QB3 Gib die Information auf die Bit-Ausgänge Nr. 0 bis 7 der Ausgangsklemmleiste 3 aus.

Sinngemäß verfahren Sie bei der Wortverarbeitung.Die Datenbreite B = Byte wird einfach durch W = Wort ersetzt: %QW3

Man kann einen Bezeichner direkt als Klemme darstellen, wie vorstehend beschrieben – muss es abernicht. Man kann – und das ist für größere Programme dringend zu empfehlen (warum?) – dieVariablen mit einem „Kosenamen“ (der symbolischen Adresse) versehen und auch so aufrufen.Sinnvoll wäre hier eine logische Bezeichnung der Funktion. Für die Abfrage des START-Tasterskönnte die Variable dann „Start“ oder „EIN“ heißen. Dafür muss dann nur noch eine Zuordnungzwischen Start und der entsprechenden Klemme erfolgen. Diese Zuordnung erfolgt grundsätzlich inder Deklaration des Programms, dem Vorspann.Zwischen den Schlüsselwörtern VAR und END_VAR werden die „Kosenamen“ mit dem weiterenSchlüsselwort AT der Klemme zugewiesen. Danach muss noch der Datentyp deklariert werden.Achten Sie auf die genormte Schreibweise! Schlüsselwörter sind GROSS zu schreiben.Die Zeichen „:“ und zum Schluss „;“ nicht vergessen!

Page 15: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

15

Direkte Darstellung Darstellung mit symbolischen Namen

(*Deklaration*) (*Deklaration*)

VAR VAR

AT %I0.0 : BOOL; Einschalt_1 AT %I0.0 : BOOL;AT %I0.1 : BOOL; Ausschalt_1 AT %I0.1 : BOOL;AT %Q0.0 : BOOL; _Motor_Relais AT %Q0.0 : BOOL;

END_VAR END_VAR

(*Programm*) (*Programm*)

LD %I0.0 LD Einschalt_1 Lade den Wert Eingang Klemme 0.0OR %Q0.0 OR _Motor_Relais ...oder am Ausgang 0.0AND %I0.1 AND Ausschalt_1 und am Eingang Klemme 0.1ST %Q0.0 ST _Motor_Relais weise das Ergebnis dem Ausg. 0.0 zu.

Die Variablen können – je nach Firmen-software – entweder direkt in den Deklarationskopf oder ineine Assistententabelle geschrieben werden. Von diesem Assistenten werden die Daten dannnormgemäß in den Deklarationskopf übertragen.

Es folgt noch einmal eine systematische Auflistung der Begriffe

Page 16: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

16

6.1. Schlüsselwörter zur Variablen-Deklaration

Zur Variablen-Deklaration müssen entsprechende Schlüsselwörter verwendet werden. DieSchlüsselwörter sind in der folgenden Tabelle dargestellt:

Schlüsselwort Beschreibung

VAR

• für interne Variablen, die nur innerhalb der POE verwendet werdenkönnen.

• zur Deklaration der Instanzen von Funktionsbausteinen.• kann zur Deklaration von direkt dargestellten, adressierten und

symbolischen Variablen verwendet werden.• kann zusammen mit dem Schlüsselwort 'RETAIN' zur Deklaration

remanenter Variablen verwendet werden.

VAR_INPUT

• für Variablen, die Eingänge von Funktionen, Funktionsbausteinenund Programmen sind.

• um einen Wert an eine POE zu geben, der beispielsweise von eineranderen POE kommt.

• der Wert wird nur innerhalb der POE gelesen.• kann nur zur Deklaration von symbolischen Variablen verwendet

werden.

VAR_OUTPUT

• für Variablen, die Ausgänge von Funktionen, Funktionsbausteinenund Programmen sind.

• liefert einen Ausgangswert, z. B. für andere POEs.• der Wert wird innerhalb der POE geschrieben.• der Wert kann auch gelesen werden.• kann zusammen mit dem Schlüsselwort 'RETAIN' zur Deklaration

remanenter Variablen verwendet werden.

VAR_IN_OUT

• Adresse der Variablen wird übergeben (Referenzparameter).• die Variable kann gelesen oder geschrieben werden.

wird typischerweise für komplexe Datentypen wie Folgen, Felderund Strukturen verwendet

VAR_EXTERNAL

• für globale Variablen in der POE.• der Wert wird durch die Deklaration von VAR_GLOBAL geliefert.• der Wert kann innerhalb der POE geändert werden.• kann nur zur Deklaration von symbolischen Variablen verwendet

werden.

VAR_GLOBAL

• für globale Variablen, die in allen Programmen undFunktionsbausteinen des Projekts verwendet werden können.

• kann zur Deklaration von direkt dargestellten, adressierten undsymbolischen Variablen verwendet werden.

• kann zusammen mit dem Schlüsselwort 'RETAIN' zur Deklarationremanenter Variablen verwendet werden.

END_VAR • um einen Variablen-Deklarationsblock zu beenden.

Zusätzlich zu diesen Schlüsselwörtern können zwei weitere Schlüsselwörter in Variablen-Deklarationen verwendet werden. RETAIN für remanente Variablen, und das Schlüsselwort AT, dasfür direkt dargestellte und adressierte Variablen benötigt wird.Je nach Variablentyp unterscheidet sich die Struktur der Variablen-Deklarationen. Variablen werdenentweder im Variablen-Arbeitsblatt jeder POE oder im Arbeitsblatt für globale Variablen deklariert.

Page 17: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

17

6.2. Globale und lokale Variablen

Der Anwendungsbereich jeder Variablen, der durch das Verwenden des Variablen-Schlüsselwortsbestimmt wird, bezieht sich entweder auf eine POE oder auf das gesamte Projekt. Daher werden zweiTypen unterschieden:

• Lokale Variablen• Globale Variablen

Wenn eine Variable nur innerhalb einer POE verwendet werden kann, wird von einer lokalen Variablegesprochen. In diesem Fall müssen die Variablen-Schlüsselwörter VAR, VAR_INPUT undVAR_OUTPUT verwendet werden.Wenn eine Variable im gesamten Projekt verwendet werden kann, wird von einer globalen Variablegesprochen. Sie muß in der globalen Deklaration als VAR_GLOBAL und in jeder POE, in der sieverwendet wird, als VAR_EXTERNAL deklariert werden.Es kann sich als sinnvoll erweisen, alle Ein- und Ausgänge als globale Variablen zu deklarieren. In derglobalen Variablen-Deklaration sollten sie als adressierte Variablen und in der DeklarationVAR_EXTERNAL der POE als symbolische Variablen deklariert sein. Auf diese Weise verringern Sieden Schreibaufwand im Fall von Adreßänderungen.

Page 18: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

18

6.3. Symbolische Variablen

Symbolische Variablen werden mit einem symbolischen Namen und einem Datentyp deklariert.Variablen müssen nicht initialisiert werden.Symbolische Variablen werden vom System in freien Bereichen des SPS-Speichers abgelegt, d. h. dieAdressen sind dem Anwender nicht bekannt.Das folgende Beispiel zeigt eine Variablen-Deklaration zweier symbolischer Variablen:VAR var1: BOOL; var2: INT;END_VAR

Sie können symbolische Variablen initialisieren und/oder sie als remanente Variablen deklarieren,indem Sie das Schlüsselwort 'RETAIN' verwenden.

Page 19: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

19

6.4. Direkt dargestellte und adressierte Variablen

Direkt dargestellte Variablen werden nicht mit einem symbolischen Namen, sondern mit einerlogischen Adresse deklariert.Adressierte Variablen werden mit einem symbolischen Namen und mit einer logischen Adressedeklariert.Direkt dargestellte Variablen und adressierte Variablen werden beide an der deklarierten logischenAdresse gespeichert. Der Programmierer muß deshalb darauf achten, daß er keine Speicheradressedoppelt vergibt.Die Deklaration einer Speicheradresse besteht aus dem Schlüsselwort AT, dem Prozentzeichen "%",dem Präfix für den Speicherort, dem Präfix für die Größe und dem Namen der logischen Adresse.Direkt dargestellte Variablen und adressierte Variablen können im globalen Variablen-Arbeitsblatt oderin Programmen deklariert werden. Zur Deklaration muß das Schlüsselwort VAR_GLOBAL verwendetwerden.Die folgende Tabelle zeigt die Präfixe für den Speicherort und die Größe direkt dargestellter undadressierter Variablen:

Präfix für denSpeicherort

Beschreibung

I Physikalischer Eingang

Q Physikalischer AusgangM Physikalische Adresse im SPS-SpeicherPräfix für dieGröße

Beschreibung

X Einzelbitgröße (nur mit Datentyp BOOL)

Nein EinzelbitgrößeB Byte-Größe (8 Bits)

W Wort-Größe (16 Bits)

D Doppelwort-Größe (32 Bits)L Langwort-Größe (64 Bits)

Das folgende Beispiel zeigt eine Deklaration direkt dargestellter und lokaler Variablen:VAR var1 AT %QX 2.4 : BOOL; (* adressierte Variable *) var2 AT %IW4 : WORD; (* 'var2' ist die symbolische Adresse *) AT %QB 7 : BYTE; (* direkt dargestellte Variable *)END_VAR

Page 20: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

20

6.5. Remanente Variablen

Remanente Variablen sind Variablen, deren Werte auch gespeichert bleiben, wenn dieStromversorgung abgeschaltet wird. Bei einem Warmstart wird der letzte Wert der Variablenverwendet.Zum Deklarieren remanenter Variablen muß das Schlüsselwort RETAIN verwendet werden, wie imfolgenden Beispiel dargestellt:VAR RETAIN var1 : BOOL := TRUE;END_VARIn diesem Beispiel hat die Variable den Anfangswert 'TRUE', der den Anfangswert für einen Kaltstartangibt. Bei einem Warmstart wird der aktuelle Wert der Variablen verwendet.

Page 21: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

21

6.6. Initialisieren von Variablen

Gemäß der IEC 1131-3 können Variablen Anfangswerte zugewiesen werden. Das bedeutet, daß eineVariable, die zum ersten Mal in dem SPS-Programm verwendet wird, mit ihrem Anfangswertaufgerufen wird. Anfangswerte können allen Variablen zugewiesen werden, außer in VAR-EXTERNAL-Deklarationen.Anfangswerte müssen am Ende der Deklarationszeile der Variablen mit ':=' eingefügt werden, wie indem folgenden Beispiel dargestellt:VAR var1: INT := 28; var2: TIME := T#1s; var3: AT %QX0.0 := TRUE;END_VAR

Variablen an physikalischen Eingängen können nicht initialisiert werden.Der Anfangswert muß zu dem Datentyp passen. Es ist beispielsweise nicht möglich, einer Variablevom Datentyp BOOL den Anfangswert '5' zuzuweisen. In diesem Fall zeigt das System eineFehlermeldung an.Variablen müssen nicht initialisiert werden. Wenn kein Anfangswert zugewiesen wird, wird die Variablemit dem Standard-Anfangswert des Datentyps oder bei remanenten Variablen mit dem gepuffertenWert initialisiert.

Page 22: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

22

7. Programmiersprachen in der IEC 1131-3

Die IEC 1131-3 definiert die Syntax von fünf Programmiersprachen, schreibt deren Darstellungsweisevor und beschreibt die verschiedenen Elemente, die in einer Sprache benutzt werden können.Aufgrund Ihres Aufbaus können die Programmiersprachen in zwei textuelle Sprachen und dreigraphische Sprachen unterteilt werden.Die Textsprachen sind Anweisungsliste (AWL) und Strukturierter Text (ST).Zu den graphischen Sprachen gehören die Funktionsbaustein-Sprache (FBS), der Kontaktplan(KOP) und die Ablaufsprache (AS).

Vertiefungen sind in den entsprechenden Hilfe-Kapiteln vorzunehmen.

Page 23: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

23

7.1. Anweisungsliste - AWL

Der Code in der textuellen Sprache AWL besteht aus einer Folge von Anweisungen. Jede Anweisungbeginnt in einer neuen Zeile.Jede Zeile beginnt mit einem Operator gefolgt von einem Operanden. Zusätzlich können Modifierverwendet werden.

Das folgende Beispiel zeigt eine einfache AWL-Anweisungsfolge: LD var1 (* Operand 'var1' in Akkumulator laden *) AND var2 (* Akkumulator mit Operand 'var2' bearbeiten *) ST var3 (* Akkumulator in Speicher ablegen *)

Operanden in AWL können Variablen, Literale oder Instanznamen von Funktionsbausteinen sein. Siewerden in Verbindung mit Operatoren oder Funktionen in Anweisungen verwendet.

Beim Editieren in AWL können Sie folgende Modifierer (Beeinflussungen) verwenden:N: Negation(: verarbeitet den eingeschlossenen Ausdruck zuerstC: bedingt

Page 24: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

24

7.1.1. Operatoren in AWL

In AWL können die folgenden Operatoren verwendet werden:

Operator Modifizierer Operand Beschreibung

LD N ANY Setzt aktuelles Ergebnis dem Operanden gleich.

ST N ANYSpeichert aktuelles Ergebnis auf die Operanden-Adresse.

S BOOLSetzt booleschen Operand auf 1, wenn aktuellesErgebnis 1 ist.

R BOOLSetzt booleschen Operand auf 0, wenn aktuellesErgebnis 1 ist.

AND N, ( ANY_BIT Boolesches UND

OR N, ( ANY_BIT Boolesches ODER

XOR N, ( ANY_BIT Boolesches Exklusiv ODERADD ( ANY_NUM Addition

SUB ( ANY_NUM SubtraktionMUL ( ANY_NUM Multiplikation

DIV ( ANY_NUM Division

GT (ANY_NUM +ANY_BIT

Vergleich: >

GE (ANY_NUM +ANY_BIT

Vergleich: >=

EQ (ANY_NUM +ANY_BIT

Vergleich: =

NE (ANY_NUM +ANY_BIT

Vergleich: <>

LE (ANY_NUM +ANY_BIT

Vergleich: <=

LT (ANY_NUM +ANY_BIT

Vergleich: <

JMP C, N LABEL Sprung zur MarkeCAL C, N NAME Aufruf Funktionsbaustein

RET C, N Rücksprung von Funktion oder Funktionsbaustein

) Bearbeitung zurückgestellter Operation.

Page 25: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

25

In AWL-Codes können Sprünge verwendet werden. Das folgende Beispiel zeigt einen Sprung und dieVerwendung der zugehörigen Marke:Eine Marke stellt das Ziel für einen Sprung dar. Sie steht am Zeilenanfang und ist durch einenDoppelpunkt von der Anweisung getrennt.

LD var1 (* Lade 'var1' *) EQ INT#100 (* Vergleiche mit Wert 100 *) JMPC Marke_1 (* Wenn Vergleich = TRUE, springe zu 'Marke_1' *) LD var2 (* Sonst lade 'var2 *) ADD var3 (* und addiere Wert von 'var3' *) ST var4 (* weise den Wert der Variablen 'var4' zu *)Marke_1: ST %QX2.2 (* weise Klemme Q 2.2 eine log. '1' zu *)

In AWL-Codes können Kommentare unter Verwendung von Sternchen und runden Klammerneingefügt werden.Sie können Kommentare an jedem Zeilenende oder in einer neuen Zeile einfügen. Kommentare sindohne Bedeutung für Ihr Programm. Sie bieten Ihnen aber die Möglichkeit, Erläuterungen zumbesseren Verständnis einzufügen.

Page 26: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

26

7.2. Strukturierter Text - ST

Der Code in der textuellen Sprache ST besteht aus Anweisungen und Ausdrücken.Beim Editieren können verschiedene Typen von Anweisungen verwendet werden. Am Ende jederAnweisung muß ein Semikolon stehen.

7.2.1. Anweisungen in ST

Die folgenden Anweisungen können in ST verwendet werden:Schlüsselwort

Beispiel Beschreibung

RETURN RETURN;Rücksprung-Anweisung: Die Rücksprung-Anweisung verläßt dasaufgerufene Element (Funktion, Funktionsbaustein oder Programm)und springt zurück in die aufrufende POE.

IF

IF a < b THEN c:=1;ELSIF a=b THEN c:=2;ELSE c:=3;END_IF;

Auswahlanweisung: Eine Gruppe von Anweisungen wird nurausgeführt, wenn der zugeordnete boolesche Ausdruck 'a<b' TRUEist. Wenn die Bedingung FALSE ist, wird entweder keine Anweisungausgeführt oder die Anweisungen, die auf ELSE folgen.

CASE

CASE f OF1: a:=3;2..5: a:=4;6: a:=2;b:=1;ELSE a:=0;END_CASE;

Auswahlanweisung: Eine Gruppe von Anweisungen wirdentsprechend dem Wert des Ausdrucks hinter dem SchlüsselwortCASE ausgeführt. Die Variable oder der Ausdruck 'f' muß vomDatentyp INT sein.

FOR

FOR a:=1 TO 10 BY 3DOf[a] :=b;END_FOR;

Wiederholungsanweisung: Eine Gruppe von Anweisungen wirdwiederholt ausgeführt. Die Variable 'a' wird jeweils um 3 erhöht, derAnfangswert ist '1' und der Endwert '10'. Der Anfangswert wird mit derSteuervariablen 'a' eingestellt. Der Endwert folgt nach 'TO' und dieInkremente folgen nach 'BY'. Alle Werte müssen vom DatentypANY_INT sein.Hinweis: Wird 'BY' nicht verwendet, wird der Standardwert '1'verwendet. In diesem Fall müssen alle Werte vom Datentyp INT sein.

WHILE

WHILE b > 1 DOb:= b/2END_WHILE;

Wiederholungsanweisung: Eine Gruppe von Anweisungen wirdwiederholt ausgeführt, bis der zugeordnete boolesche Ausdruck 'b>1'FALSE ist. Die Bedingung für die Anweisung wird am Anfang derSchleife ausgeführt. Wenn die Bedingung FALSE ist, wird dieSchleife nicht ausgeführt.

REPEAT

REPEATa := a*b;UNTIL a < 10000END_REPEAT;

Wiederholungsanweisung. Eine Gruppe von Anweisungen wirdwiederholt ausgeführt, bis der zugeordnete boolesche Ausdruck'a<10000' TRUE ist. Die Bedingung für die Anweisung wird am Endeder Schleife ausgeführt. Wenn die Bedingung FALSE ist, wird dieSchleife mindestens einmal ausgeführt.

EXIT

FOR a:=1 TO 2 DOIF flag THEN EXIT;END_IFSUM := SUM + aEND_FOR

EXIT-Anweisung. Die EXIT-Anweisung kann verwendet werden, umdie Ausführung einer Wiederholungsanweisung abzubrechen.

Ein Ausdruck ist ein Konstrukt, das Teil einer Anweisung ist und einen Wert zur Ausführung derAnweisung liefert. Ausdrücke bestehen aus Operatoren und Operanden. Die Operatoren müssen aufdie Operanden so angewendet werden, daß dem Operator mit der höchsten Rangfolge der Operatormit der nächstniederen Rangfolge folgt.Operanden in ST können Literale, Variablen oder Namen von Funktionen sein. Diese werden inVerbindung mit Operatoren in Anweisungen verwendet.

In ST-Codes können Kommentare unter Verwendung von Sternchen und runden Klammern eingefügtwerden

Page 27: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

27

7.3. Funktionsbaustein-Sprache - FBS

Ein Programmcode in der graphischen Sprache FBS setzt sich aus Bausteinen zusammen, die durchLinien miteinander oder mit Variablen verbunden sind. Die Verbindungslinien können auchmiteinander verbunden sein. In FBS-Netzwerken ist es nicht möglich, Ausgänge mit Ausgängen zuverbinden.Alle verbundenen Objekte zusammen bilden ein FBS-Netzwerk.

Konnektoren können in großen Netzwerken zur besseren Strukturierung der Elemente im Arbeitsblattverwendet werden. Konnektoren ersetzen Verbindungslinien.Der Ausgangskonnektor und der Eingangskonnektor müssen dabei den gleichen Namen haben. Siekönnen in einem Arbeitsblatt einen Ausgangskonnektor und mehrere gleichnamigeEingangskonnektoren einsetzen.Konnektoren werden in den Arbeitsblättern wie folgt dargestellt: > konnektor1 >

Sprünge können verwendet werden, um zu einer Marke im aktuellen Arbeitsblatt zu springen.Wenn Sie Sprünge verwenden wollen, müssen Sie zwei Objekte in Ihr Arbeitsblatt einfügen: einenSprung und eine Marke. Die Marke ist das Ziel für den Sprung. Beachten Sie, daß Sprung und Markeimmer denselben Namen haben müssen.Marken in FBS-Arbeitsblättern sind Sprungziele. Eine Marke ist durch einen Doppelpunkt und denunterstrichenen Namen gekennzeichnet.

Rücksprünge können eingefügt werden, um zur aufrufenden POE zurückzuspringen.Rücksprünge in FBS-Arbeitsblättern sind Objekte, mit denen Sie in die aufrufende POEzurückspringen können, wenn die boolesche Variable TRUE ist. Wenn die Variable FALSE ist, wirddie Programmausführung fortgesetzt.

Page 28: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

28

7.4. Kontaktplan - KOP

Ein Programmcode in der graphischen Sprache KOP besteht aus Kontakten und Spulen. Gemäß derIEC 1131-3 können verschiedene Typen von Kontakten und Spulen verwendet werden. Je nach Typleiten die Kontakte den Strom von links nach rechts. Spulen speichern den Eingangswert inbooleschen Variablen.Kontakte und Spulen sind durch Linien verbunden und links und rechts durch Stromschienenbegrenzt. Der Zustand der linken Stromschiene wird immer als EIN betrachtet. Die rechteStromschiene ist optional.Zusätzlich zu den seriellen Verbindungen von Kontakten und Spulen können parallele Zweige erstelltwerden.Zweige in KOP-Netzwerken bestehen aus Kontakten oder Spulen, die parallel zu anderen Kontaktenoder Spulen eingefügt wurden. In einem Zweig können mehrere Objekte sein. Sie werden auch alsverdrahtete ODER bezeichnet. Zweige können über oder unter vorhandenen Kontakten oder Spulenin ein KOP-Netzwerk eingefügt werden.

Alle verbundenen Objekte zusammen bilden ein KOP-Netzwerk. Jedes KOP-Netzwerk mußmindestens eine Spule und eine linke Stromschiene enthalten.Konnektoren können in großen Netzwerken zur besseren Strukturierung der Elemente im Arbeitsblattverwendet werden. Konnektoren ersetzen Verbindungslinien.Sprünge können verwendet werden, um zu einer Marke im aktuellen Arbeitsblatt zu springen.Rücksprünge können eingefügt werden, um zur aufrufenden POE zurückzuspringen.Variablen in KOP-Programmcodes sind immer boolesche Variablen. Beim Einfügen von Kontaktenoder Spulen kann der Variablenname eingegeben werden. Der Variablenname wird über dem Kontaktoder der Spule im Arbeitsblatt angezeigt.

Page 29: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

29

7.5. Ablaufsprache - AS

Ein Programmcode in der graphischen Sprache AS besteht aus Schritten und Transitionen, die durchdirekte Verbindungen miteinander verbunden sind.Einem Schritt können ein oder mehrere Aktionsblöcke zugeordnet sein. Während der Schritt aktiv ist,wird die dazugehörige Aktion gemäß ihrem Qualifier ausgeführt.Eine Aktion kann eine boolesche Variable oder ein in AWL, ST, KOP oder FBS editierter Code sein.Wenn die Aktion einen eigenen Code besitzt, spricht man von einer Lupe. In diesem Fall muß derName des Code-Arbeitsblatts auch als Aktionsname verwendet werden. Eine Aktion besitzt immereinen zugeordneten Qualifier.Hinweis: Gemäß der IEC 1131-3 werden Aktionslupen, die zu einem bestimmten Schritt gehören,noch einmal ausgeführt, wenn dieser Schritt inaktiv wird.Qualifier für Aktionen geben an, welchen Einfluß ein zugehöriger Schritt auf eine Aktion hat. Die Aktionkann entweder eine einfache boolesche Variable sein oder der auszuführende Code kann in einemzusätzlichen Code-Arbeitsblatt editiert werden, das als Lupe bezeichnet wird.

Eine Transition entspricht der Bedingung, die erfüllt sein muß, damit der Prozeß von einem Schrittzum nächsten Schritt übergeht. Wenn eine Transition TRUE wird, wird der vorangehende Schritt nocheinmal ausgeführt und dann wird der nachfolgende Schritt aktiv. Die Transition kann entweder eineeinzelne boolesche Variable sein oder ein direkt verbundener boolescher Ausdruck in FBS oder KOP.Der auszuführende Code einer Transition kann auch in einem zusätzlichen Code-Arbeitsblatt editiertwerden, das als Lupe bezeichnet wird. In diesem Fall muß der Name des Code-Arbeitsblatts auch alsTransitionsname verwendet werden.Alle verbundenen Objekte zusammen bilden ein AS-Netzwerk. Ein AS-Netzwerk muß immer einenAnfangsschritt haben, der beim Aufrufen der POE als erster Schritt ausgeführt wird.In das AS-Netzwerk können simultane Zweige oder alternative Zweige eingefügt werden.Simultane Zweige werden gleichzeitig ausgeführt. Das bedeutet, daß die nachfolgende Transition nurwahr wird, wenn die Schritte in allen Zweigen ausgeführt worden sind. Sie werden im graphischenEditor durch eine doppelte, horizontale Linie dargestellt.Alternative Zweige werden wahlweise ausgeführt. Das bedeutet, daß die nachfolgende Transitionwahr wird, wenn die Schritte in einem der Zweige ausgeführt worden sind. Sie werden im graphischenEditor durch eine fette, horizontale Linie dargestellt.

Page 30: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

30

7.5.1. Schritt in AS

Schritte sind grundlegende Elemente eines AS-Netzwerks.Einem Schritt können ein oder mehrere Aktionsblöcke zugewiesen werden.Der Zustand eines Schritts ist entweder aktiv oder inaktiv. Aktiv bedeutet, daß der Schritt gerade vonder SPS abgearbeitet wird. Die dem Schritt zugewiesene Aktion wird ausgeführt. Wenn ein Schrittinaktiv wird, wird die Aktion noch einmal ausgeführt. Falls einem Schritt kein Aktionsblock zugeordnetist, so wird dieser erst dann ausgeführt, wenn eine nachfolgende Bedingung wahr wird.Der Zustand des Schritts wird durch die Variable 'schrittname.x' dargestellt. 'schrittname.x' ist TRUE,wenn der Schritt aktiv ist. Diese Variable wird auch als Schrittmerker bezeichnet.Diese Variable wird intern vom System erzeugt und muß nicht in der Variablen-Deklaration der POEdeklariert werden.Schritte sind mit ihren vorangehenden oder nachfolgenden Transitionen über direkte Verbindungenverknüpft, die durch Linien dargestellt werden. Ein Schritt wird als Rechteck angezeigt. Der Nameerscheint in der Mitte des Rechtecks.

Sie können mehrere Schrittypen verwenden:• Anfangsschritte• Normale Schritte• Endschritte• Sprünge

Der Anfangsschritt ist der erste Schritt, der beim Aufrufen der POE oder beim Starten derKonfiguration aktiviert wird. In jedem AS-Netzwerk kann nur ein Anfangsschritt verwendet werden. DerAngangsschritt wird als doppelt umrahmtes Rechteck dargestellt.Normale Schritte sind Schritte, die vom Programm in der im Netzwerk festgelegten Reihenfolgeausgeführt werden. Sie werden als Rechtecke dargestellt.Endschritte sind Schritte, auf die keine Transition folgt. Sie können sie verwenden, um das AS-Netzwerk zu beenden. Diese Art von AS-Netzwerken wird häufig verwendet, um Anwendungen zuinitialisieren.Sprünge sind Schritte, die Nachfolgeelemente in anderen Arbeitsblättern derselben POE oder an eineranderen Stelle im selben Arbeitsblatt besitzen. Der Name des Sprungs gibt dabei an, wohingesprungen wird.

Page 31: erstellt in Anlehnung an die Hilfe des Programms ... · SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59 3 2. Konfigurationselemente

SPS – IEC 1131 / Kurzfasssung der MULTIPROG-Hilfe

IEC_1131_KURZ2.doc , U. Ohm, 09.01.01, 14:59

31

7.5.2. Transition in AS

Transitionen sind grundlegende Elemente eines AS-Netzwerks. Eine Transition gibt die Bedingung an,unter der die SPS von einem Schritt zum nächsten weitergeht.Zu einer Transition gehört immer eine Transitionsbedingung. Diese kann eine boolesche Variable oderein Code in AWL, ST, KOP oder FBS sein. Folglich können zwei Arten von Transitionen in ASverwendet werden: Lupen und direkte Verbindungen.Lupen sind Transitionen, die einen eigenen Code als Transitionsbedingung besitzen.Direkte Verbindungen sind Transitionen mit Variablen oder FBS-Objekten, sie besitzen keineneigenen Code. Transitionen werden als horizontale Linien (Querbalken) dargestellt.

7.5.3. AktionsblöckeAktionsblöcke sind grundlegende Elemente in AS-Netzwerken. Sie bestehen aus einer Aktion unddem dazugehörigen Qualifier. Ein Aktionsblock ist immer einem Schritt zugeordnet.Eine Aktion kann eine boolesche Variable oder ein in AWL, ST, KOP oder FBS editierter Code sein.Wenn die Aktion einen eigenen Code besitzt, spricht man von einer Lupe. Eine Aktion besitzt immereinen zugeordneten Qualifier.

Weitere Erläuterungen finden Sie unter der entsprechenden Programmhilfe.