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  <20232024  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  <20232024 
<== Date ==> <== Thread ==>

Subject: Issues with epics module and ISEG HAL service libraries
From: Yann Mandza via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Cc: "software.entwicklung at iseg-hv.de" <software.entwicklung at iseg-hv.de>
Date: Sun, 28 May 2023 21:13:13 +0000

Hello all,

I have a ICSMINI 2 box from iseg am trying to interface to via the HAL services utilities using HAL service libraries from iseg, I was able to recompiled for my system.

So far I tried to connect to the box using the provided example and it worked.

However I tried the epics module from florian  https://github.com/ffeldbauer/devIsegHal, so i could disable the embedded IOC and run mine outside.

I was able to compiled the module and get the IOC connected to the box. However I’m having two main issues.

 

1 -  error at record initialization for AO record

ISEG:7200081:0:32:VoltageRampSpeed: Error while reading item property '0.32.VoltageRampSpeed' (Q: 000)

recGblRecordError: ao: init_record Error (514,11) PV: ISEG:7200081:0:32:VoltageRampSpeed ( is this a result from the above? Then sorting out the above should clear this error)

it’s strange because only AO return this error.

 

I read on the deviseghal GitHub page that AO record were added to the polling thread that also handle I/O interrupt.

I wonder why that would be? 

 

This excerpt is from the page

“It is possible that control parameters change during operation. For example, if a trip occurs the corresponding setON bit in the channel control register will be set to 0.

These changes are monitored by devIsegHal through a polling thread. Each output record (except for stringout records) is automatically registered to this thread and their values are checked for updates on the isegHAL.

If a value has changed the VAL field and timestamp of the record will be set to the new values”

I’m a bit confused why output record would need that.

 

2- Qt Socket Library return this warning “QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread", it seems the IOC starts several threads to read/write information to the iseg system.

One can trace this issues till the writeReadSynchronous method within the isegHal-service library. I used QT5 to compile the library.

Can the device support protect against this or should iseg update their code to handle multi thread access to the socket?

 

Regards,

 

Yann

 


Replies:
Re: Issues with epics module and ISEG HAL service libraries Florian Feldbauer via Tech-talk

Navigate by Date:
Prev: Re: [EXTERNAL] Re: opc ua Sinclair, John via Tech-talk
Next: More precise timing for record processing Sobhani, Alex 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  <20232024 
Navigate by Thread:
Prev: Making mbbo record write string value instead of index Sobhani, Alex via Tech-talk
Next: Re: Issues with epics module and ISEG HAL service libraries Florian Feldbauer 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  <20232024 
ANJ, 30 May 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·