Sie sind auf Seite 1von 26

Institut für

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

Echtzeitprogrammierung für µC und Prozessrechner


z Betriebsmittelverwaltung
z Universelle Programmiersprachen

Komplexe Systeme Echtzeitprogrammierung für SPS nach IEC 61131


kreativ gestalten
z Betriebsmittelverwaltung
Technische Prozesse
sicher führen z Programmiersprachen

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

µC-Prog. 1. ... exakt zu ti , d.h. im Intervall ti ± δt mit δt « (ti – ti-1)


2. ... im Intervall ti ± ∆t mit ∆t < (ti – ti-1)
SPS-Prog.
IEC 61131-3 3. ... spätestens zu ti , d.h. zu t < ti +δt mit δt « (ti – ti-1)
4. ... frühestens zu ti , d.h. zu t > ti - δt mit δt « (ti – ti-1)
Baku 2004
3

Beispiele: Rechtzeitigkeit einer Aktion


Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser

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.

SPS-Prog. z Ein zeitlich determiniertes Echtzeitsystem garantiert die


IEC 61131-3
vorherbestimmte Reaktion innerhalb einer definierten Zeitspanne
Baku 2004
7

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

RTOS (Instanzen von) Systemressourcen, auf die Rechenprozesse nur exklusiv


Kern oder konkurrierend zugreifen können.
RTOS Beispiele:
Kommunikation
• CPU, Speicher(bereiche), Kommunikationskanäle, HW-Bausteine, ...
µC-Prog. • nicht reentrant-fähige Systemprogramme und Systemprozeduren

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

Rechenprozesse und Tasks - Begriffe


Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Rechenprozess
Privater Datenraum
ƒ Ausführung eines Programms
Echtzeit-
Programmierung Task
Privater Programmspeicher
ƒ Stellt einem oder mehreren
Begriffe/ Rechenprozessen Betriebsmittel zur
Konzepte Verfügung, z.B. privater Speicher,
Programm 1

Programm n

Neben- Message Queues, Zeitgeber etc.


läufigkeit ƒ Umgebung, in der die zugeordneten
Rechenprozesse ablaufen.
RTOS
Kern Thread
PC PC ƒ Konkurrierend ablauffähiger
RTOS
Kommunikation Register- Register- Aktivitätsträger für einen Rechenprozess
satz satz /Teilprozess innerhalb einer Task
µC-Prog.
Stack Stack ƒ Stellt die unmittelbar zur Ausführung des
Rechenprozesses erforderlichen
SPS-Prog. Thread 1 Thread n
Betriebsmittel zur Verfügung, d.h. den
IEC 61131-3 Program Counter (PC), Stack,
Task
Registersatz, Zustand
Baku 2004
ƒ Oft: „Leichtgewichtiger Rechenprozess“
1
6

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

umfassende Planung ad-hoc Organisation


Echtzeit- des zeitlichen Ablaufs des zeitlichen Ablaufs
Programmierung vor der Ausführung bei Ausführung
(pre-run-time) (run-time)
Begriffe/
Konzepte
Neben-
statisch dynamisch
läufigkeit
RTOS
Kern

RTOS preemptiv kooperativ preemptiv kooperativ


Kommunikation

µC-Prog. Höherpriorer Höherpriorer Zusammen mit Nicht für Echtzeit-


Prozess Prozess Prioritätensteuerung Anwendungen
SPS-Prog. verdrängt wartet bis in Echtzeit- verwendbar
IEC 61131-3
niederprioren niederpriorer Prozess Betriebssystemen (MAC-OS, Win16)
Prozess die CPU freigibt verwendet
Baku 2004 1
8

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

Kommunikationskonzept Shared Memory (1)


Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
ƒ Verwendung gemeinsamer Speicherbereiche
Echtzeit- ƒ Einfach realisierbarer, nicht konsumierender Zugriff
Programmierung
auf Daten im globalen Adressraum der Task
Begriffe/ (Thread-Thread Kommunikation).
Konzepte
Neben-
ƒ Typ. pollender Zugriff (busy wait)
läufigkeit
ƒ M-zu-N Kommunikation möglich
RTOS
Kern ƒ Absicherung wechselseitiger Schreibzugriffe ?
RTOS → Synchronisation erforderlich
Kommunikation → besser: Problem vermeiden
µC-Prog. ƒ Datenstruktur bei Kontextwechsel ?
SPS-Prog. → Konsistenz nicht gewährleistet
IEC 61131-3 → Lösung: Einführen einer Gültigkeitsmarke auf
duplizierter Datenstruktur (vgl. Bild)
Baku 2004 2
0

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

