From 8fdbf540e0b0bef6c27faaccaddf3728e5f94a68 Mon Sep 17 00:00:00 2001 From: Philipp Klaus Date: Mon, 10 Apr 2017 16:18:34 +0200 Subject: [PATCH] HUBER_COOLING: .proto and .db files by F.Feldbauer Hint by Peter Zumbruch. To be found on: http://www.aps.anl.gov/epics/tech-talk/2014/msg00948.php --- .../HUBER_COOLINGApp/Db/Huber_Unistate_425.db | 100 ++++++++++++++ .../protocols/Huber_Unistate_425.proto | 123 ++++++++++++++++++ 2 files changed, 223 insertions(+) create mode 100644 HUBER_COOLING/HUBER_COOLINGApp/Db/Huber_Unistate_425.db create mode 100644 HUBER_COOLING/protocols/Huber_Unistate_425.proto diff --git a/HUBER_COOLING/HUBER_COOLINGApp/Db/Huber_Unistate_425.db b/HUBER_COOLING/HUBER_COOLINGApp/Db/Huber_Unistate_425.db new file mode 100644 index 0000000..bd145f3 --- /dev/null +++ b/HUBER_COOLING/HUBER_COOLINGApp/Db/Huber_Unistate_425.db @@ -0,0 +1,100 @@ +############################################# +# ### ### # +# ### EPICS Database for ### # +# ### Huber Unistate 425 ### # +# ### ### # +# ### author: F.Feldbauer ### # +# ### R.Kieser ### # +# ### ### # +# ### Ref 1.0; 2014-01-07 ### # +# ### ### # +# ### macros: subsys PANDA subsystem ### # +# ### PORT Asyn Interface ### # +# ### sector Sector of subsys ### # +############################################# + +record (ai, "PANDA:$(subsys):COOLING:$(sector):SetpointMom") { + field (DTYP, "stream") + field (INP, "@Huber_Unistate_425.proto getDesVal $(PORT)") + field (PINI, "YES") + field (EGU, "°C") + field (PREC, "2") + field (ADEL, "1") + field (MDEL, "1") + field (ASLO, "0.01") + field (AOFF, "0") +} + +record (ai, "PANDA:$(subsys):COOLING:$(sector):BathTemperatureMom") { + field (DTYP, "stream") + field (INP, "@Huber_Unistate_425.proto getBathTemp $(PORT)") + field (SCAN, "10 second") + field (FLNK, "PANDA:$(subsys):COOLING:$(sector):getExtTemp") + field (EGU, "°C") + field (PREC, "2") + field (ADEL, "1") + field (MDEL, "1") + field (ASLO, "0.01") + field (AOFF, "0") + +} + +record (ai, "PANDA:$(subsys):COOLING:$(sector):ExternalTemperatureMom") { + field (DTYP, "stream") + field (INP, "@Huber_Unistate_425.proto getExtTemp $(PORT)") + field (EGU, "°C") + field (PREC, "2") + field (ADEL, "1") + field (MDEL, "1") + field (ASLO, "0.01") + field (AOFF, "0") +} + +#-------------------------------------------------------------------------------- + +record (ao, "PANDA:$(subsys):COOLING:$(sector):Setpoint") { + field (DTYP, "stream") + field (OUT, "@Huber_Unistate_425.proto setDesVal $(PORT)") + field (EGU, "°C") + field (PREC, "2") + field (ADEL, "1") + field (MDEL, "1") + field (ASLO, "100") + field (AOFF, "0") +} + +record (ao , "PANDA:$(subsys):COOLING:$(sector):MinimumValue") { + field (DTYP, "stream") + field (OUT, "@Huber_Unistate_425.proto setMinVal $(PORT)") + field (EGU, "°C") + field (PREC, "2") + field (ADEL, "1") + field (MDEL, "1") + field (ASLO, "100") + field (AOFF, "0") +} + +record (ao, "PANDA:$(subsys):COOLING:$(sector):MaximumValue") { + field (DTYP, "stream") + field (OUT, "@Huber_Unistate_425.proto setMaxVal $(PORT)") + field (EGU, "°C") + field (PREC, "2") + field (ADEL, "1") + field (MDEL, "1") + field (ASLO, "100") + field (AOFF, "0") +} + +record (bo , "PANDA:$(subsys):COOLING:$(sector):TemperatureControl") { + field (DTYP, "stream") + field (OUT, "@Huber_Unistate_425.proto setTempCtrl $(PORT)") + field (ZNAM, "OFF") + field (ONAM, "ON") +} + +record (bo, "PANDA:$(subsys):COOLING:$(sector):TemperatureMode") { + field (DTYP, "stream") + field (OUT, "@Huber_Unistate_425.proto setTempMode $(PORT)") + field (ZNAM, "INTERN") + field (ONAM, "EXTERN") +} diff --git a/HUBER_COOLING/protocols/Huber_Unistate_425.proto b/HUBER_COOLING/protocols/Huber_Unistate_425.proto new file mode 100644 index 0000000..941933d --- /dev/null +++ b/HUBER_COOLING/protocols/Huber_Unistate_425.proto @@ -0,0 +1,123 @@ +################################################# +# ### ### # +# ### StreamDevice Protocol for ### # +# ### Huber Unistat 425 ### # +# ### ### # +# ### author: F.Feldbauer ### # +# ### R.Kieser ### # +# ### ### # +# ### Ref 1.0; 2014-01-07 ### # +################################################# + +################### +# ### Globals ### # +################### +Terminator = CR LF; +LockTimeout = 5000; +ReplyTimeout = 500; +ReadTimeout = 500; +WriteTimeout = 300; +ExtraInput = Ignore; + +##################### +# ### Protocols ### # +##################### + +getDesVal { + # get setpoint + # Example of command: + # field (INP, "@Huber_Unistat_425.proto getDesVal $(PORT)") + + out "SP?"; + in "SP %d"; +} + +getBathTemp { + # get bath temperature + # Example of command: + # field (INP, "@Huber_Unistat_425.proto getBathTemp $(PORT)") + + out "TI?"; + in "TI %d"; +} + +getExtTemp { + # get temperature at external PT100 + # Example of command: + # field (INP, "@Huber_Unistat_425.proto getExtTemp $(PORT)") + + out "TE?"; + in "TE %d"; +} + +#-------------------------------------------------------------------------------- + +setDesVal { + # set a new setpoint + # Example of command: + # field (OUT, "@Huber_Unistat_425.proto setDesVal $(PORT)") + + out "SP@ %+05d"; + in "SP %=d"; + + @init { + out "SP?"; + in "SP %d"; + } +} + +setMinVal { + # set lower limit of setpoint + # Example of command: + # field (OUT, "@Huber_Unistat_425.proto setMinVal $(PORT)") + + out "LL& %+05d"; + in "LL %=d"; + + @init { + out "LL?"; + in "LL %d"; + } +} + +setMaxVal { + # set upper limit of setpoint + # Example of command: + # field (OUT, "@Huber_Unistat_425.proto setMaxVal $(PORT)") + + out "LH& %+05d"; + in "LH %=d"; + + @init { + out "LH?"; + in "LH %d"; + } +} + +setTempCtrl { + # switch chiller on/off + # Example of command: + # field (OUT, "@Huber_Unistat_425.proto setTempCtrl $(PORT)") + + out "CA@ %+05u"; + in "CA %=u"; + + @init { + out "CA?"; + in "CA %u"; + } +} + +setTempMode { + # set temperature control mode + # Example of command: + # field (OUT, "@Huber_Unistat_425.proto setTempMode $(PORT)") + + out "TM& %+05u"; + in "TM %=u"; + + @init { + out "TM?"; + in "TM %u"; + } +} -- 2.43.0