db/LakeShore331.db
author Heinz Junkes <junkes@fhi-berlin.mpg.de>
Thu, 07 Mar 2019 09:23:26 +0100
changeset 0 77d8eafe2a07
permissions -rw-r--r--
Initial repo

record (stringin, "$(P)LS331:$(Q):IDN") {
  field(DTYP, "stream")
  field(INP, "@LK331.proto getIDN $(PORT)")
}

record(stringin, "$(P)LS331:$(Q):serial") {
  field(DTYP, "stream")
  field(INP, "@LK331.proto getSERIAL $(PORT)")
}

record(stringin, "$(P)LS331:$(Q):model") {
  field(DTYP, "stream")
  field(INP, "@LK331.proto getSERIAL $(PORT)")
}


grecord(dfanout,"$(P)LS331:$(Q):Init") {
	field(SCAN,"1 second")
	field(OUTA,"$(P)LS331:$(Q):Input_sel.PROC  PP NMS")
	field(OUTB,"$(P)LS331:$(Q):Units_sel.PROC  PP NMS")
	field(OUTC,"$(P)LS331:$(Q):HeatRg.PROC  PP NMS")
	field(OUTD,"$(P)LS331:$(Q):Gain_set.PROC  PP NMS")
	field(OUTE,"$(P)LS331:$(Q):Rset_set.PROC  PP NMS")
	field(OUTF,"$(P)LS331:$(Q):Rate_set.PROC  PP NMS")
	field(OUTG,"$(P)LS331:$(Q):RampR_set.PROC  PP NMS")
	field(OUTH,"$(P)LS331:$(Q):InitB.PROC  PP NMS")
}

grecord(dfanout,"$(P)LS331:$(Q):InitB") {
	field(SCAN,"Passive")
	field(OUTA,"$(P)LS331:$(Q):Ramp_on.PROC  PP NMS")
	field(OUTB,"$(P)LS331:$(Q):wr_SP.PROC  PP NMS")
	field(OUTC,"$(P)LS331:$(Q):read.PROC  PP NMS")
	field(OUTD,"$(P)LS331:$(Q):readPID.PROC  PP NMS")
	field(OUTE,"$(P)LS331:$(Q):Init.SCAN CA NMS")
}

record(ao, "$(P)LS331:$(Q):Rset_set") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):setRset.VAL  PP MS")
  field(PREC, "0")
}

record(ao, "$(P)LS331:$(Q):Rate_set") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):setRate.VAL  PP MS")
  field(PREC, "0")
}

record(ao, "$(P)LS331:$(Q):RampR_set") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):setRamp.VAL  PP MS")
  field(PREC, "1")
}

record(ao, "$(P)LS331:$(Q):wr_SP") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):SP_scalc.VAL  PP MS")
  field(PREC, "3")
}

record(ao, "$(P)LS331:$(Q):Gain_set") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):setGain.VAL  PP MS")
  field(PREC, "0")
}

record(mbbi, "$(P)LS331:$(Q):Rg_rdbk") {
  field(DTYP, "Soft Channel")
  field(INP, "$(P)LS331:$(Q):Range.VAL  NPP MS")
  field(ZRST, "OFF")
  field(ONST, "100 mA")
  field(TWST, "300 mA")
  field(THST, "1 A")
}

record(mbbi, "$(P)LS331:$(Q):Ramp_state") {
  field(DTYP, "Soft Channel")
  field(INP, "$(P)LS331:$(Q):Ramp_scalc.VAL  NPP MS")
  field(ZRST, "OFF")
  field(ONST, "ON")
}

record(mbbo, "$(P)LS331:$(Q):Input_sel") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):SetCtl.VAL  NPP MS")
  field(ZRVL, "0")
  field(ONVL, "1")
  field(TWVL, "0")
  field(THVL, "0")
  field(ZRST, "A")
  field(ONST, "B")
}

