15
TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuhl für Automatisierungstechnik (Stand 26. Mai 2008) Praktikum zur Lehrveranstaltung Mikrorechentechnik II Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage Inhaltsverzeichnis 1 Versuchsziel .................................................................................................................. 1 2 Industrielle Problemstellung.......................................................................................... 1 3 Beschreibung des Versuchsstandes ............................................................................ 2 4 Hinweise zur Programmierung...................................................................................... 4 5 Versuchsaufgaben....................................................................................................... 10 6 Kontrollfragen.............................................................................................................. 10 7 Versuchsauswertung................................................................................................... 11 8 Literatur........................................................................................................................ 11 9 Anhang......................................................................................................................... 12 9.1Hinweise zur Funktion von Aktorik und Sensorik...................................................12 9.2Hinweise zum Entwurf der Steuerung....................................................................13 9.3Anhang: ART1.H.....................................................................................................15 10 Arbeits- und Brandschutzhinweise............................................................................ 16 1 Versuchsziel Anwendung der Sprache C/C++ zur Entwicklung und Implementierung eines Programmes für die Steuerung des Füllstandes einer Zweibehälteranlage. Inbetriebnahme und Test der Steuerung/ Nachweis des störungsfreien Dauerbetriebes. 2 Industrielle Problemstellung Eine Vielzahl industrieller Prozesse der so genannten Verfahrenstechnik sind durch Behältersysteme, Rohrleitungen mit integrierten Pumpen und Ventilen charakterisiert. Betrachtet man zum Beispiel eine Brauerei, so ist diese Apparatetechnik in typischer Weise im Sudhaus und im Außenbereich durch so genannte Stapelbehälter repräsentiert (vergl. z.B. Brauerei Dresden Coschütz). In diesen Systemen werden vorrangig flüssige Einsatzstoffe transportiert, vermischt, thermisch behandelt und zwischengelagert. Diese Prozessverfahrenstechnik ist nicht ohne entsprechende Automatisierungsstrukturen zu realisieren. Dabei werden vorrangig Füllstände, Durchsätze, Drücke und Temperaturen geregelt und gesteuert. Für die Realisierung dieser Automatisierungsaufgaben erfolgt in kompletter Auslegung die Projektierung der erforderlichen Mess, - Stell - und Prozessleittechnik. Der Praktikumsversuch greift daher aus dem umfangreichen Spektrum dieser Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-1

Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

Embed Size (px)

Citation preview

Page 1: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

(Stand 26. Mai 2008)

Praktikum zur LehrveranstaltungMikrorechentechnik II

Versuch ART1:Füllstandssteuerung/ Zweibehälteranlage

Inhaltsverzeichnis1 Versuchsziel.................................................................................................................. 12 Industrielle Problemstellung.......................................................................................... 13 Beschreibung des Versuchsstandes ............................................................................ 24 Hinweise zur Programmierung...................................................................................... 45 Versuchsaufgaben....................................................................................................... 106 Kontrollfragen.............................................................................................................. 107 Versuchsauswertung................................................................................................... 118 Literatur........................................................................................................................ 119 Anhang......................................................................................................................... 12

9.1Hinweise zur Funktion von Aktorik und Sensorik...................................................129.2Hinweise zum Entwurf der Steuerung....................................................................139.3Anhang: ART1.H.....................................................................................................15

10 Arbeits- und Brandschutzhinweise............................................................................ 16

1 Versuchsziel

• Anwendung der Sprache C/C++ zur Entwicklung und Implementierung eines Programmes für die Steuerung des Füllstandes einer Zweibehälteranlage.

• Inbetriebnahme und Test der Steuerung/ Nachweis des störungsfreien Dauerbetriebes.

2 Industrielle Problemstellung

Eine Vielzahl industrieller Prozesse der so genannten Verfahrenstechnik sind durch Behältersysteme, Rohrleitungen mit integrierten Pumpen und Ventilen charakterisiert.Betrachtet man zum Beispiel eine Brauerei, so ist diese Apparatetechnik in typischer Weise im Sudhaus und im Außenbereich durch so genannte Stapelbehälter repräsentiert (vergl. z.B. Brauerei Dresden Coschütz). In diesen Systemen werden vorrangig flüssige Einsatzstoffe transportiert, vermischt, thermisch behandelt und zwischengelagert. Diese Prozessverfahrenstechnik ist nicht ohne entsprechende Automatisierungsstrukturen zu realisieren. Dabei werden vorrangig Füllstände, Durchsätze, Drücke und Temperaturen geregelt und gesteuert. Für die Realisierung dieser Automatisierungsaufgaben erfolgt in kompletter Auslegung die Projektierung der erforderlichen Mess, - Stell - und Prozessleittechnik. Der Praktikumsversuch greift daher aus dem umfangreichen Spektrum dieser

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-1

