EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: TDK Lamda Genesys EPICS IOC
From: Heinz Junkes <[email protected]>
To: Jeong Han Lee <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Tue, 6 Feb 2018 22:59:13 +0100
Sorry forgot the proto file, here it is:

epics@resume:/srv/ioc/sys/fel-controls/db$ more Lambda.proto
Terminator  = LF;
LockTimeout  = 5000;
ReplyTimeout  = 5000;
ReadTimeout   = 5000;
WriteTimeout  = 3000;
ExtraInput    = Ignore;

#
# Lambda.proto (stream device protocol file)
#

getStr { out "\$1?";        in "%\$2[^\r\n]"; }

cmd    { out "\$1"; }

setF   { out "\$1 %f"; }
getF   { out "\$1?";        in "%f"; }

setD   { out "\$1 %d"; }
getD   { out "\$1?";        in "%d"; }

setOffOn { out "\$1 %{OFF|ON}"; }
getOffOn { out "\$1?";        in "%{OFF|ON}"; }

getMod { out "SOUR:MOD?";   in "%{OFF|CV|CC}"; }

Heinz
------------------------------------------------------------------------------
Fritz-Haber-Institut    | Phone:         (+49 30) 8413-4270
Heinz Junkes             | Fax (G3+G4):   (+49 30) 8413-5900
Faradayweg 4-6        | 
D - 14195 Berlin        | E-Mail:        [email protected]
------------------------------------------------------------------------------

