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  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
<== Date ==> <== Thread ==>

Subject: RE: How to add KeySight Laser interferometer to EPICS
From: Freddie Akeroyd - STFC UKRI via Tech-talk <tech-talk at aps.anl.gov>
To: l123173 <l123173 at 163.com>, tech-talk <tech-talk at aps.anl.gov>
Date: Mon, 24 Mar 2025 12:48:43 +0000

Hi,

 

If you want to serve the values as PVs then some options are:

 

  • Use  the python ctypes module https://docs.python.org/3/library/ctypes.html to call the DLL function, then use pyepics to push these values into PVs on a separate EPICS  softioc process. Gets a bit more messy if you want to do read/write via the IOC, but is a good proof of principle
  • Create a python PV server using pcaspy (to serve pvs via channel access) or p4p (serve pvs via PVaccess) and then have this access the DLL via ctypes

 

Non python solutions would be to either create EPICS aSub records to read/write values and build these into an IOC,  or create an EPICS asyn driver to do similar – both of these approaches would require some knowledge of the native system shared library load and call mechanism

 

Regards,

 

Freddie

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of l123173 via Tech-talk
Sent: 24 March 2025 09:06
To: tech-talk <tech-talk at aps.anl.gov>
Subject: How to add KeySight Laser interferometer to EPICS

 

Hi all,

       I have a Laser interferometer of KeySight 5519A/Bwhich data was collected through E1735A.

       I met two question when i try to put E1735A in EPICS.

       1) E1735A only has dll, the dll run in windows. 

            I don't know how to add the dll in epics and i have both win epics and linux epics.

       2) The dll has some function, which we have to use.  

           The function return the point of values buffer and the number of values.  The number of values was changed according the interval time. The function could send 255 values most each time. And we must invoke it frequently.

           So i think it is not possibile to transfer these values to pv using pyepics.

 

        Does anyone know how to solve it. Any suggesion was appreciate.

 

Regards,
Liang

 

The function:

int E1735A_ReadAllSamples(TLaserSample* pBuf, int BufSize)

typedef struct {

             double LaserPos;  //sample value

             __int64 TimeStamp;  // time stamp

             int LaserTriggerl;    //trigger

             int LaserError;       //error code

} TLaserSample


References:
How to add KeySight Laser interferometer to EPICS l123173 via Tech-talk

Navigate by Date:
Prev: How to add KeySight Laser interferometer to EPICS l123173 via Tech-talk
Next: RE: Areadetector Plugin Enable/Disable Issue and Design Question Pearson, Matthew via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
Navigate by Thread:
Prev: How to add KeySight Laser interferometer to EPICS l123173 via Tech-talk
Next: Question About ADEuresys XML File Support for the EPICS IOC Kim, Kuktae via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
ANJ, 24 Mar 2025 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·