diff -r 000000000000 -r 77d8eafe2a07 IOCINFRAApp/Db/SATECO_base.db --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IOCINFRAApp/Db/SATECO_base.db Thu Mar 07 09:23:26 2019 +0100 @@ -0,0 +1,473 @@ +# $Source: /cvs/G/DRV/SATECO/SATECO_base.template,v $ +# $Date: 2008/10/28 14:01:25 $ +# $Revision: 1.20 $ +# $Author: wang_x1 $ + + +# Required substitutions: +# NAME - prefix, e.g. X99SA-ES1-CRYOJET: +# UNIT - temperature unit +# PTCOLS - StreamDevice protocol file +# PORT - port name + +# The Alarm Status of this record is used to trigger WATCHDOG +record(stringin, "$(NAME):VERSION") +{ + field(DESC, "control version") + field(DTYP, "stream") + field(INP, "@$(PTCOLS) GET_VERSION $(PORT)") + field(SCAN, "1 second") + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + + field(FLNK, "$(NAME):ONESHOT") +} + +############################################## +# Controller Mode +############################################## +record(mbbi, "$(NAME):MODE_RBV") +{ + field(DESC, "control mode") + field(DTYP, "stream") + field(INP, "@$(PTCOLS) GET_MODE $(PORT)") + + field(ZRVL, "0") + field(ONVL, "1") + + field(ZRST, "Local") + field(ONST, "Remote") + + field(SCAN, "1 second") + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") +} + +record(mbbo, "$(NAME):MODE") +{ + field(DESC, "control mode") + field(DTYP, "stream") + field(OUT, "@$(PTCOLS) SET_MODE $(PORT)") + + field(ZRVL, "0") + field(ONVL, "1") + + field(ZRST, "Local") + field(ONST, "Remote") + + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") +} + + +############################################## +# Connection Status Monitor +############################################## +record(mbbo, "$(NAME):CONN-STAT") +{ + field(DESC, "connection status") + + field(ZRVL, "0") + field(ONVL, "1") + field(TWVL, "2") + + field(ZRST, "Disconnected") + field(ONST, "Connected") + field(TWST, "Connecting") + + field(ZRSV, "MAJOR") + field(ONSV, "NO_ALARM") + field(TWSV, "MINOR") +} +record(bo, "$(NAME):CONN") +{ + field(DESC, "turn on/off connection") + + field(ZNAM, "Disconnect") + field(ONAM, "Connect") + field(ZSV, "MAJOR") + field(OSV, "NO_ALARM") + + field(OUT, "$(NAME):CONN-DFAN.VAL PP") + field(FLNK, "$(NAME):CONN-CALC") +} + +record(dfanout, "$(NAME):CONN-DFAN") +{ + field(DESC, "fanout connect action") + field(OMSL, "supervisory") + + field(OUTA, "$(NAME):ASYNIO.ENBL") +# field(OUTB, "$(NAME):ENBLSCAN.VAL") + field(OUTC, "$(NAME):WATCHDOG.VAL PP") +} + +record(calcout, "$(NAME):CONN-CALC") +{ + field(DESC, "connecting") + field(INPA, "$(NAME):CONN.VAL") + field(CALC, "A=1?2:0") + field(DOPT, "Use CALC") + field(OOPT, "Transition To Non-zero") + field(OUT, "$(NAME):CONN-STAT.VAL PP MS") + field(SCAN, "Passive") +} + +record(calcout, "$(NAME):ONESHOT") +{ + field(DESC, "watchdog trigger") + field(INPA, "$(NAME):VERSION.STAT") + field(CALC, "A=0?1:0") + field(OOPT, "When Non-zero") + field(OUT, "$(NAME):WATCHDOG.VAL PP MS") + field(SCAN, "Passive") +} + +record(bo, "$(NAME):ENBLSCAN") +{ + field(DESC, "enable/disable record scan") + field(DTYP, "Soft Channel") + field(SCAN, "Passive") + + field(ZNAM, "Disable") + field(ONAM, "Enable") +} + +record(bo, "$(NAME):WATCHDOG") +{ + field(DESC, "connection indicator") + field(DTYP, "Soft Channel") + + field(HIGH, "15") + field(SCAN, "Passive") + + field(OUT, "$(NAME):CONN-STAT.VAL PP") + + field(ZNAM, "Disconnected") + field(ONAM, "Connected") + field(ZSV, "MAJOR") + field(OSV, "NO_ALARM") +} + +record(asyn, "$(NAME):ASYNIO") +{ + field(DESC, "asyn port") + field(PORT, "$(PORT)") +} + +record(calcout, "$(NAME):TRIG-CONN") +{ + field(DESC, "trigger scan") + field(INPA, "$(NAME):WATCHDOG.VAL CPP MS") + field(CALC, "A") + field(OUT, "$(NAME):CONN.VAL PP MS") + field(OOPT, "Transition To Zero") +} + +########################################### +# PID +########################################### +record(ao, "$(NAME):P") +{ + field(DESC, "PID - proportion set-point") + field(DTYP, "stream") + field(OUT, "@$(PTCOLS) SET_P($(NAME)) $(PORT)") + + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + field(PREC, "1") +} + +record(ai, "$(NAME):P_RBV") +{ + field(DESC, "PID - proportion readback") + field(DTYP, "stream") + field(INP, "@$(PTCOLS) GET_P $(PORT)") + + field(SCAN, "1 second") + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + field(PREC, "1") +} +record(ao, "$(NAME):I") +{ + field(DESC, "PID - integral set-point") + field(DTYP, "stream") + field(OUT, "@$(PTCOLS) SET_I($(NAME)) $(PORT)") + + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + field(PREC, "1") +} + +record(ai, "$(NAME):I_RBV") +{ + field(DESC, "PID - integral readback") + field(DTYP, "stream") + field(INP, "@$(PTCOLS) GET_I $(PORT)") + + field(SCAN, "1 second") + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + field(PREC, "1") +} +record(ao, "$(NAME):D") +{ + field(DESC, "PID - derivative set-point") + field(DTYP, "stream") + field(OUT, "@$(PTCOLS) SET_D($(NAME)) $(PORT)") + + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + field(PREC, "1") +} + +record(ai, "$(NAME):D_RBV") +{ + field(DESC, "PID - derivative readback") + field(DTYP, "stream") + field(INP, "@$(PTCOLS) GET_D $(PORT)") + + field(SCAN, "1 second") + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + field(PREC, "1") +} + +########################################### +# Heating Level +########################################### +record(ao, "$(NAME):HT-LVL") +{ + field(DESC, "heater level set-point") + field(DTYP, "stream") + field(OUT, "@$(PTCOLS) SET_HEAT-LEVEL $(PORT)") + + + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + + field(HOPR, "100") + field(LOPR, "0") + field(PREC, "1") + field(EGU, "%") +} + +record(ai, "$(NAME):HT-LVL_RBV") +{ + field(DESC, "heater level readback") + field(DTYP, "stream") + field(INP, "@$(PTCOLS) GET_HEAT-LEVEL $(PORT)") + + field(SCAN, "1 second") + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + + field(HOPR, "100") + field(LOPR, "0") + field(PREC, "1") + field(EGU, "%") +} + +########################################### +# Temperature +########################################### + +record(ai, "$(NAME):TEMP_RBV") +{ + field(DESC, "temperature") + field(DTYP, "stream") + field(INP, "@$(PTCOLS) GET_TEMP $(PORT)") + field(FLNK, "$(NAME):TEMP-AVG") + + field(SCAN, "1 second") + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + + field(PREC, "2") + field(EGU, "$(UNIT)") +} + +record(ao, "$(NAME):TEMP") +{ + field(DESC, "temperature") + field(DTYP, "stream") + field(OUT, "@$(PTCOLS) SET_TEMP $(PORT)") + + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + + field(PREC, "2") + field(EGU, "$(UNIT)") + + field(FLNK, "$(NAME):GO-1 PP MS") +} + +#! +record(ai, "$(NAME):TEMP-SP") +{ + field(DESC, "temperature setpoint") + field(DTYP, "stream") + field(INP, "@$(PTCOLS) GET_TEMP-SP $(PORT)") + + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") + + field(PREC, "2") + field(EGU, "$(UNIT)") +} + +########################################### +# busy record for temperature set-point +########################################### +record(calcout, "$(NAME):GO-1") +{ + field(DESC, "") + field(INPA, "$(NAME):TEMP.SIMM") + field(CALC, "A=1?0:1") + + field(OUT, "$(NAME):GO-2 PP MS") + field(OOPT, "When Non-zero") +} + +record(bo, "$(NAME):GO-2") +{ + field(DESC, "") + field(DTYP, "Soft Channel") + field(OMSL, "supervisory") + field(VAL, "1") + field(OUT, "$(NAME):BUSY.VAL PP MS") + # update TEMP-STAT, not waiting for next readback + field(FLNK, "$(NAME):RNG-CALC") +} + +record(busy, "$(NAME):BUSY") +{ +} + +########################################### +# Temperature Status Monitor +########################################### + +record(longout, "$(NAME):SETTL-PRD") +{ + field(DESC, "settling time") + field(EGU, "s") + field(VAL, "120") + field(FLNK, "$(NAME):TEMP-AVG") +} + +record(ao, "$(NAME):TOLERANCE") +{ + field(DESC, "tolerance band width") + field(EGU, "$(UNIT)") + field(VAL, "1") + field(PREC, "2") +} + +record(sub, "$(NAME):TEMP-AVG") +{ + field(DESC, "temperature average") + field(INPA, "$(NAME):SETTL-PRD.VAL") + field(INPB, "$(NAME):TEMP_RBV.VAL") + field(INPD, "0") # Continuous Mode + field(INAM, "initSubAve") + field(SNAM, "SubAve") + field(PREC, "2") + field(SCAN, "Passive") + + field(FLNK, "$(NAME):RNG-CALC") +} + +record(calcout, "$(NAME):RNG-CALC") +{ + field(DESC, "temperature status calc") + field(INPA, "$(NAME):TEMP-AVG.VAL") + field(INPB, "$(NAME):TEMP.VAL") + field(INPC, "$(NAME):TOLERANCE.VAL") + field(INPD, "$(NAME):TEMP_RBV.VAL") + + field(CALC, "(ABS(A-B)<=C)&&(ABS(D-B)<=C)?0:1") + field(DOPT, "Use CALC") + field(OOPT, "When Zero") + + field(OUT, "$(NAME):BUSY.VAL PP MS") + field(FLNK, "$(NAME):TEMP-STAT.VAL PP MS") + + field(SCAN, "Passive") +} + +record(mbbo, "$(NAME):TEMP-STAT") +{ + field(DESC, "temperature status") + + field(DOL, "$(NAME):RNG-CALC MS") + field(OMSL, "closed_loop") + + field(ZRVL, "0") + field(ONVL, "1") + + field(ZRST, "Inside Range") + field(ONST, "Out of Range") + + field(ZRSV, "NO_ALARM") + field(ONSV, "MAJOR") + + field(SCAN, "Passive") +} +########################################### +# For Debug Use +########################################### +record(stringout, "$(NAME):QUERY") +{ + field(DESC, "debug - query") + field(DTYP, "stream") + field(OUT, "@$(PTCOLS) QUERY($(NAME):RECV.VAL) $(PORT)") + field(DISV, "0") + field(SDIS, "$(NAME):WATCHDOG.VAL") +} +record(stringout, "$(NAME):RECV") +{ + field(DESC, "debug - received message") + field(DTYP, "Soft Channel") +} + +########################################### +# retrieve temp set-point when connected +########################################### +record(calcout, "$(NAME):TRIG-STAT") +{ + field(DESC, "trigger TRIG-SP") + field(INPA, "$(NAME):CONN-STAT.VAL CPP MS") + field(CALC, "A=1?1:0") + field(OUT, "$(NAME):TEMP-SIMM1.VAL PP MS") + field(OOPT, "Transition To Non-zero") +} +record(bo, "$(NAME):TEMP-SIMM1") +{ + field(DESC, "set TEMP in simulation") + field(OUT, "$(NAME):TEMP.SIMM") + field(FLNK, "$(NAME):SEQ") +} + +record(sseq, "$(NAME):SEQ") +{ + field(SELM, "All") + + field(WAIT1,"Wait") + field(DO1, "1") + field(LNK1, "$(NAME):TEMP-SP.PROC CA") + + field(DOL2, "$(NAME):TEMP-SP.VAL") + field(LNK2, "$(NAME):TEMP.VAL PP") + + field(FLNK, "$(NAME):TEMP-SIMM2") +} + +record(bo, "$(NAME):TEMP-SIMM2") +{ + field(DESC, "reset TEMP out simulation") + field(DOL, "0") + field(OUT, "$(NAME):TEMP.SIMM") + field(OMSL, "closed_loop") +}