70
EPICS Training @ PSI Controls Section PSI 2014

EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

Embed Size (px)

Citation preview

Page 1: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Controls Section PSI

2014

Page 2: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 5: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 6: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 7: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 8: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 9: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 10: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 11: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 12: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 13: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 14: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 15: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 16: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 17: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 18: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 19: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 20: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 21: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 22: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Beispiele für ALH

Page 23: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 24: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Beispiele für ALH

Page 25: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 26: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Beispiele für StripTool

Page 27: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 28: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Beispiele für caQtDM

Page 29: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 30: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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)

Page 31: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 32: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 33: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 34: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

}

Page 35: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 36: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 37: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 38: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 39: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 40: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 41: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 42: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 44: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 &

Page 45: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Eine caQtDM Oberfläche erzeugen (1/)

“Main Window” auswählen

erzeugen

Page 46: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Eine caQtDM Oberfläche erzeugen (2/)

Page 47: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Eine caQtDM Oberfläche erzeugen (3/)

MTRT1-TEMP:READ

Page 48: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Eine caQtDM Oberfläche erzeugen (4/)

Temperature.ui

Page 49: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 &

Page 50: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Eine laufende caQtDM Oberfläche

Page 51: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Inhalt der Datein

DEVICE = MTRT1$(DEVICE)-TEMP:READ

MTRT1-TEMP:READ

Page 53: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Ein zweites Record erzeugen

• Wir haben noch einen weiteren “Temperatursensor” – wir brauchen ein zweites Record:

Page 54: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 55: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 56: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 57: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 58: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 59: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 60: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 61: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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 62: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 63: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

EPICS Training @ PSI

Die subs Datei

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

# bedeutet die Zeile ist ein Kommentar

Page 64: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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!

Page 65: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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

Page 66: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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)

Page 67: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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)

Page 68: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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)

Page 69: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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)

Page 70: EPICS Training @ PSI Controls Section PSI 2014. EPICS Training @ PSI Danksagung Einige der gezeigten Folien stammen aus der Reihe Getting started with

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