leseprobe - IBP

Transcrição

leseprobe - IBP
Jochen Petry
Jochen Petry
SPS Programmierung nach IEC 61131-3
mit MULTIPROG 4.0
SPS-Programmierung nach IEC 61131-3
mit MULTIPROG 4.0
Steuerungstechnik, praxisnah
• Umfangreiche Programmierbeispiele (ca. 130 Applikationen)
• Darstellung in den Planarten IL, ST, LD, FBS und SFC
• Anwendereigene Funktionen und Funktionsblöcke (ca. 100 DFBs)
• Getestet mit MULTIPROG 4.0 von KW- Soft
Text, Abbildungen und Programme wurden mit größter Sorgfalt erarbeitet. Der
Autor hat alle vorgestellten Programmbeispiele mit MULTIPROG 4.0 getestet.
Für eventuell verbliebene fehlerhafte Angaben und deren Folgen übernimmt der
Autor weder eine juristische Verantwortung noch irgendeine Haftung.
ISBN 978-3-00-022043-2
1. Auflage, 2007
Das vorliegende Buch ist insbesondere für denjenigen geeignet, dessen
Tätigkeitsbereich sich immer mehr zur softwaremäßigen
Programmerstellung gemäß IEC61131-3 hin verlagert. Der SPSProgrammierer sucht somit Anregungen, Detaillösungen oder auch fertige
Makros, die sich unproblematisch zu einer Gesamtlösung (Anlage) fügen
lassen. Diesen Forderungen wird dieses Buch in eindrucksvoller Weise
gerecht. Dabei verwendet das Buch konsequent Syntax und Semantik
(Sprachstruktur) nach IEC 61131-3.
Der Autor:
Jochen Petry, Jahrgang 1941, war nach seinem
Elektrotechnik-Studium als Systemspezialist für
VPS und SPS im Vertrieb sowie Produktmanager
SPS bei international bekannten Anbietern der
Automatisierungstechnik tätig. Nebenberuflich hat
er seit 1987 mehrere Fachbücher zum Thema SPSProgrammierung geschrieben.
Seit seiner Pensionierung im Jahre 2004 ist er
freiberuflich
beratend
in
der
Automatisierungstechnik tätig.
Inhaltsverzeichnis
Inhaltsverzeichnis
Vorwort
3
Kapitel 1
Programmiersystem MULTIPROG
1.1 SPS-Programmiersystem
1.1.1 Norm IEC 61131
27
27
1.2 Programmiersystem MULTIPROG
1.2.1 Offline Programmierung
28
29
1.3.1.5 Funktionsbaustein-Aufrufe
36
1.3.1.6 Funktions-Aufrufe
37
1.3.1.7 Programmierbeispiel in IL
38
1.3.2 Strukturierter Text ST (Structured Text)
39
1.3.2.1 Ausdrücke, Anweisungen
40
1.3.2.2 Aufruf von Funktionen, Funktionsbausteinen
41
1.3.2.3 Programmierbeispiele in ST (Anwendung
Zuweisung)
42
1.3.2.4 Auswahlanweisungen, Wiederholungsanweisungen
43
1.3.2.4.1 IF-Anweisungen
44
1.3.2.4.2 Multiauswahl CASE
45
1.3.2.4.3 Wiederholungsanweisungen
45
1.3.2.4.3.1 Zählschleife FOR
46
1.2.2 Sprachelemente
29
1.2.3 Darstellung von Variablen
30
1.2.3.1 Variablen Deklaration
32
32
1.3.2.4.3.2 WHILE- und REPEATAnweisungen
47
1.2.3.2 Absolute Adresse
1.2.3.3 Literale
32
1.3.2.4.3.3 EXIT- Anweisung
48
1.2.3.4 Direkt benannte Speicherstellen im E/A-Bereich
32
1.2.3.5 Direkt benannte Speicherstellen im Merkerbereich
33
1.3.2.5 Programmierbeispiele in ST
(Anwendung Auswahl-/Wiederholung)
49
1.2.4 Datentypen
33
1.3.3 Kontaktplan LD (Ladder Diagram)
52
1.3.3.1 LD-Kontakte, Spulen
52
1.3.3.2 Objekte
54
1.3.3.3 Funktionen und Funktionsbausteine (FFB)
55
1.3 Dialekte
1.3.1 Anweisungsliste IL (Instruction List)
34
34
1.3.1.1 Operatoren
35
1.3.1.2 Operanden
35
1.3.4 Funktionsplan FBD (Function Block Diagram)
57
1.3.1.3 Verwendung von Funktionen und Funktionsbausteinen
36
1.3.4.1 Funktionsbausteinsprache FBS
57
36
1.3.4.1.1 Elementare Funktionen und –
Funktionsbausteine
57
1.3.1.4 Deklarationen von Funktionsbausteinen und DFBs
Inhaltsverzeichnis
Inhaltsverzeichnis
1.3.4.2 Programmierbeispiel FBS
58
1.7.5.1 Schritt 1: Debug-Modus
88
1.3.5 Ablaufsprache SFC (Sequential Function Chart)
60
1.7.6 Programm in SPS übertragen und starten
91
1.4 Übersetzbarkeit von IEC-Sprachen
62
1.5 Anwendereigene Funktionsblöcke (DFBs)
1.5.1 Beispiel: Initialisierung (Richtimpuls Ri)
63
64
1.5.2 Bausteinkopf
64
1.5.3 Bausteinrumpf
64
1.6 Simulation, Grafische Aufzeichnung
1.6.1 Offline-Simulation
1.6.2 Online-Betrieb, Darstellung Monitoring
1.7 Checkliste zur Projekterstellung
1.7.1 Erzeugen eines neuen Projekts
1.8 Konvertierung vorhandener AKF- bzw. Concept-Programme nach
MULTIPROG
93
1.8.1 Aufgabe 1: Ansteuerung Rechts-/Linkslauf
93
1.8.1.1 Lösung mit AKF (FUP, KOP, AWL)
94
1.8.1.2 Lösung mit Concept (FBS, LD, IL)
95
1.8.1.3 Lösung mit MULTIPROG (FBS, LD, IL)
97
65
65
1.8.2 Aufgabe 2: Vereinfachte Warnanfahrsteuerung
99
66
1.8.2.1 Lösung mit AKF (FUP, AWL)
100
68
69
1.8.2.2 Lösung mit Concept (FBS, IL)
101
1.8.2.3 Lösung mit MULTIPROG (FBS, IL)
103
1.7.1.1 Schritt 1: Starten des Projekt-Assistenten
69
1.7.1.2 Schritt 2: Verwenden des Projekt-Assistenten
70
1.7.2 Entwickeln des FBS-Programmcodes
77
1.7.2.1 Schritt 1: Editieren eines FBS-Programms
78
1.7.2.2 Schritt 2: Deklaration der Eigenschaften
81
1.7.3 Kompilieren des Beispielprojekts
83
1.7.3.1 Schritt 1: Kompilieren des Projekts
83
1.7.4 Senden des Projektes an das Zielsystem
Kapitel 2
Elementare Funktionen und FunktionensBausteine, EFBs
2.1 Programmierung von logischen, Zeit-, Zähl-, Vergleichs-, arithmetischen-, numerischen-, trigonometrischen und Organisationsfunktionen
(Lösungen in FBS, IL und ST)
2.1.1 UND vor ODER-Funktion
106
2.1.2 ODER vor UND-Funktion
107
86
2.1.3 Antivalenz, Äquivalenz
108
1.7.4.1 Starten des Projekts
88
2.1.3.1 Exclusiv-ODER (Antivalenz)
108
1.7.4.2 Stop des Projekts
88
2.1.3.2 Äquivalenz
109
1.7.5 Debuggen des Projekts
88
2.1.4 Selbsthaltung als Speicherfunktion
110
2.1.4.1 Selbsthaltungen mit dominierendem AUS
111
Inhaltsverzeichnis
Inhaltsverzeichnis
2.1.6.9 Reversiersteuerung 1, Handsteuerung
162
2.1.6.10 Reversiersteuerung 2, Automatischer Betrieb
164
2.1.6.11 Zeitgeführte Zuschaltung von 4 Pumpen,
automatischer Betrieb
168
2.1.7 Zählfunktionen
171
2.1.7.1 Zähler, vorwärts mit Grundstellung
(0 bis 32 767)
172
2.1.7.2 Zähler, rückwärts mit Grundstellung
(32 767 bis 0)
173
2.1.7.3 Zähler, vor-, rückwärts mit Grundstellung
(-32 768 bis +32 767)
175
2.1.7.4 Incrementieren (+1), Decrementieren (-1)
177
2.1.8 Vergleichsfunktionen
179
2.1.8.1 Vergleich auf „Größer“
179
2.1.8.2 Vergleichen auf „Größer- Gleich“
180
2.1.8.3 Vergleichen auf „Gleich“
181
2.1.8.4 Vergleichen auf „Kleiner“
182
2.1.8.5 Vergleichen auf “Kleiner- Gleich“
184
2.1.8.6 Vergleichen auf „Ungleich“
185
186
151
2.1.8.7 Anwendungen Speicher, Zeiten, Zähler
und Vergleicher
2.1.6.4 Speichernde Einschaltverzögerung
152
2.1.8.7.1 Schlupfüberwachung
186
2.1.6.5 Ausschaltverzögerung (TOF)
154
2.1.8.7.2 Stillstandsüberwachung
189
2.1.6.6 Blinktaktgeber, Tastverhältnis Puls/Pause
einstellbar
155
2.1.8.7.3 Drehrichtungserkennung
192
194
2.1.6.7 Vereinfachte Warnanfahrsteuerung
157
2.1.8.7.4 Automatische Überwachung
eines Parkhauses
2.1.6.8 Verzögerte Motorabschaltung
159
2.1.9 Wischkontakt und Flankenauswertung
198
2.1.4.2 Selbsthaltungen mit dominierendem EIN
112
2.1.5 RS- bzw. SR-Speicher
113
2.1.5.1 RS-Speicher, Rücksetzen dominant
113
2.1.5.2 SR-Speicher, Setzen dominant
115
2.1.5.3 RS-Speicher, Rücksetzen dominant –
Rücksetzeingang drahtbruchsicher
117
2.1.5.4 SR-Speicher, Setzen dominant –
Rücksetzeingang drahtbruchsicher
119
2.1.5.5 Gegenseitige Verriegelung ohne direkte Umschaltung
120
2.1.5.6 Gegenseitige Verriegelung mit direkter Umschaltung
123
2.1.5.7 Binäruntersetzer 2:1
126
2.1.5.8 Behälterfüllstandssteuerung
129
2.1.5.9 Bunkersteuerung (2 von 3)
132
2.1.5.10 Tastaturspeicher
135
2.1.5.11 Schrittschaltwerk
140
2.1.5.12 Getriggerte Fortschaltung für 4 Pumpen
144
2.1.6 Zeitfunktionen
147
2.1.6.1 Impulsbildung ohne Speicherung
148
2.1.6.2 Verlängerter Impuls (TP)
149
2.1.6.3 Einschaltverzögerung (TON)
Inhaltsverzeichnis
Inhaltsverzeichnis
2.1.9.1 Erkennen einer ansteigenden Flanke
(Einschaltwischer)
198
2.1.9.2 Erkennen einer fallenden Flanke
(Ausschaltwischer)
199
2.1.9.3 Erkennen einer steigenden und
fallenden Flanke
200
2.1.9.4 Automatische Jalousien-Steuerung mit
Signalisierung
201
2.1.10 Code-Umsetzer, Codierer, Decodierer
206
2.1.10.1 Codierer (1 aus 10) nach BCD für 1 Tetrade
206
2.1.10.2 Decodierer BCD nach (1 aus 10) für 1 Tetrade
209
2.1.10.3 Codierer (1 aus 8) nach Dual für 1 Tetrade
2.2.6 Anwendereigener Funktionsbaustein DIVmREST
239
2.2.6.1 Auswertungen fehlerhafter Algorithmen
241
2.2.7 Gemischte arithmetische Rechenoperationen
242
1. Beispiel: Umrechnung von Celsius in Fahrenheit
242
2. Beispiel: Leistungsermittlung am Stromzähler
243
2.3 Numerische und trigonometrische Funktionen
245
2.3.1 Absolutwert ABS
245
2.3.2 Quadratwurzel SQRT
246
212
2.3.3 Natürlicher Logarithmus LN
247
2.1.10.4 Decodierer Dual nach (1 aus 8) für 1 Tetrade
215
2.3.3.1 Natürlicher Logarithmus (zur Basis e)
247
2.1.11 Schieberegister
219
2.3.4 Logarithmus LOG
247
2.1.11.1 Einrichtungs-Schieberegister, offen, vorwärts
(4 Stufen)
219
2.3.4.1 Logarithmus (zur Basis 10)
247
2.1.11.2 Einrichtungs-Schieberegister, offen, rückwärts
(4 Stufen)
223
2.3.5 Exponentialfunktionen EXP, EXPT
248
2.3.5.1 Potenzieren (e hoch x), EXP
248
2.1.11.3 Zweirichtungs-Schieberegister, offen
(4 Stufen)
228
2.3.5.2 Potenzieren (x hoch y), EXPT
249
2.3.6 Sinus SIN
250
2.3.6.1 Sinus (Eingabe im Bogenmaß)
250
2.3.7 Cosinus COS
251
2.3.7.1 Cosinus (Eingabe im Bogenmaß)
251
2.3.8 Tangens TAN
253
2.2 Programmierung von arithmetischen Funktionen
234
2.2.1 Addition INT (Ergebnis <= 32 767)
234
2.2.2 Subtraktion INT (Ergebnis >= 0)
235
2.2.3 Multiplikation INT (Ergebnis <= 32 767)
236
2.2.4 Division DINT (Ergebnis ganzzahlig)
237
2.3.8.1 Tangens (Eingabe im Bogenmaß)
253
2.2.5 Division INT (Ergebnis gebrochen)
238
2.3.9 Arcus Sinus ASIN
254
Inhaltsverzeichnis
Inhaltsverzeichnis
2.3.9.1 Arcus Sinus (Eingabe im Bogenmaß)
254
2.3.10 Arcus Cosinus ACOS
255
2.3.10.1 Arcus Sinus (Eingabe im Bogenmaß)
255
2.3.11 Arcus Tangens ATAN
257
2.3.11.1 Arcus Tangens (Eingabe im Bogenmaß)
257
2.3.12 Gemischte numerische Rechenoperationen
258
2.3.12.1 Beispiel 1: Bestimmung Strombilanz
258
2.3.12.2 Beispiel 2: Bestimmung Gesamtwiderstand Z (Ohm)
259
2.4 Selektions-Funktionen
261
2.4.4.2 Binäre Auswahl TIME
268
2.5 Organisatorische Funktionen
270
2.5.1 Schieben
270
2.5.1.1 Schieben, links (SHL)
270
2.5.1.2 Schieben, rechts (SHR)
275
2.5.2 Rotieren
279
2.5.2.1 Rotieren, links (ROL)
279
2.5.2.2 Rotieren, rechts (ROR)
282
2.5.3 Sprünge und Sprungmarken (Darstellung IL)
285
2.4.1 Begrenzung LIMIT
261
2.5.3.1 Sprung bei 1-Signal (JMPC)
285
2.4.1.1 Begrenzung (IN>=MN)&(IN<=MX)
261
2.5.3.2 Sprung bei 0-Signal (JMPCN)
286
2.4.1.2 Begrenzung (IN>MX)
262
2.5.3.3 Unbedingter Sprung (JMP)
287
2.4.1.3 Begrenzung (IN>MN)
262
2.4.2 Maximalwert-Auswahl MAX
263
2.4.2.1 Maximalwert-Auswahl (MAX(IN1,
IN2, …INn))
263
2.4.2.2 Maximalwert-Auswahl BOOL
2.6 Funktionen zur Typumwandlung
288
2.6.1 Konvertierung DINT nach INT, Darstellung FBS
289
2.6.2 Konvertierung INT nach DINT, Darstellung FBS
289
264
2.6.3 Konvertierung REAL nach DINT, Darstellung FBS
291
2.4.3 Minimalwert-Auswahl MIN
265
2.6.4 Konvertierung DINT nach REAL, Darstellung FBS
292
2.4.3.1 Minimalwert-Auswahl BOOL
265
2.6.5 Konvertierung TIME nach DINT, Darstellung FBS
293
2.4.3.2 Minimalwert-Auswahl (MIN (IN1,
IN2, …INn))
266
2.6.6 Konvertierung DINT nach TIME, Darstellung FBS
294
2.4.4 Binäre Auswahl SEL
267
2.6.7 Konvertierung BIT nach INT, Darstellung ST
295
2.4.4.1 Binäre Auswahl BOOL
267
2.6.8 Konvertierung INT nach BIT, Darstellung ST
298
Inhaltsverzeichnis
Inhaltsverzeichnis
3.1.10 Haltegliedsteuerung mit Zweihand- Ein- und
Zweihand- Aus-Verriegelung
334
3.1.11 Polumschaltschütz für Dahlanderschaltung
336
3.1.12 Polumschalt- Wendeschaltung
340
3.1.13 Polumschaltung für zwei getrennte Wicklungen,
Zwangsfolge von langsam auf schnell
344
3.1.14 Polumschaltung für zwei getrennte Wicklungen,
Haltbetätigung beim Umschalten von schnell auf
langsam
346
311
3.1.15 Polumschaltschütz für drei Drehzahlen
349
3.1.1 Haltegliedsteuerung 1
312
3.1.16 Polumschaltung für vier Drehzahlen
353
3.1.1.1 Querübersetzung FBS nach IL/LD
313
3.1.17 Bremswächterschaltung- Gegenstrombremsung
358
3.1.2 Haltegliedsteuerung 2
316
3.1.18 Hebebühnensteuerung
361
3.1.3 Drehstrommotor- Umkehrschützschaltung
318
363
3.1.4 Drehstrommotor- Umkehrschützschaltung,
321
3.1.19 Steuerungen mit RS-Speichern, Schützschaltung mit
Kontaktverriegelungen
3.1.20 Handbetätigte Folgeschaltung
365
2.7 Analogwert-Verarbeitung
303
2.7.1 Analog-Digital-Umsetzer
304
2.7.2 Analog-Eingabe
305
2.7.3 Digital-Analog-Umsetzer
307
2.7.3.1 Analog-Ausgabe
307
Kapitel 3
Programmierbeispiele
3.1 Standard–Schützschaltungen (Darstellung FBS und LD)
Gegenstrombremsung mit Tastschaltern
3.1.5 Verriegelungsschaltung mit TastschalterVerriegelung
323
3.1.21 Steuerungen mit Zeitfunktion, zeitverzögertes
Schalten von Sichtmeldern
368
3.1.6 Handbetätigte Folgesteuerung
325
3.1.22 Folgeschaltung mit automatischer Ausschaltung
370
3.1.7 Handbetätigte, verriegelte Folgeschaltung
327
3.1.23 Drehstrommotor- Schützschaltung für Sanftanlauf
372
3.1.8 Drehstrommotor- Wendeschützschaltung
329
3.1.24 Schiebetürsteuerung
375
3.1.9 Drehstrommotor- Schützschaltung für zwei
Umdrehungsfrequenzen
332
3.1.25 Stern- Dreieck-Anlassschaltung für zwei
Drehrichtungen eines Drehstrommotors
378
Inhaltsverzeichnis
Inhaltsverzeichnis
3.1.26 Schützschaltung für Schweranlauf eines
Drehstrommotors
382
4.3.10 Multiplexer, MUX_INT
4.4 Code-Umsetzer, Codierer, Decodierer
Kapitel 4
Derived Funktionen und -Funktionsbausteine, DFBs
407
409
4.4.1 Codierbaustein (1 aus 10) nach BCD, CODE1
409
4.4.2 Decodierbaustein BCD nach (1 aus 10), DCODE1
412
4.4.3 Codierbaustein (1 aus 8-Code) nach Dual, CODE2
415
4.4.4 Decodierbaustein Dual nach (1 aus 8), DECODE2
417
4.4.5 Code-Umsetzer BCD nach Dezimal, COUM1
420
4.4.5.1 Externe Sollwertvorgabe (Dual nach Hexadezimal)
423
4.4.6 Code-Umsetzer Hexadezimal (WORD) nach BCD,
COUM2
425
4.4.7 Code-Umsetzer Hexadezimal (DWORD) nach BCD,
COUM3
430
(Lösungen in FBS, IL bzw. ST)
4.1 Einleitung
4.1.1 Aufbau von Funktionsblöcken
4.2 Initialisierung
4.2.1 Initialisierungs-Baustein, INIT
4.3 Auswahlschaltungen
385
385
386
387
388
4.3.1 Auswahl-Baustein 1 aus 3, AUSW1
388
4.3.2 Auswahl-Baustein 1 aus 4, AUSW2
389
4.3.3 Auswahl-Baustein 1 aus 5, AUSW3
391
4.3.4 Auswahl-Baustein 2 aus 3, AUSW4
392
4.3.5 Auswahl-Baustein 2 aus 4, AUSW5
394
4.3.6 Auswahl-Baustein 2 aus 5, AUSW6
4.5 Steuerbausteine
436
4.5.1 Steuerbaustein, STB1
436
4.5.1.1 Ansteuerungen eines Stellgliedes mit
ektronischer Selbsthaltung, Zweiknopfbedienung
439
4.5.1.2 Ansteuerungen eines Stellgliedes mit
elektronischer Selbsthaltung, Einknopfbedienung
440
395
4.3.7 Auswahl-Baustein (n aus m), n <= 8,
m <= 4, AUSW8
397
4.5.2 Steuerbaustein, STB2
443
446
4.3.8 Auswahl-Baustein (n aus 10), n <= 10, AUSW9
401
4.5.2.1 Ansteuerungen eines Stellgliedes ohne
Speicherverhalten
406
4.5.2.2 Ansteuerungen eines Impulsmagnetventils
ohne Mittelstellung
448
4.3.9 Auswahl-Funktion, SEL_ANY
Inhaltsverzeichnis
Inhaltsverzeichnis
4.5.3 Steuerbaustein, STB3
451
4.5.3.1 Ansteuerungen motorischer Antriebe
455
4.5.3.2 Ansteuerungen eines Stellmotors mit Halt
in Mittelstellung
459
4.9.2 Einschalt- und Ausschaltverzögerung mit 1 Timer,
EATO
502
4.9.3 Externe Timer-Sollwertvorgabe, WORD_TO_TIME
504
4.10 Frequenzteiler, -Vervielfacher
4.6 Signalisierungs- und Meldebausteine
4.6.1 Signalisierungsbaustein, SIG1
465
4.6.2 Signalisierungsbaustein, SIG2
469
4.6.3 Meldebaustein, Neuwertmeldung mit 1 Blinkfrequenz,
MELN1
476
4.6.4 Meldebaustein, Neuwertmeldung mit 2 Blinkfrequenzen,
MELN2
482
4.6.5 Meldebaustein, Erstwertmeldung mit 2 Blinkfrequenzen,
MELE1
487
4.10.1 Einstellbarer Frequenzteiler, UNTF
506
4.10.2 Einstellbarer Impulsvervielfacher, IMPV
507
4.11 Verriegelungsbausteine
4.7 Taktgeber
506
465
492
509
4.11.1 Stillstandswächter, STST
509
4.11.2 Drehrichtungserkennung, DREH
511
4.11.3 Schlupfüberwachung, SUEB
513
4.11.4 Zweihandverriegelung, ZWEI
516
4.11.5 Stern-Dreieck-Umschaltung, SDUM
517
4.12 Zähler
520
4.7.1 Taktgeber, mit Freigabe, Tastverhältnis einstellbar,
BLINK
492
493
4.12.1 Zähler, DINT, vorwärts mit Grundstellung, ZVG
(0 bis 2 147 483 647)
520
4.7.2 Taktgeber, mit Freigabe, Tastverhältnis 1:1,
BLINK1
4.12.2 Zähler, DINT, rückwärts mit Grundstellung, ZRG
(2 147 483 647 bis 0)
522
496
4.12.3 Zähler, DINT, vor/rück mit Grundstellung, ZVRG
(0 bis 2 147 483 647/2 147 483 647 bis 0)
523
4.12.4 Zähler, INT, vorwärts, SRBV
526
4.8 Stromstossrelais-Funktionen
4.8.1 Stromstossrelais, STS1
496
4.8.2 Stromstossrelais, zeitbegrenzt, STS2
497
4.8.3 Stromstossrelais, ausschaltverzögert, STS3
498
4.9 Ein-, Ausschaltverzögerung
4.9.1 Addierendes Langzeitglied, ALAN
500
500
Inhaltsverzeichnis
Inhaltsverzeichnis
4.13 Schieberegister
4.13.1 Schieberegister, 12 Stufen, ESRV
(vorwärts mit serieller Eingabe und paralleler Ausgabe, offen)
529
530
4.13.2 Schieberegister, 12 Stufen, ESRR
533
(rückwärts mit serieller Eingabe und paralleler Ausgabe, offen)
4.13.3 Schieberegister, 12 Stufen, ZWSR
(vor/rück mit serieller Eingabe und paralleler Ausgabe, offen)
537
4.13.4 Schieberegister, 12 Stufen, ESRVW
(vorwärts mit paralleler Eingabe und serieller Ausgabe, offen)
541
4.13.5 Schieberegister, 12 Stufen, ESRRW
545
(rückwärts mit paralleler Eingabe und serieller Ausgabe, offen)
4.13.6 Schieberegister, 12 Stufen, ZSVRW
(vor/rück mit paralleler Eingabe und serieller Ausgabe, offen)
585
4.15.1 Tangens-Baustein, TAN_FB
585
4.15.2 Arcus Tangens-Baustein, ATAN_FB
586
4.15.3 Sinus-Baustein, SIN_FB
587
4.15.4 Arcus Sinus-Baustein, ASIN_FB
588
4.15.5 Cosinus-Baustein, COS_FB
589
4.15.6 Arcus Cosinus-Baustein, ACOS_FB
590
4.16 Sonderbausteine
591
4.16.1 Hysterese-Baustein, HYST
591
4.16.2 Codewandler GRAY-BIN, GRBIN
594
4.16.3 Codewandler BIN-GRAY, BINGR
595
4.16.4 Zykluszeitmessung, ZYKZ
596
4.16.5 Divisionsbaustein mit Rest, DIVmREST
599
4.16.6 Umschaltung Tipp-Dauerbetrieb, TIDA
601
4.16.7 Betriebsarten-Baustein, BART
603
4.16.8 Aktions-Baustein, AKET
609
4.16.9 Ausgabe-Baustein mit Schutzverriegelung, ASBS
612
4.16.10 Motorsteuerbaustein mit Control, MOTCON
614
4.16.11 Lauflicht, LAUFLI
619
549
4.13.7 Schieberegister, 16 Stufen, ZSVRG
553
(vor/rück mit paralleler Eingabe und serieller Ausgabe, geschlossen)
4.13.8 Schieberegister FIFO (Wort), 32 Stufen, FIFO1
558
4.13.9 Schieberegister LIFO (Wort), 32 Stufen, LIFO1
562
4.13.10 Schieberegister, 32 Bit Breite, SCHRG
565
4.14 Analogwert-Verarbeitung
4.15 Trigonometrische Funktionen
572
4.14.1 Analogwert-Eingabe, ANIN
572
4.14.2 Analogwert-Ausgabe, ANOUT
574
4.14.3 Standard-Mittelwert, STMI
577
4.14.4 Gleitender Mittelwert, GLMI
579
4.14.5 Gleitender arithmetischer Mittelwert, ARMI
582
Inhaltsverzeichnis
Inhaltsverzeichnis
5.1.2 Transitionen und Transitionsbedingungen
645
4.16.12 Lauflicht, LAUFLICHT
621
4.16.13 Änderungsmeldung, AEM
627
51.3 Wirkverbindungen
646
4.16.14 Geberkontrolle, GEBER
628
5.1.4 Kettenstrukturen
646
4.16.15 Extrahier-Funktion, ByteExtr
631
5.1.5 Den Schritten zugeordnete Befehle (Aktionen)
648
4.16.16 Vergleichs-Funktion, GT_ANY
633
5.1.6 Generelles zur Programmierung von
656
4.16.17 Zinseszins-Funktion, Z_ZINS
634
4.17 Temperatur-Umrechnungen
635
Ablaufsteuerungen mit MULTIPROG
5.2 Anwenderbeispiele Ablaufsteuerungen
657
4.17.1 Fahrenheit nach Celsius, F_TO_C
635
5.2.1 Palettenübersetzbühne
657
4.17.2 Fahrenheit nach Kelvin, F_TO_K
636
5.2.2 Fördereinrichtung
660
4.17.3 Celsius nach Fahrenheit, C_TO_F
637
5.2.3 Einfache Längenmess – und Sortieranlage
663
4.17.4 Celsius nach Kelvin, C_TO_K
638
5.2.4 Steuerung eines Spritzautomaten
666
4.17.5 Reaumur nach Kelvin, REAM_TO_K
639
5.2.5 Herstellung eines Fertigproduktes
670
4.17.6 Rankine nach Kelvin, R_TO_K
639
4.17.7 Kelvin nach Fahrenheit, K_TO_F
640
Sachregister
675
4.17.8 Kelvin nach Celsius, K_TO_C
641
Literaturverzeichnis
681
Kapitel 5
Programmierung von Ablaufsteuerungen
643
5.1 Elemente der Ablaufsprache SFC
644
5.1.1 Schritt
645
Kapitel 1
Programmiersystem MULTIPROG
1.1 SPS-Programmiersystem
1.2 Programmiersystem MULTIPROG
1.1.1 Norm IEC 61131
Technische und wirtschaftliche Anforderungen an moderne Automatisierungssysteme
lassen sich künftig nur noch erfüllen, wenn Synergieeffekte gesichert sind, d.h.
leistungsfähige Hard- und Software perfekt zusammenspielen.
Unter der Schirmherrschaft der International Electrotechnical Commission (IEC)
wurde in den letzten Jahren der Standard IEC 61131 „Programmable Controllers“
erarbeitet. Dieser Standard vereint in sich die Erfahrungen, die national in den letzten
Jahren auf dem Gebiet der SPS-Programmierung gemacht wurden.
Das Ziel der Norm IEC 61131-3 war es, eine dialektfreie Sprachfamilie mit einem
genau definierten Vokabular bereitzustellen. Dieses Ziel wurde erreicht, weil sowohl
Vertreter verschiedener SPS-Hersteller wie auch Softwarehäuser und Anwender sich
in dieser Normungsgruppe IEC konstruktiv arrangiert haben.
Die Norm IEC 61131 besteht aus fünf Teilen: Allgemeine Informationen, Ausrüstung
und
Testanforderungen,
Programmiersprachen,
Anwenderrichtlinien,
Kommunikation.
Die Teile 1 bis 3 wurden Mitte 1994 unverändert als europäische Norm EN 61131,
Teil 1 bis 3, übernommen. Somit haben sie gleichzeitig den Status einer deutschen
Norm.
Der Teil 3 (Programmiersprachen) bildet den wichtigsten Teil dieser Norm. Er
beinhaltet die leistungsfähigen Sprachen zur Strukturierung sowie die textuellen und
grafischen Sprachen:
Ablaufsprache (AS)
⇔
Sequential Function Chart (SFC)
Anweisungsliste (AWL)
⇔
Instruction List (IL)
Funktionsbausteinsprache (FBS)
⇔
Function Block Diagram (FBD)
Kontaktplan (KOP)
⇔
Ladder Diagram (LD)
Strukturierter Text (ST)
Die Norm IEC DIN EN 61131-3 wurde von den meisten SPS-Herstellern als Richtlinie
akzeptiert. Damit ist es möglich, SPS-Systeme mit gleichen Sprachelementen zu
programmieren. Die Anlagendokumentation wird transparenter, Einarbeitungszeiten und
Kosten werden reduziert.
⇔
Programmiersprachen gemäß IEC 61131-3
Structured Text (ST)
Ein Programmiersystem, das konsequent nach den Vorgaben des internationalen
Standards IEC 61131 geschrieben wurde, ist MULTIPROG V4.0 von KW-Software
GmbH. Es ermöglicht das Wieder verwenden bereits erstellter Funktionsbausteine und
den Aufbau eigener Anwenderbibliotheken. Komplexe Fremdmodule lassen sich schnell
und sicher integrieren (z.B. Ethernet Kommunikation). Das Programm hat komfortable
Suchfunktionen und umfangreiche Bibliotheken, direkte Wiederverwendung der
Anwenderdaten, frei in die Grafik implementierbare Texte und weitere Vorteile.
Bedienoberfläche
MULTIPROG arbeitet unter gewohnter Windows-Bedienoberfläche. Alle wichtigen
Manuals sind als kontextsensitive Hilfen in die Software integriert. Viele grundsätzliche
Funktionen, wie Maus, Ikonen, Toolbar, Window-Zooming oder Cut, Copy und Paste
werden rein intuitiv erfasst.
Gleiches gilt auch für die verwendeten grafischen Symbole, die vollgrafischen Editoren,
die mit ihrer kontextsensitiven Bedienung alle Anwendungen erheblich vereinfachen:
•
automatische, interaktive Installationsroutine
•
kontextsensitive Online-Help für Hardware und Software
•
IEC 61131- Bausteinbibliothek mit zusätzlichen Erweiterungen
Mehrere Fenster können simultan dargestellt werden und schaffen den Systemüberblick
für Verwaltung, Überwachung und Prozessdiagnose. Damit erfolgt die Steuerung,
Kommunikation, Prozessdiagnose und Visualisierung in einer einheitlichen
Entwicklungsumgebung.
Auch für den Betrieb der Anlage bietet MULTIPROG eine Reihe von zeitsparenden
Funktionen. Egal, in welcher Planart das Programm geschrieben wurde, der Zustand
aller Variablen und der Datenfluss werden Online angezeigt. Dies gilt auch für selbst
geschriebene oder kaskadierte Funktionsbausteine.
1.6 Simulation, Grafische Aufzeichnung
Das Simulieren des Anwenderprogramms -oder Teile dieses- ohne angeschlossene
SPS gehört zu den wesentlichen Vorteilen der modernen Steuerungstechnik. Damit
kann der Programmierer seine Applikation statt in die Steuerung in einen PCSimulator laden und somit sein Programm komfortabel komplett austesten, bevor das
Anwenderprogramm ins Zielgerät (SPS) übertragen wird.
1.6.1 Offline-Simulation, Grafische Aufzeichnung
Die Offline-Simulation zeigt boolesche Werte (0,1) in unterschiedlichen Farben an.
Zahlenwerte werden dezimal dargestellt. Mit Hilfe eines Simulators werden die
vorzugebenden Daten gesteuert bzw. die aktuellen Daten aus dem PC-Simulator
angezeigt. Während der Simulation lassen sich auch anwendereigene Funktionsblöcke
öffnen und die interne Verarbeitung animieren. Genauso farbig werden aktive
Schritte, erfüllte Transitionen, sowie unterlegte Schrittsymbole mit der Ablaufsprache
SFC dargestellt. Damit werden während der Simulation die nicht erfüllte
Übergangsbedingung und eine überschrittene Überwachungszeit angezeigt.
Bild: Programmdarstellung FBS
Das zu testende Anwenderprogramm enthält binäre Signale und Werte von Timern (Sollwerte). Die
Vorgabe der binären Signale erfolgt mittels des vorgenannten PC-Simulators, die der Sollwerte über eine
force-Tabelle.
1.6.2 Online-Betrieb, Darstellung Monitoring
Zum Zeitpunkt der dynamischen Signalspeicher-Abfrage (Darstellung „Film“) aller
Signale und Werte werden diese teils farblich, teils dezimal sichtbar gekennzeichnet.
Die Farbe „Blau“ steht für 0-Signal, die Farbe „Rot“ zeigt 1-Signal. Werte (z. B.
Istwerte von Zählern oder Timern) werden dezimal (grün) dargestellt.
Bild: PC-I/O-Simulator
Die funktionsbedingten erforderlichen Prozesssignale werden offline (z. B. TRUE, FALSE) vorgegeben.
Danach erfolgt der Programmstart und die Übernahme der gesteuerten Werte. Entsprechend reagieren die
Ausgänge.
Bild: Grafische Aufzeichnung, Darstellung FBS
Das Programm enthält Funktionen und Funktionsbausteine.
Blaue Linien = 0 Signal, rote Linien = 1 Signal
Kapitel 2
Elementare Funktionen und –
Funktionsbausteine, EFBs
Programm- Editoren
Hinweis zur Variablen Deklaration:
Bild: UND vor ODER, Darstellung FBS
Bei den Beispielen in den Kapiteln 2 bis 5 wurde darauf verzichtet, auf die
Deklaration von Variablen und die Instanzierung von Funktionsbausteinen explizit
einzugehen. Die syntaktisch korrekte Eingabe unter MULTIPROG wird in der
Produktbeschreibung ausführlich behandelt. Dabei hat der Anwender die Möglichkeit
die Deklaration/Instanzierung direkt beim Editieren des Code-Arbeitsblattes mit dem
Editor-Assistenten oder aber die Variablen-Deklaration zuvor in einem VariablenArbeitsblatt zu erstellen.
Bild: UND vor ODER, Darstellung IL
2 Programmierung Grundfunktionen
2.1 Programmierung von logischen-, Zeit-, Zähl-, Vergleichs-, arithme-tischen-,
numerischen-, trigonometrischen- und Organisationsfunktionen
Verknüpfungssteuerungen sind geprägt durch die Informationsverarbeitung mit
vorwiegend Booleschen Grundfunktionen wie auch Zeit- und Speicherfunktionen. Für
die programmtechnische Umsetzung eignen sich die Dialekte IL, LD, ST und FBS.
Anhand von Programmierbeispielen werden die Grundfunktionen nachfolgend
appliziert.
Bild: UND vor ODER, Darstellung ST, Variante 1
Bild: UND vor ODER, Darstellung ST, Variante 2
2.1.1 UND vor ODER-Funktion
2.1.2 ODER vor UND-Funktion
Das Schütz K1 zieht an, wenn S1 UND S2 ODER S3 UND S4 betätigt werden.
Das Schütz K2 zieht an, wenn S1 ODER S2 betätigt wird UND S3 ODER S4 betätigt
wird.
Variablen Deklaration FBS
Variablen Deklaration FBS
VAR_INPUT
S1 AT %IX0.1:BOOL; (*Schalter 1*)
S2 AT %IX0.2:BOOL; (*Schalter 2*)
S3 AT %IX0.3:BOOL; (*Schalter 3*)
S4 AT %IX0.4:BOOL; (*Schalter 4*)
END_VAR
VAR_OUTPUT
K1 AT %QX0.1:BOOL; (*Schütz K1*)
END_VAR
VAR_INPUT
S1 AT %IX0.1:BOOL; (*Schalter 1*)
S2 AT %IX0.2:BOOL; (*Schalter 2*)
S3 AT %IX0.3:BOOL; (*Schalter 3*)
S4 AT %IX0.4:BOOL; (*Schalter 4*)
END_VAR
VAR_OUTPUT
K2 AT %QX0.2:BOOL; (*Schütz K2*)
END_VAR
Programm- Editoren
Variablen Deklaration FBS
VAR_INPUT
S1 AT %IX0.1:BOOL; (*Schalter 1*)
S2 AT %IX0.2:BOOL; (*Schalter 2*)
END_VAR
VAR_OUTPUT
K3 AT %QX0.3:BOOL; (*Schütz K3*)
END_VAR
Bild: ODER vor UND, Darstellung FBS
Programm- Editoren
Bild: Antivalenz, Darstellung FBS
Bild: ODER vor UND, Darstellung IL
Bild: Antivalenz, Darstellung IL
Bild: ODER vor UND, Darstellung ST
2.1.3 Antivalenz, Äquivalenz
Bild: Antivalenz, Darstellung ST
2.1.3.1 Exclusiv-ODER (Antivalenz), XOR
Bei Signalgebern, deren Signalvalenzen zueinander antivalent (gegensätzliche
Wertigkeit) sind, spricht man von Antivalenz. Man nutzt die Antivalenz-Funktion
besonders zur externen Überwachung von Gebersignalen auf Drahtbruch. Dieses wird
dadurch erreicht, in dem die Signalgeber doppelt ausgeführt werden; z.B. Schalter mit
einem Schließer und einem Öffner.
Das Schütz K3 zieht an, wenn S1 betätigt UND S2 nicht betätigt ist ODER S1 nicht
betätigt UND S2 betätigt ist.
2.1.3.2 Äquivalenz, XORN
Bei Signalgebern, deren Signalvalenzen zueinander äquivalent (gleiche Wertigkeit)
sind, spricht man von Äquivalenz.
Das Schütz K4 zieht an, wenn S1 UND S2 betätigt sind ODER S1 UND S2 nicht
betätigt sind.
Kapitel 3
Stromlaufplan
Programmierbeispiele
3.1 Standard - Schützschaltungen
Der Sichtmelder H2 zeigt den betriebsbereiten Zustand der Anlage an. Wird einer der
Taster S3 oder S4 betätigt, zieht das Schütz K1 an, hält sich selbst und schaltet den
Sichtmelder H1 ein. Bei Betätigung von Taster S1 oder S2 fällt das Schütz K1 ab,
der Sichtmelder H1 erlischt und Sichtmelder H2 wird eingeschaltet.
- Vom Stromlaufplan zum SPS- Programm
Nachdem in den Teilen zuvor eine Einführung in die Theorie der
Speicherprogrammierbaren Steuerung unter Einbezug der Programmierung gemäß IEC
61131-3 gegeben wurde, folgt nun die programmseitige Umsetzung vom Stromlaufplan hin
zum SPS- Programm.
Die aufgeführten Beispiele sind nach steigendem Schwierigkeitsgrad ausgewählt. Sie
orientieren sich an Applikationen der herkömmlichen Relais- und Schützentechnik. Als
Planart für die SPS- Programme wurde die Funktionsbausteinsprache FBS gewählt. Daraus
wurde mit Hilfe der automatischen MULTIPROG eigenen Querübersetzung in den Dialekt
LD (Ladder Logic) konvertiert.
Experte
Durch den in MULTIPROG implementierten Konverter ist es somit prinzipiell möglich,
das SPS Anwenderprogramm –in unterschiedlichen Dialekten (FBS, LD oder IL) zu
dokumentieren. Wurde das Programm z. B. vom Projekteur alphanumerisch (in IL, weil
zeitsparender) geschrieben, so ist eine nachträgliche grafische Konvertierung nach FBS
und LD grundsätzlich möglich (Mehraufwand durch Anpassung). Hierdurch sind oftmals
spätere Forderungen der Instandhaltung nach grafischer Programm-Dokumentation, z. B.
in LD, nicht unerfüllbar. Eine automatische Konvertierung per mouse klick von ST nach
IL, FBS und LD ist jedoch nicht möglich. Ebenso kann von IL, FBS und LD nach ST nicht
automatisch konvertiert werden.
3.1.1 Haltegliedsteuerung 1
Die folgende Haltegliedsteuerung ist mit zwei Tastern für EIN und zwei Tastern für AUS
ausgeführt.
Stromlaufplan Steuerung
Variablen Deklaration FBS
VAR_INPUT
S1 AT %IX0.0:BOOL; (*Taster „Öffner“*)
S2 AT %IX0.1:BOOL; (*Taster „Öffner“*)
S3 AT %IX0.2:BOOL; (*Taster „Schliesser“*)
S4 AT %IX0.3:BOOL; (*Taster „Schliesser“*)
END_VAR
VAR_OUTPUT
K1 AT %QX0.0:BOOL; (*Schütz*)
H1 AT %QX0.1:BOOL; (*Sichtmelder (Schütz angezogen)*)
H2 AT %QX0.2:BOOL; (*Sichtmelder (betriebsbereit)*)
END_VAR
3.1.18 Hebebühnensteuerung
Variablen Deklaration FBS
Durch eine über einen Motor angetriebene Spindel wird die Plattform einer Hebebühne im
Rechtslauf des Motors nach oben und im Linkslauf nach unten bewegt. Die obere Endlage
wird durch den Endschalter S4, die untere durch den Endschalter S5 begrenzt.
Wird der Taster S2 betätigt, zieht das Schütz K1 an und hält sich so lange, bis der
Endschalter S4 betätigt wird; ebenso wird das Schütz K2 durch den Taster S3 eingeschaltet
und fällt ab, wenn der Endschalter S5 betätigt wird.
Mit dem Taster S1 kann das jeweils erregte Schütz abgeschaltet werden. Die Schütze K1,
K2 sind elektrisch gegeneinander verriegelt. Der Motor wird durch den Überstromauslöser
F1 geschützt.
VAR_INPUT
S1 AT %IX0.1:BOOL; (*Taster AUS, Öffner*)
S2 AT %IX0.2:BOOL; (*Taster EIN, heben*)
S3 AT %IX0.3:BOOL; (*Taster EIN, senken*)
S4 AT %IX0.4:BOOL; (*Endschalter „oben“*)
S5 AT %IX0.5:BOOL; (*Endschalter “unten”*)
F1 AT %IX0.6:BOOL; (*Überstromauslöser*)
END_VAR
VAR_OUTPUT
M13 :BOOL;
K1 AT %QX0.0:BOOL; (*Schütz 1 (Rechtslauf = Heben)*)
K2 AT %QX0.1:BOOL; (*Schütz 2 (Linkslauf = Senken)*)
END_VAR
Programmdokument, Dialekt FBS
Stromlaufplan Steuerung
Bild: Hebebühnensteuerung, FBS
Variablen Deklaration FBS
VAR
FBI_21_1:RS; (*RS Speicher*)
RS_21_2:RS; (*RS Speicher*)
END_VAR
VAR_INPUT
S1 AT %IX0.1:BOOL; (*Taster AUS, Öffner*)
S2 AT %IX0.2:BOOL; (*Taster EIN, Schütz 1*)
S3 AT %IX0.3:BOOL; (*Taster EIN, Schütz 2*)
END_VAR
VAR_OUTPUT
K1 AT %QX0.0:BOOL; (*Schütz 1*)
H1 AT %QX0.1:BOOL; (*Sichtmelder H1*)
K2 AT %QX0.2:BOOL; (*Schütz 2*)
H2 AT %QX0.3:BOOL; (*Sichtmelder H2*)
END_VAR
Bild: Hebebühnensteuerung, LD
Programmdokument, Dialekt FBS
3.1.19 Steuerungen mit RS- Speicher, Schützschaltung mit Kontaktverriegelung
Wird der Taster S2 betätigt, geht das Schütz K1 in Selbsthaltung und hält sich so lange, bis
der Taster S1 (AUS) aktiviert wird. Wird nun der Taster S3 betätigt, zieht das Schütz K2
an und hält sich selbst. Erst mit Betätigung des AUS- Tasters S1 wird die Speicherung von
Schütz K2 aufgehoben.
Die Umschaltung von K1 nach K2 und umgekehrt erfolgt immer über Taster S1.
Bild: Steuerung mit RS-Speicher, Schützschaltung mit Kontaktverriegelung, FBS
Bild: Steuerung mit RS-Speicher, Schützschaltung mit Kontaktverriegelung, LD
Stromlaufplan Steuerung
Kapitel 4
Derived Funktionen und
FunktionsBausteine, DFBs
Bausteinrumpf
Der Bausteinrumpf
Funktionsblocks.
beinhaltet
das
eigentliche
Anwender-Programm
des
4.1 Einleitung
Derived (abgeleitete) Funktionen und FunktionsBausteine DFB
Für anwenderseitig definierte Funktionen und -Funktionsbausteine stehen die gleichen
Editoren zur Verfügung wie sie für die Dialekte IL, ST, FBS und LD bereits vorgestellt
wurden; d. h. sie arbeiten mit dem gleichen „Look and Feel“. Somit lassen sich aus
elementaren Funktionen, Funktionsbausteinen oder bereits erzeugten DFBs neue eigene
Funktionsblöcke zusammenstellen, die dann nach dem Aufrufen wie EFBs lediglich
parametriert werden müssen. Eine Kaskadierung ist beliebig tief möglich.
Die Möglichkeit komplexe Steuerungsdetails standardisieren zu können vereinfacht den
Programmieraufwand in hohem Masse.
Programmtechnisch betrachtet stellt ein DFB ein Unterprogramm dar. Grafisch gesehen
ist ein DFB an seiner grünen Füllfarbe innerhalb seines Rahmens zu erkennen. Die im
Inneren dieses Rahmens links und rechts eingetragenen Formaloperanden sind
typischerweise Eingänge (links) und Ausgänge (rechts).
Es ist zulässig, in einem DFB ein oder mehrere schon bestehende andere DFBs
aufzurufen, wobei die aufgerufenen DFBs selbst einen oder mehrere DFBs selbst einen
oder mehrere DFBs aufrufen können. Dabei sollte eine Schachteltiefe von 7 nicht
überschritten werden.
4.1.1 Aufbau von Funktionsblöcken
Die nachfolgend aufgeführten anwendereigenen Funktionen und -Funktionsblöcke
wurden überwiegend mit Hilfe der textuellen Dialekte IL bzw. ST editiert.
Bei Aufruf eines DFBs in der Voreinstellung FBS wird dieser grafisch in Form eines
Rechtecks dargestellt. Grundsätzlich besteht ein DFB aus einem Bausteinkopf und
einem Bausteinrumpf.
Aufbau eines DFBs:
Bausteinkopf
4.2 Initialisierung
Bei Steuerungen mit Grundstellungsverhalten (Kaltstart) ist es u. U. notwendig, dass
nach dem Zuschalten der Versorgungsspannung die Ausgänge von z. B. RS- bzw. SRSpeichern definierte Zustände annehmen. Auch ist üblich, dass Zähler oder Timer bei
Programmstart vordefinierte Sollwerte (Initialwerte) annehmen. Gelöst wird dieses
Problem durch einen so genannten Richtimpuls Ri. Dieser steht nach Zuschalten der
Versorgungsspannung bzw. nach Programmstart für ein bis zwei Programmzyklen an
und „richtet“ so die Ausgänge von statischen Speichern oder übernimmt vordefinierte
Sollwerte von Zählern oder Timer in die entsprechenden Register. Danach stellt sich an
den Ausgängen von statischen Speichern, Timern und Zählern die Valenz ein, die
aufgrund der Eingangsvariablen gebildet wird.
4.2.1 Initialisierungs-Baustein INIT
Bausteinkopf
Der Bausteinkopf verfügt über alle Daten, die die PuTE benötigt, um den
Funktionsblock grafisch darstellen zu können. Dieser Bausteinkopf wird vom Anwender
im Dialog mit der PuTE definiert, d. h. der Bediener legt Namen und die
Formaloperanden fest, für die später Aktualoperanden zu vergeben sind.
Bausteinrumpf (hier in ST)
Bausteinkopf INIT
4.3.1 Auswahl-Baustein AUSW1 (1 aus 3)
Wahrheitstabelle:
Eingang IN3
Eingang IN2
Eingang IN1
Ausgang Q
0
0
1
1
0
1
0
1
1
0
0
1
Bausteinkopf INIT
Parameter-Beschreibung
Bausteinkopf AUSW1
Bausteinrumpf INIT
Parameter-Beschreibung
Bausteinrumpf AUSW1
Anwendung Richtimpuls-Bausteins INIT: Der Ausgang Q1 des RS-Speichers wird über Ri „gerichtet“. Die
Impulsdauer ist über Baustein TP auf 200ms „verlängert“.
4.3 Auswahlschaltungen
Auswahlschaltungen treten innerhalb von Verknüpfungssteuerungen relativ häufig auf. Mit
Hilfe von Wahrheitstabellen lassen sich die notwendigen Auswahllogiken einfach ableiten.
Die nachfolgenden Bausteine geben bekannte Auswahlschaltungen wider.
Anwendung Auswahl-Baustein AUSW1: Der Ausgang Q1 schaltet entsprechend vorstehender
Wahrheitstabelle.
4.12 Zähler
4.12.1 Zähler, DINT, vorwärts mit Grundstellung, ZVG, (0 bis 2 147 483 647)
Der Baustein ZVG eignet sich dazu Impulse im Bereich von 0 bis 2 147 483 647 zu zählen.
Durch einen Richtimpuls Ri oder den Löscheingang %IX1.3 auf den Rücksetzeingang
RESET des Zählers wird dieser normiert (CV = 0). Mit jeder positiven Flanke am
Zähleingang CU erhöht sich der Wert um 1. Gleichzeitig wird der aktuelle Zählwert mit
dem am Vorwahlwert (PV) parametrierten Sollwert (z. B. 9999) verglichen. Sobald der
aktuelle Wert im Zähler gleich/größer dem Vorwahlwert ist, geht der Ausgang Q auf 1Signal. Der aktuelle Zählerstand wird am Ausgang CV, Datentyp DINT, angezeigt.
Parameter-Beschreibung
Anwendung ZVG: Der aktuelle Istwert (hier 48) wird dezimal als auch BCD-codiert (über Baustein
COUM2) ausgegeben. Bei Werten > 9999 erscheint am Fehler-Ausgang AF (Baustein COUM2) 1Signal, d. h. die Werte > 9999 lassen sich nicht mehr über den Baustein COUM2 ausgeben. Der
Baustein ZVG selbst zählt max. bis 2 147 483 647 Eingangsimpulse.
4.12.2 Zähler, DINT, rückwärts mit Grundstellung, ZRG,
(2 147 483 647 bis 0)
Bausteinkopf ZVG
Mit einem Richtimpuls oder dem Lade-Eingang %IX1.4 auf den Eingang LOAD
des Zählers wird dieser mit dem Vorwahlwert PV geladen. Mit jeder positiven
Flanke am Zähleingang CD erniedrigt sich der Wert im Zähler um 1. Der
Ausgang Q des Zählers ist so lange 0, bis der aktuelle Zählerstand CV kleiner
oder gleich 0 ist.
Der Baustein ZRG eignet sich dazu Impulse im Bereich von 2 147 483 647 bis 0
zu zählen. Der aktuelle Zählerstand (hier 9997) wird am Ausgang CV, Datentyp
DINT, angezeigt.
Bausteinrumpf ZVG
Parametrierung Aktualparameter
Parameter-Beschreibung
Kapitel 5
Programmieren von
Ablaufsteuerungen
Der Ablaufteil zeigt den zeitlichen Ablauf des Prozesses. Die auszuführenden Aktionen
sind in Aktionsblöcken definiert, die rechts von den Schrittsymbolen als Rechteck
angeordnet sind.
Anmerkung:
Bisher verwendete Benennungen wie Programmsteuerung, Taktsteuerung und
Schrittsteuerung sind als missverständlich zu vermeiden.
5. Programmierung von Ablaufsteuerungen
Eine Ablaufsteuerung ist eine Steuerung, die zwangsläufig schrittweise abläuft. Für das
Weiterschalten auf den Programmässieg nächsten Schritt ist erforderlich, dass die
Weiterschaltbedingungen erfüllt sind. Die Schritte entsprechen meist den technologisch
bedingten Schritten der zu steuernden Anlage. Diese Schritte können mit Sprüngen,
Schleifen und Verzweigungen mehrfach genutzt in das Ablaufprogramm integriert werden.
Man unterscheidet zwischen prozess- und zeitgeführten Ablaufsteuerung. In einer
prozessgeführten Ablaufsteuerung hängen die Weiterschaltbedingungen nur von Signalen
aus der gesteuerten Anlage, in einer zeitgeführten Ablaufsteuerung nur von der Zeit ab.
Beide Formen der der Ablaufsteuerung kommen nur selten getrennt vor.
Zur grafischen Beschreibung einer Ablaufsteuerung dient der Funktionsplan nach DIN
40719, Teil 6 bzw. IEC848. In übersichtlicher Darstellung lassen sich Kettenstruktur,
Weiterschaltbedingungen und Verhalten der Aktionen (Befehle) aufzeigen. In der
Neufassung der IEC848 wird eine Übergangs- oder Weiterschaltbedingung (Transition)
eingeführt, um von einem zum nächsten Schritt zu gelangen.
Der Funktionsplan dient als Verständigungsmittel zwischen Steuerungsbauer und
Betreiber. Er ersetzt oder ergänzt die verbale Beschreibung einer Steuerungsaufgabe in
prozessorientierter Darstellung. Im Funktionsplan ist die Grobstruktur der
Steuerungsaufgabe dargestellt oder auch die Feinstruktur notwendiger Details.
Funktionspläne beinhalten im Wesentlichen zwei Teilaspekte einer Steuerung:
•
den Ablauf der Ausführung (linear, verzweigt, Sprung, Schleife)
•
die auszuführenden Aktionen (nicht speichernd, speichernd, zeitlich verzögert,
zeitlich begrenzt, pulsförmig, …usw.)
Ablaufsteuerungen lassen sich einfach und übersichtlich in Ablaufsprache AS gemäß
IEC 61131-3 programmieren. Die Ablaufsprache AS ist abgeleitet aus dem
Funktionsplan nach DIN 40719, Teil 6 bzw. IEC848.
Der im Programmpaket MULTIPROG enthaltene AS-Editor erfüllt die in der IECNorm 61131-3 beschriebenen Vorgaben. Die Elemente der Ablaufsprache AS werden
nachfolgend beschrieben.
5.1 Elemente der Ablaufsprache
Mit Hilfe des AS-Editors lässt sich die Funktion einer Ablaufsteuerung grafisch und
strukturiert darstellen.
Dieser Abschnitt definiert die Elemente der Ablaufsprache (AS) als Mittel der
Gliederung der internen Organisation einer SPS-Programm-Organisationseinheit, die in
einer der in dieser Norm definierten Sprache geschrieben ist; der Zweck ist dabei die
Ausführung von Ablaufsteuerungsfunktionen. Die Definitionen in diesem Abschnitt
stammen aus dem Schriftstück IEC 61131-3. Die Elemente der Ablaufsprache bieten
Hilfsmittel zur Gliederung einer SPS-Programm-Organisationseinheit in eine Menge
von Schritten und Transitionen, die durch gerichtete Verbindungen miteinander
verbunden sind. Zugehörig zu jedem Schritt ist u. U. eine Menge von Aktionen und
jeder Transition ist eine Transitionsbedingung zugehörig.
Die Ablaufsprache der IEC 61131-3 besteht somit aus elementaren Grundelementen.
Um ein Anwenderprogramm zu editieren, müssen diese Grundelemente kombiniert
werden. Das Verfahren hierzu ist durch einfache Regeln der Norm beschrieben.
5.1.1 Schritt
Um die verschiedenen Beharrungszustände der Prozess-Steuerung zu beschreiben, wird
das Konzept des Schrittes angewendet. Jeder dieser Beharrungszustände wird durch
Prozess-Informationen verursacht, für welche die Steuerung nur beim vorhergehenden
Zustand aufnahmefähig ist.
5.2 Anwenderbeispiele Ablaufsteuerungen
5.2.1 Palettenübersetzbühne
Bei der Palettenübersetzbühne wird bei Betätigung der Starttaste B1 der Sperrriegel durch
Ansteuerung geöffnet und das Förderband angesteuert. Dadurch wird die Palette vom
Rollentisch 1 auf den Hubtisch transportiert.
Bei Betätigen des Grenztasters B2 wird das Förderband angehalten und der Hubtisch
angesteuert, um die Palette nach oben zu transportieren. Gleichzeitig wird auch der
Sperrriegel wieder geschlossen (nicht mehr angesteuert).
Bei Betätigen des oberen Grenztasters B4 bleibt der Hubtisch stehen und das Förderband
wird angesteuert, um die Palette zum Rollentisch 2 zu transportieren.
Die Palette bewegt sich anschließend über den geneigten Rollentisch 2 bis zum Ende des
Tisches. Wird dabei der Grenztaster B5 betätigt, wird das Förderband abgeschaltet und der
Hubtisch nach unten bewegt. Sobald der untere Grenztaster B3 erreicht wird, bleibt der
Hubtisch stehen. Durch einen Startbefehl kann die nächste Palette auf den Hubtisch
transportiert und übergesetzt werden.
Sperriegel_Oeffnen_Y1
%QX1.1
BOOL
Sperrriegel öffnen, Ventil 1
Foerderband_EIN_K1
%QX1.2
BOOL
Förderband EIN, Schütz
Hubtisch_Aufwaerts_Y2 %QX1.3
BOOL
Hubtisch aufwärts, Ventil 2
Hubtisch_Abwaerts_Y3
BOOL
Hubtisch abwärts, Ventil 3
%QX1.4
Technologieschema
Zuordnungsliste
Zuordnungsliste
Symbol
B1
absolut
Typ
Kommentar
%IX1.1
BOOL
Starttaster, Schließer
Ablaufstruktur Palettenübersetzbühne
B2
%IX1.2
BOOL
Palette auf Förderband, Schließer
B3
%IX1.3
BOOL
Hubtisch unten, Öffner
B4
%IX1.4
BOOL
Hubtisch oben, Schließer
B5
%IX1.5
BOOL
Rollentisch 2, Schließer
Zur Lösung der gestellten Aufgabe wurde eine lineare Kette, bestehend aus 5
Schritten, verwendet. Jeder Schritt beschreibt einen bestimmten Zustand im (Teil-)
Prozess. Der Schritt 1 dieser Kette wird als Initialschritt bezeichnet.
Den Schritten sind Aktionen direkt zugeordnet. Transitionen beschreiben den
Zustandsübergang, um von einem Schritt zum Folgeschritt zu gelangen. Die
Übergangsbedingungen sind direkt in der Planart FBS editiert.