EPICS | |
---|---|
Erscheinungsjahr | 1994 |
Aktuelle Version | 3.16.1 (2. Juni, 2017) |
Betriebssystem | Cross-platform |
Programmiersprache | Lua-Fehler in Modul:Wikidata, Zeile 708: attempt to index field 'wikibase' (a nil value) |
Kategorie | Open Source |
Lizenz | EPICS Open License |
aps.anl.gov/epics/ |
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.
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.
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.