Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Loslegen mit EPICS Vortragsreihe auf Deutsch

Ähnliche Präsentationen


Präsentation zum Thema: "Loslegen mit EPICS Vortragsreihe auf Deutsch"—  Präsentation transkript:

1 Loslegen mit EPICS Vortragsreihe auf Deutsch
3/28/2017 Loslegen mit EPICS Vortragsreihe auf Deutsch Einleitung Teil 2 Elke Zimoch Original von John Maclean 2004 Getting Started with EPICS Lecture Series Introductory Session II Test

2 Inhaltsübersicht IOCs vorgestellt: Channel Access (CA)
3/28/2017 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 Test

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

4 IOCs vorgestellt IOC steht für
3/28/2017 IOCs vorgestellt IOC steht für Input Output Controller 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 Test

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

6 Channel Access 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 Workstation CA Client Network CA Server IOC

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

8 EPICS Datenbanken – Wofür sind sie gut?
3/28/2017 EPICS Datenbanken – Wofür sind sie gut? 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 Test

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

10 Was sind EPICS Records? Ein Record ist ein Objekt mit…
3/28/2017 Was sind EPICS Records? 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 Test

11 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: 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 Was machen Records? Records sind aktiv, sie tun Dinge:
3/28/2017 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 Test

13 Record types Record-Typen können in vier Klassen eingeteilt werden:
3/28/2017 Record types 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. Analog In (AI) Binary In (BI) Calculation (CALC) Subroutine (SUB) Analog Out (AO) Binary Out (BO) Beam Position Monitor Multi Channel Analyzer (MCA) Test

14 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

15 Graphische Darstellung eines Records
3/28/2017 Graphische Darstellung eines Records Test

16 Ein Record aus Sicht der IOC
3/28/2017 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") } Test

17 EPICS Datenbank – Was ist das?
3/28/2017 EPICS Datenbank – Was ist das? 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 Test

18 Unsere erste Datenbank
Channel Access Client ProcTemp .VAL = 45.5 .EGU = Grad C .STAT = Normal ProcTemp .VAL = 51.5 .EGU = Grad C .STAT = MAJOR Erzähl mir alles über ProcTemp IOC Channel Access Server Prozess Temperatur Sensor Analog nach Digital Konverter Database Analog In ProcTemp 45.5 Grad C 51.5 Grad C 45.5°C 51.5°C 5.15V 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?
3/28/2017 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) Test

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

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

22 3/28/2017 Der Sequencer 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 Test

23 SNL setzt State Transition Diagrams (STD) um
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 STD Beispiel Start schlechtes Vakuum Druck > 5.1 uTorr
Pumpe einschalten gutes Vakuum Druck < 4.9 uTorr Pumpe ausschalten

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

26 Gerätetreiber (Device Support)
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)

27 Device Support (Gerätetreiber)
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

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) Vorteile Nachteile Vereinfacht Hardware Verbindungen … wenn man einen Gerätetreiber hat Konfiguration statt Programmierung … wenn man verstanden hat, wie eine Datenbank arbeitet Datenbanken können von anderen EPICS Entwicklern leicht verstanden werden Geschwindigkeit

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 Wann sollte man CA Clients benutzen?
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

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*: Machine OS CPU Speed Rec/sec %CPU MVME167 vxWorks 68040 33MHz 6000 50 MVME 2306 PPC604 300MHz 10000 10 MVME5100 PPC750 450MHz 40000** 10** PC Linux P4 2.4GHz 50000 9 *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 Sichtbare Leistung Problem:
3/28/2017 Sichtbare Leistung ADC Datenbank Analog In Sensor T1 jetzt prozessieren jetzt prozessieren L1:water:temp1 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. Binär I/O Berechnung Aus An INP VAL Binary out L1:water:tempChk EGU: deg C L1:water:chillerCtl INPA 12 INPB VAL DOL OUT 14 jetzt prozessieren C: SCAN: 10 second ADC Analog In Kühler CALC: ( (A+B)/2 ) > C L1:water:temp2 SCAN: 10 second 1 T2 Sensor INP VAL EGU: deg C IOC Test

33 http://www.aps.anl.gov/epics 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)

34 Wie man den virtuellen LINAC installiert
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

35 Wie man den virtuellen LINAC installiert - Windows
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 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 Wenn man die CD nicht hat
Die CD Image Datei und die Versionen für die verschiedenen Betriebssysteme können von folgender Webseite herunter geladen werden 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.

37 Zusammenfassung 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

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


Herunterladen ppt "Loslegen mit EPICS Vortragsreihe auf Deutsch"

Ähnliche Präsentationen


Google-Anzeigen