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: "[email protected]" <[email protected]>
Date: Mon, 5 Feb 2018 20:02:42 +0100
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


Replies:
Re: TDK Lamda Genesys EPICS IOC Jeong Han Lee
References:
TDK Lamda Genesys EPICS IOC Jeong Han Lee

Navigate by Date:
Prev: RE: AreaDetector repository inconsistent Mark Rivers
Next: Re: AreaDetector repository inconsistent J. Lewis Muir
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: Re: TDK Lamda Genesys EPICS IOC Jeong Han Lee
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 ·