Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage

Ähnliche Dokumente
Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

TeamSpeak3 Einrichten

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

LPT1 Anschluss mit PCMCIA Karte

iphone-kontakte zu Exchange übertragen

Datensicherung. Beschreibung der Datensicherung

Installation / Aktualisierung von Druckertreibern unter Windows 7

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

DOKUMENTATION VOGELZUCHT 2015 PLUS

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Überprüfung der digital signierten E-Rechnung

Live Update (Auto Update)

Workshop: Eigenes Image ohne VMware-Programme erstellen

HTBVIEWER INBETRIEBNAHME

Computeria Solothurn

Lernwerkstatt 9 privat- Freischaltung

Mediumwechsel - VR-NetWorld Software

Kapitel 1: Betriebssystem IX. W indows Explorer und der Arbeitsplatz Teil 2

Dokumentation IBIS Monitor

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Handbuch B4000+ Preset Manager

Erstellen einer digitalen Signatur für Adobe-Formulare

EASYINSTALLER Ⅲ SuSE Linux Installation

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Local Control Network

3 ORDNER UND DATEIEN. 3.1 Ordner

Leitfaden zur Installation von Bitbyters.WinShutdown

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Drägerware.ZMS/FLORIX Hessen

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Installation OMNIKEY 3121 USB

ClouDesktop 7.0. Support und Unterstützung. Installation der Clientsoftware und Nutzung über Webinterface

Die Dateiablage Der Weg zur Dateiablage

Favoriten sichern. Sichern der eigenen Favoriten aus dem Webbrowser. zur Verfügung gestellt durch: ZID Dezentrale Systeme.

Tevalo Handbuch v 1.1 vom

Lizenzen auschecken. Was ist zu tun?

Das tgm stellt virtuelle Desktops zur Verfügung. Um diese nutzen zu können, gehen Sie bitte wie folgt vor:

Anleitung Lernobjekt-Depot (LOD)

Arbeiten mit MozBackup

TREIBER INSTALLATIONSPROZESS WINDOWS 7 (32 oder 64 BIT)

Anleitung. Update/Aktualisierung EBV Einzelplatz Homepage. und Mängelkatalog

SICHERN DER FAVORITEN

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

Schritt-für-Schritt Anleitung: Windows 7 per USB-Stick installieren

Datenaustausch mit dem BVK Data Room

Grafstat Checkliste Internetbefragung

Installation und Sicherung von AdmiCash mit airbackup

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Anleitung zum Upgrade auf SFirm Datenübernahme

ARAkoll 2013 Dokumentation. Datum:

Programm GArtenlisten. Computerhinweise

Speichern. Speichern unter

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Nutzung der VDI Umgebung

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox

Erstellen einer PostScript-Datei unter Windows XP

Bilder zum Upload verkleinern

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Local Control Network Technische Dokumentation

Stammzertifikat Importieren

Outlook 2000 Thema - Archivierung

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

HebRech auf Mac OS X

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Anleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers

Anleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers

