grecord(busy,"$(PREF)$(R):timerBusy") { field(DESC,"Busy for $(PREF)$(R)") field(SCAN,"Passive") field(VAL ,"0") field(DTYP,"Soft Channel") field(FLNK,"$(PREF)$(R):timerDummy") field(ZNAM,"DONE") field(ONAM,"BUSY") } grecord(bo, "$(PREF)$(R):timerDummy") { field(DESC,"Dummy for $(PREF)$(R)") field(SCAN,"Passive") # field(VAL , "1" ) # field(OUT , "$(PREF)$(R):timerCalc NPP") } # # This record will write zero into the busy record if # once the required time runs out, thus allowing the scan to progress. # If the busy is 0 it will not write into the busy record # grecord(calcout, "$(PREF)$(R):timerCalc") { field(VAL , "1") field(PINI, "YES") field(DESC,"Timer 4 $(PREF)$(R)" ) field(SCAN,"1 second") field(CALC,"A>E&&D>0?(B>C?0:B+1):B") field(INPA,"IBCAD00CRCUR6") field(INPB,"$(PREF)$(R):timerCalc") field(INPC,"120") field(INPD,"$(PREF)$(R):timerBusy") field(INPE,"30") field(OOPT,"When Zero") field(DOPT,"Use OCAL") field(OCAL, "0") field(OUT, "$(PREF)$(R):timerBusy PP NMS") field(SDIS,"$(PREF)$(R):timerBusy NPP NMS") field(DISV,"0") }