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 | 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: Alarm behaviour |
From: | Timo Korhonen via Core-talk <core-talk at aps.anl.gov> |
To: | Andrew Johnson <anj at anl.gov>, EPICS Core Talk <core-talk at aps.anl.gov> |
Date: | Fri, 16 Jun 2023 18:07:26 +0000 |
Hi Andrew and all, Indeed, HYST for this record is set to 5 (coincidentally) , which would explain the issue. I did not suspect or check that because pvget reported it as zero.
Thanks, mystery solved! I have understood ACKT and ACKS slightly differently though; the documentation says: “The ACKS field contains the highest unacknowledged alarm severity. The ACKT field specifies whether it is necessary to acknowledge transient alarms.” Which matches with what I saw, in particular as ACKT had the value YES. Now I understand also why I could not find any code using this facility. The remaining question is why are the alarm-related fields (severity settings and HYST) are reported as zeros. Timo From: Andrew Johnson <anj at anl.gov> Hi Timo, On 6/16/23 10:26 AM, Timo Korhonen via Core-talk wrote:
I was able to replicate your symptoms in a stand-alone ai record by setting its HYST field to 5, then setting VAL to 31.23 and then 27.96. You don't mention whether HYST is set in your record, please check:
The non-zero HYST causes the alarm state to be latched until VAL retreats from the alarm limit by more than HYST. My LALM field is 30, so to come out of the HIGH alarm state VAL has to go to below LALM-HYST=25.
I did notice that the pvget output from the above record shows the valueAlarm.hysteresis field as zero, and actually the type of that member doesn't look right either, an ai.HYST field is a double, not
a byte. I also have the same issue with the highWarningSeverity and highAlarmSeverity as you, mine both show as zero. Is this indicating bugs in pva2pva?
ACKS and ACKT are dbCommon fields used to record the highest alarm severities that have been acknowledged by a client that supports global alarm acknowledgement (ACKT is for transient alarms, ACKS for current
alarms). The only alarm client I know of which supports global alarm acknowledgement is ALH, and I don't believe the pvAccess protocol supports alarm acknowledgement at all. -- Complexity is free, it's Simplicity that takes work. |