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.