SLAC USA Marty Kraimer and Matej Sekoranja

Slides:



Advertisements
Similar presentations
V4 Status and Workshop Report CSS, DISCS, an V4 team.
Advertisements

Paul Chu FRIB Controls Group Leader (Acting) Service-Oriented Architecture for High-level Applications.
JavaIOC Overview and Update EPICS Seminar/Workshop Raja Ramanna Centre For Advanced Technology Indore India January Presented by: Marty Kraimer.
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
EPICS V4/areaDetector Integration
PvData,pvAccess,pvIOC,pvService Status EPICS Meeting June 2011 NSRRC,Hsinchu, Taiwan Marty Kraimer, Guobao Shen, and Matej Sekoranja.
EPICS Channel Access Overview 2006
EPICS Architecture Version 3 Channel Access Client (CAC) Connection Data Transfers WAN/LAN/Local Connection Data Transfers Channel Access Server (CAS)
PvData,pvAccess,javaIOC,pvService Status EPICS Meeting Aix-en-Provence, France Marty Kraimer, Guobao Shen, and Matej Sekoranja.
ORNL is managed by UT-Battelle for the US Department of Energy EPICS V4 for SNS Neutron Data Kay Kasemir Oct
AreaDetector Data Processing Pipeline In EPICS V4 Dave Hickin Diamond Light Source EPICS Collaboration Meeting Diamond Light Source 01/05/2013.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
SLAC asyn class, Day 1, August 26, 2010 Example asyn driver Modbus Mark Rivers, Marty Kraimer, Eric Norum University of Chicago Advanced Photon Source.
Chapter 31 File Transfer & Remote File Access (NFS)
JavaIOC Marty Kraimer EPICS Collaboration Meeting ICALEPCS October
1 BROOKHAVEN SCIENCE ASSOCIATES NSLSII Physics Applications – Applying V4 The Control Group – presented by Bob Dalesio Taiwan EPICS Meeting, June 2011.
JavaIOC EPICS Meeting SSRF March Presented by: Marty Kraimer.
JavaIOC Status EPICS Meeting Vancouver May Presented by : Marty Kraimer Contributions by: Matej Sekoranja(cosyLab), Shen Guobao(BNL), Sheng Peng.
JavaIOC Status EPICS Meeting ICALEPCS2009 Kobe Japan Marty Kraimer And Matej Sekoranja.
New Features in EPICS V4 Release 4.4 EPICS Meeting 2014, CEA, October 2014 Marty Kraimer, Matej Sekoranja.
MASAR Server & Application Guobao Shen Photon Sciences Department Brookhaven National Laboratory Collaboration Working Group Oct 02, 2013.
EPICS Access from Python Geoff Savage DØ Workshop Thursday June 22, 2000.
(Java) CA Client Libraries Status Matej Šekoranja
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
EPICS EPICS Limitations Bob Dalesio Marty Kraimer.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays - done for rsrv in 3.14 Channel access priorities - planned to.
1 BROOKHAVEN SCIENCE ASSOCIATES EPICS Version 4 – Development Plan V4 Team – presented by Bob Dalesio EPICS Meeting October 12, 2010.
1 1999/Ph 514: Flow of Control EPICS Flow of Control Marty Kraimer APS.
PvaPy: Python API for EPICS PV Access Siniša Veseli Scientific Software Engineering & Data Management Advanced Photon Source EPICS Meeting October 2015.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
1 EPICS Flow of Control: EPICS Workshop at IHEP, Beijing, August 2001 EPICS Flow of Control Marty Kraimer APS.
An Introduction to Epics/Tango Steve Hunt Alceli EPICS Meeting 2008 INFN Legnaro 15 Oct 17:15.
Control System Tools for Beam Commissioning Timo Korhonen Controls Division Chief Engineer April 8, 2014.
Managed by UT-Battelle for the Department of Energy LabVIEW Channel Access Implementaion Alexander Zhukov SNS.
Version 4 Charter – Discussion Bob Dalesio Greg White.
Tango - Icalepcs 2009 ESRF. E Taurel - Icalepcs TANGO kernel status and evolution Brief introduction What's new since Icalepcs 2007 New projects.
Core LIMS Training: Project Management
JavaIOC Overview and Update
Boots Cassel Villanova University
#01 Client/Server Computing
Chapter 3: Windows7 Part 4.
EPICS Version 4 Abstract:
CISC103 Web Development Basics: Web site:
DATABASE LINK DISTRIBUTED DATABASE.
WEB API.
pvData,pvAccess,pvIOC,pvService Overview and Status EPICS Meeting
pvData,pvAccess,pvIOC,pvService Overview and Status EPICS Meeting
Chapter 40 Remote Method Invocation
Architecture Competency Group
Server-Side Plugins Andrew Johnson, Ralph Lange
Extended Hologram Project
Chapter 46 Remote Method Invocation
REST APIs Maxwell Furman Department of MIS Fox School of Business
Chapter 46 Remote Method Invocation
Writing a Channel Access Client in EPICS
Channel Access Concepts
Beam Synchronous Acquisition on IOC
pvData,pvAccess,pvIOC,pvService Overview and Status EPICS Meeting
SOFTWARE DEVELOPMENT LIFE CYCLE
Fixed Size Arrays proposal
Banafsheh Hajinasab Based on presentation by K. Strnisa, Cosylab
EPICS 7 Matej Sekoranyja, Marty Karimer, Michael Davidsaver, Ralph Lange, Andrew Johnson, Timo Korhonen, Heinz Junkes, Patrick Marschalik, Murali Shankar,
Java Channel Access Client and Server Library - status
Channel Access Concepts
#01 Client/Server Computing
The reactor design pattern
Thread per client and Java NIO
TANGO from an EPICS perspective
Presentation transcript:

