1 / 70

EPICS Training @ PSI

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.

daire
Download Presentation

EPICS Training @ PSI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EPICS Training @ PSI Controls Section PSI 2014

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

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

  4. 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 ? EPICS Operator Beschleuniger EPICS Training @ PSI

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

  6. 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 Accelerator APS: Advanced Photon Source EPICS Training @ PSI

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

  8. Kollaborationen: Werden an mehreren Instituten benutzt Contra: Kompliziert auf lokale Probleme anzupassen Pro: Bugs werden woandersgefunden Lokale Systeme: An einem Institut entwickelt und benutzt Pro: Lokale Probleme werden optiomal behandelt Contra: Man ist auf sich gestellt Kommerzielle Systeme Contra: Teuer! Pro: Probleme outsourcen Gibt es Alternativen zu EPICS? System Name: • EPICS • TANGO • DOOCS • Tine • ACS • PVSS(Cern) EPICS Training @ PSI

  9. Die Kontrollsystem Architektur Netzwerkbasiertes Client/Server Modell (daher das EPICS Logo) EPICS Ein Server bietet Informationen oder Dienste an Ein Client nutzt diese Dienste oder fragt nach diesen Informationen CA CA Client Client 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

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

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

  12. CAS Prozess Variablen CAS CAS CAS CAS Process Variables Prozess Variablen Prozess Variablen Process Variables CAS CAS Process Variables Prozess Variablen 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 EPICS Datenbank EPICS Training @ PSI

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

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

  15. Client Software MEDM OAG Apps StripTool ALH TCL/TK Und viele andere … Perl Scripts IOC IOC IOC CAS CA Server Software CAS IOC EPICS Datenbank aus Prozess Variablen Eigene Programme Records Sequence Programme Echtzeit Kontrolle Teile eines EPICS Kontrollsystems Output Channel Access Input Eigenbauten Kommerzielle Instrumente Technische Ausrüstung EPICS Training @ PSI

  16. IOC IOC IOC CAS IOC CAS Eigenbauten Kommerzielle Instrumente Technische Ausrüstung Typische Umsetzung Desktop Laptop Die meisten CAServer Anwednungen basieren auf Unix/Linux oder Windows IOCs basieren auf vxWorks (VME), aber auch Linux und Windows (SoftIOC) EPICS Training @ PSI

  17. 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?) EPICS Training @ PSI

  18. IOC steht für Input Output Controller 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 EPICS Training @ PSI

  19. Das Innenleben einer IOC Die wesentlichen Softwarekomponenten einer IOC (IOC Core) LAN (Netzwerk) Channel Access IOC Sequencer Database Device Support I/O Hardware (Instrumente) EPICS Training @ PSI

  20. Wofür braucht man den Sequenzer? State Machine die Ampel ist rot die Ampel ist gelb die Ampel ist rot und gelb die Ampel ist ausgefallen Start die Ampel ist grün EPICS Training @ PSI

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

  22. Beispiele für ALH EPICS Training @ PSI

  23. Alarme und ihre Farben EPICS Training @ PSI

  24. Beispiele für ALH EPICS Training @ PSI

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

  26. Beispiele für StripTool EPICS Training @ PSI

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

  28. Beispiele für caQtDM EPICS Training @ PSI

  29. CA Server CA Client Channel Access Kommandos “connection request” oder “search request” “get” oder “caget” “put” oder “caput” “set a monitor” “camon” Ändere den Wert auf 30.5 AMPS Benachichtige mich, wenn sich der Wert ändert Wer hat eine PV mit dem Namen S1A:H1:CurrentAO ? Was ist ihr Wert? Channel Access Client Ich habe sie 25.5 AMPS Jetzt 20.5 AMPS Jetzt 10.5 AMPS Jetzt -0.0023 AMPS OK, jetzt ist der Wert 30.5 AMP Channel Access Server Prozess Variablen: S1A:H1:CurrentAO S1:P1:x S1:P1:y S1:G1:vacuum “put complete” “post an event” oder “post a monitor” 30.5 ist zu hoch. Sie wird auf das erlaubte Maximum von 27.5 AMPS gesetzt. oder oder Sie sind nicht berechtigt diesen Wert zu ändern. EPICS Training @ PSI

  30. Das Zusammenspiel der Einzelteile Channel Access Client Operator Channel Access Client Channel Access Client Netzwerk (Channel Access Protokoll) Channel Access Server Prozess Variablen: Speise-gerät Computer Schnittstelle S1A:H1:CurrentAO S1:P1:x S1:P1:y S1:G1:vacuum Beam Position Monitor Computer Schnittstelle Vakuum Sonde Maschine Computer Schnittstelle EPICS Training @ PSI

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

  32. Was ist ein Messwert? 295,5 Ein Wert mit einem Datentyp 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

  33. Was ist ein Record? Ein Record ist ein Objekt mit • Einem eindeutigen Namen • Merkmalen (Feldern) die Informationen (Daten) enthalten • Der Fähigkeit, mit diese Daten Aktionen durchzuführen XYZ1234 Angestellter: James Bond Dienstmarke : 007 Adresse : Whitehall, London Salär : £70070.07 Eindeutiger Name Felder Daten EPICS Training @ PSI

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

  35. 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: EGU ARIDI-PCT:CURRENT . 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

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

  37. 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 Einige Record Typen EPICS Training @ PSI

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

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

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

  41. Ein Beispiel für ein Record Channel Access Client MTRT1-TEMP:READ .VAL = 45.5 .EGU = Grad C .STAT = Normal MTRT1-TEMP:READ .VAL = 51.5 .EGU = Grad C .STAT = MAJOR Erzähl mir alles über MTRT1-TEMP:READ IOC Channel Access Server Analog nach Digital Konverter Prozess Temperatur Sensor Database Analog In 51.5 Grad C 45.5 Grad C MTRT1-TEMP:READ 132 bits 116 bits 45.5°C 5.15V 51.5°C 4.55V INP VAL EGU :Grad C EGUL: -100 EGUF: 100 8 bit ADC -10 – 10V 0 – 255 bits Normaler Betrieb 5 - 50°C 0 – 100°C 0 – 10V HIGH: 51 EPICS Training @ PSI

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

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

  44. Eine Benutzeroberfläche erzeugen • Zum Starten des Qt Designers:(neue Oberfläche erzeugen)qtdesigner & • Zum Starten einer existierenden Oberfläche (GUI):startDM <name>.ui & EPICS Training @ PSI

  45. Eine caQtDM Oberfläche erzeugen (1/) “Main Window” auswählen erzeugen EPICS Training @ PSI

  46. Eine caQtDM Oberfläche erzeugen (2/) EPICS Training @ PSI

  47. Eine caQtDM Oberfläche erzeugen (3/) MTRT1-TEMP:READ EPICS Training @ PSI

  48. Eine caQtDM Oberfläche erzeugen (4/) Temperature.ui EPICS Training @ PSI

  49. Eine Benutzeroberfläche starten • Zum Starten des Qt Designers:(neue Oberfläche erzeugen)dtdesigner & • Zum Starten einer existierenden Oberfläche (GUI):startDM <name>.ui & EPICS Training @ PSI

  50. Eine laufende caQtDM Oberfläche EPICS Training @ PSI

More Related