Document 7184969

Download Report

Transcript Document 7184969

EPICS Training @ PSI
Controls Section PSI
2015
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 ein Beschleuniger-Kontrollsystem?
Das Beschleuniger-Kontrollsystem verbindet den
Operateur im Kontrollraum mit den Geräten im
Beschleuniger. Der Kontrollraum muss dabei nicht in der
Nähe des Beschleunigers liegen.
EPICS
?
Operateur
Unser Kontrollsystem
heisst EPICS
EPICS Training @ PSI
Beschleuniger
Was kontrolliert EPICS?
Komponenten des Swiss Light Source (SLS at PSI) Beschleunigers, die
kontrolliert werden sollen:
ca. 200 Computer
ca. 600 Magnete (+ Speisegeräte)
300 Vakuum Pumpen
9 Beschleunigungs Strukturen
ca. 150 BPMs (Strahllagemonitore)
21 Beamlines (zusammen)
ca. 300 Computer
10 Undulator Magnete
Mehr als 1200 Motoren
Distanzen zwischen den Kommponenten (der Speicherring hat 130 m
Durchmesser): 50 km Stromkabel und mehr als 500 km Signalkabel
EPICS Training @ PSI
Was ist EPICS?
EPICS steht für:
Experimental Physics and Industrial Control System
EPICS ist:
•
•
•
eine Kollaboration
eine Werkzeugsammlung
eine Kontrollsystemarchitektur
EPICS
EPICS:
• Unterstützt verteilte Kontrollsysteme für
Grossforschungsanlagen
• benutzt Client/Server und Publish/Subscribe Methoden
• benutzt das Channel Access (CA) Netzwerk Protokoll
EPICS Training @ PSI
Die Geschichte
–1989 begann die Zusammenarbeit von Los Alamos
National Laboratory (GTA) und Argonne National
Laboratory (APS)
GTA: Ground Test Accelerator
(Jeff Hill, Bob Dalesio & Marty Kraimer)
APS: Advanced Photon Source
–Über 150 Lizenzen wurden vergeben, bevor EPICS 2004
zur freien Software (Open Source) wurde
–Tägliche Zusammenarbeit: z.B. die Maillisten “Tech Talk”
–Zwei Collaboration Meetings jedes Jahr (Frühjahr und
Herbst) abwechselnd in Amerika, Asien und Europa
–Der Einsatz für die Kollaboration ist verschieden
• Hilfe bei Fehlersuche
• Veröffentlichung von Werkzeugen, Systemen und Beratung
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
– ESS (European Spallation Source), Lund, Sweden
EPICS Training @ PSI
Gibt es Alternativen zu EPICS?
System Name:
• EPICS
• TANGO
Kollaborationen:
• DOOCS
• Tine
• ACS
Lokale Systeme:
• PVSS
(Cern)
Kommerzielle Systeme
Werden an mehreren Instituten benutzt
Pro:
Bugs werden woanders
gefunden
Contra:
Kompliziert auf lokale
Probleme anzupassen
An einem Institut entwickelt und benutzt
Pro:
Lokale Probleme werden
optiomal behandelt
Pro:
Probleme outsourcen
EPICS Training @ PSI
Contra:
Man ist auf sich
gestellt
Contra:
Teuer!
Die Kontrollsystem Architektur
Netzwerkbasiertes Client/Server Modell (EPICS Logo)
EPICS
CA
Client
Ein Server bietet
Informationen
oder Dienste an
CA
Client
CA
Server
CA
Server
Ein Client nutzt diese
Dienste
oder fragt nach diesen
Informationen
• Bei EPICS beziehen sich Client und Server auf ihre Rolle bezüglich
Channel Access: d.h. Channel Access Client und Channel Access
Server
• Dieses Standardmodell der Kontrollsystem Architektur wird häufig als
3-Schichten Model (3-tier model) bezeichnet
EPICS Training @ PSI
Was ist Channel Access
•
•
•
•
•
•
Ein Protokoll, wie “Daten” übertragen werden
Ein Datenpaket wird als Prozess Variable bezeichnet (oder PV)
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
(Libraries vorhanden in C/C++, Java und C#)
Die Gesamtmenge der Prozess Variablen bildet eine Distributed Real-time
Database (verteilte Echtzeit-Datenbank) die den Maschinenzustand,
Informationen und Parameter enthält
EPICS Database
CAS
CAS
CAS
CAS
Process
Process
Process
Process
Variables
Variables
Variables
Variables
EPICS Training @ PSI
Channel Access im Netz
1. Abfrage: Broadcast (Rundruf)
CA Client
Antwort: direkte Verbindung
Alle weiteren Abfragen oder Antworten
gehen direkt (Point-To-Point)
Netzwerk
CA Server 1
CA Server 2
CA Server 3
EPICS Training @ PSI
Channel Access Kommandos
“connection
request” oder
“search request”
Channel Access Client
Wer hat eine PV mit
dem Namen
S1A:H1:CurrentAO ?
“get”
oder
“caget”
“put” oder
“caput”
Was ist ihr
Wert?
Ändere den
Wert auf
30.5 AMPS
“set a monitor”
“camon”
Benachichtige mich,
wenn sich der Wert
ändert
CA Client
CA Server
Channel Access Server
Prozess Variablen:
Ich habe sie
25.5
AMPS
S1A:H1:CurrentAO
OK, jetzt ist
der Wert 30.5
AMP
“put complete”
S1:P1:y
oder
30.5 ist zu hoch. Sie
wird auf das erlaubte
Maximum von 27.5
AMPS gesetzt.
S1:G1:vacuum
oder
Sie sind nicht
berechtigt diesen Wert
zu ändern.
S1:P1:x
EPICS Training @ PSI
Jetzt
Jetzt
Jetzt -
20.5
AMPS
10.5
AMPS
0.0023
AMPS
“post an event”
oder
“post a monitor”
Das Zusammenspiel der Einzelteile
Channel Access Client
Channel Access Client
Operator
Channel Access Client
Netzwerk (Channel Access Protokoll)
Channel Access Server
Prozess Variablen:
S1A:H1:CurrentAO
S1:P1:x
S1:P1:y
S1:G1:vacuum
Computer
Schnittstelle
Speisegerät
Computer
Schnittstelle
Beam
Position
Monitor
Computer
Schnittstelle
Vakuum
Sonde
EPICS Training @ PSI
Maschine
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
CA Client
Client Programme:
alarmhandler
Striptool, caQtDM,
viele mehr …
(Nutzerprogramme
)
Cannel Access:
(UDP/TCP)
CA Client
CA Server
CA Server
IOC
Input
Output
Control Room
Server Programme:
(Nutzerprogramme)
Echtzeit Kontrolle
Records
EPICS Training @ PSI
VME Computer
•
•
•
•
•
VME steht für VERSAmodule Eurocard
Industrie Computer
Seit 1980 entwickelt
Es ist kein PC
Echtzeit fähig (d.h. berechenbare
Verzögerungen)
• Betriebssystem war VxWorks von Wind River
- in Zukunft ein Echtzeit Linux am PSI
• Sehr teuer
(in Zukunft nicht mehr der Standard?)
EPICS Training @ PSI
Was ist eine IOC
IOC steht für
Input Output Controller
• Ein spezieller CA Server und gleichzeitig ein CA Client
(IOCs können miteinander «reden»)
• Ein Computer auf dem die Software “IOC Core”
mindestens einmal läuft
• Dieser Computer kann sein:
- VME basiert, Betriebssystem vxWorks (einzige Möglichkeit bis Release
3.14), Linux 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 (ansonsten SoftIOC)
• Eine IOC hat eine Record Datenbank geladen, die
festlegen, was diese IOC macht
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
• Kommandozeilen Befehle (caget, caput, …)
• und viele mehr ...
EPICS Training @ PSI
Kommandozeilen Befehle
• PV namens <NAME> lesen
>caget ARIDI-PCT:CURRENT
ARIDI-PCT:CURRENT 350.56
>
caget NAME
• PV namens <NAME> schreiben
caput NAME value
• Informationen zu dem Record
lesen
cainfo NAME
• Monitor starten
camonitor NAME
(Abbrechen mit [Ctrl] + [c])
>caput ARIDI-PCT:CURRENT 401.5
Old: ARIDI-PCT:CURRENT 350.56
New: ARIDI-PCT:CURRENT 401.5
>
>cainfo ARIDI-PCT:CURRENT
ARIDI-PCT:CURRENT
State:
connected
Host:
sls-cagw-1
Access:
read, no write
Data type:
DBR_DOUBLE
Element
count: 1
>camonitor
ARIDI-PCT:CURRENT
>
ARIDI-PCT:CURRENT
250.542
ARIDI-PCT:CURRENT 250.537
ARIDI-PCT:CURRENT 250.533
ARIDI-PCT:CURRENT 250.525
>
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
• Kommandozeilen Befehle (caget, caput, …)
• 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 connected
Weisses
Feld oder
Violett
Record nicht bekannt
EPICS Training @ PSI
Beispiele für ALH
Baumstruktur der
Records
Panel mit mehr
Informationen
Anleitung
(eng. Guidance)
Hilfreich für Nutzer, die sich auskennen
(zum Beispiel Operateure im Hauptkontrollraum)
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
•Kommandozeilen Befehle (caget, caput, …)
•und viele mehr ...
EPICS Training @ PSI
Beispiele für StripTool
Channel
Werte
Zeit
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
•Kommandozeilen Befehle (caget, caput, …)
•und viele mehr ...
caQtDM: Display Manager
EPICS Training @ PSI
Beispiele für caQtDM
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?
Ein Wert mit einem Datentyp
295,5
mit 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
mit einer Bedeutung
„Beam current in SR“
Ein Messwert ist ein Objekt mit mehreren zugehörigen Daten
die verschiedene Datentypen haben
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
Eindeutiger Name
XYZ1234
Angestellter: James Bond
Dienstmarke : 007
Adresse
: Whitehall, London
Salär
: £70070.07
Felder
Daten
EPICS Training @ PSI
Vom Messwert zum Record
recordwith
(ai, a"ARIDI-PCT:CURRENT")
unique name ARIDI-PCT:CURRENT
{
295,5
ai
A value with afield
data(EGU,
type "mA")
field a(EGUF,
with
unit "400")
mA
field (EGUL, "0")
with afield
time(HOPR,
stamp "370")
17.2.2005 14:21:16
field (LOPR,
NO_ALARM
with a severity (alarm
status) "0")
field (DESC, "Beam current in SR")
with technical
limits "HY8401") 0 bis 400
field (DTYP,
field (INP,
"#C3 S0 @") 0 bis 370
with
graphical
limits
Vom Entwickler
konfiguriert
with a}description „Beam current in SR“
Rücklese von
hardware/driver
VAL
SEVR
TIME
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:
ARIDI-PCT:CURRENT.
Ein Record Name
EGU
Ein Prozess Variablen Name
Ein Feld Name
Ein Punkt zum Zusammenfügen
•
Wenn kein Feld Name angegeben wird, benutzt Channel
Access als Standard das .VAL Feld
ARIDI-PCT:CURRENT = ARIDI-PCT:CURRENT.VAL
EPICS Training @ PSI
Ein Record aus Sicht der IOC
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")
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")
}
EPICS Training @ PSI
Was machen Records?
• Was ein Record tut, hängt ab von
1. seinem Typ
2. den Werten in den Felder
• 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
• Ein Record tut nichts, bis es prozessiert
wird
EPICS Training @ PSI
•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
Wann wird ein Record prozessiert?
Ein Record kann periodisch prozessiert werden oder
durch ein Event gesteuert
• 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
vorgegeben sind
– Die Perioden sind nicht garantiert präzise
• Event gesteuert: Events können sein
– Hardware Interrupts
– Anfrage eines andern Records über eine
Verbindung (Link)
– EPICS Events
– Channel Access Schreibzugriffe (caput)
EPICS Training @ PSI
Das Record Reference Manual
• In Englisch (Amerikanisch)
• Erklärt alle Records der EPICS base Version
• Erklärt Datenbank Konzepte, Record Typen und Record Felder
• Neue Version als Wiki:
http://www.aps.anl.gov/epics/wiki/index.php/RRM_3-14
• Alte Version (R3.13):
pdf: http://www.aps.anl.gov/epics/EpicsDocumentation/AppDevManuals/RecordRef/Recordref.pdf
• Es gibt noch mehr Records.
Zum Beispiel das Motor Record (Teil von synApps)
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
IOC
Process
Temperature
Sensor
Analog
nach Digital
Konverter
Normal Operation
0 – 100°C
8 bit ADC
5 - 50°C
0 – 10V
0 – 10V
Database
record (ai, “MTRT1-TEMP:READ”)
{
field (EGU, “deg C”)
field (EGUL, “0”)
field (EGUF, “100”)
field (HSV, MAJOR”)
field (HIGH, “51”)
field (SCAN, “.1 second”)
field (DTYP, “Hy8401”)
field (INP, “#C3 S0 @”)
}
0 – 255 bits
EPICS Training @ PSI
Ein Beispiel für ein Record
caQtDM setzt einen CA monitor
CA Client: caQtDM
jedes mal, wenn sich der Wert
ändert wird ein Rückruf ausgelöst
IOC
Record Support
Device Support
Driver
Wert (34 °C)
record (ai, “MTRT1-TEMP:READ”)
{…
field (SCAN, “.1 second”)
field (DTYP, “Hy8401”)
field (INP, “#C3 S0 @”)
field (VAL, “34”)
…}
alle 0.1 Sekunden fragt das Record
den Treiber nach einem neuen Wert
und der Treiber meldet sich zurück
EPICS Training @ PSI
Ein Record einfach auslesen
• 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
EPICS Training @ PSI
CA Komandozeilen Befehle
• Lesen eines PV mit dem Namen <NAME>
caget MTRT1-TEMP:READ
caget NAME
• Informationen über das Record
cainfo
cainfo NAME
• Einen Monitor setzen
camon NAME
MTRT1-TEMP:READ
camon MTRT1-TEMP:READ
(Abbrechen mit [Ctrl] + [c])
• Ohne Argumente zeigen alle Befehle einen
Hilfstext
caget
EPICS Training @ PSI
Eine Benutzeroberfläche erzeugen
1. Zum Starten des Qt Designers:
(neue Oberfläche erzeugen)
caqtdm_designer &
2. Zum Starten einer existierenden Oberfläche
(GUI):
caqtdm <name>.ui &
EPICS Training @ PSI
Eine caQtDM Oberfläche erzeugen (1/4)
“Main Window” auswählen
erzeugen
EPICS Training @ PSI
Eine caQtDM Oberfläche erzeugen (2/4)
EPICS Training @ PSI
Eine caQtDM Oberfläche erzeugen (3/4)
MTRT1-TEMP:READ
EPICS Training @ PSI
Eine caQtDM Oberfläche erzeugen (4/4)
Temperature.ui
EPICS Training @ PSI
Eine Benutzeroberfläche starten
1. Zum Starten des Qt Designers:
(neue Oberfläche erzeugen)
caqtdm_designer &
2. Zum Starten einer existierenden Oberfläche
(GUI):
caqtdm <name>.ui &
EPICS Training @ PSI
Eine laufende caQtDM Oberfläche
EPICS Training @ PSI
Dateien zum Temperatur Beispiel
• In das richtige lokale Verzeichnis wechseln
cd 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 Dateien
substitution Datei
template Datei
EPICS Training @ PSI
Warum subs und template Dateien?
• Was macht man, wenn man mehr als ein Gerät
ansteuern muss?
– Das Record vervielfältigen und
umbenennen funktioniert, aber
– wenn man 20 Geräte hat wird es lang
– wenn die Geräte jeweils mehr als ein
Record brauchen (BPM mit x, y und
Intensität zum Beispiel) dann wird es noch
länger und unübersichtlich
• Lösung von EPICS:
substitution (mit Macro Definition) und template
Datei
EPICS Training @ PSI
Inhalt der Dateien
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
 die substitution Datei editieren (MTEST-VME-T1_example.subs)
EPICS Training @ PSI
Wie kommt das Records auf die VME?
Neue Records werden nur bei einem Neustart
der IOC erzeugt (für VME bedeutet das reboot)
Dateien
installieren
Linux PC
Dateien beim
reboot laden
Zentraler Server
EPICS Training @ PSI
Trainings VME
Installieren einer EPICS Datenbank
• Ist alles richtig geschrieben?
• Installieren in das Boot-Verzeichnis der IOC
swit –V –ioc IOC-NAME
(im Verzeichnis, das die Dateien enthält, die installiert
werden sollen)
swit -V -ioc MTEST-VME-T1
• IOC booten:
Einloggen auf der IOC per
rmc MTEST-VME-T1
rmc IOC-NAME
und dem Befehl (soft reboot)
reboot
MTEST-VME-T1> 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 haben
1. 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 Zeichen
EPICS: 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:
caqtdm -macro IOC=MTEST-VME-T1 /work/sls/config/qt/G_IOCMON_ioc_status.ui
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 Problem in EPICS lösen
IOC
ADC
Analog In
Database
MTTR1-LI-COOL:TEMP1
INP
Problem:
EGU:
deg C
Calculation
MTRT1-LI-COOL:CALC
Sensor
T1
Binary out
In the LINAC we have a water chiller that must
be
MTRT1-LI-COOL:SW
INPA
turned ON whenever
the average temperature of
OUT
INPB
VAL
two temperature sensors rises
aboveDOL
a set point.
ADC
C:
10
The set point is nominally
10 degrees centigrade.
Analog In
MTRT1-LI-COOL:TEMP2
INP
Sensor
T2
Binary
I/O
VAL
EGU:
CALC: ( (A+B)/2 ) > C
SCAN: 10 second
VAL
deg C
EPICS Training @ PSI
Chiller
Die subs Datei
• Die Datei heisst: MTEST-VME-T1_example.subs
# bedeutet die Zeile ist ein Kommentar
EPICS Training @ PSI
Verschiedene substitution Stile
Wenige Aufrufe
Viele Aufrufe
Dateien werden für Programmierer geschrieben, nicht für Computer!
EPICS Training @ PSI
Die template Datei
• Vordefinierte Records in der Datei
G_TRAINING_T1_COOLER.template
EPICS Training @ PSI
Nüzliche Scripte
• Habe ich alles richtig geschrieben?
externalLinks xxx.subs
externalLinks MTEST-VME-T1_example.subs
• Wie hiess noch gleich dieses Record?
findrecord Namensteil
findrecord MTRT1-LI
• Wann hat die IOC zuletzt gebootet?
bootinfo IOC-Name
bootinfo MTEST-VME-T1
EPICS Training @ PSI
Entwicklungsschritte
1. Eigene Dateien ändern
2. Dateien abspeichern
3. Syntax mit externalLinks prüfen
externalLinks MTEST-VME-T1_example.subs
4. Dateien installieren
swit -V -ioc MTEST-VME-T1
5. Reboot IOC
(im rmc window: reboot)
6. Test
EPICS Training @ PSI
10 nette Tatsachen über EPICS
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Es ist gratis
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)
Es macht Spass (nicht dem Management verraten)
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
EPICS Training @ PSI