Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Entwurfsmethoden, Sprachen, Einfluss der SW

Ähnliche Präsentationen


Präsentation zum Thema: "Entwurfsmethoden, Sprachen, Einfluss der SW"—  Präsentation transkript:

1 Entwurfsmethoden, Sprachen, Einfluss der SW
PLC - Programmiersprachen Inhalt 1. Übersicht Entwurfsmethoden, Sprachen, Einfluss der SW 2. Die “SPS-Norm” DIN EN 61131 SW - Modell, Datentypen, Variablen, Kommunikationsmodell, Verbindungen, Funktionen, Funktionsbausteine 3. DIN EN 61131: Textsprachen AWL (Anweisungslisten), ST (Strukturierter Text 4. DIN EN 61131: Grafische Sprachen FBS (Funktionsbausteinsprache), KOP (Kontaktplan), AS (Ablaufsteuerung) 5. DIN EN 61131: Deklaration der Programmstruktur 6. Anwendungsbeispiele „Wiegen“ (Sprachen - Vergleich) „Totmannsknopf“ (Funktionsbaustein) „Mixer“ (Ablauf), „Speisepumpe“ (POE - Struktur) 7. IEC 61499: Anlagenautomatisierung durch vernetzte Funktionsbausteine und IEC 61804: Funktionsbausteine für die Prozessautomatisierung Februar 2018 März 2017

2 Entwurf und Implementierung
Einstieg: Gesamtaufgabe hierarchisch strukturieren oder als Grob-Ablauf in Grafcet mit Makro-Schritten: M5 5.2 5.1 E S Graphisch oder als Projektbaum: Gruppensteuerung Antrieb 1 Antrieb 2 Formlose Beschrei- bung, Daten- Sammlung Signal-Zeit- Diagramm „Digital timing diagram“ (nicht genormt) Weg-Schritt- Diagramm (Maschinenbau) Funktionsplan für Abl.Steuerg (DIN ) zurückgezogen! oder Zustands - Über- gangs - Diagramm („Zust.Diagramm“ UML) (nicht direkt implementierbar) Entwurf Schritt (Befehl) Transition (Weiterschalt- Bedingung) Parallele Befehls- Ketten A B C Wahr- heits- Tafel A B C Grafcet (DIN ) Kurz- Schreibweise A1+ A2+ A3+ A2- A (+ für EIN, - für AUS) kompatibel S0 START S1 B1 S2 A2 1s/A1 T1 T2 Funktionsbaustein- Sprache (ähnl ) Ablaufsprache AS (DIN IEC ) T T1 TON & S0 START S1 S2 S A2 T2 N ACTION1 T1 S1 Tue 2s Wsb S2 Tue 3s TON 1s Spezielle Schritt- Funkt.Baust. (direkt in Masch.-Code umsetzbar) Implementierung komplexe Standard- Funktions- Bausteine z.B. Motion Control Basis- Funktionen und - Funktions- Bausteine in FBS od. KOP, ST, AWL (DIN ) oder STEP 7 oder: Aufruf Funktionsbaustein lauffähig (ab 2017!) mit Grafcet-Editoren Verknüpfungssteuerung Ablaufsteuerung (Siemens: ~ STEP7 AS / ~ S7 GRAPH) Januar 2017

3 Übersicht Entwurfsmethoden Strukturierung Zustands - Graph
Bedienung Stillstand Betriebs- bereit Öl -Heizung EIN Ölpumpe EIN Heiz.AUS AUS Ventil AUF Zündung EIN Betrieb Flamme AUS Störung Quitt. Prozess- Steuerung „Prozess“ Gesamt- Aufgabe Bedienung Gruppen- Steuerung Gruppe Pumpe 1 Gruppe Pumpe 2 Hand- Bedienung Funktionsbaustein / Programm Antriebs- / Einzel- Steuerg. Pumpe 2 Schieber 2 Pumpe 2 Schieber 2 Prozess- Meldung Prozess- Meldung M M Signal / Zeit - Diagramm Basis- Funktionen, Funktions- Bausteine Komplexer Standard- Funktions- Baustein F M M E U T1 T2 F Gesamtaufgabe Trans- port Bohr- Masch. Fräs- M Gesamtaufgabe Lüftungs- Steuerung Temp.- Regelung Funktionsplan TON E A T T1 1s AND E U T2

4 Entwurfssprache „GRAFCET“ der DIN 60848
Übersicht Entwurfssprache „GRAFCET“ der DIN 60848 Prinzip Schrittkette: Grafcet-Regeln (Syntax) S Q R & Schr. n-1 Aktion n Schritt n Transition n Aktion n+1 Schr. n+1 Grafcet Wirkungsweise Schr. n Transition n-1 S0 Initialisierungs-Schritt immer notwendig Doppelter Rahmen, ggf. mit Aktion, z.B. Meldung Transition (bool. Var.) (Übergangs-Bedingung zum nächsten Schritt,) Verbindliche Reihenfolge : Schritt – Trans. – Schritt - … Verknüpfung z.B. T1*T2+T3 entspr.:(T1 AND T2) OR T3, NOT T1 schreiben als T1 S1 Schritt mit einer (oder mehreren) Aktion (boolsche Var.) mit: A1 A1 ist „1“ solange S1 aktiv ist S2 A2 - Bedingung B2 … und Bedingung (hier B2) erfüllt ist S3 A3 3s/XS3 Verzögerter Befehl T0 A3 wird erst „1“ wenn S3 seit 3s EIN ist (XS3/4s: AUS-Verz.) - Begrenzter Befehl S4 A4 A4 ist nur 5s lang „1“ ab S4 EIN Schritt-EIN-Signal: X vor Schritt-Name - Befehl speichern S5 A5:=1 Zeitpunktangabe erforderlich:  Flanke 0→1, 1 → 0 A5 bleibt „1“, auch wenn S5 nicht mehr EIN ist S7 A5:=0 - Befehl rücksetzen A5 wird „0“ Rücksprung zur Programm-Wiederholung darstellen! S6 A6:=1 B6 Befehl speichern bei Bedingung A6 wird und bleibt „1“ wenn B6 „1“ wird Kommentar „in Anführungszeichen“ - Wartezeit (hier 1s) T1 T2 1s/XS3 5s/XS4 Struktur: 11 12 13 41 42 43 51 52 Einschließungen (41-43 u laufen parallel zu 12, solange 12 aktiv ist) * Start * G1 G2 Kettenarten: parallel gradlinig alternativ Makro- Schritt Expansion M3 E3 S3 3.1 3.2 3.3 Sprünge: Teilprozess E3-S3 in M3 dargestellt

5 Top-down / Bottom-up Prinzip Realisierung in Grafcet Übersicht:
Gesamtaufgabe - Gesamte Funktionalität, - Schnittstellen nach außen Expansion E3 S3 3.1 3.2 3.3 Top – Down - Entwurf (funktionale Zerlegung) zerlegen in: M3 Teilaufgabe (z.B. Programm) - Funktionalität - Schnittstellen Makro- Schritt zerlegen in: Funktionale Einheit entält AS, FBs Bottom - up Zuordnung zu POEs Grobplanung mit Makroschritten ohne Details - Detailplanung in der Expansion zerlegen in: Standard- Funktionen, Funktionsbaust. Standard- Funktionen, Funktionsbaust.

6 Übersicht: Programmiersprachen für Speicher - programmierbare Leiteinrichtungen
PLS SPS Firmen - Spezifisch Firmen - Spezifisch Internationale Norm Engineering Tool - Gesamt-Anlagen- Planung, -DB - Projekt - Abwicklung - Übersichtspläne (CAD) - Feldplanung mit autom. Plan-Erstellung IEC DIN EN 61131 STEP7 (Siemens S7) - Projekt-Abwickl. „Konfiguration“ Festlegung der Geräte, Programme, Zeiten Ablauf-Sprache (grafische Sprache f. Ablaufsteuerungen) - Graph7 - AS STEP5 (Siemens S5 und andere) - FUP - KOP - AWL - FUP über große Anwendungen „Continuous“ komplette grafische Programmierung - FUP - FBS* - KOP - AWL FUnkt.-Plan (graf. mit Blöcken) KOntaktPlan (graf. mit Kontakten) pro „Pfad“ - KOP - „Source Code“ C, C++,.. - ST - ST Strukturierter Text (entspricht höherer Progr.-Sprache) Proz.-Rechn.: FORTRAN AnWeisungs- Liste („Assembler“) (früher: ~ Assembler) AWL * FBS: Funktions-Baustein-Sprache DIN-Sprachen: AS (Ablauf - Sprache) FBS (Funktionsplan) KOP Kontaktplan ST Strukturierter Text AWL Anweisungsliste Step 1 Füllen N Step 2 Schließen voll Weiterschalt-Bedingung Aktion & A B C Funktion / Funktionsbaustein A B C ( ) Öffner Ergebnis- Schließer Zuweisung C = A AND NOT B LD A ANDN B ST C Lade (nehme) A, vergl. mit B (als UND NICHT), Speichere (STore) (Ergebnis) als C Wieder stärker: Hochsprachen, MathLAB -> PHOENIX PLCnext Neue Generation? September 2017

7 Beitrag der SW zur Leitanlagen-Qualität
Übersicht: Beitrag der SW zur Leitanlagen-Qualität Beitrag der SW-Erstellung: Durch DIN 61131: Forderungen an erstellte SW: von (möglichst) allen Beteiligten lesbare Dokumentation Funktionsbaustein- u. Ablaufsprache ● vollständige Erfüllung der Aufgabenstellung Überschaubare Teilprogramme „Funktionsbausteine“ - „gekapselt“ - Details „verborgen“ top-down / down-up anwenden: Zergliederung bis zu einfachen / bekannten Funktionen (- Strukturierung, - Objekt-orientierte Planung) Wiederholtechnik Verwendung von „Standard- Funktionsbausteinen“ ● wirtschaftliche SW-Erstellung Verwendung bewährter „Teile“ (Hersteller-Bibliotheken oder „selbst gemacht“) Simulation in der Planungsphase (Eigenschaft des Editors) ● „kalte“ Erprobung Verwendung von Ablaufsteuerungen Ablaufsprache ● Leichtes Finden des Anlagenzustands zur Laufzeit Klar definierte Anlagenzustände durch Schritte, Meldekriterien

8 Anwendungsbeispiel 1: Redundante Pumpen
Übersicht: Anwendungsbeispiel 1: Redundante Pumpen Struktur? Steuerungsarten? Sept. 2017

9 Anwendungsbeispiel 2: Zustands-Graph
Übersicht: Anwendungsbeispiel 2: Zustands-Graph Kein Betrieb spülen 5 Min. füllen Tank 2 Tank 1 Tank 3 Tank 1 Tank 2 Tank 3 Milch / Molke Luft Frisch- Wasser Ab- wasser S0 M1 Spülen1 M2 Füllen T1 M3 Spülen2 Füllen T2 Füllen T3 (mit Rest-Ablauf)

10 Anwendungsbeispiel 3: Grafcet
Übersicht: Anwendungsbeispiel 3: Grafcet Bohrmaschine S0 M1 Transp.1 M2 Bohren M3 Transp.2 M4 Fräsen Makro-Schritte Expansion Lichtschranke meldet WP1 (Werkst. In Position) Bohr- Motor BM - Bohr-Vorschub BV 2.1 Sp+ BM:=1 1s/X2.1 2.2 BV+ E2 WP1 BVU 2.3 BV- 2.4 Sp- BVO BM:=0 SpR 2.5 Aw+ 1s/X2.5 2.6 Aw- AwR S2 AwR Ruhe- Lage + Auswerfer Aw + - - + Spanner Sp SpR Ruhelagen- Schalter (TransportBand)

11 4. DIN EN 61131: Grafische Sprachen
PLC - Programmiersprachen Gliederung 1. Übersicht Sprachen, Entwurfsmethoden 2. DIN EN 61131 SW - Modell, Datentypen, Variablen, Kommunikationsmodell, Verbindungen, Funktionen, Funktionsbausteine 3. DIN EN 61131: Textsprachen AWL (Anweisungsliste), ST (Strukturierter Text) 4. DIN EN 61131: Grafische Sprachen FBS (Funktionsbausteinsprache), KOP (Kontaktplan), AS (Ablaufsteuerung) 5. DIN EN 61131: Deklaration der Programmstruktur 6. Anwendungsbeispiele „Wiegen“ (Sprachen - Vergleich) „Totmannsknopf“ (Funktionsbaustein) „Mixer“ (Ablauf), „Speisepumpe“ (POE - Struktur) 7. IEC 61499: Anlagenautomatisierung durch vernetzte Funktionsbausteine und IEC 61804: Funktionsbausteine für die Prozessautomatisierung

12 PLC - Programmiersprachen Inhalt der DIN IEC 61131
Teil 1: Allgemeine Informationen (1994) und Entwurf DIN IEC ( ): Geltungsbereich, Definitionen, Eigenschaften Beiblatt 1: Leitfaden für Anwender (1996) (zur gesamten Norm, bei IEC: Teil 4) Teil 2: Betriebsmittelanforderungen u. Prüfungen (2001) mit europ. Änderung /A11 (1995) und Berichtigungen (1998) 2. Ausgabe als E DIN IEC 65B/350/CD (1999) Teil 3: Programmiersprachen (2. Ausgabe: 2003) Modelle, Elemente, Sprachen, Beispiele Beiblatt 1: Leitfaden zur Anwendung und Implementierung von Sprachen (2005) Teil 5: Kommunikation (2001) Begriffe, Modelle, Systemkommunikation, Komm. - Funktionsbausteine, Parameter Teil 6: Funktionale Sicherheit Teil 7: Fuzzy-Control-Programmierung (2001) Teil 9: Schnittstellen für die Kommunikation mit kleinen Sensoren Juli 2013

13 IEC 61131: SW - Modell Konfiguration Konfiguration:
- spezifiziert bestimmte Anwendung eines Leitsystems, einschließlich HW - Anordnung (CPU, E/A, Schnittst.) kann bestehen aus 1 od. mehreren Ressourcen: RESOURCE STATION_1 RESOURCE STATION_2 Ressource 1 Ressource 2 Ressource: (wenn sinnvoll / nötig) - Einrichtung zur Abwicklung von Programmen („Controller“), enthält Programme und ggf. Tasks SLOW_1 FAST_1 Task Task Task: - steuert Durchführung von Programmen / Funkt.-Blöcken, diese starten zyklisch oder auf Abruf (Variablen-Änderung). Prgr. Programm Progr. Progr. FB Programm: - besteht aus Netz von SW-Elementen, - ist geschrieben in einer der IEC - Sprachen, - holt / speichert aktuelle Werte als Variable („V“) / sendet. Typische (nicht alleinige) SW - Elemente: Funktion F F FB Funktions baust. FB F V V V V V Funktion: Standard (wie AND, ADDition, ABSolutwert), oder Anwender-definiert (IEC) zur beliebigen Verwendg., berechnet einen Ergebnis - Wert aktuell aus Eingängen. V Globale Variablen direkt deklarierte Variablen V % Funktionsbaustein (FB): „Black Box“ mit Algorithmen und bis zum nächsten Zyklus intern gespeicherter Daten („V“), ggf. mit außen unsichtbarem Datenaustausch. Beispiel: Temp.- Regelung mit PI - Regler. Geschrieben in IEC - Sprache oder Hochsprache (z.B. C) Zugriffspfade SR S1 Q1 R %IX1 %IX2 FF75 Formaler Name (Deklaration, Typ) Aktueller Name (Aufruf, „Instanz“) Eingangssignale Ausgangssignal(e) Funktionsbaustein %QX3 = Parameter für Funkt.baustein - Aufruf AND Funktion Typ Elemente der Ablaufsprache (AS): Ablaufsteuerg. mit Schritten, in Programmen und Funktionsblöcken Programm, Funktionsbaustein und Funktion sind: Program-Organisations-Einheiten POEs (Progr.Org.Units.), vom Hersteller mitgeliefert bzw. vom Anwender erstellbar. Gliederung durch Anwender – definierte Funktionsbausteine ergibt effizientes Engineering und übersichtliches Programm.

14 Elementare Datentypen
Schlüsselwort Datentyp Wertbereich Default BOOL Boolean 0 / 1 0 SINT Short integer ( 8 bit) INT Integer (16 bit) DINT Double integer (32 bit) LINT Long integer (64 bit) USINT Unsigned short integer ( 8 bit UINT Unsigned integer (16 bit) UDINT Unsigned long integer (32 bit) ULINT Unsigned long integer (64 bit) REAL Real numbers (16 bit, Gleitkomma) (1 zu 223 ~ 7 Dez.Stell.) 0.0 LREAL Long reals (32 bit, Gleitkomma) (1zu 252 ~16 Dez.Stell.) 0.0 TIME Duration Produkt - abhängig T#0s DATE Date (only) Produkt - abhängig D# TIME_OF_DAY (TD) Time of day (only) Produkt - abhängig TOD#00:00:00 DATE_AND_TIME (DT) Date and time of day Produkt - abhängig DT# :00:00 STRING Variable-length single-byte character string 8 bit ‘ ‘ (leerer String) WSTRING Variable-length double-byte character string 16 bit ‘ ‘ (leerer String) BYTE Bit string of length bit, kein numer. Wert 0 WORD Bit string of length bit, kein numer. Wert 0 DWORD Bit string of length bit, kein numer. Wert 0 LWORD Bit string of length bit, kein numer. Wert 0 Dezember 2002

15 Allgemeine (generische) / Anwender - deklarierte Datentypen
IEC 61131: Allgemeine (generische) / Anwender - deklarierte Datentypen Hierarchie der generischen Datentypen Datentyp - Deklaration (Ableitung), Möglichkeiten ANY ANY_NUM ANY_REAL LREAL REAL ANY_INT LINT, DINT, INT, SINT ULINT, UDINT, UINT, USINT ANY_BIT LWORD, DWORD, WORD, BYTE, BOOL STRING ANY_DATE DATE_AND_TIME DATE TIME_OF_DAY TIME 1 Direkte Ableitung von elementaren Typen, z.B.: TYPE R : REAL ; END_TYPE 2 Datentypen für Aufzählungen, z.B.: TYPE ANALOG_SIGNAL_TYPE : (SINGLE_ENDED, DIFFERENTIAL) ; END_TYPE 3 Datentypen für Bereich, z.B.: TYPE ANALOG_DATA : INT ( ) ; END_TYPE 4 Datentypen für Feld, z.B.: TYPE ANALOG_16_INPUT_DATA : ARRAY [1..16] OF ANALOG_DATA ; END_TYPE 5 Datentypen für Strukturen, z.B. Real-Wert mit Zeitstempel: TYPE STAMPED_REAL STRUCT VALUE : REAL; STAMP : DATE_AND_TIME; END_STRUCT END_TYPE Einschränkungen: - nicht in Anwender - deklarierten Programmorganisationseinheiten erlaubt! (Programm, Funktionsbaustein, Funktion)

16 Darstellung: Variablen
Variable Daten die mit Eingängen / Ausgängen / Speicherplatz verbunden sind Einzelelement - Variable: stellt ein einzelnes Datenelement dar (elementarer oder abgeleiteter Datentyp) symbolische Darstellung: durch „Bezeichner“: mind. 6 Groß / Kleinbuchstaben, Ziffern, Unterstrich, z.B.: Taste_ (Beginn: Buchstabe oder Unterstrich, Taste = TASTE, Keine Leerzeichen erlaubt, kein doppelter_ , kein _ am Ende) direkte Darstellung: Direkte Angabe eines Eingangs / Ausgangskanals oder Speicherplatz („Merker“): Kennzeichnung „direkte Darstellung“ Speicherort: I = Eingang, Q = Ausgang, M = Merker Signalart: X (oder kein Zeichen) = Einzelbit, B = Byte (8 Bit), W = Wort (16 Bit), D = Doppelwort (32 Bit), L = Langwort (64 Bit) Zählziffer (ggf. gegliedert: 1.2 = 1. Eingabegerät, 2. Kanal, Produkt - ahängig) % I X 1.2 Zuordnung von symbolischer Variablen zu „Ort“ mit „at“: Taste_1 at %IX1.3 Multielement - Variable Feld (en: Array): Sammlung von Datenelementen des gleichen Datentyps, z.B.: VAR speeds : REAL[0..3] := (0.0, 1.0, 3.0, 9.0); END_VAR Name, Typ, Element Wertzuweisungen Nummern Struktur (en: Structure): Deklaration eines Typs, der vorher als Datentyp festgelegt wurde

17 Darstellung: externe Daten
IEC 61131: Darstellung: externe Daten Eigenschaft/ Bedeutung: Beispiele: Numerische Literale*: ganzzahlig _ reell reell mit Exponenten E (= 1.34 * 10-12) Basis 2 2#1111_1111 (= 255 dezimal) Basis 8 8# (= 255 dezimal) Basis 16 16#FF (= 255 dezimal) Bool‘sche Null / Eins 0 / (entspr. FALSE /TRUE) Bool‘sches FALSE / TRUE FALSE / TRUE (entspr. 0 / 1) Zeichenfolge: leere Zeichenfolge ‘‘ mit 1 Zeichen: A ‘A‘ mit 1 Leerzeichen ‘ ‘ Zeit - Dauer: 25 Std. u. 12 Minuten T#25h12m / t#25h12m / T25h_12m Tag / Sekunde / Millsek.: d / s / ms Datum / Tageszeit: Datum ( ) D# oder DATE#.... Time of day (15:36:55.12) TOD#15:36:55.12 Date and Time DT# :36:55.12 oder DATE_AND_TIME#.... Kommentar: eingeschlossen von (* *) (* Text *) __ * Literal: Zeichenfolge zur Darstellung von Werten

18 Variablen - Deklaration
IEC 61131: Variablen - Deklaration Schlüsselworte zur Variablen- Deklaration „Zugriffspfad“: Zu beschreibende POE (Programm - Organisations - Einheit) Zugriffe von anderer Konf. VAR VAR_OUTPUT VAR_INPUT VAR_IN_OUT VAR_EXTERNAL VAR_TEMP ..CONSTANT ..RETAIN END_VAR nur innerhalb POE verwendet in POE erzeugt, nach aussen von aussen, in POE nicht änderbar von / nach aussen, von POE änderbar global definiert, in POE änderbar temporär: neu in jedem Durchgang zusätzlich hinter VAR..: nicht veränderbar zusätzlich: für neuen Warmstart speichern Ende einer Deklarationsart VAR_ACCESS VAR_GLOBAL Konfiguration 1 Konfiguration 2 Namen, durch Komma getrennt Zuordnung Datentyp Schlüsselworte Abschluss einer Deklaration Zur Initialisierung mit einem von „default“ abweichenden Anfangswert VAR_INPUT TASTE1, TASTE2 : BOOL; END_VAR VAR_OUTPUT STOP : BOOL : = 1; END_VAR textlich: grafisch für z.B. FB „MIX“: (wenn Produkt das erlaubt) MIX BOOL --- TASTE1 STOP --- BOOL :=1 BOOL --- TASTE2 Initialisierung von Konstanten z.B.: Initialisierung von Parametern eines Funktionsblockes (z.B. PI-Regler „TempReg“): VAR CONSTANT PI : REAL := VAR TempReg : PIR := (PropBand := 2.5, INTEGRAL := T#5s); END_VAR

19 Variablen - Deklaration, Beispiele für Typ - Zuweisung
IEC 61131: Variablen - Deklaration, Beispiele für Typ - Zuweisung Nr. Deklaration von: Beispiele Erläuterungen 1 direkt dargestellte VAR nicht gepufferte AT %IW6.2 : WORD ; 16-Bit - Folge von Eingang 6.2* (* Nr. Produkt - abhängig) Variablen AT %MW6 : INT; 16-Bit - Integer, Anfangswert = 0, im 6.* „Wort-Speicher“ END_VAR 2 direkt dargestellte VAR RETAIN 16-Bit - folge an Ausgang 5 * gepufferte AT %QW5 : WORD ; bei Warmstart Übernahme des Wertes vom Stopp-Zeitpunkt, Variablen END_VAR bei Kaltstart Initialisierung mit 16-Bit-Folge Wert 0 3 Speicherorte für VAR_GLOBAL symbolische GW_6 AT %IX27 : BOOL ; weist Boole‘scher Variablen „GW_6“ Eingang 27 * zu. Variablen MIX_ON AT %QX14 : BOOL ; weist Boole‘scher Variablen „MIX_ON Ausgang 14 * zu. 4 Speicherort für VAR Feld INARY AT %IW6 : deklariert ein Feld von 10 ganzen Zahlen, zugeteilt einem zu- ARRAY [0..9] OF INT ; sammenhängenden Speicherort ab Word - Eing. 6 * 5 automatische Speicher- VAR zuteilung für CONDITION : BOOL ; weist der Boole‘schen Variablen CONDITION 1 Bit zu symbolische Variablen AWORD, BWORD : INT; weist den Variablen AWORD und BWORD je 1 Wort zu 6 3 - dimensionales Feld VAR weist der Variablen THREE THREE : ARRAY [1..5, 1..10, 1..2] OF INT ein 3 - dimensionales Feld von END_VAR ganzen Zahlen zu 7 strukturierte VAR weist der Variablen MELD_1 Variable MELD_1 : STAMPED_REAL ; die Struktur STAMPED_REAL zu END_VAR (siehe Typ-Deklaration, Tab Fall 5)

20 Variablen - Deklaration, Beispiele für Anfangswert - Zuweisung
IEC 61131: Variablen - Deklaration, Beispiele für Anfangswert - Zuweisung Nr. Initialisierung von: Beispiele Erläuterungen 1 direkt dargestellte, VAR AT %X5.1 : BOOL := 1 ; weist Binär - Eingang 5.1 den Anfangs-Wert log. 1 zu nicht gepufferte AT %MW6 : INT := 8 ; initialisiert Wort 6 („Merker 6“) mit der ganzen Zahl 8 Variablen END_VAR 2 direkt dargestellte, VAR RETAIN Beim Kaltstart werden die 8 höchstwertigen Bits der gepufferte AT %QW5 : WORD := 16#FF00 1-Bit - Folge des Ausgangsworts 5 mit 1 initialisiert, und variablen END_VAR die 8 niedrigstwertigen Bits mit 0 3 Speicherort und VAR weist das Ausgangswort 28 der ganzzahligen Variablen Anfangswert für VALVE_POS AT %QW28 : INT := 100 VALVE_POS zu mit einem Anfangswert von 100 symbolische Var. END_VAR 4 Speicherort und VAR OUTARRAY AT %QW6 : weist der Variablen OUTRRAY ab Ausgangswort 6 Anfangswert für ARRAY [0..9] OF INT := 10(1) ; ein Feld von 10 ganzen Zahlen zu, Anfangswert jew. 1 Feld (gleiche Werte) END_VAR 5 Anfangswert für VAR weist 8 Speicherbits Anfangswerte zu: Feld (verschiedene BITS : ARRAY [0..7] OF BOOL := 1,0,0,0,0,1,0,1 BITS [0] := 1, BITS [1] := 0, . . . Werte) END_VAR 6 Symbolische VAR MYBIT : BOOL := 1 ; weist der Variablen MYBIT 1 Bit zu, Anfangswert 1, Variablen OKAY : STRING(10) := ‚OK‘ weist der Variablen OKAY Speich.platz für 10 Zeichen zu, END_VAR nach Initialisierung sind 2 Zeichen belegt mit OK 7 Struktur VAR MELD_1.VALUE := 0 , setzt Anfangswert für VALUE auf 0, MELD_1.STAMP := DT# :00; setzt Anfangswert für Datum/Zeit auf END_VAR (siehe Typ-Deklaration, Tab Fall 5)

21 Kommunikations - Modell, - Funktionsbausteine
IEC 61131: Kommunikations - Modell, - Funktionsbausteine Übergeordnete Steuerung - Norm beschreibt SPS als Server und Client, Verhalten des Clients gilt auch für „andere“ Systeme am Komm.-System - „entfernte“ Geräte: in anderer Einrichtung am Kommunikations - System - Verbindungen durch „Kommunikations - Kanäle“, definiert über Funktionsbaustein „CONNECT“, dadurch verfügbar für - Kommunikations - Funktionsbausteine, die Verbindung „verdeckt“ handhaben, interner Signalaustausch wie bei anderen Funktionsbausteinen - zur Adressierung sind eindeutige Namen von Programm - Instanzen pro Konfiguration nötig! Client Kommunikations - System Client Client Komm.- Kanal Server Anderes System SPS 1 SPS 2 KFB KFB Kommunikations- Funkt.-Bausteine Prozess Kommunikations - Funktionsbausteine Name: Zweck: Erläuterung: CONNECT Verbindungsmanagement liefert lokale Identifikation eines Kommunikationskanals mit entferntem Gerät (einrichten, nutzen, abbauen) (Kanal wird durch die anderen KFB per Parameter ID / R_ID verwendet) STATUS Gerätestatus periodische Abfrage des Status (Funktionsfähigkeit) eines entfernten Geräts USTATUS „Ungesteuerte“ (nur auf Anforderung gem Programm) Status - Abfrage READ Daten lesen fragt bei Aufruf eine / mehrere Variable(n) eines entfernten Gerätes ab WRITE Parameter schreiben schreibt Wert(e) in Variable(n) eines entfernten Gerätes USEND / BSEND programmiert* Daten senden sendet Wert / String an ..RCV mit gleichem Namen in entferntem Gerät URCV / BRCV programmiert Daten empfangen empfängt Wert / String von ..SEND mit gleichem Namen in entferntem Gerät (* bei Aufruf durch Programm) SEND synchronisiert steuern sendet an RCV (wie USEND), aber erwartet und empfängt Antwort von RCV RCV synchr. Steuern mit Verriegelung empf. von SEND (wie URCV) verriegelbar, startet Vorgang, meldet Ergebnis ALARM / NOTIFY programmiertes Melden sendet Wert(e) an entf. Gerät, erwartet Bestätigung (NOTIFY: keine Best.)

22 IEC 61131: Verbindungen (1) Signalverbindungen: Programm,
Funktionsbaustein a >1 & X E1 E2 E3 Programm 1 b VAR b: BOOL; END_VAR a) innerhalb eines Programms / Funktionsbausteins, in direkter Darstellungs - Folge: direkt, keine Deklaration nötig b) innerhalb eines Programms / Funktionsbausteins: mit „Abbruch“ interne Variable („Merker“) Konfiguration 1 c) innerhalb einer Konfiguration Zugriff auf Ein-/ Ausgang / Speicherplatz (Merker) durch direkte Darstellung Programm 1 Programm 2 VAR_INPUT at %IX1.3 : BOOL ; d : BOOL ; END_VAR VAR_OUTPUT at %QW5.4 END_VAR FB_X Eing.1 Eing.2 FB1 FB3 FB_Y d) innerhalb einer Konfiguration Zuordnung zu Eingang / Ausgang / Speicherplatz für bereits symbolisch deklarierte Variable (c) %IX1.3 Ausg.1 %QW5.4 d VAR_GLOBAL d at %IX1.4 :BOOL ; END_VAR Kanal Eing.Gerät 1 Gerät 2 ... Ausgabegerät .. 5 Konfiguration 1 Programm 1 FB_X Ausg.1 e VAR_GLOBAL e : BOOL ; END_VAR Programm 2 FB_Y Eing. 1 FB1 VAR_EXTERNAL e: BOOL; END_VAR FB3 e) zwischen Programmen einer Konfiguration: - über globale Variablen - Deklaration und - „EXTERNAL“ - Deklaration in beiden Programmen

