\ Karl-Heinz John Michael Tiegelkamp SPS-Programmierung mit IEC 1131-3 Konzepte und Programmiersprachen Anforderungen an Programmiersysteme Entscheidungshilfen Springer-Verlag Berlin Heidelberg New York London Paris Tokyo HongKong Barcelona Budapest
Inhaltsverzeichnis 1 Einleitung 9 1.1 Gegenstand des Buchs 10 1.2 Die Norm IEC 1131 12 1.2.1 Ziele und Nutzen der Norm 12 Hersteller (SPS- Hardware und -Software) 13 Anwender 13 1.2.2 Geschichte und Bestandteile 14 1.3 Organisation PLCopen 16 1.3.1 Ziele 16 1.3.2 Gremien und Arbeitsgebiete 17 1.3.3 Ergebnisse 18 Zertifizierung 18 Austauschformat für Anwenderprogramme 19 2 Bausteine der IEC 1131-3 21 2.1 Einstieg in die neue Norm 21 2.1.1 Aufbau von Bausteinen 22 Deklarationen von Variablen 22 Anweisungsteil einer POE 23 2.1.2 Einführungsbeispiel in AWL 25 2.1.3 SPS-Zuordnung 28 2.2 Die Programmorganisationseinheit (POE) 30 2.3 Elemente einer POE 32 2.3.1 Beispiel 33 2.3.2 Deklarationsteil 34 Variablenarten in POE-Typen 35 Merkmale der POE-Schnittstelle 36 Formalparameter und Rückgabewerte einer POE 37 Externer und interner Zugriff auf POE- Variablen 38 2.3.3 Anweisungsteil 40
2 Inhaltsverzeichnis 2.4 Der Funktionsbaustein 42 2.4.1 Instanziierang von Funktionsbausteinen 42 Was ist eine Instanz? 42 Instanz bedeutet Struktur" 44 Instanz bedeutet Gedächtnis" 46 2.4.2 Wiederverwendbarkeit und Objektorientierung von FB 48 2.4.3 Variablenarten in FBs 49 2.5 Die Funktion 50 2.5.1 Variablenarten in Funktionen und ihr Funktionswert 50 2.5.2 Ausführungssteuerung mitenundeno 51 2.6 Das Programm PROGRAM 54 2.7 Aufrufe von Funktionen und Funktionsbausteinen 55 2.7.1 Gegenseitiger Aufruf zwischen POEs 55 2.7.2 Rekursive Aufrufe sind unzulässig 56 2.7.3 Aufruf mit Formalparametern 58 2.7.4 Aufrufe mit fehlenden oder vertauschten Eingangsparametern 61 2.7.5 FB-Instanzen als FB-Aktualparameter 62 Beispiel für indirekten FB-Aufruf 63 FB-Instanznamen als Aktualparameter von Funktionen 65 Funktionswerte als Aktualparameter 65 2.8 POE-Merkmalsübersicht 66 3 Variablen, Datentypen und gemeinsame Elemente 67 3.1 Einfache Sprachelemente 67 3.1.1 Reservierte Schlüsselworte 69 3.2 Literale und Bezeichner 70 3.2.1 Literale 70 3.2.2 Bezeichner 72 3.3 Bedeutung von Datentypen und Variablen 74 3.3.1 Von direkten SPS-Adressen über Symbole zu Variablen 74 3.3.2 Der Datentyp bestimmt Eigenschaften der Variablen 76 3.3.3 Typgerechte Verwendung von Variablen 76 3.3.4 Automatische Abbildung von Variablen auf die SPS 77 3.4 Datentypen 78 3.4.1 Elementare Datentypen 78 3.4.2 Abgeleitete Datentypen (Typdefinition) 79 Zusätzliche Eigenschaften für Elementare Datentypen 80 Felder 83 Datenstrukturen 84 Anfangswerte bei Typdefinition 86 3.4.3 Allgemeine Datentypen 87 3.5 Variable 89 3.5.1 Eingänge, Ausgänge und Merker als besondere Variablen 90 3.5.2 Multielement-Variable: Felder und Strukturen 92 3.5.3 Zuweisung von Anfangswerten bei Programmstart 93 3.5.4 Attribute der Variablenarten 95 3.5.5 Grafische Darstellung von Variablen-Deklarationen 97
Inhaltsverzeichnis 3 4 Die neuen Programmiersprachen der IEC 1131-3 101 4.1 Anweisungsliste AWL 102 4.1.1 Anweisung in AWL 102 4.1.2 Der universelle Akkumulator 103 4.1.3 Anweisungsteil: Operatoren 106 Negierung des Operanden 106 Schachtelungsebenen durch Klammerung 106 Bedingte Ausführung von Operatoren 107 4.1.4 Verwendung von Funktionen und Funktionsbausteinen 110 Aufruf von Funktionen 110 Aufruf von Funktionsbausteinen 111 4.1.5 Beispiel AWL: Bergbahn 113 4.2 Strukturierter Text ST 116 4.2.1 Anweisung in ST 116 4.2.2 Ausdruck als Teilanweisung in ST 118 Operanden 118 Operatoren 119 Funktionen als Operatoren 121 4.2.3 Anweisung: Zuweisung 121 4.2.4 Anweisung: Aufruf von Funktionsbausteinen 123 4.2.5 Anweisung: Rücksprung (RETURN) 123 4.2.6 Anweisung: Verzweigung, Multiauswahl 124 Alternativ-Verzweigung 124 Multiauswahl 125 4.2.7 Anweisung: Wiederholung 127 WHILE- und REPEAT-Anweisungen 127 FOR-Anweisung 128 EXIT- Anweisung 130 4.2.8 Beispiel Stereo-Rekorder 131 4.3 Funktionsbausteinsprache FBS 133 4.3.1 Netzwerke, grafische Elemente mit Verbindungen (KOP, FBS) 133 Netzwerkmarke 134 Netzwerkkommentar 134 Netzwerkgrafik 135 4.3.2 Netzwerkaufbau in FBS 136 4.3.3 Grafische Objekte in FBS 138 Verbindungen 139 Ausführungssteuerung (Sprünge) 139 Aufruf von Funktionen und Funktionsbausteinen 140 4.3.4 Programmiertechnik in FBS 141 Werteberechnung 141 Rückkopplungsvariable 142 4.3.5 Beispiel Stereo-Rekorder in FBS 143 Kommentierung der Netzwerke der Bsp. 4.31 und Bsp. 4.24 146 4.4 Kontaktplan KOP 147 4.4.1 Netzwerke, grafische Elemente mit Verbindungen (KOP) 147 4.4.2 Netzwerkaufbau in KOP 147
4 Inhaltsverzeichnis 4.4.3 Grafische Objekte in KOP 148 Verbindungen 148 Kontakte und Spulen 149 Ausführungssteuerung 153 Aufruf von Funktionen und Funktionsbausteinen 154 4.4.4 Programmiertechnik in KOP 155 Werteberechnung 155 Rückkopplungsvariable 157 4.4.5 Beispiel KOP: Bergbahn 159 Kommentierung der Bergbahn- Netzwerke 162 4.5 Ablaufsprache AS 164 4.5.1 Aufbau durch Schritte und Transitionen 165 4.5.2 Ablaufketten 167 4.5.3 Detail-Beschreibung Schritte und Transitionen 173 Schritt 173 Transition 175 4.5.4 Schrittbearbeitung durch Aktionsblöcke und Aktionen 180 4.5.5 Detailbeschreibung Aktionen und Aktionsblöcke 182 Aktionen 182 Aktionsblock 183 4.5.6 Zusammenhang von Schritt, Transition, Aktion und Aktionsblock 186 4.5.7 Bestimmungszeichen und Ablaufsteuerung 190 Bestimmungszeichen 190 Ablaufsteuerung 197 4.5.8 Beispiel Dino-Park 198 Kommentierung des Vergnügungspark-Netzwerks 202 5 Standardisierte SPS-Funktionalität 203 5.1 Standard-Funktionen 204 5.1.1 Überladen und Erweitern 208 Überladen von Funktionen 208 Erweiterbarkeit von Funktionen 210 5.1.1 Beispiele 211 Funktionen zur Typumwandlung 213 Numerische Funktionen 213 Arithmetische Funktionen 214 Schiebe-Funktionen 214 Bitfolge-Funktionen 215 Funktionen für Auswahl 216 Funktionen für Vergleich 217 Funktionen für Zeichenfolgen 218 Funktionen für Datentyp Zeit 219 Funktionen für Auf Zählungstypen 220 5.2 Standard-Funktionsbausteine 221 5.2.2 Beispiele 223 Bistabile Elemente (Flip-Flop und Semaphore) 225 Hankenerkennung 227 Vorwärts/Rückwärts-Zähler 229 Zeitgeber (Zeiten) 230
Inhaltsverzeichnis 5 6 Moderne SPS-Konfiguration 233 6.1 Projekt-Strukturierung durch Konfigurationselemente 234 6.2 Elemente einer realen SPS-Konfiguration 235 6.3 Die Konfigurationselemente 237 6.3.1 Aufgaben 237 6.3.2 Die CONFIGURATION 238 6.3.3 Die RESOURCE 239 6.3.4 Die TASK mit Laufzeitprogramm 240 6.3.5 Die ACCESS-Deklaration 243 6.4 Konfigurations-Beispiel 245 6.5 Kommunikation bei Konfigurationen und POEs 247 7 Innovative SPS-Programmiersysteme 251 7.1 Anforderungen an innovative Programmierwerkzeuge 251 7.2 Technologischer Wandel 252 7.2.1 Prozessorleistung 252 7.2.2 Vollgrafische Bildschirm- und Druckausgaben 252 7.2.3 Betriebssysteme 252 7.2.4 Einheitliche Mensch-/Maschinen- Schnittstelle 253 7.3 Rückübersetzung (Rückdokumentation) 253 7.3.1 Keine Rückübersetzung 254 7.3.2 Rückübersetzung mit Symbolik und Kommentaren 255 7.3.3 Rückübersetzung inkl. Grafik- Information 255 7.3.4 Quellcode in der SPS 255 7.4 Sprachverträglichkeit 255 7.4.1 Querübersetzbarkeit 256 Motivation für Querübersetzbarkeit 256 Unterschiedlicher Ansatz der grafischen und textuellen Sprachen 257 Unterschiede in den Sprachen beeinflussen die Querübersetzbarkeit 258 Einschränkungen bei KOP / FBS 259 Einschränkungen bei AWL /ST 259 Querübersetzbarkeit AWL / ST 260 Volle Querübersetzbarkeit nur durch Zusatzinformation erreichbar 260 Gütekriterien für die Querübersetzbarkeit 261 7.4.2 Sprachunabhängigkeit aufgerufener POEs 262 7.5 Dokumentation 263 7.5.1 Querverweisliste 264 7.5.2 Zuordnungsliste (Verdrahtungsliste) 264 7.5.3 Kommentierbarkeit 265 7.6 Projektverwaltung 266 7.7 Test&Inbetriebnahme-Funktionen 270 7.7.1 Programmtransfer 270 7.7.2 Online-Änderung des Programms 271 7.7.3 Fernbedienung 272 7.7.4 Variablen- und Programm- Status 272 7.7.5 Forcing 277
6 Inhaltsverzeichnis 7.7.6 Programmtest 278 7.7.7 Programmtest in Ablaufsprache 278 7.8 Datenbausteine und Rezepturen 279 7.9 FB-Verteilung in einem SPS-Netzwerk 283 7.10 Diagnose, Fehlererkennung und - Reaktion 286 Allgemeines Fehlerkonzept der IEC 1131-3 286 Erweitertes Fehlermodell (nicht IEC) 287 7.11 Hardware-Abhängigkeiten 288 7.12 Offenheit für neue Funktionalität 289 7.12.1 Austausch von Programmen und Daten 289 7.12.2 Ergänzung durch weitere Softwarepakete 291 8 Stärken der IEC 1131-3 293 8.1 Komfort und Sicherheit durch Variablen und Datentypen 293 8.2 Bausteine mit erweiterten Möglichkeiten 294 8.3 SPS-Konfiguration mit Laufzeitverhalten 295 8.4 Einheitliche Sprachen 296 8.5 Strukturierte SPS-Programme 296 8.6 Trend zu offeneren SPS-Programmiersystemen 297 8.7 Fazit 298 9 Einkaufsberater für SPS-Programmiersysteme: Checklisten 299 9.1 Checklisten zur Bewertung von SPS-Programmiersystemen 300 9.2 Benutzung der Checklisten 300 Auswahl aller wichtigen Tabellen 301 Gewichtung der einzelnen Tabellen 301 Bewertung der Wichtigkeit einzelner Tabelleneinträge 301 Erfüllungsgrad dieser Einträge für das einzelne Programmiersystem 301 Korrellierung von Wichtigkeit und Erfüllung; Normierung 302 Berechnung der Eignungszahl für das jeweilige Programmiersystem 302 9.3 Checklisten für SPS-Programmiersysteme 302 9.3.1 Konformität zur IEC 1131-3 303 9.3.2 Sprachumfang, Rück- und Querübersetzbarkeit 306 9.3.3 Werkzeuge 308 9.3.4 Arbeitsumgebung, Offenheit und Dokumentation 314 9.3.5 Allgemeines, Kosten 316 10 Disketten-Inhalt 317 Demo-Version SUCOsoft S40 317 AWL- Beispiele 318 Einkaufsberater IEC Programmiersysteme 318 11 Glossar 319 12 Literaturverzeichnis 325
Inhaltsverzeichnis 7 A Standard-Funktionen 329 A.l Funktionen zur Typwandlung 330 A.2 Numerische Funktionen 331 A.3 Arithmetische Funktionen 332 A.4 Bitschiebe-Funktionen 333 A.5 Bitweise Boolesche Funktionen 334 A.6 Auswahl-Funktionen für Max., Min. und Grenzwert 335 A.7 Auswahl-Funktionen für Binäre Auswahl und Multiplexer 336 A.8 Vergleichs-Funktionen 338 A.9 Funktionen für Zeichenfolgen 339 АЛО Funktionen für Datentypen der Zeit 341 A.ll Funktionen für Datentypen der Aufzählung 342 В Standard-Funktionsbausteine 343 B.l Bistabile Elemente (Flip-Flops) und Semaphore 344 В.2 Flankenerkennung 346 B.3 Zähler 347 B.4 Zeitgeber (Zeiten) 349 С AWL-Beispiele 353 C.l Beispiel für FUNCTION 353 C.2 Beispiel für FUNCTION_BLOCK 355 C.3 Beispiel für PROGRAM 357 D Standard-Datentypen 363 E Fehlerursachen 363 F Implementierungsabhängige Parameter 365 G Beispiel einer AWL-Syntax 369 G.l Syntaxgraphen für AWL 370 G.2 AWL-Beispiel zu Syntaxgraphen 378 H Reservierte Schlüsselworte und Begrenzungszeichen 381 H.l Reservierte Schlüsselworte 381 H.2 Begrenzungszeichen 385