Programmierung nach
IEC 61131
02.12.2015
Seite 1
Inhalt
 Ziele
und Inhalte der IEC 61131
 Programmiertools
 Modelle der IEC 61131
 Variablen und Datentypen
 Programmorganisation
02.12.2015
Seite 2
Lernziele IEC 61131
 Sie kennen die wesentlichen Ziele und Inhalte und
können sie mit eigenen Worten erläutern
 Sie die Architektur eines Systemes nach IEC 61131
 Sie kennen die 3 Programmorganisationseinheiten
und die Datenorganisation (Uebungsbeispiele)
 Sie können ein einfaches Beispiel in zwei grafischen
Programmiersprachen einer SPS programmieren
02.12.2015
Seite 3
Die Erstellung und Wartung
von Programmen von
Anlagensteuerungen sind:
wesentliche
Kostenfaktoren
schwierige Unsicherheitsfaktoren
02.12.2015
Seite 4
Aspekte:
 15-30%
der Planungskosten zur
Programmierung
 hohe Folgekosten bei Problemen
 Anlageschäden
 verzögerte Inbetriebnahme
02.12.2015
Seite 5
Worin unterscheidet sich
Steuerungssoftware von 'Bürosoftware'?
Echtzeit
 oft zeitkritisch
 kompliziertes Prozessinterface
 Restart- und Resume-fähig
 viele zeitlich andauernde Aufgaben
 kaum Fehlertoleranz
 hohe Verfügbarkeit
 viele, aber einfache Funktionen

02.12.2015
Seite 6
Variablennamen:
was ist wahr?
Name
Wert
'Türe_zu' wahr
falsch
02.12.2015
Zahl logisch Bedeutung
1
wahr die Türe ist zu
0
falsch die Türe is nicht zu
(beachte:  die ist Türe
offen)
Seite 7
Bei Alarmen leider oft:
Name
Wert Zahl logisch
'Not_Aus' falsch 0 wahr
wahr
02.12.2015
1
falsch
Bedeutung
Anlage ist/wird
abgestellt
kein Not-Aus, d.h. z.B.
Normalbetrieb
Seite 8
Darstellung von
y:= A und (B oder C)
in Tabellenform:
Wahrheitstabelle
02.12.2015
Seite 9
Beispiel einer Wahrheitstabelle:
Funktion:
Werte von Werte von Werte von Ausgang y
A
B
C
y:=A&(B/C)
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
02.12.2015
Seite 10
Steuerproblem:
richtige Aktion zur
richtigen Zeit auslösen
Zeitdiagramme
02.12.2015
Seite 11
Beispiel: Einschaltverzögerung
TON
Steuersignal (Bool)
IN
Q
Verzögerungszeit (Zeit)
PT
ET
02.12.2015
verzögertes Schaltsignal ( Bool)
verstrichene Verzögerunszeit ( Zeit)
Seite 12
Zeitdiagramm:
IN
Q
ET
PT
02.12.2015
Seite 13
Entwicklung der
Programmierung von SPS
 Proprietäre
Sprachen und Softwarestrukturen
verschiedener Hersteller
 Starke Verbreitung einzelner Sprachen durch die
Dominanz der Hersteller (Siemens)
 Erste internationale Normierungsbestrebungen
(Grafcet, DIN 19239 und 2880)
02.12.2015
Seite 14
Was ist die IEC 1131?
 weltweit
einheitliche Norm für die Automation
speziell für SPS-Systeme
 anerkanntes Werk, da gemeinsam
erarbeitet(PLCopen)
 Wegweiser für zukünftige Entwicklungen
 Definition systemunabhängiger Sprachen
 ein Muss für jemanden der Automation
02.12.2015
Seite 15
Entwicklung der IEC 61131
Gründung der PLCopen 1992 als treibende Kraft
der Normierung
Ziele:




02.12.2015
Anwendung eines internationalen Standards
IEC 61131 konforme SPS anbieten und einsetzen
Definition von Konformitätskriterien
Zusammenfassung der bisherigen Erfahrungen
und Entwicklungen in der IEC 61131
Seite 16
Vorteile für Hersteller
 Gemeinsame
