Title: Neues vom CSFramework
1Neues vom CS-Framework
- Motivation
- Grundlagen
- Entwicklungen der letzten Jahre
- Status und Ausblick
2Definition of "Framework"
- Wikipedia "A software framework is a reusable
design for a software system. ... (It) may
include support programs, code libraries, a
scripting language, or other software to help
develop and glue together the different
components of a software project..." - freie Übersetzung "Ein Software Framework ist
ein wieder verwertbares Design für ein Software
system. ... (Es) kann Hilfsprogramme,
Code-Bibliotheken, ein Scripting-Werkzeug und
andere Software enthalten, die es erlauben,
verschiedene Komponenten für ein konkretes
Softwareprojekt zu entwickeln und
zusammenzufügen."
3Why Frameworks for Control Systems
- standardization of code
- re-usability of software components
- maintainability of software components
- ...
- flexibility
- exchange of hardware during run-time
- add/remove hardware during run-time
- change operational states on-the-fly
- ...
- common solutions
- same look and feel at different experiments
- ease transfer of know-how
- ...
4Definition of the CS framework
Ansatz
"Three-layer architecture"
- optional usage of sequencers ( sequences of
commands) - optional usage of state machines ( states and
actions) - optional GUIs on the device level
- optional interfaces to control systems of
accelerator and DAQ - standardization via a framework, here
ControlSystem framework - ? Main emphasis device control, not process
control
5Definition of the CS framework
- control system framework add-ons
add-ons may become part of framework
bug reports, new features requested
experiment
EE/KS and contributors
bug fixes, new features, maintenance
6Different Points of View A Framework is...
- Developer
User - ... a tool box
... something ready to use - (sth. to solve a problem)
without additional work -
( the solution!)
7Cooking Recipe for the CS Framework
- One development tool ? LabVIEW
- Standardization ? object oriented approach
- Distribution to many nodes ? DIM
(www.cern.ch/dim) - Event driven communication for everything
- Scaling to large systems by distribution
- Remote access
-
- SCADA functionality (alarming, trending, ) ?
LabVIEW DSC module
8LabVIEW is...
- ...just another programming language.
- graphical programming instead of text based
programming - dataflow paradigm
- ...an enormous collection of tools and libraries.
9Object Orientation (OO) with CS
- "BaseClass" provides basic functionality
(communication layer, active threads, ...) - "DeviceClass" adds functionality according to
specs of device type "DS345". - Instantiation one object per device
"BaseClass"
inheritance
"Device Class"
AFG3
AFG1
AFG2
- of course classes for GUIs, Sequencer, State
machines, ... - OO implemented by CS using pure LabVIEW (no LVOOP)
10Example for a Simple Control System
11Developments During the Past Years
- project management
- CS as Open Source Project on SourceForge
- CS Wiki-Page _at_ GSI
- source code control using Subversion
- DIM as communication layer
- Domain Management System for process management
- CS for different operating systems (Windows,
Linux, Pharlap) - reservation mechanisms for sub-systems
- device base classes
- configuration database
- stability and performance
12CS-Wiki _at_ GSI
13Statistics from SourceForge
- among top 1 of SourceForge projects
- gt 800 downloads of CSMain
- 29 packages (of 2 maintainers)
- 42 (open 3) bugs
- 30 (open 1) feature requests
- 16 (open 2) patches
- 3 feature requests
- 8 developers
14Distributing CS
- developer source code control via Subversion at
GSI - user packages on SourceForge (Unpackager)
- dependency/conflict checking
- package checking
- installing packages
- removing packages
- downloading packages
- ...
- "three-click installation"
15Communication Layer DIM
- Distributed Information Management
www.cern.ch/dim - originally developed at DELPHI_at_LEP/CERN around
1991 - available for a multitude of platforms and
languages - light-weight, aiming at high performance, based
on TCP/IP - today "backbone" of control systems for LHC
experiments - concept named services, peer-to-peer connections
DIM name server (negotiates connections)
DIM client 1
command "iii"
DIM server A
service "i"
DIM server B
DIM client 2
service "ii"
16DIM-LabVIEW Performance
17Domain Management System Process Management in
a Distributed Environment
18Example DMSViewer
19Device Base Classes Motivation
- Standardization of parameters for
- events (command pattern, "call process")
- services (publisher-subscriber pattern, status
info) - "Standard" defined by device model
- arbitrary function generator
- power supply
- motor
- ...
- Allows exchange of different hardware device
types of the same device model - Requires only one GUI for all classes of the same
class model - Defines interface/behavior for programming a
device class
20Class Hierarchy
BaseProcess
DeviceBase
BaseGUI
PSChannelBase
PSChannelBaseGUI
SimPowerSupply
21PSChannelBaseGUI Class (user view)
- available via double-click in "GOG"
- one instance per power supply object
- one GUI class for all classes inheriting from the
PSChannelBaseClass
22Configuration versus Programming
- create objects during run-time
- identical binaries for different experiments
possible - application characterized by configuration
- configuration data base
- presently using MS-Access
- device interfaces, bus-addresses,...
- access via TCP/IP
- settings "database"
- typically as XML files
- ...
23Testing Stability and Performance
- dedicated set-up including hardware for testing
- long term stability (months...)
- interoperability of different versions
- stress situations
- performance
- ...
24Experiments using the CS framework...
- require high flexibility
- have a large variety of hardware types
- have up to 10,000 (1M possible) process variables
- require fast (? 100 ns) timing control using
dedicated hardware
RISING
ClusterTRAP
LPT
GSI, Germany Mainz, Germany Greifswald,
Germany CERN, Switzerland MSU, USA Lanzhou, China
TrigaTRAP
25Conclusion and Outlook
- CS 3.10 released for LV8.2.1.
- about 10-15 active applications
- 1,000,000 PVs demonstrated, an even larger number
should be feasible - 5,000 objects (? hardware devices) demonstrated,
an even larger number should be feasible - stability of a distributed CS system is better
than a few hundred hours of continuous operation - about 15 (60) hardware devices supported on
SourceForge (Subversion) - FAIR MATS and parts of HITRAP have selected CS
as control system framework. NUSTAR? PANDA?
26Acknowledgements...
- Holger Brand, Dietrich Beck, Alexander Schwinn,
Falk Ziegler, Romain Savreux, Chabouh Yazidjian,
Klaus Blaum, Dennis Neidherr, Melanie Wolf,
Stefan Schwarz, Josh Savory, Stefan Götte,
Maximilian Kugler, Tobias Habermann, Michael
Block, Frank Herfurth, Christian Rauth, Stephen
Koszudowski, Manas Mukherjee, Thomas Rechel, ...,
IT_at_GSI, ...
27Event basics
- an entity waits for the next event, no polling!
- timeout handling is an important issue
observer pattern "one-to-many"
command pattern "many-to-one"
client
client
client
publisher
data
command
subscriber
subscriber
subscriber
receiver
example radio, television added in CS 3.0
example typical human communication sole
possibility for CS lt 3.0