-
PLC Steuerung
via FESA
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 2
Inhalt
• PLC Aufbau & Einsatzgebiete
• IEPLC Framework vom CERN
• FESA Klasse für Kameraobjektive
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 3
PLC / SPS
PLC: Programmable Logic Controller
SPS: Speicherprogrammierbare Steuerung
!
Aufbau: CPU, Kommunikationsprozessor (optional) und I/O Module
(DAC, ADC, Relais, Regler, HMI für grafische Oberfläche)
Symbolbild (c) by Siemens
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 4
PLCs in der Strahldiagnose
• BIF System: Fesa 2.10 Klasse für Iris, Bildverstärker, LED,
Digital Outs, 6x an Unilac & TK
!
• Linosobjektive: Fesa 3, Iris und Focus, LED, Digital In, HTA,
HHT, HTP
!
• LEDs (Digital Outs) für Cryring, im Lab
!
• Pressluftantriebe: Bachelorarbeit, noch nicht in Fesa
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 5
BIF, Bilderverstärker & LEDs
PCaPAC 2010
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 6
IEPLC Framework
• Erstellt am CERN (Frank Locci, Stefano Magnoni)
• standardisierter Kommunikationsweg (nicht nur) für PLCs
• unterstützte Hardware: Siemens S7 300/400, Schneider,
Beckhoff, Rabbit Mikrocontroller, National Instruments
Hardware
!
• Sammlung von Programmen und Skripten (Python/C++)
• stellt C++ Library zur Kommunikation über Ethernet bereit
• generiert Sourcecode für die PLC
• NEU: generiert Fesaklasse mit passenden Datenfeldern und
Kommunikationsfunktionen
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 7
Vorgehensweise
1) Hardware anschaun
2) Equipment class
!
3) Mapping
!
4) Codegenerierung
!
5) FESA Klasse und PLC jeweils „ausprogrammieren“
!
6) Testen mit „Diagnostic Tool“ und Fesa Explorer
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 8
Vorgehensweise
Equipment class (Registerbeschreibung)
Mapping (welche Module/Programme sind
auf welcher PLC)
IEPLC Scripts
PLC Code !„Datenumschlagplatz“
FESA Klasse Datenfelder/Kommunikation/get&set
XML für Library (Registerbeschreibung)
orange = Benutzereingabe
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 9
Equipment class
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 10
Equipment class
!
Blöcke & Register
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 11
Mapping
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 12
Mapping
PLC Name
Klassen und Instanzen die auf dieser PLC laufen
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 13
Vorgehensweise
Equipment class (Registerbeschreibung)
Mapping (welche Module/Programme sind
auf welcher PLC)
IEPLC Scripts
PLC Code !„Datenumschlagplatz“
FESA Klasse Datenfelder/Kommunikation/get&set
XML für Library (Registerbeschreibung)
orange = Benutzereingabe
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 14
Test mit Diagnostic Tool
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 15
Vorgehensweise
IEPLC Scripts
PLC Code !„Datenumschlagplatz“
FESA Klasse Datenfelder/Kommunikation/get&set
XML für Library (Registerbeschreibung)
orange = Benutzereingabe
PLC Code Hardwareansteuerung
FESA Klasse GSI spezifische Felder hinzufügen
Init/Programmlogik
separates C++ Programm linkt Library, liest XML Registerbeschreibung
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 16
Klasse zur Objektivansteuerung
LinosMevisCm (Name des Objektivs)
!
• erstellt mit älterer IEPLC Version -> keine generierte
Fesaklasse
!
• steuert mehrere Hardwaremodule:
• Regler für Iris und Fokus (float Werte)
• LED zum Beleuchten der Kammer (bool bzw int)
• Digital In (im Moment unbenutzt)
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 17
LinosMevisCm Satellit
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 18
LinosMevisCm Satellit
Power Supply
Satelliten Controller ET 200M
3x Regler FM355C
Digital Out SM325
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 19
Settings (in „GUI Einheiten“)
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 20
CUPID
Slider
Slider
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 21
Experiment GUI an HTP
Eingabe als Spannung
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 22
Acquisition
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 23
Guru Acquisition
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 24
Fesaklasse
Singleton !
Init & Verbindung zur Hardware via IEPLC lib
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 25
Realtime Action
Wert von der PLC holen und in die FESA Datenfelder schreiben
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 26
Server Action
Wert an die PLC senden
Herausforderung: Repräsentation der Daten Float Wert als Integer Zahl 0.34071153 = 1079643694
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 27
Status und Zukunft
Status Quo
• läuft relativ stabil über Monate
• kann theoretisch von anderen Gruppen benutzt werden
!
ToDos
• Umstellung aller Instanzen auf 64bit Library
• noch keine Unterstützung für S7 1500 CPUs in IEPLC
• generierte Klasse + GSI FESA 3 testen
• IEPLC Framework selbst Updaten
• BIF auf neues IEPLC & FES 3.0 umziehen
-
28
Nothing can stop
automation
kthxbye
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 29
Backup
-
R. Haseitl, Beam Instrumentation PLC Steuerung via FESA 30
Guru Settings (Volt als Integer)