470 likes | 592 Views
Loslegen mit EPICS Vortragsreihe auf Deutsch. Einleitung Teil 1. Elke Zimoch Original von Ned Arnold 2004.
E N D
Loslegen mit EPICSVortragsreihe auf Deutsch Einleitung Teil 1 Elke Zimoch Original von Ned Arnold 2004 Getting Started with EPICS Lecture Series Introductory Session I
Zwei Kontrollgruppen des Argon National Laboratory haben im Jahr 2004 die Vortragsreihe “Getting Started with EPICS” entwickelt. Im Dezember des Jahres entstand auf dem EPICS Workshop in Japan die Idee, diese Vortragsreihe ganz oder teilweise zu übersetzten. Daraus ist die deutsche Version “Loslegen mit EPICS” entstanden. Die Vortragsreihe umfasst die folgenden Themen: Einleitungen zu EPICS Getting Started with Using EPICS Tools Getting Started with Developing EPICS Tools Getting Started with Input/Output Controllers Applications/Special Topics Loslegen mit EPICS
Inhalt Was ist EPICS Wie arbeitet EPICS Ein kleines EPICS Wörterbuch Einführung in die Anwendung des “Virtual LINAC” Einleitung Teil 1
Eine Kollaboration Eine Kontrollsystem Architektur Eine Software Werkzeugsammlung Was ist EPICS?
1989 begann die Zusammenarbeit von LANL/GTA und ANL/APS (Bob Dalesio & Marty Kraimer) Über 150 Lizenzen wurden vergeben, bevor EPICS zur freien Software (Open Source) wurde Ein Beispiel: Der EPICS Workshop 2004 in Santa Fe über 100 Teilnehmer von 34 Institutionen über 75 Presentationen in drei Tagen Tägliche Zusammenarbeit: die Maillisten “Tech Talk” etc. Der Einsatz für die Kollaboration ist verschieden Hilfe bei Fehlersuche Veröffentlichung von Werkzeugen, Systemen und Beratung Was ist EPICS? – Eine Kollaboration LANL: Los Alamos National Laboratory GTA: Ground Test Accelerator ANL: Argonne National Laboratory APS: Advanced Photon Source
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 (SLS) in Villigen, Schweiz KEK in Tsukuba, Japan DIAMOND Light Source (Rutherford Appleton Laboratory) in Oxfordshire, England The Australian Synchrotron (AusSy) in Melbourne, Australien Was ist EPICS? – Eine Kollaboration
Eine Kollaboration Eine Kontrollsystem Architektur Eine Software Werkzeugsammlung Was ist EPICS?
Netzwerkbasiertes Client/Server Modell (daher das EPICS Logo) Was ist EPICS? - Eine Kontrollsystem Architektur EPICS 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
Was ist EPICS? - Eine Kontrollsystem Architektur • Channel Access Clients (CAC) sind Programme, die den Zugriff auf diese Prozess Variablen für ihre Ausführung benötigen StripTool MEDM CAC CAC • Der “Dienst”, den Channel Access Server (CAS) anbieten, ist Zugriff auf eine sogenannte Prozess Variable* CAS CAS Prozess Variablen Prozess Variablen * Eine Prozess Variable (PV) ist ein Datensatz mit einem Namen
Eine Prozess Variable (PV) ist ein Datensatz mit einem Namen, zum Beispiel ein Setzwert, ein Rücklesewert, ein Status, ein Parameter usw. Beispiele von PV Namen und Werten: ARIDI-PCT:CURRENT 320 mA X10SA-OP-SH1:SIZE-SET5 mm BOOSTER:gateValvePosition ‘OPEN’ S3:DIPOLE:PS:setPoint 123.4 Amps APS:Mode‘Stored Beam’ BL3:HISTOGRAM {3, 8, 1, 2, 56, 44, 32, 43, 3, 5, 1} Die Namen sind im Prinzip willkürlich und folgen in jedem Institut einer anderen Namenskonvention Was ist EPICS? - Eine Kontrollsystem Architektur SLS APS
Eine Prozess Variable ist ein Datensatz mit einem Namen und Attributen Beispiele für Attribute: Alarm Severity = Wichtigkeit eines Fehlerzustandes (NO_ALARM, MINOR, MAJOR, INVALID) Alarm Status = Grund für einen Fehlerzustand (z.B. READ_error) Zeitstempel (Wann wurde der Wert gesetzt) Anzahl der Werte (array) Normaler Betriebsbereich Begrenzung der Werte Engineering Unit = Einheit (z.B. mA, mm, MW) Was ist EPICS? - 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 Prozess Variablen CAS CAS CAS CAS Prozess Variablen Process Variables Process Variables Prozess Variablen CAS CAS Process Variables Prozess Variablen Was ist EPICS? - Eine Kontrollsystem Architektur EPICS Datenbank
Normalerweise sind Channel Access Verbindungen auf ein Subnetz beschränkt, aber man kann über Konfigurationen einstellen, dass die Verbindungen auch weitreichender sind. Physikalische Hirarchien können durch den Einsatz von Gateways aufgebaut werden. Was ist EPICS? - Eine Kontrollsystem Architektur Gateway
Eine Kollaboration Eine Kontrollsystem Architektur Eine Software Werkzeugsammlung Was ist EPICS?
Was ist EPICS? - Eine Software Werkzeugsammlung Mein spezielles Daten- erfassungs- programm • Jedes Programm und jede Anwendung, die mit dem Channel Access Protokoll arbeitet, kann man als “EPICS verträglich” bezeichnen. StripTool MEDM CAC CAC CAC • Man kann EPICS als eine Werkzeugsammlung betrachten, die aus allen EPICS verträglichen Programmen besteht. Jeder kann sich das Werkzeug aussuchen, das am besten zur Aufgabenstelllung passt, oder auch ein eigenes entwickeln. CAS CAS CAC CAS CAC Meine Beschleuniger Simmulation (PVs) iocCore (PVs) LabView (PVs)
Eine Kollaboration Eine weltweite Kollaboration, die Designs, Software Werkzeuge und Erfahrungen zur Entwicklung von Kontrollsystemen für Grossanlagen untereinander austauscht Eine Kontrollsystem Architektur Ein Client/Server Modell mit einem effizienten Kommunikationsprotokoll (Channel Access) für den Austausch einfacher Daten Eine verteilte Echtzeit-Datenbank der Maschinenwerte Eine Software Werkzeugsammlung Eine Sammlung von gemeinschaftlich entwickelten Software Werkzeugen zum Aufbau eines verständlichen und erweiterbaren Kontrollsystems Was ist EPICS? – Eine Zusammenfassung
Inhalt Was ist EPICS Wie arbeitet EPICS Ein kleines EPICS Wörterbuch Einführung in die Anwendung des “Virtual LINAC” Einleitung Teil 1
Fernsteuerung und Überwachung von technischer Ausrüstung Daten-Konvertierung und -Filterung Regelschleifen Zugriffsüberwachung Beschränkung der Betriebszustände Fehler-Erfassung/-Meldung/-Aufzeichnung Daten-Archivierung/-Darstellung Automatisierung von Abläufen Modellierung/Simulation Speichern und Laden von komplexen Betriebszuständen Datenerfassung Datenanalyse Was kann EPICS leisten?
Wie macht EPICS das? 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
Wo wird was gemacht? Fernsteuerung und Überwachung Beschränkung der Betriebszustände Automatisierung von Abläufen Modellierung & Simulation Fehler-Meldung & Aufzeichnung Daten-Archivierung/-Darstellung Konfiguration der Betriebszustände Regelschleifen 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 Beschränkung der Betriebszustände Automatisierung von Abläufen Zugriffsüberwachung Fehler-Erfassung Regelschleifen Daten-Konvertierung und -Filterung Daten-Archivierung iocCore Beam Position Monitor Computer Schnittstelle Vakuum Sonde Maschine Computer Schnittstelle
Client Software MEDM OAG Apps StripTool ALH TCL/TK Und viele andere … Perl Scripts IOC IOC IOC CAS IOC Software IOC CAS EPICS Datenbank Sequence Programme Eigene Programme Echtzeit Kontrolle CA Server Anwedungen Prozess Variablen Standard Form eines EPICS Kontrollsystems Output Channel Access Input Eigenbauten Kommerzielle Instrumente Technische Ausrüstung
IOC IOC IOC CAS IOC CAS Eigenbauten Kommerzielle Instrumente Technische Ausrüstung Typische Umsetzung eines EPICS Kontrollsystems
IOC IOC IOC CAS IOC CAS Eigenbauten Kommerzielle Instrumente Technische Ausrüstung Typische Umsetzung eines EPICS Kontrollsystems Desktop Laptop Die meisten CAS Anwednungen basieren auf Unix/Linux oder Windows Die meisten IOCs basieren auf vxWorks (meistens VME)
IOC IOC IOC CAS IOC CAS Eigenbauten Kommerzielle Instrumente Technische Ausrüstung Typische Umsetzung eines EPICS Kontrollsystems • Mit dem EPICS Release 3.14 wurden die Beschränkungen für das Betriebssystem von iocCore abgeschafft. RTEMS vxWorks
IOC IOC IOC CAS IOC CAS Eigenbauten Kommerzielle Instrumente Technische Ausrüstung Typische Umsetzung eines EPICS Kontrollsystems • Zeiten ändern sich: Ansteuerung eines Motors mit EPICS • circa 2002 • circa 1995
IOC IOC IOC CAS IOC Software IOC CAS EPICS Datenbank Sequence Programme Eigene Programme Echtzeit Kontrolle CA Server Anwedungen Prozess Variablen Standard Form eines EPICS Kontrollsystems Client Software MEDM OAG Apps StripTool ALH TCL/TK Und viele andere … Perl Scripts Output Channel Access Input Eigenbauten Kommerzielle Instrumente Technische Ausrüstung
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 ... Unabhängige CA Clients (von der EPICS Website - unvollständig)
Client Software MEDM OAG Apps StripTool ALH TCL/TK Und viele andere … Perl Scripts IOC IOC IOC CAS IOC Software IOC CAS EPICS Datenbank Sequence Programme Eigene Programme Echtzeit Kontrolle CA Server Anwedungen Prozess Variablen Standard Form eines EPICS Kontrollsystems Output Channel Access Input Eigenbauten Kommerzielle Instrumente Technische Ausrüstung
CA Server CA Client Channel Access auf einer Folie • “connection request” oder “search request” • “get” oder • “caGet” • “put” oder • “caPut” • “set a monitor” Wer hat eine PV mit dem Namen S1A:H1:CurrentAO ? Benachichtige mich, wenn sich der Wert ändert Ändere den Wert auf 30.5 AMPS Was ist ihr Wert? Channel Access Client Channel Access Server 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 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 Sie sind nicht berechtigt diesen Wert zu ändern. • oder
Hauptmerkmale von Channel Access … • Clients broadcast (=Meldung an alle) PV Namen um den Server zu finden, auf dem sie existieren • Channel Access Security kann eingesetzt werden um den Zugriff auf Prozess Variablen zu begrenzen • Clients können auf die Meldung ‘put request ‘ warten, bevor sie weiterarbeiten • Clients können Monitore (‘set monitors’) auf PVs setzten und werden dann über Änderungen der Werte informiert
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
IOC Software auf einer Folie Network (Channel Access) [IOC Software] EPICS “iocCore” Dienste und Programme [von EPICS mitgeliefert] Anwendungsspezifische Datenbank [aus Records] Anwendungs- spezifische Programme [z.B. State Notation Language] Record Record Record Record Record Record Record Record Record Record Record Record Record Record Record Record Treiber (=Device/Driver Support)[von EPICS mitgeliefert/erweiterbar] Neue Treiber (Device Support) “Unterstützte” Instrumente “Unterstützte” Instrumente “Neue” Ausrüstung “Unterstützte” Instrumente mitgeliefert Notwendig Optional
Es gibt zwei wesentliche Andwendungsabhängige Komponenten: Die Echtzeitdatenbank bestehend aus Records (notwendig) State Notation Language (SNL) Programme, um Status basierte Abläufe umzusetzen (optional) Maschinenstatus, Informationen und Kontrollparameter werden durch sogenannte “Records” in der anwendungsspezifischen Datenbank definiert. Die Daten innerhalb eines Records sind über Prozess Variablen zugänglich. Records sind mit bestimmten Funktionalitäten verknüpft (Skalierung, Filtern, Fehlererkennung, Berechnungen, usw). Es gibt unterschiedliche Record-Typen mit unterschiedlichen Funktionen und Einsatzmöglichkeiten. Records sind häufig mit Ein-/Ausgabe Geräten verbunden, die über “Device Support” (Treiber) angesteuert werden. Hauptmerkmale der IOC Software …
Client Software MEDM OAG Apps StripTool ALH TCL/TK Und viele andere … Perl Scripts IOC IOC IOC CAS IOC Software CAS IOC EPICS Datenbank Sequence Programme Eigene Programme Echtzeit Kontrolle Standard Form eines EPICS Kontrollsystems Output Channel Access Input Eigenbauten Kommerzielle Instrumente CA Server Anwedungen Technische Ausrüstung Prozess Variablen
IOC Core PV Gateway CA Server Interface to LabVIEW CA Server Schnittstelle zu PC Bilderfassungs-Systemen Häufig benutzte CA Server Anwendungen Gateway CAC CAS CAS CAC (PVs) LabVIEW CAS CAC (PVs) PC Bild- erfassung
Es ist umsonst Es ist Open Source (Quellcode ist zugänglich) Es gibt eine Menge Leute, die es benutzen Alles was ein Client wissen muss um auf die Daten zuzugreifen ist der PV Name Man kann unter den besten Werkzeuge auswählen … … oder seine eigenen schreiben Der langweilige Teil ist schon gemacht Es gibt bereits eine Menge Erfahrungen in verschiedenen Instituten Eine gute Erweiterung findet internationale Aufmerksamkeit Es ist egal, ob man 10 oder 10 Millionen PVs braucht (beliebig skalierbar) Zehn wirklich nette Tatsachen über EPICS
Inhalt Was ist EPICS Wie arbeitet EPICS Ein kleines EPICS Wörterbuch Einführung in die Anwendung des “Virtual LINAC” Einleitung Teil 1
EPICS Experimental Physics and Industrial Control System Channel Access Das Kommunikations-Protokoll von EPICS Prozess Variable (PV) Ein Datensatz mit einem Namen, der über diesen Namen angesprochen wird Die Basis-Dateneinheit des Channel Access Protokolls Wörterbuch
Channel [oder Kanal] Ein Synonym für Prozess Variable Channel Access Server Software, die Zugriffe über Channel Access auf Prozess Variablen zur Verfügung stellt Vereinfacht: Software, die Records erzeugt Channel Access Client Software, die über Channel Access auf Prozess Variablen zugreift Wörterbuch
IOC – Input Output Controller Ein Computer auf dem iocCore läuft. Das ist eine Sammlung von EPICS Routinen, die benutzt werden um Prozess Variablen zu definieren und Echtzeit Algorithmen zu implementieren. iocCore benutzt Records um Prozess Variablen und ihr Verhalten zu definieren Soft IOC Ein Computer (häufig ein PC), auf dem nicht ausschliesslich iocCore läuft oder laufen kann. Häufig wird wird mit einer IOC ein VME-Rechner gemeint, während eine SoftIOC meistens ein PC ist. Wörterbuch
Record Der Mechanismus, mit dem Prozess Variablen von iocCore definiert werden (auf einer IOC) Es existieren dutzende von verschiedenen Record-Typen, jeweils mit eigenen Attributen (Feldern) und einer eigenen Funktionalität Vorsicht: Die Begriffe Record, Channel oder Kanal, sowie Prozess Variable werden im täglichen Sprachgebrauch häufig synonym benutzt, obwohl sie nicht genau das gleiche meinen: Beispiel: Record Strom PVs, Channel: Attribut: EGU Strom.EGU Attribut: VAL Strom.VAL Wörterbuch
Versteht das neue Gerät [EPICS, Channel Access]? Gibt es bereits ein EPICS Werkzeug, das [was_auch_immer] macht? Was ist der PV Name von [igendeinem_Gerät]? Gibt es einen EPICS Treiber für [das_Gerät_das_ich_nutzen_will]? Welche Computer Typen und Betriebssysteme werden genutzt? Welche Funktionen sollen zur Verfügung stehen? In einem Client? In einer IOC? In einer eigenen CAS Anwendung? Warum kann mein CA Client die PV auf einem CA Server in einem anderen Subnetz nicht finden? Einige Fragen, die man stellen sollte …
Inhalt Was ist EPICS Wie arbeitet EPICS Ein kleines EPICS Wörterbuch Einführung in die Anwendung des “Virtual LINAC” Einleitung Teil 1
Eine vorkonfigurierte EPICS Anwendung, die auf jedem Rechner installiert werden kann: zum Üben, zum Testen, zum Spielen … Alles wird auf dem gleichen Rechner (z.B. einem Office PC) installiert. Die Virtual LINAC Anwendung Mein spezielles Daten- erfassungs- programm StripTool MEDM OAG Tools CAC CAC CAC CAC Installierbar auf: Solaris Workstation LINUX PC CAS CAC IOC Anwendung vlinac PVs MAC Windows PC
Die Virtual LINAC Anwendung Der LINAC: Die Elektronen, die in einem Speicherring umlaufen, werden häufig in Linearbeschleunigern (= Linear Accelerator oder Linac) erzeugt. Die eigentliche Erzeugung der Elektronen geschieht mit einer Glühkathode in der “Electron Gun”. Danach werden sie durch sogenannte “Accelerating Cavities” beschleunigt. Da Elektronen geladene Teilchen sind, können sie durch Elektromagneten durch die enge Vakuum Kammer geleitet werden. Natürlich gehen die Elektronen verloren, wenn sie durch falsch eingestellte Magnete auf die Kammerwand gelenkt werden. Der Operateur: Vom Kontrollraum aus kann der Operateur die Beschleunigeranlage steuern und überwachen. In dieser Simulation muss der Operateur die Temperatur der Electron Gun einstellen, die Positon des Elektronenstrahls in der Vakuumkammer überwachen, den Strom der Korrekturmagnete regeln und ein Vakuum-Ventil kontrollieren. Die Herausforderung: Die einzelnen Schritte auf der nächsten Folie beschreiben, wie man Elektronen erfolgreich virtuell erzeugen und bis zum Ende des Linac transportieren kann.
Die Virtual LINAC Anwendung Schritt 7: RESET macht den Linac für den nächsten Operateur oder den nächsten Versuch bereit. Schritt 1: Den blauen Slider benutzen um die Kathode zu heizen, bis die Temperatur im gewünschten Bereich liegt (die Anzeige wird grün). Schritt 6: Die übrigen Korrekturmagnet müssen ebenfalls richtig eingestellt werden, um den Strahl bis zum Ende zu transportieren. Der Strahlstrom wird am Ende mit einem so genannten “Faraday Cup” (FC1) gemessen. Durch leichte Variation der Magnetströme kann der Strom maximiert werden (15 mA sind sehr gut!). Schritt 2: “Beam On” drücken, um die Elektronen in den Linac zu schicken. Schritt 5: Das Vakuum-Ventil muss geöffnet werden um die Elektronen durch zu lassen. Schritt 3: Die Ströme der Korrekturmagneten (H1 und V1) müssen so eingeregelt werden, dass die horizontale (X) und vertikale (Y) Position des Elektronenstrahls kleiner als 1mm wird. Die Positionen werden in dem Diagramm dargestellt: Blau ist X und Braun ist Y. Die rote Linie repräsentiert die Anzahl der Elektronen. Schritt 4: Noch mehr Korrektur- magnete… HILFE für Frustrierte: Aufgegeben? Der Kopf “Auto-Start” lässt den Computer die Arbeit übernehmen.