fãéçêíáéêéå=éáåéë=`äáéåíjwéêíáñáâ~íë= áå=çéå=_êçïëéê=

Durchführung der Datenübernahme nach Reisekosten 2011

Inhalt. meliarts. 1. Allgemeine Informationen Administration Aufruf Das Kontextmenü Vorlagen...

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Node Locked Lizenzierung für Solid Edge V19 bis ST3

Der einfache Weg zum CFX-Demokonto

Anleitung # 4 Wie mache ich ein Update der QBoxHD Deutsche Version

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Anleitung zum Upgrade auf SFirm 3.x + Datenübernahme. I. Vorbereitungen

ECDL Modul 2 Windows 7 Übungseinheit. Ihr Name:...

Anleitung zum Upgrade auf SFirm Datenübernahme

Installation älterer Programmversionen unter Windows 7

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

Daten Sichern mit dem QNAP NetBak Replicator 4.0

Mediumwechsel - VR-NetWorld Software

HÄUFIG GESTELLTE FRAGEN. 4. Wie kann man den FixMeStick für Mac auf Fabrikeinstellungen upgraden?

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Lizenz-Server überwachen

Bedienungsanleitung. FarmPilot-Uploader

Windows / Mac User können sich unter folgenden Links die neueste Version des Citrix Receiver downloaden.

Carolo Knowledge Base

Produktschulung WinDachJournal

Anleitung ftp-zugang Horn Druck & Verlag GmbH Bruchsal

FastViewer Remote Edition 2.X

5. Testen ob TLS 1.0 auf Ihrem System im Internet-Explorer fehlerfrei funktioniert

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

SharePoint Workspace 2010 Installieren & Konfigurieren

Transkript:

(Stand Juli 2013) Praktikum zur Lehrveranstaltung Mikrorechentechnik II Versuch ART1: Füllstandssteuerung/ Zweibehälteranlage Inhaltsverzeichnis 1 Versuchsziel... 1 2 Industrielle Problemstellung... 2 3 Beschreibung des Versuchsstandes... 3 4 Hinweise zur Programmierung... 4 4.1 Allgemeine Erläuterungen zur Programmierung...4 4.2 Verwendung der Virtuellen Appliance und des Workspaces ART1...5 4.3 Speichern auf einem USB-Stick...5 4.4 Bildschirmschoner...5 4.5 Prozeduren zur Benutzung der Digital-E/A-Karte...6 4.6 Prozeduren für den Polling-Betrieb...6 4.7 Prozeduren für den Interrupt-Betrieb...7 4.8 Simulationsumgebung zum Programmtest ohne Zugriff auf die Versuchs- Hardware...8 5 Versuchsaufgaben... 9 6 Kontrollfragen... 9 7 Versuchsauswertung... 10 8 Literatur... 10 9 Anhang... 11 9.1 Hinweise zur Funktion von Aktorik und Sensorik...11 9.2 Hinweise zum Entwurf der Steuerung...12 9.3 Anhang: ART1.H...14 10 Arbeits- und Brandschutzhinweise... 15 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. Praktikum / M. Werner 1

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 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 analoger Sensoren 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 Praktikum / M. Werner 2

3 Beschreibung des Versuchsstandes S1 Behälter 1 V H V S S2 Behälter 2 S3 P1 S4 S5 Legende: V H Handventil, V S elektrisches Auf / Zu-Ventil S1...S5 binäre Sensoren (Grenzwertschalter) Bild 2: R & I Fließbild des Zweibehältersystems Heizmodul (nicht verwendet) 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: Das Wasser ist stets vom Behälter B2 in den Behälter B1 zu fördern. Die über die Rückflussleitungen (Störleitungen Handventil V H und elektrisches Steuerventil V S ) abfließende Wassermenge ist auszugleichen. (Sind beide Ventile, das heißt, das Handventil V H sowie das elektrische Steuerventil V S 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 V S ist solange geschlossen bis das Niveau des Sensors S1 erreicht ist (Pumpe P1 läuft). Bei Ansprechen des Sensors S1 ist das elektrische Steuerventil V S 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 V S gleichfalls Praktikum / M. Werner 3

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 V S 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. 4 Hinweise zur Programmierung 4.1 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, VRT, 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 Praktikum / M. Werner 4

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. 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. 4.2 Verwendung der Virtuellen Appliance und des Workspaces ART1 1. Für das Praktikum benötigen Sie die Virtuelle Maschine VirtualBox von der Firma Oracle, welche Sie kostenlos im Internet herunterladen können. (http://www.virtualbox.org). Es stehen Versionen für die gängigsten Betriebssysteme zur Verfügung. Wenn Sie Schwierigkeiten haben lesen Sie bitte die VirtualBox Dokumentation. 2. Laden Sie die aktuelle MRT Appliance (Achtung ca. 1,5 GB!) herunter (http://www.et.tu-dresden.de/ifa Studium Lehrveranstaltungen) 3. Starten Sie VirtualBox. Im Menü müssen Sie nun die MRT Virtual Appliance importieren (Datei Appliance importieren). 4. Im VirtualBox Fenster erscheint eine virtuelle Maschine PLT VL MRT Appliance. Diese können sie auswählen und über den Button Start hochfahren. In einem neuem Fenster startet darauf hin das Linux Betriebssystem. 5. Nun benötigen Sie noch den vorgefertigten Workspace für Eclipse, diesen laden Sie über den in der Appliance vorhandenen Firefox Browser herunter und entpacken ihn in das Verzeichnis Dokumente in Ihrem persönlichen Ordner. (http://www.et.tu-dresden.de/ifa/ Studium Lehrveranstaltungen) Starten Sie Eclipse mit einem Klick auf den lilafarbenden Planeten in der linken Leiste und wählen Sie als Workspace den heruntergeladenen Ordner (vorher entpacken) aus. Eclipse erkennt automatisch die Projektstruktur und im linken Fenster (Project Explorer) werden alle Projekte, die im Arbeitsbereich enthalten sind, angezeigt. Die einzelnen Unterprogramme sind in der Datei ART3.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. 4.3 Speichern auf einem USB-Stick Starten Sie die Appliance und verbinden Sie Ihren USB-Stick mit dem Rechner. In der oberen Menüleiste können sie unter Geräte USB-Geräte Ihren USB Stick in die Appliance einbinden. 4.4 Bildschirmschoner Nach 10 Minuten schaltet sich der Bildschirmschoner ein, um diesen zu deaktivieren benötigen Sie das Passwort mrt. Praktikum / M. Werner 5

4.5 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 Exklusiv-ODER - bitweises ODER ~ - bitweise Negation << - Shift left >> - Shift right (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) 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. 4.6 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! Bild 3: Programmarchitektur im Polling-Betrieb Praktikum / M. Werner 6

4.7 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. Bild 4: Programmarchitektur im Interrupt-Betrieb Praktikum / M. Werner 7

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...). 4.8 Simulationsumgebung zum Programmtest ohne Zugriff auf die Versuchs- Hardware Fü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. Durch betätigen der jeweiligen Numemrntaste, die unter dem Signal steht, können die Eingänge gesetzt bzw. rückgesetzt werden. Die Simulation (Bild 5) zeigt im rechten Bereich die Bedeutung der Ausgänge an. Wenn Sie die Simulationsumgebung benutzen wollen, sollten Sie Ihre eigenen Bildschirmausgaben deaktivieren und den markierten Button zum Ausführen verwenden. Bild5:Oberfläche der Simulationsumgebung Praktikum / M. Werner 8

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 _BITS den Wert 1 hat! (Bit 0 ist das niederwertigste Bit) Notieren Sie eine C-Anweisung, die das Bit 4 der Integer-Variablen _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 / M. Werner 9

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, Bernd Grundlagen der Steuerungstechnik Festo 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, Computerund Bussysteme für die Anlagen- und Produktautomatisierung, Echtzeitprogrammierung und Echtzeitbetriebssysteme, Zuverlässigkeits- und Sicherheitstechnik. Springer -Verlag, 1999. Praktikum / M. Werner 10

9 Anhang 9.1 Hinweise zur Funktion von Aktorik und Sensorik - Signaldefinition (allgemein) High-Signal = 1-Signal = 24 VDC Low-Signal = 0-Signal = 0 VDC - Signaldefinition (Sensoren S1-S5); Hinweis: Die zur Lösung der Aufgabe benötigten Sensoren sind fettgedruckt. Wasserstände entsprechend Sensorniveau Signale der Sensoren Behälter B1 Behälter B2 S1 S2 S3 S4 S5 Wasserstand unter Niveau 0 0 0 0 0 Wasserstand erreicht Niveau 1 1 1 1 1 Wasserstand über Niveau 1 1 1 1 1 Tabelle 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. Sensoren Eingänge E0 E1 E2 E3 E4... E15 S1 S2 S3 S4 S5 Tabelle 2: Belegung Digitaleingabe Praktikum / M. Werner 11

- Digitalausgabe; Hinweis: Die zur Lösung der Aufgabe benötigten Ausgabekanäle sind fettgedruckt. Ausgänge Aktoren A0 A1 A2 A3 A4... A7 Pumpe Elektr. Steuerventil Heizung Fehleranzeige Tabelle 3: Belegung - Digitalausgabe 9.2 Hinweise zum Entwurf der Steuerung Definition der Variablen - unabhängige Variable - Sensor S 5 - Sensor S 2 - Sensor S 1 Ausgang-Zeitglied x z = 1 - Timer abgelaufen - abhänge Variable - Pumpenansteuerung y P - Ventilansteuerung y v - Ansteuerung des Zeitgliedes - Y ZS - Startsignal - Y ZR - Rücksetzsignal Praktikum / M. Werner 12

Definition des Variablenvektors (für den Automatengraph) S 1 S 2 S 5 Z / Y P Y V Y ZS Y ZR Automatengraph (Anm.: Mögliche Sensorfehler werden nicht im Entwurf berücksichtigt!) 0100/0100 0110/1000 1110/0110 0100/0100 0110/1000 0111/1001 0011/1001 0010/1001 0110/1000 1110/0110 0111/1001 0011/1001 0010/1001 0110/0100 0110/0100 Die Zustände repräsentieren folgenden verfahrenstechnischen Hintergrund: Zustand 1 Der Füllstand ist im Behälter B1 zu niedrig (Ruhezustand der Anlage/elektrisches Steuerventil V S geschlossen) - Einschalten der Pumpe P1 Zustand 2 Der Füllstand hat im Behälter B1 seinen Maximalwert erreicht bzw. überschritten - Ausschalten der Pumpe P1/ Öffnen des elektrischen Steuerventils V S / Starten des Zeitgliedes Zustand 3 Der Füllstand sinkt im Behälter B1 - Zeitglied läuft Zustand 4 Das Zeitglied ist abgelaufen oder der Füllstand ist unter das Niveau von Sensor S2 gesunken Zustand 1A Der Füllstand sinkt im Behälter B2 unter das Niveau des Sensors S5 - Ausschalten der Pumpe P1/ Öffnen des Ventils V S Praktikum / M. Werner 13

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 / M. Werner 14

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 Praktikumsrä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 20000 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 Barkhausenbaues), 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 20000 Betriebsärztin Dr. Friedmann-Ketzmerick: HA 36199 oder 36255 Klinikum Friedrichstadt Notaufnahme: 0 4 80 19 38 (Amtsanschluß) Praktikum / M. Werner 15