--- /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")
+}