EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Fwd: EPICSv4 and pvAccess to an IOC
From: "White, Greg" <[email protected]>
To: Emmanuel Mayssat <[email protected]>
Cc: EPICS mailing list <[email protected]>
Date: Wed, 1 Apr 2015 13:41:51 +0000
Hi Emmanuel,

Let me take a very high level stab at your questions. Maybe one of the V4 developers can step in for more sophisticated answers.

Begin forwarded message:

From: Emmanuel Mayssat <[email protected]>
Subject: EPICSv4 and pvAccess to an IOC
Date: April 1, 2015 at 12:17:08 AM GMT+2
To: EPICS mailing list <[email protected]>

Hello all,

I am currently looking at EPICSv4.

Excellent. Pretty good isn’t it.

I am interested in better understanding pvAccess which can transfer structured data (pvData).

I understand the pvAccess can use EPICSv3 CA to access database entries in the IOC.

Yes. Specifically, you can use either:
  1. pvAccess "on the wire” to talk to an IOC; pvaAccess talks to the pvaSrv 
     plugin on the IOC, or 
  2. you can use CA on the wire through the pvAccess client side API. 
 
But how to I implement and enforce the use of the pvAccess Client Layer?

In the pvAccess API, you select the so-called “provider”, to be either pvAccess or ChannelAccess.
For an example, see the ExampleChannelGet java example [1] in “EPICS pvAccessJava”. Specifically see the lines:

        // get pvAccess client provider
        ChannelProvider channelProvider =
            ChannelProviderRegistryFactory.getChannelProviderRegistry()
                .getProvider(org.epics.pvaccess.ClientFactory.PROVIDER_NAME);
        ...  
        Channel channel = channelProvider.createChannel(
            channelName, channelRequester, ChannelProvider.PRIORITY_DEFAULT);
 
other language bindings (c++, python) etc follow the same pattern.


How do I integrate a pvAccess Server in the IOC?

So this question is assuming you’re doing method 1 above, pvAccess on the wire. In that case 
you’ll include a PVA server, named “pvaSrv” in the IOC. See the section "Adding pvAccess support to an IOC” in document Getting Started with EPICS V4 [2]. For specific examples of what a st.cmd file looks to include pvaSrv, see the st.cmd files of the test app of pvaSrv in sourceforge (e.g. see end of file st.cmd [3]).


It is my understanding that IOC programming will not chance with EPICSv4, is this correct?

That’s right. EPICS developer IOC programming doesn’t change. 

Some forward looking support for V4 is beginning to be added to the IOC. You might say the coming locksets improvement is related to V4’s requirement to properly support the future envisioned function that the value of a single PvAccess PV hosted by a classic IOC (as opposed to a V4 pvDatabase as described by Kay) can encode the values of a set of IOC records. For instance, imagine a BPM PV that encodes 5 records like X offset, X RMS, Y, Y RMS and current, all in one PV. pvaSrv can’t presently do that, it can only map a PVA PV to a single IOC PV.


Regards,

Emmanuel Mayssat
http://www.epicsqt.org

Cheers
Greg



References:
EPICSv4 and pvAccess to an IOC Emmanuel Mayssat

Navigate by Date:
Prev: Re: STAT=SCAN recover Isabella Rey
Next: Stream device problem with redirection in @mismatch ruzickaj
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICSv4 and pvAccess to an IOC Kasemir, Kay
Next: Stream device: how to send waveform of chars without null terminator? Isabella Rey
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·