Upload
daire
View
81
Download
0
Tags:
Embed Size (px)
DESCRIPTION
EPICS Training @ PSI. Controls Section PSI 2014. 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. - PowerPoint PPT Presentation
Citation preview
EPICS Training @ PSI
Controls Section PSI
2015
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 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.
Unser Kontrollsystem
heisst EPICS
?EPICS
Beschleuniger
Operateur
Was kontrolliert EPICS?
EPICS Training @ PSI
Komponenten des Swiss Light Source (SLS at PSI) Beschleunigers, die kontrolliert werden sollen:
ca. 200 Computerca. 600 Magnete (+ Speisegeräte)300 Vakuum Pumpen9 Beschleunigungs Strukturenca. 150 BPMs (Strahllagemonitore)
21 Beamlines (zusammen)ca. 300 Computer10 Undulator MagneteMehr 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 ist:• eine Kollaboration• eine Werkzeugsammlung• eine Kontrollsystemarchitektur
EPICS steht für:Experimental Physics and Industrial Control System
EPICS:• Unterstützt verteilte Kontrollsysteme für
Grossforschungsanlagen• benutzt Client/Server und Publish/Subscribe Methoden• benutzt das Channel Access (CA) Netzwerk Protokoll
EPICS
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”–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
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– ESS (European Spallation Source), Lund, Sweden
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 (EPICS Logo)
Die Kontrollsystem Architektur
• 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
Ein Server bietet Informationenoder Dienste an
Ein Client nutzt diese Diensteoder fragt nach diesen Informationen
EPICSClient
CAClient
CA
ServerCA
ServerCA
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
Process
Variables
CAS
Process
Variables
CAS
Process
Variables
CAS CAS
Process
Variables
CASCAS
Process
Variables
CAS
EPICS Database
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
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 Client
Operator
Maschine
Netzwerk (Channel Access Protokoll)
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
Ou
tpu
t
In
pu
t
CA Server IOC
Control Room
CA Client CA Client
CA ServerServer Programme:(Nutzerprogramme)
Echtzeit Kontrolle
Records
Client Programme:alarmhandler
Striptool, caQtDM,viele mehr …
(Nutzerprogramme)
Cannel Access:(UDP/TCP)
4te Ebene
Hardware: eventuell
Kontroller und SPS
Teile eines EPICS Kontrollsystems
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
• 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
IOC steht fürInput Output Controller
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 NAME
• PV namens <NAME> schreiben
caput NAME value
• Informationen zu dem Record lesen
cainfo NAME
• Monitor starten
camonitor NAME (Abbrechen mit [Ctrl] + [c])
>caget ARIDI-PCT:CURRENTARIDI-PCT:CURRENT 350.56>
>caput ARIDI-PCT:CURRENT 401.5Old: ARIDI-PCT:CURRENT 350.56New: ARIDI-PCT:CURRENT 401.5>
>cainfo ARIDI-PCT:CURRENTARIDI-PCT:CURRENT State: connected Host: sls-cagw-1 Access: read, no write Data type: DBR_DOUBLE Element count: 1>
>camonitor ARIDI-PCT:CURRENTARIDI-PCT:CURRENT 250.542ARIDI-PCT:CURRENT 250.537ARIDI-PCT:CURRENT 250.533ARIDI-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 connectedWeisses Feld oder Violett
Record nicht bekannt
EPICS Training @ PSI
Beispiele für ALH
Baumstruktur derRecords
Anleitung (eng. Guidance)
Panel mit mehr Informationen
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
Zeit
ChannelWerte
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?
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 Datendie verschiedene Datentypen haben
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
Vom Entwicklerkonfiguriert
VAL SEVR TIME
295,5
with a unit mA
17.2.2005 14:21:16
NO_ALARM
with technical limits 0 bis 400
with graphical limits 0 bis 370
with a description „Beam current in SR“
A value with a data type
with a unique name ARIDI-PCT:CURRENT
ai
record (ai, "ARIDI-PCT:CURRENT") {
with a time stamp
Rücklese vonhardware/driver
with a severity (alarm status)
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
ARIDI-PCT:CURRENT = ARIDI-PCT:CURRENT.VAL
das bedeutet:
auf die meisten
Record Felder
kann individuell
zugegriffen werden
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")
Alle Record Felder
haben Default Werte
(falls sie nicht vom
Entwickler angegeben
werden)
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
•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
UnvollständigeListe!
EPICS Training @ PSI
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)
Record prozessieren bedeutet:
Das Record wird getriggert,
um seine Konfiguration
auszuführen
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)
Test:
Was macht das
Feld HSV
des ai Records?
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
Temperature Sensor
IOCDatabase
Analog nach Digital Konverter
0 – 100°C
0 – 10V
8 bit ADC
0 – 10V
0 – 255 bits
Process
Normal Operation
5 - 50°C
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 @”) }
EPICS Training @ PSI
Wert (34 °C)
CA Client: caQtDM
Driver
Device Support
Record Support 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 Recordden Treiber nach einem neuen Wert
und der Treiber meldet sich zurück
caQtDM setzt einen CA monitor
jedes mal, wenn sich der Wertändert wird ein Rückruf ausgelöst
IOC
Ein Beispiel für ein Record
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])• Ohne Argumente zeigen alle Befehle einen
Hilfstext
caget MTRT1-TEMP:READ
cainfo MTRT1-TEMP:READ
camon MTRT1-TEMP:READ
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 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 Dateien
substitution Datei
template Datei
Warum subs und template Dateien?
EPICS Training @ PSI
• 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)
Wie kommt das Records auf die VME?
EPICS Training @ PSI
Linux PC Zentraler Server Trainings VME
Dateieninstallieren
Dateien beimreboot laden
Neue Records werden nur bei einem Neustartder IOC erzeugt (für VME bedeutet das reboot)
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 die Dateien enthält, die installiert werden sollen)
• IOC booten:Einloggen auf der IOC per
rmc IOC-NAME
und dem Befehl (soft reboot)
reboot MTEST-VME-T1> reboot
rmc MTEST-VME-T1
swit -V -ioc MTEST-VME-T1
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:
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
Problem:
In the LINAC we have a water chiller that must be turned ON whenever the average temperature of two temperature sensors rises above a set point. The set point is nominally 10 degrees centigrade.
Binary out
MTRT1-LI-COOL:SW
CalculationMTRT1-LI-COOL:CALC
CALC: ( (A+B)/2 ) > C
C: 10
SCAN: 10 second
Analog In
MTTR1-LI-COOL:TEMP1
EGU: deg C
VALINP
EGU: deg C
VALINP
INPB
INPA
VAL DOL OUT
T2Sensor
SensorT1
IOC
DatabaseADC
ADC
BinaryI/O
ChillerAnalog 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
Verschiedene substitution Stile
EPICS Training @ PSI
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
• Wie hiess noch gleich dieses Record?
findrecord Namensteil
• Wann hat die IOC zuletzt gebootet?
bootinfo IOC-Name
externalLinks MTEST-VME-T1_example.subs
findrecord MTRT1-LI
bootinfo MTEST-VME-T1
Entwicklungsschritte
1. Eigene Dateien ändern
2. Dateien abspeichern
3. Syntax mit externalLinks prüfen
4. Dateien installieren
5. Reboot IOC(im rmc window: reboot)
6. Test
EPICS Training @ PSI
swit -V -ioc MTEST-VME-T1
externalLinks MTEST-VME-T1_example.subs
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)
11. 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