SPS Programmierung nach IEC 61131-3 mit … · Text, Abbildungen und Programme wurden mit größter...

23
Jochen Petry SPS Programmierung nach IEC 61131-3 mit MULTIPROG 4.0 Jochen Petry 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 SPS- Programmierer 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 SPS- Programmierung geschrieben. Seit seiner Pensionierung im Jahre 2004 ist er freiberuflich beratend in der Automatisierungstechnik tätig.

Transcript of SPS Programmierung nach IEC 61131-3 mit … · Text, Abbildungen und Programme wurden mit größter...

Jochen Petry

SPS Programmierung nach IEC 61131-3 mit MULTIPROG 4.0

Jochen Petry 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 SPS-Programmierer 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 SPS-Programmierung geschrieben. Seit seiner Pensionierung im Jahre 2004 ist er freiberuflich beratend in der Automatisierungstechnik tätig.

Inhaltsverzeichnis Vorwort 3

Kapitel 1 Programmiersystem MULTIPROG

1.1 SPS-Programmiersystem 27 1.1.1 Norm IEC 61131 27

1.2 Programmiersystem MULTIPROG 28 1.2.1 Offline Programmierung 29

1.2.2 Sprachelemente 29

1.2.3 Darstellung von Variablen 30

1.2.3.1 Variablen Deklaration 32

1.2.3.2 Absolute Adresse 32

1.2.3.3 Literale 32

1.2.3.4 Direkt benannte Speicherstellen im E/A-Bereich 32

1.2.3.5 Direkt benannte Speicherstellen im Merkerbereich 33

1.2.4 Datentypen 33

1.3 Dialekte 34 1.3.1 Anweisungsliste IL (Instruction List) 34

1.3.1.1 Operatoren 35

1.3.1.2 Operanden 35

1.3.1.3 Verwendung von Funktionen und Funktionsbau- 36 steinen

1.3.1.4 Deklarationen von Funktionsbausteinen und DFBs 36

Inhaltsverzeichnis 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 42 Zuweisung)

1.3.2.4 Auswahlanweisungen, Wiederholungs- 43 anweisungen

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.3.2.4.3.2 WHILE- und REPEAT- 47 Anweisungen

1.3.2.4.3.3 EXIT- Anweisung 48

1.3.2.5 Programmierbeispiele in ST (Anwendung Auswahl-/Wiederholung) 49

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.4 Funktionsplan FBD (Function Block Diagram) 57

1.3.4.1 Funktionsbausteinsprache FBS 57 1.3.4.1.1 Elementare Funktionen und – 57 Funktionsbausteine

Inhaltsverzeichnis

1.3.4.2 Programmierbeispiel FBS 58

1.3.5 Ablaufsprache SFC (Sequential Function Chart) 60

1.4 Übersetzbarkeit von IEC-Sprachen 62

1.5 Anwendereigene Funktionsblöcke (DFBs) 63 1.5.1 Beispiel: Initialisierung (Richtimpuls Ri) 64

1.5.2 Bausteinkopf 64

1.5.3 Bausteinrumpf 64

1.6 Simulation, Grafische Aufzeichnung 65 1.6.1 Offline-Simulation 65

1.6.2 Online-Betrieb, Darstellung Monitoring 66

1.7 Checkliste zur Projekterstellung 68 1.7.1 Erzeugen eines neuen Projekts 69

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 86

1.7.4.1 Starten des Projekts 88

1.7.4.2 Stop des Projekts 88

1.7.5 Debuggen des Projekts 88

Inhaltsverzeichnis 1.7.5.1 Schritt 1: Debug-Modus 88

1.7.6 Programm in SPS übertragen und starten 91

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

1.8.2 Aufgabe 2: Vereinfachte Warnanfahrsteuerung 99

1.8.2.1 Lösung mit AKF (FUP, AWL) 100

1.8.2.2 Lösung mit Concept (FBS, IL) 101

1.8.2.3 Lösung mit MULTIPROG (FBS, IL) 103

Kapitel 2

Elementare Funktionen und FunktionensBausteine, EFBs

2.1 Programmierung von logischen, Zeit-, Zähl-, Vergleichs-, arithmeti-schen-, 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 2.1.3 Antivalenz, Äquivalenz 108

