EPICS Training @ PSI by lo0R9v

VIEWS: 37 PAGES: 65

									EPICS Training @ PSI

   Controls Section PSI
           2007
Danksagung

Einige der gezeigten Folien stammen aus der Reihe
„Getting started with EPICS Lecture Series at APS“
Mein besonderer Dank gilt
                  Ned Arnold
  und
                  John Maclean
von der Advanced Photon Source.
Die originalen Vorträge finden sich auf der Seite
www.aps.anl.gov/epics/docs/GSWE.php

                  EPICS Training @ PSI
Inhalt

•   Was ist EPICS
•   Die einzelnen Komponenten von EPICS
•   Was sind Records
•   Ein Beispiel für ein Record
•   Ein Problem mit EPICS lösen




                  EPICS Training @ PSI
Was ist unsere Aufgabe?

Wir müssen einen Beschleuniger (SLS) mit vielen
  Komponenten fernsteuern (wegen radioaktiver Strahlung
  und der Grösse)


                      ?
                     EPICS

Operator

Unsere Lösung heisst EPICS
                                           Beschleuniger
                    EPICS Training @ PSI
Was ist EPICS?


EPICS steht für:
Experimental Physics and Industrial Control System


EPICS ist:
• Es ist eine Kollaboration
• Es ist eine Werkzeugsammlung
• Es ist eine Kontrollsystemarchitektur


                   EPICS Training @ PSI