23 IEC 61131: Verbindungen (2) Signalverbindungen:
f) zwischen „Geräten“ (Stationen) an einem Kommunikationssystem ( = Konfigurationen, Ressourcen ) über Kommunikations - Funktionsbausteine z.B. „USEND“ / „URCV“ (bzw. SEND / RCV, ALARM, STATUS, ..), auf Signalseite verwendbar wie normale Funktionsbausteine (FB1, FB2) Konfig. 1 CONNECT EN_C ID PARTNER CONNECT EN_C PARTNER ID Konfig. 2 Programm 1 P1 P3 FB1 SEND1 RCV1 FB2 FB_X FB_X USEND URCV f ID R_ID SD1 . . . SD i ID R_ID RD1 . . . RD i X1 X1 Ausg. Eing. Kommunikationsmanagement mit FB „CONNECT“ EN_C: „1“ oder Signal zur Komm.-Aufforderung PARTNER: Produktspez. Parameter ID: Kommunikationskanal - Kennung, für eigentliche Komm.-FB Konfiguration 1 Programm 1 FB_X Ausg.1 Ausg.2 Konfiguration 2 Programm 3 Eing.d VAR_ACCESS CSX: P1.g : REAL READ_ONLY; P1 P3 FB1 FB2 TO_FB2 READ RD_i Eing. VAR_1 . . . VARi ‘CSX‘ g ID Kanal-ID von CONNECT CSX (= g) VAR_OUTPUT g : BOOL; END_VAR oder g) zwischen „Geräten“ Konfigurationen auf Variablen mit direkter Darstellung oder „Zugriffs - Pfad“: - über VAR_ACCESS „Freigabe“ der bereits deklarierten Variablen e in P1 für Zugriff als Variable CSX - READ greift über Komm.Kanlal K12 (->P1) auf Variable CSX zu, Wert an RD_i verfügbar (Komm.Kanal durch FB „CONNECT“ definiert) Mögliche Komm.-Arten: READ_WRITE, READ_ONLY