2.1.3.1 Exclusiv-ODER (Antivalenz) 108

2.1.3.2 Äquivalenz 109

2.1.4 Selbsthaltung als Speicherfunktion 110

2.1.4.1 Selbsthaltungen mit dominierendem AUS 111

Inhaltsverzeichnis 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 – 117 Rücksetzeingang drahtbruchsicher

2.1.5.4 SR-Speicher, Setzen dominant – 119 Rücksetzeingang drahtbruchsicher

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) 151

2.1.6.4 Speichernde Einschaltverzögerung 152

2.1.6.5 Ausschaltverzögerung (TOF) 154

2.1.6.6 Blinktaktgeber, Tastverhältnis Puls/Pause 155 einstellbar

2.1.6.7 Vereinfachte Warnanfahrsteuerung 157

2.1.6.8 Verzögerte Motorabschaltung 159

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, 168 automatischer Betrieb

2.1.7 Zählfunktionen 171

2.1.7.1 Zähler, vorwärts mit Grundstellung 172 (0 bis 32 767)

2.1.7.2 Zähler, rückwärts mit Grundstellung 173 (32 767 bis 0)

2.1.7.3 Zähler, vor-, rückwärts mit Grundstellung 175 (-32 768 bis +32 767)

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

2.1.8.7 Anwendungen Speicher, Zeiten, Zähler 186 und Vergleicher

2.1.8.7.1 Schlupfüberwachung 186

2.1.8.7.2 Stillstandsüberwachung 189

2.1.8.7.3 Drehrichtungserkennung 192

2.1.8.7.4 Automatische Überwachung 194 eines Parkhauses

2.1.9 Wischkontakt und Flankenauswertung 198

Inhaltsverzeichnis 2.1.9.1 Erkennen einer ansteigenden Flanke 198 (Einschaltwischer)

2.1.9.2 Erkennen einer fallenden Flanke 199 (Ausschaltwischer)

2.1.9.3 Erkennen einer steigenden und 200 fallenden Flanke

2.1.9.4 Automatische Jalousien-Steuerung mit 201 Signalisierung

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 212

2.1.10.4 Decodierer Dual nach (1 aus 8) für 1 Tetrade 215

2.1.11 Schieberegister 219

2.1.11.1 Einrichtungs-Schieberegister, offen, vorwärts 219 (4 Stufen)

2.1.11.2 Einrichtungs-Schieberegister, offen, rückwärts 223 (4 Stufen)

2.1.11.3 Zweirichtungs-Schieberegister, offen 228 (4 Stufen)

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.2.5 Division INT (Ergebnis gebrochen) 238

Inhaltsverzeichnis 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

2.3.3 Natürlicher Logarithmus LN 247

2.3.3.1 Natürlicher Logarithmus (zur Basis e) 247

2.3.4 Logarithmus LOG 247

2.3.4.1 Logarithmus (zur Basis 10) 247

2.3.5 Exponentialfunktionen EXP, EXPT 248

2.3.5.1 Potenzieren (e hoch x), EXP 248

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.3.8.1 Tangens (Eingabe im Bogenmaß) 253

2.3.9 Arcus Sinus ASIN 254

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 Gesamtwider- 259 stand Z (Ohm)

2.4 Selektions-Funktionen 261

2.4.1 Begrenzung LIMIT 261

2.4.1.1 Begrenzung (IN>=MN)&(IN<=MX) 261

2.4.1.2 Begrenzung (IN>MX) 262

2.4.1.3 Begrenzung (IN>MN) 262

2.4.2 Maximalwert-Auswahl MAX 263

2.4.2.1 Maximalwert-Auswahl (MAX(IN1, 263 IN2, …INn))

2.4.2.2 Maximalwert-Auswahl BOOL 264

2.4.3 Minimalwert-Auswahl MIN 265

2.4.3.1 Minimalwert-Auswahl BOOL 265

2.4.3.2 Minimalwert-Auswahl (MIN (IN1, 266 IN2, …INn))

2.4.4 Binäre Auswahl SEL 267

2.4.4.1 Binäre Auswahl BOOL 267

Inhaltsverzeichnis 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.5.3.1 Sprung bei 1-Signal (JMPC) 285

2.5.3.2 Sprung bei 0-Signal (JMPCN) 286