Entwicklung von Software
(Editoren, Programmiersystem)
 Wiederverwendbarkeit bestehender Software
durch einheitliche Programmierung
 Normgerecht - bedeutet - marktgerecht
 Integration von Modulen verschiedener
Hersteller
02.12.2015
Seite 17
Vorteile Anwender
 Einheitliche
Programmierung und Planung
verschiedener Systeme
 Minimierte Ausbildungs- und Einarbeitungskosten
 Einsatz normgerechter Komponenten bedeutet
ein erhöhtes und kalkulierbares Mass an
Sicherheit der Anlagen
02.12.2015
Seite 18
Wofür IEC 61131

Für verteilte Automatisierungssysteme
Steuerung Kommuni-
Steuerung Kommuni-
kation
Betriebssystem
Anwendung
Prozessgeräte
02.12.2015
kation
Logische
Einheit
Betriebssystem
Anwendung
Prozessgeräte
Seite 19
Was enthält die IEC 61131?
Teil 1: Generelle Uebersicht und Definitionen
damit Anwender und Hersteller die gleiche Sprache sprechen.
Teil 2: Hardware (I/O-Signale, Sicherheitsmerkmale, Umgebung)
elektrischen, mechanischen und funktionalen Merkmale
Teil 3: Programmiersprachen:
Softwaremodell, Syntax und Semantik der
Programmiersprachen und deren Darstellung
Teil 4: Anwender Informationen:
Richtlinien für den Anwender, Hilfe bei der
Lösungserabeitung
Teil 5: Kommunikationsdienste:
Kommunikation innerhalb und zwischen den einzelnen
Kommunikationspartnern einer Applikation
02.12.2015
Seite 21
Schwerpunkt Programmierung:
 Bildung
von Programmstrukturen
 Einführung abgeleiteter Strukturen, d.h.
eigene Datentypen und Steuerbibliotheken
 SPS-Programmierung grafisch oder wie in
einer Hochsprache
 Programmierung von SPS-Systemen! (wo gibt
es dies sonst noch ?)
02.12.2015
Seite 22
Modelle der IEC 61131:
 Softwaremodell
- Struktur der Software
 Kommunikationsmodell - Informationsfluss
zwischen verschiedenen Steuerungen
 Programmiermodell - Datendarstellung und
Programmiersprachen
 Hardwaremodell
02.12.2015
Seite 23
Projektverwaltung
Projektname
SPS-Parameter (Typ, Speicher)
Task
Globale Variablen
Funktionsbaustein
Funktion
Programme
02.12.2015
Seite 24
Programmiermodell
 Variablen
und Datentypen
 Programmorganisationseinheiten
 Programme
 Funktionsbausteine
 Funktionen
 Programmiersprachen
02.12.2015
Seite 25
Programmorganisationseinheiten
(POE)
 Funktion
 Funktionsbaustein
 Programm
 englische Bezeichnung:
POU (Program Organisation Units)
02.12.2015
Seite 26
Elemente einer POE
 Deklarationsteil
 Variablen
 Formalparameter und Rückgabewerte
 Externe und interne Variablen
 Anweisungsteil
 Funktion in einer Programmiersprache realisiert
02.12.2015
Seite 27
Variablen
 symbolische
Namen
 physikalischer Standort (I/O, Merker)
 Müssen dort deklariert werden, wo sie
benutzt werden.
Variablenart
02.12.2015
Bezeichner
Datentyp
Initialisierung
Seite 28
Variablenart
var
Lokale Variable
var_input
Eingangsvariabel einer POE
var_output
Ausgangsvariabel einer POE
var_external
Externe Varialbe einer POE
var_global
Global geltende Variable in
einer Konfiguration
02.12.2015
Seite 29
Datentypen
 elementare
 bool, int, float, time
 strukturierte
 enum - Aufzähltypen
 array - Felder
 structure - Datenstrukturen
02.12.2015
Seite 30
Geltungsbereich der
Variablen
 lokal:
nur in der Programmeinheit
 global: in ganzer Ressource oder Konfiguration
(lokal als extern definieren)
 gültig in den POE in denen sie deklariert sind
und in allen untergeordneten Einheiten (Eine
Variable in einem Programm gilt auch in den
Funktionsbausteinen die das Programm aufruft)
02.12.2015
Seite 31
Initialisierung
 Initialisierung
 übernimmt Wert vor letzten Stop
 übernimmt anwenderspezifischen Wert
 übernimmt voreingestellten Wert des Datentyps
Warmstart
Kaltstart
 gepufferte Variablen (RETAIN)
übernehmen letzten Wert
 andere die definierten
Anfangswerte
 alle übernehmen
Anfangswerte
02.12.2015
Seite 32
Programmiersprachen
 graphische
 KOP
 FBS
 AS
Programmiersprachen
(Kontaktplan)
(Funktionsbausteinsprache)
(Ablaufsprache )
 Textsprachen
 AWL (Anweisungsliste)
 ST
(Strukturierter Text)
02.12.2015
Seite 33
graphische Sprachen vs. Textsprachen
einfach, teilweise auch
für Laien verständlich
 Kommunikation über
Programm einfacher
 effizienter bei Inbetriebnahme und Wartung
 keine Nachdokumentation nötig
 zwingt zu Programmierdisziplin
02.12.2015

effizienter in der
Programmierung
 kleinere Dokumente in
MB
 einfacher im Umgang
mit komplexen
Datenstrukturen

Seite 34
1. Sprache: FBS
Programmierung mit Funktionen in der
Funktions-Bausteinen-Sprache:
 Variablen:
Signallinien
 Funktionen: Rechteck mit Funktionsname
und Signalverbindungsstellen
 Alle Datenverarbeitungselemente werden
als Funktionsblöcke dargestellt
02.12.2015
Seite 35
Darstellung in FBS
Funktionsblöcke
(Funktionen und Funktionsbausteine)
Linien
Variablen
(Eingang)
R1
S
>=1
OR
&
AND
Q1
Variablen
(Ausgang)
Q1
Programmierung = Netz von FB
verbunden mit Signalen
02.12.2015
Seite 36
Silo
02.12.2015
Seite 37
2. Sprache: KOP
Programmierung mit Kontaktplandarstellung und
Funktionsbausteinen, Sprache:
 Variablen:
Bezeichnung von Oeffner, Schliesser,
Spulen
 Funktionen: durch 'Stromverdrahtung' und
Funktionsbausteinen
02.12.2015
Seite 38
Beispiel KOP - Silo
Kontakte
Spulen
02.12.2015
Funktionsblöcke
Seite 39
Elemente:
Var-Name
Schalter Bedeutung
Schliesser Der Zustand der linken Verbindung wird auf
die rechte Verbindung kopiert, wenn der
Zustand der zugehörigen Variablen 'WAHR'
ist. Andernfalls ist der Zustand der rechten
Verbindung 'AUS'.
02.12.2015
Seite 40
Elemente:
Var-Name
Schalter
Oeffner
02.12.2015
Bedeutung
Der Zustand der linken Verbindung wird auf
die rechte Verbindung kopiert, wenn der
Zustand der zugehörigen Variablen 'FALSCH'
ist. Andernfalls ist der Zustand der rechten
Verbindung 'AUS'.
Seite 41
Elemente:
Var-Name
Schalter
Spule
02.12.2015
Bedeutung
Der Zustand der linken Verbindung wird auf
die zugehörige boolesche Variable und die
rechte Verbindung kopiert.
Seite 42
Elemente:
Var-Name
Schalter
negative
Spule
02.12.2015
Bedeutung
Der Zustand der linken Vebindung wird auf die
rechte Verbindung kopiert. Die Invertierung
des Zustands der linken Verbindung wird auf
die zugehörige boolesche Variable kopiert.
Seite 43
Elemente:
Var-Name
S
Schalter Bedeutung
Setzen
Der Zustand der linken Vebindung wird auf die
der Spule rechte Verbindung kopiert, wenn er wahr ist.
Die boolesche Variable wird wahr gesetzt.
02.12.2015
Seite 44
Elemente:
Var-Name
R
Schalter
Rücksetzen der
Spule
02.12.2015
Bedeutung
Der Zustand der linken Vebindung wird
negierend auf die rechte Verbindung kopiert,
wenn er wahr ist. Die zugehörige boolesche
Variable wird false gesetzt.
Seite 45
Funktion
 eine