24 Standard - Funktionen (1)
IEC 61131: Standard - Funktionen (1) Name Symb. Datentyp Bezeichnung Formel Datentyp - Umsetzer *_TO_** */**: INT, REAL, BCD Numerische Funktionen ABS ANY_NUM Absolutwert SQRT ANY_REAL Quadratwurzel LN ANY_REAL Nat. Logar. LOG ANY_REAL 10er Logar. EXP ANY_REAL Nat. Exponent. SIN ANY_REAL Sinus in rad COS ANY_REAL Cosinus in rad TAN ANY_REAL Tangens in rad ASIN ANY_REAL Arc.Sin. ACOS ANY_REAL Arc.Cos. Arithmetische Funktionen - Eingangsanzahl erweiterbar: ADD + ANY_NUM Addierer OUT := IN1+IN2+.. MUL * ANY_NUM Multiplizierer OUT := IN1 * IN2*.. - Eingangsanzahl fest: SUB - ANY_NUM Subtrahierer OUT := IN1 - IN2 DIV / ANY_NUM Dividierer OUT := IN1 / IN2 MOD ANY_NUM Rest einer Divis. EXPT ** ANY_NUM Exponent MOVE := ANY_NUM Zuordnung Name* Datentyp Bezeichnung Symbol Bool‘sche Funktionen AND ANY_BIT UND OR ANY_BIT ODER XOR ANY_BIT Exclusiv-ODER NOT ANY_BIT Negation Auswahlfunktionen SEL ANY Umschalter (OUT:=IN0 IF G = 0, := IN1 IF G = 1) MAX ANY_EL. Maximalwert MIN ANY_EL. Minimalwert LIMIT ANY_EL. Begrenzer (OUT := >MN < MX) MUX ANY Multiplexer (schaltet den Wert an Ausg., der Eing. Nr. „K“ zugeordnet) SEL BOOL -- G ANY ANY IN0 ANY IN1 MUX ANY_INT-- K ANY ANY-- (0) ANY-- (1) (erweiterbar) BOOL - . . . - BOOL * * ANY_EL ANY_EL. ANY_EL.-- ..(erweiterbar) LIMIT ANY_EL -- MN -- ANY_EL ANY_EL.-- IN ANY_EL.-- MX

25 Standard - Funktionen (2)
IEC 61131: Standard - Funktionen (2) Name Symb. Bezeichn. Formel Vergleicher GT > grösser (IN1 > IN2) & (IN2 > IN3) .. GE >= grösser/gleich (IN1 >= IN2) & (IN2 >= IN3).. EQ = Gleich (IN1 = IN2) & (IN2=IN3).. LE <= kleiner/gleich (IN1 <= IN2) & (IN2 <= IN3).. LT < kleiner (IN1 < IN2) & (IN2 < IN3).. NE <> ungleich IN1 <> IN2 (nicht erweiterbar) Bit - Verschiebungs - Funktionen Beispiel: SHL *** OUT := IN um N bit nach links IN N String - Funktionen Beispiel: LEN Str.-Länge A := LEN(‘ASTRING‘) Funktionen für Zeit / Datums - Datentypen Ausführungssteuerung durch EN / ENO Durch zusätzliche bool‘sche Eingangs - Variable EN (en: enable) mit Ausgang ENO EN OR Fehler z.B. Bereichs - Überschreitung AND ENO nur wenn EN = 1 Funktionsberechnung Eingang Ausgang “OK“ „kann“ verwendet werden ANY_ELEM.-- ** BOOL ANY_ELEM.-- (erweiterbar) Erstellung einer Anwender - Funktion: IA1 IA2 IO Anwender - definierte Funktion „AND_OR“ Deklaration im Funkt.-Plan: Standardfunktionen / Operatoren LD IA1 AND IA2 ... in der Anweisungsliste: AND OR OUT Anwendung AND_OR AND_OR ( IA1 := ... )

26 Standard - Funktionsbausteine
IEC 61131: Standard - Funktionsbausteine Symbol Bezeichnung Wirkungsweise Binäre Funktionsbausteine **dominierend speichernd „SR“ ** dominierend löschend „RS“ ** BOOL-- S* Q1 --BOOL BOOL-- R* Bistabiler F.Bl. (Speicher) Trigger * Zähler „UP“: CTU mit PV : INT, : DINT, : LINT : UDINT : ULINT entsprechend: CTD („DOWN“) mit Eing. CD CTUD („UP and DOWN“ mit Eingängen CU und CD TP Puls T--0 / TON EIN-Verzög. 0--T / TOF AUS-Verzög. S1 R Q1 S R1 Q1 0 -> 1 (Rising) R_TRIG (Falling) F_TRIG *_TRIG BOOL-- CLK Q --BOOL CLK Q CLK Q Zykluszeit Zykluszeit CT* BOOL-- CU Q --BOOL BOOL-- R INT-- PV CV --INT CU R Q PV CV 3 IN Q *** BOOL -- IN Q -- BOOL TIME -- PT ET -- TIME Deklaration: z.B.: FF1 SR %IX1 - S1 Q1 - %Q3 %IX2 - R Bezeichner Typ IN Q (ET: Elapsed Time = vergangene Zeit) PT IN Q (ohne „Nachtriggerung“) PT PT Kommunikations - Funktionsbbausteine Signalaustausch zwischen Konfigurationen, Alarm - Handhabung, ... Januar 2004

27 Anwender- deklarierte Funktionsbausteine
IEC 61131: Anwender- deklarierte Funktionsbausteine Zwei Anwendungen: - Komplexe Funktionsbausteine Einsetzbar wie Standard- Funktionsbausteine Wirkungsweise (Detail- Funktionsplan) GT IN H2 H1 L1 L2 LT AND OH2 OH1 OL1 OL2 Symbol: LIMMON IN H2 OH2 H1 OH1 L1 OL1 L2 OL2 Beispiel: Grenzsignalbildung, wenn in einem Projekt oft benötigt: mit 2 x 2 Grenzwerten, höhere Grenzsignale sollen tiefere sperren - Unterprogramme Mehrfach benötigte Abläufe realisiert als Unterprogramme, Aufgerufen als „Funktionsbausteine“ Funktionsbausteine (Unterprogramme) - AutoAmpel Ausgangssituatoin: ROT über GELB nach GRÜN, wieder GELB bis ROT - FußgAmpel nach GRÜN, wieder auf ROT Programm- Struktur: Hauptprogramm (Logik, Zeiten) Auto waagerecht AutoAmpel Auto senkerecht Fußg. waagerecht FußgAmpel Fußg senkrecht Beispiel: Ampelsteuerung

28 4. DIN EN 61131: Grafische Sprachen
PLC - Programmiersprachen Gliederung 1. Übersicht Sprachen, Entwurfsmethoden 2. DIN EN 61131 SW - Modell, Datentypen, Variablen, Kommunikationsmodell, Verbindungen, Funktionen, Funktionsbausteine 3. DIN EN 61131: Textsprachen AWL (Anweisungsliste), ST (Strukturierter Text) 4. DIN EN 61131: Grafische Sprachen FBS (Funktionsbausteinsprache), KOP (Kontaktplan), AS (Ablaufsteuerung) 5. DIN EN 61131: Deklaration der Programmstruktur 6. Anwendungsbeispiele „Wiegen“ (Sprachen - Vergleich) „Totmannsknopf“ (Funktionsbaustein) „Mixer“ (Ablauf), „Speisepumpe“ (POE - Struktur) 7. IEC 61499: Anlagenautomatisierung durch vernetzte Funktionsbausteine und IEC 61804: Funktionsbausteine für die Prozessautomatisierung

29 Anweisungsliste: Form
IEC 61131, Anweisungsliste: Form Formaler Aufbau A/N-Zeichen Funktion, Variable A/N-Zeichen -Eingang Marke Operator Operand Kommentar Allgemein: A: F V (* A *) FM V1, V2 Beispiel: Start: LD %IX1.1 (* Taste 1 *) Semantik: Ergebnis := Ergebnis Operator (Operand) z.B.: Ergebnis := Ergebnis AND %IX1 „modifiziert“: Ergebnis := Ergebnis ANDN %IX1 geschachtelt: Ergebnis := Ergebnis AND( %IX1 OR %IX2 ) Bezeichn. Name Eingänge Bezeichn. Name Eing. Speicher S SR S1, R Pulsgeb. TP IN, PT R RS S, R1 Einsch.Verz. TON IN, PT Trigger 0->1 R_TRIG CLK Aussch.Verz. TOF IN, PT 1->0 F_TRIG CLK Zähler vorw. CTU CU, R, PV rückw. CTD CD, LD, PV vorw/rückw. CTUD CU, CD, R, LD, PV Funktionsbaustein - Eingänge als Operatoren

30 Anweisungsliste: Operatoren
IEC 61131, Anweisungsliste: Operatoren Form: Beispiel: Marke : Operator Operand Kommentar START: LD %IX1 (* Taste *) ANDN %MX5 (* nicht gesperrt *) ST %QX2 (* Lüfter EIN *) „lade“ (nehme) X1 als aktuellen Wert, verknüpfe: X1 AND NOT X5 „speichere“ Ergebnis in X2 N: Negation, ( Klammer auf, C: nur durchführen, wenn aktueller Wert log. „1“ Operatoren: Operat. Modif. Bedeutung LD N aktueller Wert = Operand ST N aktuellen Wert in Operanden speichern S setze Operand = 1 wenn aktueller Wert log. „1“ ist R setze Operand = o wenn aktueller Wert log. „1“ ist AND N, ( log. UND OR N, ( log. ODER XOR N, ( log. Exclusiv - ODER NOT log. Negation (bitweise bool‘sche Negation) ADD ( Addition nach Ausführung einer Zeile: SUB ( Subtraktion z.B.: LD A (*aktueller Wert = A*) MUL ( Multiplikation MUL B (* A ● B =neuer akt. Wert *) DIV ( Division MOD ( Modulo – Division alte aktuelle Werte sind nur verfügbar, GT ( Vergleich: > (ergibt 1 wenn grösser) wenn sie gespeichert werden (z.B. ST C) GE ( Vergleich: >= (grösser oder gleich) EQ ( Vergleich: = (gleich) NE ( Vergleich: < > (ungleich) LE ( Vergleich: <= (kleiner oder gleich) LT ( Vergleich: < (kleiner) JMP C, N Springe zu Label .. CAL C, N Rufe Funktionsblock auf, Name im Operand RET C, N gehe zurück von aufgerufener Funktion / FB / Programm ) berechne die eingeklammerte Funktion, Zeile ohne Operand! Geschachtelt: AND( LD %IX1 OR %IX2 ) AND( %IX1 OR %IX2 oder: März 2017

31 Anweisungsliste: Funktionsblock - / Funktionsaufruf
IEC 61131, Anweisungsliste: Funktionsblock - / Funktionsaufruf Funktionsblock „CTU“ (Vorwärtszähler) VAR C10 : CTU; A, B : INT; ELAPSED : TIME OUT : BOOL END_VAR zugrunde liegende Deklaration: (anzuwendender FB Typ CTU wird mit Namen C10 deklariert) CTU BOOL -->CU Q -- BOOL BOOL -- R INT -- PV CV -- INT CAL C10(%IX10, FALSE, A, OUT) CAL C10( CU := %IX10, Q => OUT ) LD A ST C10.PV LD %IX10 ST C10.CU CAL C10 PV C10 CU C10 Funktionsblock - Aufruf 1a) mit nicht - formaler Argumenten - Liste: 1b) mit formaler Argumenten - Liste: 2) mit laden / speichern von Argumenten: (FB-Name . Anschluß) 3) mit Benutzung der Eingangs-Operatoren: IF R THEN CV := 0; ELSIF CU AND (CV < Pvmax) THEN CV := CV + 1; END_IF Q := (CV >= PV); Abgrenzungs / Zuordn.Zeichen z.B. für formale Listen: := Eingangs - Zuweisung => Ausgangs - Zuweisung ; Statement - Ende # Anfangswert - Voreinstellung für Datum / Zeit LIMIT ANY* -- MN ANY* ANY* -- IN ANY* -- MX (ANY*: elementare Variable, z.B. REAL, INT) A:=MIN(MAX(IN,MN), MX) Funktion „LIMIT“ (Begrenzung) Funktions - Aufruf 1) mit formaler Argumenten - Liste: LIMIT( IN := B MN := 1 MX := 5 ) ST A LD LIMIT B, 5 ST A 2) mit nicht formaler Liste:

32 IEC 61131, Strukturierter Text Operatoren Anweisungen
Nr. Operation Symbol Rangfolge 1 Klammerung ( Ausdruck ) höchste 2 Funktions - Auswertung Funktion (Arg.1, Arg.2, ..) Beispiel: LN(A), MAX(X, Y) 3 Potenzierung ** 4 Negation - 5 Komplement NOT 6 Multiplikation * 7 Division / 8 Modulo MOD 9 Addition + 10 Subtraktion - 11 Vergleich <, >, >=, >= 12 Gleichheit = 13 Ungleichheit < > 14 Boole‘sches UND & 15 Boole‘sches UND AND 16 Boole‘sches Ecl. ODER XOR 17 Boole‘sches ODER OR niederste Operatoren Anweisungstyp Beispiel Zuweisung A := B ; CV := CV + 1; C := SIN(X) Funktionsbaustein- TON1(IN := %IX5, PT := T#300ms) ; Aufruf, Ausg.Zuw. A := TON1.Q RETURN RETURN IF / THEN D := B*B - 4*A*C ELSIF, ELSE IF D < 0.0 THEN NROOTS := 0; ELSIF D = 0.0 THEN NROOTS := 1 X1 := - B / (2.0 * A) ; ELSE ... END_IF CASE TW := BCD_TO_INT(THUMBWHEEL) CASE TW OF 1,3 : DISPLAY := OVEN_TEMP ; 2 : DISPLAY := MOTOR_SPEED ; ELSE DISPLAY := 0 END_CASE FOR FOR I := 1 TO 100 BY 2 DO IF .. END_FOR WHILE WHILE J <= DO J := J + 2 ; END_WHILE Wiederholung REPEAT .. END_REPEAT Ausgang EXIT EXIT ; Anweisungen

33 4. DIN EN 61131: Grafische Sprachen
PLC - Programmiersprachen Gliederung 1. Übersicht Sprachen, Entwurfsmethoden 2. DIN EN 61131 SW - Modell, Datentypen, Variablen, Kommunikationsmodell, Verbindungen, Funktionen, Funktionsbausteine 3. DIN EN 61131: Textsprachen AWL (Anweisungsliste), ST (Strukturierter Text) 4. DIN EN 61131: Grafische Sprachen FBS (Funktionsbausteinsprache), KOP (Kontaktplan), AS (Ablaufsteuerung) 5. DIN EN 61131: Deklaration der Programmstruktur 6. Anwendungsbeispiele „Wiegen“ (Sprachen - Vergleich) „Totmannsknopf“ (Funktionsbaustein) „Mixer“ (Ablauf), „Speisepumpe“ (POE - Struktur) 7. IEC 61499: Anlagenautomatisierung durch vernetzte Funktionsbausteine und IEC 61804: Funktionsbausteine für die Prozessautomatisierung

34 Graphische Sprachen: Gemeinsame Elemente
IEC 61131, Graphische Sprachen: Gemeinsame Elemente Linienelemente: Linien Verbindung Kreuzung Ecke Block mit Verbindungen | | Normale Text-Zeichen: | | | | | | -| | Sonderzeichen (mit Anw.-definierten): nicht in der Norm fetgelegt! „Konnektoren“: (dürfen nicht Speicherung bewirken (Linien - Abbruch) --->MELDG> oder Datenelement - Zuordnung sein!) Sprung: ---START>> (auf „Netzwerk“ - Marken) Rücksprung: --<RETURN> Signal- / Strom - Fluss: FBS: KOP: | | +--| |--| |--( )-+ AS: Ausgang => Eingang Aktion Transition

35 IEC 61131, Funktionsplan: Form Symbole: Dargestellt als Rechtecke,
Seitenlängen nach Bedarf Name von Funktion / Funktionsblock Signalflussrichtung: von Ausgang an Eingänge AND Eingänge Ausgang (ohne Namen wenn gleichartig) RS S Q1 R1 Bei verschiedenartigen Ein/Ausgängen: Eingangs / Ausgangsnamen (Abkürz.) FF1 Instanz-Name bei Funktionsbausteinen Jede CPU - Aktivität benötigt „Kästchen“, „wired OR“ des Kontaktplans verboten! OR A B C (D) AND D März 2017

36 Funktionsplan: Netzwerke
IEC 61131 Funktionsplan: Netzwerke Forderung an DIN 61131: Kompatibilität zwischen Anweisungsliste, Kontaktplan und Funktionsplan Funktionsplan: „Baum – Struktur“ (* Zeilen-Wert: *) LD A (* A *) AND B (* A & B *) OR( C (* A & B >1 C *) AND D (* A & B >1 C & D *) ) (* E *) Anweisungsliste: A B C D & Netzwerk 1 >1 E & J & >1 Netzwerk 2 F G H I & „Unter-Netzwerk“ „Abzweig“ Nicht in der DIN 61131, aber „Quasi – Norm“ Continuous Function Chart (CFC) A B D 1 C E F & >1 2 TP IN Q PT ET T1 t#1s 3 G 4 5 Reihenfolge TON IN Q PT ET t#2s T1 IN 2s Q - Zwischenergebnisse werden (bis zum nächsten Aufruf) gespeichert, dadurch - Eingänge / Funktionen / Funktionsbausteine / Ausgänge frei positionierbar, - Bearbeitungs-Reihenfolge ist festzulegen! (wenn „falsch“: Verzögerung!) Rekursion möglich! September 2017

37 IEC 61131, Kontaktplan: Form „Wirkschaltplan“ „Stromlaufplan“
Taste EIN ( ) „Kontaktplan“ KOP - Symbole: Störung Pumpe EIN L N „Pfad“ K1 K2 K3 Taste EIN Störung Pumpe K2.1 (Störung) K1.1 (Taste EIN) K3 L N K1 K2 Taste EIN Störung Pumpe Taste EIN Störung ( ) Pumpe KOP (Für SPS: waagerecht)

38 Kontaktplan: „Kontakte“ (Symbole)
IEC 61131, Kontaktplan: „Kontakte“ (Symbole) Nr. Symbol Bedeutung 1 --| |-- Schließer 2 --|/|-- Öffner 3 --|P|-- Pos. Übergang (0->1 - Trigger) 4 --|N|-- Neg. Übergang (1->0 - Trigger) 5 --( )-- „Spule“ (Ergebnis) 6 --(/)-- „negative Spule“ (Negation) 7 --(S)-- SETZE - Spule (speichern) 8 --(R)-- RÜCKSETZ - Spule (rücksetzen) auch statt Nr.5: |M|, 7: |SM|, 8: |SR| für „gepuffert“ Anwend.beispiele: UND: --| |--| |--( ) ODER: --| | ( ) | --| |--+

39 IEC 61131, Ablaufsprache (AS) - Elemente (Sequential Function Chart Element): Form Schritt, grafisch Wirkungsweise Aktionsblock, grafisch Schr. n-1 Schr. n-1 Schritt n Anzeige-Variable der Aktion (nur wenn verwendet) Transition n-1 & S Q R Aktion n Aktions - Name Schr. n Aktion n S8 N VA_AUF VOLL Schr. n+1 & BOOL‘sche Variable, wird „1“ wenn S8 aktiv, Transition n S Q R Aktion n+1 oder „Aktion“: Ausführung, wenn S8 aktiv Schr. n+1 Aktion n+1 N FUELLEN VOLL Vom vorherigen Schritt Schritt allgemein Schritt - Name (meist „Schritt“ und Nr.) zum nächstfolgenden Schritt *** S8.X C VA_AUF & „Aktion“, direkt dargestellt (je nach Editor) in einer Sprache dieser Norm, oder als eigener Block mit Aktions-Namen: Vom Ende des Programms (zur Wiederholung Start - Schritt Schritt - Name (meist „START“ oder „INIT“) zum ersten Befehlsschritt *** N FUELLEN VOLL Anwendung *** Direkte Verbindung für Befehlsgabe oder Meldung, hat „1“ wenn Schritt aktiv, auch als Signal verwendbar, geschrieben: ***.X ACTION_1 ACTION_1 S8.X C VA_AUF Deklaration Weiterschalt - Bedingung (Transition) textlich (von rechts) oder grafisch (von links): & Aktions- Steuerg: A B A & B & N : Nicht speichernd, S : Speichernd R : Rücksetzend (dominierend) L : Zeit-begrenzt (Limited) D: verzögert (Delayed) P: Puls – Befehl, auch P1(), P0() Kombinationen möglich: SD, DS, SL Vorgeschriebene Reihenfolge: Schritt – Trans. – Schritt – Trans. -- ***.T Abgelaufene Zeit eines Schrittes (wenn implem.) (bleibt nach Abschalten des Schrittes stehen) *** ***.T > t1 Anwendung: z.B „Wartezeit“, deklariert: t1:TIME:=7s; Juli 2013

40 Ablaufsprache (AS): Befehlssteuerung
IEC 61131, Ablaufsprache (AS): Befehlssteuerung Mit implementiertem Funktionsbaustein „Action Control“ über „Aktions - Art“ gesteuert, Wirkungseise (nach Beiblatt zum Teil 3 der Norm): BOOLEAN#1 (TRUE) / #0 (FALSE) Hier: t S11.X A11 TR1 S11 N A11 „Nicht gespeichert“ TR11 Speichernd mit Befehlsverzögerung: S12 S A12 „Speichernd“ S12.X A12 TR12 SD: S12.X PT=10s A12 TR12 TR12 S19 R A12 „Rücksetzend“ S19.X TR19 S19.X TR19 TR19 Verzögert speichernd: S15.X PT=5s A15 TR15 DS: S15.X PT=10s A15 TR15 S15 D T#5s A15 „Delayed“ (verzögert) TR15 früh: TR15 S15.X PT=10s A15 TR15 TR15 später: S16 L T#6s A16 „Limited“ (begrenzt) S16.X PT=6s A16 TR16 LS: S16.X PT=6s A16 TR16 TR16 S17.X 1 Zyklus A17 TR17 Auch: „P1“ für P, dann „P0“: S17.X 1 Zyklus A17 TR17 S17 P A17 „Pulse“ TR17 (manchmal Ersatz für „abschließenden Durchlauf“) November 2015

41 Ablaufsprache (AS): Beispiel „Brenner“
IEC 61131, Ablaufsprache (AS): Beispiel „Brenner“ Grafische Darstellung in FBS-Sprache, Transitionen in ST Textliche Deklaration FUNCTION_BLOCK BRENNER VAR_INPUT Bef_EIN : BOOL; (* Start-Befehl *) Gebl_RM_EIN : BOOL; (* Rückmeldung Gebläse EIN *) Flamme_AN : BOOL; (* Sensor: Flamme brennt *) END_VARIABLE VAR_OUTPUT Gebl_Bef_EIN : BOOL; (* EIN-Befehl an Gebläse *) END_VAR VAR BELUEFTET : BOOL; (* Belueftungszeit um *) T1 : TIME:=T#5s; (* Zuendversuchszeit *) Schr0 Bef_EIN Schr1 S Gebl_Bef_EIN Gebl_RM_EIN Schr2 D T#10s Belueftet N Meld_VORBELUEFTG Belueftet Schr3 L T#5s Oelvent_Bef_AUF N Zuendtrafo_Bef_EIN Flamme_AN NOT Flamme_AN & Schr3.T > t1 Schr4 N Oelvent_Bef_AUF Schr6 N Meld_STOERUNG N Meld_BETRIEB NOT Flamme_AN OR Bef_AUS QUITT Text- Darstellung mit ST-Sprachelementen Schr5 R Gebl_Bef_EIN INITIAL_STEP SCHR0: END_STEP TRANSITION FROM SCHR0 TO SCHR1:= Bef_EIN; END_TRANSITION STEP SCHR1: Gebl_Bef_EIN (N); END_STEP TRANSITION FROM SCHR1 TO SCHR2:=Gebl_RM_EIN; STEP SCHR2: Belueftet (D T#10s), Meld_VORELUEFTG (N); END_STEP TRANSITION ….. NOT Gebl_RM_EIN Gebläse Zündtrafo Ölventil Flammwächter

42 Ablaufplan: Aktionen, Programm - Strukturen
IEC 61131, Ablaufplan: Aktionen, Programm - Strukturen Einfache Kette mit Transition (Übergang) c STEP 3 R S = c c & STEP 4 R S Verzweigung / Zusammenführung bei Kettenauswahl STEP 4 STEP 6 g h STEP 3 STEP 5 STEP 7 STEP 8 = St.5, 7 h Step 8 & Simultankette Ketten - Sprung STEP 3 STEP 4 STEP 5 STEP 6 e f j STEP 3 STEP 4 STEP 5 STEP 6 e j k Ketten - Schleife R S & f e j k >1 = alternativ! STEP 4 STEP 6 e f STEP 3 STEP 5 STEP 7 j k STEP 8

43 4. DIN EN 61131: Grafische Sprachen
PLC - Programmiersprachen Gliederung 1. Übersicht Sprachen, Entwurfsmethoden 2. DIN EN 61131 SW - Modell, Datentypen, Variablen, Kommunikationsmodell, Verbindungen, Funktionen, Funktionsbausteine 3. DIN EN 61131: Textsprachen AWL (Anweisungsliste), ST (Strukturierter Text) 4. DIN EN 61131: Grafische Sprachen FBS (Funktionsbausteinsprache), KOP (Kontaktplan), AS (Ablaufsteuerung) 5. DIN EN 61131: Deklaration der Programmstruktur 6. Anwendungsbeispiele „Wiegen“ (Sprachen - Vergleich) „Totmannsknopf“ (Funktionsbaustein) „Mixer“ (Ablauf), „Speisepumpe“ (POE - Struktur) 7. IEC 61499: Anlagenautomatisierung durch vernetzte Funktionsbausteine und IEC 61804: Funktionsbausteine für die Prozessautomatisierung

44 Deklaration Programm - Struktur: Aufgabe, „Bausteine“
IEC 61131: Deklaration Programm - Struktur: Aufgabe, „Bausteine“ Beispiel: Konfiguration CELL_1 RESSOURCE STATION_1 RESSOURCE STATION_2 TASK SLOW_1 TASK FAST_1 TASK PER_2 TASK INT_2 P1 P2 P1 P4 PROGRAMM F PROGRAMM G PROGRAMM F PROGRAMM H FB1 FB2 FB1 FB2 A SLOW_1 B FAST_1 C PER_2 D SLOW_1 PER_2 INT_2 FUNCTION_BLOCK A VAR ... END_VAR (* FB Body *) END_FUNCTION_BLOCK FUNCTION_BLOCK B FUNCTION_BLOCK C FUNCTION_BLOCK D PROGRAM F VAR .. END_VAR (* Program Body *) END_PROGRAM PROGRAM G FB1(..) ; out := .. FB2(..) ; ... PROGRAM H FB1(..) ; .. Deklaration von Programmen und Funktionsbausteinen TASK BOOL -- SINGLE TIME -- INTERVAL UINT -- PRIORITY Task allgemein: Januar 2004

45 Deklaration Programm - Struktur: in ST - Sprache
IEC 61131: Deklaration Programm - Struktur: in ST - Sprache 1 CONFIGURATION CELL_1 2 VAR_GLOBAL ... END_VAR 3 RESSOURCE STATION_1 ON PROCESSOR_TYPE_1 4 VAR_GLOBAL .. END_VAR 5a TASK SLOW_1(INTERVAL := t#20ms, PRIORITY := 2) ; 5b TASK FAST_1 (INTERVAL := t#10ms, PRIORITY := 1) ; 6a PROGRAM P1 WITH SLOW_1 : ... PROGRAM P2 : G( 6b FB1 WITH SLOW_1, FB2 WITH FAST_1) 3 END_RESSOURCE 3 RESSOURCE STATION_2 ON PROCESSOR_TYPE_2 5a TASK PER_2(INTERVAL := t#50ms, PRIORITY := 2) ; 5b TASK INT_2 (SINGLE := z2, PRIORITY := 1) ; 6a PROGRAM P1 WITH PER_2 : 6a PROGRAM P4 WITH INT_2 : 6b FB1 WITH PER_2 ; 10a VAR_ACCESS 10b ... 10a END_VAR 1 END_CONFIGURATION evtl. Deklaration globaler Variablen auf Konf.-Ebene evtl. Deklaration globaler Variablen auf Ress.-Ebene Task-Deklaration mit Zykl.Zeit und Priorität Programm-Deklaration, ggf. mit Zuordnung zu Task Auflistung von FBs mit Task - Zuordnung Task INT_2 läuft nur einmal, angeregt von Signal z2 ggf. Deklaration von Zugriffspfaden

46 4. DIN EN 61131: Grafische Sprachen
PLC - Programmiersprachen Gliederung 1. Übersicht Sprachen, Entwurfsmethoden 2. DIN EN 61131 SW - Modell, Datentypen, Variablen, Kommunikationsmodell, Verbindungen, Funktionen, Funktionsbausteine 3. DIN EN 61131: Textsprachen AWL (Anweisungsliste), ST (Strukturierter Text) 4. DIN EN 61131: Grafische Sprachen FBS (Funktionsbausteinsprache), KOP (Kontaktplan), AS (Ablaufsteuerung) 5. DIN EN 61131: Deklaration der Programmstruktur 6. Anwendungsbeispiele „Wiegen“ (Sprachen - Vergleich) „Totmannsknopf“ (Funktionsbaustein) „Mixer“ (Ablauf), „Speisepumpe“ (POE - Struktur) 7. IEC 61499: Anlagenautomatisierung durch vernetzte Funktionsbausteine und IEC 61804: Funktionsbausteine für die Prozessautomatisierung

47 Sprachen (Darstellungen): Beispiele
IEC 61131, Sprachen (Darstellungen): Beispiele Deklaration textlich: Deklaration grafisch: WEIGH BOOL -- EN ENO -- BOOL BOOL -- weigh_comd WORD WORD-- gross_weight INT tare_weight FUNCTION WEIGH : WORD (* BCD – codiert*) VAR_INPUT (* “EN“ input used to indicate “ready“ *) weigh_comd : BOOL; gross_weight : WORD; (* BCD - codiert *) tare_weight : INT; END_VAR (* Function Body *) END_FUNCTION Programmbeschreibung als Anweisungsliste LD weigh_comd JMPC WEIGH_NOW (* weighing*) ST ENO (*no weighing*) RET WEIGH_NOW LD gross_weight BCD_TO_INT SUB tare_weight INT_TO BCD ST WEIGH Programmbeschreibung als Funktionsplan weigh_comd gross-weight tare_weight BCD_ TO_INT EN ENO SUB EN ENO INT_ TO_BCD EN ENO ENO WEIGH IF weigh_comd THEN WEIGH := INT_TO_BCD (BCD_TO_INT(gross_weight) - tare_weight); END_IF Programmbeschreibung als Strukturierter Text ENO ( ) WEIGH Programmbeschreibung als Kontaktplan weigh_comd gross-weight tare_weight BCD_ TO_INT EN ENO SUB EN ENO INT_ TO_BCD EN ENO Aufgabe: Funktion zur Ermittlung des Nettogewichts (WEIGH) aus Brutto - Gewicht (gross_weigh) in BCD und Tara (tare_weigh) als INT, startet Berechnung mit „1“ an “weigh_comd“

48 1) „Totmannsknopf“ (Funktionsblock)
Anwendungsbeispiele: 1) „Totmannsknopf“ (Funktionsblock) Gegeben: Der Lokführer einer Diesel - Lok muss alle 50 s den „Totmanns - Knopf“ drücken. Erfolgt dies nicht, so ertönt 14 s lang ein Warnton. Wird auch dann der Knopf nicht gedrückt, so wird die Lok abgebremst und der Warnton verstummt. Aufgabe: Deklaration (textlich) und Programmbeschreibung (FBS, ST, AWL) erstellen als Funktionsblock. Erstellen Sie sich als Hilfe ein Signal - Zeit - Diagramm

49 Anwendungsbeispiele: Beispiel Mixer
Gegeben: Mit einem „Ablaufplan“ ist das Mischen zweier Flüssigkeiten auf ein Startsignal ST zu steuern: 1. Aus A in C füllen durch VA: Gewicht a, 2. Aus B in C füllen durch VB: Gewicht b, 3. Durch VC in Mixer füllen bis Gewicht = 0 4. 60 s lang mit MR mixen, 5. Mixer nach unten kippen, 10 s warten, dabei bleibt MR ein. 6. Mixer wieder nach oben kippen, MR ausschalten Deklaration: FUNCTION_BLOCK MIX VAR_INPUT ST : BOOL ; (* Start - Befehl *) SO : BOOL ; (* Endschalter OBEN *) SU : BOOL ; (* Endschalter UNTEN *) WG : WORD ; (* aktuelles Gewicht *) WA : INT ; (* gewünschtes Gewicht von A *) WB : INT ; (* gewünschtes Gewicht von B *) END_VAR VAR_OUTPUT VA , (* Ventil VA: 0 - zu, 1 - offen *) VB , (* Ventil VB: 0 - zu, 1 - offen *) VC , (* Ventil VC: 0 - zu, 1 - offen *) MR, (* Mixer - Motor, 0 - aus, 1 - ein *) MDO, (* Kipp - Motor, dreht mit 1 nach oben *) MDU, (* Kipp - Motor, dreht mit 1 nach unten *) VAR WZ1, WZ2 : BOOL END_VAR (*Wartezeit Ende *) Aufgabe: Ablaufplan (grafisch) erstellen, dabei die „Aktions - Steuerung“ (Seite 19) unterstellen. A B VA VB C VC WG WA WB Wiege - Einheit Mixer, kippbar MR SO MDO Endschalter „OBEN“ MD MDU SU Endschalter „UNTEN“

50 3) Speisepumpe (POE - Struktur)
Anwendungsbeispiele: 3) Speisepumpe (POE - Struktur) Gegeben: Speisepumpe SSP - über Tasten und Automatik schaltbar, - EIN nur erlaubt, wenn AV zu und OELDR - Schutz-AUS wenn TANKNIV < MIN (10%) Hilfsölpumpe HPP - über Tasten und Automatik schaltbar Absperrventil AV - über Tasten und Automatik zu öffnen / zu schließen, - darf nur geschlossen werden, wenn SPP aus ist Tank - Niveaumessung TANKNIV - analoge Messung, liefert % (für bar) Schutz-AUS - Signal (binär) durch Funktion erzeugt Öldruck - Messung OELDR - binäre Messung, liefert „1“ für „Druck vorhanden“ Automatik zum Anfahren / Abfahren mit EIN - und AUS - Programm, berücksichtigen: EIN - Programm: 1. AV zu und HPP ein 2. SPP ein 3. AV auf Aufgabe: a) Erstellung des Blockschaltbildes einer sinnvoll gegliederten Struktur der oben genannten Aufgabe oberhalb der nebenstehenden Skizze. Stellen Sie Antriebs- u. Gruppensteuerung als „Kästchen“ dar, ohne Logik, aber mit beschrifteten Pfeilen für Eingangssignale und Befehle, Hand- Betätigungen als Tasten. M M TANKNIV M OELDR HPP Tank AV SPP b) Erstellung der Funktionspläne von Hilfsöl­pumpe, Speisepumpe und Absperrventil. Benutzen Sie komplexe Funktionsbausteine mit Eingängen AE/AA für Automatik-Befehle, FE/FA für Freigaben, SE/SA für Schutzeingriffe.. Stellen Sie nur die Antriebs- spezifischen Verknüp­fungen (wie „EIN- Freigabe durch „AV ZU“ UND „Öldruck vorh“) mit Logik- Funktionen dar. Tastenbedienung nicht darstellen.

51 4. DIN EN 61131: Grafische Sprachen
PLC - Programmiersprachen Gliederung 1. Übersicht Sprachen, Entwurfsmethoden 2. DIN EN 61131 SW - Modell, Datentypen, Variablen, Kommunikationsmodell, Verbindungen, Funktionen, Funktionsbausteine 3. DIN EN 61131: Textsprachen AWL (Anweisungsliste), ST (Strukturierter Text) 4. DIN EN 61131: Grafische Sprachen FBS (Funktionsbausteinsprache), KOP (Kontaktplan), AS (Ablaufsteuerung) 5. DIN EN 61131: Deklaration der Programmstruktur 6. Anwendungsbeispiele „Wiegen“ (Sprachen - Vergleich) „Totmannsknopf“ (Funktionsbaustein) „Mixer“ (Ablauf), „Speisepumpe“ (POE - Struktur) 7. IEC 61499: Anlagenautomatisierung durch vernetzte Funktionsbausteine und IEC 61804: Funktionsbausteine für die Prozessautomatisierung

52 Aufgaben und Maßnahmen
Anforderungen an das heutige Anlagen - Engineering: Maßnahmen: technisch: - Definition komplexer Funktionsblöcke - steigender Automatisierungsgrad (vertikale Ausdehnung) - größere zu automatisierende Anlagen (horizontale Ausdehnung) d.h. mehr Einzelaufgaben sind koordiniert zu automatisieren - Konzepte zur Vernetzung der Funktionsblöcke - höhere Sicherheit / Verfügbarkeit - erprobte Funktionsblöcke (weniger system. Fehler) ökonomisch: - kürzere Erstellungszeiten - Wiederholtechnik (weniger Engineeringaufwand, höherer Bekanntheitsgrad) - geringere Erstellungskosten - geringere Wartungskosten

53 Einsatzgebiete der IEC 61 499 und 61 804
Tool Fertigungsautomatisierung Prozessautomatisierung Motion Control Steuerung / Regelung allg. (UML in Anfängen) verborgen: Ereignisse Daten Ausführ.- Steuerung Algorithmen Interne IEC 61499 Messw.- Aufbereitg. Verar- beitung Abstraktion Verschaltung komplexer Funktionsblöcke, Verteilte SW  Anlagen - Sicht Standardfunktionsbl. gemäß IEC 61804 Drive Basis-F. MRS-Kreis MRS-Kreis Anw.: Parametrierung der Makro-Eingänge Entw.: Höhere Programmierspr. + Makros erstellt vom Hersteller (proprietär) oder Anwender erstellt vom Anwender  Objekt - Sicht IEC 61131 - Strukturierter Text - Funktionsplan, Ablaufplan - Kontaktplan - Anweisungsliste „kompatibel“ >1 S R Σ & >1 S R Σ (S) Basis - Funktionen, - Funktionsbausteine  PLS - Sicht

54 IEC 61499 – Funktionsblock mit Zustandsmaschine und Logik
OMAC – Zustandsmaschine (Open Modular Architecture Controls, Standards amerikanischer Verpackungsfirmen) Ereignisse Daten IEC – Funktions- baustein vereinfachtes Beispiel: Off Power ON/OFF Stopped Starting Prep. Start Standby Producing Materials ready Materials RunOut Stopping Stop IEC – Funktionsbausteine AND OR R S Komplexe, wiederverwendbare Teilfunktionen, geschrieben in IEC 61131 IEC bringt:  Reduktion von Engineeringkosten durch - integrierte Tools für Konfiguration, Programmierung und Datenmanagement  Einfaches Modell für verteilte und zentrale Strukturen  Einfache Portierbarkeit von Applikationsprogrammen, unabhängig von eingesetzter HW, Betriebssystem, Programmiersprache, Kommunikation  gekapselte, einfach (wieder-) verwendbare, komponentenbasierte SW – Module - schnellere Implementierung und schnelle Konfiguration der Bausteine  Vermeidung von Spezial – SW zum Verbinden von Modulen - bessere Wartbarkeit, höhere Betriebssicherheit, - vereinfachte Migration des IEC Codes

55 IEC 61499 – Beispiel „Assembly Line“: Module und ihre Verschaltung
Pick Place Verteilung Zustände, Zykl. Signale Pick & Place 1 In 1 In 2 Out 1 Out 2 Stack 1 Posi- tioning Glue- ing Fix- Glue 1 In 1 In 2 Out 1 Out 2 Stack 2 Pick Place Pick & Place 2 Posi- tioning Glue- ing Fix- ing Glue 2

56 IEC 61804 Prinzip Communication Mapping FB to Mapping FB to
System Management Application FB OR - Control FB Device Resource Block ƒ Σ - Calculation FB Vergleich: „normaler“ Controller P = # ƒ P = # CPU - Analog IN / OUT - Discrete IN / OUT - ON/OFF Actuat. Technology Blocks = - Temperature - Pressure Block - Mod. Actuation # # = = Controller = P November 2013


Herunterladen ppt "Entwurfsmethoden, Sprachen, Einfluss der SW"

Ähnliche Präsentationen


Google-Anzeigen