2.5.3.3 Unbedingter Sprung (JMP) 287

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

2.6.3 Konvertierung REAL nach DINT, Darstellung FBS 291

2.6.4 Konvertierung DINT nach REAL, Darstellung FBS 292

2.6.5 Konvertierung TIME nach DINT, Darstellung FBS 293

2.6.6 Konvertierung DINT nach TIME, Darstellung FBS 294

2.6.7 Konvertierung BIT nach INT, Darstellung ST 295

2.6.8 Konvertierung INT nach BIT, Darstellung ST 298

Inhaltsverzeichnis 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) 311

3.1.1 Haltegliedsteuerung 1 312

3.1.1.1 Querübersetzung FBS nach IL/LD 313

3.1.2 Haltegliedsteuerung 2 316

3.1.3 Drehstrommotor- Umkehrschützschaltung 318

3.1.4 Drehstrommotor- Umkehrschützschaltung, 321

Gegenstrombremsung mit Tastschaltern

3.1.5 Verriegelungsschaltung mit Tastschalter- 323 Verriegelung

3.1.6 Handbetätigte Folgesteuerung 325

3.1.7 Handbetätigte, verriegelte Folgeschaltung 327

3.1.8 Drehstrommotor- Wendeschützschaltung 329

3.1.9 Drehstrommotor- Schützschaltung für zwei 332 Umdrehungsfrequenzen

Inhaltsverzeichnis 3.1.10 Haltegliedsteuerung mit Zweihand- Ein- und 334 Zweihand- Aus-Verriegelung

3.1.11 Polumschaltschütz für Dahlanderschaltung 336

3.1.12 Polumschalt- Wendeschaltung 340

3.1.13 Polumschaltung für zwei getrennte Wicklungen, 344 Zwangsfolge von langsam auf schnell

3.1.14 Polumschaltung für zwei getrennte Wicklungen, 346 Haltbetätigung beim Umschalten von schnell auf langsam

3.1.15 Polumschaltschütz für drei Drehzahlen 349

3.1.16 Polumschaltung für vier Drehzahlen 353

3.1.17 Bremswächterschaltung- Gegenstrombremsung 358

3.1.18 Hebebühnensteuerung 361

3.1.19 Steuerungen mit RS-Speichern, Schützschaltung mit 363 Kontaktverriegelungen

3.1.20 Handbetätigte Folgeschaltung 365

3.1.21 Steuerungen mit Zeitfunktion, zeitverzögertes 368 Schalten von Sichtmeldern

3.1.22 Folgeschaltung mit automatischer Ausschaltung 370

3.1.23 Drehstrommotor- Schützschaltung für Sanftanlauf 372

3.1.24 Schiebetürsteuerung 375

3.1.25 Stern- Dreieck-Anlassschaltung für zwei 378 Drehrichtungen eines Drehstrommotors

Inhaltsverzeichnis 3.1.26 Schützschaltung für Schweranlauf eines 382 Drehstrommotors

Kapitel 4 Derived Funktionen und -Funktionsbausteine, DFBs

(Lösungen in FBS, IL bzw. ST)

4.1 Einleitung 385

4.1.1 Aufbau von Funktionsblöcken 385

4.2 Initialisierung 386

4.2.1 Initialisierungs-Baustein, INIT 387

4.3 Auswahlschaltungen 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 395

4.3.7 Auswahl-Baustein (n aus m), n <= 8, 397 m <= 4, AUSW8

4.3.8 Auswahl-Baustein (n aus 10), n <= 10, AUSW9 401

4.3.9 Auswahl-Funktion, SEL_ANY 406

Inhaltsverzeichnis 4.3.10 Multiplexer, MUX_INT 407

4.4 Code-Umsetzer, Codierer, Decodierer 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, 425 COUM2

4.4.7 Code-Umsetzer Hexadezimal (DWORD) nach BCD, 430 COUM3

4.5 Steuerbausteine 436

4.5.1 Steuerbaustein, STB1 436

4.5.1.1 Ansteuerungen eines Stellgliedes mit 439 ektronischer Selbsthaltung, Zweiknopfbedienung

4.5.1.2 Ansteuerungen eines Stellgliedes mit 440 elektronischer Selbsthaltung, Einknopfbedienung

4.5.2 Steuerbaustein, STB2 443

