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: Areadetector Plugin Enable/Disable Issue and Design Question
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, "Blomley, Edmund (IBPT)" <edmund.blomley at kit.edu>
Date: Fri, 21 Mar 2025 13:53:38 +0000
Hi Eddy,

  • If the setpoint (*:Proc1:EnableCallbacks) is changed to 1, the readback value (*:Proc1:EnableCallbacks_RBV) changes to 0.
    If the setpoint is changed to 0, the readback value changes to 1.
  • But the process plugin actually seems to do its job if the _RBV is labled as "Disable"
    Similar story for the "Enable background" and its readback value.
  • StdArrays and Stats behave the same way.
    But for my ROI plugin set and readback for the enable field are consistent.

That should definitely not be happening, I have never heard of that issue before.

Just to be sure it is not a problem with the GUI please test it as follows:
  • In one terminal window run the following camonitor command where the * is replaced by your actual prefix
      camonitor *:Proc1:EnableCallbacks *:Proc1:EnableCallbacks_RBV
  • In a second terminal window run caput
      caput *:Proc1:EnableCallbacks 1
      caput *:Proc1:EnableCallbacks 0

Send the output of both windows.

Your plugin chain looks fine to me.  Note if you load the commonPlugins.cmd from ADCore/iocBoot then the only thing you would have needed to add to your startup script are the 2 NDStdArrays plugins.  You can then just "wire" the other plugins at run-time, and the configuration will be saved with autosave.

Mark




From: Tech-talk on behalf of Blomley, Edmund (IBPT) via Tech-talk
Sent: Thursday, March 20, 2025 11:22 PM
To: tech-talk at aps.anl.gov
Subject: Areadetector Plugin Enable/Disable Issue and Design Question

Hey all,

I am fairly new to using most of the areadetector plugins and I encountered
one issue which seems rather confusing to me with the various Enable/Disable
fields:

If the setpoint (*:Proc1:EnableCallbacks) is changed to 1, the readback
value (*:Proc1:EnableCallbacks_RBV) changes to 0.
If the setpoint is changed to 0, the readback value changes to 1. But the
process plugin actually seems to do its job if the _RBV is labled as
"Disable"
Similar story for the "Enable background" and its readback value. StdArrays
and Stats behave the same way.
But for my ROI plugin set and readback for the enable field are consistent.

So I kind of wonder if I somehow messed up my plugin configuration, which
brings me to the second question regarding plugin interaction/design:

I am trying this setup: Camera -> raw picture (StdArray) -> process plugin
(+ FileTiff Plugin) -> processed image -> ROI plugin -> stats plugin ->
FileHDF plugin
With the basic idea: optional background substraction feeding into optional
ROI feeding into stats and file saving. Is this a "good" plugin design?

-----------------------
st.cmd setup:

[typical st.cmd header]
...
[autosave config]

epicsEnvSet("MODEL", "acA1920-25gm")
epicsEnvSet("ELEMENTS", "2073600")
epicsEnvSet("XSIZE", "1920")
epicsEnvSet("YSIZE", "1080")

aravisConfig("basler1", "Basler-$(MODEL)-$(SERIAL)", 1, -1, 0, 0)

# Load default templates
dbLoadRecords("$(ADARAVIS)/db/aravisCamera.template", "P=$(PREFIX),R=,PORT=basler1,ADDR=0,TIMEOUT=1")
dbLoadRecords("db/Basler_$(MODEL).template", "P=$(PREFIX),R=,PORT=basler1,ADDR=0,TIMEOUT=1")

# Raw Camera Image
NDStdArraysConfigure("CA1", 5, 0, "basler1", 0, 0)
dbLoadRecords("$(ADCORE)/db/NDStdArrays.template",
"P=$(PREFIX),R=Image:,PORT=CA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=basler1,TYPE=Int16,FTVL=SHORT,NELEMENTS=$(ELEMENTS),ENABLED=1")

# Processing plugin
NDProcessConfigure("PROC1", $(QSIZE=5), 0, "basler1", 0, 0, 0)
dbLoadRecords("$(ADCORE)/db/NDProcess.template", "P=$(PREFIX),R=Proc1:,PORT=PROC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=basler1")

# TIFF file plugin for background
NDFileTIFFConfigure("FileTIFF1", $(QSIZE=5), 0, "basler1", 0)
dbLoadRecords("$(ADCORE)/db/NDFileTIFF.template", "P=$(PREFIX),R=Proc1:TIFF:,PORT=FileTIFF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=basler1")

# Camera Image After Processing
NDStdArraysConfigure("POST1", 5, 0, "PROC1", 0, 0)
dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=ImageProcessed:,PORT=POST1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PROC1,TYPE=Int16,FTVL=SHORT,NELEMENTS=$(ELEMENTS),ENABLED=1")

# Region of Interest Plugin
NDROIConfigure("ROI1", $(QSIZE=5), 0, "PROC1", 0, 0, 0, 0, 0, $(MAX_THREADS=5))
dbLoadRecords("$(ADCORE)/db/NDROI.template", "P=$(PREFIX),R=ROI1:,PORT=ROI1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PROC1")

# Statistics plugin on processed image
NDStatsConfigure("STATS1", $(QSIZE=5), 0, "PROC1",    0, 0, 0, 0, 0, $(MAX_THREADS=5))
dbLoadRecords("NDStats.template",     "P=$(PREFIX),R=Stats1:, PORT=STATS1,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=$(XSIZE),YSIZE=$(YSIZE),NCHANS=$(NCHANS=100),NDARRAY_PORT=PROC1")
NDTimeSeriesConfigure("STATS1_TS", $(QSIZE=5), 0, "STATS1", 1, 23)
dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template", "P=$(PREFIX),R=Stats1:TS:,PORT=STATS1_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS1,NDARRAY_ADDR=1,NCHANS=$(NCHANS=100),ENABLED=1")


[more plugins]
...
[ioc init]

Cheers
eddy

Replies:
AW: Areadetector Plugin Enable/Disable Issue and Design Question Blomley, Edmund (IBPT) via Tech-talk
References:
Areadetector Plugin Enable/Disable Issue and Design Question Blomley, Edmund (IBPT) via Tech-talk

Navigate by Date:
Prev: Registration, call for abstracts, and other deadlines - Spring 2025 EPICS Collaboration Meeting Ivan Finch - STFC UKRI via Tech-talk
Next: AW: Areadetector Plugin Enable/Disable Issue and Design Question Blomley, Edmund (IBPT) 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: Areadetector Plugin Enable/Disable Issue and Design Question Blomley, Edmund (IBPT) via Tech-talk
Next: AW: Areadetector Plugin Enable/Disable Issue and Design Question Blomley, Edmund (IBPT) 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, 21 Mar 2025 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·