[etherlab-users] Piping EtherLab process data to/from EPICS

Sean Leavey sean.leavey at glasgow.ac.uk
Thu Apr 13 16:47:41 CEST 2017


Hi Ronaldo,

> I agree with you in that pdserv looks promising.
> I notice there are two components from etherlab.org, one is "pdcom"
and perhaps one of those could be made to serve EPICS process variables
over channel access.

Some of the archives in this mailing list suggest, as far as I
understand, that running PdServ on the server (the same one running the
real time code generated by EtherLab) allows you to then use PdCom in a
client program to access the data I want. Apparently DLS (confusingly,
not your organisation, Diamond Light Source, but rather Data Logging
Service) uses PdCom in this way, though I guess it's only reading data
and not writing it. However, I also see QtPdWidgets, which are
apparently intended for creating applications to control things in real
time code generated by EtherLab (which suggests writing as well as
reading process variables).

We're looking into this now - if we can get access to the variables then
it's trivial to pipe them into EPICS using one of its APIs.

> Do you user MATLAB/Simulink?

Yes. We use LIGO CDS [1] for our fast (64kHz) channels, and this has a
Simulink-driven GUI to create control loops, and these models are
compiled into real time code. As each fast channel requires very
expensive hardware, we're trying to use EtherLab+EtherCAT as a cheaper
system for our slower, less critical control loops (<<1kHz). LIGO CDS
integrates its process variables into EPICS, and we've got
infrastructure set up to store and analyse EPICS data and to control
things in LIGO CDS via medm [2] screens. That's why we're trying to get
EtherLab+EtherCAT to play with EPICS.

> I am aware of other EPICS interfaces to Ethercat devices from PSI [1]
and I believe ESS are adopting it. ESS were also looking at bindings
from TwinCAT and that was reported about a year ago in a conference in
Lund. I can dig the link if you are interested.

That looks interesting. I guess it's not intended for use with EtherLab
though. In any case I'd be interested in looking at the conference
report you mention if you can dig it up.

Thanks a lot,


Sean

[1] https://dcc.ligo.org/T0900612/public/
[2] http://www.aps.anl.gov/epics/extensions/medm/

On 13/04/17 15:08, ronaldo.mercado at diamond.ac.uk wrote:
> Hi Sean,
> 
> I agree with you in that pdserv looks promising. 
> I notice there are two components from etherlab.org, one is "pdcom" and perhaps one of those could be made to serve EPICS process variables over channel access.
> 
> I am reading the description of Etherlab and I was wondering what your control loops look like.
> If I understand well one can use a C-API or alternatively use MATLAB/Simulink.
> 
> Do you user MATLAB/Simulink?
> 
> I am aware of other EPICS interfaces to Ethercat devices from PSI [1] and I believe ESS are adopting it. ESS were also looking at bindings from TwinCAT and that was reported about a year ago in a conference in Lund. I can dig the link if you are interested.
> 
> Regards and best wishes,
> 
> Ronaldo
> 
> [1] https://github.com/paulscherrerinstitute/ecat2 
>     I believe this work was published in ICALECPS 2015(?) in Melbourne. 
>     Again, I could dig the link if it's interesting to your work.
> 
> 
>> -----Original Message-----
>> From: etherlab-users [mailto:etherlab-users-bounces at etherlab.org] On
>> Behalf Of Sean Leavey
>> Sent: 12 April 2017 12:21
>> To: etherlab-users at etherlab.org
>> Subject: [etherlab-users] Piping EtherLab process data to/from EPICS
>>
>> Hi all,
>>
>> I'd like to be able to create control loops in EtherLab, to run in real
>> time, but have the process data they monitor/create piped asynchronously
>> to an EPICS server. I'd also like, if possible, to set flags with EPICS
>> to start/stop control loops in EtherLab.
>>
>> I've seen the Diamond Light Source work on getting EPICS to talk to
>> EtherCAT hardware using EtherCAT Master (e.g.
>> http://accelconf.web.cern.ch/accelconf/icalepcs2011/papers/wemau004.pdf)
>> .
>> While this is nice, it seems to take control of the interface to the
>> EtherCAT hardware away from EtherLab real time applications. With the
>> Diamond interface it seems like you can't run EtherLab models alongside
>> their scanner.
>>
>> It seems like there aren't any other pre-existing solutions to this, so
>> I'm looking in to how this can be done with my own code. I'm not sure
>> where to begin looking, but pdserv looks promising. Before I begin, can
>> anyone think of a reason why this might *not* be possible, and if it
>> would be possible, does anyone have advice for where to start looking?
>>
>> Many thanks,
>>
>>
>> Sean Leavey
>> _______________________________________________
>> etherlab-users mailing list
>> etherlab-users at etherlab.org
>> http://lists.etherlab.org/mailman/listinfo/etherlab-users
> 



More information about the Etherlab-users mailing list