diff -r ec018606c207 -r 68a4f654dc00 db/eurotherm2k.template --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/db/eurotherm2k.template Thu Jul 05 08:48:18 2018 +0000 @@ -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")