1 / 38

Loslegen mit EPICS Vortragsreihe auf Deutsch

Loslegen mit EPICS Vortragsreihe auf Deutsch. Einleitung Teil 2. Elke Zimoch Original von John Maclean 2004. Inhaltsübersicht. IOCs vorgestellt: Channel Access (CA) Record Datenbank Sequencer Gerätetreiber (Device Support) Die richtigen Werkzeuge auswählen

inez
Download Presentation

Loslegen mit EPICS Vortragsreihe auf Deutsch

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. Loslegen mit EPICSVortragsreihe auf Deutsch Einleitung Teil 2 Elke Zimoch Original von John Maclean 2004 Getting Started with EPICS Lecture Series Introductory Session II

  2. Inhaltsübersicht • IOCs vorgestellt: • Channel Access (CA) • Record Datenbank • Sequencer • Gerätetreiber (Device Support) • Die richtigen Werkzeuge auswählen • Wann benutzt man eine Datenbank • Wofür wird der Sequencer gebraucht? • Why write your own CA client program? • How fast is EPICS? • How to find more information • Virtual LINAC installation

  3. Client Software MEDM OAG Apps StripTool ALH TCL/TK Und viele andere … Perl Scripts IOC IOC IOC CAS CAS IOC CA Server Anwedungen Prozess Variablen Standard Form eines EPICS Kontrollsystems Output Channel Access Input IOC Software EPICS Datenbank Sequence Programme Eigene Programme Echtzeit Kontrolle Eigenbauten Kommerzielle Instrumente Technische Ausrüstung

  4. 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) or RTEMS PC, Betriebssystem Windows, Linux, RTEMS Apple, Betriebssystem OSX UNIX Workstation, Betriebssystem Solaris Hat normalerweise Input und/oder Output Geräte angeschlossen Ein EPICS Kontrollsystem besteht aus mindestend 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ür Input Output Controller IOCs vorgestellt

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

  6. CA Client Channel Access Workstation • Erlaubt es anderen Programmen (CA Clients) den Wert von Prozessvariablen auf einer IOC (CA Server) auszulesen und zu ändern • CA Clients können die Daten einer Process Variablen • Schreiben (Put) • Lesen (Get ) • Monitoren • IOCs sind sowohl CA Clients als auch CA Server. Sie können mit anderen IOCs interagieren • Ein CA Client kann Verbindung zu vielen Servern aufbauen • Ein CA Server kann viele Clients bedienen • Channel Access ist ein sehr effizientes und verlässliches Protrokoll Network CA Server IOC

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

  8. Sie bilden eine Schnittstelle zur Steuerung der Geräte Sie ermöglichen eine Verteilte Verarbeitung Sie ermöglichen einen externen Zugriff auf alle Prozess Informationen Sie benutzen universelle, bewährte Objekte (records) um Daten zu sammln, zu bearbeiten und zu verteilen Sie stellen einen universellen Werkzeugsatz zur Verfügung um Anwendungen zu entwickeln EPICS Datenbanken – Wofür sind sie gut?

  9. Ein Datensatz ist ein Object mit Einem einmaligen Namen Merkmalen (Feldern) die Informationen (Daten) enthalten Der Fähigkeit, mit diese Daten Aktionen durchzuführen Was ist ein Datensatz (Record)? XYZ1234 Angestellter: James Bond Dienstmarke : 007 Adresse : Whitehall, London Salär : £70070.07 Einmaliger Name Felder Daten

  10. Ein Record ist ein Objekt mit… Einem einmaligen Namen, z.B. ARIDI-PCT:CURRENT Kontrollierbaren Merkmalen (Feldern), z.B. EGU Einem Verhalten – festgelegt durch den Record-Typ Optional verknüpft mit Hardware I/O (device support) Links (Verbindungen) zu anderen Records Jedes Feld kann individuell über den Namen angesprochen werden Die Kombination aus einem Record Namen und dem Feld Namen ergibt den Namen eine Prozess Variablen (PV) Der Name einer Prozess Variablen ist das, was Channel Access benötigt um auf Daten zuzugreifen Was sind EPICS Records?

  11. Ein PV Name besteht aus zwei Teilen: Dem Record Namen und Dem Namen eines Feldes, das zu diesem Record gehört Zum Beispiel: Ein Prozess Variablen Name L1:water:temperature . 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 “L1:water:temperature” = “L1:water:temperature.VAL”

  12. 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 Was machen Records?

  13. Record-Typen können in vier Klassen eingeteilt werden: Input (von der Hardware zum Benutzer), z.B. Algorithmen/Steuerung, z.B. Output (vom Benutzer zur Hardware), z.B. Speziell entwickelte Typen, z.B. Record types • Analog In (AI) • Binary In (BI) • Calculation (CALC) • Subroutine (SUB) • Analog Out (AO) • Binary Out (BO) • Beam Position Monitor • Multi Channel Analyzer (MCA)

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

  15. Graphische Darstellung eines Records

  16. 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") }

  17. Eine Sammlung von mehreren EPICS Records , die verschiedene Typen haben können Records, die miteinander verknüpft sein können und als Bausteine für die Entwicklung von Anwendungen benutzt werden Eine Datei, die beim Booten in den Speicher der IOC geladen wird Channel Access kommuniziert mit dieser Kopie der Datenbank im Speicher der IOC EPICS Datenbank – Was ist das?

  18. Unsere erste Datenbank Channel Access Client ProcTemp .VAL = 51.5 .EGU = Grad C .STAT = MAJOR ProcTemp .VAL = 45.5 .EGU = Grad C .STAT = Normal Erzähl mir alles über ProcTemp IOC Channel Access Server Analog nach Digital Konverter Prozess Temperatur Sensor Database Analog In ProcTemp 51.5 Grad C 45.5 Grad C 45.5°C 5.15V 51.5°C 4.55V 132 bits 116 bits INP VAL EGU :Grad C EGUL: 0 EGUF: 100 Normaler Betrieb 5 - 50°C 0 – 100°C 0 – 10V 8 bit ADC 0 – 10V 0 – 255 bits HIGH: 51

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

  20. Sensor T1 Sensor T2 Database Processing ADC Analog In Datenbank L1:water:temp1 Binär I/O 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. Berechnung Binary out VAL INP L1:water:tempChk EGU: deg C L1:water:chillerCtl INPA DOL OUT INPB VAL C: 10 Kühler Analog In ADC CALC:( (A+B)/2 ) > C L1:water:temp2 SCAN: 10 second INP VAL EGU: deg C IOC

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

  22. Der Sequencer startet Programme in State Notation Language (SNL) SNL ist eine ‘C’ ähnliche Sprache, welche die Programmierung von Sequenzen vereinfacht Der SNL Quellcode muss compiliert werden Der Sequencer bietet eine Schnittstelle um EPICS in ein Echtzeit System zu integrieren Wozu braucht man so etwas: Um automatische Start-Sequenzen zu realieseren, z.B. für Vakuum oder RF Systeme Um in einen sicheren Zustand zu wechseln, zB. Automatische Abschaltungen Um automatische Kalibration von Geräten zu implementieren Der Sequencer

  23. SNL setzt State Transition Diagrams (STD) um State Transition Diagrams (STD) veranschaulichen die möglichen Übergänge des Systems aus einem Status in einen anderen Status A (State A) Transition (Übergang) von A nach B Event Aktion Status B (State B)

  24. Start STD Beispiel schlechtes Vakuum Druck > 5.1 uTorr Pumpe einschalten gutes Vakuum Druck < 4.9 uTorr Pumpe ausschalten

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

  26. Die Schnittstelle zwischen Datenbank und Hardware bilden Gerätetreiber (Device bzw. Driver Support) Beispiele für Hardware sind: VME Karten: ADC, DAC, Binary I/O u.s.w. Motor Steuerungen Oszilloskope SPS (PLC) Gerätetreiber (Device Support)

  27. Muss für “neue” Hardware normalerweise neu geschrieben werden Die gute Nachricht – normalerweise hat schon jemand einen Gerätetreiber für Dein Gerät geschrieben, oder für ein ähnliches Auf der EPICS Web Seite findet man eine Liste mit Hardware für die bereits ein Treiber existiert Oder man fragt die anderen EPICS Anwender Device Support (Gerätetreiber)

  28. Wann sollte man Datenbanken benutzen • Für Hardware Verbindungen • Für Echtzeit Anforderungen (keine Netzwerk Verzögerungen) • Immer, wenn eine Datenbank gut genug ist (Geschmacks Sache)

  29. Wann sollte man den Sequencer benutzen? • Für komplexe Übergänge zwischen Zuständen und komplexe Sequenzen • z.B. parken und aktivieren eines Teleskopspiegels Photograph courtesy of the Gemini Telescopes project

  30. Um mit dem Kontrollsystem zu interagieren: Vieles existiert bereits – MEDM, ALH, Strip Tool, archiver u.s.w. Zur Datenanalyse oder Darstellung Zur Überwachung der Abläufe Zum Beispiel um einen Beschleuniger zu betreiben Wann sollte man CA Clients benutzen?

  31. Wie schnell ist EPICS? • EPICS kann schnell oder langsam sein, je nachdem, wie es benutzt wird! • Es sollte immer das geeignete Werkzeug für eine Problem benutzt werden: Datenbank, Sequencer, spezielle Programme auf der IOC oder spezielle Client Programme • Letztendlichhängt die Geschwindigkeit von der Hardware ab • Ein paar Benchmarks*: *durchgeführt von Steve Hunt (PSI) **Extrapolier von Test durchgeführt von L.Hoff (BNL) Datenbank Design und periodisches Prozessieren beeinflussen die sichtbare Geschwindigkeit

  32. jetzt prozessieren Sensor T1 jetzt prozessieren Sensor T2 Sichtbare Leistung ADC Datenbank Analog In jetzt prozessieren L1:water:temp1 Binär I/O 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. Berechnung An Aus Binary out VAL INP L1:water:tempChk EGU: deg C L1:water:chillerCtl INPA 12 DOL OUT INPB VAL 14 SCAN: 10 second C: 10 Kühler Analog In ADC CALC:( (A+B)/2 ) > C 1 L1:water:temp2 SCAN: 10 second INP VAL EGU: deg C IOC

  33. 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 Die EPICS Web Seite

  34. Auf Linux, Solaris, Mac OSX Die CD einlegen Die CD mounten (wenn dies nicht automatisch geschieht) Das Programm setup.sh von der CD starten In das Installationsverzeichnis wechseln (cd) Mit dem Programm start.sh sowohl das medm Fenster als auch die IOC des virtuellen LINAC starten Oder die verschiedenen Dinge individuell mit den mitgelieferten Programmen starten Wie man den virtuellen LINAC installiert

  35. Achtung: Es muss das Programm Exceed V7.0 oder später installiert sein Die CD einlegen Wenn autorun eingeschaltet ist, erscheint ein Fenster mit Anweisungen, wenn nicht, sollte die Datei ‘WIN32/README.HTM’ (auf der CD) mit einem Browser geöffnet werden Wie man den virtuellen LINAC installiert - Windows • Die Erweiterungen (Extensions) werden von der CD mit dem Programm ‘WIN32/EPICSEX39ISETUP.EXE’ installiert • Der virtuelle LINAC wird von der CD mit dem Programm ‘WIN32/VIRTUALLINACSETUP.EXE’ installliert • Die Icons der Programme erscheinen dann auf dem Desktop und im Startmenu • ‘MEDM Virtual Linac’ startet das medm Fenster • ‘Start Virtual Linac’startet die IOC des virtuellen LINAC

  36. Die CD Image Datei und die Versionen für die verschiedenen Betriebssysteme können von folgender Webseite herunter geladen werden http://www.aps.anl.gov/epics/download/examples/index.php Achtung, die CD Image Datei hat image Format. Das bedeutet, man braucht einen Befehl wie zum Beispiel “Create CD from image file” im Brennprogramm unter Windows um die CD zu erzeugen. Wenn man die CD nicht hat

  37. Input Output Controllers (IOCs) sind ein fundamentaler Teil eines EPICS Kontrollsystems Die Datenbank ist ein elementares Hilfsmittel um einer IOC mitzuteilen, was sie tun soll Eine EPICS Datenbank besteht aus Records, deren Konfiguration die Funktion der Anwendung bestimmt Channel Access ist ein Netzwerk Protokoll, mit dem die Verbindung zu Record Feldern hergestellt wird Sequencer Programme können eingesetzt werden um komplexe Operationen der Reihe nach auszuführen Gerätetreiber (Device Support) erlauben er den Records mit der Hardware zu interagieren EPICS ist schnell, kann aber langsam wirken, wenn es ineffizeint eigesetzt wird Zusammenfassung

  38. John Maclean (APS-BCDA) Andrew Johnson (APS-Controls) Bob Dalesio (LANL) Deb Kerstiens (LANL) Rozelle Wright (LANL) Danksagung

More Related