Title: Getting Started with EPICS
1Loslegen mit EPICS Vortragsreihe auf Deutsch
Elke Zimoch Original von Ned Arnold 2004
2Loslegen mit EPICS
- Zwei Kontrollgruppen des Argon National
Laboratory haben im Jahr 2004 die Vortragsreihe
Getting Started with EPICS entwickelt. Im
Dezember des Jahres entstand auf dem EPICS
Workshop in Japan die Idee, diese Vortragsreihe
ganz oder teilweise zu übersetzten. Daraus ist
die deutsche Version Loslegen mit EPICS
entstanden. Die Vortragsreihe umfasst die
folgenden Themen - Einleitungen zu EPICS
- Getting Started with Using EPICS Tools
- Getting Started with Developing EPICS Tools
- Getting Started with Input/Output Controllers
- Applications/Special Topics
3Einleitung Teil 1
- Inhalt
- Was ist EPICS
- Wie arbeitet EPICS
- Ein kleines EPICS Wörterbuch
- Einführung in die Anwendung des Virtual LINAC
4Was ist EPICS?
- Eine Kollaboration
- Eine Kontrollsystem Architektur
- Eine Software Werkzeugsammlung
5Was ist EPICS? Eine Kollaboration
- 1989 begann die Zusammenarbeit von LANL/GTA und
ANL/APS - (Bob Dalesio Marty Kraimer)
- Über 150 Lizenzen wurden vergeben, bevor EPICS
zur freien Software (Open Source) wurde - Ein Beispiel Der EPICS Workshop 2004 in Santa Fe
- über 100 Teilnehmer
- von 34 Institutionen
- über 75 Presentationen in drei Tagen
- Tägliche Zusammenarbeit die Maillisten Tech
Talk etc. - Der Einsatz für die Kollaboration ist verschieden
- Hilfe bei Fehlersuche
- Veröffentlichung von Werkzeugen, Systemen und
Beratung
LANL Los Alamos National Laboratory GTA Ground
Test Accelerator ANL Argonne National
Laboratory APS Advanced Photon Source
6Was ist EPICS? Eine Kollaboration
- Einige Mitglieder der Kollaboration (nicht
vollständig!) - ANL (APS Accelerator, APS Beamlines, IPNS) in
Chicago, USA - LANL in Los Alamos, USA
- ORNL (SNS) in Oak Ridge, USA
- SLAC (SSRL, LCLS) in Standford, USA
- JLAB (CEBAF) in Newport, USA
- DESY in Hamburg, Deutschland
- BESSY in Berlin, Deutschland
- PSI (SLS) in Villigen, Schweiz
- KEK in Tsukuba, Japan
- DIAMOND Light Source (Rutherford Appleton
Laboratory) in Oxfordshire, England - The Australian Synchrotron (AusSy) in Melbourne,
Australien
7Was ist EPICS?
- Eine Kollaboration
- Eine Kontrollsystem Architektur
- Eine Software Werkzeugsammlung
8Was ist EPICS? - Eine Kontrollsystem Architektur
- Netzwerkbasiertes Client/Server Modell (daher das
EPICS Logo)
EPICS
CA
CA
Client
Client
CA
CA
Server
Server
- Hier bezieht sich Client und Server auf ihre
Rolle bezüglich Channel Access - D.h. Channel Access Client und Channel Access
Server
9Was ist EPICS? - Eine Kontrollsystem Architektur
- Channel Access Clients (CAC) sind Programme, die
den Zugriff auf diese Prozess Variablen für ihre
Ausführung benötigen
StripTool
MEDM
CAC
CAC
Der Dienst, den Channel Access Server (CAS)
anbieten, ist Zugriff auf eine sogenannte Prozess
Variable
Prozess Variablen
Prozess Variablen
CAS
CAS
Eine Prozess Variable (PV) ist ein Datensatz
mit einem Namen
10Was ist EPICS? - Eine Kontrollsystem Architektur
- Eine Prozess Variable (PV) ist ein Datensatz mit
einem Namen, zum Beispiel ein Setzwert, ein
Rücklesewert, ein Status, ein Parameter usw. - Beispiele von PV Namen und Werten
- ARIDI-PCTCURRENT 320 mA
- X10SA-OP-SH1SIZE-SET 5 mm
- BOOSTERgateValvePosition OPEN
- S3DIPOLEPSsetPoint 123.4 Amps
- APSMode Stored Beam
- BL3HISTOGRAM 3, 8, 1, 2, 56, 44, 32, 43, 3,
5, 1 - Die Namen sind im Prinzip willkürlich und folgen
in jedem Institut einer anderen Namenskonvention
SLS
APS
11Was ist EPICS? - Eine Kontrollsystem Architektur
- Eine Prozess Variable ist ein Datensatz mit einem
Namen und Attributen - Beispiele für Attribute
- Alarm Severity Wichtigkeit eines
Fehlerzustandes (NO_ALARM, MINOR, MAJOR, INVALID) - Alarm Status Grund für einen Fehlerzustand
(z.B. READ_error) - Zeitstempel (Wann wurde der Wert gesetzt)
- Anzahl der Werte (array)
- Normaler Betriebsbereich
- Begrenzung der Werte
- Engineering Unit Einheit (z.B. mA, mm, MW)
12Was ist EPICS? - Eine Kontrollsystem Architektur
- Ein Netzwerkbasiertes Client/Server Modell,
dessen elementarer Datensatz eine Prozess
Variable ist - Das Channel Access Protokoll legt fest, wie die
Daten der Prozess Variablen zwischen Server und
Client übertragen werden - Die Gesamtmenge der Prozess Variablen bildet eine
Distributed Real-time Database (verteilte
Echtzeit-Datenbank) die den Maschinenzustand,
Informationen und Parameter enthält
EPICS Datenbank
13Was ist EPICS? - Eine Kontrollsystem Architektur
- Normalerweise sind Channel Access Verbindungen
auf ein Subnetz beschränkt, aber man kann über
Konfigurationen einstellen, dass die Verbindungen
auch weitreichender sind. - Physikalische Hirarchien können durch den Einsatz
von Gateways aufgebaut werden.
Gateway
14Was ist EPICS?
- Eine Kollaboration
- Eine Kontrollsystem Architektur
- Eine Software Werkzeugsammlung
15Was ist EPICS? - Eine Software Werkzeugsammlung
Mein spezielles Daten- erfassungs- programm
- Jedes Programm und jede Anwendung, die mit dem
Channel Access Protokoll arbeitet, kann man als
EPICS verträglich bezeichnen.
StripTool
MEDM
CAC
CAC
CAC
Man kann EPICS als eine Werkzeugsammlung
betrachten, die aus allen EPICS verträglichen
Programmen besteht. Jeder kann sich das Werkzeug
aussuchen, das am besten zur Aufgabenstelllung
passt, oder auch ein eigenes entwickeln.
Meine Beschleuniger Simmulation (PVs)
CAS
iocCore (PVs)
LabView (PVs)
CAS
CAC
CAS
CAC
16Was ist EPICS? Eine Zusammenfassung
- Eine Kollaboration
- Eine weltweite Kollaboration, die Designs,
Software Werkzeuge und Erfahrungen zur
Entwicklung von Kontrollsystemen für Grossanlagen
untereinander austauscht - Eine Kontrollsystem Architektur
- Ein Client/Server Modell mit einem effizienten
Kommunikationsprotokoll (Channel Access) für den
Austausch einfacher Daten - Eine verteilte Echtzeit-Datenbank der
Maschinenwerte - Eine Software Werkzeugsammlung
- Eine Sammlung von gemeinschaftlich entwickelten
Software Werkzeugen zum Aufbau eines
verständlichen und erweiterbaren Kontrollsystems
17Einleitung Teil 1
- Inhalt
- Was ist EPICS
- Wie arbeitet EPICS
- Ein kleines EPICS Wörterbuch
- Einführung in die Anwendung des Virtual LINAC
18Was kann EPICS leisten?
- Fernsteuerung und Überwachung von technischer
Ausrüstung - Daten-Konvertierung und -Filterung
- Regelschleifen
- Zugriffsüberwachung
- Beschränkung der Betriebszustände
- Fehler-Erfassung/-Meldung/-Aufzeichnung
- Daten-Archivierung/-Darstellung
- Automatisierung von Abläufen
- Modellierung/Simulation
- Speichern und Laden von komplexen
Betriebszuständen - Datenerfassung
- Datenanalyse
19Wie macht EPICS das?
Channel Access Client
Operator
Channel Access Client
Channel Access Client
Netzwerk (Channel Access Protokoll)
Channel Access Server
Prozess Variablen
Speise-gerät
Computer Schnittstelle
S1AH1CurrentAO S1P1x S1P1y S1G1vacuum
Beam Position Monitor
Computer Schnittstelle
Vakuum Sonde
Maschine
Computer Schnittstelle
20Wo wird was gemacht?
Fernsteuerung und Überwachung
Beschränkung der Betriebszustände
Fehler-Meldung Aufzeichnung
Automatisierung von Abläufen
Modellierung Simulation
Daten-Archivierung/-Darstellung
Konfiguration der Betriebszustände
Regelschleifen
Channel Access Client
Operator
Channel Access Client
Channel Access Client
Netzwerk (Channel Access Protokoll)
Channel Access Server
Prozess Variablen
Speise-gerät
Computer Schnittstelle
S1AH1CurrentAO S1P1x S1P1y S1G1vacuum
Automatisierung von Abläufen
Zugriffsüberwachung
Beschränkung der Betriebszustände
Fehler-Erfassung
Regelschleifen
Daten-Konvertierung und -Filterung
Daten-Archivierung
iocCore
Beam Position Monitor
Computer Schnittstelle
Vakuum Sonde
Maschine
Computer Schnittstelle
21Standard Form eines EPICS Kontrollsystems
Output
Channel Access
Input
Kommerzielle Instrumente
Eigenbauten
Technische Ausrüstung
22Typische Umsetzung eines EPICS Kontrollsystems
23Typische Umsetzung eines EPICS Kontrollsystems
Desktop
Laptop
Die meisten IOCs basieren auf vxWorks (meistens
VME)
Die meisten CAS Anwednungen basieren auf
Unix/Linux oder Windows
24Typische Umsetzung eines EPICS Kontrollsystems
Mit dem EPICS Release 3.14 wurden die
Beschränkungen für das Betriebssystem von iocCore
abgeschafft.
RTEMS
vxWorks
25Typische Umsetzung eines EPICS Kontrollsystems
Zeiten ändern sich Ansteuerung eines Motors mit
EPICS
circa 2002
circa 1995
26Standard Form eines EPICS Kontrollsystems
Client Software
MEDM
OAG Apps
ALH
StripTool
TCL/TK
Und viele andere
Perl Scripts
Output
Channel Access
Input
Kommerzielle Instrumente
Eigenbauten
Technische Ausrüstung
27Unabhängige CA Clients (von der EPICS Website -
unvollständig)
- ALH Alarm Handler
- BURT Backup and Restore Tool
- CASR Host-based Save/Restore
- CAU Channel Access Utility
- Channel Archiver (SNS)
- Channel Watcher (SLAC)
- EDM Extensible Display Manager (ORNL)
- JoiMint Java Operator Interface and Management
INtegration Toolkit (DESY) - Knobs Knob Manager und KnobConfig, eine
Schnittstelle zu SunDials - MEDM Motif Editor und Display Manager
- StripTool Strip-chart Plotting Tool
- und viele mehr ...
28Standard Form eines EPICS Kontrollsystems
Output
Channel Access
Input
Kommerzielle Instrumente
Eigenbauten
Technische Ausrüstung
29Channel Access auf einer Folie
connection request oder search request
put oder caPut
get oder caGet
set a monitor
Wer hat eine PV mit dem Namen S1AH1CurrentAO ?
Ändere den Wert auf 30.5 AMPS
Benachichtige mich, wenn sich der Wert ändert
Was ist ihr Wert?
Channel Access Client
Channel Access Server
Ich habe sie
25.5 AMPS
OK, jetzt ist der Wert 30.5 AMP
Jetzt 20.5 AMPS
Jetzt 10.5 AMPS
Jetzt -0.0023 AMPS
Prozess Variablen
S1AH1CurrentAO S1P1x S1P1y S1G1vacuum
put complete
post an event oder post a monitor
30.5 ist zu hoch. Sie wird auf das erlaubte
Maximum von 27.5 AMPS gesetzt.
oder
Sie sind nicht berechtigt diesen Wert zu ändern.
oder
30Hauptmerkmale von Channel Access
- Clients broadcast (Meldung an alle) PV Namen um
den Server zu finden, auf dem sie existieren - Channel Access Security kann eingesetzt werden
um den Zugriff auf Prozess Variablen zu begrenzen - Clients können auf die Meldung put request
warten, bevor sie weiterarbeiten - Clients können Monitore (set monitors) auf PVs
setzten und werden dann über Änderungen der Werte
informiert
31Standard Form eines EPICS Kontrollsystems
Output
Channel Access
Input
IOC Software
EPICS Datenbank
Sequence Programme
Eigene Programme
Kommerzielle Instrumente
Eigenbauten
Echtzeit Kontrolle
Technische Ausrüstung
32IOC Software auf einer Folie
Network (Channel Access)
IOC Software
EPICS iocCore Dienste und Programme von EPICS
mitgeliefert
Anwendungsspezifische Datenbank aus Records
Anwendungs- spezifische Programme z.B. State
Notation Language
Record
Record
Record
Record
Record
Record
Record
Record
Record
Record
Record
Record
Record
Record
Record
Record
Treiber (Device/Driver Support) von EPICS
mitgeliefert/erweiterbar
Neue Treiber (Device Support)
Unterstützte Instrumente
Unterstützte Instrumente
Neue Ausrüstung
Unterstützte Instrumente
mitgeliefert
Notwendig
Optional
33Hauptmerkmale der IOC Software
- Es gibt zwei wesentliche Andwendungsabhängige
Komponenten - Die Echtzeitdatenbank bestehend aus Records
(notwendig) - State Notation Language (SNL) Programme, um
Status basierte Abläufe umzusetzen (optional) - Maschinenstatus, Informationen und
Kontrollparameter werden durch sogenannte
Records in der anwendungsspezifischen Datenbank
definiert. - Die Daten innerhalb eines Records sind über
Prozess Variablen zugänglich. - Records sind mit bestimmten Funktionalitäten
verknüpft (Skalierung, Filtern, Fehlererkennung,
Berechnungen, usw). Es gibt unterschiedliche
Record-Typen mit unterschiedlichen Funktionen und
Einsatzmöglichkeiten. - Records sind häufig mit Ein-/Ausgabe Geräten
verbunden, die über Device Support (Treiber)
angesteuert werden.
34Standard Form eines EPICS Kontrollsystems
Output
Channel Access
Input
Kommerzielle Instrumente
Eigenbauten
CA Server Anwedungen
Technische Ausrüstung
Prozess Variablen
35Häufig benutzte CA Server Anwendungen
- IOC Core
- PV Gateway
- CA Server Interface to LabVIEW
- CA Server Schnittstelle zu PC
Bilderfassungs-Systemen
Gateway
CAS
CAC
CAS
CAC
(PVs) LabVIEW
CAS
CAC
(PVs) PC Bild- erfassung
36Zehn wirklich nette Tatsachen über EPICS
- Es ist umsonst
- Es ist Open Source (Quellcode ist zugänglich)
- Es gibt eine Menge Leute, die es benutzen
- Alles was ein Client wissen muss um auf die
Daten zuzugreifen ist der PV Name - Man kann unter den besten Werkzeuge auswählen
- oder seine eigenen schreiben
- Der langweilige Teil ist schon gemacht
- Es gibt bereits eine Menge Erfahrungen in
verschiedenen Instituten - Eine gute Erweiterung findet internationale
Aufmerksamkeit - Es ist egal, ob man 10 oder 10 Millionen PVs
braucht (beliebig skalierbar)
37Einleitung Teil 1
- Inhalt
- Was ist EPICS
- Wie arbeitet EPICS
- Ein kleines EPICS Wörterbuch
- Einführung in die Anwendung des Virtual LINAC
38Wörterbuch
- EPICS
- Experimental Physics and Industrial Control
System - Channel Access
- Das Kommunikations-Protokoll von EPICS
- Prozess Variable (PV)
- Ein Datensatz mit einem Namen, der über diesen
Namen angesprochen wird - Die Basis-Dateneinheit des Channel Access
Protokolls
39Wörterbuch
- Channel oder Kanal
- Ein Synonym für Prozess Variable
- Channel Access Server
- Software, die Zugriffe über Channel Access auf
Prozess Variablen zur Verfügung stellt - Vereinfacht Software, die Records erzeugt
- Channel Access Client
- Software, die über Channel Access auf Prozess
Variablen zugreift
40Wörterbuch
- IOC Input Output Controller
- Ein Computer auf dem iocCore läuft. Das ist eine
Sammlung von EPICS Routinen, die benutzt werden
um Prozess Variablen zu definieren und Echtzeit
Algorithmen zu implementieren. - iocCore benutzt Records um Prozess Variablen und
ihr Verhalten zu definieren - Soft IOC
- Ein Computer (häufig ein PC), auf dem nicht
ausschliesslich iocCore läuft oder laufen kann. - Häufig wird wird mit einer IOC ein VME-Rechner
gemeint, während eine SoftIOC meistens ein PC
ist.
41Wörterbuch
- Record
- Der Mechanismus, mit dem Prozess Variablen von
iocCore definiert werden (auf einer IOC) - Es existieren dutzende von verschiedenen
Record-Typen, jeweils mit eigenen Attributen
(Feldern) und einer eigenen Funktionalität - Vorsicht Die Begriffe Record, Channel oder
Kanal, sowie Prozess Variable werden im täglichen
Sprachgebrauch häufig synonym benutzt, obwohl sie
nicht genau das gleiche meinen - Beispiel Record Strom PVs, Channel
- Attribut EGU Strom.EGU
- Attribut VAL Strom.VAL
42Einige Fragen, die man stellen sollte
- Versteht das neue Gerät EPICS, Channel
Access? - Gibt es bereits ein EPICS Werkzeug, das
was_auch_immer macht? - Was ist der PV Name von igendeinem_Gerät?
- Gibt es einen EPICS Treiber für
das_Gerät_das_ich_nutzen_will? - Welche Computer Typen und Betriebssysteme
werden genutzt? - Welche Funktionen sollen zur Verfügung stehen?
- In einem Client? In einer IOC? In einer eigenen
CAS Anwendung? - Warum kann mein CA Client die PV auf einem CA
Server in einem anderen Subnetz nicht finden?
43Einleitung Teil 1
- Inhalt
- Was ist EPICS
- Wie arbeitet EPICS
- Ein kleines EPICS Wörterbuch
- Einführung in die Anwendung des Virtual LINAC
44Die Virtual LINAC Anwendung
- Eine vorkonfigurierte EPICS Anwendung, die auf
jedem Rechner installiert werden kann zum Üben,
zum Testen, zum Spielen - Alles wird auf dem gleichen Rechner (z.B. einem
Office PC) installiert.
Mein spezielles Daten- erfassungs- programm
StripTool
MEDM
OAG Tools
CAC
CAC
CAC
CAC
Installierbar auf
Solaris Workstation
LINUX PC
IOC Anwendung vlinac PVs
CAS
CAC
MAC
Windows PC
45MEDM Oberfläche der Virtual LINAC Anwendung
46Die Virtual LINAC Anwendung
Der LINAC
Die Elektronen, die in einem Speicherring
umlaufen, werden häufig in Linearbeschleunigern
( Linear Accelerator oder Linac) erzeugt. Die
eigentliche Erzeugung der Elektronen geschieht
mit einer Glühkathode in der Electron Gun.
Danach werden sie durch sogenannte Accelerating
Cavities beschleunigt. Da Elektronen geladene
Teilchen sind, können sie durch Elektromagneten
durch die enge Vakuum Kammer geleitet werden.
Natürlich gehen die Elektronen verloren, wenn sie
durch falsch eingestellte Magnete auf die
Kammerwand gelenkt werden.
Der Operateur
Vom Kontrollraum aus kann der Operateur die
Beschleunigeranlage steuern und überwachen. In
dieser Simulation muss der Operateur die
Temperatur der Electron Gun einstellen, die
Positon des Elektronenstrahls in der Vakuumkammer
überwachen, den Strom der Korrekturmagnete regeln
und ein Vakuum-Ventil kontrollieren.
Die Herausforderung
Die einzelnen Schritte auf der nächsten Folie
beschreiben, wie man Elektronen erfolgreich
virtuell erzeugen und bis zum Ende des Linac
transportieren kann.
47Die Virtual LINAC Anwendung
Schritt 7 RESET macht den Linac für den nächsten
Operateur oder den nächsten Versuch bereit.
Schritt 1 Den blauen Slider benutzen um die
Kathode zu heizen, bis die Temperatur im
gewünschten Bereich liegt (die Anzeige wird
grün).
Schritt 6 Die übrigen Korrekturmagnet müssen
ebenfalls richtig eingestellt werden, um den
Strahl bis zum Ende zu transportieren. Der
Strahlstrom wird am Ende mit einem so genannten
Faraday Cup (FC1) gemessen. Durch leichte
Variation der Magnetströme kann der Strom
maximiert werden (15 mA sind sehr gut!).
Schritt 2 Beam On drücken, um die Elektronen
in den Linac zu schicken.
Schritt 5 Das Vakuum-Ventil muss geöffnet werden
um die Elektronen durch zu lassen.
Schritt 3 Die Ströme der Korrekturmagneten (H1
und V1) müssen so eingeregelt werden, dass die
horizontale (X) und vertikale (Y) Position des
Elektronenstrahls kleiner als 1mm wird. Die
Positionen werden in dem Diagramm dargestellt
Blau ist X und Braun ist Y. Die rote Linie
repräsentiert die Anzahl der Elektronen.
Schritt 4 Noch mehr Korrektur- magnete
HILFE für Frustrierte Aufgegeben? Der Kopf
Auto-Start lässt den Computer die Arbeit
übernehmen.