Page 2: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

Automatisierungsaufgaben ein Beispiel heraus und macht dieses zur Basis des zu realisierenden C/C++-Programmes. Das heißt, an einer Kleinversuchsanlage (Bild1), werden an einem Behälter, als typischer Komponente einer verfahrenstechnischen Anlage, der Füllstand (oberer/unterer Grenzwert) überwacht und mittels einer Pumpe je nach Situation ausgeglichen. Dafür ist vom Praktikumsteam eine binäre Steuerung zu entwerfen und in ein C/C++-Programm umzusetzen.Die Erfassung des Füllstandes wird unter industriellen Bedingungen mittels analogerSensoren – z.B. Ultraschallsensoren – oder für die oberen/unteren Grenzwerte mittels binärer Sensoren, z.B. kapazitiver oder elektromechanischer Sensoren, vorgenommen. Die dabei mittels binärer Sensoren realisierte Grenzwertüberwachung erfüllt auch prozesssichernde Funktionen, die für den Betrieb industrieller Anlagen notwendig sind.Der nachfolgend beschriebene Versuchsaufbau orientiert sich also an dieser Problematik und vermittelt einfach und beispielhaft das Wirken dieser Automatisierungslösung.

Bild 1: Ansicht der verfahrenstechnischen Kleinversuchsanlage

3 Beschreibung des Versuchsstandes

Ausgehend von einer Zweibehälteranlage (Bild 2), welche mit entsprechender Messtechnik ausgerüstet ist, soll der Füllstand im Behälter B1 trotz ständiger Wasserentnahme und damit verbundener Füllstandsänderung stets auf das Niveau des Sensors S1 (oberer Grenzwert) zurückgeführt werden. Dafür ist die Zweibehälteranlage mit einer Pumpe P1 und der Behälter B1 mit den Sensoren S1 (oberer Grenzwert) und S2 (unterer Grenzwert) ausgerüstet. Damit sind folgende Aufgaben realisierbar:

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-2

Page 3: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

