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

Subject: Re: Questions on EPICS 7 NT types and CA → PVAccess migration
From: Ralph Lange via Tech-talk <tech-talk at aps.anl.gov>
To: EPICS Tech Talk <tech-talk at aps.anl.gov>
Date: Sat, 7 Feb 2026 16:04:21 +0100
On Fri, 6 Feb 2026 at 15:06, Williams Jr., Ernest L. via Tech-talk <tech-talk at aps.anl.gov> wrote:
1. Optional fields in EPICS 7 NT types
In EPICS3, records share a common set of fields (e.g., alarm status/severity, timestamp, description), which are always present regardless of whether a specific application strictly requires them.
In contrast, EPICS 7 NT types define many of these fields as optional, and producers are not required to implement them.
  • What design considerations led to this change?
  • What are the intended advantages and trade-offs of making these fields optional?
  • Are there recommended best practices for when producers should include fields such as alarm and timeStamp, especially for higher-level consumers such as ML pipelines, archivers, or monitoring tools?

Both CA and PVA are network protocols aimed at transporting data efficiently. They are independent of the applications on both ends. Many different client and server applications contain a CA or PVA server or client (or both, or all).

The EPICS Process Database is just one of those applications. Its internal structures (records, fields) are largely unchanged between EPICS v3 and EPICS 7. What you describe for EPICS v3 stays true for EPICS 7.

The functional equivalence is between CA's DBR_* types and PVA's Normative Types.

CA has a set of fixed DBR_* types, including metadata, e.g., for a double value:
DBR_DOUBLE - only the value
DBR_STS_DOUBLE - value, status, severity
DBR_TIME_DOUBLE - value, status, severity, timestamp
DBR_GR_DOUBLE - value, status, severity, precision, units, display limits, alarm limits
DBR_CTRL_DOUBLE - value, status, severity, precision, units, display limits, alarm limits, control limits

In the NT world of PVA, this is expressed as a structure with optional elements:
NTScalar :=
structure
    scalar_t    value
    string      descriptor  :opt
    alarm_t     alarm       :opt
    time_t      timeStamp   :opt
    display_t   display     :opt
    control_t   control     :opt

Obviously, the optional parts map to the metadata that CA makes available through the extended DBR_* types - plus the descriptor that was left out in CA (clearly a design flaw).

Again, the two approaches are functionally equivalent - that was an important design idea, as it allows users to migrate without major disruptions.

Where a CA client would use a DBR_DOUBLE type to write a value and a DBR_CTRL_DOUBLE type structure to read its metadata, a client using PVA/NT uses NTScalar for both, either without or with optional elements.

Applications (e.g., IOCs, middle-layer services, etc.) are free to provide the optional parts. They should provide them if they have meaningful data. E.g., a service on top of a database that might not have use for the control or alarm parts is not forced to implement them.

QSRV, the NT-based PVA server on the IOC, maps record fields to NT elements in the same fashion that rsrv, the CA server on the IOC, maps them to DBR_* types. That's why some general-purpose clients, e.g., Phoebus, are able to switch the underlying protocol through configuration.

Hope this clarifies things...

Cheers,
~Ralph


Replies:
Re: Questions on EPICS 7 NT types and CA → PVAccess migration Simon Rose via Tech-talk
References:
Questions on EPICS 7 NT types and CA → PVAccess migration Williams Jr., Ernest L. via Tech-talk

Navigate by Date:
Prev: Re: Base 7.0.10 was released ? Ralph Lange via Tech-talk
Next: Re: String getting truncated across OUT link David Bracey 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  <2026
Navigate by Thread:
Prev: Questions on EPICS 7 NT types and CA → PVAccess migration Williams Jr., Ernest L. via Tech-talk
Next: Re: Questions on EPICS 7 NT types and CA → PVAccess migration Simon Rose 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  <2026
ANJ, 19 Mar 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·