From: Philipp Klaus Date: Tue, 8 Aug 2017 16:20:49 +0000 (+0200) Subject: HAMEG_HMP4030: OVP proper & tested implementation X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=87dbcb7ff5f225ac7f8264907acae40974fe5be6;p=mvd_epics.git HAMEG_HMP4030: OVP proper & tested implementation --- diff --git a/HAMEG_HMP4030/HAMEG_HMP4030App/Db/HAMEG_HMP4030_CHANNEL.template b/HAMEG_HMP4030/HAMEG_HMP4030App/Db/HAMEG_HMP4030_CHANNEL.template index 0c0d82c..8cafe84 100644 --- a/HAMEG_HMP4030/HAMEG_HMP4030App/Db/HAMEG_HMP4030_CHANNEL.template +++ b/HAMEG_HMP4030/HAMEG_HMP4030App/Db/HAMEG_HMP4030_CHANNEL.template @@ -42,6 +42,7 @@ record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):GetVoltageStepSize") { field (PREC, "3") field (ADEL, "0.005") field (MDEL, "0.001") + field (SCAN, "5 second") } record (ao, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetCurrent") { @@ -88,6 +89,7 @@ record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):GetCurrentStepSize") { field (PREC, "4") field (ADEL, "0.005") field (MDEL, "0.001") + field (SCAN, "5 second") } record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetOutput") { @@ -124,49 +126,63 @@ record (bi, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):GetFuse") { field (PINI, "YES") } -record (ao, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetVoltageProtection") { +record (ao, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetOVPVoltage") { field (DTYP, "stream") - field (OUT, "@HAMEG_HMP4030.proto SetVoltageProtection($(CHAN)) $(PORT)") + field (OUT, "@HAMEG_HMP4030.proto SetOVPVoltage($(CHAN)) $(PORT)") field (EGU, "V") - field (PREC, "4") + field (PREC, "3") field (ADEL, "0.005") field (MDEL, "0.001") } +record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):GetOVPVoltage") { + field (DTYP, "stream") + field (INP, "@HAMEG_HMP4030.proto GetOVPVoltage($(CHAN)) $(PORT)") + field (EGU, "V") + field (PREC, "3") + field (ADEL, "0.005") + field (MDEL, "0.001") + field (SCAN, "2 second") +} + record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ClearVoltageProtection") { field (DTYP, "stream") field (OUT, "@HAMEG_HMP4030.proto ClearVoltageProtection($(CHAN)) $(PORT)") } -#record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadVoltageMinProtection") { -# field (DTYP, "stream") -# field (INP, "@HAMEG_HMP4030.proto ReadVoltageMINProtection($(CHAN)) $(PORT)") -# field (EGU, "V") -# field (PREC, "4") -# field (ADEL, "0.005") -# field (MDEL, "0.001") -#} - -#record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadVoltageMaXProtection") { -# field (DTYP, "stream") -# field (INP, "@HAMEG_HMP4030.proto ReadVoltageMAXProtection($(CHAN)) $(PORT)") -# field (EGU, "V") -# field (PREC, "4") -# field (ADEL, "0.005") -# field (MDEL, "0.001") -#} - -#record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetVoltageProtectionMeasured") { -# field (DTYP, "stream") -# field (OUT, "@HAMEG_HMP4030.proto SetVoltageProtectionMeasured($(CHAN)) $(PORT)") -#} - -#record (bo, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetVoltageProtectionProtected") { -# field (DTYP, "stream") -# field (OUT, "@HAMEG_HMP4030.proto SetVoltageProtectionProtected($(CHAN)) $(PORT)") -#} - -#record (bi, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):ReadVoltageProtectionMode") { -# field (DTYP, "stream") -# field (INP, "@HAMEG_HMP4030.proto ReadVoltageProtectionMode($(CHAN)) $(PORT)") -#} +record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):GetOVPVoltageMin") { + field (DTYP, "stream") + field (INP, "@HAMEG_HMP4030.proto GetOVPVoltageLimit($(CHAN),MIN) $(PORT)") + field (EGU, "V") + field (PREC, "3") + field (ADEL, "0.005") + field (MDEL, "0.001") + field (PINI, "YES") +} + +record (ai, "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):GetOVPVoltageMax") { + field (DTYP, "stream") + field (INP, "@HAMEG_HMP4030.proto GetOVPVoltageLimit($(CHAN),MAX) $(PORT)") + field (EGU, "V") + field (PREC, "3") + field (ADEL, "0.005") + field (MDEL, "0.001") + field (PINI, "YES") +} + +record (mbbi , "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):GetOVPMode") { + field (DTYP, "stream") + field (INP, "@HAMEG_HMP4030.proto GetOVPMode($(CHAN)) $(PORT)") + field (SCAN, "5 second") + field (PINI, "YES") + field (ZRST, "MEASURED") + field (ONST, "PROTECTED") +} + +record (mbbo , "$(sys):$(sub):POWER:$(vsys):$(CHAN_NAME):SetOVPMode") { + field (DTYP, "stream") + field (OUT, "@HAMEG_HMP4030.proto SetOVPMode($(CHAN)) $(PORT)") + field (PINI, "YES") + field (ZRST, "MEASURED") + field (ONST, "PROTECTED") +} diff --git a/HAMEG_HMP4030/protocols/HAMEG_HMP4030.proto b/HAMEG_HMP4030/protocols/HAMEG_HMP4030.proto index 379e7f6..fa381bc 100644 --- a/HAMEG_HMP4030/protocols/HAMEG_HMP4030.proto +++ b/HAMEG_HMP4030/protocols/HAMEG_HMP4030.proto @@ -104,8 +104,8 @@ SetCurrentStepSize { out "CURR:STEP %f"; @init { GetCurrentStepSize; } } - -#---CHANNELMODE----------------------------------------------------------------------- + +#---CHANNEL OUTPUT-------------------------------------------------------------------- GetOutput { out "INST OUT\$1"; @@ -135,9 +135,16 @@ SetFuse { #---PROTECTION------------------------------------------------------------------------ -SetVoltageProtection { +GetOVPVoltage { + out "INST OUT\$1"; + out "VOLT:PROT?"; + in "%f"; +} + +SetOVPVoltage { out "INST OUT\$1"; out "VOLT:PROT %f"; + @init { GetOVPVoltage; } } ClearVoltageProtection { @@ -145,30 +152,20 @@ ClearVoltageProtection { out "VOLT:PROT:CLE"; } -ReadVoltageMINProtection { +GetOVPVoltageLimit { out "INST OUT\$1"; - out "VOLT:PROT? MIN"; + out "VOLT:PROT? \$2"; in "%f"; } -ReadVoltageMAXProtection { +GetOVPMode { out "INST OUT\$1"; - out "VOLT:PROT? MAX"; - in "%f"; -} - -SetVoltageProtectionMeasured { - out "INST OUT\$1"; - out "VOLT:PROT:MODE MEAS"; -} - -SetVoltageProtectionProtected { - out "INST OUT\$1"; - out "VOLT:PROT:MODE PROT"; + out "VOLT:PROT:MODE?"; + in "%{measured|protected}"; } -ReadVoltageProtectionMode { +SetOVPMode { out "INST OUT\$1"; - out "VOLT:PROT:MODE?"; - in "protected"; + out "VOLT:PROT:MODE %{MEAS|PROT}"; + @init { GetOVPMode; } }