Die Geschichte
–1989 begann die Zusammenarbeit von Los Alamos
 National Laboratory (GTA) und Argonne National
 Laboratory (APS)              GTA: Ground Test Accelerator
  (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”
–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
– The Australian Synchrotron (AusSy) in Melbourne, Australien

                       EPICS Training @ PSI
Gibt es Alternativen zu EPICS?

• Tango/Taco
  Entwickelt von der ESRF
  Wird benutzt von ESRF, Elettra, Soleil
• DOOCS
  Entwickelt und benutzt von DESY
• Tine
  Entwickelt und benutzt von DESY
• ACS
  Entwickelt und benutzt am PSI

                  EPICS Training @ PSI
Die Kontrollsystem Architektur

Netzwerkbasiertes Client/Server Modell (daher das EPICS


          EPICS
Logo)
                                              Ein Server bietet
                                              Informationen
                                              oder Dienste an
      CA                CA
                                              Ein Client nutzt diese
     Client            Client
                                              Dienste
                                              oder fragt nach diesen
                                              Informationen
                CA                   CA
              Server                Server

 Hier bezieht sich Client und Server auf ihre Rolle
  bezüglich Channel Access
 d.h. Channel Access Client und Channel Access Server
                       EPICS Training @ PSI
Was ist Channel Access

• Ein Protokoll, wie “Daten” übertragen werden
• Ein Datenpaket wird als Prozess Variable
  bezeichnet
• Eine Prozess Variable hat einen Namen, mit
  dem man die Daten abrufen kann
• Die genauen Abläufe von Channel Access sind
  für Nutzer und die meisten Programmierer
  unwichtig
• Channel Access ist nicht von einer
  (Programmier-) Sprache abhängig

                 EPICS Training @ PSI
Channel Access im Netz
                     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
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
                          CAS         CAS         CAS         CAS

                       Prozess
                       Process     Process
                                   Prozess     Prozess
                                               Process     Prozess
                       Variables
                       Variablen   Variablen
                                   Variables   Variables
                                               Variablen   Variablen
 EPICS Datenbank

                     EPICS Training @ PSI
Was ist EPICS - Zusammenfassung

• EPICS ist eine Kontrollsystemarchitektur
• EPICS schaffte eine Verbindung zwischen dem
  Beschleuniger und dem Operator
• EPICS benutzt für diese Verbindung ein
  Protokoll namens Channel Access
• Channel Access basiert auf Datenpaketen, die
  Prozess Variablen genannt werden
• EPICS wird von vielen Instituten auf der ganzen
  Welt genutzt


                  EPICS Training @ PSI
Inhalt

•   Was ist EPICS
•   Die einzelnen Komponenten von EPICS
•   Was sind Records
•   Ein Beispiel für ein Record
•   Ein Problem mit EPICS lösen




                  EPICS Training @ PSI
Teile eines EPICS Kontrollsystems
                                                        Client Software
                                                       MEDM            OAG Apps
                                                      ALH      TCL/TK     StripTool
                                                        Perl Scripts    Und viele
Output




                                                                        andere …




                                           Input
           IOC          IOC                          Channel Access
             CAS          IOC
               CAS          IOC
                                                    CA Server Software
                                                       EPICS Datenbank
         Kommerzielle     Eigenbauten                aus Prozess Variablen
                                                            Records       Eigene
          Instrumente                               Sequence            Programme
                        Technische                 Programme
                                                                 Echtzeit
                                                                 Kontrolle
                        Ausrüstung
                          EPICS Training @ PSI
Typische Umsetzung



                                         Desktop


  IOC          IOC                                     Laptop
    CAS          IOC
      CAS          IOC
                                        Die meisten
                                         CAServer      Die meisten IOCs
                                       Anwednungen       basieren auf
Kommerzielle     Eigenbauten            basieren auf
                                         Unix/Linux
                                                       vxWorks (VME),
                                                       aber auch Linux
 Instrumente                           oder Windows     und Windows
                                        (mitlerweile       (SoftIOC)
               Technische               sehr selten)
               Ausrüstung
                         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 und 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
• 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
                           EPICS Training @ PSI
Das Innenleben einer IOC
Die wesentlichen Softwarekomponenten einer IOC
(IOC Core)
                                              LAN (Netzwerk)


          IOC         Channel Access


                    Database           Sequencer



                  Device Support


                I/O Hardware (Instrumente)

                     EPICS Training @ PSI
Wofür braucht man den Sequenzer?

                                   State Machine
              die Ampel ist rot




 die Ampel       die Ampel               die Ampel
   ist rot     ist ausgefallen             ist gelb
  und gelb




 Start        die Ampel ist grün




                  EPICS Training @ PSI
Ein paar CA Clients
(von der EPICS Website - unvollständig)
•ALH: Alarm Handler
•BURT: Backup and Restore Tool
•CASR: Host-based Save/Restore
•CAU: Channel Access Utility
•Channel Archiver (SNS)
•Channel Watcher (SLAC)
•EDM: Extensible Display Manager (ORNL)
•JoiMint: Java Operator Interface and Management INtegration Toolkit
(DESY)
•Knobs: Knob Manager und KnobConfig, eine Schnittstelle zu SunDials
•MEDM: Motif Editor und Display Manager
•StripTool: Strip-chart Plotting Tool
•und viele mehr ...


                         EPICS Training @ PSI
Beispiele für ALH




                    EPICS Training @ PSI
Alarme und ihre Farben

  NO_ALARM         Grün                 Alles in Ordnung


    MINOR          Gelb                    Warnung


    MAJOR           Rot                     Fehler


    INVALID       Weiss             Gerät existiert nicht

                 Weisses
 Not connected   Feld oder         Record nicht bekannt
                 Violett
                 EPICS Training @ PSI
Beispiele für ALH




                    EPICS Training @ PSI
Ein paar CA Clients
(von der EPICS Website - unvollständig)
•ALH: Alarm Handler
•BURT: Backup and Restore Tool
•CASR: Host-based Save/Restore
•CAU: Channel Access Utility
•Channel Archiver (SNS)
•Channel Watcher (SLAC)
•EDM: Extensible Display Manager (ORNL)
•JoiMint: Java Operator Interface and Management INtegration Toolkit
(DESY)
•Knobs: Knob Manager und KnobConfig, eine Schnittstelle zu SunDials
•MEDM: Motif Editor und Display Manager
•StripTool: Strip-chart Plotting Tool
•und viele mehr ...


                         EPICS Training @ PSI
Beispiele für StripTool




                   EPICS Training @ PSI
Ein paar CA Clients
(von der EPICS Website - unvollständig)
•ALH: Alarm Handler
•BURT: Backup and Restore Tool
•CASR: Host-based Save/Restore
•CAU: Channel Access Utility
•Channel Archiver (SNS)
•Channel Watcher (SLAC)
•EDM: Extensible Display Manager (ORNL)
•JoiMint: Java Operator Interface and Management INtegration Toolkit
(DESY)
•Knobs: Knob Manager und KnobConfig, eine Schnittstelle zu SunDials
•MEDM: Motif Editor und Display Manager
•StripTool: Strip-chart Plotting Tool
•und viele mehr ...


                         EPICS Training @ PSI
Beispiele für medm




                 EPICS Training @ PSI
  Channel Access Kommandos
                              “connection           “get”           “put” oder           “set a monitor”
                             request” oder          oder              “caput”               “camon”
                           “search request”        “caget”
                           Wer hat eine PV mit                      Ändere den         Benachichtige mich,
                               dem Namen           Was ist ihr       Wert auf          wenn sich der Wert
  Channel Access Client    S1A:H1:CurrentAO ?       Wert?           30.5 AMPS                ändert


           CA Client
           CA Server
 Channel Access Server         Ich habe sie         25.5            OK, jetzt ist     Jetzt     Jetzt        Jetzt -
                                                   AMPS            der Wert 30.5       20.5      10.5        0.0023
Prozess Variablen:                                                                    AMPS      AMPS         AMPS
                                                                       AMP
     S1A:H1:CurrentAO
                                                                 “put complete”           “post an event”
                                                             30.5 ist zu hoch. Sie              oder
                 S1:P1:x                                     wird auf das erlaubte
                 S1:P1:y                         oder         Maximum von 27.5
                                                                                          “post a monitor”
                                                                AMPS gesetzt.

                                                                 Sie sind nicht
         S1:G1:vacuum
                                                 oder        berechtigt diesen Wert
                                                                  zu ändern.


                                              EPICS Training @ PSI
 Das Zusammenspiel der Einzelteile


                                                               Channel Access Client




  Operator                        Channel Access Client
                                                                                         Channel Access Client




                        Netzwerk (Channel Access Protokoll)
Channel Access Server


Prozess Variablen:
                             Computer            Speise-
   S1A:H1:CurrentAO         Schnittstelle         gerät

                                                 Beam
              S1:P1:x        Computer
                            Schnittstelle
                                                Position
              S1:P1:y
                                                Monitor

                             Computer           Vakuum
       S1:G1:vacuum
                            Schnittstelle        Sonde                                 Maschine
                                             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


                      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

            Felder    Dienstmarke : 007
                      Adresse     : Whitehall, London   Daten
                      Salär       : £70070.07



                         EPICS Training @ PSI
  Vom Messwert zum Record
          Ein (ai, "ARIDI-PCT:CURRENT") {
       record eindeutiger Name ARIDI-PCT:CURRENT
         Ein Wert mit einem Typ "mA") 295,5
                      field (EGU,             ai
                         field (EGUF,
                  mit einer Einheit "400")             mA
                         field (EGUL, "0")
           mit einem Zeitstempel        17.2.2005 14:21:16
                         field (HOPR, "370")
mit einer Gültigkeit (Alarmstatus) "0")
                         field (LOPR,          NO_ALARM
                         field (DESC, "Beam current in SR")
        mit technischen Grenzen "HY8401") 0 bis 400
                         field (DTYP,
                         field (INP,
         mit Darstellungsgrenzen "#C3 S0 @") 0 bis 370
                          }
              mit einer Bedeutung „Beam current in SR“

  Von der Hardware gelesen:

                        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.                     EGU   Ein Prozess Variablen Name


         Ein Record Name                             Ein Feld Name

                     Ein Punkt zum Zusammenfügen

Wenn kein Feld Name angegeben wird, benutzt Channel Access als
  Standard das .VAL Feld
z.B. gilt für Channel Access
 ARIDI-PCT:CURRENT = ARIDI-PCT:CURRENT.VAL
                            EPICS Training @ PSI
Was machen Records?
• Records sind aktiv, sie tun Dinge:
 – Daten von anderen Records oder von der Hardware lesen (get)
 – Rechnungen ausführen
 – Grenzwerte überprüfen und Alarme auslösen
 – Daten in andere Records oder auf die Hardware schreiben (put)
 – Andere Records aktivieren oder deaktivieren
 – Auf Signale (interrupts) von der Hardware warten
• Was ein Record tut, hängt von seinem Typ und den
Werten seiner Felder ab
• Eine grosse Auswahl an Records existiert bereits
• Neue Record-Typen können hinzugefügt werden, wenn
sie gebraucht werden
• Ein Record tut nichts, bis es prozessiert wird

                           EPICS Training @ PSI
Einige Record Typen
•Analog in                             •Multi bit binary output
•Analog out                            •PID control
•Binary in                             •Pulse counter
•Binary out                            •Pulse delay
•Calculation                           •Scan
•Calculation out                       •Select
•Compression                           •Sequence
•Data fanout                           •String in
•Event                                 •String out
•Fanout                                •Subarray
•Histogram                             •Subroutine
•Motor                                 •Waveform
•Multi bit binary input

                          EPICS Training @ PSI
Ein Record aus Sicht der IOC
record(ao,"DemandTemp") {                           field(DRVH,"100")
    field(DESC,"Temperature")                       field(DRVL,"0")
    field(ASG,"")                                   field(HOPR,"80")
    field(SCAN,"Passive")                           field(LOPR,"10")
    field(PINI,"NO")                                field(HIHI,"0.0e+00")
    field(PHAS,"0")                                 field(LOLO,"0.0e+00")
    field(EVNT,"0")                                 field(HIGH,"0.0e+00")
    field(DTYP,"VMIC 4100")                         field(LOW,"0.0e+00")
    field(DISV,"1")                                 field(HHSV,"NO_ALARM")
    field(SDIS,"")                                  field(LLSV,"NO_ALARM")
    field(DISS,"NO_ALARM")                          field(HSV,"NO_ALARM")
    field(PRIO,"LOW")                               field(LSV,"NO_ALARM")
    field(FLNK,"")                                  field(HYST,"0.0e+00")
    field(OUT,"#C0 S0")                             field(ADEL,"0.0e+00")
    field(OROC,"0.0e+00")                           field(MDEL,"0.0e+00")
    field(DOL,"")                                   field(SIOL,"")
    field(OMSL,"supervisory")                       field(SIML,"")
    field(OIF,"Full")                               field(SIMS,"NO_ALARM")
    field(PREC,"1")                                 field(IVOA,"Continue normally")
    field(LINR,"NO CONVERSION")                     field(IVOV,"0.0e+00")
    field(EGUF,"100")                           }
    field(EGUL,"0")
    field(EGU,"Celcius")

                                  EPICS Training @ PSI
Das Record Reference Manual

• In Englisch (Amerikanisch)
• Erklärt Datenbank Konzepte und Records
• Für jeden Recordtyp sind alle Felder erklärt
  Besipiel: Feld HSV für ai Record
• Es gibt ein paar Felder, die jeder Recordtyp hat,
  diese sind am Anfang erklärt
• Die beschriebenen Records sind in der Basis
  Version von EPICS inbegriffen
• Es gibt noch mehr Records, Dokumentation
  siehe Internet
                    EPICS Training @ PSI
Inhalt

•   Was ist EPICS
•   Die einzelnen Komponenten von EPICS
•   Was sind Records
•   Ein Beispiel für ein Record
•   Ein Problem mit EPICS lösen




                  EPICS Training @ PSI
Ein Beispiel für ein Record
                                                        Channel Access Client
                                                                                       MTRT1-TEMP:READ
                                                                                       MTRT1-TEMP:READ
                            Erzähl mir alles über                                      .VAL
                                                                                       .VAL    =
                                                                                               =   45.5
                                                                                                   51.5
                                                                                       .EGU
                                                                                       .EGU    =
                                                                                               =   Grad C
                                                                                                   Grad C
                            MTRT1-TEMP:READ                                            .STAT
                                                                                       .STAT   =
                                                                                               =   Normal
                                                                                                   MAJOR

                                         IOC                      Channel Access Server
                                           Analog
      Prozess         Temperatur         nach Digital
                        Sensor                                  Database
                                          Konverter
                                                                       Analog In

                                                                     MTRT1-TEMP:READ    51.5
                                                                                        45.5 Grad C
                   45.5°C
                   51.5°C       5.15V
                                4.55V               116
                                                    132 bits
                                                                     INP        VAL
                                                                     EGU :Grad C
                                                                     EGUL: -100
                                                                     EGUF: 100
Normaler Betrieb       0 – 100°C          8 bit ADC
                                                                     HIGH: 51
    5 - 50°C            0 – 10V           -10 – 10V
                                         0 – 255 bits


                                         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 NAME
• Informationen über das Record
      cainfo NAME
• Einen Monitor setzen
     camon NAME
  (Abbrechen mit [Ctrl] + [c])
• Wenn ich die genauen Befehle vergessen habe
     ca

                 EPICS Training @ PSI
Eine Benutzeroberfläche erzeugen

• Mit dem Befehl
  medm
  den Oberflächeneditor öffnen
• Menü File und New ankicken
• Mit der rechten Maustaste in das neue Fenster
  klicken und unter Object > Monitors einen
  "Text Monitor" auswählen (die Grösse im
  Fenster per Maus angeben)
• Unter "Readback Channel" den gewünschten
  Reord-Namen eingeben (MTRT1-TEMP:READ)
• Auf "Execute" schalten
                 EPICS Training @ PSI
Medm in Bildern




 MTRT1-TEMP:READ



                  EPICS Training @ PSI
Dateien zum Temperatur Beispiel

• Die lokalen Dateien stehen im Verzeichnis
     G/TRAINING/T1
• Das .template heisst
     G_TRAINING_T1_TEMPERATUR.template
• Das substituion heisst
     MTEST-VME-T1_example.subs
• Das erzeugte Record heisst
      MTRT1-TEMP:READ
  (bzw. MTRT2-TEMP-READ, MTRT3-TEMP:READ und
  MTRT4-TEMP:READ)

                   EPICS Training @ PSI
Inhalt der Datein




 DEVICE = MTRT1
 $(DEVICE)-TEMP:READ

 MTRT1-TEMP:READ

                    EPICS Training @ PSI
Ein zweites Record erzeugen

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




                 EPICS Training @ PSI
Installieren einer EPICS Datenbank

• Ist alles richtig geschrieben?
• Installieren in das Boot-Verzeichnis der IOC
  slsinstall –V –ioc IOC-NAME
  (im Verzeichnis, das installiert werden soll)
• IOC booten (per Knopf = hard reboot)
oder
• Einloggen auf der IOC per
  rmc IOC-NAME
  und dem Befehl (soft reboot)
  reboot

                   EPICS Training @ PSI
Was passiert beim booten

• Boot Info der VME-IOC: wo steht das
  startup.script
• Lade startup.script
• Im startup.script: liste von .subs Dateien
• Lade .subs Dateien
• In den .subs Dateien: Liste von .template
  Dateien
• Lade .template Dateien mit Ersetzung
• Erzeuge alle geladenen Records

                   EPICS Training @ PSI
Befehle auf dem VME Computer

• Eine Liste aller Records erhält man mit
    dbl

• Interessante Felder anschauen kann man mit
     dbpr "Recordnamen"
     dbpr "MTRT1-TEMP:READ"

• Für VxWorks Befehle benutzt man
     help

                  EPICS Training @ PSI
Namenskonvention

Die Records müssen eindeutige Namen 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: medm Oberfläche

• Erzeugt eine medm Oberfläche, die Records
  enthält:
   – Eure eigenen Records
   – Alle Records eurer Nachbarn
   – Die Alarmzustände der Records


• Eine zweite Oberfläche soll die Records
  darstellen, die mit dem Namen der IOC
  beginnen: MTEST-VME-T…..

                 EPICS Training @ PSI
 IOC Status

 Automatisch werden auf jeder IOC Status Records
   angelegt:




medm –x –macro IOC=MTEST-VME-T1 /work/sls/config/medm/G_IOCMON_ioc_status.adl

                             EPICS Training @ PSI
Inhalt

•   Was ist EPICS
•   Die einzelnen Komponenten von EPICS
•   Was sind Records
•   Ein Beispiel für ein Record
•   Ein Problem mit EPICS lösen




                  EPICS Training @ PSI
    Ein Problem in EPICS lösen

         ADC
                    Analog In        Datenbank
                  MTRT1-LI:TEMP1
               Problem:                                                Binär I/O
                                       Berechnung
                  INP       VAL                           Binary out
                                     MTRT1-LI:CALC
             Im Linac gibt es einen Wasserkühler, der eingeschaltet
                 EGU: deg C                              MTRT1-LI:COOL-SW
                                   INPA
Sensor
                werden muss, wenn die durchschnittliche Temperatur
 T1             der beiden Temperatursensoren überDOL
                                   INPB            VAL              OUT
                                                          einen Grenzwert
                                   C:    10
                steigt. Der Grenzwert ist normalerweise 10 Grad                    Kühler
         ADC       Analog In       CALC: ( (A+B)/2 ) > C
                Celsius.
                  MTRT2-LI:TEMP2     SCAN: 10 second

                  INP       VAL
                  EGU:    deg C

Sensor
 T2
                                            IOC

                                   EPICS Training @ PSI
Die subs Datei

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




   # bedeutet die Zeile ist ein Kommentar
                   EPICS Training @ PSI
Die template Datei

• Vordefinierte Records in der Datei
     G_TRAINING_T1_COOLER.template
• Würde die IOC mit dieser Datei booten?
• Record Felder aus den Notizen abschreiben
  …

             bereits vorhandenes
             Temperatur-Record
                   kopieren!

                     EPICS Training @ PSI
Nüzliche Scripte

• Habe ich alles richtig geschrieben?
  externalLinks subs-Datei
• Wie hiess noch gleich dieses Record?
  findrecord Namensteil
• Wann hat die IOC zuletzt gebootet?
  bootinfo IOC-Name
• Oder ein paar mehr Infos aus der Datenbank:
  http://pc4860/testplan/hosts_iocs_list_pub.php




                   EPICS Training @ PSI
Wann wird ein Record prozessiert?
• Ein Record kann periodisch prozessiert werden
oder durch ein Event ausgelöst
• Periodisch: Standard Perioden (scan rates) sind:
 – 10, 5, 2, 1, 0.5, 0.2 und 0.1 Sekunden
 – Spezielle Perioden können konfiguriert werden, bis zu den
   Grenzen, die durch die Hardware und das Kontrollsystem
   vogegeben sind
• Event gesteuert: Events können sein
 – Hardware Interrupts
 – Anfrage eines andern Records über eine
   Verbindung (Link)
 – EPICS Events
 – Channel Access Schreibzugriffe (Puts)

                        EPICS Training @ PSI
medm 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



                  EPICS Training @ PSI
Weitere Aufgaben

• Die Durchschnittstemperatur darstellen
• Die Grenztemperatur von 10 Grad soll über ein
  neues Record von der medm Oberfläche aus
  verstellt werden könen
• Es soll auch eine untere Grenztemperatur
  geben, ab der eine Heizung eingestellt wird
   – Noch ein calc Record
   – Noch ein bo Record
      "#C2 S33 @"
• Es gibt eine weitere solche Harware Anordnung
  im Speicherring (alles dupizieren)
                   EPICS Training @ PSI
10 nette Tatsachen über EPICS
1.   Es ist gratis
2.   Es ist Open Source (Quellcode ist zugänglich)
3.   Es gibt eine Menge Leute, die es benutzen
4.   Alles was ein Client wissen muss um auf die Daten zuzugreifen
   ist der PV Name
5. Man kann unter den besten Werkzeuge auswählen …
6. … oder seine eigenen schreiben
7. Der langweilige Teil ist schon gemacht
8. Es gibt bereits eine Menge Erfahrungen in verschiedenen
   Instituten
9. Eine gute Erweiterung findet internationale Aufmerksamkeit
10. Es ist egal, ob man 10 oder 10 Millionen PVs braucht (beliebig
   skalierbar)

                       EPICS Training @ PSI
Die EPICS Web Seite

Der zentrale Ort, um Informationen über EPICS zu
finden
      - Dokumentation
      - CA Clients
      - Device support (Gerätetreiber)
      - Tech-talk (Mailing Liste und Archiv)


  http://www.aps.anl.gov/epics
                 EPICS Training @ PSI

								
To top