Beruflich Dokumente
Kultur Dokumente
Automatisierungstechnik
Labor für Informationstechnik
und Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Echtzeitprogrammierung
Echtzeitverarbeitung in Automatisierungssystemen
z Begriffe und Konzepte
Baku 2004 z Parallele und nebenläufige Rechenprozesse
z Echtzeitbetriebssysteme f. Automatisierungscomputer
Echtzeit
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser Echtzeitsysteme interagieren mit unserer realen Welt (→ Realzeitsysteme).
Qualität einer Aktion = f (Aktion, Zeitpunkt der Aktion)
Echtzeit- Was ? Wann ?
Programmierung
Begriffe//
Begriffe z Ein Echtzeitsystem ist ein System, dass definierte Einschränkungen
Konzepte
hinsichtlich der Reaktionszeit auf Ereignisse in der realen Welt erfüllt oder
Neben- schwerwiegende Schädigungen der realen Welt riskiert.
läufigkeit
D.h. Schädigung von Menschen, Umwelt und Vermögenswerten.
RTOS
Kern
z Risiko = Schadensausmaß * Schadenswahrscheinlichkeit
RTOS
Kommunikation – Hohes Risiko ⇒ harte Echtzeitbedingungen
(minimale Varianz hinsichtlich Einhaltung der Zeitvorgaben zwingend)
µC-Prog.
– Geringes Risiko ⇒ weiche Echtzeitbedingungen
SPS-Prog. (moderate Varianz hinsichtlich Einhaltung der Zeitvorgaben vertretbar)
IEC 61131-3
Baku 2004
2
Seite 1
Rechtzeitigkeit einer Aktion
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Ausführen der richtigen Aktion zum richtigen Zeitpunkt.
Echtzeit- Mögliche zeitliche Bezugssysteme
Programmierung
• Absolutzeitsystem
Begriffe//
Begriffe (unsere Realzeit, z.B. 2002-04-25 10:27:54.429)
Konzepte
• Relativzeitsysteme
Neben- (Ereignisbezogene Relativzeit, z.B. t0 + 500µs)
läufigkeit
RTOS
Kern Ausführen einer Aktion relativ zu gegebenen Zeitpunkten ti i=0, 1, ...
RTOS
Unterscheidbare Szenarien: Aktion erfolgt ...
Kommunikation
Absolutzeitbedingung Relativzeitbedingung
Echtzeit-
Programmierung Aktive Sicherheitsfunktionen Aktive Sicherheitsfunktionen
exakt (Zyklische Kontrolle auf (Automatische Reaktionen auf
Begriffe//
Begriffe sicherheitskritisches Verhalten) sicherheitskritische Ereignisse)
Konzepte
Im Regelkreis: Messwertüberwachung bei
Neben-
läufigkeit ungefähr Abtastung Sensorsignal Prozessgrößen auf gleitende
Ausgabe Stellsignal Grenzen
RTOS
Kern Übernahme von Datenpaketen JIT (Just-In-Time Fertigung)
spätestens aus einem taktsynchronen Erkennung von Eigenschaften
RTOS
Kommunikation Datenstrom bewegter Objekte
Übernahme von Datenpaketen
µC-Prog. aus einem taktsynchronen Auslösen eines folgenden
Datenstrom Fertigungsschrittes nach Ablauf
SPS-Prog. frühestens einer Ausgleichszeit, in der sicher
Auslösen eines folgenden ein homogener Werkstoffzustand
IEC 61131-3
Verarbeitungsschrittes bei erreicht wird
Chargenprozessen
Baku 2004
4
Seite 2
Gleichzeitigkeit mehrerer Aktionen
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser Synchrones Auslösen mehrerer Aktionen zum gleichen Zeitpunkt.
z.B. bei Steuerung und Regelung gekoppelter technischer Prozesse
Echtzeit-
Programmierung
Gleichzeitige Ausführung der Aktionen Ai i=0,1, ... zum Zeitpunkt t0
Begriffe//
Begriffe
Konzepte 1. Durch Verwendung unabhängiger Verarbeitungseinheiten
(Parallelverarbeitung)
Neben-
läufigkeit 2. Durch zeitliche Schachtelung auf einer Verarbeitungseinheit
(Multiplexing).
RTOS
Kern Voraussetzung: quasiparallele (simultane) Arbeitsweise erreichbar, d.h.
Ausführungszeit der Aktion « Zeitkonstanten der automatisierten
RTOS Prozesse
Kommunikation
µC-Prog. Beispiele:
z Synchrones Abtasten von Prozessgrößen bei der Aufnahme von
SPS-Prog. Kennfeldern
IEC 61131-3
z Gleichzeitige Ausgabe der Stellsignale an mechanisch gekoppelte
Antriebe
Baku 2004
5
Echtzeitbetrieb
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Echtzeit-
Programmierung
Begriffe//
Begriffe Echtzeitbetrieb ist der Betrieb eines Rechensystems, bei
Konzepte
dem die Programme zur Verarbeitung anfallender Daten
Neben-
läufigkeit
ständig betriebsbereit sind.
RTOS Die Verarbeitungsergebnisse des Rechensystems sind
Kern
innerhalb der vorgesehenen Zeitspanne verfügbar. Die
RTOS
Kommunikation Daten können je nach Aufgabenstellung nach einer
zeitlich zufälligen Verteilung oder zu vorherbestimmten
µC-Prog.
Zeitpunkten anfallen.
SPS-Prog.
IEC 61131-3
Baku 2004
6
Seite 3
Determiniertes Echtzeitsystem
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Ein Echtzeitsystem heißt determiniert, wenn für
Echtzeit- • jeden möglichen Systemzustand
Programmierung und jede mögliche Menge von Eingangsinformationen
• ein eindeutiger Folgezustand angenommen
Begriffe//
Begriffe
Konzepte
und eine eindeutige Menge von Ausgangsinformationen erzeugt wird.
Neben-
läufigkeit
RTOS
Kern z Ein determiniertes Echtzeitsystem reagiert garantiert auf
RTOS
vorherbestimmte Weise (i.d.R. durch den Systemaufbau, d.h.
Kommunikation durch begrenzte Wertemengen der Eingangssignale und
getaktete Zeit erfüllt)
µC-Prog.
Echtzeitverarbeitung in Automatisierungssystemen
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser Ein Automatisierungscomputer steuert mehrere
nebenläufige technische Prozesse.
Echtzeit-
Programmierung Typische Zuordnung:
Begriffe/ nebenläufiger
Konzepte nebenläufiger
Rechenprozess
Neben- Technischer Prozess
(Steuerung)
läufigkeit
RTOS
Kern
Alle Rechenprozesse müssen jederzeit ihre
RTOS
Kommunikation
vorgegebenen Reaktions- und Ausführungszeiten
einhalten. Alternative Ansätze:
µC-Prog.
z Zeitgesteuerte Rechenprozesse /
SPS-Prog. synchrone Programmierung
IEC 61131-3 z Ereignisgesteuerte Rechenprozesse /
asynchrone Programmierung
Baku 2004
8
Seite 4
Synchrone Programmierung
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Detaillierte zeitliche Vorausplanung einzelner
Echtzeit-
Rechenprozesse und ihrer zeitlichen Verzahnung mit
Programmierung parallelen / nebenläufigen Rechenprozessen
Begriffe/ → Sequenzialisierung:
Konzepte statische Rechenzeitzuweisung
Neben-
läufigkeit Ausführung zeitgesteuert
RTOS
(taktsynchron zu Echtzeituhr → Metronom)
Kern
RTOS
Kommunikation Problem:
Reaktion auf nicht geplantes (nicht planbares)
µC-Prog.
Systemverhalten ?
SPS-Prog.
IEC 61131-3
Baku 2004
9
Synchrone Programmierung
Informationstechnik
Automatisierungstechnik R1 (1T, 2c) R2 (2T, 3c) R3 (4T, 1c) ALARM (1c, 4c)
Prof. Dr. Stefan Kreiser
Zykluszeit T
2c
Echtzeit-
Programmierung
Begriffe/
Konzepte Gute Eignung für zyklische
Rechenprozesse mit
Neben- bekannter Rechenzeit (n*c)
läufigkeit Pollen von Alarmen
(Aufwand)
RTOS
Kern Berücksichtigung max.
Bearbeitungsdauer im
RTOS Alarmfall.
Kommunikation Garantiert
deterministisches
µC-Prog. Zeitverhalten
Geringe
SPS-Prog. Prozessorauslastung
IEC 61131-3 Hoher Aufwand bei
Änderungen des
vorbestimmten Ablaufs
Baku 2004 1
0
Seite 5
Asynchrone Programmierung
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Zeitliche Abfolge der Rechenprozesse ergibt sich
Echtzeit- zur Laufzeit
Programmierung
→ Sequenzialisierung:
Begriffe/ dynamische Rechenzeitzuweisung
Konzepte
Neben-
Ausführung ereignisgesteuert
läufigkeit (Organisation: Betriebssystem → Scheduler)
RTOS
Kern
Problem:
RTOS
Kommunikation Einhaltung der vorgegebenen zeitlichen
µC-Prog.
Rahmenbedingungen:
SPS-Prog.
IEC 61131-3
Wie lässt sich zeitlich determiniertes Verhalten
sicherstellen ?
Baku 2004 1
1
Asynchrone Programmierung
Informationstechnik
Automatisierungstechnik Bsp.: statische
Prof. Dr. Stefan Kreiser Wunschablauf
Tatsächlicher Ablauf
Prozessprioritäten
+ Alarmereignis
Höchste: Alarm, ..., Niedrigste: R3
R1 R2 R3 A R1 R2 R3 A
Echtzeit- (p1) (p2) (p3) (p0) (p1) (p2) (p3) (p0) Preemptives
Programmierung Zuteilungsverfahren:
z Höherpriorer Prozess
verdrängt
Begriffe/ z Niederpriore Prozesse warten
Konzepte auf erneute
Prozessorzuteilung
Neben-
Kein Pollen auf
läufigkeit
Alarmereignisse
RTOS Starke zeitliche Verschiebung
Kern in der Abarbeitung im Alarmfall
→ Regelkreisverhalten bei
RTOS variabler Abtastzeit ?
Kommunikation
Deterministisches
Zeitverhalten nicht
µC-Prog. garantiert (je nach
Zuteilungsverfahren)
SPS-Prog. I.d.R. gute
IEC 61131-3 Prozessorauslastung
Geringer Änderungsaufwand,
Baku 2004 da Zeitverhalten nicht exakt
1
geplant 2
Seite 6
Echtzeitbetriebssysteme (1)
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
DIN 44300 (Betriebssystem)
Die Programme eines digitalen Rechensystems, die zusammen mit den
Echtzeit- Eigenschaften der Rechenanlage die Grundlage der möglichen
Programmierung Betriebsarten des digitalen Rechensystems bilden und insbesondere die
Abwicklung von Programmen steuern und überwachen.
Begriffe/
Konzepte
Echtzeitbetriebssystem (Real Time Operating System, RTOS)
Neben-
läufigkeit Betriebssystem, das den Programmablauf unter Echtzeitbedingungen
gewährleistet.
RTOS
Kern
Kernaufgaben eines Echtzeitbetriebssystems
RTOS z Verwaltung Echtzeituhr
Kommunikation
z Speicherverwaltung mit Schutzmechanismen gegen
µC-Prog. unberechtigten Zugriff
z Task-, Thread- und Prozess-Verwaltung inkl. Echtzeit-Scheduling
SPS-Prog.
IEC 61131-3 z Bereitstellung grundlegender Mechanismen zur Kommunikation
zwischen und Synchronisation von Rechenprozessen
z BIOS Abstraktion
Baku 2004 1
3
Echtzeitbetriebssysteme (2)
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Erweiternde Dienste
z Betriebsmittelverwaltung und –zugriff (Treiber, Services)
Echtzeit-
Programmierung z Erweiterte Mechanismen für Kommunikation und Synchronisation
z Dateisystem, ...
Begriffe/
Konzepte
Neben-
läufigkeit
Def.: Betriebsmittel
SPS-Prog.
IEC 61131-3
Literatur zu verteilten Betriebssystemen und Echtzeitanforderungen:
Tanenbaum, A.S., Distributed Operating Systems, Prentice Hall Int.
Baku 2004 1
4
Seite 7
Rechenprozesse - Zustandsmodell
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Zustandsmodell mit vier Zuständen
running
Echtzeit- Rechenprozess ist aktiv, d.h. er besitzt
Programmierung die CPU und führt Aktionen aus.
/ new / delete
ready
Begriffe/
Konzepte / terminate
Rechenprozess ist ablauffähig und
dormant wartet auf Zuteilung der CPU.
Neben-
läufigkeit blocked
/ start / terminate
Rechenprozess ist nicht ablauffähig,
RTOS
Kern / unblock d.h. er wartet auf das Eintreffen eines
/ terminate
Signals, eines Telegramms oder die
RTOS ready blocked
Kommunikation / wait Zuteilung eines aktuell belegten
/ assign/ resign Betriebsmittels.
µC-Prog. dormant
/ wait (signal, sema, msg ...)
Rechenprozess ist im System bekannt
SPS-Prog. running und wartet auf die Startbedingung.
IEC 61131-3
Baku 2004 1
5
Programm n
Seite 8
Scheduler (und Dispatcher)
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Aufgabe (allgemein)
Verwaltung von Rechenprozessen
Echtzeit-
Programmierung z Verwaltung der Zustände aller existenten Rechenprozesse
z Erstellung eines regelmäßig aktualisierten Plans (Schedule)
Begriffe/ zur Zuteilung der verfügbaren CPUs (i.d.R. eine CPU) zu
Konzepte
rechenbereiten Rechenprozessen nach einer vorgegebenen
Neben- Zuteilungsstrategie
läufigkeit
z Zuteilung der CPUs gemäß aktuellem Schedule (Dispatcher)
RTOS
Kern
RTOS Erweitertes Aufgabenspektrum in Echtzeit-Systemen
Kommunikation
z Verwaltung statischer oder dynamischer Prioritäten für
µC-Prog. Rechenprozesse
z Berücksichtigung der Prioritäten bei der Erstellung des
SPS-Prog.
IEC 61131-3
Schedule
z Entzug der CPU sobald ein höherpriorer Rechenprozess
Baku 2004 rechenbereit ist (Preemption durch Dispatcher) 1
7
Zuteilungsstrategien
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Seite 9
Wesentliche Prozesszuteilungsstrategien
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Strategien Eigenschaften Eignung RTOS
FIFO Äusführung ältester ablauffähiger Prozess.
Echtzeit- (First-In- Kooperativ. Einfach implementierbar. Geringer nein
Programmierung First-Out) Planungsaufwand.
Äusführung ablauffähiger Prozess mit höchster bedingt, falls
Begriffe/ (starrer) Priorität. Preemptiv oder kooperativ. preemptiv
Konzepte Fixed Priority
Einfach implementierbar. Überlast
Neben- Geringer Planungsaufwand. unkritisch
läufigkeit Zeitscheiben nein
(Round Robin) Alle ablauffähigen Prozesse werden im Multiplex-
RTOS verfahren ggf. mit verschieden langen Standard für
Kern = FIFO mit Zeitscheiben quasiparallel ausgeführt. Multitasking
Preemption Systeme
RTOS
Kommunikation kleinste
Prozess mit kleinster Restantwortzeit bis zur bedingt
Restantwortzeit
Deadline wird ausgeführt. Preemptiv. (für 1 CPU)
µC-Prog. (Earliest
Hoher Implementierungs- und Planungsaufwand. Überlast kritisch
Deadline First)
SPS-Prog. Prozess mit kleinstem Spielraum zur Deadline
IEC 61131-3 kleinster gut
unter Berücksichtigung der verbleibenden
Spielraum Restlaufzeit wird ausgeführt. Preemptiv. (für N CPUs)
(Least Laxity) Überlast kritisch
Baku 2004 Sehr hoher Implementierungs-/ Planungsaufwand. 1
9
Seite 10
Kommunikationskonzept Shared Memory (2)
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Task
Echtzeit-
Programmierung
create
Begriffe/
Konzepte read
Neben-
lookup write
läufigkeit
RTOS
Kern Update
Datenstruktur color
RTOS
Kommunikation
Thread 1 Privater Datenraum Thread 2
µC-Prog.
SPS-Prog.
IEC 61131-3
Sicherung der Datenkonsistenz bei Kontextwechsel
Baku 2004 2
1
Seite 11
Erweiterte synchr. Message Passing Konzepte
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Rendezvous Konzept (synchronous message passing)
Vergleichbar zu remote procedure call .
Echtzeit-
Programmierung Allerdings synchronisieren hier zwei bereits aktive Prozesse
an einer vordefinierten Stelle, wovon einer einen Service für
Begriffe/ den anderen ausführt.
Konzepte
Mehrere Rendezvouspunkte in einem Prozess möglich.
Neben-
läufigkeit
RTOS Futures Botschaftenkonzept (message passing)
Kern
Brücke zw. synchronem und asynchronem Message Passing
RTOS Wie remote procedure call .
Kommunikation
Ergebnis (Antwortbotschaft) wird in future variable gepuffert.
µC-Prog. Sender arbeitet asynchron, bis er auf die future variable
SPS-Prog. zugreift.
IEC 61131-3 Sender blockiert bis Ergebnis in future variable vorhanden.
Konzept kapselt send(), ... process ..., wait (receive)
Baku 2004 2
3
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Echtzeit-
Programmierung
Universelle Programmiersprachen
Begriffe/
Konzepte
Neben- Assembler
läufigkeit
C / C++
RTOS
Kern Java
RTOS
Kommunikation
Ada95
µC-Prog.
SPS-Prog.
IEC 61131-3
Baku 2004 2
4
Seite 12
Programmiersprachen für Echtzeitsysteme
Informationstechnik
Automatisierungstechnik Assembler
Prof. Dr. Stefan Kreiser
z HW-nahe unstrukturierte Programmierung → einzelne
Sicherheitsfunktionen
Echtzeit-
Programmierung
z Echtzeitanforderungen müssen selbst programmiert werden
→ direkter Zugriff auf Echtzeituhr und Interruptcontroller
Begriffe/ z I.d.R. kein Echtzeit-Betriebssystem vorhanden → einzelner
Konzepte Rechenprozess
Neben- C/C++
läufigkeit
z HW-nahe strukturierte Programmierung, Inline-Assembler möglich
RTOS
Kern z Echtzeitanforderungen können selbst programmiert werden
→ direkter Zugriff auf Echtzeituhr und Interruptcontroller möglich
RTOS
Kommunikation z Strukturierte oder OO-Programmierung der Prozess- und
Benutzerschnittstelle
µC-Prog. z Einsatz oft in Verbindung mit Echtzeit-Betriebssystem
→ gekapselter HW-Zugriff über Hardware-Abstraction-Layer (HAL)
SPS-Prog. → Scheduler (zumeist Fixed Priority in Verbindung mit RR)
IEC 61131-3
→ gekapselte Synchronisations- / Kommunikationsmechansimen
z Portabilität: Einsatz eines universellen RT-HAL
Baku 2004 → ACE siehe http://www.cs.wustl.edu/~schmidt/ACE-overview.html 2
5
Seite 13
Programmiersprachen für Echtzeitsysteme
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Ada 95 (ANSI/ISO/IEC-8652:1995)
Strukturierte / OO-Programmierung (Pascal-ähnliche Syntax)
Echtzeit- Entwurf im Auftrag des DoD (US Department of Defense)
Programmierung
Entwurfsziele für die Programmierumgebung:
Begriffe/ z Universell für Automatisierungsaufgaben einsetzbar
Konzepte → Nebenläufige Prozesse und Ereignissteuerung
Neben- → Konstrukte für Synchronisation, Kommunikation, Echtzeit
läufigkeit z Nachweisbare Zuverlässigkeit
RTOS → strenge Typisierung von Datenobjekten.
Kern Festlegung von Wertebereichen.
RTOS → syntaktische und logische Überprüfungen
Kommunikation (Compile-Time und Run-Time)
→ Wiederverwendung
µC-Prog. z Langlebigkeit → hohe Portabilität
SPS-Prog. z Beherrschbarkeit komplexer Softwaresysteme
IEC 61131-3 → Unterstützt moderne SW-Entwicklungsmethoden
http://adahome.com/rm95/
Baku 2004 2
7
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Verdünnungs- Messoptik
Echtzeit-
gefässe
Programmierung
Begriffe/
Konzepte
Neben-
Probe
läufigkeit
RTOS
Kern Diluenz
RTOS Messsignal
Kommunikation
µC-Prog.
Baku 2004 2
8
Seite 14
SPS-Programmierung nach IEC 61131
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Wesentliche Bestandteile der IEC 61131 (vormals IEC 1131)
z Teil 1: Allgemeine Begriffbestimmung, typische Funktionsmerkmale
Echtzeit- einer SPS im Unterschied zu anderen Automatisierungssystemen.
Programmierung z Teil 2: Definiert elektrische, mechanische und funktionelle
Anforderungen an die Geräte sowie entsprechende Typprüfungen.
Begriffe/
Konzepte z Teil 3: Programmiersprachen. Formale Definition sowie lexikalische,
syntaktische und z.T. semantische Beispiele zur Erläuterung des
Neben-
spezifischen Programmiermodells und der Programmiersprachen.
läufigkeit
z Teil 4: Anwenderrichtlinien. Leitfaden begleitet den Anwender durch
RTOS alle Phasen eines Automatisierungsprojekts mit SPS, d.h. von
Kern
Systemanalyse über Geräteauswahl und Implementierung bis
RTOS Wartung.
Kommunikation
z Teil 5: Herstellerneutrale Kommunikation zwischen SPS und anderen
µC-Prog. Automatisierungssystemen. Zusammenarbeit mit ISO 9506
(Manufacturing Message Specification)
SPS-Prog.
Verteilte Automatisierungssysteme mit SPS
IEC 61131-3
→ IEC 61499 (im Aufbau)
Baku 2004
Literatur: John, Tiegelkamp: SPS-Programmierung mit IEC 61131-3, Springer Verlag 2
9
Echtzeit-
Programmierung
Betriebsmittelverwaltung
Begriffe/
Konzepte
Neben- z Betriebsmittel
läufigkeit
RTOS
z Programm-Organisations-Einheiten (POE)
Kern Funktionen (FUN)
RTOS Funktionsbausteine (FB)
Kommunikation
Aktivitätsträger (PROG)
µC-Prog. z Kommunikation und Synchronisation
SPS-Prog.
IEC 61131-3
Baku 2004 3
0
Seite 15
Betriebsmittel
Informationstechnik
Automatisierungstechnik Konfiguration = Gruppe von „Ressourcen“
Prof. Dr. Stefan Kreiser
Ressource = CPU SPS-Einbaurahmen mit CPUs
Echtzeit-
Globale Variablen (RAM) EA-Variable (%I,%Q,%M)
SPS-“Echtzeit“-Betriebssystem
Programmierung
Ressource = CPU-Baugruppe verwaltet
Begriffe/ Privater Privater eine oder mehrere Tasks
Konzepte Datenraum Datenraum
(hersteller- und modellspezifisch)
Neben- globale Variablen
Programmspeicher
Programmspeicher
läufigkeit
Task
Programm
Programm
Privater
Privater
RTOS Konkurrierend ablauffähiger
Kern
Aktivitätsträger für 1 Rechenprozess
RTOS Bereitstellung von Betriebsmitteln für
Kommunikation PC PC
Register- Register-
den Rechenprozess, d.h. PC, Stack,
µC-Prog.
satz satz Registersatz, Zustand, privater Speicher
Stack Stack
Auf automatisierungstechnische
SPS-Prog. Anforderungen zugeschnittenes
IEC 61131-3 Thread Thread
Laufzeitverhalten
Task 1 Task N
Thread-Konzept nicht implementiert:
Baku 2004 Eine Task besitzt genau einen Thread 3
1
SPS-Task
Warmstart
(Programm Resume Kaltstart
-anfang) (Warmstart) (Neustart)
Laufzeitverhalten
Informationstechnik bearbeiten bearbeiten bearbeiten
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Ereignisgesteuerter Betrieb
z Anstoß durch asynchrones,
Echtzeit-
Programmierung externes Ereignis (Trigger)
z Sonderfall: Einmalige
Zyklus-
Begriffe/ Abarbeitung (run once) überwachungszeit
starten
Konzepte Zyklischer Betrieb
Uhrzeitalarme
Neben- z Definierte Zykluszeit T Stellsignale
läufigkeit z Endloser Schleifendurchlauf
schreiben
Verzögerungsalarme
RTOS bis Abbruchbedingung
Kern erfüllt wird Prozessabbild
lesen Weckalarme
RTOS
Kommunikation Scheduling Steuerungsroutine Prozessalarme
bearbeiten
Abhängig v. Hersteller/Modell 1. Anweisung
µC-Prog.
Fixed Priority (typ. Vorgabe . Fehlerbehandlung
n. Anweisung
Priorität: Programmierer)
SPS-Prog.
IEC 61131-3 RR oder FIFO innerhalb einer Hintergrundbearbeitung
Prioritätsstufe Betriebssystemroutine
Ereignisgesteuerter
preemptiv oder kooperativ Betrieb
Baku 2004 3
2
Seite 16
SPS Task – Zyklischer Betrieb
Informationstechnik
Automatisierungstechnik Wartend Stellgrößen schreiben Prozessabbild lesen Verarbeitungsschritte
Prof. Dr. Stefan Kreiser
Echtzeit-
Programmierung
Sequenzdiagramm
Begriffe/
zeigt
Zykluszeit T
Konzepte
Prinzipielle Abfolge
Neben-
läufigkeit der wesentlichen
zyklischem Betrieb
Zykluszeit T
µC-Prog. Ereignis
verarbeiten
SPS-Prog.
IEC 61131-3
Globale SPS-Variablen
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Global im Datenbereich der Konfiguration oder der CPU
Elementare Typen
Echtzeit- z Bit-, Byte- und Wort-Typen mit / ohne Vorzeichen
Programmierung (Vorgabe der Wertebereiche optional)
z Fest- und Gleitkommazahlen
Begriffe/ z Zeichenketten (Strings), Zeittypen (Absolutzeit, Dauer etc.)
Konzepte
z ANY-Typen (verallgemeinerte Typen, z.B. alle Bit-Typen ANY_BIT)
Neben-
läufigkeit Benutzerspezifische Typen (schachtelbar). Ableitung durch
z Mehrdimensionale Felder (ARRAY von Variablen eines Datentyps)
RTOS
Kern z Komplexe Datenstrukturen (STRUCT von Variablen beliebiger
Datentypen)
RTOS
Kommunikation Spezielle Attribute zuweisbar
z RETAIN: Variable batteriegepuffert
µC-Prog. z READ_ONLY, READ_WRITE: Regelt Schreib-Lese-Zugriff
SPS-Prog. Automatische Initialisierung
IEC 61131-3 z Warmstart: Retain-Wert
z Kaltstart: Deklarationswert (falls vorh.) oder datentypspezifischer
Baku 2004 Initialwert 3
4
Seite 17
Direkt dargestellte globale Variable
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser Global im Datenbereich der Konfiguration / der CPU
Echtzeit-
Spezielle HW-Ports im E/A-Bereich der CPU
Programmierung z Herstellerspezifische Nummerierung der Ports
Begriffe/ z Eingänge (%I), z.B. %IX3.4 = Eingangsbit 4 in Wort 3
Konzepte z Ausgänge (%Q), z.B. %QB1 = Ausgangsbyte 1
Neben- z Merker (%M), z.B. %MW70 = Merkerwort 70
läufigkeit
z Belegung via Prozessabbild oder durch direkten Zugriff auf
RTOS E/A-Bausteine
Kern
RTOS
Typisch: Verwendung der digitalen, nicht interpretierten
Kommunikation „Rohwerte“ von Prozessgrößen. Daher Verwendung
µC-Prog. elementarer Typen beschränkt auf
z Bit-, Byte- und Wort-Typen mit / ohne Vorzeichen
SPS-Prog.
(Wertebereiche opt.)
IEC 61131-3
z Explizite Typumwandlung durch Schreiben auf typisierte
Baku 2004 Variable 3
5
Programm-Organisations-Einheiten (POE)
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Programm (PROG)
z Ausführung in der Laufzeitumgebung einer Task → Rechenprozess
Echtzeit- z Programm definiert den abzuarbeitenden Algorithmus
Programmierung
z Elemente eines Programms:
Begriffe/
untereinander verknüpfte Funktionsbausteine und Funktionen
Konzepte
Funktionsbaustein (FB)
Neben-
z Funktion mit lokalen Ein-/Ausgangsparametern
läufigkeit
z Mit Gedächtnis, d.h. die Ausgangswerte eines FB sind eindeutig
RTOS
Kern durch die Funktion selbst, den aktuellen Zustand des FB und die
Eingangswerte des FB bestimmt
RTOS → y(k+1) = f (x(k), y(k)), ausgeprägtes Zeitverhalten.
Kommunikation
Funktion (FUN)
µC-Prog.
z Funktion mit lokalen Ein-/Ausgangsparametern
SPS-Prog. z Ohne Gedächtnis, d.h. die Ausgangswerte einer FUN sind eindeutig
IEC 61131-3 durch die Funktion selbst und die Eingangswerte der FUN bestimmt
→ y(k) = f(x(k)), statisches Übertragungsglied ohne Zeitverhalten.
Baku 2004 3
6
Seite 18
Softwarearchitektur mit POE
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Wichtige Eigenschaften der Softwarearchitektur mit POE
Echtzeit-
Programmierung Kapselung
POE sind abgeschlossene Einheiten, die vom Compiler individuell
Begriffe/ übersetzt und vom Linker zu einem ausführbaren Programm
Konzepte
verknüpft (gelinkt) werden können.
Neben-
läufigkeit
Globaler Namensraum
POE sind für ein Softwareprojekt eindeutig.
RTOS
Kern Name und Schnittstelle sind global definiert.
Eingangsparameter (→ Aufrufschnittstelle, Formalparameter)
RTOS
Kommunikation VAR_INPUT call-by-value, VAR_IN_OUT call-by-reference
Ausgangsparameter (→ Rückgabewert)
µC-Prog.
VAR_OUTPUT return-by-value
SPS-Prog. Zugriff auf globale Daten (read, write)
IEC 61131-3
Baku 2004 3
7
POE - FUN
Seite 19
POE – FB
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
FB-Typ deklariert Steuer-
eingänge
Struktur und Verhalten
Echtzeit-
FB-Instanz ist individueller
c-in 0
c-in 1
c-in p
EN
Programmierung
Laufzeitbaustein
Begriffe/ vom Typ FB-Typ
Konzepte in0 out0
in1 out1
Neben-
läufigkeit
Signal- Signal-
RTOS FB-Typ
eingänge ausgänge
Kern
c-outm
c-out0
c-out1
µC-Prog. Referenzierbare
ENO
+Ausgang : Port Speicherstelle
+EN : bool (Port)
SPS-Prog. +ENO : bool
Referenz
POE – FB (Standard-FBs)
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
IEC 61131-3 definiert 5 Gruppen von Standard-FBs
Echtzeit-
Programmierung Bistabile Elemente Flip-Flops
Begriffe/ Flankenerkennungs-FB Trigger
Konzepte Zähler-FB Vorwärts- / Rückwärtszähler
Neben- Zeitglieder Impulsgeber, Echtzeituhr
läufigkeit
Ein- / Ausschaltverzögerung
RTOS
Kern Kommunikations-FB nach IEC 61131-5, z.B.
RTOS USEND, URCV (unsolicited)
Kommunikation
BSEND, BRCV (block)
µC-Prog. SEND, RCV, STATUS (synchron)
WRITE, READ (Parameter)
SPS-Prog.
IEC 61131-3 NOTIFY, ALARM, ...
Baku 2004 4
0
Seite 20
POE – FB (1:N Portkommunikation)
Informationstechnik
Alternativen
„1"
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
EN Daten a) Bringen
Echtzeit-
Programmierung A (Portkopie)
„1"
„0"
„1"
Begriffe/
Konzepte EN EN EN
Neben- A
X A
Y A
Z
läufigkeit
RTOS
„1"
Kern
RTOS EN b) Holen
Kommunikation
A (Portreferenz)
„1"
„0"
„1"
µC-Prog.
EN EN EN
SPS-Prog. Daten
IEC 61131-3 A
X A
Y A
Z
Baku 2004 4
1
POE - PROG
Informationstechnik
Struktur
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Begriffe/ Aufrufhierarchie
Konzepte
Neben-
läufigkeit PROG
RTOS
Kern
RTOS
Kommunikation FUN FB
µC-Prog.
SPS-Prog.
IEC 61131-3 FUN FUN FB
Baku 2004 4
2
Seite 21
Kommunikation und Synchronisation
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser Mechanismen zur Kommunikation zwischen Ressourcen
globale Variablen und direkt dargestellte Variablen (%M)
Echtzeit-
Programmierung Zugriffspfade (Access Variable)
z deklarierbar für
Begriffe/ EA-Variablen von PROG, globale und direkt dargestellte Variablen
Konzepte
z Entfernter Standardzugriff auf Zugriffspfade → READ_ONLY
Neben- z Explizite Aufhebung der Zugriffsbeschränkung möglich
läufigkeit
→ READ_WRITE
RTOS
Kern
Echtzeit-
Programmierung
Universelle Programmiersprachen
Begriffe/
Konzepte
Neben- AWL – Anweisungsliste
läufigkeit
RTOS
ST – Strukturierter Text
Kern
KOP – Kontaktplan
RTOS
Kommunikation FBS – Funktionsbausteinsprache
AS – Ablaufsprache
µC-Prog.
SPS-Prog.
IEC 61131-3 Beispiele in Anlehnung an Buch / CD zum Buch:
John, K-H.; Tiegelkamp, M.; SPS-Programmierung mit IEC 61131-3, Springer Verlag
Baku 2004 4
4
Seite 22
AWL – Anweisungsliste
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
AWL = SPS-Assembler
z Syntax: Sprungmarke: ANW OPs Kommentar
Echtzeit- z Sprungmarke → optionales Literal
Programmierung z ANW → AWL-Operator oder FUN
z OPs → Operandenliste (0, 1 .. n Operanden)
Begriffe/
z Kommentar → optional (* ... *)
Konzepte
z Schachtelung von Ausdrücken durch Klammerung (A1 (A2 ... (An) ...))
Neben-
läufigkeit Akkumulator „Aktuelles Ergebnis (AE)“
RTOS z virtueller Akkumulator
Kern → kein physisch vorhandenes Register in der CPU wie bei µC
RTOS z universelle „Registerbreite“, da Akkumulator typisiert. Mögliche Typen:
Kommunikation → allgemeiner Datentyp oder abgeleiteter Datentyp
→ FB-Instanz
µC-Prog.
z ANW verwendet Inhalt des Akkumulators als 1. Operanden
SPS-Prog. → aufeinander folgende Anweisungen müssen typverträglich sein
IEC 61131-3
Keine Prozessorstatusflags vorhanden
→ Vergleichsergebnisse werden als AE ∈ {TRUE, FALSE} gemeldet
Baku 2004 4
5
Beispiel zu AWL
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Echtzeit-
Programmierung
Begriffe/
Konzepte
Neben-
läufigkeit
RTOS
Kern
RTOS
Kommunikation
µC-Prog.
SPS-Prog.
IEC 61131-3
Baku 2004 4
6
Seite 23
ST – Strukturierter Text
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Baku 2004 4
7
Beispiel zu ST
Informationstechnik
Automatisierungstechnik
FUNCTION norm: REAL
Prof. Dr. Stefan Kreiser VAR_INPUT
BlR: SINT; (* Normierter Balance-Regler *)
Echtzeit- LStR: SINT; (* Laustaerke-Regler *)
Programmierung Typ: BOOL; (* 2 Verstaerkertypen *)
END_VAR
Begriffe/ TYPE
Konzepte
KalTyp: REAL := 5.0;(* Datentyp mit Initialwert *)
Neben- END_TYPE
läufigkeit VAR
RTOS Kalibrier: KalTyp; (* Normgroesse Verstaerkerausgang *)
Kern END_VAR
RTOS
Kommunikation (* Abhaengig vom Verstaerkertyp werden aus den digitalen *)
(* Reglergroessen passende Gleitpunktzahlen f.d. jeweiligen *)
µC-Prog. (* Verstaerkerbaustein errechnet *)
norm := SINT_TO_REAL (BlR) (* Einfluss Balance-Regler *)
SPS-Prog. + Kalibrier (* Grundeinstellung *)
IEC 61131-3 + SEL(G:=Typ, IN0:= 4.0, IN1:=6.0) (* typspez. Basiswert *)
+ SINT_TO_REAL (LStR); (* Einfluss Lautstaerke-Regler *)
Baku 2004 END_FUNCTION 4
8
Seite 24
KOP – Kontaktplan
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Verknüpfungssteuerung
Beispielnetzwerk:
z Verarbeitung bool‘scher Signale
Echtzeit-
Programmierung z Herkunft: Beschreibung
Var1 Var2 Var3 VarAus
elektromechanischer
Begriffe/ Relaissysteme
Konzepte → linke und rechte Stromschiene
Neben- → verschaltet über Kontakte Var4
läufigkeit || „Schliesser“, |/| „Öffner“ und
RTOS Relaisspulen ( ) als Ausgang
Kern
→ Literale in der Spule geben VarAus
RTOS Zusatzbedingungen an,
= Var1 ∧ ¬Var2 ∧ (Var3 ∨ Var4)
Kommunikation z.B. (P) = Spule mit positiver
Flankenerkennung
µC-Prog.
FBS – Funktionsbausteinsprache
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Verknüpfungs- und Ablaufsteuerungen darstellbar
Echtzeit-
Programmierung BlR +
SINT_TO_REAL
RTOS
Ablaufsteuerungen geeignet 4.0
Kern z Rückkopplungen im FB-Netz
5.0
sind erlaubt
RTOS
Kommunikation
LStR Norm
SINT_TO_REAL
µC-Prog.
SPS-Prog.
IEC 61131-3 Verschaltung mit POE (FUN, FB) erlaubt
FBS-Netze werden sequenziell bearbeitet
Baku 2004 Sprünge definierbar. 5
0
Seite 25
AS – Ablaufsprache
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Schrittketten (Netze): Darstellung von Ablaufsteuerungen
Schritt
Echtzeit- z Zustandswechsel im gesteuerten System.
Programmierung z Steueranweisung(en) zusammengefasst in ...
Begriffe/ Aktion
Konzepte z Anweisungsteil (Aktion selbst) formuliert in AWL, ST, KOP, FBS, AS
Neben- z Ausführungsbedingung → Bedingung für Start und/oder Ende der
läufigkeit Aktion, z.B. „N“=keine Bed.: Aktion läuft solange S1=TRUE
RTOS z Rückkopplungsvariable RV → Variable der Aktion, die das zeitliche
Kern
oder logische Ende des Zustandswechsels markiert
RTOS Transition
Kommunikation
z Triggert nachfolgenden Zustandswechsel auf Basis einer
µC-Prog. Transitionsbedingung
z Bedingung formuliert in AWL, ST, KOP, FBS
SPS-Prog.
IEC 61131-3
Baku 2004 5
1
Beispiel zu AS
N Aktion RV
Schritt S1
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser Aktivierter Schritt RV
Ausführungsbedingung
Echtzeit-
Programmierung Auszuführende Aktion
Rückkopplungsvariable S2 S3
Begriffe/
Konzepte Transition V1 V2
Neben- Transition
läufigkeit
Transitionsbedingung S4 S5 S6 S7
RTOS
Kern
RTOS
Kommunikation
Seite 26