4.5.2.1 Ansteuerungen eines Stellgliedes ohne 446 Speicherverhalten

4.5.2.2 Ansteuerungen eines Impulsmagnetventils 448 ohne Mittelstellung

Inhaltsverzeichnis 4.5.3 Steuerbaustein, STB3 451

4.5.3.1 Ansteuerungen motorischer Antriebe 455

4.5.3.2 Ansteuerungen eines Stellmotors mit Halt 459 in Mittelstellung 4.6 Signalisierungs- und Meldebausteine 465 4.6.1 Signalisierungsbaustein, SIG1 465

4.6.2 Signalisierungsbaustein, SIG2 469

4.6.3 Meldebaustein, Neuwertmeldung mit 1 Blinkfrequenz, 476 MELN1

4.6.4 Meldebaustein, Neuwertmeldung mit 2 Blinkfrequenzen, 482 MELN2

4.6.5 Meldebaustein, Erstwertmeldung mit 2 Blinkfrequenzen, 487 MELE1

4.7 Taktgeber 492

4.7.1 Taktgeber, mit Freigabe, Tastverhältnis einstellbar, 492 BLINK

4.7.2 Taktgeber, mit Freigabe, Tastverhältnis 1:1, 493 BLINK1

4.8 Stromstossrelais-Funktionen 496

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 500

4.9.1 Addierendes Langzeitglied, ALAN 500

Inhaltsverzeichnis 4.9.2 Einschalt- und Ausschaltverzögerung mit 1 Timer, 502 EATO

4.9.3 Externe Timer-Sollwertvorgabe, WORD_TO_TIME 504

4.10 Frequenzteiler, -Vervielfacher 506

4.10.1 Einstellbarer Frequenzteiler, UNTF 506

4.10.2 Einstellbarer Impulsvervielfacher, IMPV 507

4.11 Verriegelungsbausteine 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.12.1 Zähler, DINT, vorwärts mit Grundstellung, ZVG 520 (0 bis 2 147 483 647)

4.12.2 Zähler, DINT, rückwärts mit Grundstellung, ZRG 522 (2 147 483 647 bis 0)

4.12.3 Zähler, DINT, vor/rück mit Grundstellung, ZVRG 523 (0 bis 2 147 483 647/2 147 483 647 bis 0)

4.12.4 Zähler, INT, vorwärts, SRBV 526

Inhaltsverzeichnis 4.13 Schieberegister 529

4.13.1 Schieberegister, 12 Stufen, ESRV 530 (vorwärts mit serieller Eingabe und paralleler Ausgabe, offen) 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 537 (vor/rück mit serieller Eingabe und paralleler Ausgabe, offen) 4.13.4 Schieberegister, 12 Stufen, ESRVW 541 (vorwärts mit paralleler Eingabe und serieller Ausgabe, offen) 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 549 (vor/rück mit paralleler Eingabe und serieller Ausgabe, offen) 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 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 4.15 Trigonometrische Funktionen 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

Inhaltsverzeichnis 4.16.12 Lauflicht, LAUFLICHT 621

4.16.13 Änderungsmeldung, AEM 627

4.16.14 Geberkontrolle, GEBER 628

4.16.15 Extrahier-Funktion, ByteExtr 631

4.16.16 Vergleichs-Funktion, GT_ANY 633

4.16.17 Zinseszins-Funktion, Z_ZINS 634

4.17 Temperatur-Umrechnungen 635

4.17.1 Fahrenheit nach Celsius, F_TO_C 635

4.17.2 Fahrenheit nach Kelvin, F_TO_K 636

4.17.3 Celsius nach Fahrenheit, C_TO_F 637

4.17.4 Celsius nach Kelvin, C_TO_K 638

4.17.5 Reaumur nach Kelvin, REAM_TO_K 639

4.17.6 Rankine nach Kelvin, R_TO_K 639

4.17.7 Kelvin nach Fahrenheit, K_TO_F 640

4.17.8 Kelvin nach Celsius, K_TO_C 641

Kapitel 5 Programmierung von Ablaufsteuerungen 643

5.1 Elemente der Ablaufsprache SFC 644

5.1.1 Schritt 645

Inhaltsverzeichnis 5.1.2 Transitionen und Transitionsbedingungen 645

