Programmierung nach IEC 61131
Inhalt Ziele und Inhalte der IEC 61131 Programmiertools Modelle der IEC 61131 Variablen und Datentypen Programmorganisation
Lernziele IEC 61131 Sie kennen die wesentlichen Ziele und Inhalte und können sie mit eigenen Worten erläutern Sie die Architektur eines Systemes nach IEC 61131 Sie kennen die 3 Programmorganisationseinheiten und die Datenorganisation (Uebungsbeispiele) Sie können ein einfaches Beispiel in zwei grafischen Programmiersprachen einer SPS programmieren
Die Erstellung und Wartung von Programmen von Anlagensteuerungen sind: wesentliche Kostenfaktoren schwierige Unsicherheitsfaktoren
Aspekte: 15-30% der Planungskosten zur Programmierung hohe Folgekosten bei Problemen Anlageschäden verzögerte Inbetriebnahme
Worin unterscheidet sich Steuerungssoftware von 'Bürosoftware'? Echtzeit oft zeitkritisch kompliziertes Prozessinterface Restart- und Resume-fähig viele zeitlich andauernde Aufgaben kaum Fehlertoleranz hohe Verfügbarkeit viele, aber einfache Funktionen
Variablennamen: was ist wahr?
Bei Alarmen leider oft:
Darstellung von y:= A und (B oder C) in Tabellenform: Wahrheitstabelle
Beispiel einer Wahrheitstabelle:
richtigen Zeit auslösen Steuerproblem: richtige Aktion zur richtigen Zeit auslösen Zeitdiagramme
Beispiel: Einschaltverzögerung
Zeitdiagramm: IN Q ET PT
Entwicklung der Programmierung von SPS Proprietäre Sprachen und Softwarestrukturen verschiedener Hersteller Starke Verbreitung einzelner Sprachen durch die Dominanz der Hersteller (Siemens) Erste internationale Normierungsbestrebungen (Grafcet, DIN 19239 und 2880)
Was ist die IEC 1131? weltweit einheitliche Norm für die Automation speziell für SPS-Systeme anerkanntes Werk, da gemeinsam erarbeitet(PLCopen) Wegweiser für zukünftige Entwicklungen Definition systemunabhängiger Sprachen ein Muss für jemanden der Automation
Entwicklung der IEC 61131 Gründung der PLCopen 1992 als treibende Kraft der Normierung Ziele: Anwendung eines internationalen Standards IEC 61131 konforme SPS anbieten und einsetzen Definition von Konformitätskriterien Zusammenfassung der bisherigen Erfahrungen und Entwicklungen in der IEC 61131
Vorteile für Hersteller Gemeinsame Entwicklung von Software (Editoren, Programmiersystem) Wiederverwendbarkeit bestehender Software durch einheitliche Programmierung Normgerecht - bedeutet - marktgerecht Integration von Modulen verschiedener Hersteller
Vorteile Anwender Einheitliche Programmierung und Planung verschiedener Systeme Minimierte Ausbildungs- und Einarbeitungs-kosten Einsatz normgerechter Komponenten bedeutet ein erhöhtes und kalkulierbares Mass an Sicherheit der Anlagen
Wofür IEC 61131 Für verteilte Automatisierungssysteme Logische Einheit Steuerung Steuerung Kommuni- kation Kommuni- kation Betriebssystem Betriebssystem Anwendung Anwendung Prozessgeräte Prozessgeräte
Ziel ist Funktionssicht Implementierungsunabhängig Leitsystem Teilanlage oder -system Funktionen und Gruppen Prozessgeräte
Was enthält die IEC 61131?
Schwerpunkt Programmierung: Bildung von Programmstrukturen Einführung abgeleiteter Strukturen, d.h. eigene Datentypen und Steuerbibliotheken SPS-Programmierung grafisch oder wie in einer Hochsprache Programmierung von SPS-Systemen! (wo gibt es dies sonst noch ?)
Modelle der IEC 61131: Softwaremodell - Struktur der Software Kommunikationsmodell - Informationsfluss zwischen verschiedenen Steuerungen Programmiermodell - Datendarstellung und Programmiersprachen Hardwaremodell
Projektverwaltung Projektname SPS-Parameter (Typ, Speicher) Task Globale Variablen Funktionsbaustein Funktion Programme
Programmiermodell Variablen und Datentypen Programmorganisationseinheiten Programme Funktionsbausteine Funktionen Programmiersprachen
Programmorganisationseinheiten (POE) Funktion Funktionsbaustein Programm englische Bezeichnung: POU (Program Organisation Units)
Elemente einer POE Deklarationsteil Anweisungsteil Variablen Formalparameter und Rückgabewerte Externe und interne Variablen Anweisungsteil Funktion in einer Programmiersprache realisiert
Variablen symbolische Namen physikalischer Standort (I/O, Merker) Müssen dort deklariert werden, wo sie benutzt werden. Variablenart Bezeichner Datentyp Initialisierung
Variablenart
Datentypen elementare strukturierte bool, int, float, time enum - Aufzähltypen array - Felder structure - Datenstrukturen
Geltungsbereich der Variablen lokal: nur in der Programmeinheit global: in ganzer Ressource oder Konfiguration (lokal als extern definieren) gültig in den POE in denen sie deklariert sind und in allen untergeordneten Einheiten (Eine Variable in einem Programm gilt auch in den Funktionsbausteinen die das Programm aufruft)
Initialisierung Initialisierung übernimmt Wert vor letzten Stop übernimmt anwenderspezifischen Wert übernimmt voreingestellten Wert des Datentyps Warmstart gepufferte Variablen (RETAIN) übernehmen letzten Wert andere die definierten Anfangswerte Kaltstart alle übernehmen Anfangswerte
Programmiersprachen graphische Programmiersprachen Textsprachen KOP (Kontaktplan) FBS (Funktionsbausteinsprache) AS (Ablaufsprache ) Textsprachen AWL (Anweisungsliste) ST (Strukturierter Text)
graphische Sprachen vs. Textsprachen einfach, teilweise auch für Laien verständlich Kommunikation über Programm einfacher effizienter bei Inbetrieb-nahme und Wartung keine Nachdoku-mentation nötig zwingt zu Program-mierdisziplin effizienter in der Programmierung kleinere Dokumente in MB einfacher im Umgang mit komplexen Datenstrukturen
1. Sprache: FBS Programmierung mit Funktionen in der Funktions-Bausteinen-Sprache: Variablen: Signallinien Funktionen: Rechteck mit Funktionsname und Signalverbindungsstellen Alle Datenverarbeitungselemente werden als Funktionsblöcke dargestellt
Programmierung = Netz von FB verbunden mit Signalen Darstellung in FBS Funktionsblöcke (Funktionen und Funktionsbausteine) Linien Variablen (Eingang) Variablen (Ausgang) Programmierung = Netz von FB verbunden mit Signalen
Silo
2. Sprache: KOP Programmierung mit Kontaktplandarstellung und Funktionsbausteinen, Sprache: Variablen: Bezeichnung von Oeffner, Schliesser, Spulen Funktionen: durch 'Stromverdrahtung' und Funktionsbausteinen
Beispiel KOP - Silo Kontakte Spulen Funktionsblöcke
Elemente:
Elemente:
Elemente:
Elemente:
Elemente:
Elemente:
Funktion eine oder mehrere Eingangsvariablen werden zu genau einem Ausgangswert berechnet. Speichern intern keine Daten Liefert bei gleichen Eingangswerten immer das gleicher Ergebnis
Standardfunktionen vordefinierte Funktionen SPS wird zu einer vollwertigen Rechnereinheit SPS kann auch Texte bearbeiten SPS kann Datentypen konvertieren die meisten aus Informatik bekannt
Funktionsbaustein aus einer oder mehreren Eingangsvariablen werden mehrere Ausgangsvariablen berechnet Strukturierungshilfsmittel innerhalb eines Programmes Kann mehrfach genutzt werden Kann intern Daten speichern und muss instanziert werden
FB definieren Deklaration Anweisungen Ergebnis muss gespeichert werden
FB RS-Flip-Flop UND-Bausteine können das Resultat direkt aus den Eingängen berechnen bei RS-Bausteinen hängt es aber noch zusätzlich vom Wert von Q1 ab:
Konsequenz: Baustein muss Variable zwischen zwei Ausführungen abspeichern Namen gefordert gelöst durch Instanzennamen = gleich Pointer auf Objekt
Instanz: Die Instanz ist ein individuelles Exemplar einer Datenstruktur, verknüpft mit einem Funktionsbaustein-Typ oder Programm-Typ, das von einem Aufruf der zugehörigen Operation bis zum nächsten erhalten bleibt.
Instanzierung Deklaration Anwendung
Zeitgeber: Einschaltverzögerung Q ET PT
Zeitgeber: Ausschaltverzögerung IN Q ET PT
Programm logische Anordnung von Funktionen und Funktionsbausteinen mit ihren Verknüpfungen Ausführung eines Programmes kommt durch die Zuordnung in einer Task zum Ausdruck Kann Funktionen und Funktionsbausteine aufrufen
Ausführung der Programme: Tasks Ein Task fasst innerhalb einer Ressource ein oder mehrere Programme mit gleichem Ausführungs- und Zeitverhalten zusammen. (Wann sollen sie bearbeitet werden) Wann, bei welchem Ereignis Wie oft Wie dringend
Aufrufhierarchie Ressource Task II Task I Programm A Programm B … … … Funktion 1 Funktionsbaustein a Funktion 2 Funktion3 Funktionsbaustein b
Kommunikationsmodell (wird nur gestreift) Durch Uebergabe der Variablen bei Funktionsaufruf Kommunikation über globale Variablen Kommunikation über SEND und RECEIVE-Funktionen Kommunikation über Zugriffspfade
Uebung: Selbsthaltung POE einrichten - Programm Variablen deklarieren mit Kontaktplan programmieren
Aufgabe: wie werden die folgenden Funktionen programmiert (sie sind gegenüber der FBS-Darstellung verschwunden)? UND ODER