SLAC USA Marty Kraimer and Matej Sekoranja V3/V4 Interoperability EPICS Meeting April 2012 SLAC USA Marty Kraimer and Matej Sekoranja

V3/V4 Interoperatibility Overview of Talk Main topic is Channel Access between V3 and V4. Also brief description of current status and examples via easyPVA. Terminology pvData is a way to define structured data. caV3 is the channel access that comes with EPICS base. pvAccess is channel access for PVData. V4 client Default provider is pvAccess Provider for caV3 in progress. PVIOC Java has support for PVData, pvAccess, CAV3 client/server C++ is just a beginning. CAV3 IOC PVIOC in same process as V3 IOC. v3Channel is pvAccess server for V3 IOC records SLAC April 2012 V3/V4 Interoperatibility

V4 Channel and Channel Provider Connects to data identified by channel name. Create methods: Get – get a fixed set of data from channel. Put – put a fixed set of data to channel PutGet – put a fixed set of data and then get fixed set Process – process the channel RPC – put new set of data and the get new set of data Array – get/put subarray Introspection – get introspection data for field of channel Monitor - monitor a fixed set of data from channel Provider Something that implements Channel. SLAC April 2012 V3/V4 Interoperatibility

V3/V4 Interoperatibility More Terminology pvData Memory resident structured data Introspection and data interfaces pvAccess Network support for pvData pvIOC – much like a V3 IOC Record + database of records A record has a top level structure Record scanning – periodic and event support – no distinction between record and device support any field can optionally have associated support standard: alarm, timeStamp, scan etc. extensible – can be used wherever appropriate pvService Service layer for High Level Applications Current emphasis SLAC April 2012 V3/V4 Interoperatibility

pvAccess Client Support pvAccess supports multiple providers. A provider must present data as PVData. A provider must implement the Channel interface of pvAccess. OK if some methods return “not implemented”. pvAccess is default provider: Fully supports all of pvData and pvAccess. caV3 is provider that uses CAV3 for communication. Currently only implemented in pvIOCJava. Will be moved to pvAccess. Will be automatically a registered provider. Note that providers for other systems could be implemented. Examples are TINI, Tango, etc. None exists today. SLAC April 2012 V3/V4 Interoperatibility

V3/V4 Interoperatibility PVIOCJava Full support for pvData and pvAccess plus lots more Channel Access Servers pvAccess – Full access to PVRecords. caV3 – Allows a CAV3 client to access fields of a PVRecords Scalar, Enum, and Array Alarm, TimeStamp, Display, Control Channel Access Client caV3 is being moved to pvAccess Uses pvAccess client directly Link support for pvAccess and CAV3 SLAC April 2012 V3/V4 Interoperatibility

V3/V4 Interoperatibility V3 IOC Support PVIOCCPP Only what is implemented so far is available Runs as separate threads in a V3 IOC. V3Channel pvAccess server Provides access to data in V3 records Provides data equivalent to what CAV3 provides but via PVAccess Thus all data on network is using the pvAccess protocol. SLAC April 2012 V3/V4 Interoperatibility

pvAccess client examples via EasyPVA An easy to use interface for client side of pvAccess In early stages of development First example is really really simple Gets a single double value via pvAccess provider EasyPVA easyPVA = EasyPVAFactory.get(); double value = easyPVA.createChannel(“QUAD345:BDES”). createGet().getDouble(); System.out.println(channelName +" = " + value); SLAC April 2012 V3/V4 Interoperatibility

EasyPVA examples continued Get a double value via caV3 as provider Only difference is extra argument to createChannel. EasyPVA easyPVA = EasyPVAFactory.get(); double value = easyPVA.createChannel(“QUAD345:BDES”,”caV3”). createGet().getDouble(); System.out.println(channelName +" = " + value); SLAC April 2012 V3/V4 Interoperatibility

EasyPVA examples continued The next example gets the value plus the alarm and timeStamp: EasyPVA easyPVA = EasyPVAFactory.get(); EasyGet easyGet = easyPVA.createChannel(“QUAD345:BDES”).createGet(); double value = easyGet.getDouble(); Alarm alarm = easyGet.getAlarm(); TimeStamp timeStamp = easyGet.getTimeStamp(); System.out.printf( "%s %s %s %s%n", channelName,Double.toString(value), alarmToString(alarm), timeStampToString(timeStamp)); SLAC April 2012 V3/V4 Interoperatibility

EasyPVA examples continued The next example gets an array of doubles. EasyPVA easyPVA = EasyPVAFactory.get(); double[] value = easyPVA.createChannel(“QUAD345:BDES”).createGet().getDoubleArray(); System.out.printf("%s%n[",channelName); for(int i=0;i<value.length;i++) { if(i%10 == 0) { System.out.printf("%n "); } if(i!=0) System.out.printf(","); System.out.printf("%f",value[i]); System.out.printf("%n]%n"); SLAC April 2012 V3/V4 Interoperatibility

V3/V4 Interoperatibility Efficient EasyPVA The previous slides are not appropriate for repeated requests Each does something like the following: Create an connect to a channel EXPENSIVE: broadcast, tcp connection Create a get request Creates objects on both client and server Request a get No new objects. Just transfer. If same request repeated do each step over again. Next slide shows more efficient way to do multiple gets. SLAC April 2012 V3/V4 Interoperatibility

Efficient EasyPVA example The next example is an efficient way to do multiple gets. EasyPVA easyPVA = EasyPVAFactory.get(); Channel channel = easyPVA.createChannel(“QUAD345:BDES”); ChannelGet get = channel.createGet(); double value = get.getDouble(); ... value = get.getDouble(); channel.destroy(); SLAC April 2012 V3/V4 Interoperatibility