View
113
Download
1
Category
Preview:
Citation preview
Getting Started with EPICSLecture Series
Introductory Session II
Loslegen mit EPICS Vortragsreihe auf Deutsch
Einleitung Teil 2
Elke Zimoch
Original von John Maclean 2004
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
InhaltsübersichtIOCs vorgestellt:
• Channel Access (CA)
• Record Datenbank
• Sequencer
• Gerätetreiber (Device Support)
Die richtigen Werkzeuge auswählen
• Wann benutzt man eine Datenbank
• Wofür wird der Sequencer gebraucht?
• Why write your own CA client program?
How fast is EPICS?
How to find more information
Virtual LINAC installation
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Standard Form eines EPICS Kontrollsystems
Kommerzielle Instrumente
IOCIOC
IOC
IOCCAS
CAS
Eigenbauten
Technische Ausrüstung
Ou
tpu
t
Inp
ut
Client SoftwareMEDM
ALH StripToolTCL/TK
Perl Scripts
OAG Apps
Und viele andere …
IOC SoftwareEPICS Datenbank
Eigene ProgrammeEchtzeit
Kontrolle
Sequence Programme
CA Server AnwedungenProzess Variablen
Channel Access
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
IOCs vorgestellt• Ein Computer auf dem die Software “IOC Core” läuft
• Dieser Computer kann sein:
- VME basiert, Betriebssystem vxWorks (einzige Möglichkeit bis Release 3.14) or RTEMS
- PC, Betriebssystem Windows, Linux, RTEMS
- Apple, Betriebssystem OSX
- UNIX Workstation, Betriebssystem Solaris
• Hat normalerweise Input und/oder Output Geräte angeschlossen
• Ein EPICS Kontrollsystem besteht aus mindestend einem Channel Access Server (normalerweise einer IOC)
• Eine IOC hat eine oder mehrere Record Datenbanken geladen, die festlegen, was diese IOC macht
IOC steht fürInput Output Controller
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Das Innenleben einer IOC
LAN (Netzwerk)
Device Support
I/O Hardware (Instrumente)
IOC
Die wesentlichen Softwarekomponenten einer IOC (IOC Core)
Database Sequencer
Channel Access
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Channel Access• Erlaubt es anderen Programmen (CA Clients) den Wert von Prozessvariablen auf einer IOC (CA Server) auszulesen und zu ändern
• CA Clients können die Daten einer Process Variablen
• Schreiben (Put)
• Lesen (Get )
• Monitoren
• IOCs sind sowohl CA Clients als auch CA Server. Sie können mit anderen IOCs interagieren
• Ein CA Client kann Verbindung zu vielen Servern aufbauen
• Ein CA Server kann viele Clients bedienen
• Channel Access ist ein sehr effizientes und verlässliches Protrokoll
CA Client
CA Server
Workstation
IOC
Network
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Das Innenleben einer IOC
Channel Access
LAN (Netzwerk)
Device Support
I/O Hardware (Instrumente)
IOC
Die wesentlichen Softwarekomponenten einer IOC (IOC Core)
SequencerDatabase
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
EPICS Datenbanken – Wofür sind sie gut?Sie bilden eine Schnittstelle zur Steuerung der Geräte
Sie ermöglichen eine Verteilte Verarbeitung
Sie ermöglichen einen externen Zugriff auf alle Prozess Informationen
Sie benutzen universelle, bewährte Objekte (records) um Daten zu sammln, zu bearbeiten und zu verteilen
Sie stellen einen universellen Werkzeugsatz zur Verfügung um Anwendungen zu entwickeln
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Was ist ein Datensatz (Record)?
Ein Datensatz ist ein Object mit
• Einem einmaligen Namen
• Merkmalen (Feldern) die Informationen (Daten) enthalten
• Der Fähigkeit, mit diese Daten Aktionen durchzuführen
XYZ1234
Angestellter: James Bond
Dienstmarke : 007
Adresse : Whitehall, London
Salär : £70070.07
Einmaliger Name
Felder
Daten
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Was sind EPICS Records?Ein Record ist ein Objekt mit…
• Einem einmaligen Namen, z.B. ARIDI-PCT:CURRENT
• Kontrollierbaren Merkmalen (Feldern), z.B. EGU
• Einem Verhalten – festgelegt durch den Record-Typ
• Optional verknüpft mit Hardware I/O (device support)
• Links (Verbindungen) zu anderen Records
Jedes Feld kann individuell über den Namen angesprochen werden
Die Kombination aus einem Record Namen und dem Feld Namen ergibt den Namen eine Prozess Variablen (PV)
Der Name einer Prozess Variablen ist das, was Channel Access benötigt um auf Daten zuzugreifen
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Ein Prozess Variablen NameEin PV Name besteht aus zwei Teilen:
• Dem Record Namen und
• Dem Namen eines Feldes, das zu diesem Record gehört
Zum Beispiel:
Ein Record Name
L1:water:temperature
Ein Feld Name
EGU.
Ein Punkt zum Zusammenfügen
Ein Prozess Variablen Name
Wenn kein Feld Name angegeben wird, benutzt Channel Access als Standard das .VAL Feld
z.B. gilt für Channel Access
“L1:water:temperature” = “L1:water:temperature.VAL”
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Was machen Records?Records sind aktiv, sie tun Dinge:
• Daten von anderen Records oder von der Hardware lesen (get)
• Rechnungen ausführen
• Grenzwerte überprüfen und Alarme auslösen
• Daten in andere Records oder auf die Hardware schreiben (put)
• Andere Records aktivieren oder deaktivieren
• Auf Signale (interrupts) von der Hardware warten
Was ein Record tut, hängt von seinem Typ und den Werten seiner Felder ab
Eine grosse Auswahl an Records existiert bereits
Neue Record-Typen können hinzugefügt werden, wenn sie gebraucht werden
Ein Record tut nichts, bis es prozessiert wird
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Record typesRecord-Typen können in vier Klassen eingeteilt werden:
Input (von der Hardware zum Benutzer), z.B.
Algorithmen/Steuerung, z.B.
Output (vom Benutzer zur Hardware), z.B.
Speziell entwickelte Typen, z.B.
• Analog In (AI)• Binary In (BI)
• Calculation (CALC)• Subroutine (SUB)
• Analog Out (AO)• Binary Out (BO)
• Beam Position Monitor • Multi Channel Analyzer (MCA)
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Einige Record TypenAnalog in
Analog out
Binary in
Binary out
Calculation
Calculation out
Compression
Data fanout
Event
Fanout
Histogram
Motor
Multi bit binary input
Multi bit binary output
PID control
Pulse counter
Pulse delay
Scan
Select
Sequence
String in
String out
Subarray
Subroutine
Waveform
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Graphische Darstellung eines Records
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Ein Record aus Sicht der IOC field(DRVH,"100")
field(DRVL,"0") field(HOPR,"80") field(LOPR,"10") field(HIHI,"0.0e+00") field(LOLO,"0.0e+00") field(HIGH,"0.0e+00") field(LOW,"0.0e+00") field(HHSV,"NO_ALARM") field(LLSV,"NO_ALARM") field(HSV,"NO_ALARM") field(LSV,"NO_ALARM") field(HYST,"0.0e+00") field(ADEL,"0.0e+00") field(MDEL,"0.0e+00") field(SIOL,"") field(SIML,"") field(SIMS,"NO_ALARM") field(IVOA,"Continue normally") field(IVOV,"0.0e+00")}
record(ao,"DemandTemp") {
field(DESC,"Temperature") field(ASG,"") field(SCAN,"Passive") field(PINI,"NO") field(PHAS,"0") field(EVNT,"0") field(DTYP,"VMIC 4100") field(DISV,"1") field(SDIS,"") field(DISS,"NO_ALARM") field(PRIO,"LOW") field(FLNK,"") field(OUT,"#C0 S0") field(OROC,"0.0e+00") field(DOL,"") field(OMSL,"supervisory") field(OIF,"Full") field(PREC,"1") field(LINR,"NO CONVERSION") field(EGUF,"100") field(EGUL,"0") field(EGU,"Celcius")
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
EPICS Datenbank – Was ist das?Eine Sammlung von mehreren EPICS Records , die verschiedene Typen haben können
Records, die miteinander verknüpft sein können und als Bausteine für die Entwicklung von Anwendungen benutzt werden
Eine Datei, die beim Booten in den Speicher der IOC geladen wird
Channel Access kommuniziert mit dieser Kopie der Datenbank im Speicher der IOC
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Unsere erste Datenbank
Analog In
ProcTemp
EGU :Grad C
VALINP
Temperatur Sensor
IOC
Database
Analog nach Digital Konverter
0 – 100°C
0 – 10V
8 bit ADC
0 – 10V
0 – 255 bits
EGUL: 0
EGUF: 100
HIGH: 51
Prozess
45.5°C 4.55V 116 bits
Channel Access Server
Normaler Betrieb
5 - 50°C
Channel Access Client
Erzähl mir alles über ProcTemp
ProcTemp.VAL = 45.5 .EGU = Grad C.STAT = Normal
45.5 Grad C51.5°C 5.15V 132 bits
51.5 Grad C
ProcTemp.VAL = 51.5 .EGU = Grad C.STAT = MAJOR
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Wann wird ein Record prozessiert?Ein Record kann periodisch prozessiert werden oder durch ein Event ausgelöst
Periodisch: Standard Perioden (scan rates) sind:
• 10, 5, 2, 1, 0.5, 0.2 und 0.1 Sekunden
• Spezielle Perioden können konfiguriert werden, bis zu den Grenzen, die durch die Hardware und das Kontrollsystem vogegeben sind
Event gesteuert: Events können sein
• Hardware Interrupts
• Anfrage eines andern Records über eine Verbindung (Link)
• EPICS Events
• Channel Access Schreibzugriffe (Puts)
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Problem:
Im Linac gibt es einen Wasserkühler, der eingeschaltet werden muss, wenn die durchschnittliche Temperatur der beiden Temperatursensoren über einen Grenzwert steigt. Der Grenzwert ist normalerweise 10 Grad Celsius.
Database Processing
Binary out
L1:water:chillerCtl
Berechnung
L1:water:tempChk
CALC: ( (A+B)/2 ) > C
C: 10
SCAN: 10 second
Analog In
L1:water:temp1
EGU: deg C
VALINP
EGU: deg C
VALINP
INPB
INPA
VAL DOL OUT
T2Sensor
SensorT1
IOC
Datenbank
ADC
ADC
Binär I/O
KühlerAnalog In
L1:water:temp2
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Das Innenleben einer IOC
Channel Access
LAN (Netzwerk)
Device Support
I/O Hardware (Instrumente)
IOC
Die wesentlichen Softwarekomponenten einer IOC (IOC Core)
Database Sequencer
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Der SequencerDer Sequencer startet Programme in State Notation Language (SNL)
SNL ist eine ‘C’ ähnliche Sprache, welche die Programmierung von Sequenzen vereinfacht
Der SNL Quellcode muss compiliert werden
Der Sequencer bietet eine Schnittstelle um EPICS in ein Echtzeit System zu integrieren
Wozu braucht man so etwas:• Um automatische Start-Sequenzen zu realieseren, z.B. für Vakuum oder RF
Systeme
• Um in einen sicheren Zustand zu wechseln, zB. Automatische Abschaltungen
• Um automatische Kalibration von Geräten zu implementieren
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
SNL setzt State Transition Diagrams (STD) um
Status A (State A)
Status B (State B)
EventAktion
Transition(Übergang)
von A nach B
State Transition Diagrams (STD)veranschaulichen die möglichenÜbergänge des Systems aus einem Status in einen anderen
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
STD Beispiel Start
schlechtes Vakuum
gutes Vakuum
Druck > 5.1 uTorr
Pumpe einschalten
Druck < 4.9 uTorr
Pumpe ausschalten
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Das Innenleben einer IOC
Channel Access
LAN (Netzwerk)
I/O Hardware (Instrumente)
IOC
Die wesentlichen Softwarekomponenten einer IOC (IOC Core)
Database Sequencer
Device Support
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Gerätetreiber (Device Support)Die Schnittstelle zwischen Datenbank und Hardware bilden Gerätetreiber (Device bzw. Driver Support)
Beispiele für Hardware sind:
- VME Karten: ADC, DAC, Binary I/O u.s.w.
- Motor Steuerungen
- Oszilloskope
- SPS (PLC)
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Device Support (Gerätetreiber)Muss für “neue” Hardware normalerweise neu geschrieben werden
Die gute Nachricht – normalerweise hat schon jemand einen Gerätetreiber für Dein Gerät geschrieben, oder für ein ähnliches
Auf der EPICS Web Seite findet man eine Liste mit Hardware für die bereits ein Treiber existiert
Oder man fragt die anderen EPICS Anwender
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Wann sollte man Datenbanken benutzen
Für Hardware Verbindungen
Für Echtzeit Anforderungen (keine Netzwerk Verzögerungen)
Immer, wenn eine Datenbank gut genug ist (Geschmacks Sache)
Vorteile NachteileVereinfacht Hardware Verbindungen … wenn man einen Gerätetreiber hat
Konfiguration statt Programmierung … wenn man verstanden hat, wie eine Datenbank arbeitet
Datenbanken können von anderen EPICS Entwicklern leicht verstanden werden
Geschwindigkeit
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
1-s1;5PARK
1
23 4
9
10
11
5
6
7
8
12
13
14
15
16
17Initialising
ParkedMisaligned
Stopped
M1STATE = OTHER / M1STATE = NOT_DOWN & EXTENDED /
M1STATE = DOWN & CENTRED & RETRACTED /
UNPARK_CMD /REJECT_CMD
PARK_CMD /
FaultM1STATE = RETRACTED & NOT_DOWN /
Raising
Deflating
Depressurising
Post-Parked
Manual-Mode
PRE-PARK_CHECKS = PASS /PSS = OFF;RETRACT_AXIAL_SUPPORTS
PARK_CMD /PSS = ON;MOVE_TO_PRE-PARK
POST-PARK_CHECKS = FAIL /UNPARK_ALARM
PRE-PARK_CHECKS = FAIL /PARK_ALARM
PARK-CMD /PSS = ON;AOS = OFF;MOVE_TO_PRE-PARK
UNPARK_CMD /REJECT_CMD
PARK_CMD /PSS = ON;MOVE_TO_PRE_PARK
Operating
UNPARK_CMD /PSS = ON;INFLATE_SEALS;
UNPARK_CMD /MOVE_TO_NOP ;INFLATE_SEALS;
Realigning
POST-PARK_CHECKS = PASS /PSS = ON;MOVE_TO_NOP ;INFLATE_SEALS;
Inflating
Pressurising
Pre-Parked
Lowering
SEALS = INFLATED /APSS = ON
APSS = PESSURISED /AOS = ON ;PARK-CMD /
AOS = OFF;MOVE_TO_PRE-PARK
APSS = DEPRESSURISED /DEFLATE_SEALS
SEALS = DEFLATED /
IN_PRE-PARK_POSN /
IN_POST-PARK_POSN /
UNPARK_CMD /PSS = ON;MOVE_TO_POST-PARK
M1STATE = DOWN & CENTRED & RETRACTED /
INTERLOCK_RXD /STOP_SUPPORTS
Interlocked INTERLOCK_REMOVED /
PSS_ON_CMD /PSS =ON
PSS_OFF_CMD /PSS =OFF
Wann sollte man den Sequencer benutzen?Für komplexe Übergänge zwischen Zuständen und komplexe Sequenzen
z.B. parken und aktivieren eines Teleskopspiegels
Photograph courtesy of the Gemini Telescopes project
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Wann sollte man CA Clients benutzen?
Um mit dem Kontrollsystem zu interagieren:
Vieles existiert bereits – MEDM, ALH, Strip Tool, archiver u.s.w.
Zur Datenanalyse oder Darstellung
Zur Überwachung der Abläufe
Zum Beispiel um einen Beschleuniger zu betreiben
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Wie schnell ist EPICS?EPICS kann schnell oder langsam sein, je nachdem, wie es benutzt wird!
Es sollte immer das geeignete Werkzeug für eine Problem benutzt werden: Datenbank, Sequencer, spezielle Programme auf der IOC oder spezielle Client Programme
Letztendlichhängt die Geschwindigkeit von der Hardware ab
Ein paar Benchmarks*:
Machine OS CPU Speed Rec/sec %CPU
MVME167 vxWorks 68040 33MHz 6000 50
MVME 2306 vxWorks PPC604 300MHz 10000 10
MVME5100 vxWorks PPC750 450MHz 40000** 10**
PC Linux P4 2.4GHz 50000 9
Datenbank Design und periodisches Prozessieren beeinflussen die sichtbare Geschwindigkeit
*durchgeführt von Steve Hunt (PSI)
**Extrapolier von Test durchgeführt von L.Hoff (BNL)
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
AusProblem:
Im Linac gibt es einen Wasserkühler, der eingeschaltet werden muss, wenn die durchschnittliche Temperatur der beiden Temperatursensoren über einen Grenzwert steigt. Der Grenzwert ist normalerweise 10 Grad Celsius.
Sichtbare Leistung
Binary out
L1:water:chillerCtl
Berechnung
L1:water:tempChk
CALC: ( (A+B)/2 ) > C
C: 10
SCAN: 10 second
Analog In
L1:water:temp1
EGU: deg C
VALINP
EGU: deg C
VALINP
INPB
INPA
VAL DOL OUT
T2Sensor
SensorT1
IOC
DatenbankADC
ADC
Binär I/O
KühlerAnalog In
L1:water:temp2
An
jetzt prozessieren
jetzt prozessieren
12
14
1
SCAN: 10 second
jetzt prozessieren
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Die EPICS Web SeiteDer zentrale Ort, um Informationen über EPICS zu finden
- Dokumentation
- CA Clients
- Device support (Gerätetreiber)
- Tech-talk (Mailing Liste und Archiv)
http://www.aps.anl.gov/epics
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Wie man den virtuellen LINAC installiertAuf Linux, Solaris, Mac OSX
• Die CD einlegen
• Die CD mounten (wenn dies nicht automatisch geschieht)
• Das Programm setup.sh von der CD starten
• In das Installationsverzeichnis wechseln (cd)
• Mit dem Programm start.sh sowohl das medm Fenster als auch die IOC des virtuellen LINAC starten
• Oder die verschiedenen Dinge individuell mit den mitgelieferten Programmen starten
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Wie man den virtuellen LINAC installiert - WindowsAchtung: Es muss das Programm Exceed V7.0 oder später installiert sein
• Die CD einlegen
• Wenn autorun eingeschaltet ist, erscheint ein Fenster mit Anweisungen, wenn nicht, sollte die Datei ‘WIN32/README.HTM’ (auf der CD) mit einem Browser geöffnet werden
• ‘MEDM Virtual Linac’ startet das medm Fenster
• ‘Start Virtual Linac’ startet die IOC des virtuellen LINAC
• Die Erweiterungen (Extensions) werden von der CD mit dem Programm ‘WIN32/EPICSEX39ISETUP.EXE’ installiert
• Der virtuelle LINAC wird von der CD mit dem Programm ‘WIN32/VIRTUALLINACSETUP.EXE’ installliert
• Die Icons der Programme erscheinen dann auf dem Desktop und im Startmenu
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Wenn man die CD nicht hat
Die CD Image Datei und die Versionen für die verschiedenen Betriebssysteme können von folgender Webseite herunter geladen werden http://www.aps.anl.gov/epics/download/examples/index.php
Achtung, die CD Image Datei hat image Format. Das bedeutet, man braucht einen Befehl wie zum Beispiel “Create CD from image file” im Brennprogramm unter Windows um die CD zu erzeugen.
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Zusammenfassung
Input Output Controllers (IOCs) sind ein fundamentaler Teil eines EPICS Kontrollsystems
Die Datenbank ist ein elementares Hilfsmittel um einer IOC mitzuteilen, was sie tun soll
Eine EPICS Datenbank besteht aus Records, deren Konfiguration die Funktion der Anwendung bestimmt
Channel Access ist ein Netzwerk Protokoll, mit dem die Verbindung zu Record Feldern hergestellt wird
Sequencer Programme können eingesetzt werden um komplexe Operationen der Reihe nach auszuführen
Gerätetreiber (Device Support) erlauben er den Records mit der Hardware zu interagieren
EPICS ist schnell, kann aber langsam wirken, wenn es ineffizeint eigesetzt wird
Loslegen mit EPICS: Einleitung Teil 2 Elke Zimoch
Danksagung
John Maclean (APS-BCDA)
Andrew Johnson (APS-Controls)
Bob Dalesio (LANL)
Deb Kerstiens (LANL)
Rozelle Wright (LANL)
Recommended