--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kstmApp/Db/eurotherm2k.template Fri Aug 14 11:30:43 2015 +0200
@@ -0,0 +1,510 @@
+#! Generated by VisualDCT v2.6
+#! DBDSTART
+#! DBD("../../example/dbd/example.dbd")
+#! DBDEND
+
+
+# % macro, P, Device prefix
+# % macro, Q, Device suffix
+# % macro, PORT, Asyn port name
+# % macro, GAD, Global address number, normally 0
+# % macro, LAD, Local address number, normally 1
+# % macro, SPMAX, Maximum setpoint
+# % macro, RRMAX, Maximum ramp rate
+# % macro, SPCMD, Setpoint command, set to 'write' for floating point
+# % macro, PREC, Setpoint precision
+# % macro, EGU, Engineering units for ramp rate, default is C/s
+# % macro, name, object and gui association name
+# % macro, gda_name, Name to export to gda as
+# % macro, gda_desc, Description for gda
+# % gdatag,template,eurotherm2k,$(gda_name=),$(gda_desc=)
+# % gui, $(name=), edmembed, eurotherm2k_embed.edl, eurotherm=$(P)$(Q)
+# % gui, $(name=), edm, eurotherm2k.edl, eurotherm=$(P)$(Q)
+# % autosave 2 SCAN
+record(seq, "$(P)$(Q):UPDATE") {
+ field(DESC, "Update Temp Params")
+ field(DOL1, "1")
+ field(DOL2, "1")
+ field(DOL3, "1")
+ field(DOL4, "1")
+ field(LNK1, "$(P)$(Q):SP:RBV.PROC")
+ field(LNK2, "$(P)$(Q):RR:RBV.PROC")
+ field(LNK3, "$(P)$(Q):O:RBV.PROC")
+ field(LNK4, "$(P)$(Q):PV:RBV.PROC")
+ field(SCAN, "1 second")
+ field(PINI, "YES")
+ field(DOL5, "1")
+ field(LNK5, "$(P)$(Q):MAN:RBV_AI.PROC")
+}
+
+# % autosave 2 SCAN
+record(seq, "$(P)$(Q):PID") {
+ field(DESC, "Update PID Params")
+ field(DOL1, "1")
+ field(DOL2, "1")
+ field(DOL3, "1")
+ field(LNK1, "$(P)$(Q):P:RBV.PROC")
+ field(LNK2, "$(P)$(Q):I:RBV.PROC")
+ field(LNK3, "$(P)$(Q):D:RBV.PROC")
+ field(SCAN, "10 second")
+ field(PINI, "YES")
+}
+
+#% gdatag,pv,rw,$(gda_name=),SP
+record(ao, "$(P)$(Q):SP") {
+ field(DESC, "Setpoint")
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(Q):SP:RBV")
+ field(OUT, "@eurotherm2k.proto $(SPCMD=writeint)($(GAD),$(LAD),S1,$(P)$(Q)) $(PORT)")
+ field(PREC, "$(PREC=0)")
+ field(EGU, "C")
+ field(DRVH, "$(SPMAX=1000)")
+ field(DRVL, "0")
+ field(PINI, "YES")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,pv,ro,$(gda_name=),SPRBV
+# % archiver 10 Monitor
+record(ai, "$(P)$(Q):SP:RBV") {
+ field(DESC, "Setpoint Readback")
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto read($(GAD),$(LAD),S1) $(PORT)")
+ field(PREC, "$(PREC=0)")
+ field(EGU, "C")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+#% gdatag,pv,rw,$(gda_name=),RR
+record(ao, "$(P)$(Q):RR") {
+ field(DESC, "Ramprate")
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(Q):RR:RBV")
+ field(OUT, "@eurotherm2k.proto write($(GAD),$(LAD),RR,$(P)$(Q)) $(PORT)")
+ field(PREC, "3")
+ field(EGU, "$(EGU=C/s)")
+ field(DRVH, "$(RRMAX=1)")
+ field(DRVL, "0")
+ field(PINI, "YES")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,pv,ro,$(gda_name=),RRRBV
+# % archiver 10 Monitor
+record(ai, "$(P)$(Q):RR:RBV") {
+ field(DESC, "Ramprate Readback")
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto read($(GAD),$(LAD),RR) $(PORT)")
+ field(PREC, "3")
+ field(EGU, "$(EGU=C/s)")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+#% gdatag,pv,rw,$(gda_name=),O
+record(ao, "$(P)$(Q):O") {
+ field(DESC, "Output")
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(Q):O:RBV")
+ field(OUT, "@eurotherm2k.proto write($(GAD),$(LAD),OP,$(P)$(Q)) $(PORT)")
+ field(PREC, "1")
+ field(EGU, "%")
+ field(DRVH, "100")
+ field(DRVL, "-100")
+ field(PINI, "YES")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,pv,ro,$(gda_name=),ORBV
+# % archiver 1 Monitor
+record(ai, "$(P)$(Q):O:RBV") {
+ field(DESC, "Ouptut Readback")
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto read($(GAD),$(LAD),OP) $(PORT)")
+ field(PREC, "1")
+ field(EGU, "%")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,pv,ro,$(gda_name=),PVRBV
+# % archiver 1 Monitor
+record(ai, "$(P)$(Q):PV:RBV") {
+ field(DESC, "Temperature Readback")
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto read($(GAD),$(LAD),PV) $(PORT)")
+ field(PREC, "1")
+ field(EGU, "C")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+#% gdatag,pv,rw,$(gda_name=),P
+record(ao, "$(P)$(Q):P") {
+ field(DESC, "P Param")
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(Q):P:RBV")
+ field(OUT, "@eurotherm2k.proto writeint($(GAD),$(LAD),XP,$(P)$(Q)) $(PORT)")
+ field(PREC, "0")
+ field(VAL, "150")
+ field(PINI, "YES")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,pv,ro,$(gda_name=),PRBV
+# % archiver 10 Monitor
+record(ai, "$(P)$(Q):P:RBV") {
+ field(DESC, "P Param Readback")
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto read($(GAD),$(LAD),XP) $(PORT)")
+ field(PREC, "0")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+#% gdatag,pv,rw,$(gda_name=),I
+record(ao, "$(P)$(Q):I") {
+ field(DESC, "I Param")
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(Q):I:RBV")
+ field(OUT, "@eurotherm2k.proto writeint($(GAD),$(LAD),TI,$(P)$(Q)) $(PORT)")
+ field(PREC, "0")
+ field(VAL, "28")
+ field(PINI, "YES")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,pv,ro,$(gda_name=),IRBV
+# % archiver 10 Monitor
+record(ai, "$(P)$(Q):I:RBV") {
+ field(DESC, "I Param Readback")
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto read($(GAD),$(LAD),TI) $(PORT)")
+ field(PREC, "0")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+#% gdatag,pv,rw,$(gda_name=),D
+record(ao, "$(P)$(Q):D") {
+ field(DESC, "D Param")
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(Q):D:RBV")
+ field(OUT, "@eurotherm2k.proto writeint($(GAD),$(LAD),TD,$(P)$(Q)) $(PORT)")
+ field(PREC, "0")
+ field(VAL, "4")
+ field(PINI, "YES")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,pv,ro,$(gda_name=),DRBV
+# % archiver 10 Monitor
+record(ai, "$(P)$(Q):D:RBV") {
+ field(DESC, "D Param Readback")
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto read($(GAD),$(LAD),TD) $(PORT)")
+ field(PREC, "0")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,pv,rw,$(gda_name=),ERR
+record(mbbi, "$(P)$(Q):ERR") {
+ field(DESC, "Error message")
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto readhex($(GAD),$(LAD),EE) $(PORT)")
+ field(ZRVL, "0")
+ field(ZRST, "No Error")
+ field(ONVL, "1")
+ field(ONST, "Invalid Param")
+ field(TWVL, "2")
+ field(TWST, "Read Only")
+ field(THVL, "7")
+ field(THST, "Incorrect Msg")
+ field(FRVL, "8")
+ field(FRST, "Limit Error")
+ field(PINI, "YES")
+ field(SDIS, "$(P)$(Q):DISABLE")
+}
+
+# % gdatag,binary,rw,$(gda_name=),DISABLE
+record(bo, "$(P)$(Q):DISABLE") {
+ field(DESC, "Disable comms")
+ field(PINI, "YES")
+ field(VAL, "1")
+ field(OMSL, "supervisory")
+ field(ZNAM, "Enabled")
+ field(ONAM, "Disabled")
+}
+
+record(bo, "$(P)$(Q):MAN") {
+ field(DESC, "Manual mode enable")
+ field(DTYP, "stream")
+ field(SDIS, "$(P)$(Q):DISABLE")
+ field(FLNK, "$(P)$(Q):MAN:RBV_AI")
+ field(OUT, "@eurotherm2k.proto writeint($(GAD),$(LAD),mA,$(P)$(Q)) $(PORT)")
+ field(ZNAM, "Automatic")
+ field(ONAM, "Manual")
+ field(PINI, "YES")
+}
+
+record(ai, "$(P)$(Q):MAN:RBV_AI") {
+ field(DESC, "Manual mode readback")
+ field(DTYP, "stream")
+ field(SDIS, "$(P)$(Q):DISABLE")
+ field(INP, "@eurotherm2k.proto read($(GAD),$(LAD),mA) $(PORT)")
+ field(FLNK, "$(P)$(Q):MAN:RBV")
+}
+
+# % archiver 10 Monitor
+record(bi, "$(P)$(Q):MAN:RBV") {
+ field(DESC, "Manual mode readback")
+ field(DTYP, "Soft Channel")
+ field(INP, "$(P)$(Q):MAN:RBV_AI")
+ field(ZNAM, "Automatic")
+ field(ONAM, "Manual")
+}
+
+record(mbbi, "$(P)$(Q):CONF:MODE") {
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto getConfMode($(P)$(Q)) $(PORT)")
+ field(ZRVL, "0")
+ field(ONVL, "2")
+ field(ZRST, "operational")
+ field(ONST, "configuration")
+}
+
+record(longin, "$(P)$(Q):ADDR") {
+ field(FLNK, "$(P)$(Q):CONF:DLY")
+}
+
+record(longout, "$(P)$(Q):ADDR:DEVICE") {
+ field(VAL, "$(LAD)")
+ field(OUT, "$(P)$(Q):ADDR PP")
+}
+
+record(bo, "$(P)$(Q):CONF:SETMODE") {
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(Q):CONF:ZEROADDR")
+ field(OUT, "@eurotherm2k.proto setConfMode($(GAD),$(LAD),$(P)$(Q)) $(PORT)")
+ field(ZNAM, "0")
+ field(ONAM, "1")
+}
+
+record(bo, "$(P)$(Q):CONF:CLEARMODE") {
+ field(DTYP, "stream")
+ field(FLNK, "$(P)$(Q):ADDR:DEVICE")
+ field(OUT, "@eurotherm2k.proto clearConfMode($(P)$(Q)) $(PORT)")
+ field(ZNAM, "0")
+ field(ONAM, "1")
+}
+
+record(longout, "$(P)$(Q):CONF:ZEROADDR") {
+ field(VAL, "0")
+ field(OUT, "$(P)$(Q):ADDR PP")
+}
+
+record(stringout, "$(P)$(Q):ADDR:WR") {
+ field(DESC, "write cmd")
+ field(DTYP, "stream")
+ field(OUT, "@eurotherm2k.proto addrWrite($(P)$(Q)) $(PORT)")
+ field(PINI, "NO")
+}
+
+record(stringout, "$(P)$(Q):ADDR:RD") {
+ field(DESC, "Read parameter")
+ field(DTYP, "stream")
+ field(OUT, "@eurotherm2k.proto addrRead($(P)$(Q)) $(PORT)")
+}
+
+record(stringin, "$(P)$(Q):ADDR:RESP") {
+ field(DESC, "Read response")
+}
+
+record(mbbi, "$(P)$(Q):CONF:DECP") {
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto getDecPlaces($(P)$(Q)) $(PORT)")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(ZRST, "nnnn.")
+ field(ONST, "nnn.n")
+ field(DESC, "decimal places")
+ field(TWVL, "2")
+ field(TWST, "nn.nn")
+}
+
+record(mbbo, "$(P)$(Q):CONF:SET:DECP") {
+ field(DESC, "decimal places")
+ field(DTYP, "stream")
+ field(OUT, "@eurotherm2k.proto setDecPlaces($(P)$(Q)) $(PORT)")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(ZRST, "nnnn.")
+ field(ONST, "nnn.n")
+ field(TWST, "nn.nn")
+}
+
+record(fanout, "$(P)$(Q):CONF:READ") {
+ field(FLNK, "$(P)$(Q):CONF:DECP")
+ field(LNK1, "$(P)$(Q):CONF:RREGU")
+}
+
+record(mbbi, "$(P)$(Q):CONF:RREGU") {
+ field(DTYP, "stream")
+ field(INP, "@eurotherm2k.proto getRampRateUnit($(P)$(Q)) $(PORT)")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(ZRST, "sec")
+ field(ONST, "min")
+ field(DESC, "decimal places")
+ field(TWVL, "2")
+ field(TWST, "hour")
+}
+
+record(mbbo, "$(P)$(Q):CONF:SET:RREGU") {
+ field(DESC, "decimal places")
+ field(DTYP, "stream")
+ field(OUT, "@eurotherm2k.proto setRampRateUnit($(P)$(Q)) $(PORT)")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(ZRST, "sec")
+ field(ONST, "min")
+ field(TWST, "hour")
+}
+
+
+record(seq, "$(P)$(Q):CONF:DLY") {
+ field(SELM, "Specified")
+ field(SELL, "1")
+ field(DLY1, "5.0")
+ field(DOL1, "1")
+ field(LNK1, "$(P)$(Q):CONF:MODE.PROC CA MS")
+}
+
+#! Further lines contain data used by VisualDCT
+#! View(206,1478,1.1)
+#! Record("$(P)$(Q):UPDATE",960,222,0,0,"$(P)$(Q):UPDATE")
+#! Field("$(P)$(Q):UPDATE.LNK1",16777215,1,"$(P)$(Q):UPDATE.LNK1")
+#! Link("$(P)$(Q):UPDATE.LNK1","$(P)$(Q):SP:RBV.PROC")
+#! Field("$(P)$(Q):UPDATE.LNK2",16777215,1,"$(P)$(Q):UPDATE.LNK2")
+#! Link("$(P)$(Q):UPDATE.LNK2","$(P)$(Q):RR:RBV.PROC")
+#! Field("$(P)$(Q):UPDATE.LNK3",16777215,1,"$(P)$(Q):UPDATE.LNK3")
+#! Link("$(P)$(Q):UPDATE.LNK3","$(P)$(Q):O:RBV.PROC")
+#! Field("$(P)$(Q):UPDATE.LNK4",16777215,1,"$(P)$(Q):UPDATE.LNK4")
+#! Link("$(P)$(Q):UPDATE.LNK4","$(P)$(Q):PV:RBV.PROC")
+#! Field("$(P)$(Q):UPDATE.LNK5",16777215,1,"$(P)$(Q):UPDATE.LNK5")
+#! Link("$(P)$(Q):UPDATE.LNK5","$(P)$(Q):MAN:RBV_AI.PROC")
+#! Record("$(P)$(Q):PID",1080,1258,0,1,"$(P)$(Q):PID")
+#! Field("$(P)$(Q):PID.LNK1",16777215,1,"$(P)$(Q):PID.LNK1")
+#! Link("$(P)$(Q):PID.LNK1","$(P)$(Q):P:RBV.PROC")
+#! Field("$(P)$(Q):PID.LNK2",16777215,1,"$(P)$(Q):PID.LNK2")
+#! Link("$(P)$(Q):PID.LNK2","$(P)$(Q):I:RBV.PROC")
+#! Field("$(P)$(Q):PID.LNK3",16777215,1,"$(P)$(Q):PID.LNK3")
+#! Link("$(P)$(Q):PID.LNK3","$(P)$(Q):D:RBV.PROC")
+#! Record("$(P)$(Q):SP",1200,224,0,0,"$(P)$(Q):SP")
+#! Field("$(P)$(Q):SP.FLNK",16777215,1,"$(P)$(Q):SP.FLNK")
+#! Link("$(P)$(Q):SP.FLNK","$(P)$(Q):SP:RBV")
+#! Field("$(P)$(Q):SP.SDIS",16777215,1,"$(P)$(Q):SP.SDIS")
+#! Link("$(P)$(Q):SP.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):SP:RBV",1480,240,0,0,"$(P)$(Q):SP:RBV")
+#! Field("$(P)$(Q):SP:RBV.PROC",16777215,0,"$(P)$(Q):SP:RBV.PROC")
+#! Field("$(P)$(Q):SP:RBV.SDIS",16777215,1,"$(P)$(Q):SP:RBV.SDIS")
+#! Link("$(P)$(Q):SP:RBV.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):RR",1180,564,0,0,"$(P)$(Q):RR")
+#! Field("$(P)$(Q):RR.FLNK",16777215,1,"$(P)$(Q):RR.FLNK")
+#! Link("$(P)$(Q):RR.FLNK","$(P)$(Q):RR:RBV")
+#! Field("$(P)$(Q):RR.SDIS",16777215,1,"$(P)$(Q):RR.SDIS")
+#! Link("$(P)$(Q):RR.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):RR:RBV",1500,500,0,0,"$(P)$(Q):RR:RBV")
+#! Field("$(P)$(Q):RR:RBV.PROC",16777215,0,"$(P)$(Q):RR:RBV.PROC")
+#! Field("$(P)$(Q):RR:RBV.SDIS",16777215,1,"$(P)$(Q):RR:RBV.SDIS")
+#! Link("$(P)$(Q):RR:RBV.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):O",1180,824,0,0,"$(P)$(Q):O")
+#! Field("$(P)$(Q):O.FLNK",16777215,1,"$(P)$(Q):O.FLNK")
+#! Link("$(P)$(Q):O.FLNK","$(P)$(Q):O:RBV")
+#! Field("$(P)$(Q):O.SDIS",16777215,1,"$(P)$(Q):O.SDIS")
+#! Link("$(P)$(Q):O.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):O:RBV",1480,740,0,0,"$(P)$(Q):O:RBV")
+#! Field("$(P)$(Q):O:RBV.PROC",16777215,0,"$(P)$(Q):O:RBV.PROC")
+#! Field("$(P)$(Q):O:RBV.SDIS",16777215,1,"$(P)$(Q):O:RBV.SDIS")
+#! Link("$(P)$(Q):O:RBV.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):PV:RBV",1460,980,0,0,"$(P)$(Q):PV:RBV")
+#! Field("$(P)$(Q):PV:RBV.PROC",16777215,0,"$(P)$(Q):PV:RBV.PROC")
+#! Field("$(P)$(Q):PV:RBV.SDIS",16777215,1,"$(P)$(Q):PV:RBV.SDIS")
+#! Link("$(P)$(Q):PV:RBV.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):P",1320,1231,0,0,"$(P)$(Q):P")
+#! Field("$(P)$(Q):P.FLNK",16777215,1,"$(P)$(Q):P.FLNK")
+#! Link("$(P)$(Q):P.FLNK","$(P)$(Q):P:RBV")
+#! Field("$(P)$(Q):P.SDIS",16777215,1,"$(P)$(Q):P.SDIS")
+#! Link("$(P)$(Q):P.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):P:RBV",1580,1234,0,0,"$(P)$(Q):P:RBV")
+#! Field("$(P)$(Q):P:RBV.PROC",16777215,0,"$(P)$(Q):P:RBV.PROC")
+#! Field("$(P)$(Q):P:RBV.SDIS",16777215,1,"$(P)$(Q):P:RBV.SDIS")
+#! Link("$(P)$(Q):P:RBV.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):I",1300,1511,0,0,"$(P)$(Q):I")
+#! Field("$(P)$(Q):I.FLNK",16777215,1,"$(P)$(Q):I.FLNK")
+#! Link("$(P)$(Q):I.FLNK","$(P)$(Q):I:RBV")
+#! Field("$(P)$(Q):I.SDIS",16777215,1,"$(P)$(Q):I.SDIS")
+#! Link("$(P)$(Q):I.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):I:RBV",1580,1514,0,0,"$(P)$(Q):I:RBV")
+#! Field("$(P)$(Q):I:RBV.PROC",16777215,0,"$(P)$(Q):I:RBV.PROC")
+#! Field("$(P)$(Q):I:RBV.SDIS",16777215,1,"$(P)$(Q):I:RBV.SDIS")
+#! Link("$(P)$(Q):I:RBV.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):D",1300,1731,0,0,"$(P)$(Q):D")
+#! Field("$(P)$(Q):D.FLNK",16777215,1,"$(P)$(Q):D.FLNK")
+#! Link("$(P)$(Q):D.FLNK","$(P)$(Q):D:RBV")
+#! Field("$(P)$(Q):D.SDIS",16777215,1,"$(P)$(Q):D.SDIS")
+#! Link("$(P)$(Q):D.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):D:RBV",1560,1734,0,0,"$(P)$(Q):D:RBV")
+#! Field("$(P)$(Q):D:RBV.PROC",16777215,0,"$(P)$(Q):D:RBV.PROC")
+#! Field("$(P)$(Q):D:RBV.SDIS",16777215,1,"$(P)$(Q):D:RBV.SDIS")
+#! Link("$(P)$(Q):D:RBV.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):ERR",1480,2234,0,0,"$(P)$(Q):ERR")
+#! Field("$(P)$(Q):ERR.SDIS",16777215,1,"$(P)$(Q):ERR.SDIS")
+#! Link("$(P)$(Q):ERR.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):DISABLE",1920,1040,0,1,"$(P)$(Q):DISABLE")
+#! Field("$(P)$(Q):DISABLE.VAL",16777215,0,"$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):MAN",1300,1971,0,1,"$(P)$(Q):MAN")
+#! Field("$(P)$(Q):MAN.FLNK",16777215,1,"$(P)$(Q):MAN.FLNK")
+#! Link("$(P)$(Q):MAN.FLNK","$(P)$(Q):MAN:RBV_AI")
+#! Field("$(P)$(Q):MAN.SDIS",16777215,1,"$(P)$(Q):MAN.SDIS")
+#! Link("$(P)$(Q):MAN.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Record("$(P)$(Q):MAN:RBV_AI",1560,1954,0,0,"$(P)$(Q):MAN:RBV_AI")
+#! Field("$(P)$(Q):MAN:RBV_AI.SDIS",16777215,1,"$(P)$(Q):MAN:RBV_AI.SDIS")
+#! Link("$(P)$(Q):MAN:RBV_AI.SDIS","$(P)$(Q):DISABLE.VAL")
+#! Field("$(P)$(Q):MAN:RBV_AI.FLNK",16777215,1,"$(P)$(Q):MAN:RBV_AI.FLNK")
+#! Link("$(P)$(Q):MAN:RBV_AI.FLNK","$(P)$(Q):MAN:RBV")
+#! Field("$(P)$(Q):MAN:RBV_AI.VAL",16777215,1,"$(P)$(Q):MAN:RBV_AI.VAL")
+#! Field("$(P)$(Q):MAN:RBV_AI.PROC",16777215,0,"$(P)$(Q):MAN:RBV_AI.PROC")
+#! Record("$(P)$(Q):MAN:RBV",1920,1934,0,0,"$(P)$(Q):MAN:RBV")
+#! Field("$(P)$(Q):MAN:RBV.INP",16777215,0,"$(P)$(Q):MAN:RBV.INP")
+#! Link("$(P)$(Q):MAN:RBV.INP","$(P)$(Q):MAN:RBV_AI.VAL")
+#! Record("$(P)$(Q):CONF:MODE",420,1660,0,1,"$(P)$(Q):CONF:MODE")
+#! Field("$(P)$(Q):CONF:MODE.PROC",16777215,1,"$(P)$(Q):CONF:MODE.PROC")
+#! Record("$(P)$(Q):ADDR",720,1370,0,1,"$(P)$(Q):ADDR")
+#! Field("$(P)$(Q):ADDR.VAL",16777215,0,"$(P)$(Q):ADDR.VAL")
+#! Field("$(P)$(Q):ADDR.FLNK",16777215,1,"$(P)$(Q):ADDR.FLNK")
+#! Link("$(P)$(Q):ADDR.FLNK","$(P)$(Q):CONF:DLY")
+#! Record("$(P)$(Q):ADDR:DEVICE",420,1436,0,0,"$(P)$(Q):ADDR:DEVICE")
+#! Field("$(P)$(Q):ADDR:DEVICE.OUT",16777215,1,"$(P)$(Q):ADDR:DEVICE.OUT")
+#! Link("$(P)$(Q):ADDR:DEVICE.OUT","$(P)$(Q):ADDR.VAL")
+#! Record("$(P)$(Q):CONF:SETMODE",120,1154,0,1,"$(P)$(Q):CONF:SETMODE")
+#! Field("$(P)$(Q):CONF:SETMODE.FLNK",16777215,1,"$(P)$(Q):CONF:SETMODE.FLNK")
+#! Link("$(P)$(Q):CONF:SETMODE.FLNK","$(P)$(Q):CONF:ZEROADDR")
+#! Record("$(P)$(Q):CONF:CLEARMODE",120,1394,0,1,"$(P)$(Q):CONF:CLEARMODE")
+#! Field("$(P)$(Q):CONF:CLEARMODE.FLNK",16777215,1,"$(P)$(Q):CONF:CLEARMODE.FLNK")
+#! Link("$(P)$(Q):CONF:CLEARMODE.FLNK","$(P)$(Q):ADDR:DEVICE")
+#! Record("$(P)$(Q):CONF:ZEROADDR",420,1256,0,0,"$(P)$(Q):CONF:ZEROADDR")
+#! Field("$(P)$(Q):CONF:ZEROADDR.OUT",16777215,1,"$(P)$(Q):CONF:ZEROADDR.OUT")
+#! Link("$(P)$(Q):CONF:ZEROADDR.OUT","$(P)$(Q):ADDR.VAL")
+#! Record("$(P)$(Q):ADDR:WR",40,908,0,1,"$(P)$(Q):ADDR:WR")
+#! Record("$(P)$(Q):ADDR:RD",260,921,0,1,"$(P)$(Q):ADDR:RD")
+#! Record("$(P)$(Q):ADDR:RESP",460,930,0,1,"$(P)$(Q):ADDR:RESP")
+#! Record("$(P)$(Q):CONF:DECP",360,438,0,0,"$(P)$(Q):CONF:DECP")
+#! Record("$(P)$(Q):CONF:SET:DECP",660,418,0,1,"$(P)$(Q):CONF:SET:DECP")
+#! Record("$(P)$(Q):CONF:READ",20,556,0,1,"$(P)$(Q):CONF:READ")
+#! Field("$(P)$(Q):CONF:READ.FLNK",16777215,1,"$(P)$(Q):CONF:READ.FLNK")
+#! Link("$(P)$(Q):CONF:READ.FLNK","$(P)$(Q):CONF:DECP")
+#! Field("$(P)$(Q):CONF:READ.LNK1",16777215,1,"$(P)$(Q):CONF:READ.LNK1")
+#! Link("$(P)$(Q):CONF:READ.LNK1","$(P)$(Q):CONF:RREGU")
+#! Record("$(P)$(Q):CONF:RREGU",360,658,0,0,"$(P)$(Q):CONF:RREGU")
+#! Record("$(P)$(Q):CONF:SET:RREGU",660,658,0,1,"$(P)$(Q):CONF:SET:RREGU")
+#! Record("$(P)$(Q):CONF:DLY",760,1674,0,1,"$(P)$(Q):CONF:DLY")
+#! Field("$(P)$(Q):CONF:DLY.LNK1",16777215,0,"$(P)$(Q):CONF:DLY.LNK1")
+#! Link("$(P)$(Q):CONF:DLY.LNK1","$(P)$(Q):CONF:MODE.PROC")