51.3 Wirkverbindungen 646

5.1.4 Kettenstrukturen 646

5.1.5 Den Schritten zugeordnete Befehle (Aktionen) 648

5.1.6 Generelles zur Programmierung von 656

Ablaufsteuerungen mit MULTIPROG

5.2 Anwenderbeispiele Ablaufsteuerungen 657

5.2.1 Palettenübersetzbühne 657

5.2.2 Fördereinrichtung 660

5.2.3 Einfache Längenmess – und Sortieranlage 663

5.2.4 Steuerung eines Spritzautomaten 666

5.2.5 Herstellung eines Fertigproduktes 670

Sachregister 675

Literaturverzeichnis 681

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.

1.2 Programmiersystem MULTIPROG 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.

Kapitel 1 Programmiersystem MULTIPROG 1.1 SPS-Programmiersystem

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) ⇔ Structured Text (ST) Programmiersprachen gemäß IEC 61131-3

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 PC-Simulator 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: 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: 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: Grafische Aufzeichnung, Darstellung FBS Das Programm enthält Funktionen und Funktionsbausteine. Blaue Linien = 0 Signal, rote Linien = 1 Signal

Programm- Editoren

Bild: UND vor ODER, Darstellung FBS

Bild: UND vor ODER, Darstellung IL

Bild: UND vor ODER, Darstellung ST, Variante 1

Bild: UND vor ODER, Darstellung ST, Variante 2

2.1.2 ODER vor UND-Funktion Das Schütz K2 zieht an, wenn S1 ODER S2 betätigt wird UND S3 ODER S4 betätigt wird.

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 K2 AT %QX0.2:BOOL; (*Schütz K2*) END_VAR

Kapitel 2 Elementare Funktionen und –Funktionsbausteine, EFBs

Hinweis zur Variablen Deklaration:

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 Variablen-Arbeitsblatt zu erstellen.

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. 2.1.1 UND vor ODER-Funktion Das Schütz K1 zieht an, wenn S1 UND S2 ODER S3 UND S4 betätigt werden.

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

Programm- Editoren

Bild: ODER vor UND, Darstellung FBS

Bild: ODER vor UND, Darstellung IL

Bild: ODER vor UND, Darstellung ST

2.1.3 Antivalenz, Äquivalenz 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.

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 Programm- Editoren

Bild: Antivalenz, Darstellung FBS

Bild: Antivalenz, Darstellung IL

Bild: Antivalenz, Darstellung ST 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 - 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.

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.

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 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.

Stromlaufplan Steuerung

Variablen Deklaration FBS 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

Bild: Hebebühnensteuerung, FBS

Bild: Hebebühnensteuerung, LD 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.

Stromlaufplan Steuerung

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

Programmdokument, Dialekt FBS

Bild: Steuerung mit RS-Speicher, Schützschaltung mit Kontaktverriegelung, FBS

Bild: Steuerung mit RS-Speicher, Schützschaltung mit Kontaktverriegelung, LD

Bausteinrumpf Der Bausteinrumpf beinhaltet das eigentliche Anwender-Programm des Funktionsblocks.

Aufbau eines DFBs: Bausteinkopf Bausteinrumpf (hier in ST)

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. SR-Speichern 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 INIT

Kapitel 4 Derived Funktionen und FunktionsBausteine, DFBs 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. 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.

Bausteinkopf INIT

Parameter-Beschreibung

Bausteinrumpf INIT

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.

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 AUSW1

Parameter-Beschreibung

Bausteinrumpf AUSW1

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 1-Signal. Der aktuelle Zählerstand wird am Ausgang CV, Datentyp DINT, angezeigt.

Parameter-Beschreibung

Bausteinkopf ZVG

Bausteinrumpf ZVG

Parametrierung Aktualparameter

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) 1-Signal, 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) 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.

Parameter-Beschreibung

Kapitel 5 Programmieren von Ablaufsteuerungen

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.)

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.

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 IEC-Norm 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.

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 %QX1.4 BOOL Hubtisch abwärts, Ventil 3

Ablaufstruktur Palettenübersetzbühne 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.

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.

Technologieschema

Zuordnungsliste Zuordnungsliste

Symbol absolut Typ Kommentar

B1 %IX1.1 BOOL Starttaster, Schließer

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