Download presentation
Presentation is loading. Please wait.
Published byLambert Hancock Modified over 9 years ago
1
Jeffrey Hill
2
LANSCE Requirements – a Review EPICS Paradigm Shift – a Review Status – What is Implemented What is an Abstract Data Type? Benefits of Abstract Types A New EPICS Database Field Type for Abstract Data LANSCE Schedule Conclusion
3
LANSCE, a versatile machine – Originally producing H+, H-, and polarized H- Each with different intensities, duty factors, and even energies – depending on experimental and medical isotope production needs LANSCE timing and flavoring of data – Flavoring Selection based on - logical combinatorial of beam gates – Timing Selection based on - time window sampling Many permutations – Too many to, a-priori, install records for all of them – Subscription update filtering is needed
4
Distributed Control Data Acquisition Physics Control Open Source Vendor Neutral OS Neutral Small Footprint EPICS
5
What is a Data Acquisition System? Replacing …
6
What is a Distributed Data Acquisition System? Must efficiently filter, and archive data Selecting interesting occurrences for future processing /evaluation Flexible reconfigurable by clients at runtime ▪ Don’t expect to know initially, when designing/compiling runtime system, what experiments/filters might be devised later on ▪ Experiments/filters configured when client subscribes ▪ Don’t expect to know initially, when designing/compiling runtime system, what data aggregations will be on different data branches to different clients
7
Current weaknesses deploying EPICS into Data Acquisition situations? Record processing provides good flexibility to create event filters, but … Frequently, it isn't possible to know all of the experiments when the IOC’s database is designed A distributed data acquisition system needs runtime reconfiguration, initiated by client side tools Limited data model No runtime aggregation, or user defined types
8
Current weaknesses deploying EPICS into Data Acquisition situations? No support for site specific tagging of the data If a site needs to filter for LANSCE H- beam, then forcing this to occur based on the time-stamp Inflexible solution - from a LANSCE perspective Our solution Site specific parasitic PV attribute data can be filtered by the CA server
9
Alarm State PV ValueSignal Data Time Stamp Device Support Record Support DB Common CA Server Record Specific Values Device Specific Values
10
CA Client Multicast Enhancements CA Server Multicast Enhancements Implemented Mostly Implemented Multicast Enhancements Simplified configuration of EPICS Systems with Multiple IOCs on one host Installations with multiple subnets
11
Device Support CA Server Event Queue Upgrade Database Enhancements Database CA Service Implemented Under Design LANSCE Specific CA Server Event Filtering Upgrade CA Server Service Interface Upgrade
12
Subscription update event filtering >camonitor "fred$F $(PV:)>30 && $(PV)<40" fred$F $(PV:)>30 && $(PV)<40 2010-06-03 07:58:47.224969 36.6466 fred$F $(PV:)>30 && $(PV)<40 2010-06-03 07:58:47.227964 37.1654 fred$F $(PV:)>30 && $(PV)<40 2010-06-03 07:58:47.267460 33.9427 fred$F $(PV:)>30 && $(PV)<40 2010-06-03 07:58:47.276013 33.9976 fred$F $(PV:)>30 && $(PV)<40 2010-06-03 07:58:47.299041 37.8033 fred$F $(PV:)>30 && $(PV)<40 2010-06-03 07:58:47.319065 33.549 >camonitor "fred$F $(PV:flavor)==30 " fred$F $(PV:flavor)==30 2010-06-03 07:58:18.906049 44.1145 fred$F $(PV:flavor)==30 2010-06-03 07:58:21.899019 39.2743 fred$F $(PV:flavor)==30 2010-06-03 07:58:24.885000 54.3352 fred$F $(PV:flavor)==30 2010-06-03 07:58:27.855063 93.9634 fred$F $(PV:flavor)==30 2010-06-03 07:58:30.811997 97.7081
13
An Abstract Data Type is defined by Operations that may be performed on it Some mathematical constraints on these operations Our goal, always … Separation of interface from implementation Isolate from each other … The details of the internal encoding of the data structures of the implementation The interface used to manipulate the implementation
14
Defining Abstract Data Type’s Interface Specify Abstract Type’s name Specify Abstract Type’s N methods Specify method’s name Specify method’s I input, and O output, parameters The parameter’s name The parameter’s data type class i.e. integer, real, string, enumerated The parameter’s acceptable range The parameter’s optional default
15
Type Safety – user specified parameter must match with the specification of the interface All parameters passed by users must match The parameter’s name The parameter’s data type class i.e. integer, real, string, enumerated The parameter’s acceptable range Input Parameters All input parameters must be supplied if the interface doesn't specify a default Output Parameters All interface specified output parameters must be supplied Additional optional output parameters may be present w/o violating interface specification If properly qualified by a standardized path name – i.e. project/LANSCE/flavor
16
Users can manipulate an entity more complex than a Process Variable Implementation is free to evolve without impacting the users We can pass in N parameters atomically Example, we can set the x, y, z coordinates together as a unit We can pass out N parameters atomically Example, we can extend the set of parameters passed with a subscription update to include the LANSE flavor
17
New field type Field size is sizeof ( pointer ) Field content Reference counting C++ smart pointer Smart pointer points to C++ pure virtual interface class This is the C++ interface used to interface to an Abstract Data Type
18
How do database links work? If the source is ordinary data and the destination is an Abstract Data Type instance Not permitted unless the destination abstract type has value set method If the source is an Abstract Data Type instance and the destination is ordinary data Not permitted unless the source abstract type has value get method If the source is an Abstract Data Type instance and and the destination is an Abstract Data Type instance Not permitted unless Both source and destination have same Abstract Data Type name If permitted then smart pointer in the destination is simply changed to become a new reference to the source Or there is a matching set/get
19
Implementation issues Parameter interfacing Presumably Data Access interface is used Parameter conversion and range checking Presumably Data Access library is used
20
Implementation issues Presumably these capabilities are evaluated first only in new record types Therefore, minimal impact on existing installations
21
Data Access, is it Easy CA? In the EPICS community we have – Application developers (well adjusted, etc) EPICS database, screens, matlab, python, tcl, etc – System programmers (geeks) Device drivers, EPICS internals, etc Implementing Data Access interface for particular data structure / class System programmer job
22
Data Access, is it Easy CA? Once interfaced with Data Access – A high level (i.e. easy ca interface is available) – DA is not the data manipulation interface used by application level users – Users use the public interface of the data structure / class which has been interfaced – Communities develop around the data structures / classes standardized by particular applications, industries, and instruments
23
Orders for our new klystrons are in place We will provide production subscription update filtering capabilities for the LANSCE upgraded RF system and the LANSCE upgraded diagnostic systems in 2013 Prototypes will need to function considerably before that time frame
24
A significant upgrade for EPICS is in progress, significant milestones have been completed Multicasting – easier configuration Subscription update filtering – client specified filter expression Upgraded server event queue – optimal order preservation and transport of user defined types Upgraded server interface – user defined types Others are in early design phases New Abstract Data EPICS database field types A delivery schedule is in place at LANSCE
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.