> On 6. Feb 2018, at 09:56, Jeong Han Lee <[email protected]> wrote:
> 
> Dear Heinz,
> 
>  Can I have Lambda.proto also?
> 
>  Best,
>  Han
> 
> 
> 
> On 02/05/2018 08:02 PM, Heinz Junkes wrote:
>> Dear Han,
>> I does not know our correct model type but Genesys series using SCPI commands
>> via Ethernet/IP.
>> In st.cmd it looks like
>> ——— schnipp schnapp ———
>> epicsEnvSet LAMBDA01_INET 10.0.0.71:8003
>> epicsEnvSet LAMBDA01_LINK L01
>> drvAsynIPPortConfigure ${LAMBDA01_LINK} ${LAMBDA01_INET} 0 0 0
>> dbLoadRecords db/LambdaPS.db
>> ——— schnipp schnapp ———
>> The db - file (from Ralph ;-) :
>> #
>> # Database and stream protocol file for TDK-Lambda Genesys
>> #
>> # P      = record name prefix              PS1
>> # PORT   = stream device port              L0
>> # DESC   = description                     Focusing Quad
>> # MAX_U  = maximum voltage                 1
>> # MAX_I  = maximum current                 1
>> # MAX_P  = maximum power                   200
>> # MAX_R  = maximum resistance              5
>> # PREC_U = precision for voltage           3
>> # PREC_I = precision for current           3
>> # OROC   = oroc (100ms) for current        0.25
>> # ASTAG  = name of as info structure       autosaveFields
>> record(waveform, "DC01CP:M_Idn")
>> {
>>     field(DESC, "Get id string")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getStr(*IDN,99) L01")
>>     field(PINI, "YES")
>>     field(FTVL, "CHAR")
>>     field(NELM, "100")
>> }
>> record(stringin, "DC01CP:C_Desc")
>> {
>>     field(VAL,  "Chicane Dipole DC01C")
>> }
>> record(bo, "DC01CP:S_Reset")
>> {
>>     field(DESC, "Device Reset")
>>     field(DTYP, "stream")
>>     field(OUT,  "@Lambda.proto cmd(*RST) L01")
>> }
>> record(bo, "DC01CP:S_ClrStat")
>> {
>>     field(DESC, "Clear status")
>>     field(DTYP, "stream")
>>     field(OUT,  "@Lambda.proto cmd(*CLS) L01")
>> }
>> record(bo, "DC01CP:S_SaveSett")
>> {
>>     field(DESC, "Save settings")
>>     field(DTYP, "stream")
>>     field(OUT,  "@Lambda.proto cmd(*SAV\_0) L01")
>> }
>> record(bo, "DC01CP:R_RclSett")
>> {
>>     field(DESC, "Recall settings")
>>     field(DTYP, "stream")
>>     field(OUT,  "@Lambda.proto cmd(*RCL\_0) L01")
>> }
>> record(ao, "DC01CP:S_VoltMax")
>> {
>>     field(DESC, "Set maximum voltage")
>>     field(DTYP, "stream")
>>     field(DRVH, "30")
>>     field(HOPR, "30")
>>     field(PREC, "3")
>>     field(EGU,  "V")
>>     field(OUT,  "@Lambda.proto setF(SOUR:VOLT:PROT:LEV) L01")
>>     field(FLNK, "DC01CP:R_VoltMax")
>>     field(DOL,  "30")
>>     info(autosaveFields_pass0,"VAL")
>> }
>> record(ai, "DC01CP:R_VoltMax")
>> {
>>     field(DESC, "Rdbk maximum voltage")
>>     field(DTYP, "stream")
>>     field(HOPR, "30")
>>     field(PREC, "3")
>>     field(EGU,  "V")
>>     field(INP,  "@Lambda.proto getF(SOUR:VOLT:PROT:LEV) L01")
>> }
>> record(ao, "DC01CP:S_Volt")
>> {
>>     field(DESC, "Set voltage")
>>     field(DTYP, "stream")
>>     field(DRVH, "30")
>>     field(HOPR, "30")
>>     field(PREC, "3")
>>     field(EGU,  "V")
>>     field(OUT,  "@Lambda.proto setF(SOUR:VOLT) L01")
>>     field(FLNK, "DC01CP:R_Volt")
>>     info(autosaveFields_pass0,"VAL")
>> }
>> record(ai, "DC01CP:R_Volt")
>> {
>>     field(DESC, "Rdbk voltage")
>>     field(DTYP, "stream")
>>     field(HOPR, "30")
>>     field(PREC, "3")
>>     field(EGU,  "V")
>>     field(INP,  "@Lambda.proto getF(SOUR:VOLT) L01")
>> }
>> record(ai, "DC01CP:M_Volt")
>> {
>>     field(DESC, "Measured voltage")
>>     field(DTYP, "stream")
>>     field(HOPR, "30")
>>     field(PREC, "3")
>>     field(EGU,  "V")
>>     field(INP,  "@Lambda.proto getF(MEAS:VOLT) L01")
>>     field(SCAN, ".2 second")
>> }
>> record(ao, "DC01CP:S_Curr")
>> {
>>     field(DESC, "Set current")
>>     field(DTYP, "stream")
>>     field(DRVH, "30")
>>     field(HOPR, "30")
>>     field(PREC, "3")
>>     field(OROC, "0.6")
>>     field(EGU,  "A")
>>     field(OUT,  "@Lambda.proto setF(SOUR:CURR) L01")
>>     field(FLNK, "DC01CP:R_Curr")
>>     info(autosaveFields_pass0,"VAL OROC")
>> }
>> record(calcout, "DC01CP:C_CurrRamp") {
>>     field(DESC, "Current ROC ramp")
>>     field(INPA, "DC01CP:S_Curr.VAL CP")
>>     field(INPB, "DC01CP:S_Curr.OVAL CP")
>>     field(CALC, "A=B?0:9")
>>     field(OOPT, "On Change")
>>     field(OUT,  "DC01CP:S_Curr.SCAN")
>> }
>> record(ai, "DC01CP:R_Curr")
>> {
>>     field(DESC, "Rdbk current")
>>     field(DTYP, "stream")
>>     field(HOPR, "30")
>>     field(PREC, "3")
>>     field(EGU,  "A")
>>     field(INP,  "@Lambda.proto getF(SOUR:CURR) L01")
>> }
>> record(ai, "DC01CP:M_Curr")
>> {
>>     field(DESC, "Measured current")
>>     field(DTYP, "stream")
>>     field(HOPR, "30")
>>     field(PREC, "3")
>>     field(EGU,  "A")
>>     field(INP,  "@Lambda.proto getF(MEAS:CURR) L01")
>>     field(SCAN, ".2 second")
>> }
>> record(bo, "DC01CP:S_OutputSw")
>> {
>>     field(DESC, "Set output switch")
>>     field(DTYP, "stream")
>>     field(OUT,  "@Lambda.proto setOffOn(OUTP:STAT) L01")
>>     field(ZNAM, "off")
>>     field(ONAM, "on")
>>     field(FLNK, "DC01CP:R_OutputSw")
>>     info(autosaveFields_pass0,"VAL")
>> }
>> record(calc, "DC01CP:M_Power")
>> {
>>     field(DESC, "Measured power")
>>     field(INPA, "DC01CP:M_Curr CP MS")
>>     field(INPB, "DC01CP:M_Volt CP MS")
>>     field(CALC, "A*B")
>>     field(HOPR, "900")
>>     field(EGU,  "W")
>>     field(PREC, "2")
>>     field(FLNK, "DC01CP:M_Resistance")
>> }
>> record(calc, "DC01CP:M_Resistance")
>> {
>>     field(DESC, "Measured resistance")
>>     field(INPA, "DC01CP:M_Curr NPP MS")
>>     field(INPB, "DC01CP:M_Volt NPP MS")
>>     field(CALC, "A>0.01?B/A:NaN")
>>     field(HOPR, "5")
>>     field(PREC, "3")
>>     field(EGU,  "Ω")
>> }
>> record(bi, "DC01CP:R_OutputSw")
>> {
>>     field(DESC, "Get output switch")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getOffOn(OUTP:STAT) L01")
>>     field(ZNAM, "off")
>>     field(ZSV,  "MAJOR")
>>     field(ONAM, "on")
>>     field(PINI, "YES")
>> }
>> record(mbbiDirect, "DC01CP:M_Status")
>> {
>>     field(DESC, "Get status byte")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(*STB) L01")
>>     field(SCAN, ".2 second")
>> }
>> record(mbbi, "DC01CP:M_Mode")
>> {
>>     field(DESC, "Get mode")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getMod L01")
>>     field(SCAN, ".2 second")
>>     field(ZRST, "off")
>>     field(ONST, "on (CV)")
>>     field(TWST, "on (CC)")
>> }
>> record(calc, "DC01CP:C_SumPower")
>> {
>>     field(DESC, "Power stat from mode")
>>     field(INPA, "DC01CP:M_Mode CP MS")
>>     field(CALC, "A!=0?1:0")
>>     field(TSEL, "DC01CP:M_Mode.TIME CA")
>>     field(FLNK, "DC01CP:M_SumPower")
>> }
>> record(bi, "DC01CP:M_SumPower")
>> {
>>     field(DESC, "Power status")
>>     field(ZNAM, "off")
>>     field(ZSV,  "MAJOR")
>>     field(ONAM, "on")
>>     field(INP,  "DC01CP:C_SumPower NPP MS")
>> }
>> record(bi, "DC01CP:Stat:M_ErrEvQue")
>> {
>>     field(DESC, "Error event queue")
>>     field(ZNAM, "empty")
>>     field(ONAM, "messages")
>>     field(OSV,  "MINOR")
>>     field(INP,  "DC01CP:M_Status.B2 CPP MS")
>>     field(TSEL, "DC01CP:M_Status.TIME CP")
>> }
>> record(bi, "DC01CP:Stat:M_QuesSumm")
>> {
>>     field(DESC, "Questionable summary")
>>     field(ZNAM, "ok")
>>     field(ONAM, "error")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:M_Status.B3 CPP MS")
>>     field(TSEL, "DC01CP:M_Status.TIME CP")
>> }
>> record(bi, "DC01CP:Stat:M_EventSumm")
>> {
>>     field(DESC, "Event summary")
>>     field(ZNAM, "ok")
>>     field(ONAM, "error")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:M_Status.B5 CPP MS")
>>     field(TSEL, "DC01CP:M_Status.TIME CP")
>> }
>> record(bi, "DC01CP:Stat:M_OperSumm")
>> {
>>     field(DESC, "Operation summary")
>>     field(ZNAM, "ok")
>>     field(ONAM, "error")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:M_Status.B7 CPP MS")
>>     field(TSEL, "DC01CP:M_Status.TIME CP")
>> }
>> record(calc, "DC01CP:C_SumError")
>> {
>>     field(DESC, "Check for sum error")
>>     field(INPA, "DC01CP:Stat:Ques:M_Cond CP MS")
>>     field(CALC, "A>0?1:0")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>>     field(FLNK, "DC01CP:M_SumError")
>> }
>> record(bi, "DC01CP:M_SumError")
>> {
>>     field(DESC, "Summary error")
>>     field(INP,  "DC01CP:C_SumError NPP MS")
>>     field(ZNAM, "ok")
>>     field(ONAM, "error")
>>     field(OSV,  "MAJOR")
>> }
>> record(mbbiDirect, "DC01CP:M_EvntStat")
>> {
>>     field(DESC, "Get event status")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(*ESR) L01")
>> }
>> record(longout, "DC01CP:S_EvntStatEna")
>> {
>>     field(DESC, "Set event status enable")
>>     field(DTYP, "stream")
>>     field(OUT,  "@Lambda.proto setD(*ESE) L01")
>>     field(FLNK, "DC01CP:R_EvntStatEna")
>>     field(DOL,  "65535")
>> }
>> record(longin, "DC01CP:R_EvntStatEna")
>> {
>>     field(DESC, "Get event status enable")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(*ESE) L01")
>> }
>> #
>> # Store/Recall for one signal (set point)
>> #
>> # P     = record name prefix              PS1
>> # SNAME = signal name                     S_Volt
>> # PREC  = precision db field              2
>> # EGU   = engineering units field         V
>> # ASTAG = name of as info structure       autosaveFields
>> record(ai,"DC01CP:S_Volt:store") {
>> 	field(DESC,"Store S_Volt")
>> 	field(INP,"DC01CP:S_Volt NPP NMS")
>> 	field(PREC,"3")
>> 	field(EGU,"V")
>> 	info(autosaveFields_pass0,"VAL")
>> }
>> record(ao,"DC01CP:S_Volt:recall") {
>> 	field(DESC,"Recall S_Volt")
>> 	field(OUT,"DC01CP:S_Volt PP NMS")
>> 	field(DOL,"DC01CP:S_Volt:store NPP NMS")
>> 	field(OMSL,"closed_loop")
>> 	field(PREC,"3")
>> 	field(EGU,"V")
>> }
>> #
>> # Store/Recall for one signal (set point)
>> #
>> # P     = record name prefix              PS1
>> # SNAME = signal name                     S_Volt
>> # PREC  = precision db field              2
>> # EGU   = engineering units field         V
>> # ASTAG = name of as info structure       autosaveFields
>> record(ai,"DC01CP:S_Curr:store") {
>> 	field(DESC,"Store S_Curr")
>> 	field(INP,"DC01CP:S_Curr NPP NMS")
>> 	field(PREC,"3")
>> 	field(EGU,"A")
>> 	info(autosaveFields_pass0,"VAL")
>> }
>> record(ao,"DC01CP:S_Curr:recall") {
>> 	field(DESC,"Recall S_Curr")
>> 	field(OUT,"DC01CP:S_Curr PP NMS")
>> 	field(DOL,"DC01CP:S_Curr:store NPP NMS")
>> 	field(OMSL,"closed_loop")
>> 	field(PREC,"3")
>> 	field(EGU,"A")
>> }
>> # LambdaStatusRegisterSet.template
>> #
>> # One status register set for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # CHAN  = PS channel                      1
>> # TAG   = short text for DESC             Oper:Shut
>> # CMD   = SCPI command prefix (w/o STAT:) OPER:SHUT
>> # PORT  = stream device port              L0
>> # MASK  = bitmask (used bits)             65535
>> record(mbbiDirect, "DC01CP:Stat:Oper:M_Cond")
>> {
>>     field(DESC, "Get Oper COND")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(STAT:OPER:COND) L01")
>>     field(SCAN, ".2 second")
>> }
>> record(longin, "DC01CP:Stat:Oper:M_Event")
>> {
>>     field(DESC, "Get Oper EVENT")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(STAT:OPER:EVEN) L01")
>> }
>> record(longin, "DC01CP:Stat:Oper:R_Enable")
>> {
>>     field(DESC, "Get Oper ENABLE")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(STAT:OPER:ENAB) L01")
>> }
>> record(longout, "DC01CP:Stat:Oper:S_Enable")
>> {
>>     field(DESC, "Set Oper ENABLE")
>>     field(DTYP, "stream")
>>     field(OUT,  "@Lambda.proto setD(STAT:OPER:ENAB) L01")
>>     field(FLNK, "DC01CP:Stat:Oper:R_Enable")
>>     field(DOL,  "65535")
>> }
>> record(fanout, "DC01CP:Stat:Oper:S_ReInit")
>> {
>>     field(DESC, "Re-init Oper register set")
>>     field(LNK1, "DC01CP:Stat:Oper:S_Enable")
>>     field(LNK2, "DC01CP:Stat:Oper:M_Cond")
>>     field(LNK3, "DC01CP:Stat:Oper:M_Event")
>> }
>> # LambdaStatusRegisterSet.template
>> #
>> # One status register set for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # CHAN  = PS channel                      1
>> # TAG   = short text for DESC             Oper:Shut
>> # CMD   = SCPI command prefix (w/o STAT:) OPER:SHUT
>> # PORT  = stream device port              L0
>> # MASK  = bitmask (used bits)             65535
>> record(mbbiDirect, "DC01CP:Stat:Ques:M_Cond")
>> {
>>     field(DESC, "Get Ques COND")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(STAT:QUES:COND) L01")
>>     field(SCAN, ".2 second")
>> }
>> record(longin, "DC01CP:Stat:Ques:M_Event")
>> {
>>     field(DESC, "Get Ques EVENT")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(STAT:QUES:EVEN) L01")
>> }
>> record(longin, "DC01CP:Stat:Ques:R_Enable")
>> {
>>     field(DESC, "Get Ques ENABLE")
>>     field(DTYP, "stream")
>>     field(INP,  "@Lambda.proto getD(STAT:QUES:ENAB) L01")
>> }
>> record(longout, "DC01CP:Stat:Ques:S_Enable")
>> {
>>     field(DESC, "Set Ques ENABLE")
>>     field(DTYP, "stream")
>>     field(OUT,  "@Lambda.proto setD(STAT:QUES:ENAB) L01")
>>     field(FLNK, "DC01CP:Stat:Ques:R_Enable")
>>     field(DOL,  "65535")
>> }
>> record(fanout, "DC01CP:Stat:Ques:S_ReInit")
>> {
>>     field(DESC, "Re-init Ques register set")
>>     field(LNK1, "DC01CP:Stat:Ques:S_Enable")
>>     field(LNK2, "DC01CP:Stat:Ques:M_Cond")
>>     field(LNK3, "DC01CP:Stat:Ques:M_Event")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Oper:M_CVMode")
>> {
>>     field(DESC, "CV mode")
>>     field(ZNAM, "off")
>>     field(ONAM, "active")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Oper:M_Cond.B0 CP MS")
>>     field(TSEL, "DC01CP:Stat:Oper:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Oper:M_CCMode")
>> {
>>     field(DESC, "CC mode")
>>     field(ZNAM, "off")
>>     field(ONAM, "active")
>>     field(ZSV,  "MAJOR")
>>     field(OSV,  "NO_ALARM")
>>     field(INP,  "DC01CP:Stat:Oper:M_Cond.B1 CP MS")
>>     field(TSEL, "DC01CP:Stat:Oper:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Oper:M_Fault")
>> {
>>     field(DESC, "Fault")
>>     field(ZNAM, "no fault")
>>     field(ONAM, "fault")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Oper:M_Cond.B2 CP MS")
>>     field(TSEL, "DC01CP:Stat:Oper:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Oper:M_ASMode")
>> {
>>     field(DESC, "Auto start mode")
>>     field(ZNAM, "inactive")
>>     field(ONAM, "enabled")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "NO_ALARM")
>>     field(INP,  "DC01CP:Stat:Oper:M_Cond.B4 CP MS")
>>     field(TSEL, "DC01CP:Stat:Oper:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Oper:M_FBMode")
>> {
>>     field(DESC, "Fold back mode")
>>     field(ZNAM, "inactive")
>>     field(ONAM, "enabled")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MINOR")
>>     field(INP,  "DC01CP:Stat:Oper:M_Cond.B5 CP MS")
>>     field(TSEL, "DC01CP:Stat:Oper:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Oper:M_Access")
>> {
>>     field(DESC, "Access mode")
>>     field(ZNAM, "remote")
>>     field(ONAM, "local")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Oper:M_Cond.B7 CP MS")
>>     field(TSEL, "DC01CP:Stat:Oper:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_ACFail")
>> {
>>     field(DESC, "AC power fail")
>>     field(ZNAM, "ok")
>>     field(ONAM, "tripped")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B1 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_OverTemp")
>> {
>>     field(DESC, "Overtemp")
>>     field(ZNAM, "ok")
>>     field(ONAM, "tripped")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B2 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_FoldBack")
>> {
>>     field(DESC, "FB protection")
>>     field(ZNAM, "ok")
>>     field(ONAM, "tripped")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B3 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_OverVolt")
>> {
>>     field(DESC, "OV protection")
>>     field(ZNAM, "ok")
>>     field(ONAM, "tripped")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B4 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_ShutOff")
>> {
>>     field(DESC, "Shut off")
>>     field(ZNAM, "ok")
>>     field(ONAM, "off")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B5 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_OutpOff")
>> {
>>     field(DESC, "Output off")
>>     field(ZNAM, "ok")
>>     field(ONAM, "off")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B6 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_OutpEna")
>> {
>>     field(DESC, "Output enable")
>>     field(ZNAM, "ok")
>>     field(ONAM, "tripped")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "NO_ALARM")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B7 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_IntInpOvf")
>> {
>>     field(DESC, "Int input overflow")
>>     field(ZNAM, "ok")
>>     field(ONAM, "tripped")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B8 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_IntOvf")
>> {
>>     field(DESC, "Internal overflow")
>>     field(ZNAM, "ok")
>>     field(ONAM, "tripped")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.B9 CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_IntTimeout")
>> {
>>     field(DESC, "Int timeout")
>>     field(ZNAM, "ok")
>>     field(ONAM, "tripped")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.BA CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusBit.template
>> #
>> # One status bit for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix        PS1:Stat:OperShut
>> # SIG   = signal name                     M_Output
>> # DESC  = description                     Output
>> # ZNAM  = string for 0                    On
>> # ZSV   = severity for 0                  NO_ALARM
>> # ONAM  = string for 1                    Off
>> # OSV   = severity for 1                  MAJOR
>> # BIT   = input bit field                 B3
>> record(bi, "DC01CP:Stat:Ques:M_IntCommErr")
>> {
>>     field(DESC, "Int comm")
>>     field(ZNAM, "ok")
>>     field(ONAM, "error")
>>     field(ZSV,  "NO_ALARM")
>>     field(OSV,  "MAJOR")
>>     field(INP,  "DC01CP:Stat:Ques:M_Cond.BB CP MS")
>>     field(TSEL, "DC01CP:Stat:Ques:M_Cond.TIME CA")
>> }
>> # LambdaStatusHierarchy.template
>> #
>> # One status hierarchy connection for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix (upper)   FRAME1:Stat:OperShut
>> # SIG   = upper level signal                 M_Cond
>> # BIT   = summary bit in the upper register  B0
>> # TAG   = unique tag (wrt upper)             Prot
>> # P     = register set name prefix (lower)   PS1
>> # SET   = register set name (lower)          Stat:OperShutProt
>> record(calcout, "DC01CP:C_HierQues")
>> {
>>     field(DESC, "Ques Hierarchy")
>>     field(INPA, "DC01CP:M_Status.B3 CPP NMS")
>>     field(CALC, "A")
>>     field(OOPT, "Transition To Non-zero")
>>     field(OUT,  "DC01CP:C_FanQues.PROC")
>> }
>> record(fanout, "DC01CP:C_FanQues")
>> {
>>     field(DESC, "Ques re-read")
>>     field(LNK1, "DC01CP:Stat:Ques:M_Cond")
>>     field(LNK2, "DC01CP:Stat:Ques:M_Event")
>> }
>> # LambdaStatusHierarchy.template
>> #
>> # One status hierarchy connection for TDK-Lambda / SCPI
>> #
>> # PRE   = register set name prefix (upper)   FRAME1:Stat:OperShut
>> # SIG   = upper level signal                 M_Cond
>> # BIT   = summary bit in the upper register  B0
>> # TAG   = unique tag (wrt upper)             Prot
>> # P     = register set name prefix (lower)   PS1
>> # SET   = register set name (lower)          Stat:OperShutProt
>> record(calcout, "DC01CP:C_HierOper")
>> {
>>     field(DESC, "Oper Hierarchy")
>>     field(INPA, "DC01CP:M_Status.B7 CPP NMS")
>>     field(CALC, "A")
>>     field(OOPT, "Transition To Non-zero")
>>     field(OUT,  "DC01CP:C_FanOper.PROC")
>> }
>> record(fanout, "DC01CP:C_FanOper")
>> {
>>     field(DESC, "Oper re-read")
>>     field(LNK1, "DC01CP:Stat:Oper:M_Cond")
>>     field(LNK2, "DC01CP:Stat:Oper:M_Event")
>> }
>> HTH,
>> Heinz
>> ------------------------------------------------------------------------------
>> Fritz-Haber-Institut    | Phone:         (+49 30) 8413-4270
>> Heinz Junkes             | Fax (G3+G4):   (+49 30) 8413-5900
>> Faradayweg 4-6        |
>> D - 14195 Berlin        | E-Mail:        [email protected]
>> ------------------------------------------------------------------------------
>>> On 5. Feb 2018, at 16:21, Jeong Han Lee <[email protected]> wrote:
>>> 
>>> Hi
>>> 
>>> Does anyone has the epics IOC for TDK Lamda Genesys GEN 5kW SERIES POWER SUPPLIES?
>>> 
>>> I still doesn't know the exact model of the power supplies, which stakeholder would like to use. However, it could be similar with other models in the production category.
>>> 
>>> 
>>> Best,
>>> Han

Attachment: smime.p7s
Description: S/MIME cryptographic signature


References:
TDK Lamda Genesys EPICS IOC Jeong Han Lee
Re: TDK Lamda Genesys EPICS IOC Heinz Junkes
Re: TDK Lamda Genesys EPICS IOC Jeong Han Lee

Navigate by Date:
Prev: Re: EtherCAT newbie question Jeong Han Lee
Next: Tech-talk search fields throw errors Southern, Tim
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: TDK Lamda Genesys EPICS IOC Jeong Han Lee
Next: RTOS on RPi3 ? Stefen Paul
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 06 Feb 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·