record(mbbo, "$(P)LS331:$(Q):Units_sel") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):SetCtl.VAL  NPP MS")
  field(ZRVL, "1")
  field(ONVL, "2")
  field(TWVL, "0")
  field(THVL, "0")
  field(ZRST, "K")
  field(ONST, "C")
}

record(mbbo, "$(P)LS331:$(Q):HeatRg") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):SetHeat.VAL  PP MS")
  field(ZRVL, "0")
  field(ONVL, "1")
  field(TWVL, "2")
  field(THVL, "3")
  field(FRVL, "0")
  field(FVVL, "0")
  field(ZRST, "OFF")
  field(ONST, "100 mA")
  field(TWST, "300 mA")
  field(THST, "1 A")
}

record(mbbo, "$(P)LS331:$(Q):Ramp_on") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)LS331:$(Q):setRamp.PROC  PP MS")
  field(ZRVL, "0")
  field(ONVL, "1")
  field(TWVL, "0")
  field(THVL, "0")
  field(ZRST, "OFF")
  field(ONST, "ON")
}

record(seq, "$(P)LS331:$(Q):readPID") {
  field(PREC, "1")
  field(DLY1, ".05")
  field(LNK1, "$(P)LS331:$(Q):rd_Gain.PROC  PP MS")
  field(DLY2, ".05")
  field(LNK2, "$(P)LS331:$(Q):rd_Rset.PROC  PP MS")
  field(DLY3, ".05")
  field(LNK3, "$(P)LS331:$(Q):rd_Rate.PROC  PP MS")
  field(DLY4, ".05")
  field(LNK4, "$(P)LS331:$(Q):rd_Ramp.PROC  PP MS")
}

record(seq, "$(P)LS331:$(Q):read") {
  field(PREC, "1")
  field(DLY1, ".05")
  field(LNK1, "$(P)LS331:$(Q):readCtl.PROC  PP MS")
  field(DLY2, ".05")
  field(LNK2, "$(P)LS331:$(Q):rd_rdat_scalc.PROC  PP MS")
  field(DLY3, ".05")
  field(LNK3, "$(P)LS331:$(Q):rd_SplA_scalc.PROC  PP MS")
  field(DLY4, ".05")
  field(LNK4, "$(P)LS331:$(Q):rd_SplB_scalc.PROC  PP MS")
  field(DLY5, ".05")
  field(LNK5, "$(P)LS331:$(Q):rd_Heater.PROC  PP MS")
  field(DLY6, ".05")
  field(LNK6, "$(P)LS331:$(Q):readSP.PROC  PP MS")
}

record(stringout, "$(P)LS331:$(Q):rd_Rset") {
  field(DTYP, "Soft Channel")
  field(FLNK, "0")
  field(VAL, "RSET?")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Rset.AOUT  PP MS")
}

record(stringout, "$(P)LS331:$(Q):rd_Rate") {
  field(DTYP, "Soft Channel")
  field(FLNK, "0")
  field(VAL, "RATE?")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Rate.AOUT  PP MS")
}

record(stringout, "$(P)LS331:$(Q):rd_Ramp") {
  field(DTYP, "Soft Channel")
  field(FLNK, "0")
  field(VAL, "RAMP?")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Ramp.AOUT  PP MS")
}

record(stringout, "$(P)LS331:$(Q):readSP") {
  field(DTYP, "Soft Channel")
  field(FLNK, "0")
  field(VAL, "SETP?")
  field(OUT, "$(P)LS331:$(Q):rd_SP.AOUT  PP MS")
}

record(stringout, "$(P)LS331:$(Q):rd_Gain") {
  field(DTYP, "Soft Channel")
  field(FLNK, "0")
  field(VAL, "GAIN?")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Gain.AOUT  PP MS")
}