Kommunikationskonzept Message Passing


Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser Asynchrones Botschaftenkonzept (asynchronous message passing)
z Aufwendiges Konzept, i.d.R. vom Betriebssystem unterstützt.
Echtzeit- z Ereignisgesteuerte Kommunikation (blocked wait)
Programmierung
z typ. 1-zu-1 Kommunikation, M-zu-N Kommunikation möglich
Begriffe/
z I.d.R. serialisierter, konsumierender Zugriff auf Telegramme.
Konzepte z Wechselseitige Schreibzugriffe nicht möglich (unidirektionale
Kanäle)
Neben-
läufigkeit
z Konsistenz der Datenstruktur in der Botschaft prinzip-bedingt
sichergestellt (Serialisierung von write(), send(), read())
RTOS z Implementierung durch Signals, Pipes, Message Queues, ...
Kern
z Einfluß der Puffergröße ?
RTOS
Kommunikation
Synchrones Botschaftenkonzept (synchronous message passing)
µC-Prog.
z Bidirektionale Kommunikation. Sender blockiert über einen
SPS-Prog. begrenzten Zeitraum bis zum Empfang einer Antwort → send(),
IEC 61131-3 receive(wait)
z Typ. Kapselung von send(), receive(wait) in remote procedure call
.
Baku 2004 2
2

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

Echtzeitprogrammierung für µC und Prozessrechner

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

Programmiersprachen für Echtzeitsysteme


Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
Java / embedded Java
ƒ Strukturierte / OO-Programmierung (C-ähnliche Syntax)
Echtzeit- ƒ völlig HW-unabhängig (HW-Abstraction-Layer)
Programmierung
→ sehr hohes Abstraktionsniveau der HW-Dienste
Begriffe/ → hohe Portabilität auf geänderte Hardware
Konzepte ƒ Interpreter (erstellt Byte Code für virtuelle Maschine) und
Neben- Compiler (erstellt spezifischen Maschinencode) verfügbar
läufigkeit ƒ Wesentliche Funktionen eines Echtzeitbetriebssystems in der
RTOS virtuellen Maschine integriert
Kern (→ hierzu existiert keine Standardisierung)
RTOS ƒ Nur prioritätenbehaftete Threads (typ.FIFO-Scheduling je Prio)
Kommunikation
→ VM typ. als Task im unterlagerten Betriebssystem
µC-Prog. (z.B. W2K, RMOS3)
ƒ Garbage Collection (Speicherbereinigung) hat höchste Priorität
SPS-Prog. → völlig unvorhersehbares Zeitverhalten
IEC 61131-3
→ diszipliniertes Allokieren statischer Speicherbereiche
ƒ Spracherweiterungen zu „Echtzeit-Java“ in der Entwicklung.
Baku 2004
Nutzen ?? 2
6

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

Anwendung: Analysengerät für Humanblutproben

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.

SPS-Prog. 6 min t/T0, Reagenz


IEC 61131-3 T0=6s Küvettenrad

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

SPS-Programmierung nach IEC 61131


Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser

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)

Warmstartroutine Resume-Routine Kaltstartroutine

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

Reaktionszeit auf externes Ereignis


Operationen
RTOS
Kern ƒ Typ. Reaktionszeit
auf externes
RTOS Ereignis
Kommunikation Ereignis bei rein erkennen

zyklischem Betrieb

Zykluszeit T
µC-Prog. Ereignis
verarbeiten

SPS-Prog.
IEC 61131-3

Baku 2004 Reaktion 3


auf Ereignis 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

ƒ Ohne Gedächtnis → keine gepufferten lokalen Variablen


Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser

ƒ Lokalitätsprinzip garantiert Freiheit von Seiteneffekten


