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: A $ in a PV name?
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: "Brown, Garth" <gwbrown at slac.stanford.edu>, "tech-talk at aps.anl.gov" <Tech-talk at aps.anl.gov>
Date: Thu, 15 May 2025 19:48:38 +0000

Hi Garth,

 

The characters allowed in a record name are documented here, but not enforced in all cases, and for a PV name in a link we can’t check or limit what the characters can be because the IOC isn’t the only software which can serve channels (over CA or PVA) that can be linked to. In fact using $ in a channel name can be a requirement when reading or writing long string fields, see the Field Modifier Reference for information about that usage.

 

You can try that yourself if you have an IOC with a CALC field holding a long _expression_, or with a record name longer than 39 characters, the command

caget calc-record.CALC

or

caget really-long-record-name-with-more-than-40-characters.NAME

will only show the first 39 characters of those values (the NAME field just returns the record’s name, which is useful if you have record aliases). However these will fetch the full string:

caget -S calc-record.CALC$

caget -S really-long-record-name-with-more-than-40-characters.NAME$

 

HTH,

 

- Andrew

 

-- 

Complexity comes for free, Simplicity you have to work for.

 

 

On 5/15/25, 2:03PM, "Tech-talk" <tech-talk-bounces at aps.anl.gov> wrote:

 

We just had a bug where there was a stray $ in the PV name for an OUT link. Just a typo. I was surprised that there was no error message from dbLoadRecords. But I couldn't find anything saying that this was an invalid PV name, unless the $ is followed by () or {} with an undefined macro. Is that the intent? Does anyone use $ in PV names? Or should that have produced an error message?

 

-Garth Brown

SLAC National Accelerator Laboratory


References:
A $ in a PV name? Brown, Garth via Tech-talk

Navigate by Date:
Prev: A $ in a PV name? Brown, Garth via Tech-talk
Next: Re: Modbus problem bit swap Wago PLC Brown, Garth 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: A $ in a PV name? Brown, Garth via Tech-talk
Next: Process PINI-Record again as soon as device is reconnected Dr. Simon Friederich 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, 16 May 2025 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·