Experimental Physics and
| |||||||||||||||||
|
We're upgrading some IOCs to base 3.15.5, and are seeing some new behavior with self-referential calc records. Here's a simplified example: ================================= record(ao, "TEST123:AoTest") { field(HIGH, "5") field(HIHI, "10") field(HSV, "MINOR") field(HHSV, "MAJOR") field(PINI, "1") field(FLNK, "TEST123:CalcTest") } record(calc, "TEST123:CalcTest") { field(INPA, "TEST123:CalcTest NPP MS") field(INPB, "TEST123:AoTest NPP MS") field(CALC, "B<100?(A+1):A") field(FLNK, "TEST123:AiTest") } record(ai, "TEST123:AiTest") { field(INP, "TEST123:CalcTest") field(HIGH, "5") field(HIHI, "10") field(HSV, "MINOR") field(HHSV, "MAJOR") } ================================= Notice the "MS" in the calc record's INPA. We don't yet know why the original developer did this, and it seems that it would just cause the record to get stuck in an alarm state if any input went into an alarm state. Also notice that the calc record gets processed by the ao record, so it's not an issue of anything being undefined. With base 3.15.5, when the IOC starts, the calc record has SEVR: INVALID and STAT: LINK. If I change INPA from "MS" to "NMS" and restart the IOC, the record has SEVR: NO_ALARM and STAT: NO_ALARM. I verified that with base 3.14.11 and 3.14.12 the problem doesn't happen; i.e. the record has SEVR: NO_ALARM and STAT: NO_ALARM. Can anyone comment on whether we can safely replace "MS" with "NMS" in a record chain like this? And if there have been more significant changes to the way that records are initialized, should we expect anything else to break? Thanks, Mike Michael Dunning SLAC National Accelerator Laboratory 2575 Sand Hill Road, MS 63 Menlo Park, CA 94025
| ||||||||||||||||
ANJ, 21 Dec 2017 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |