epics training @ psi

72
EPICS Training @ PSI Controls Section PSI 2015

Upload: daire

Post on 19-Jan-2016

81 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: EPICS Training @ PSI

EPICS Training @ PSI

Controls Section PSI

2015

Page 2: EPICS Training @ PSI

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

Page 3: EPICS Training @ PSI

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

Page 4: EPICS Training @ PSI

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

Page 5: EPICS Training @ PSI

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

Page 6: EPICS Training @ PSI

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

Page 7: EPICS Training @ PSI

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

Page 8: EPICS Training @ PSI

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

Page 9: EPICS Training @ PSI

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

Page 10: EPICS Training @ PSI

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

Page 11: EPICS Training @ PSI

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

Page 12: EPICS Training @ PSI

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)

Page 13: EPICS Training @ PSI

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

Page 14: EPICS Training @ PSI

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)

Page 15: EPICS Training @ PSI

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

Page 16: EPICS Training @ PSI

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

Page 17: EPICS Training @ PSI

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

Page 18: EPICS Training @ PSI

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?)

Page 19: EPICS Training @ PSI

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

Page 20: EPICS Training @ PSI

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 ...

Page 21: EPICS Training @ PSI

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>

Page 22: EPICS Training @ PSI

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 ...

Page 23: EPICS Training @ PSI

EPICS Training @ PSI

Beispiele für ALH

Page 24: EPICS Training @ PSI

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

Page 25: EPICS Training @ PSI

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)

Page 26: EPICS Training @ PSI

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 ...

Page 27: EPICS Training @ PSI

EPICS Training @ PSI

Beispiele für StripTool

Zeit

ChannelWerte

Page 28: EPICS Training @ PSI

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

Page 29: EPICS Training @ PSI

EPICS Training @ PSI

Beispiele für caQtDM

Page 30: EPICS Training @ PSI

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

Page 31: EPICS Training @ PSI

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

Page 32: EPICS Training @ PSI

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

Page 33: EPICS Training @ PSI

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 @")

}

Page 34: EPICS Training @ PSI

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

Page 35: EPICS Training @ PSI

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)

Page 36: EPICS Training @ PSI

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!

Page 37: EPICS Training @ PSI

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

Page 38: EPICS Training @ PSI

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?

Page 39: EPICS Training @ PSI

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

Page 40: EPICS Training @ PSI

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 @”) }

Page 41: EPICS Training @ PSI

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

Page 42: EPICS Training @ PSI

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

Page 43: EPICS Training @ PSI

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

Page 44: EPICS Training @ PSI

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 &

Page 45: EPICS Training @ PSI

EPICS Training @ PSI

Eine caQtDM Oberfläche erzeugen (1/4)

“Main Window” auswählen

erzeugen

Page 46: EPICS Training @ PSI

EPICS Training @ PSI

Eine caQtDM Oberfläche erzeugen (2/4)

Page 47: EPICS Training @ PSI

EPICS Training @ PSI

Eine caQtDM Oberfläche erzeugen (3/4)

MTRT1-TEMP:READ

Page 48: EPICS Training @ PSI

EPICS Training @ PSI

Eine caQtDM Oberfläche erzeugen (4/4)

Temperature.ui

Page 49: EPICS Training @ PSI

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 &

Page 50: EPICS Training @ PSI

EPICS Training @ PSI

Eine laufende caQtDM Oberfläche

Page 51: EPICS Training @ PSI

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)

Page 52: EPICS Training @ PSI

EPICS Training @ PSI

Inhalt der Dateien

substitution Datei

template Datei

Page 53: EPICS Training @ PSI

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

Page 54: EPICS Training @ PSI

EPICS Training @ PSI

Inhalt der Dateien

DEVICE = MTRT1$(DEVICE)-TEMP:READ

MTRT1-TEMP:READ

Page 55: EPICS Training @ PSI

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)

Page 56: EPICS Training @ PSI

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)

Page 57: EPICS Training @ PSI

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

Page 58: EPICS Training @ PSI

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

Page 59: EPICS Training @ PSI

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

Page 60: EPICS Training @ PSI

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

Page 61: EPICS Training @ PSI

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

Page 62: EPICS Training @ PSI

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…..

Page 63: EPICS Training @ PSI

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

Page 64: EPICS Training @ PSI

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

Page 65: EPICS Training @ PSI

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

Page 66: EPICS Training @ PSI

EPICS Training @ PSI

Die subs Datei

• Die Datei heisst: MTEST-VME-T1_example.subs

# bedeutet die Zeile ist ein Kommentar

Page 67: EPICS Training @ PSI

Verschiedene substitution Stile

EPICS Training @ PSI

Wenige Aufrufe Viele Aufrufe

Dateien werden für Programmierer geschrieben, nicht für Computer!

Page 68: EPICS Training @ PSI

EPICS Training @ PSI

Die template Datei

• Vordefinierte Records in der Datei G_TRAINING_T1_COOLER.template

Page 69: EPICS Training @ PSI

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

Page 70: EPICS Training @ PSI

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

Page 71: EPICS Training @ PSI

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)

Page 72: EPICS Training @ PSI

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