2. Automatisierungsgeräte
Transcription
2. Automatisierungsgeräte
2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) 2.2.1 Aufbau und Arbeitsweise • universelle Automatisierungssysteme mit modularem Aufbau CPU mit Steuer- und Rechenwerk, Programmspeicher, Merkern, Zeitgliedern, Zählern und Bussystem 2. Automatisierungsgeräte 2.1 Speicherprogrammierbare Steuerungen (SPS) 2. Automatisierungsgeräte 2.1 Speicherprogrammierbare Steuerungen (SPS) • wichtigstes Kennzeichen: zyklische Programmabarbeitung 2. Automatisierungsgeräte 2.1 Speicherprogrammierbare Steuerungen (SPS) • Nachteil der zyklischen Arbeitsweise: Reaktionszeit auf Änderungen beträgt im ungünstigsten Fall zwei Programmzyklen 2. Automatisierungsgeräte 2.1 Speicherprogrammierbare Steuerungen (SPS) • unterschiedliche Ausführungsformen für verschiedene Anwendungsbereiche 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) 2.2.2 Programmierung (IEC 61131) Sämtliche Industriezweige, vor allem der Maschinenbau, stehen unter einem enormen Kostendruck und müssen alle Rationalisierungspotentiale ausschöpfen. Bei den Steuerungsprogrammen heißt das, die einzelnen Softwareteile bereits erstellter Programme und Funktionen wiederzuverwenden und in neuen Applikationen zu nutzen. Hauptforderungen an ein modernes SPS-Programmiersystem Hohe Funktionalität 7% OnlineÄnderungen 13% AufwärtsKompatibilität 13% Leichte Bedienung, hoher Komfort 7% Portabilität der AWL-Programme 33% Leichte Änderbarkeit der Applikation 27% Abbildung entnommen aus: Brendel, W.: SPS-Programmierung nach IEC 1131-3 - das Pflichtenheft steht 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) Die Norm IEC 61131 wurde im Februar 1993 von der Internationalen Elektronischen Kommission (IEC) herausgegeben definiert ein Grundgerüst von Sprachelementen für die Programmierung von Steuerungen verbindet die klassische SPS-Programmierung mit den Vorteilen der Hochsprachen-Programmierung Ziele und Vorteile • einheitliche Planung und Programmierung verschiedener Systeme • Einsatz normierter Komponenten führt zu erhöhter Anlagensicherheit • Integration von Modulen verschiedener Hersteller • Kostensenkung • ein international gültiges Sprachsystem • erhöhte Software-Qualität durch strukturierte Programmierung • Entwicklungsmöglichkeit von komplexeren Programmen • verkürzte Programmerstellung dank Standardfunktionen und Funktionsbausteinen • Portabilität der Software (Austauschbarkeit und Wiederverwendbarkeit) 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) Konfiguration Überblick (Software-Modell nach IEC 61131-3) Ressource Ressource Task Task Task Task Programm Programm Programm Programm Legende Pfad der Ausführungssteuerung Pfad des Variablenzugriffs FB FB FB FB FB Funktionsbaustein Variable Globale und direkt dargestellte Variable Zugriffspfade • Konfigurationen: Kombination und Gruppierung aller Ressourcen eines SPS-Systems (z.B. Prozessoren, E/A-Einheiten, etc.) • Ressourcen: vergleichbar mit einzelnen CPUs, Ausführung von einer oder mehreren Tasks • Tasks: bestimmen den Zeitplan der ihnen zugewiesenen Programme oder Funktionsblöcke • Laufzeitprogramme: Einheiten, die aus Programmen oder FBs bestehen Im Teil 3 der IEC 61131 werden die Syntax und Semantik der vereinheitlichten Programmiersprachen für Speicherprogrammierbare Steuerungen (SPS) festgelegt. 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) Programm-Organisationseinheiten Die Sprachnorm unterstützt die Strukturierung der Programme innerhalb der Ressourcen nach sog. Programm-Organisationseinheiten (POE). Eine POE besteht je nach Anwendung aus: • Programm (Hauptprogramm, Schlüsselwort „PROGRAM“): Startpunkt einer Applikation. • Funktionsbaustein (Schlüsselwort „FUNCTION_BLOCK“: werden vom Programm aus aufgerufen, besitzen eigenen Datenspeicher, Realisierung komplexer Steuerfunktionen • Funktion (Schlüsselwort „FUNCTION“): Baustein mit mehreren Eingängen, aber nur einem Ausgang (z.B. Berechnung eines Wertes). Einzelne Programm-Organisationseinheiten werden über mehrere Stufen hinweg aus den Rümpfen anderer Programm-Organisationseinheiten heraus strukturiert aufgerufen. Programm-Organisationseinheiten dürfen nicht rekursiv sein. D.h. der Aufruf einer ProgrammOrganisationseinheit darf nicht den Aufruf einer weiteren Programm-Organisationseinheit desselben Typs verursachen. Vorteil: Strukturierung des Anwenderprogrammes sowie der verwendeten Daten entsprechend dem zugrunde liegenden Prozeß. Globale Variablen und lokale Variablen sind ausschließlich eingebunden in einzelne Bausteine und sind außerhalb des Bausteins weder lesbar noch beschreibbar. Bausteine können ohne Änderung in verschiedenen Programmteilen wiederverwendet werden! 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) Datentypen • Elementare Datentypen Definition über Schlüsselwort und die Anzahl der Bits: Datentyp Bits Schlüsselwort BOOL boolesche INT ganze Zahl (Integer) 1 16 REAL reelle Zahl 32 TIME Zeitdauer implementierungsabhängig DATE Datum implementierungsabhängig STRING variabel-lange Zeichenfolge implementierungsabhängig BYTE Bitfolge der Länge 8 8 WORD Bit-Folge der Länge 16 16 • Abgeleitete Datentypen in IEC 1131-3 auch abgeleitete Datentypen, wie sie aus höheren Programmiersprachen bekannt sind: Beispiel: TYPE MESSWERTE : ARRAY [1..16] OF ANALOG_DATA END_TYPE 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) Variablen Die Darstellung von Variablen erfolgt durch die Aneinanderreihung des „%“-Zeichens, eines Präfix für den Speicherort sowie eines Präfix für die Größe. Beispiele: Bedeutung Präfix I Speicherort Eingang Q Speicherort Ausgang M Speicherort Merker X oder kein Präfix (Einzel-)Bit-Größe B Byte-(8 bit) Größe W Wort-(16 bit) Größe D Doppelwort-(32 bit) Größe L Langwort-(64 bit) Größe %QX75 und %Q75 Ausgangsbit 75 %IW215 Eingangswort Speicherort 215 %QB7 Ausgangsbyte Speicherort 7 %MD48 Merkerdoppelwort Speicherort 48 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) SPS-Programmiersprachen a) Ablaufsprache (AS) PROJEKT Der erste Schritt zur Lösung einer Aufgabenstellung beginnt üblicherweise mit der Erstellung eines Flussdiagrammes. Die Aufgabe lässt sich so in Teilstücke zerlegen und übersichtlich strukturieren. Hierzu wird die Ablaufsprache (AS) verwendet, die das gesamte Programm in einzelne Teilschritte zerlegt. Außerdem sind Verzweigungen im Programmablauf definierbar. Ein Prozess besteht aus einer Menge von Schritten (stabilen Zuständen) und Transitionen, die durch gerichtete Verbindungen miteinander verbunden sind. Jeder Transition wird eine boolesche Bedingung zugeordnet. Die Aktionen in den Schritten werden in den Sprachen ST, AWL, KOP oder FBS beschrieben. S1 Ablaufsprache (AS) Programm AWL FBS KOP ST Funktionsbausteine Funktionen Initialschritt Transitionsbedingung in ST-Sprache %IX2.1 OR %IX2.2 Elemente der Ablaufsprache: • Schritte • Transitionen • Aktionen S2 %IX2.4 %IX2.3 Transitionsbedingung in FBS-Sprache & Aktion in ST-Sprache N S3 ACTION_4 %QX17 := %IX1 & %MX3 & S8.X ; FF28 (S1 := (C<D)) ; %MX10 := FF28.Q; 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) SPS-Programmiersprachen b) Kontaktplan (KOP) Die KOP-Sprache (Kontaktplan) ist eine geläufige Methode, logische Gleichungen und einfache Aktionen darzustellen. Die Symbole des KOP-Diagramms werden wie Elemente eines elektrischen Kontaktplans behandelt. Hierzu werden Kontakte als Eingänge und Spulen als Ausgänge mittels Verbindungselementen kombiniert. Links und rechts sind KOP-Diagramme von Versorgungsleisten (Stromschienen) begrenzt. Kontakte: Ein Kontakt übergibt einen Zustand an die horizontale Verbindung auf seiner rechten Seite. Dieser Zustand ergibt sich aus der booleschen UND-Verknüpfung des Zustandes der horizontalen Verbindung auf seiner linken Seite mit einer entsprechenden Funktion einer zugehörigen booleschen Variablen (***) (Eingang, Ausgang oder Merker). *** Öffner *** Schließer Spulen: *** Eine Spule kopiert den Zustand der Verbindung auf ihrer linken Seite ohne Veränderung auf die Verbindung auf ihrer rechten Seite und speichert eine entsprechende Funktion des Zustandes oder des Übergangs der linken Verbindung in die boolesche Variable. START ENABLE RUN START NOT_AUS NOT_AUS negative Spule & ENABLE Beispiel: Spule >=1 RUN *** 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) SPS-Programmiersprachen c) Strukturierter Text (ST) Zuweisung Funktionsbaustein-Aufruf Die ST-Sprache (Strukturierter Text) ist eine strukturierte Sprache hohen Niveaus, die in Automatisierungsanwendungen benutzt wird. Ihre Syntax ähnelt der Pascal-Sprache. Sie dient vor allem der Implementierung komplexer Prozeduren, deren Beschreibung mit grafischen Sprachen schwer darzustellen ist. Ausdrücke bestehen aus • Operatoren (Addition, Subtraktion, Vergleich, Boolesches UND, ...) sowie • Operanden (Variablen, Funktionsaufrufe, weitere Ausdrücke) RETURN IF CASE A := B; C:=SIN(X); CMD_TMR(IN:=%IX5, PT:=T#300ms); RETURN; IF D>10.0 THEN ... ELSE_IF ... END_IF; CASE TW OF 1 : DISPLAY:=TEMP; 2 : DISPLAY := LEVEL; END_CASE; FOR WHILE REPEAT EXIT FOR I:=1 TO 100 DO ... END_FOR; J:=1; WHILE J<=100 DO J:=J+1; END_WHILE; J:=0; REPEAT J:=J+1; UNTIL J=100; END_REPEAT; EXIT; 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) SPS-Programmiersprachen d) Anweisungsliste (AWL) Die AWL-Sprache ist eine Textsprache niedrigen Niveaus. Die AWL eignet sich besonders für die Programmierung kleinerer Anwendungen oder um kritische Teile einer Anwendung zu optimieren. Eine AWL setzt sich aus einer Folge von Anweisungen zusammen. Jede Anweisung muss in einer neuen Zeile beginnen und muss einen Operator und einen oder mehrere Operanden enthalten. Der Operator zeigt an, welche Art von Operation zwischen dem aktuellen Ergebnis und dem Operand erfolgen soll. Der Anweisung kann eine identifizierende Marke vorangehen, der ein Doppelpunkt folgt. Marke Beispiel: START: Operator Bedeutung LD Setzt aktuelles Ergebnis dem Operanden gleich ST Speichert aktuelles Ergebnis auf die Operanden-Adresse S Setzt booleschen Operator auf 1 R Setzt booleschen Operator auf 0 AND,& OR ADD GT JMP Boolesches UND Boolesches ODER Addition Vergleich >= Sprung zur Marke Operator Operand Kommentar LD %IX1 (*Drucktaster*) ANDN %MX5 (*Nicht gesperrt*) ST %QX2 (*Lüfter an*) 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) SPS-Programmiersprachen e) Funktionsbausteinsprache (FBS) Die FBS (Funktionsbaustein-Sprache) ist eine grafische Sprache. Ein FBS-Diagramm beschreibt eine Funktion zwischen Eingangs- und Ausgangsvariablen. Diese Funktion wird wie ein Netzwerk aus elementaren Funktionsbausteinen aufgebaut. Die Ein- und Ausgangsvariablen werden mit den Funktionsbausteinen durch Verknüpfungslinien verbunden. Der Ausgang eines Funktionsbausteins kann an den Eingang eines anderen Funktionsbausteins angeschlossen werden. Es können mehrere bezeichnete Instancen („Fälle“) eines Funktionsbausteines erzeugt werden. Jeder Funktionsbaustein, der bereits deklariert wurde, kann in der Deklaration eines weiteren Funktionsbausteines oder Programms benutzt werden. Der Name des Funktionsbaustein-Typs steht innerhalb des Blocks und der Name der Instance oberhalb des Blocks. Die Größe und Anordnung des Blocks darf in Abhängigkeit der Eingänge, Ausgänge und weiterer anzuzeigender Informationen variieren. Die Namen der formalen Ein- und Ausgangsparameter müssen links- bzw. rechtsseitig innerhalb des Blocks angezeigt werden. Name der Instance FF75 SR %IX1 S1 %IX2 R Q1 Name des Funktionsbaustein-Typs formale Eingangs- bzw- Ausgangsparameter %QX3 in FBS: in ST: VAR FF75 : SR; END_VAR FF75(S1:=%IX1, R:=%IX2); %QX3:=FF75.Q1; (* Deklaration *) (* Aufruf *) (* Ausgangszuweisung *) 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) SPS-Programmiersprachen f) Beispiel Die Funktion WIEGEN (WEIGH) beinhaltet • die Wandlung einer Eingabe von einer Waage, wobei das Bruttogewicht (gross weight) von BCD in binär gewandelt wird, Funktion WIEGEN: • die binäre ganzzahlige Subtraktion des Taragewichtes (tare weight), das vorher gewandelt und im SPS-Speicher abgelegt wurde und • die Wandlung des resultierenden Nettogewichtes (net weight) zurück in die BCDForm, z.B. für eine Ausgabe auf einer Anzeige. Textuelle Deklaration der Funktion FUNCTION WEIGH : WORD VAR_INPUT weight-command : BOOL; gross_weight : WORD; tare_weight : INT; END_VAR (* Funktionsrumpf *) END_FUNCTION Rumpf der Funktion in AWL LD weight_command JMPC WEIGH_NOW ST ENO RET WEIGH_NOW: LD gross_weight BCD_TO_INT SUB tare_weight INT_TO_BCD Rumpf der Funktion in ST IF weight_command THEN WEIGH := INT_TO_BCD ( BCD_TO_INT (gross_weight) tare_weight ); END_IF; 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) SPS-Programmiersprachen f) Beispiel Funktion WIEGEN: Grafische Deklaration der Funktion Funktionsrumpf in FBS WEIGH BOOL BOOL WORD INT weigh_command EN ENO weigh_command net_weight gross_weight tare_weight BCD_ TO_INT EN ENO SUB EN ENO gross_weight tare_weight gross_weight tare_weight BCD_ TO_INT EN ENO SUB EN ENO ENO net_weight Funktionsrumpf in KOP weigh_command INT_ TO_BCD EN ENO INT_ TO_BCD EN ENO ENO net_weight 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) Verfügbare Tools (Anbieter) Programmiersystem Anbieter Bemerkungen ACCON-ProSys 1131 DELTALOGIC „das einzige Programmiersystem für SIMATIC-SPS, das sich streng nach der Norm IEC 1131-3 richtet“ CoDeSys Smart Software Solutions GmbH OEM-Software ConCept AEG Offline-Simulation am PC in allen fünf Sprachen möglich ISaGRAF CJ INTERNATIONAL OEM-Software logiCAD kirchner SOFT GmbH MULTIPROG wt Klöpper und Wiege Software GmbH NAISControl 1131 Matsushita Automations Controls Open DK infoteam Software GmbH Selecontrol CAP 1131 Selectron SoftControl Softing GmbH SUCOsoft S40 Klöckner-Moeller OEM-Software Import bereits bestehender SPSProgramme (von KlöcknerMoeller) ist möglich 2. Automatisierungsgeräte 2.2 Speicherprogrammierbare Steuerungen (SPS) Verfügbare Tools (Leistungsumfang) Projektierung • Projektverwaltung, um Programme zu ordnen und zu strukturieren • „Verkabeln“ von Ein- und Ausgängen über Variablendeklaration im Hauptprogramm Programmierung • Grafische Editoren (Windows-Oberfläche) für alle oder ausgewählte IEC-Fachsprachen - Einfügen, Verschieben, Kopieren ganzer Netzwerke - Umschalten zwischen verschiedenen Ansichten - Syntax- und Plausibilitäts-Prüfung bei der Eingabe • Variablen-Editor zur Festlegung der lokalen und globalen Variablen • Task-Editor für die Unterstützung einer Multitasking-Umgebung Inbetriebnahme • Übersetzer zur Code-Erzeugung für eine SPS • Test-, Simulations- und Inbetriebnahme-Funktionen (Offline-Simulation (auch im Schrittbetrieb), Online-Betrieb zum Verfolgen des Programmablaufes, Anzeige ausgewählter Variablen, …) • Dokumentations-Werkzeuge (Dokumentation des Anwenderprogrammes, der Querverweise, der Programmorganisation, der Datentypen, der Tasks sowie der SPS-Konfiguration) Features • Herstellerspezifische Zusatzbausteine für komplexe Regelungstechnik, für Fuzzy-Logik, … • Import „alter“, nicht IEC-konformer Programme