- Experimental Physics and Industrial Control System
-
EPICS (für Experimental Physics and Industrial Control System) ist eine Softwareumgebung, um verteilte Kontrollsysteme für Großexperimente wie Teilchenbeschleuniger oder Teleskope zu entwickeln und zu realisieren. EPICS bietet dabei SCADA-Unterstützung.
EPICS verwendet Client-Server- und Publish-Subscribe-Methoden für die Kommunikation zwischen den verschiedenen verwendeten Computern. Eine Sorte von Computern, die Input/Output-Controller (IOC), sammelt dabei in Echtzeit über die angeschlossenen Messinstrumente Experiment- und Kontrolldaten. Über ein spezielles Netzwerkprotokoll namens Channel Access (CA) werden diese Informationen an eine weitere Rechnersorte, die Clients, weitergegeben. CA unterstützt dabei weiche Echtzeit-Anforderungen, wie sie in wissenschaftlichen Experimenten anfallen.
Inhaltsverzeichnis
Input/Output-Controller
Bei den IOCs handelt es sich entweder um handelsübliche Personalcomputer oder Standard-VME-Prozessoren, die bestimmte Module (etwa GPIB oder RS232) verwalten, die wiederum mit Kontrollsystem-Instrumenten (Oszilloskope, Netzwerkanalysatoren) und -Geräten (Motoren, Thermoelemente, Schalter und so weiter) in Verbindung stehen.
Auf dem IOC läuft eine Datenbank mit Records, die entweder Geräte oder Eigenschaften der zu steuernden Geräte repräsentieren. IOC-Software für harte Echtzeitbedingungen verwendet normalerweise RTEMS oder VxWorks, wenngleich an einer Portierung auf weitere Systeme gearbeitet wird. IOC-Software für weiche Echtzeitbedingungen läuft manchmal auf Linux- oder Windows-Systemen.
Weitere Rechner im Netzwerk können mit den IOC über das Konzept der Channels kommunizieren. Als Beispiel diene ein Teilchenbeschleuniger mit Ventilen zwischen einzelnen Abschnitten. Zu einem Ventil gäbe es typischerweise mehrere Channels: Einen Ausgabe-Channel, um das Ventil ferngesteuert zu öffnen oder zu schließen; einen Eingabe-Channel, um den Zustand des Ventils abzufragen (z. B. geschlossen, offen, in Bewegung); und vielleicht weitere analoge Eingabe-Channels, die Druck und Temperatur auf jeder Seite des Ventils repräsentieren. Die Benennung der Channels erfolgt typischerweise in der Form GERÄT:SIGNALNAME (z. B. ACCELERATOR_RING:TEMP_PROBE_4, wobei sie zur Zeitersparnis deutlich kürzer sein können).
Häufig wird auf den Clients ein GUI-Paket wie EDM (Editor/Display Manager) oder MEDM (Motif EDM) eingesetzt. Diese ermöglichen die Erzeugung und Verwendung von Skalen, Zeigern, Textboxen, einfachen Animationen usw.
Es kann jedoch nicht nur graphische Software eingesetzt werden; jede Software, die das CA-Protokoll beherrscht, kann Werte aus Records lesen und ihnen zuweisen. So gibt es auf der EPICS-Website verschiedene Erweiterungspakete, die CA-Unterstützung etwa in MATLAB, LabVIEW, Perl, Python, Tcl oder ActiveX zur Verfügung stellt. Daher können auf einfachem Wege zum Beispiel Skripte eingesetzt werden, um EPICS-gesteuerte Geräte ein- und auszuschalten.
Beispiele für Record-Typen
Es gibt verschiedene Record-Typen in EPICS. Einige der verbreiteten sind hier aufgeführt, die Liste ist jedoch nicht vollständig. Zudem besteht die Möglichkeit, eigene Typen zu definieren.
Jeder Record besteht aus verschiedenen Feldern für bestimmte Aufgaben.
- AI und AO: Analog Input und Analog Output (analoge Eingabe und analoge Ausgabe). Records dieser Typen könnten einen analogen Wert speichern, und werden üblicherweise für Sollgrößen, Temperaturen, Drücke, Durchflussraten usw. verwendet. In geringem Umfang wird eine Umrechnung aus und zu den Rohdaten der Geräte unterstützt (typischerweise Skalierung und Offset, aber keine weiteren Umrechnungen wie Zweierkomplement oder Logarithmierung).
- BI und BO: Binary Input und Binary Output (binäre Ein- und Ausgabe). Diese Records dienen dazu, Kommandos an Geräte auszugeben und Zustände einzulesen.
- Calc und Calcout: Diese zwei Records greifen auf andere Records zu und führen mit ihren Werten eine Berechnung durch. (Zum Beispiel kann die Effizienz eines Motors als Funktion von Spannung und Strom bestimmt werden, und für den Operateur in einen Prozentwert umgerechnet werden).
- Stepper Motor: Steuerung eines Schrittmotors. Ermöglicht zum Beispiel Geschwindigkeit, Beschleunigung und Position einzustellen.
Record-Abarbeitung
Records müssen eine scan time vorgesehen haben, sonst werden sie automatisch als passiv deklariert. Ein passiver Record wird nie abgearbeitet (außer, es wird in sein PROC-Feld geschrieben). Meistens werden Records auf eine periodische Abarbeitung eingestellt (etwa alle 0,1 Sekunden).
Alternativ können Records so eingestellt werden, dass sie nur nach bestimmten Ereignissen verarbeitet werden.
Weblinks
Wikimedia Foundation.