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: MBBO IVOA has different behavior in IOC shell and Unix terminal
From: "Marco A. Barra Montevechi Filho via Tech-talk" <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Cc: Alan Zanoni Peixinho <alan.peixinho at lnls.br>, Robert Tartarotti <robert.tartarotti at lumentum.com>
Date: Tue, 17 Oct 2023 13:24:43 +0000
Hello all. I stumbled upon a curious behavior of mbbo record with configured IVOA field, both in EPICS 3.15.6 and 7.0.7

We were originally testing it in an areaDetector IOC, but managed to make a minimal example. Basically, we want to set forbidden values to mbbo record in such a way that the IOC does not accept values above a certain number (in the example, above or equal to five).
I defined the following record:

record(mbbo, "record_name") {
    field(DESC, "description")
    field(ZRST, "zero_string")        field(ZRVL, "zero_value")
    field(ONST, "one_string")         field(ONVL, "one_value")
    field(TWST, "two_string")         field(TWVL, "two_value")
    field(THST, "three_string")       field(THVL, "three_value")
    field(FRST, "four_string")        field(FRVL, "four_value")
    field(IVOA, "1")
}

By configuring the IVOA field to "Dont drive outputs", i expect that whenever i put 5 into record_name, it does nothing and statys in the old value. This works in ioc shell:

epics> dbpf record_name 3
DBF_STRING:         "three_string"      
epics> dbgf record_name
DBF_STRING:         "three_string"      
epics> dbpf record_name 7
recGblRecordError: 7 Illegal choice PV: record_name
DBF_STRING:         "three_string"      
epics> dbgf record_name
DBF_STRING:         "three_string"      

However, in a linux terminal with caget and caput this is not true:

marco@s-swc10-l:~$ caget record_name
record_name                    three_string
marco@s-swc10-l:~$ caput record_name 7
Warning: enum index value '7' may be too large.
Old : record_name                    three_string
New : record_name                    
marco@s-swc10-l:~$ caget record_name
record_name                    
marco@s-swc10-l:~$

And it changes the value to zero. Even worse: when in an asyn IOC, the value passed to writeInt32 asyn function is also zero.

Is there any better way to set an operational limit to mbbo? Am i missing something?

Thanks in advance,

Marco

Aviso Legal: Esta mensagem e seus anexos podem conter informações confidenciais e/ou de uso restrito. Observe atentamente seu conteúdo e considere eventual consulta ao remetente antes de copiá-la, divulgá-la ou distribuí-la. Se você recebeu esta mensagem por engano, por favor avise o remetente e apague-a imediatamente.

Disclaimer: This email and its attachments may contain confidential and/or privileged information. Observe its content carefully and consider possible querying to the sender before copying, disclosing or distributing it. If you have received this email by mistake, please notify the sender and delete it immediately.


Replies:
Re: MBBO IVOA has different behavior in IOC shell and Unix terminal Rolf Keitel via Tech-talk

Navigate by Date:
Prev: Re: Cross Compilation of Epics-base Navani Srivastava via Tech-talk
Next: Re: DBRecord <-> PVRecord data exchange Érico Nogueira Rolim 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: RE: Waveform data in a data storage system Sky Brewer via Tech-talk
Next: Re: MBBO IVOA has different behavior in IOC shell and Unix terminal Rolf Keitel 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, 18 Oct 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·