Integrating ACS with other (Control) Systems: ACS and EPICS Presented at 1st ACS Workshop, March 9th, 2004 By Mark Pleško www.cosylab.com Need Open Standards like WinCC “Right from the start, SIMATIC WinCC has stood for the highest levels of openness and integration, since it has consistently backed Microsoft technologies. Version 6, in addition to using Microsoft SQL Server 2000 also adds Visual Basic for Applications (VBA), Visual Basic Scripting (VBScript), database access via OLE DB and new OPC standards. OPC HDA, OPC A&E and OLE-DB are features of WinCC/Connectivity Pack.” Enhanced Scaleability Enhanced Web Functionality Integrated Historian Functionality Optimized for IT & Business Integration New open standards New Functions in the Basic System New Options for FDA 21 CFR Part 11 Integrating ACS and EPICS 2 www.cosylab.com The Layers of Control System Packages EPICS chan. acc. MEDM TINE ACOP DOOCS DDD COACK TANGO DevIO ACS Abeans CosyBeans CDEV JDM driver data SERVER communication API visual support CLIENT Applications (alarm manager, GUI, logger, trending, scripting etc.): while all have them, their quality, flexibility, configurable etc. makes the largest difference Integrating ACS and EPICS 3 www.cosylab.com Abeans and ACS... and EPICS ACS tools Management, ObjectExplorer, Logging, Alarms,… Abeans Application plain Java code CosyBeans GUI widgets Abeans: libraries, device beans, plugs i n t e r f a c e ACS CORBA server config database I/O boards devIO devIO calls local EPICS db_xxx commands Integrating ACS and EPICS 4 www.cosylab.com Why Translators are Good • Server-side systematics are guaranteed to be there. – local alarm server, local history server, queries, etc. • The data are as close to the source as possible • can use the best applications for each problem • Gateways bring a host of intermediate problems – e.g. connectivity problems are difficult to locate – another link in the chain Integrating ACS and EPICS 5 www.cosylab.com Very Successful Translators of TINE at • run EPICS2TINE directly on the IOC – don't speak channel access at all and access EPICS database directly – we have also elegantly solved the 16 Kbyte/message barrier (i.e. 4000 floats) of the old EPICS release • DOOCS servers and clients offer the traditional SUN RPC interface as well as a TINE interface – EPICS IOCs are immediately available to DOOCS DDD clients. Using TINE2EPICS, the DOOCS IOCs are likewise available to EPICS MEDM clients. Integrating ACS and EPICS 6 www.cosylab.com Abeans: Much More than a Wrapper • Application framework Applications Applications Abeans IOC IOC Hardware Hardware Integrating ACS and EPICS : Hide comm layer Provide application services Provide CS models (device, channel, etc.) RAD, easier maintenance 7 www.cosylab.com Limitations of Plugs and the Abeans Solutions • Client-side plugs usually provide only – common functionality over several CS • if the server-side features are not available, you come up empty – generic API • requires knowledge of CS and is therefore practically useless • Abeans have a solution though – allow different CS data models (Channels, Devices, etc.) – interfaces are facades for services (plug-ins) with always at least one default implementation – we work hard to provide each single feature in a generic way – if TINE has ArchiveReader, also ACS gets it! Integrating ACS and EPICS 8 www.cosylab.com Abeans 1/2 • Models – Logical containment of CS Objects – Channel, BACI Device Channel 1 Property 1 Channel 2 Property 2 Property 3 • Plugs – Connection to remote modeling layer – TINE, EPICS, ACS CORBA Integrating ACS and EPICS 9 www.cosylab.com Abeans 2/2 Application Modeling layer abeans-EPICS:///PBEND_M_01_current?get URI Request Response abeans-TINE://ns.desy.de/DESY/BENDS/PBEND_M_01/current?get Plugs EPICS Integrating ACS and EPICS TINE CORBA 10 www.cosylab.com All possible request targets, their names, all possible valid requests that can be issued and all possible responses, including errors, exceptions and connection timeouts What a request can do and what responses are to be expected, the list of parameters, namevalue pairs, timeout data, error stack, etc. Requests can be more than just simple get/set commands – they can be asynchronous, define callbacks, repeated monitors, etc. Integrating ACS and EPICS 11 www.cosylab.com Example: Device Table Integrating ACS and EPICS 12 www.cosylab.com Integrating ACS and EPICS 13 www.cosylab.com Object Explorer in use at SNS (accelerator with EPICS) • Abeans read XAL XML files with hierarchically organized EPICS PVs – Or any source of hierarchy, e.g. EPICS nameserver • The PVs are put into the Abeans Directory (GUI tree) • Properties are selected from the tree and connection is established via Abeans JCA plug (a vast improvement of JCA 1.0) • PVs are displayed with Abeans displayers – Data quality control Integrating ACS and EPICS 14 www.cosylab.com It’s a Reality: Joint Applications for • Same look and feel: – SNS: Object Explorer EPICS + ACS/EPICS Office – Diamond: ControlDesk – Jlab:Archive Reader (next) Integrating ACS and EPICS 15 www.cosylab.com Summary: Mixing ACS with EPICS 1. ‘EPICS-ACS’ gateway a separate process utilizing the client/server APIs of both systems 2. Client-side ‘EPICS-plugs’ client program developers think they are talking to ACS, but they are really speaking native ‘EPICS’ 3. Server-side ‘ACS-translators’ EPICS server IOCs think they are being addressed by EPICS clients but are really speaking native ACS. Integrating ACS and EPICS 16