● Das Wasser ist stets vom Behälter B2 in den Behälter B1 zu fördern.● Die über die Rückflussleitungen (Störleitungen – Handventil VH und elektrisches

Steuerventil VS) abfließende Wassermenge ist auszugleichen. (Sind beide Ventile, das heißt, das Handventil VH sowie das elektrische Steuerventil VS

geöffnet, fließt mehr Wasser in den Behälter B2 zurück, als die Pumpe P1 in den Behälter B1 fördern kann (gegebenenfalls Stromstärke vorsichtig anpassen).

Beachte:

● Das elektrische Steuerventil VS ist solange geschlossen bis das Niveau des Sensors S1 erreicht ist (Pumpe P1 läuft).

● Bei Ansprechen des Sensors S1 ist das elektrische Steuerventil VS zu öffnen, die Pumpe P1 abzuschalten und das Zeitglied (Variante 1: Laufzeit A – 30s und/oder Variante 2: Laufzeit B – 60s) zu starten.

● Nach Ablauf der jeweils programmierten Zeit (30s/60s) ist das elektrische Steuerventil VS zu schließen; die Pumpe P1 einzuschalten und das Zeitglied rückzusetzen.

● Spricht auf Grund der verfahrenstechnischen Situation der Sensor S2 an (bevor das Zeitglied abgelaufen ist), wird das elektrische Steuerventil VS gleichfalls geschlossen, die Pumpe P1 eingeschaltet und das Zeitglied rückgesetzt, so dass sich Behälter B1 wieder bis zum Ansprechen des Sensors S1 auffüllt.

● Bei Ansprechen des Sensors S5 wird die Pumpe P1 sofort abgeschaltet und das elektrische Steuerventil VS geöffnet. Damit wird der sogenannte Trockenlaufschutz für Pumpen als ein Standardbeispiel der Prozesssicherung in der Verfahrenstechnik realisiert. In der Zweibehälteranlage ist diese “Gefahrensituation” herbeiführbar, indem Sie den Sensor S1 bis zum oberen Anschlag seiner Halterung verschieben.

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-3

Bild 2: R & I – Fließbild des Zweibehältersystems

Heizmodul(nicht verwendet)

S5

S4

S3

S2

S1

VS

VH

Behälter 2

Behälter 1

P1

Legende:VH Handventil,VS elektrisches Auf / Zu-Ventil S1...S5 binäre Sensoren (Grenzwertschalter)

Page 4: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

4 Hinweise zur Programmierung

Allgemeine Erläuterungen zur Programmierung

Programmieraufgaben für solche Prozesssteuerungen zeichnen sich im allgemeinen durch folgende Merkmale aus:

(a) Zugriff auf die Prozess-Signale,(b) zeitgesteuerte Abarbeitung („Echtzeit“) und (c) Reaktion auf nicht zeitsynchrone externe Ereignisse (Alarme/Interrupts etc.).

Im Rahmen des Praktikumsversuchs ART1 werden vereinfachte Mechanismen zu (a), (b) und (c) trainiert.

Die programmiertechnische Umsetzung von Aufgaben zur Prozesssteuerung wird in der Regel von der eingesetzten Automatisierungsmitteltechnik bestimmt. Dabei sind vor allem zwei Geräteklassen für derartige Aufgaben relevant: Speicherprogrammierbare Steuerungen (SPS) und freiprogrammierbare Prozessrechner (oft sog. „Industrie-PCs“). Programme für Speicherprogrammierbare Steuerungen werden im allgemeinen nur mit Hilfe der vom jeweiligen Hersteller mitgelieferten Entwicklungsumgebungen entwickelt und getestet. Die Programmiersprachen entsprechen normalerweise der internationalen Norm IEC 1131. Das bedeutet, konkrete Programmierdetails, verfügbare Ein- und Ausgabekanäle und andere Leistungsparameter werden durch diese IEC-gerechte Programmierung für die unterschiedlichen Speicherprogrammierbaren Steuerungen nahezu einheitlich gehandhabt.

Der vorliegende Praktikumsversuch beschäftigt sich ausschließlich mit charakteristischen Programmierelementen für „freiprogrammierbare Prozessrechner“. Diese bestehen i.d.R. aus Standard-Rechnerarchitekturen (PC, VME-Bus...), die durch Prozess-Ein-/Ausgabe-Module und Wiederanlaufsysteme erweitert werden. Die Programmierung erfolgt oft in C/C++, Pascal oder Assembler. Dabei laufen die Programmentwicklungssysteme auf dem Prozessrechner selbst oder auf einem extra Entwicklungsrechner (PC oder Workstation, sog. „Host-Rechner“). Als Betriebssysteme werden meist universelle Echtzeitbetriebssysteme (VxWorks, OS-9, pSOS, VRTX, Linux Kernel mit Echtzeiterweiterung, etc) bzw. auch Nichtechtzeitbetriebssysteme wie DOS oder Windows mit spezifischen Echtzeiterweiterungen eingesetzt.Der eingesetzte Rechner ist Entwicklungs- und Steuer-Rechner in einem. Zur Ansteuerung der Versuchshardware ist er durch ein USB Ein-/ Ausgabegerät erweitert worden. Als Programmierumgebung kommt Eclipse mit CDT zum Einsatz, das Betriebssystem ist Ubuntu Linux. Für den Zugriff auf das E/A-Gerät und die Benutzung eines Millisekunden-genauen Timers steht Ihnen ein vorgefertigter Eclipse Workspace mit entsprechenden Prozeduren zur Verfügung. Damit Sie Ihr Programm auch unabhängig von dem Versuchsplatz testen können, können Sie eine Simulation des angeschlossenen Prozesses über eine globale Variable aktivieren.

Zur Vorbereitung des Praktikums können Sie den ART1 Eclipse Workspace über das Internet von der Institutsseite herunterladen (http://www.et.tu-dresden.de/typo3/ifa/ → Studium → Lehrveranstaltungen). Bitte bereiten Sie das Praktikum entsprechend der Aufgabenstellung vor und bringen Sie den angepassten Workspace auf einem USB-Stick mit oder speichern Sie ihn im Internet, z.B. auf Ihrem Webmail-Account. Bringen Sie den angepassten Workspace bitte nicht auf CD mit, da das CD-Laufwerk bereits verwendet wird.

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-4

Page 5: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

Verwendung des Programm-Moduls ART1

Der Eclipse Workspace ART1 enthält Unterprogramme zur Benutzung des PC-Timers und des E/A-Gerätes.

Starten Sie Eclipse von der Live-CD und wählen Sie als Workspace den heruntergeladenen Ordner (vorher entpacken).

Verwendung der Live-CD:

1. Stellen Sie sicher, dass im BIOS ihres PC's Ihr CD/DVD Laufwerk als Bootlaufwerk eingestellt ist.

2. Sollte beim Booten der CD einige Zeit der Bildschirm schwarz bleiben, warten Sie bitte eine Weile, der Bootvorgang fährt mit hoher Wahrscheinlichkeit fort. Dies kann bei der Hardwareerkennung auf exotischen Systemen auftreten.

3. Wenn der Bootvorgang dennoch fehlschlägt wählen Sie im Boot-Loader der Live-CD bitte den sicheren Grafikmodus aus.

4. Hilfestellungen zur Live-CD finden Sie in Ubuntu-Foren (z.B. ubuntuusers.de, Stichwort: Installations-CD, Live-CD) und über Suchmaschinen (Stichwort: Remastersys Skript) sowie auf dem Desktop des Livesystems.

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-5

Page 6: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

Die einzelnen Unterprogramme sind in der Datei ART1.H (siehe Anhang sowie in Eclipse links im Projektbaum) ausführlich dokumentiert. Sie lassen sich in drei Gruppen zusammenfassen: Benutzung der Digital-E/A-Karte, Polling-Betrieb und Interrupt-Betrieb.

Prozeduren zur Benutzung der Digital-E/A-Karte

Zu dieser Gruppe gehören die Prozeduren DIO_Init, DIO_Read und DIO_Write. Zur Auswertung einzelner Eingabe-Kanäle benötigen Sie die Bit-Operatoren der Programmiersprache C:

& - bitweises UND| - bitweises ODER^ - bitweises Exklusiv-ODER~ - bitweise Negation

(nicht zu verwechseln mit den logischen Operatoren &&, ||, !) sowie passende „Masken“-Werte, die man in C günstig als hexadezimale Konstanten (z.B. 0xFFFE für int-Werte, 0xFFFFFFFEL für long-int-Werte) notieren kann. Wenn Sie die Ausgabe-Kanäle einzeln und unabhängig voneinander verändern wollen, müssen Sie auf eigenen Variablen die aktuellen Werte der jeweils anderen Ausgabe-Kanäle gespeichert haben, damit Sie den korrekten Ausgabewert für DIO_Write zusammensetzen können.

Prozeduren für den Polling-Betrieb

Entsprechend der zu lösenden Steuerungsaufgabe soll Ihr Programm zeitzyklisch bestimmte Anweisungen ausführen, d.h. Sie benötigen im Programm die Information, wann ein solcher Zyklus starten soll. Um eine von der Laufzeit des Algorithmus unabhängige Zeitsteuerung zu erreichen, verwendet man dafür sog. Zeitgeber (Timer). Der Timer wird einmalig mit der passenden Zykluszeit gestartet und erzeugt danach selbsttätig zu Beginn jedes Zeitintervalls in irgendeiner Form ein „Signal“, das ausgewertet werden kann.

Im sog. Polling- (= „Abfrage“-) Betrieb wird in einer Schleife permanent dieses Signal abgefragt. Wenn es gesetzt ist, arbeiten Sie Ihren Steuerungsalgorithmus ab, um anschließend wieder die Abfrage-Schleife zu beginnen, usf…Für diese Betriebsart verwenden Sie die Prozedur StartTimer. StartTimer enthält dabei schon die Warte-Schleife für das Timer-Ereignis und kehrt nach der als Parameter übergebenen Zeit zurück, so dass die Abarbeitung des Programms fortfährt.

Bitte verwenden Sie im Rahmen des Praktikums unbedingt die Prozeduren aus dem Modul ART1.h!

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-6

Page 7: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

Prozeduren für den Interrupt-Betrieb

Im Interrupt-Betrieb binden Sie eine Prozedur direkt an das Timer-Ereignis. Der Parameter der Prozedur ist eine Signalnummer vom Typ int. Diese Prozedur wird dann automatisch bei jedem Timer-Signal aufgerufen und arbeitet den Steueralgorithmus einmal komplett ab. Damit teilen Sie Ihr Programm in zwei „Ebenen“ auf: das Vordergrundprogramm, in dem alle nicht zeitabhängigen Aufgaben bearbeitet werden können (hier wird das nur die Verarbeitung eventueller Benutzereingaben sein, z.B. für einen definierten Programmabbruch), und die Interrupt Service Routine (ISR), in welcher der eigentliche Steuerungsalgorithmus bearbeitet wird.Die ISR „unterbricht“ das Vordergrundprogramm im Moment des Timer-Signals und wird dann mit erhöhter Priorität bearbeitet. Diese erhöhte Priorität ist ein großer Vorteil des Interrupt-Betriebes: nur so können Sie sicherstellen, dass der Steuerungsalgorithmus wirklich unmittelbar beim Timer-Signal startet und dann auch bis zum Ende ununterbrochen Rechenzeit erhält. Im Polling-Betrieb könnte es nämlich auf Multitasking-Systemen passieren, dass gerade zwischen der Erkennung des Timer-Signals und seiner Auswertung oder mitten im Steuerungsalgorithmus ein anderes Programm Rechenzeit erhält und damit Ihren Algorithmus „ausbremst“.Sie sollten Ihren Steuerungsalgorithmus zunächst im Polling-Betrieb testen. Wenn alles läuft, schalten Sie auf Interrupt-Betrieb um.Um den Interrupt-Betrieb zu starten, verwenden Sie die Prozedur StartTimerWithISR. Wenn Ihre ISR mit dem Vordergrundprogramm Daten austauschen soll, arbeiten Sie am besten mit globalen Variablen Eine ISR könnte z.B. ART1SR(int signo) heißen, wobei der Prozedur StartTimerWithISR die Speicheradresse der ISR übergeben wird.

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-7

. . .

. . .

Bei Abbruch

Signal gesetzt ?

Signal rücksetzen

Anwenderprogramm

Signal setzen

Systemuhr aktualisieren

. . .

Hardware-Interrupt des Timer-Schaltkreises

Initialisierung

StartTimer

Steuerungs-Algorithmus

Bild 3: Programmarchitektur im Polling-Betrieb

Betriebssystem

Page 8: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

Bemerkung: Mit dem Interrupt-Betrieb haben Sie bereits auch den Mechanismus kennen gelernt, mit dem ein Programm auf zeitlich nicht vorherbestimmte („asynchrone“) Ereignisse reagieren kann: man programmiert dann z.B. eine Digital-E/A-Karte so, dass sie bei der Low-High-Flanke eines bestimmten Eingabekanals einen (Hardware-) Interrupt erzeugt und bindet daran eine weitere ISR. An den Eingabekanal der Digital-E/A-Karte kann man nun z.B. das Signal eines Alarm-Sensors aus dem Prozess anschließen. Wechselt das Alarm-Signal auf High-Pegel, kann die ISR quasi sofort auf dieses Ereignis reagieren (z.B. Pumpen abschalten, Ventile schließen...).

Simulationsumgebung zum Programmtest ohne Zugriff auf die Versuchs-HardwareFür einen ersten Programmtest ohne Zugriff auf die Versuchs-Hardware können Sie die Simulationsumgebung in Ihr Programm einbinden. Dazu ändern Sie in der Header-Datei ART1.H die globale Variable.Der Zugriff auf die Digital-E/A-Karte wird nun durch Zugriffe auf die Bits eines internen Speicherbereiches simuliert (Prozeduren DIO_Read und DIO_Write), DIO_Init setzt alle (simulierten) Ein- und Ausgabekanäle auf 0. Die Tasten F1...F9 schalten die Kanäle 0...8. Damit können Sie die Sensor-Signale der Versuchsanordnung manuell simulieren.Damit Sie auch sehen können, welchen Wert die Kanäle gerade haben, zeigen die Prozeduren DIO_Init, DIO_Write (im Polling-Betrieb) auf den obersten beiden Bildschirmzeilen die aktuelle Kanalbelegung an. Die Eingabekanäle werden in blauer, die Ausgabekanäle in roter Schrift dargestellt. Wenn Sie die Simulationsumgebung benutzen wollen, sollten Sie Ihre eigenen Bildschirmausgaben deaktivieren und den markierten Button zum Ausführen Ihres Programms in „xterm“ verwenden.

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-8

Betriebssystem Anwenderprogramm

Anwender-ISR aufrufen

Systemuhr aktualisieren

. . .

Hardware-Interrupt des Timer-Schaltkreises

Steuerungs-Algorithmus

. . .

Initialisierung

StartTimerWithISR

Endlosschleife

bei Abbruch

Programmende

ISR Vordergrundprogramm

Bild 4: Programmarchitektur im Interrupt-Betrieb

Page 9: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

5 Versuchsaufgaben

Analyse des Prozessablaufes.• Definition der notwendigen Binärvariablen bei Berücksichtigung der vorgegebenen

Prozessverfahrenstechnik sowie der konfigurierten Sensorik und Aktorik.• Entwurf der binären Steuerung (vergl. Anhang).• Entwerfen Sie das Hauptprogramm für die Steuerung als C/C++-Programm

entsprechend der in Bild 3 vorgegebenen Architektur für den Polling-Betrieb! • Entwerfen Sie den Steueralgorithmus als parameterlose C/C++-Prozedur und

binden Sie diese in die Polling-Schleife Ihres Hauptprogramms ein!• Testen Sie das Gesamtprogramm für den Pollingbetrieb im Zusammenwirken mit

der Zweibehälteranlage im Simulationsmodus!• Optional: Erarbeiten Sie eine weitere Version Ihres Hauptprogramms, die der in Bild

4 vorgegebenen Architektur für den Interrupt-Betrieb entspricht! (Hinweis: es sollten dafür nur wenige Änderungen im Hauptprogramm erforderlich sein!)

• Angaben einer kurzen Inbetriebnahmevorschrift sowie einiger Hinweise zu möglichen Betriebsstörungen (in Stichpunktform).

6 Kontrollfragen

• Erläutern Sie an Hand des Verfahrenstechnischen Schemas (Verfahrensfließbild) die Funktion der Zweibehälteranlage (Hinweis: Erläutern Sie auch die entsprechenden Inhalte an der bereitstehenden Kompaktanlage).

• Definieren Sie die für den Steuerungsentwurf erforderlichen binären Variablen.• Wie gehen Sie beim systematischen Entwurf einer binären Steuerung vor?• Erläutern Sie prinzipiell den Unterschied zwischen einer Kombinations – und einer

Folgeschaltung (sequentieller Schaltung).• Durch welche typischen Merkmale zeichnen sich Programmieraufgaben aus dem

Gebiet der Prozesssteuerung aus?• Nennen Sie die Operatoren der Programmiersprache C zur Bitverarbeitung!• Welche Datentypen sind in C für die Bitverarbeitung geeignet?• Notieren Sie eine „Bitmaske“ als hexadezimale Konstante, bei der nur die Bits 0, 4

und 5 den Wert „1“ haben, wobei Bit 0 das niederwertigste Bit ist!• Notieren Sie einen logischen C-Ausdruck, der nur dann wahr ist, wenn das Bit 6 der

Integer-Variablen X_BITS den Wert „1“ hat! (Bit 0 ist das niederwertigste Bit)• Notieren Sie eine C-Anweisung, die das Bit 4 der Integer-Variablen X_BITS auf „0“

setzt, die anderen Bits aber unverändert lässt! (Bit 0 ist das niederwertigste Bit)• Erläutern Sie die Benutzung des Timers aus dem Modul ART1!• Beschreiben Sie die programmiertechnische Realisierung von „Wartezeiten“ im

Sekundenbereich auf Basis des Timers aus dem Modul ART1 unter der Voraussetzung, dass der Timer fest auf eine Zykluszeit von 10 ms eingestellt ist!

• Beschreiben Sie die Unterschiede zwischen Polling- und Interrupt-Betrieb bei der Benutzung des Moduls ART1!

• Was bedeutet Re-Entry-Fähigkeit von Prozeduren? Was kann das Fehlen dieser Eigenschaft im Interrupt-Betrieb für Folgen haben?

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-9

Page 10: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

7 Versuchsauswertung

Erarbeiten Sie nach erfolgreicher Versuchsdurchführung ein gemeinsames Versuchsprotokoll mit folgendem Inhalt:• Dokumentation des Programmentwurfs (Erklärung der Entwurfsentscheidungen...),• Programmablaufplan,• Dokumentation der Inbetriebnahme (Strategie, Fehlerkorrektur...), ggf. kritische

Einschätzung des Ergebnisses, Verbesserungsvorschläge..., Quelltexte

8 Literatur

[1] Bocksnik, BerndGrundlagen der SteuerungstechnikFesto Didactic GmbH - Esslingen

[2] Wunsch, Gerhard, Schreiber, Helmut: Digitale Systeme;Berlin Heidelberg u.a. 1993: Springer

[3] Jacoby, Walter: Automatisierungstechnik-Algorithmen und Programme;Berlin, Heidelberg, New York, u.a: 1996: Springer

[4] Feindt, Ernst-Günter: Entwurf und Simulation industrieller Steuerungen für den PC und die SPS; München 1997: Oldenburg

[5] Lauber, R.; Göhner, P.: Automatisierungssysteme und –Strukturen, Computer- und Bussysteme für die Anlagen- und Produktautomatisierung, Echtzeitprogrammierung und Echtzeitbetriebssysteme, Zuverlässigkeits- und Sicherheitstechnik. Springer -Verlag, 1999.

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-10

Page 11: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

9 Anhang

9.1 Hinweise zur Funktion von Aktorik und Sensorik

- Signaldefinition (allgemein)

High-Signal = 1-Signal = 24 VDCLow-Signal = 0-Signal = 0 VDC

- Signaldefinition (Sensoren S1-S5); Hinweis: Die zur Lösung der Aufgabe benötigten Sensoren sind fettgedruckt.

Wasserstände entsprechendSensorniveau

Signale der SensorenBehälter B1 Behälter B2S1 S2 S3 S4 S5

Wasserstand unter Niveau 0 0 0 0 0Wasserstand erreicht Niveau 1 1 1 1 1Wasserstand über Niveau 1 1 1 1 1Tabelle 1: Sensorsignale

- Signaldefinition(für die Ansteuerung von Pumpe und elektrischem Steuerventil)

Pumpe- 1-Signal Pumpe -EIN-- 0-Signal Pumpe -AUS-

Elektrisches Steuerventil- 1-Signal Ventil -Öffnen-- 0-Signal Ventil -Schließen-

- Belegung der I/O-Karten (Verdrahtung bereits ausgeführt)

- Digitaleingabe;Hinweis: Die zur Lösung der Aufgabe benötigten Eingabekanäle sind fettgedruckt.

SensorenEingängeE0 E1 E2 E3 E4 ... E15

S1 XS2 XS3 XS4 XS5 XTabelle 2: Belegung – Digitaleingabe

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-11

Page 12: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

- Digitalausgabe; Hinweis: Die zur Lösung der Aufgabe benötigten Ausgabekanäle sind fettgedruckt.

AktorenAusgängeA0 A1 A2 A3 A4 ... A7

Pumpe XElektr. Steuerventil XHeizung XFehleranzeige XTabelle 3: Belegung - Digitalausgabe

9.2 Hinweise zum Entwurf der Steuerung

Definition der Variablen

- unabhängige Variable- Sensor S5

- Sensor S2

- Sensor S1

Ausgang-Zeitglied xz = 1 - Timer abgelaufen

- abhänge Variable- Pumpenansteuerung y P

- Ventilansteuerung yv

- Ansteuerung des Zeitgliedes- Y ZS - Startsignal- Y ZR - Rücksetzsignal

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-12

Page 13: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

Definition des Variablenvektors (für den Automatengraph)

S1 S2 S5 XZ / YP YV YZS YZR

Automatengraph(Anm.: Mögliche Sensorfehler werden nicht im Entwurf berücksichtigt!)

0100/0100

0100/0100

0110/1000

0110/1000

1110/0110

1110/0110

0111/1001

011

0/1

000

0111/10010011/10010010/1001

0010/1001

0011/1001

0110/01000110

/01

00Die Zustände repräsentieren folgenden verfahrenstechnischen Hintergrund:

• Zustand 1Der Füllstand ist im Behälter B1 zu niedrig (Ruhezustand der Anlage/elektrisches Steuerventil VS geschlossen)- Einschalten der Pumpe P1

• Zustand 2Der Füllstand hat im Behälter B1 seinen Maximalwert erreicht bzw. überschritten- Ausschalten der Pumpe P1/ Öffnen des elektrischen Steuerventils VS/ Starten des Zeitgliedes

• Zustand 3Der Füllstand sinkt im Behälter B1 - Zeitglied läuft

• Zustand 4Das Zeitglied ist abgelaufen oder der Füllstand ist unter das Niveau von Sensor S2 gesunken

• Zustand 1ADer Füllstand sinkt im Behälter B2 unter das Niveau des Sensors S5 - Ausschalten der Pumpe P1/ Öffnen des Ventils VS

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-13

Page 14: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

9.3 Anhang: ART1.H

/* * ART1.h deklariert Funktionen zur Benutzung des Timers und des* E/A Geraetes.*/

/* * Simulation an- oder ausschalten */const bool SIMULATION = true;

/* * Startet den Timer und wartet seconds Sekunden. * (Richtwert: 0.03 ... 0.5 s) * Werte darunter fuehren je nach Rechner zum Ueberlauf. */int StartTimer (double seconds);

/* * Startet den Timer und programmiert ihn auf das Zeitintervall * seconds (in Sekunden) und ordnet dem Timer-Signal die Handler- * Funktion void handler(int) zu. Diese wird periodisch bei jedem * Timer-Ueberlauf aufgerufen. */int StartTimerWithISR (double seconds, void (*handler)(int) );

/* * Wartet, bis der Benutzer eine Taste + Enter drueckt. */char WaitForUserInput (void);

/* * Initialisiert das Geraet und setzt alle Ausgaenge auf 0 und * kann zu Beginn des Programms aufgerufen werden */void DIO_Init (void);

/* * Liest die Eingabe-Kanaele der Karte. * Die Kanaele sind den Bits von in_channels direkt zugeordnet, * d.h. Kanal 0 liegt auf Bit 0 (niederwertigstes Bit), usw. */void DIO_Read (long int *in_channels);

/* * Schreibt alle Ausgabe Kanaele auf die Digital-EA-Karte. * Die Kanaele sind den Bits von out_channels direkt zugeordnet, * d.h. Kanal 0 liegt auf Bit 0 (niederwertigstes Bit), usw. */void DIO_Write (long int out_channels);

/* * Sollte bei Beendung des Programms ausgefuehrt werden und * schaltet xterm aus dem grafischen (der fuer die Simulation * verwendet wird), in den normalen Modus zurueck. */void DIO_End(void);

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-14

Page 15: Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage · TECHNISCHE UNIVERSITÄT DRESDEN INSTITUT FÜR AUTOMATISIERUNGSTECHNIK Lehrstuh lfür Automatisierungstechnik (Stand 26

TECHNISCHEUNIVERSITÄTDRESDEN

INSTITUT FÜR AUTOMATISIERUNGSTECHNIK

Lehrstuhl für Automatisierungstechnik

10 Arbeits- und Brandschutzhinweise

Vorbeugende Maßnahmen:

- Die Praktikumsteilnehmer haben sich so zu verhalten, dass Gefahrensituationen und Unfälle vermieden werden.

- Die Befugnis zum Bedienen und Nutzen von Geräten ist auf den zugewiesenen Praktikumsplatz beschränkt.

- Eingriffe in die zum Praktikumsaufbau gehörenden Geräte sind nicht erlaubt. - Der Anschluss und der Betrieb privater Geräte in den Praktikumsräumen ist verboten. - Defekte an Geräten oder Gebäudeeinrichtungen sind unverzüglich dem Betreuer

mitzuteilen. Betroffene Geräte sind außer Betrieb zu nehmen. Andere Personen sind vor Gefahren zu warnen.

- Den Anweisungen der Praktikumsbetreuer bzw. anderer aufsichtsführender Personen ist unbedingt Folge zu leisten.

- Betriebsfremde dürfen sich nur mit Erlaubnis des Praktikumsbetreuers in den Praktikums-räumen aufhalten.

- Rauchen und Umgang mit offenem Feuer ist nicht gestattet. - Nach Ende des Praktikums ist der Arbeitsplatz in sauberem und aufgeräumtem Zustand zu

hinterlassen.- Außergewöhnliche Ereignisse bzw. besondere Vorkommnisse sind umgehend dem

Betreuer oder dem diensthabenden Assistenten zu melden.

Verhalten im Falle eines Brandes:

- Beachten der richtigen Reihenfolge: MELDEN - RETTEN - LÖSCHEN -FEUER MELDEN:* Telefonische Brandmeldung: Notruf 112 der Feuerwehr (von jedem Telefon aus möglich)

Notruf HA 34515 der Technischen Leitzentrale der TUD* Deutliche, genaue und vollständige Angaben:

. Wo brennt es?

. Was brennt?

. Angaben zu verletzten oder gefährdeten Personen

. Wer meldet?- PERSONEN RETTEN: * Erste Hilfe leisten* Weitere Hilfe organisieren, medizinische Hilfe anfordern* Gefahrenbereich räumen; Fluchtwege benutzen, keine

Aufzüge* Andere Personen warnen, Sammelplatz (Platz vor

Turmeingang zum Barkhausenbau) aufsuchen* Behinderten und älteren Personen helfen

- LÖSCHVERSUCH UNTERNEHMEN* Feuerlöscher verwenden (Standorte: Gänge des Barkhausen-

baues), dabei sich nicht selbst gefährden* Fenster und Türen schließen, aber nicht abschließen* Möglichst elektrische Verbraucher abschalten

Rufnummern für Notfälle: Rettungsdienst:112 Polizei: 110 TUD-Notruf: HA 34515 Betriebsärztin Dr. Hentschel: HA 36199 oder 36255

Klinikum Friedrichstadt: 0 4800 (Amtsanschluß)

Praktikum / D. Hofmann ; Th. Range ; M. Werner PC-15