Echtzeit- → keine Verwendung globaler Variablen
Programmierung
ƒ Kontrollfluss-Steuerung
Begriffe/
Konzepte
z über bool‘sche E/A: ENable-in (EN) und Enable-Out (ENO)
z nur für Programmiersprachen KOP und FBS definiert
Neben-
läufigkeit ƒ IEC 61131-3 definiert 6 Gruppen von Standardfunktionen für
RTOS
Kern Typkonversion BCD_TO_REAL, ...
RTOS Numerik ABS, LN, SIN, ...
Kommunikation
Arithmetik ADD, SUB, MUL, DIV, MOD, EXPT, MOVE
µC-Prog.
Bitoperation AND, OR, XOR, NOT, SHL, SHR, ROR, ROL
SPS-Prog.
IEC 61131-3 Auswahl, Vergleich SEL, MAX, MIN, LIMIT, MUX, EQ, GT, ...
Zeichenfolgen LEN, FIND, CONCAT, ...
Baku 2004 3
8

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

RTOS ink outn


Kommunikation FB-Typ
+Eingang : {Port | Referenz} Port

c-outm
c-out0
c-out1
µC-Prog. Referenzierbare

ENO
+Ausgang : Port Speicherstelle
+EN : bool (Port)
SPS-Prog. +ENO : bool
Referenz

IEC 61131-3 -Parameter Steuer-


+Initialisierungsanweisungen() ausgänge
Baku 2004 +Ausführungsanweisungen() 3
9

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

z Deklarationsteil für Variablen und FB-Instanzen


Echtzeit-
Programmierung z Anweisungsteil

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

RTOS Zusätzliche Mechanismen zur Kommunikation in Programmen


Kommunikation ƒ Aufrufparameter
µC-Prog. z VAR_OUTPUT, VAR_IN_OUT
z VAR_INPUT. Spezielle Attribute bei BOOL-Typen definiert:
SPS-Prog. R_EDGE (Rising Edge), F_EDGE (Falling Edge)
IEC 61131-3
ƒ Kommunikations-FB für Message Passing (IEC 61131-5)
Baku 2004 4
3

SPS-Programmierung nach IEC 61131


Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser

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

ƒ „Hochsprache“ für SPS. Typische Vorteile (gegenüber AWL)


Echtzeit- z sehr kompakte Darstellung des Algorithmus‘
Programmierung
z strukturierte Programmierung (keine Sprünge)
Begriffe/ z Typische Token zur Kontrollflusssteuerung, i.e.
Konzepte → Sequenz
Neben- → Auswahl (bedingt, alternativ, mehrfach)
läufigkeit
→ Iteration (mit Vor-, Nach- oder Abbruchbedingung, Zählschleifen)
RTOS
Kern z Typische numerische und bool‘sche Operationen
(+,-,*,/, mod,<,>,=, AND ...)
RTOS z Notation Pascal-ähnlich
Kommunikation
ƒ Unterprogrammstrukturierung durch Aufruf von POE (FUN, FB)
µC-Prog.
ƒ Compiler zur Übersetzung in Maschinencode erforderlich
SPS-Prog.
IEC 61131-3

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.

SPS-Prog. ƒ Eine Verschaltung mit POE (FUN, FB) ist erlaubt


IEC 61131-3
ƒ KOP-Netze werden sequenziell bearbeitet
ƒ Sprünge sind definierbar
Baku 2004 4
9

FBS – Funktionsbausteinsprache
Informationstechnik
Automatisierungstechnik
Prof. Dr. Stefan Kreiser
ƒ Verknüpfungs- und Ablaufsteuerungen darstellbar
Echtzeit-
Programmierung BlR +
SINT_TO_REAL

Begriffe/ z Verarbeitung diskreter oder


Konzepte diskretisierter analoger Signale Kalibrier

Neben- z Durch Einsatz von


läufigkeit Haltegliedern (Flip-Flops) für Typ SEL

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

µC-Prog. ƒ Nicht aktivierter Schritt


ƒ Parallelisierung Ablauf S8 S9
SPS-Prog.
IEC 61131-3 ƒ Synchronisation Ablauf
ƒ Zyklischer Betrieb
Baku 2004 5
2

Seite 26