record(asyn, "$(P)LS331:$(Q):wr_rd_Rset") {
  field(FLNK, "$(P)LS331:$(Q):I.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):wr_rd_Rate") {
  field(FLNK, "$(P)LS331:$(Q):D.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):wr_rd_Gain") {
  field(FLNK, "$(P)LS331:$(Q):P.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):rd_Ctl") {
  field(FLNK, "$(P)LS331:$(Q):Control.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):rd_CtlParms") {
  field(FLNK, "$(P)LS331:$(Q):CtlInput.PROC  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):rd_Heater") {
  field(FLNK, "$(P)LS331:$(Q):Heater.VAL  PP MS")
  field(PORT, "$(PORT)")
  field(AOUT, "HTR?")
}

record(asyn, "$(P)LS331:$(Q):write_SP") {
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):rd_SP") {
  field(FLNK, "$(P)LS331:$(Q):SP.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):rd_Spl_a") {
  field(FLNK, "$(P)LS331:$(Q):SampleA.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):rd_Spl_b") {
  field(FLNK, "$(P)LS331:$(Q):SampleB.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):wr_rd_Htr") {
  field(FLNK, "$(P)LS331:$(Q):Range.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(asyn, "$(P)LS331:$(Q):wr_rd_Ramp") {
  field(FLNK, "$(P)LS331:$(Q):Ramp_scalc.VAL  PP MS")
  field(PORT, "$(PORT)")
}

record(scalcout, "$(P)LS331:$(Q):setRset") {
  field(DESC, "Format string for PID input")
  field(CALC, "$P('RSET %d;RSET?',A)")
  field(INPA, "$(P)LS331:$(Q):Rset_set.VAL  NPP MS")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Rset.AOUT  PP MS")
  field(PREC, "1")
}

record(scalcout, "$(P)LS331:$(Q):setRate") {
  field(DESC, "Format string for PID input")
  field(CALC, "$P('RATE %d;RATE?',A)")
  field(INPA, "$(P)LS331:$(Q):Rate_set.VAL  NPP MS")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Rate.AOUT  PP MS")
  field(PREC, "1")
}

record(scalcout, "$(P)LS331:$(Q):setGain") {
  field(DESC, "Format string for PID input")
  field(CALC, "$P('GAIN %d;GAIN?',A)")
  field(INPA, "$(P)LS331:$(Q):Gain_set.VAL  NPP MS")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Gain.AOUT  PP MS")
  field(PREC, "1")
}

record(scalcout, "$(P)LS331:$(Q):Ramp_scalc") {
  field(FLNK, "$(P)LS331:$(Q):RampR.PROC  PP MS")
  field(CALC, "INT(AA)")
  field(INAA, "$(P)LS331:$(Q):wr_rd_Ramp.AINP  NPP MS")
  field(PREC, "1")
}
record(scalcout, "$(P)LS331:$(Q):RampR") {
  field(FLNK, "$(P)LS331:$(Q):Ramp_state.PROC  PP MS")
  field(CALC, "SSCANF(AA,'%s')[2,10]")
  field(INAA, "$(P)LS331:$(Q):wr_rd_Ramp.AINP  NPP MS")
  field(PREC, "1")
}

record(scalcout, "$(P)LS331:$(Q):P") {
  field(CALC, "INT(AA)")
  field(INAA, "$(P)LS331:$(Q):wr_rd_Gain.AINP  NPP MS")
  field(PREC, "0")
}

record(scalcout, "$(P)LS331:$(Q):I") {
  field(CALC, "INT(AA)")
  field(INAA, "$(P)LS331:$(Q):wr_rd_Rset.AINP  NPP MS")
  field(PREC, "0")
}

record(scalcout, "$(P)LS331:$(Q):D") {
  field(CALC, "INT(AA)")
  field(INAA, "$(P)LS331:$(Q):wr_rd_Rate.AINP  NPP MS")
  field(PREC, "0")
}

record(scalcout, "$(P)LS331:$(Q):Control") {
  field(DESC, "Format string for Ctl query")
  field(CALC, "DBL(AA)")
  field(INAA, "$(P)LS331:$(Q):rd_Ctl.AINP  NPP MS")
  field(INEE, "0")
  field(PREC, "3")
}

record(scalcout, "$(P)LS331:$(Q):Heater") {
  field(DESC, "Format string for Ctl query")
  field(CALC, "DBL(AA)")
  field(INAA, "$(P)LS331:$(Q):rd_Heater.AINP  NPP MS")
  field(INEE, "0")
  field(PREC, "0")
}

record(scalcout, "$(P)LS331:$(Q):Range") {
  field(DESC, "Format string for Ctl query")
  field(FLNK, "$(P)LS331:$(Q):Rg_rdbk.PROC  PP MS")
  field(CALC, "INT(AA)")
  field(INAA, "$(P)LS331:$(Q):wr_rd_Htr.AINP  NPP MS")
  field(INEE, "0")
  field(PREC, "2")
}

record(scalcout, "$(P)LS331:$(Q):SP") {
  field(DESC, "Format string for Ctl query")
  field(CALC, "DBL(AA)")
  field(INAA, "$(P)LS331:$(Q):rd_SP.AINP  NPP MS")
  field(INEE, "0")
  field(PREC, "3")
}

record(scalcout, "$(P)LS331:$(Q):SP_scalc") {
  field(DESC, "Format string for Ctl query")
  field(FLNK, "$(P)LS331:$(Q):readSP.PROC  PP MS")
  field(CALC, "$P('SETP 1,%6.3f',A)")
  field(INPA, "$(P)LS331:$(Q):wr_SP.VAL  NPP MS")
  field(INEE, "0")
  field(OUT, "$(P)LS331:$(Q):write_SP.AOUT  PP MS")
  field(PREC, "3")
}

record(scalcout, "$(P)LS331:$(Q):SampleA") {
  field(DESC, "Convt str fror SplA query")
  field(CALC, "DBL(AA)")
  field(INAA, "$(P)LS331:$(Q):rd_Spl_a.AINP  PP MS")
  field(INEE, "0")
  field(PREC, "3")
}

record(scalcout, "$(P)LS331:$(Q):SampleB") {
  field(DESC, "Convrt str from SplB query")
  field(CALC, "DBL(AA)")
  field(INAA, "$(P)LS331:$(Q):rd_Spl_b.AINP  PP MS")
  field(INEE, "0")
  field(PREC, "3")
}

record(scalcout, "$(P)LS331:$(Q):CtlInput") {
  field(DESC, "Parse string for Ctl Input")
  field(FLNK, "$(P)LS331:$(Q):CtlUnits.PROC  PP MS")
  field(CALC, "SSCANF(AA,'%s')[0,0]")
  field(INAA, "$(P)LS331:$(Q):rd_CtlParms.AINP  NPP MS")
  field(PREC, "1")
  field(AA, "A")
}

record(scalcout, "$(P)LS331:$(Q):CtlUnits") {
  field(DESC, "Parse string for Ctl Unit")
  field(FLNK, "$(P)LS331:$(Q):CtlUnits_str.PROC  PP MS")
  field(CALC, "INT(SSCANF(AA,'%s')[2,2])")
  field(INAA, "$(P)LS331:$(Q):rd_CtlParms.AINP  NPP MS")
  field(PREC, "1")
  field(AA, "A,2")
}

record(scalcout, "$(P)LS331:$(Q):CtlUnits_str") {
  field(DESC, "Make Ctl Input string")
  field(CALC, "A=1?BB:CC")
  field(INPA, "$(P)LS331:$(Q):CtlUnits.VAL  NPP MS")
  field(PREC, "1")
  field(A, "1")
  field(BB, "K")
  field(CC, "C")
}

record(scalcout, "$(P)LS331:$(Q):SetCtl") {
  field(DESC, "Format string for Ctl Set")
  field(FLNK, "$(P)LS331:$(Q):read.PROC  PP MS")
  field(CALC, "AA+(B?FF:EE)+','+STR(C)[0,0]+DD")
  field(INAA, "")
  field(INBB, "$(P)LS331:$(Q):Input_sel.VAL  PP MS")
  field(INPB, "$(P)LS331:$(Q):Input_sel.VAL  PP MS")
  field(INPC, "$(P)LS331:$(Q):Units_sel.RVAL  PP MS")
  field(INDD, "")
  field(OUT, "$(P)LS331:$(Q):rd_CtlParms.AOUT  PP MS")
  field(PREC, "1")
  field(AA, "CSET 1,")
  field(BB, "A")
  field(B, "0")
  field(C, "1")
  field(DD, ",0,1;CSET?")
  field(EE, "A")
  field(FF, "B")
}

record(scalcout, "$(P)LS331:$(Q):readCtl") {
  field(DESC, "Format string for Ctl query")
  field(CALC, "AA")
  field(INAA, "0")
  field(OUT, "$(P)LS331:$(Q):rd_CtlParms.AOUT  PP MS")
  field(PREC, "1")
  field(AA, "CSET?")
}

record(scalcout, "$(P)LS331:$(Q):SetHeat") {
  field(CALC, "AA+BB+CC")
  field(INAA, "0")
  field(INBB, "$(P)LS331:$(Q):HeatRg.RVAL  NPP MS")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Htr.AOUT  PP MS")
  field(PREC, "1")
  field(AA, "RANGE ")
  field(BB, "0")
  field(CC, ";RANGE?")
}

record(scalcout, "$(P)LS331:$(Q):rd_SplA_scalc") {
  field(DESC, "Format str for A query")
  field(CALC, "AA+BB")
  field(INAA, "$(P)LS331:$(Q):CtlUnits_str.SVAL  PP MS")
  field(INBB, "0")
  field(OUT, "$(P)LS331:$(Q):rd_Spl_a.AOUT  PP MS")
  field(PREC, "1")
  field(AA, "K")
  field(BB, "RDG? A")
}

record(scalcout, "$(P)LS331:$(Q):rd_SplB_scalc") {
  field(DESC, "Format str for B query")
  field(CALC, "AA+BB")
  field(INAA, "$(P)LS331:$(Q):CtlUnits_str.SVAL  PP MS")
  field(INBB, "0")
  field(OUT, "$(P)LS331:$(Q):rd_Spl_b.AOUT  PP MS")
  field(PREC, "1")
  field(AA, "K")
  field(BB, "RDG? B")
}

record(scalcout, "$(P)LS331:$(Q):rd_rdat_scalc") {
  field(DESC, "Format str for rd query")
  field(CALC, "A=2?EE+BB+CC:DD+BB+CC")
  field(INPA, "$(P)LS331:$(Q):CtlUnits.VAL  NPP MS")
  field(INBB, "0")
  field(INCC, "$(P)LS331:$(Q):CtlInput.SVAL  NPP MS")
  field(INDD, "0")
  field(INEE, "0")
  field(OUT, "$(P)LS331:$(Q):rd_Ctl.AOUT  PP MS")
  field(PREC, "1")
  field(A, "1")
  field(BB, "RDG? ")
  field(DD, "K")
  field(EE, "C")
}

record(scalcout, "$(P)LS331:$(Q):setRamp") {
  field(DESC, "Format string for PID input")
  field(CALC, "AA+$P('%d',A)+','+$P('%5.1f',B)+BB")
  field(INPA, "$(P)LS331:$(Q):Ramp_on.RVAL  NPP MS")
  field(INPB, "$(P)LS331:$(Q):RampR_set.VAL  NPP MS")
  field(OUT, "$(P)LS331:$(Q):wr_rd_Ramp.AOUT  PP MS")
  field(PREC, "1")
  field(AA, "RAMP 1,")
  field(BB, ";RAMP?")
  field(CC, "0")
}