Hi Tasaddaq,
One way to do that is like this:
record (calcout, "c"){
field(SCAN, "1 second")
field(INPA, "c")
field(INPB,"b")
field(INPC,"1")
field(CALC,"d:=a+c;b")
field(OCAL,"d")
field(OOPT, "When Non-zero")
field(DOPT, "Use OCAL")
field(OUT,"d PP")
}
Tim Mooney ( [email protected]) (630)252-5417
Software Services Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab
From: Tasaddaq Khan [[email protected]]
Sent: Thursday, July 09, 2015 2:11 AM
To: Mooney, Tim M.
Subject: Re: how NOT to update the record
Hi Tim
I changed my program and use the OOPT field in record c, but the result is same. It sets the value c=0 when b=0 and record d keeps the last value that is fine, but when I again put b=1, it starts from the starting point but not from the last value it keeps
which I do not want. I want that my record d keeps the last value when b=0 and starts from this value when I again put the b=1.
record (bi,"b"){
field(FLNK, "c")
}
record (calcout, "c"){
field(SCAN, "1 second")
field(INPA, "c")
field(INPB,"b")
field(INPC,"1")
field(CALC,"B=1?A+C:0")
field(OOPT, "When Non-zero")
field(OUT,"d PP")
}
record(calcout, "d"){
field(INPA, "c")
field(INPB,"1")
field(CALC,"A+B^2")
}
regards,
tasaddaq
|