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: RE: Need to migrate from 3.14 to 4.4
From: Mark Rivers <[email protected]>
To: "'[email protected]'" <[email protected]>, EPICS Tech-Talk <[email protected]>
Date: Mon, 5 Jan 2015 17:03:58 +0000

Hi Deeptarka,

It is certainly possible to do compute-intensive data processing in the IOC.  For example the EPICS areaDetector package uses plugins to do real-time data processing.  Each plugin can be running in its own thread, so one can effectively take advantage of multi-core machines.  In that case the processing is done in the asyn driver layer.

 

Mark

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of Ralph Lange
Sent: Monday, January 05, 2015 4:22 AM
To: EPICS Tech-Talk
Subject: Re: Need to migrate from 3.14 to 4.4

 

Hi Deeptarka,

EPICS V4 basically is a library around user-defined hierarchical data structures (pvData) and a network protocol to transport those structures (pvAccess). There are Java and C++ implementations of server and client, examples, lots of documentation, etc. [1]

There are no changes in the IOC.
Except for a pvAccess server for the IOC (pvaSrv) that can be loaded and started on an existing 3.14 IOC, and allows accessing the PVs on that IOC using the pvAccess network protocol.

If you are looking for ways to insert your own C/C++ code into the IOC's record processing, you should look at the subroutine record [2] and array subroutine record [3]. These record types are made to allow exactly that. Writing device support is another option that would run your code as part of the record processing. Writing ASYN interpose modules or port drivers would run your code as part of the low-level driver, "underneath" the database records, possibly in the context of a driver thread.
Using the sequencer is the most loosely coupled approach - as there is Channel Access between the database and your code in the state machine that runs in a separate sequencer thread.

Cheers,
~Ralph

ps. EPICS 3.15 has some new features (e.g. long string record types) that might be interesting for you.

[1] http://epics-pvdata.sourceforge.net/
[2] https://wiki-ext.aps.anl.gov/epics/index.php/RRM_3-14_Subroutine
[3] https://wiki-ext.aps.anl.gov/epics/index.php/RRM_3-14_Array_Subroutine

On 02/01/2015 12:02, Deeptarka Das/TVM/TCS wrote:

Hi all,

 

I have some applications created with EPICS 3.14. These applications have mainly waveform records(I needed to store lon strings), subroutine records, Sequencer for state handling(I had also "mis-used" it for some data processing work) and Asyn. I am trying to evaluate EPICS 4.4 (CPP). Till now I have understood that even with version 4.4, I will be using the same IOCs created with 3.14. So my question is what additional benefits will I get from migrating to 4.4? I need to perform some heavy data processing(the reason why I was misusing Sequencer). With 4.4 will I be able to directly include C++ codes into the application to do the data processing?

 

---
Thanks and Regards,
Deeptarka Das
Mailto: [email protected]

 

 


References:
Need to migrate from 3.14 to 4.4 Deeptarka Das/TVM/TCS
Re: Need to migrate from 3.14 to 4.4 Ralph Lange

Navigate by Date:
Prev: Re: Stream device error when processing unsolicited commands Dirk Zimoch
Next: RE: Stream device error when processing unsolicited commands Mark Rivers
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: Need to migrate from 3.14 to 4.4 Ralph Lange
Next: Stream device error when processing unsolicited commands Andrew Gomella
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 ·