|
Hi, all!
I'm not sure if this is a bug or a feature: I have two records being used as setpoint and readback for the same asyn parameter that work fine, but break when I add a calcout into the chain.
For instance:
record(ao, "$(P)$(R)Dracula"){
field(DESC, "No garlic, please")
field(DTYP, "asynInt32")
field(DRVL, "0")
field(DRVH, "67")
field(SDIS, "$(P)$(R)CalcDISA")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_$(VMM)_ANALOGMON")
info(autosaveFields, "VAL")
info(asyn:READBACK, "1")
}
record(ai, "$(P)$(R)Nosferatu"){
field(DTYP, "asynInt32")
field(PINI, "YES")
field(SCAN, ".5 second")
field(PHAS, "1")
field(SDIS, "$(P)$(R)RingStatus-R")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_$(VMM)_ANALOGMON")
}
This works fine. I tested by changing the parameter in hardware with another software and restarting the IOC, the setpoint gets updated to the correct value, which is the same as the setpoint.
However, as soon as I add a calcout record that points to $(P)$(R)Dracula:
record(calcout, "$(P)$(R)Helsing") {
field(DESC, "Yes garlic, please")
field(INPA, "$(P)$(R)SomeOtherRecord CP")
field(CALC, "A+64")
field(OUT, "$(P)$(R)Dracula NPP")
}
Then the setpoint stops being updated, even if the calcout record is not processing at that time.
Is this supposed to work like this? Is there a way to have both functionalities?
Thanks,
Marco
|