View
219
Download
1
Category
Preview:
Citation preview
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
VL Prozessleittechnik I (SS 2013)
Professur für Prozessleittechnik
DIN EN 61131 Ein vereinheitlichendes Modell einer speicherprogrammier-baren Steuerung (SPS)
Übersicht
• Einführende Beispiele der Anlagensicherung
• Speicherprogrammierbare Steuerungen
• DIN EN/IEC 61131 Modell
Architekturmodell
Programmorganisationseinheit
Variablenzugriffe
• DIN EN/IEC 61131 Sprachen
Textorientierte Fachsprachen
Grafische Fachsprachen
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 2
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 3
Beispiel 1: Turboverdichter (Stohrmann 2004, S.13)
• Abschaltung
Enddruck hoch (PZ+ 1)
Saugdruck tief (PZ- 1)
Öldruck tiefst (PS-Z-- 3)
Füllstand hoch (LZ+ 1)
Durchfluss tief (FZ- 1)
• Einschalten Hilfsölpumpe
Öldruck tief (PS-Z-- 3)
• Einschalten verriegeln
TV zu heiß (TA+Z++ 1)
Öl zu kalt (TZ- 2)
Umgang zu (GZ- 1)
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 4
Beispiel 2: Industrieofen (Strohrmann 2004, S.14)
• Betriebstemperatur unter 650°C
Keine sichere Zündung nach kurzzeitigem Ausfall vor der Bildung eines explosiven Gemisches
• Gas- und Luftmangelsicherung
PZ- 1
PZ- 2
• Flammenwächter
XZ- 1; 2 von 2
• Rückzündungsvermeidung
QZ+ 1; 1 von 2
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 5
Elemente von Sicherungseinrichtungen (Strohrmann 2004, S.16)
• Aufnehmer, Messsignalkanal, Messumformer Grenzsignalgeber, Signalverarbeitung Meldekanal mit Meldern, Auslösekanal mit Auslösern
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 6
Verbindungsprogrammierte Steuerung
•Verdrahtung von
Relais
Schütz
•Vorteil
Parallele Verarbeitung aller Signale
•Nachteil:
Verdrahtung = Programm
Änderung der Logik: Änderung der Verdrahtung notwendig!
K1
K1 K1 S1
S2
S3
S4
H1
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 7
Speicherprogrammierbare Steuerung (SPS)
•Rechner mit Ein/Ausgängen
•Rechentechnische Verknüpfung der Signale
Nur quasiparallele Abarbeitung möglich (CPU=SISD)
Änderung der Logik: Lediglich Neu-programmieren des Steuerprogramms notwendig
Automatisierungseinheit
S3 S2 S4 S1
H1
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 8
Programmbeispiel: Verknüpfung von Binärsignalen
• WENN beide Eingänge E 5.2 und E 4.7 auf 1
• DANN setze Ausgang A 8.5 auf 1
• SONST setze Ausgang A 8.5 auf 0
• A 8.5 = f(E5.2, E4.7)
• Umsetzung in AWL Programmiersprache (IEC 61131)
•LD %IX5.2 ; Lade Bitwert von Eingang 5.2
•AND %IX4.7 ; UND-Verkn. mit Eingang 4.7
•ST %QX8.5 ; Ergebnis nach Ausgang 8.5
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 10
Definition SPS DIN EN 61131 Teil 1
• „[…] Ein digital arbeitendes elektronisches System für den Einsatz in industriellen Umgebungen mit einem programmierbaren Speicher zur internen Speicherung der anwenderorientierten Steuerungsanweisungen zur Implementierung spezifischer Funktionen wie z.B. Verknüpfungssteuerung, Ablaufsteuerung, Zeit-, Zähl- und arithmetische Funktionen, um durch digitale oder analoge Eingangs- und Ausgangssignale verschiedene Arten von Maschinen und Prozessen zu steuern. […]“
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 11
I&KT rund um die SPS
SPS
Aktoren Sensoren
Feldbusse
Aktoren Sensoren
SPS
Visualisierung Prozeßrechner
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
Speicherprogrammierbare Steuerungen
• Befehlssatzarchitektur
• Funktionsweise
• Zykluszeiten
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 13
Ein Blick in das Steuergerät
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 14
Zyklische Funktionsweise (SPS-Modus)
InitialisierungProzessabbild
Ausgänge
Einlesen der EingängeProzessabbild
Eingänge
Abarbeiten von Operationen der
ProgrammbausteineTypische Bearbeitungszeiten:
1µs Bitoperationen
2µs Wortoperationen
12µs Zeit/Zähloperationen
3µs Festpunktaddition
50µs Gleitpunktaddition
Schreiben der AusgängeProzessabbild
Ausgänge
Eingänge
Ausgänge
Ausgänge
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 15
Prozessabbild
• Speicherbereich zur Aufnahme der Signalwerte der Ein- und Ausgänge
Eingabewerte werden zu Beginn eingelesen, zwischenzeitliche Änderungen während Programmzyklus ignoriert!
Ausgabewerte werden zwischengespeichert, d.h. Änderungen während der Programmabarbeitung sind nach außen nicht sichtbar!
• Manche SPSen erlauben direkten Zugriff auf die Prozesssignale
Üblicherweise langsamer als direkter Zugriff auf PA
In IEC61131 nicht standardisiert
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 16
Minimale Impulszeit, maximale Reaktionszeit
LD %IX0.1
ST %QX0.1... ...
Eingänge
lesenAusgänge
schreiben
Zykluszeit
%IX0.1
%QX0.1
Worst Case Reaktionszeit
= 2 x Zykluszeit
Impuls
zu kurz
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
Komponenten einer modularen SPS
• Übersicht
• Baugruppen
• Zykluszeiten
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 18
Modularer Aufbau einer SPS
CPU-Baugruppe
Eingangsbaugruppen
Ausgangsbaugruppen
Kommunikationsbaugruppen
Funktionsbaugruppen
Stromversorgung
optional
Programmier- gerät
Bedieneinheit
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 19
Stromversorgung
• Bereitstellung der Betriebsspannung
– 5 / 10 / 24V
• Ggf. zusätzliche Wandler für Leistungsbaugruppen
• Batterie zur Speicherpufferung
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 20
CPU-Baugruppe
•Prozessor
•Speicher
•Schlüsselschalter
•EPROM mit Programm (optional)
•Speicherkarte
•Programmierschnittstelle (optional)
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 21
Eingabebaugruppen
•Digitaleingabebaugruppen
DC 24 V, AC 120/230 V, f<50 Hz
Potentialtrennung mit Optokopplern
Entstörmaßnahmen
Lokale Anzeige mit Leuchtdioden
•Analogeingabebaugruppen
Spannung (+- 10V)
Strom (4 bis 20 mA)
Widerstand (0…300 Ohm)
Thermoelement (E, N, K)
Widerstandsthermometer ( Pt 100, …)
Auflösung 9-15 Bit + Vorzeichen, Messbereich, Grenzwerte parametrierbar
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 22
Ausgabebaugruppen
•Digitalausgabebaugruppe
Lastspannung DC24V, AC120/230V
Spezifizierte Strombelastbarkeit
Potenzialtrennung
Lokale Anzeigen
f < 100 Hz
• Analogausgabebaugruppen
Spannung (+- 10 V)
Strom (0 bis 20 mA)
Auflösung 12-15 bit
Alarmierung bei Fehlern
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 23
Kommunikationsbaugruppen
•Feldbusse (ASI, Profibus ...)
•Industrial Ethernet
•Programmierschnittstellen
•Serielle Schnittstellen
RS232, RS422, RS485
z.B. für Waagen
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 24
Funktionsbaugruppen
•Positionierbaugruppen
•Reglerbaugruppen
•Nockensteuerwerke
•Zählerbaugruppen
•Uhrenbaugruppen
•Bildauswertungsmodul
•usw.
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 25
Bedieneinheiten
•Operator Panels
•Touch Screens
•Text Displays
•Tastaturen
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 26
Programmiergeräte
•Handprogrammiergeräte:
kleinere Projekte, z.B. Fehlersuche, Kontrolle und Anpassung vor Ort
überwiegend textbasierte Programmierung
•Bildschirmprogrammiergeräte
große Funktionalität
gute Debugging-Möglichkeiten
übersichtliche Darstellung
grafische Programmierung
Simulation
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 27
Gibt es die SPS?
• Mehr als 100 verschiedene Hersteller
• Verschiedene Grundtypen
Modulare SPS: Wie vorgestellt, Bausteinkonzept
Kompakt SPS: alle Funktionen in einem Block
Slot SPS: SPS als Steckkarte eines Industrie PCs
Soft SPS: SPS als Software auf einem Industrie PC, Ankopplung an Prozess über IO-Karten
• Auswahlkriterien
Preis (Anschaffung, Projektierung, Wartung, Ersatz)
Funktionalität (Leistung µP, Baugruppen, Erweiterbarkeit, Ausfallsicherheit, Zertifizierbar)
Integration (CAE, Programmiersystem, Kommunikation)
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 28
Herstellerübersicht: Industrie PC als SPS
www.beck-ipc.com
www.festo.de
www.ferrocontrol.de
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 29
Herstellerübersicht 2
www.keyence.com www.kuhnke.de
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 30
Herstellerübersicht 3
www.schneiderelectric.com www.phoenix-contact.de
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 31
Herstellerübersicht 4
www.siemens.de
www.moeller.net
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 32
Kompatibilitätsprobleme
• Viele (>100) Hersteller von SPS, mit proprietären Standards, die Vor- und Nachteile bieten.
• Nachteil: Anwender müssen häufig mit SPS-Systemen verschiedener Hersteller gleichzeitig arbeiten können
• Schulung, Fehler, …
• Kommunikation verschiedener SPS-Systeme untereinander nur bedingt möglich
• Kompatibilität zwischen alten und neuen Systemen?
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 33
Lösungsansatz IEC 61131
• DIN EN 61131 (IEC 61131) legt in 5 Blättern eine weltweite einheitliche Basis der SPS-Technik fest.
Begriffsbestimmungen und Funktionsmerkmale
Elektrische, mechanische und funktionelle Anforderungen
Fünf Programmiersprachen
Anwenderrichtlinien für alle Projektphasen
Kommunikation von SPSen unterschiedlicher Hersteller
• Die Implementierung der Norm ist bei den Herstellern noch nicht abgeschlossen !
• PLCOpen – Gesellschaft zur Förderung herstellerübergreifender PLC-Programmierung
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 34
Ein wenig Geschichte… (John & Tiegelkamp 2001)
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 35
61131-3 SPS-Softwaremodell
Konfiguration
RessourceRessource
Task Task
Programm Programm
FB FB
Task Task
Programm Programm
FB FB
Global und direkt dargestellte Variablen und Instanz-spezifische
Initialisierungen
Zugriffspfad
Pfad des
Variablenzugriffs
Variable
Pfad der
Ausführungs-
Steuerung
FunktionsbausteinFB
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 36
61131-3 Softwaremodell
• Konfiguration:
SPS-System, enthält ggf. mehrere Ressourcen (~SPS)
• Ressource:
Signalverarbeitungsfkt incl. Sensor/Aktorschnittstellen (~CPU+IO-Bus)
Enthält ggf. mehrere Programme
• Programm
wird unter Steuerung von Tasks ausgeführt
Kann mehrere Funktionsbausteine oder andere Sprachelemente enthalten
Konfiguration
RessourceRessource
Task Task
Programm Programm
FB FB
Task Task
Programm Programm
FB FB
Global und direkt dargestellte Variablen und Instanz-spezifische
Initialisierungen
Zugriffspfad
Pfad des
Variablenzugriffs
Variable
Pfad der
Ausführungs-
Steuerung
FunktionsbausteinFB
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 37
Programmorganisationseinheiten (POE)
• Programm (PRG): Hauptprogramm
Zuordnung der Peripherie
Globalen und lokale Variablen
Kann FB und FC aufrufen
• Funktionsbaustein (FB): Baustein
Eingangs- und Ausgangsvariablen
statische Variablen (= Gedächtnis)
Kann FB und FC aufrufen
• Funktion (FC): Unterprogramm
Eingangs- und Ausgangsvariablen
Darf keine internen Zustandgrößen besitzen
Kann weitere FC aufrufen
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 38
61131-3 Softwaremodell: Starten/Stoppen von Konfiguration und/oder Ressourcen
• Starten einer Konfiguration
Schritt 1: Initialisierung der globalen Variablen
Schritt 2: Starten aller Ressourcen
• Starten einer Ressource
Schritt 1: Initialisierung aller Variablen der Res.
Schritt 2: Freigabe aller Tasks der Res.
• Stoppen einer Ressource
Sperren aller Tasks
• Stoppen einer Konfiguration
Stoppen aller Ressourcen
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 39
Anfangswerte der Variablen beim Starten eines Konfigurationselements
• Verschiedene Anfangswerte möglich:
gepufferter Wert (als das KE gestoppt wurde - RETAIN),
anwender-spezifizierten Anfangswert,
voreingestellter typ-spezifischer Anfangswert
• Regeln zur Ermittlung des Anfangswertes
Warmstart: gepufferte V nehmen gepufferte Werte an
Kaltstart: gepufferte V nehmen anw-spez Wert ein, wenn nicht definiert typ-spez Wert
Nichtgepufferte V nehmen anw-spez Wert ein, wenn nicht definiert typ-spez Wert
Eingangsvariblen werden implementierungsabhängig initialisiert
Urbas (c) 2008-2013 VL PLT-1::IEC61131 Folie 40
Wiederanlauf nach Spannungsausfall oder Störung
• Kaltstart: Alle dynamischen Daten (Variablen, Register, Zähler, Zeitglieder, Prozessabbid) werden auf definierten Zustand zurückgesetzt
Automatisch oder manuell
• Warmstart: Wiederanlauf von einem vorbestimmten Zustand des Anwendungsprogramms und vorbestimmer Menge an Rest-Daten
Status-Merker zur programmtechnischen Berücksichtigung
• Heißstart: Alle dynamischen Daten sind unverändert
Netzunabhängige Echtzeituhr, um Zeit seit Stromausfall bestimmen zu können
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
VL Prozessleittechnik 1
Professur für Prozessleittechnik
DIN EN 61131 Fachsprachen
61131-3 Programmiersprachen
• 61131-3 spezifiziert fünf Programmiersprachen zur Implementierung von POE
• Standardfunktionen und Standardfunktionsbausteine
• Typwandlungsfunktionen typ1_TO_typ2
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 42
Textbasiert Grafisch
Anweisungsliste (AWL)
Strukturierter Text (ST)
Kontaktplan (KOP)
Funktionsbausteinsprache (FBS)
Ablaufsprache (AS)
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 43
Übersicht
• Beispiel:
Setze Ausgang Q1.1 auf 1, wenn folgende Bedingungen gleichzeitig erfüllt sind:
Eingänge I0.1 oder I0.2 oder Ausgang Q1.1 gesetzt
Eingang I0.3 gesetzt
Eingang I0.4 gesetzt
• Zu realisierender boolscher Ausdruck:
Q1.1 = ( I0.1 ˅ I0.2 ˅ Q1.1) ˄ I0.3 ˄ I0.4
Lösung in den verschiedenen Fachsprachen
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 44
LD %IX0.1
OR %IX0.2
OR %QX1.1
AND %IX0.3
AND %IX0.4
ST %QX1.1
Q1.1:=(I0.1 OR I0.2 OR Q1.1)
AND I0.3
AND I0.4;
( )
I0.1
I0.2
Q1.1
I0.3 I0.4 Q1.1
>1
&
=
I0.1
I0.2
Q1.1
Q1.1
I0.3
I0.4
S0
S1
T0
T1
I0.1
I0.2 I0.3 I0.4
I0.3
I0.4
Step 0
R Q1.1
Step 1
S Q1.1
S0
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 45
Gemeinsame Elemente der Programmiersprachen
• Zeichensatz
Textelemente Spalten 002-007 der ISO/IEC-646 IRV
Zusätzlich Kleinbuchstaben (aber nicht case sensitiv), # oder £, $ oder ¤, | oder !
• Bezeichner:
Folge von Buchstaben, Ziffern und Unterstrich
Muss mit Buchstaben oder Unterstrich beginnnen
Mehrere oder angehängte Unterstriche sind nicht zulässig
Mindestens sechs Zeichen werden zur eindeutigen Unterscheidung genutzt, Maximum impl.-abh.
• Leerzeichen, Kommentare (* *), Numerische Literale, Zeichenfolgeliteral, Zeitdauer
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 46
Zahlen- und Zeitdauerliterale
• Zahlen
Unterstriche zur Strukturierung erlaubt
100_000_000 3.14159_26
Basis 2/8/16 Literale möglich
2#1111_1111 8#377 16#ff
Literale mit Typangaben
BOOL#0 UINT#16#FF
• Zeitdauern
kurzes/langes Präfix
TIME#14ms T#14.7s
mit/ohne Unterstrichen
t#5d14h12m18s3.5ms t#5d_14h_12m_18s_3.5ms
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 47
Elementare Datentypen
• Wahrheitswert:
• BOOL1
• Ganzzahl mit/ohne Vorzeichen:
• SINT8, INT16, DINT32, LINT64 / USINT8, UINT16, UDINT32, ULINT64
• Reele Zahl:
• REAL32, LREAL64
• Zeiten:
• TIME, DATE, TIME_OF_DAY/TOD, DATE_AND_TIME/DT
• Variabel lange Zeichenkette:
• STRING8, WSTRING16
• Bit-Folgen:
• BYTE8, WORD16, DWORD32, LWORD64
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 48
Hierarchie der allgemeinen Datentypen (zur Festlegung von Ein/Ausgängen von POE)
ANY
+---- ANY_DERIVED
+---- ANY_ELEMENTARY
+---- ANY_MAGNITUDE
| +---- ANY_NUM
| | +---- ANY_REAL
| | | +---- LREAL, REAL
| | |
| | +---- ANY_INT
| | +---- LINT, DINT, INT, ULINT, SINT,
| | ULDINT, UDINT, UINT, USINT
| +---- TIME
|
+---- ANY_BIT
| +---- LWORD, DWORD, WORD, BYTE, BOOL
|
+---- ANY_STRING
| +---- STRING, WSTRING
|
+---- ANY_DATE
+---- DATE_AND_TIME, DATE, TIME_OF_DAY
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 49
Abgeleitete Anwender- oder herstellerdefinierte Datentypen • TYPE Bezeichner : ... END_TYPE
• Aufzählung
– TYPE A_SIG : (SINGLE, DIFF) ; END_TYPE
• Bereich
– TYPE A_DATA : INT (-32000..32512) ; END_TYPE
• Feld
– TYPE A_8IN : ARARY [1..16] OF A_DATA; END_TYPE
• Struktur
– TYPE Bezeichner : STRUCT ... END_STRUCT; END_TYPE
– Kann geschachtelt werden
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 50
Einzelelementvariablen
& I0.1
I0.0 &
Schalter 1
Schalter 2 Q1.1 Lampe
% Q X 7.3 Adresse der Variablen
X (Einzel-)Bit-Größe kein (Einzel-)Bit-Größe B Byte(8 Bit)-Größe W Word(16 Bit)-Größe D Doppelwort(32 Bit)-Größe L Langwort(64 Bit)-Größe
Speicherort I Eingang Q Ausgang M Merker
Kennung einer direkten Variablen (Optional)
IEC 61131-3 Standardfunktionen 1/2
• Mit einer numerischen Variablen
ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN
• Arithmetische Funktionen
ADD*, MUL*, SUB, DIV, MOD, EXPT,
• Bitfolgefunktionen
SHL, SHR, ROR, ROL
• Bitweise boolsche Standardfunktionen
AND*, OR*, XOR*, NOT,
• Auswahl
SEL, MAX*, MIN*, LIMIT, MUX*,
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 51
IEC 61131-3 Standardfunktionen 2/2
• Vergleich
GT*, GE*, EQ*, LE*, LT*, NE
• Zeichenfolgen
LEN, LEFT, RIGHT, MID, CONCAT*, INSERT, DELETE, REPLACE, FIND
• Zeit (DATE, TIME, TIME_OF_DAY,DATE_AND_TIME)
ADD, SUB, CONCAT_DATE_TOD
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 52
IEC 61131-3 Standardfunktionsbausteine
• Bistabile Funktionsbausteine
SR (* vorrangig Setzen *)
RS (* vorrangig Rücksetzen *)
• Flankenerkennung
R_TRIG (* steigende Flanke *)
F_TRIG (* fallende Flanke *)
• Zähler
CTU, CTU_(D|L|UD|UL)INT (*Aufwärtszähler*)
CTD, CTD_(D|L|UD|UL)INT (*Abwärtszähler*)
• Zeitgeber
TON, TOF (* Ein/Ausschaltverzögerung *)
TP (* Puls *) Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 53
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 54
Textbasiert Grafisch
Anweisungsliste (AWL)
Strukturierter Text (ST)
Kontaktplan (KOP)
Funktionsbausteinsprache (FBS)
Ablaufsprache (AS)
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 55
Anweisungsliste AWL (engl. Instruction List, IL, STEP7: AWL)
• AWL: universell einsetzbare Maschinensprache, vergleichbar mit einem Assembler.
Nach wie vor weit verbreitet im SPS-Bereich.
wenig Möglichkeiten zur strukturierten Programmierung.
In den jeweiligen Implementierungen zum Teil unterschiedliche Operatoren und Sprachumfänge
AWLs „Virtuelle Maschine“
• AWL definiert implizit eine virtuelle Maschine mit
AKU
Variablen (funktionale Speicher)
• Zentrales Element ist der AKKUMULATOR (AKU)
Grundlegende Semantik von Operatoren
Ergebnis := Ergebnis Operator Operand
Ergebnis und Operand müssen denselben Datentyp besitzen
• Formale Syntax:
[Marke:] Operator Operand [(* Kommentar *)]
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 56
Modifzierer für Negation, Zurückstellung, bedingte Auswertung
• N: Negation
ANDN %IX2 Erg := Erg AND NOT %IX2
• (: Zurückstellung der Auswertung bis zum Operator )
AND( %IX1 Erg := Erg AND (%IX1 OR %IX2) OR %IX2
)
• C: Bedingung, Anweisung wird nur durchgeführt, wenn der vorherige Ausdruck eine boolsche 1 ergeben hatte
Achtung: Modifizierer gelten nur für bestimmte Befehle
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 57
Operatoren der Anweisungsliste
Nr. Operator N ( C Bedeutung
1 LD N Erg := Operand
2 ST N Operand := Erg
3 S, R Operand := (bool) Erg
4-7 AND,&,OR,XOR N ( Erg := Erg OP Operand
7a NOT Einerkomplement
8-11a ADD,SUB,MUL, DIV,MOD
( Erg := Erg OP Operand
12-17 GT,GE,EQ,NE,LE,LT
( Erg := Erg OP Operand
18-20 JMP, CAL, RET N C Sprung, Aufruf, Rücksprung
21 ) Bearbeitung rückgesteller OP
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 58
Funktionsaufruf
• Eintrag Funktionsname in Operatorfeld
• Argumente als nicht-formale Eingangsliste
LIMIT(1,B,5)
Argumente als formale Eingangsliste
LIMIT(
EN:=COND,
IN:=B,
MN:=1,
MX:= 5,
ENO => TEMPL
)
• Zurückgegebener Wert (RET) wird Ergebnis
ST A
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 59
Einschub: Ausführungssteuerung mit EN/ENO
• Für Funktionen und Funktionsbausteine können ein zusätzlicher Freigabeeingang EN (Enable) und Ausgang ENO (Enable Out) oder beide zur Verfügung gestellt werden
VAR_INPUT EN: BOOL := 1 ; END_VAR
VAR_OUTPUT ENO: BOOL ; END_VAR
• EN == False
Operation wird nicht ausgeführt, durch SPS ENO := False
• ENO == False
Werte der Funktionsausgänge undefiniert
Tatsächlicher Wert implementierungsabhängig
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 60
Funktionsbausteinaufruf
• Aufruf FBS mit nicht-formaler oder formaler Argumentliste
CAL C10(%IX10, FALSE, A, OUT, B)
CAL C10(
CU := %IX10,
Q=> OUT)
• Aufruf mit Laden/Speichern mit FBS-Eingangs von Argumenten Operatoren
LD A LD A
ST C10.PV PV C10
LD %IX10 LD %IX10
ST C10.CU CU C10
CAL C10
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 61
Unvollständige formale Argumentliste oder Eingangsoperatoren
• Fehlende Argumente werden von der letzten Zuweisung (ggf. Initialisierung) übernommen
Fehlende Argumente ändern sich also nicht!
• Beispiel
VAR C10: CTU;
LD 15
PV C10
• Zähler C10 wird bei steigender Flanke auf Eingang CU inkrementiert
CU ist nicht angegeben
keine Änderung, Zähler zählt nicht!
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 62
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 63
AWL Beispiel
LD %IX0.1 (* Lade Eingang 0.1 in Akku *)
OR %IX0.2 (* Akku=Akku oder Eingang 0.2 *)
OR %QX1.1 (* Akku=Akku oder Ausgang 1.1 *)
AND %IX0.3 (* Akku=Akku und Eingang 0.3 *)
AND %IX0.4 (* Akku=Akku und Eingang 0.4 *)
ST %QX1.1 (* Ausgang 1.1=Akku *)
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 64
Textbasiert Grafisch
Anweisungsliste (AWL)
Strukturierter Text (ST)
Kontaktplan (KOP)
Funktionsbausteinsprache (FBS)
Ablaufsprache (AS)
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 65
Strukturierter Text (engl. Structured Text, ST, STEP7 SCL)
• Pascal-ähnliche, höhere Programmiersprache
• Vorteile:
sehr kompakte Formulierung
abstrakte maschinenferne Befehle
übersichtlicher Aufbau durch Anweisungsblöcke
umfangreiche, komplexe Aufgaben realisierbar
• Nachteile:
Qualität des Maschinencode ist abhängig von Compiler (Übersetzer).
Bei einigen Compilern Effizienzverlust zur Laufzeit durch höhere Abstraktion (ST-Code i.d.R. langsamer als AWL-Code)
Ausdrücke
• Auswertungsreihenfolge
Rangfolge (Punkt vor Strich): A+B*C
Auswertung von links nach rechts: A+B+C
Auswertung linker Operand zuerst: SIN(A)*SIN(B)
• Boolsche Ausdrücke
Lazy Evaluation ist erlaubt: (A>B)&(C>D)
• Operatoren
Funktionsaufruf, e.g. SIN(A)
- (Negation), NOT, **, *, / MOD, +, -,
<,>,<=,>=, =, <>
&, AND, XOR, OR
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 66
Anweisungen
• Zuweisung: A := B; C := SIN(X);
• FBS-Aufruf: TMR(IN:=%IX5, PT:=T#300ms); A := TMR.Q;
• Bed. Ausführung: IF B1 THEN … ELSIF B2 THEN …
ELSE … END_IF;
• Falluntersch.: CASE B1 OF 1,5: …
7..10: …
ELSE … END_CASE;
• Wiederholung: FOR I:= 1 TO 3 DO … END_FOR;
WHILE B1 DO … END_WHILE;
REPEAT … UNTIL B1 END_REPEAT;
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 67
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 68
ST Beispiele (Viele Wege führen nach Rom)
• Beispiel 1:
Q1.1:=(I0.1 OR I0.2 OR Q1.1) AND I0.3 AND I0.4;
• Beispiel 2:
M = Q1.1; Q1.1:=0;
IF (I0.1 OR I0.2 OR M) THEN
IF (I0.3 AND I0.4) THEN
Q1.1:=1;
END_IF;
END_IF;
• Negativbeispiel 3:
Q1.1:=((I0.1+I0.2+Q1.1)>0)*I0.3*I0.4
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 69
Textbasiert Grafisch
Anweisungsliste (AWL)
Strukturierter Text (ST)
Kontaktplan (KOP)
Funktionsbausteinsprache (FBS)
Ablaufsprache (AS)
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 70
Kontaktplan KOP (engl. Ladder Diagramm, LD, STEP7: KOP)
• Funktionen werden durch Schaltsymbole aus der Elektrotechnik dargestellt:
Schließer, Öffner usw., die schaltbildähnlich zu Netzwerken zusammengefügt werden.
An den Seiten befinden sich zwei Stromschienen, zwischen denen die Relaislogik liegt (90° Drehung zur Anpassung an Computer/Textschreiben)
• Programmiersprache beschränkt sich im Wesentlichen auf boolsche Signale
Reihenschaltung: UND
Parallelschaltung: ODER
Negation: Arbeitskontakt / Ruhekontakt
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 71
KOP Beispiel
( ) I0.1
I0.2
Q1.1
I0.3 I0.4 Q1.1
Eingang: Schaltkontakt --| |--
Ausgang: Relaisspule --( )--
Negation: --|/|--
--(/)--
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 72
Textbasiert Grafisch
Anweisungsliste (AWL)
Strukturierter Text (ST)
Kontaktplan (KOP)
Funktionsbausteinsprache
Ablaufsprache (AS)
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 73
Funktionsbausteinsprache FBS (engl. Function Block Language, FB, STEP7: FUP)
• Symbolik der Digitalen-Schaltungen
• UND- , ODER-Gatter,
• INVERTIERTER Eingang, usw.
• gut strukturierte und übersichtliche Programmierung bool´scher Verknüpfungen.
• Grafisch anschauliche Programmierung des Informationsfluss von ganzzahligen und Gleitkomma-Operationen.
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 74
FBS Beispiel
>1
&
=
I0.1
I0.2
Q1.1
Q1.1
I0.3
I0.4
Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik
Textbasiert Grafisch
Anweisungsliste (AWL)
Strukturierter Text (ST)
Kontaktplan (KOP)
Funktionsbausteinsprache (FBS)
Ablaufsprache (AS)
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 76
Ablaufsprache AS (engl. Sequential Function Chart Language, SFC)
• Industrielle Automatisierungsaufgaben lassen sich häufig als Sequenz einzelner Schritte darstellen.
Die Ausführung der Schritte hängt vom Erreichen einer Bedingung ab
Verschiedene Schritte können/müssen auch parallel ausgeführt werden
• Vereinfachte Petrinetze:
Übergang von einem Schritt zu einen oder mehreren (parallelen) folgenden Schritten erfolgt durch eine Übergangsbedingung (Transition).
Aktionen und Transitionen werden in einer der vorgenannten Sprachen spezifiziert.
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 77
AS Beispiel
S0
S1
T0
T1
I0.1
I0.2 I0.3 I0.4
I0.3
I0.4
Step 0
R Q1.1
Step 1
S Q1.1
S0
Urbas (c) 2008-2013 PLT-1::IEC 61131-Fachsprachen Folie 78
Siemens STEP 7 vs. IEC 61131-3
• Aus TIA, Anhang II, IEC 61131:
Die Programmiersprachen KOP und FUP entsprechen den in der Norm DIN EN 61131-3 (int. IEC 61131-3) festgelegten Sprachen „Kontaktplan“ und „Funktionsbaustein-Sprache“. […]
AWL entspricht der in der Norm DIN EN 61131-3 (int. IEC 61131-3) festgelegten Sprache „Anweisungsliste“, wobei hinsichtlich der Operationen wesentliche Unterschiede bestehen. […]
Die Ablaufsprache S7-GRAPH entspricht der in der Norm DIN EN 61131-3 (int. IEC 61131-3) festgelegten Sprache „Sequential Function Chart“.
Zusätzlich S7-HiGraph (Zustandsgraphen)
Recommended