EPICS Training @ PSI
Controls Section PSI
2014
EPICS Training @ PSI
Danksagung
Einige der gezeigten Folien stammen aus der Reihe
„Getting started with EPICS Lecture Series at APS“
Mein besonderer Dank gilt
Ned Arnold
und
John Maclean
von der Advanced Photon Source.
Die originalen Vorträge finden sich auf der Seite
www.aps.anl.gov/epics/docs/GSWE.php
EPICS Training @ PSI
Inhalt
• Was ist EPICS• Die einzelnen Komponenten von EPICS• Was sind Records• Ein Beispiel für ein Record• Ein Problem mit EPICS lösen
EPICS Training @ PSI
Was ist unsere Aufgabe?
Wir müssen einen Beschleuniger (SLS) mit vielen Komponenten fernsteuern (wegen radioaktiver Strahlung und der Grösse)
Unsere Lösung heisst EPICS
Operator
Beschleuniger
?EPICS
EPICS Training @ PSI
Was ist EPICS?
EPICS ist:• Es ist eine Kollaboration• Es ist eine Werkzeugsammlung• Es ist eine Kontrollsystemarchitektur
EPICS steht für:Experimental Physics and Industrial Control System
EPICS Training @ PSI
Die Geschichte
–1989 begann die Zusammenarbeit von Los Alamos National Laboratory (GTA) und Argonne National Laboratory (APS)
(Jeff Hill, Bob Dalesio & Marty Kraimer)
–Über 150 Lizenzen wurden vergeben, bevor EPICS 2004 zur freien Software (Open Source) wurde
–Tägliche Zusammenarbeit: z.B. die Maillisten “Tech Talk”–Der Einsatz für die Kollaboration ist verschieden
• Hilfe bei Fehlersuche• Veröffentlichung von Werkzeugen, Systemen und Beratung
GTA: Ground Test AcceleratorAPS: Advanced Photon Source
EPICS Training @ PSI
EPICS – wer benutzt das?
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 in Villigen, Schweiz– KEK in Tsukuba, Japan– DIAMOND Light Source (Rutherford Appleton Laboratory) in
Oxfordshire, England– Iter (Test-Fusionsreaktor), Südfankreich
EPICS Training @ PSI
Gibt es Alternativen zu EPICS?
System Name:
• EPICS• TANGO
• DOOCS• Tine• ACS
• PVSS(Cern)
Pro:Bugs werden woandersgefunden
Contra:Kompliziert auf lokaleProbleme anzupassen
Pro:Lokale Probleme werden optiomal behandelt
Contra:Man ist auf sich gestellt
Pro:Probleme outsourcen
Contra:Teuer!
Kollaborationen:Werden an mehreren Instituten benutzt
Lokale Systeme:An einem Institut entwickelt und benutzt
Kommerzielle Systeme
EPICS Training @ PSI
Netzwerkbasiertes Client/Server Modell (daher das EPICS Logo)
Die Kontrollsystem Architektur
EPICS
Hier bezieht sich Client und Server auf ihre Rolle bezüglich Channel Access
d.h. Channel Access Client und Channel Access Server
ClientClient
Server Server
CACA
CA CA
Ein Server bietet Informationenoder Dienste an
Ein Client nutzt diese Diensteoder fragt nach diesen Informationen
EPICS Training @ PSI
Was ist Channel Access
• Ein Protokoll, wie “Daten” übertragen werden • Ein Datenpaket wird als Prozess Variable
bezeichnet• Eine Prozess Variable hat einen Namen, mit
dem man die Daten abrufen kann• Die genauen Abläufe von Channel Access sind
für Nutzer und die meisten Programmierer unwichtig
• Channel Access ist nicht von einer (Programmier-) Sprache abhängig
EPICS Training @ PSI
Channel Access im Netz
CA Client
CA Server 1 CA Server 2 CA Server 3
Netzwerk
1. Abfrage: Broadcast (Rundruf)
Antwort: direkte Verbindung
Alle weiteren Abfragen oder Antworten gehen direkt (Point-To-Point)
EPICS Training @ PSI
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
Prozess
Variablen
CAS
Process
Variables
CAS
Prozess
Variablen
CAS
Process
Variables
CAS
Prozess
Variablen
CAS
Process
Variables
CAS
Prozess
Variablen
CAS
EPICS Datenbank
EPICS Training @ PSI
Was ist EPICS - Zusammenfassung
• EPICS ist eine Kontrollsystemarchitektur• EPICS schaffte eine Verbindung zwischen dem
Beschleuniger und dem Operator• EPICS benutzt für diese Verbindung ein
Protokoll namens Channel Access• Channel Access basiert auf Datenpaketen, die
Prozess Variablen genannt werden• EPICS wird von vielen Instituten auf der ganzen
Welt genutzt
EPICS Training @ PSI
Inhalt
• Was ist EPICS• Die einzelnen Komponenten von EPICS• Was sind Records• Ein Beispiel für ein Record• Ein Problem mit EPICS lösen
EPICS Training @ PSI
Teile 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 …
Channel Access
CA Server Software EPICS Datenbank
aus Prozess VariablenEigene
Programme
Echtzeit Kontrolle
Sequence Programme
Records
EPICS Training @ PSI
Typische Umsetzung
Kommerzielle Instrumente
IOCIOC
IOC
IOCCAS
CAS
Eigenbauten
Technische Ausrüstung
IOCs basieren auf vxWorks (VME), aber auch Linux
und Windows (SoftIOC)
Die meisten CAServer
Anwednungen basieren auf Unix/Linux
oder Windows
Desktop
Laptop
EPICS Training @ PSI
VME Computer
• VME steht für VERSAmodule Eurocard• Industrie Computer • Wurde 1980 entwickelt und seitdem verbessert• Es ist kein PC• Echtzeit fähig (d.h. berechenbare
Verzögerungen)• Betriebssystem ist VxWorks von Wind River• Sehr teuer
(in Zukunft nicht mehr der Standard?)
EPICS Training @ PSI
Was ist eine IOC
• Ein spezieller CA Server und gleichzeitig ein CA Client • 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) oder RTEMS
- PC, Betriebssystem Windows, Linux, RTEMS- Apple, Betriebssystem OSX- UNIX Workstation, Betriebssystem Solaris
• Dieser Computer hat normalerweise Input und/oder Output Geräte angeschlossen• Ein EPICS Kontrollsystem besteht aus mindestends 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
EPICS Training @ PSI
Das Innenleben einer IOC
LAN (Netzwerk)
Device Support
I/O Hardware (Instrumente)
IOC
Die wesentlichen Softwarekomponenten einer IOC (IOC Core)
SequencerDatabase
Channel Access
EPICS Training @ PSI
Wofür braucht man den Sequenzer?
die Ampel ist rot
die Ampel ist grün
die Ampel ist ausgefallen
die Ampel ist rot
und gelb
die Ampel ist gelb
Start
State Machine
EPICS Training @ PSI
Ein paar 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 ...
EPICS Training @ PSI
Beispiele für ALH
EPICS Training @ PSI
Alarme und ihre Farben
NO_ALARM Grün Alles in Ordnung
MINOR Gelb Warnung
MAJOR Rot Fehler
INVALID Weiss Gerät existiert nicht
Not connectedWeisses Feld oder Violett
Record nicht bekannt
EPICS Training @ PSI
Beispiele für ALH
EPICS Training @ PSI
Ein paar 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 ...
EPICS Training @ PSI
Beispiele für StripTool
EPICS Training @ PSI
Ein paar 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 ... caQtDM: Display Manager
EPICS Training @ PSI
Beispiele für caQtDM
EPICS Training @ PSI
Channel Access Kommandos
CA Server
CA Client
Prozess Variablen:Channel Access Server
S1A:H1:CurrentAO
S1:P1:x
S1:P1:y
S1:G1:vacuum
Wer hat eine PV mit dem Namen
S1A:H1:CurrentAO ?
Ich habe sie
Was ist ihr Wert?
25.5 AMPS
Ändere den Wert auf
30.5 AMPS
“connection request” oder
“search request”
OK, jetzt ist der Wert 30.5
AMP
30.5 ist zu hoch. Sie wird auf das erlaubte
Maximum von 27.5 AMPS gesetzt.
Sie sind nicht berechtigt diesen Wert
zu ändern.
Benachichtige mich, wenn sich der Wert
ändert
Jetzt 20.5
AMPS
Jetzt 10.5
AMPS
Jetzt -0.0023 AMPS
“put” oder
“caput”
“get” oder
“caget”
“set a monitor”
“camon”
“post an event”
oder
“post a monitor”
“put complete”
oder
oder
Channel Access Client
EPICS Training @ PSI
Das Zusammenspiel der Einzelteile
Speise-gerät
Beam Position Monitor
Vakuum Sonde
Computer Schnittstelle
Computer Schnittstelle
Computer Schnittstelle
Prozess Variablen:
Channel Access Server
S1A:H1:CurrentAO
S1:P1:x
S1:P1:y
S1:G1:vacuum
Channel Access Client
Channel Access Client
Channel Access ClientOperator
Maschine
Netzwerk (Channel Access Protokoll)
EPICS Training @ PSI
Inhalt
• Was ist EPICS• Die einzelnen Komponenten von EPICS• Was sind Records• Ein Beispiel für ein Record• Ein Problem mit EPICS lösen
EPICS Training @ PSI
Was ist ein Messwert?
295,5mit einer Einheit mA
mit einem Zeitstempel 17.2.2005 14:21:16
mit einer Gültigkeit (Alarmstatus) NO_ALARM
mit technischen Grenzen 0 bis 400
mit Darstellungsgrenzen 0 bis 370
Ein Messwert ist ein Objekt mit mehreren zugehörigen Daten
mit einer Bedeutung „Beam current in SR“
Ein Wert mit einem Datentyp
EPICS Training @ PSI
Was ist ein Record?
Ein Record ist ein Objekt mit– Einem eindeutigen 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
Eindeutiger Name
Felder
Daten
EPICS Training @ PSI
Vom Messwert zum Record
295,5mit einer Einheit mA
17.2.2005 14:21:16
NO_ALARM
mit technischen Grenzen 0 bis 400
mit Darstellungsgrenzen 0 bis 370
mit einer Bedeutung „Beam current in SR“
Ein Wert mit einem Typ
Ein eindeutiger Name ARIDI-PCT:CURRENT
ai
record (ai, "ARIDI-PCT:CURRENT") {
mit einem Zeitstempel
Von der Hardware gelesen:
mit einer Gültigkeit (Alarmstatus)
field (EGU, "mA")field (EGUF, "400")field (EGUL, "0")field (HOPR, "370")field (LOPR, "0")field (DESC, "Beam current in SR")field (DTYP, "HY8401")field (INP, "#C3 S0 @")
}
EPICS Training @ PSI
Ein Prozess Variablen Name
• Ein 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
ARIDI-PCT:CURRENT
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
ARIDI-PCT:CURRENT = ARIDI-PCT:CURRENT.VAL
EPICS Training @ PSI
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
EPICS Training @ PSI
Einige Record Typen
•Analog 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
EPICS Training @ PSI
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")
EPICS Training @ PSI
Das Record Reference Manual
• In Englisch (Amerikanisch)• Erklärt Datenbank Konzepte und Records• Für jeden Recordtyp sind alle Felder erklärt
Besipiel: Feld HSV für ai Record
• Es gibt ein paar Felder, die jeder Recordtyp hat, diese sind am Anfang erklärt
• Die beschriebenen Records sind in der Basis Version von EPICS inbegriffen
• Es gibt noch mehr Records, Dokumentation siehe Internet
EPICS Training @ PSI
Inhalt
• Was ist EPICS• Die einzelnen Komponenten von EPICS• Was sind Records• Ein Beispiel für ein Record• Ein Problem mit EPICS lösen
EPICS Training @ PSI
Ein Beispiel für ein Record
Analog In
MTRT1-TEMP:READ
EGU :Grad C
VALINP
Temperatur Sensor
IOC
Database
Analog nach Digital Konverter
0 – 100°C
0 – 10V
8 bit ADC
-10 – 10V
0 – 255 bits
EGUL: -100
EGUF: 100
HIGH: 51
Prozess
45.5°C 4.55V 116 bits
Channel Access Server
Normaler Betrieb
5 - 50°C
Erzähl mir alles über
MTRT1-TEMP:READ
MTRT1-TEMP:READ.VAL = 45.5 .EGU = Grad C.STAT = Normal
45.5 Grad C51.5°C 5.15V 132 bits
51.5 Grad C
MTRT1-TEMP:READ.VAL = 51.5 .EGU = Grad C.STAT = MAJOR
Channel Access Client
EPICS Training @ PSI
• VME einschalten (es wird ein Record erzeugt, das mit dem ersten Potentiometer verknüpft ist)
• In einem Terminal eingeben:
caget MTRT1-TEMP:READ
(die 1 wird für andere Trainings-Stationen durch die entsprechende Zahl ersetzt)
• Das Potentiometer bewegen• Erneut den Wert abfragen
Ein Record einfach auslesen
EPICS Training @ PSI
CA Komandozeilen Befehle
• Lesen eines PV mit dem Namen <NAME>
caget NAME• Informationen über das Record
cainfo NAME• Einen Monitor setzen
camon NAME
(Abbrechen mit [Ctrl] + [c])• Wenn ich die genauen Befehle vergessen habe
ca
EPICS Training @ PSI
Eine Benutzeroberfläche erzeugen
1. Zum Starten des Qt Designers:(neue Oberfläche erzeugen)
qtdesigner &
2. Zum Starten einer existierenden Oberfläche (GUI):
startDM <name>.ui &
EPICS Training @ PSI
Eine caQtDM Oberfläche erzeugen (1/)
“Main Window” auswählen
erzeugen
EPICS Training @ PSI
Eine caQtDM Oberfläche erzeugen (2/)
EPICS Training @ PSI
Eine caQtDM Oberfläche erzeugen (3/)
MTRT1-TEMP:READ
EPICS Training @ PSI
Eine caQtDM Oberfläche erzeugen (4/)
Temperature.ui
EPICS Training @ PSI
Eine Benutzeroberfläche starten
1. Zum Starten des Qt Designers:(neue Oberfläche erzeugen)
dtdesigner &
2. Zum Starten einer existierenden Oberfläche (GUI):
startDM <name>.ui &
EPICS Training @ PSI
Eine laufende caQtDM Oberfläche
EPICS Training @ PSI
Dateien zum Temperatur Beispiel
• In das richtige lokale Verzeichnis wechselncd G/TRAINING/T1
• Folgende Dateien im Editor öffnen: G_TRAINING_T1_TEMPERATUR.template
MTEST-VME-T1_example.subs
Zum Beispiel mit nedit &
(klick auf file -> open)
EPICS Training @ PSI
Inhalt der Datein
DEVICE = MTRT1$(DEVICE)-TEMP:READ
MTRT1-TEMP:READ
EPICS Training @ PSI
Ein zweites Record erzeugen
• Wir haben noch einen weiteren “Temperatursensor” – wir brauchen ein zweites Record:
EPICS Training @ PSI
Installieren einer EPICS Datenbank
• Ist alles richtig geschrieben?• Installieren in das Boot-Verzeichnis der IOC
swit –V –ioc IOC-NAME
(im Verzeichnis, das installiert werden soll)• IOC booten:
Einloggen auf der IOC per
rmc IOC-NAME
und dem Befehl (soft reboot)
reboot
EPICS Training @ PSI
Was passiert beim booten
• Boot Info der VME-IOC: wo steht das startup.script
• Lade startup.script• Im startup.script: liste von .subs Dateien• Lade .subs Dateien• In den .subs Dateien: Liste von .template
Dateien• Lade .template Dateien mit Ersetzung• Erzeuge alle geladenen Records
EPICS Training @ PSI
Befehle auf dem VME Computer
• Eine Liste aller Records erhält man mit
dbl
• Interessante Felder anschauen kann man mit
dbpr "Recordnamen"
dbpr "MTRT1-TEMP:READ"
• Für VxWorks Befehle benutzt man
help
EPICS Training @ PSI
Namenskonvention
Die Records müssen eindeutige Namen haben1. X=Beamline, A=Maschine, M=Test (1 Zeichen)
2. Projektabkürzung (4 Zeichen), z.B. 06SA, TEST, RI=Ring, DI=DIAGNOSE
3. Optional: Gerät, Gruppe, z.B. OP, ID
4. Gerät, z.B. MO
5. Optional: Funktion (max. 11 Zeichen), z.B. TRY1-SET
[1][2] – [3] – [4] : [5]Länge [3]+Länge [4] maximal 12 ZeichenEPICS: Namen maximal 27 Zeichen
EPICS Training @ PSI
Namen für Temperaturfühler
M = Test
TR = Training
T1, T2, T3, T4 = Trainings-IOC
TEMP = Temperatur
READ = Record zum lesen
Für mehr als einen Temperaturfühler
TEMP1 für den ersten, TEMP2 für den zweiten:
MTRT1-TEMP1:READ und MTRT1-TEMP2:READ
EPICS Training @ PSI
Aufgabe: caQtDM Oberfläche
• Erzeugt eine caQtDM Oberfläche, die Records enthält:– Eure eigenen Records– Alle Records eurer Nachbarn– Die Alarmzustände der Records
• Eine zweite Oberfläche soll die Records darstellen, die mit dem Namen der IOC beginnen: MTEST-VME-T…..
EPICS Training @ PSI
IOC Status
Automatisch werden auf jeder IOC Status Records angelegt:
medm –x –macro IOC=MTEST-VME-T1 /work/sls/config/medm/G_IOCMON_ioc_status.adl
EPICS Training @ PSI
Inhalt
• Was ist EPICS• Die einzelnen Komponenten von EPICS• Was sind Records• Ein Beispiel für ein Record• Ein Problem mit EPICS lösen
EPICS Training @ PSI
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.
Ein Problem in EPICS lösen
Binary out
MTRT1-LI-COOL:SW
BerechnungMTRT1-LI-COOL:CALC
CALC: ( (A+B)/2 ) > C
C: 10
SCAN: 10 second
Analog In
MTRT1-LI-COOL: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
MTRT1-LI-COOL:TEMP2
EPICS Training @ PSI
Die subs Datei
• Die Datei heisst: MTEST-VME-T1_example.subs
# bedeutet die Zeile ist ein Kommentar
EPICS Training @ PSI
Die template Datei
• Vordefinierte Records in der Datei G_TRAINING_T1_COOLER.template
• Würde die IOC mit dieser Datei booten?• Record Felder aus den Notizen abschreiben
…
bereits vorhandenes Temperatur-Record
kopieren!
EPICS Training @ PSI
Nüzliche Scripte
• Habe ich alles richtig geschrieben?externalLinks xxx.subsBeispiel: externalLinks MTEST-VME-T1_example.subs
• Wie hiess noch gleich dieses Record?findrecord NamensteilBeispiel: findrecord MTRT1-LI
• Wann hat die IOC zuletzt gebootet?bootinfo IOC-NameBeispiel: bootinfo MTEST-VME-T1
EPICS Training @ PSI
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)
EPICS Training @ PSI
caQtDM Fenster entwickeln
Es soll dargestellt werden:• Beide Temperaturen der Sensoren• Die Alarmzustände der Sensoren• Der Schaltzustand des Kühlers als Text und als
"Lampe", die gelb leuchtet wenn das Gerät eingeschaltet ist
• Eine Überschrift• Eine Grafik der Temperaturen (zur Zeit)
EPICS Training @ PSI
Weitere Aufgaben
• Die Durchschnittstemperatur darstellen• Die Grenztemperatur von 10 Grad soll über ein
neues Record von der medm Oberfläche aus verstellt werden könen
• Es soll auch eine untere Grenztemperatur geben, ab der eine Heizung eingestellt wird– Noch ein calc Record– Noch ein bo Record
"#C2 S33 @"• Es gibt eine weitere solche Harware Anordnung
im Speicherring (alles dupizieren)
EPICS Training @ PSI
10 nette Tatsachen über EPICS
1. Es ist gratis
2. Es ist Open Source (Quellcode ist zugänglich)
3. Es gibt eine Menge Leute, die es benutzen
4. Alles was ein Client wissen muss um auf die Daten zuzugreifen ist der PV Name
5. Man kann unter den besten Werkzeuge auswählen …
6. … oder seine eigenen schreiben
7. Der langweilige Teil ist schon gemacht
8. Es gibt bereits eine Menge Erfahrungen in verschiedenen Instituten
9. Eine gute Erweiterung findet internationale Aufmerksamkeit
10. Es ist egal, ob man 10 oder 10 Millionen PVs braucht (beliebig skalierbar)
EPICS Training @ PSI
Die EPICS Web Seite
Der 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