oder mehrere Eingangsvariablen werden zu
genau einem Ausgangswert berechnet.
 Speichern intern keine Daten
 Liefert bei gleichen Eingangswerten immer das
gleicher Ergebnis
02.12.2015
Seite 46
Standardfunktionen
 vordefinierte
Funktionen
 SPS wird zu einer vollwertigen Rechnereinheit
 SPS kann auch Texte bearbeiten
 SPS kann Datentypen konvertieren
 die meisten aus Informatik bekannt
02.12.2015
Seite 47
Funktionsbaustein
 aus
einer oder mehreren Eingangsvariablen
werden mehrere Ausgangsvariablen
berechnet
 Strukturierungshilfsmittel innerhalb eines
Programmes
 Kann mehrfach genutzt werden
 Kann intern Daten speichern und muss
instanziert werden
02.12.2015
Seite 48
FB definieren
Deklaration
Anweisungen
Ergebnis muss gespeichert werden
02.12.2015
Seite 49
FB  RS-Flip-Flop
 UND-Bausteine
können das Resultat direkt
aus den Eingängen berechnen
 bei RS-Bausteinen hängt es aber noch
zusätzlich vom Wert von Q1 ab:
R1
S
>=1
OR
&
AND
Q1
Q1
02.12.2015
Seite 50
Konsequenz:
 Baustein
muss Variable zwischen zwei
Ausführungen abspeichern
 Namen gefordert
 gelöst durch Instanzennamen = gleich Pointer
auf Objekt
02.12.2015
Seite 51
Instanz:
Die Instanz ist ein individuelles Exemplar
einer Datenstruktur, verknüpft mit einem
Funktionsbaustein-Typ oder ProgrammTyp, das von einem Aufruf der zugehörigen
Operation bis zum nächsten erhalten bleibt.
02.12.2015
Seite 52
Instanzierung
Deklaration
Anwendung
02.12.2015
Seite 53
Zeitgeber: Einschaltverzögerung
T ON
Bool
IN
Q
Bool
T ime
PT
ET
T ime
IN
Q
ET
PT
02.12.2015
Seite 54
Zeitgeber: Ausschaltverzögerung
T OF
Bool
IN
Q
Bool
T ime
PT
ET
T ime
IN
Q
ET
PT
02.12.2015
Seite 55
Programm
 logische Anordnung
von Funktionen und
Funktionsbausteinen mit ihren
Verknüpfungen
 Ausführung eines Programmes kommt
durch die Zuordnung in einer Task zum
Ausdruck
 Kann Funktionen und Funktionsbausteine
aufrufen
02.12.2015
Seite 56
Ausführung der Programme:
Tasks
Ein Task fasst innerhalb einer Ressource ein oder mehrere
Programme mit gleichem Ausführungs- und Zeitverhalten
zusammen. (Wann sollen sie bearbeitet werden)
Wann, bei welchem Ereignis
Wie oft
Wie dringend
02.12.2015
Seite 57
Kommunikationsmodell
(wird nur gestreift)
 Durch
Uebergabe der Variablen bei
Funktionsaufruf
 Kommunikation über globale Variablen
 Kommunikation über SEND und RECEIVEFunktionen
 Kommunikation über Zugriffspfade
02.12.2015
Seite 59
Uebung: Selbsthaltung
• POE einrichten - Programm
• Variablen deklarieren
• mit Kontaktplan programmieren
02.12.2015
Seite 60
Aufgabe:
wie werden die folgenden Funktionen
programmiert (sie sind gegenüber der FBSDarstellung verschwunden)?
 UND
 ODER
02.12.2015
Seite 61

Funktions