diff --git a/db/Beckhoff_3XXX/ecmcEL3311.substitutions b/db/Beckhoff_3XXX/ecmcEL3311.substitutions new file mode 100644 index 000000000..c84b99fcb --- /dev/null +++ b/db/Beckhoff_3XXX/ecmcEL3311.substitutions @@ -0,0 +1,11 @@ +file "ecmc_analogInput-chX.template" +{ + pattern {CH_ID, ESLO, EGU, PREC} + {01, 0.1, DegC, 2 } +} + +file "ecmc_status_analog-chX.template" +{ + pattern {CH_ID} + {01 } +} diff --git a/db/Beckhoff_3XXX/ecmcEL3312.substitutions b/db/Beckhoff_3XXX/ecmcEL3312.substitutions index c3e22b2d9..97ca1ff1a 100644 --- a/db/Beckhoff_3XXX/ecmcEL3312.substitutions +++ b/db/Beckhoff_3XXX/ecmcEL3312.substitutions @@ -1,8 +1,8 @@ file "ecmc_analogInput-chX.template" { - pattern {CH_ID, ESLO, EGU, PREC} - {01, 0.1, "DegC", 2 } - {02, 0.1, "DegC", 2 } + pattern {CH_ID, ESLO, EGU, PREC} + {01, 0.1, DegC, 2 } + {02, 0.1, DegC, 2 } } file "ecmc_status_analog-chX.template" diff --git a/db/Beckhoff_3XXX/ecmcEL3314-0002.substitutions b/db/Beckhoff_3XXX/ecmcEL3314-0002.substitutions deleted file mode 120000 index 6f9a0e71d..000000000 --- a/db/Beckhoff_3XXX/ecmcEL3314-0002.substitutions +++ /dev/null @@ -1 +0,0 @@ -ecmcEL3314.substitutions \ No newline at end of file diff --git a/db/Beckhoff_3XXX/ecmcEL3314-0002.substitutions b/db/Beckhoff_3XXX/ecmcEL3314-0002.substitutions new file mode 100644 index 000000000..c4bf18314 --- /dev/null +++ b/db/Beckhoff_3XXX/ecmcEL3314-0002.substitutions @@ -0,0 +1,17 @@ +file "ecmc_analogInput-chX.template" +{ + pattern {CH_ID, ESLO, EGU, PREC} + {01, 0.01, DegC, 3 } + {02, 0.01, DegC, 3 } + {03, 0.01, DegC, 3 } + {04, 0.01, DegC, 3 } +} + +file "ecmc_status_analog-chX.template" +{ + pattern {CH_ID} + {01 } + {02 } + {03 } + {04 } +} diff --git a/db/Beckhoff_3XXX/ecmcEL3314-0010.substitutions b/db/Beckhoff_3XXX/ecmcEL3314-0010.substitutions new file mode 120000 index 000000000..1dba52526 --- /dev/null +++ b/db/Beckhoff_3XXX/ecmcEL3314-0010.substitutions @@ -0,0 +1 @@ +ecmcEL3314-0002.substitutions \ No newline at end of file diff --git a/db/Beckhoff_3XXX/ecmcEL3314-0020.substitutions b/db/Beckhoff_3XXX/ecmcEL3314-0020.substitutions new file mode 120000 index 000000000..1dba52526 --- /dev/null +++ b/db/Beckhoff_3XXX/ecmcEL3314-0020.substitutions @@ -0,0 +1 @@ +ecmcEL3314-0002.substitutions \ No newline at end of file diff --git a/db/Beckhoff_3XXX/ecmcEL3314-0030.substitutions b/db/Beckhoff_3XXX/ecmcEL3314-0030.substitutions new file mode 120000 index 000000000..1dba52526 --- /dev/null +++ b/db/Beckhoff_3XXX/ecmcEL3314-0030.substitutions @@ -0,0 +1 @@ +ecmcEL3314-0002.substitutions \ No newline at end of file diff --git a/db/Beckhoff_3XXX/ecmcEL3314.substitutions b/db/Beckhoff_3XXX/ecmcEL3314.substitutions index 19e82b6ce..b9b7ab3f0 100644 --- a/db/Beckhoff_3XXX/ecmcEL3314.substitutions +++ b/db/Beckhoff_3XXX/ecmcEL3314.substitutions @@ -1,17 +1,17 @@ file "ecmc_analogInput-chX.template" { - pattern {CH_ID, ESLO, EOFF, EGU, PREC} - {01, 0.1, 0, "DegC", 2 } - {02, 0.1, 0, "DegC", 2 } - {03, 0.1, 0, "DegC", 2 } - {04, 0.1, 0, "DegC", 2 } + pattern {CH_ID, ESLO, EGU, PREC} + {01, 0.1, DegC, 2 } + {02, 0.1, DegC, 2 } + {03, 0.1, DegC, 2 } + {04, 0.1, DegC, 2 } } file "ecmc_status_analog-chX.template" { - pattern {CH_ID, KEY } - {01, "AI"} - {02, "AI"} - {03, "AI"} - {04, "AI"} + pattern {CH_ID} + {01 } + {02 } + {03 } + {04 } } diff --git a/db/Beckhoff_3XXX/ecmcEL3318.substitutions b/db/Beckhoff_3XXX/ecmcEL3318.substitutions new file mode 100644 index 000000000..585bdf5fa --- /dev/null +++ b/db/Beckhoff_3XXX/ecmcEL3318.substitutions @@ -0,0 +1,25 @@ +file "ecmc_analogInput-chX.template" +{ + pattern {CH_ID, ESLO, EGU, PREC} + {01, 0.1, DegC, 2 } + {02, 0.1, DegC, 2 } + {03, 0.1, DegC, 2 } + {04, 0.1, DegC, 2 } + {05, 0.1, DegC, 2 } + {06, 0.1, DegC, 2 } + {07, 0.1, DegC, 2 } + {08, 0.1, DegC, 2 } +} + +file "ecmc_status_analog-chX.template" +{ + pattern {CH_ID} + {01 } + {02 } + {03 } + {04 } + {05 } + {06 } + {07 } + {08 } +} diff --git a/general/init.cmd b/general/init.cmd index 7a97cd6ba..170908ab0 100644 --- a/general/init.cmd +++ b/general/init.cmd @@ -46,9 +46,3 @@ epicsEnvSet("ECMC_TSE", 0) #- Init all axis related variables ${ECMC_SUPPORT_MOTION=""}ecmcFileExist("${ECMC_CONFIG_ROOT}initAxis.cmd",1) ${ECMC_SUPPORT_MOTION=""}${SCRIPTEXEC} "${ECMC_CONFIG_ROOT}initAxis.cmd" - -#- Additional parameters when motor Records are loaded -${ECMC_USE_MOTOR_RECORD=""}epicsEnvSet("ECMC_EGU", "mm") -${ECMC_USE_MOTOR_RECORD=""}epicsEnvSet("ECMC_PREC", 3) -${ECMC_USE_MOTOR_RECORD=""}epicsEnvSet("ECMC_AXISFIELDINIT", "") # Extra field init to motor record -${ECMC_USE_MOTOR_RECORD=""}epicsEnvSet("ECMC_AXISCONFIG", "") # Extra parameters to driver diff --git a/hardware/Beckhoff_3XXX/EL/ecmcEL3311.cmd b/hardware/Beckhoff_3XXX/EL/ecmcEL3311.cmd new file mode 100644 index 000000000..b0a8f17c0 --- /dev/null +++ b/hardware/Beckhoff_3XXX/EL/ecmcEL3311.cmd @@ -0,0 +1,19 @@ +#-d /** +#-d \brief hardware script for EL3311 +#-d \details EL3311 | 1-channel thermocouple input terminal with open-circuit recognition +#-d \author Markus Kristensson, Carlos Doro Neto +#-d \file +#-d \note SDOS +#-d \param [out] SDO 0x1011:01 --> 1684107116 \b reset +#-d */ + + +epicsEnvSet("ECMC_EC_HWTYPE" "EL3311") +epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") +epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x0cef3052") + +#- verify slave, including reset +${SCRIPTEXEC} ${ecmccfg_DIR}slaveVerify.cmd "RESET=true" + +#- analog input Ch1 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=01,ECMC_PDO=0x1a00,ECMC_ENTRY=0x6000" diff --git a/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0002.cmd b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0002.cmd index 6214cb22b..3b902954b 100644 --- a/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0002.cmd +++ b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0002.cmd @@ -1,7 +1,7 @@ #-d /** #-d \brief hardware script for EL3314-0002 #-d \details EL3314-0002 | 4-channel (24 bits) thermocouple input terminal with open-circuit recognition -#-d \author Anders Sandstroem +#-d \author Anders Sandstroem, Markus Kristensson, Carlos Doro Neto #-d \file #-d \note SDOS #-d \param [out] SDO 0x1011:01 --> 1684107116 \b reset @@ -12,14 +12,4 @@ epicsEnvSet("ECMC_EC_HWTYPE" "EL3314-0002") epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x0cf23052") -#- verify slave, including reset -${SCRIPTEXEC} ${ecmccfg_DIR}slaveVerify.cmd "RESET=true" - -#- analog input Ch1 -${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_32bit.cmd "CH_ID=01,ECMC_PDO=0x1a00,ECMC_ENTRY=0x6000" -#- analog input Ch2 -${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_32bit.cmd "CH_ID=02,ECMC_PDO=0x1a01,ECMC_ENTRY=0x6010" -#- analog input Ch3 -${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_32bit.cmd "CH_ID=03,ECMC_PDO=0x1a02,ECMC_ENTRY=0x6020" -#- analog input Ch4 -${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_32bit.cmd "CH_ID=04,ECMC_PDO=0x1a03,ECMC_ENTRY=0x6030" +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcEL3314-XXXX_generic.cmd diff --git a/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0010.cmd b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0010.cmd new file mode 100644 index 000000000..5166388be --- /dev/null +++ b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0010.cmd @@ -0,0 +1,15 @@ +#-d /** +#-d \brief hardware script for EL3314-0010 +#-d \details EL3314-0010 | 4-channel (24 bits) thermocouple, high precision, input terminal with open-circuit recognition +#-d \author Markus Kristensson, Carlos Doro Neto +#-d \file +#-d \note SDOS +#-d \param [out] SDO 0x1011:01 --> 1684107116 \b reset +#-d */ + + +epicsEnvSet("ECMC_EC_HWTYPE" "EL3314-0010") +epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") +epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x0cf23052") + +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcEL3314-XXXX_generic.cmd diff --git a/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0020.cmd b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0020.cmd new file mode 100644 index 000000000..708805b87 --- /dev/null +++ b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0020.cmd @@ -0,0 +1,15 @@ +#-d /** +#-d \brief hardware script for EL3314-0020 +#-d \details EL3314-0020 | 4-channel (24 bits) thermocouple, high precision, factory calibrated, input terminal with open-circuit recognition +#-d \author Markus Kristensson, Carlos Doro Neto +#-d \file +#-d \note SDOS +#-d \param [out] SDO 0x1011:01 --> 1684107116 \b reset +#-d */ + + +epicsEnvSet("ECMC_EC_HWTYPE" "EL3314-0020") +epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") +epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x0cf23052") + +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcEL3314-XXXX_generic.cmd diff --git a/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0030.cmd b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0030.cmd new file mode 100644 index 000000000..fdfe7c61f --- /dev/null +++ b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-0030.cmd @@ -0,0 +1,15 @@ +#-d /** +#-d \brief hardware script for EL3314-0030 +#-d \details EL3314-0030 | 4-channel (24 bits) thermocouple, high precision, externally calibrated, input terminal with open-circuit recognition +#-d \author Markus Kristensson, Carlos Doro Neto +#-d \file +#-d \note SDOS +#-d \param [out] SDO 0x1011:01 --> 1684107116 \b reset +#-d */ + + +epicsEnvSet("ECMC_EC_HWTYPE" "EL3314-0030") +epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") +epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x0cf23052") + +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcEL3314-XXXX_generic.cmd diff --git a/hardware/Beckhoff_3XXX/EL/ecmcEL3314-XXXX_generic.cmd b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-XXXX_generic.cmd new file mode 100644 index 000000000..3b949109d --- /dev/null +++ b/hardware/Beckhoff_3XXX/EL/ecmcEL3314-XXXX_generic.cmd @@ -0,0 +1,21 @@ +#-d /** +#-d \brief hardware script for EL3314-XXXX +#-d \details EL3314-XXXX | Generic script for EL3314-XXXX modules. +#-d \author Markus Kristensson, Carlos Doro Netos +#-d \file +#-d \note SDOS +#-d \param [out] SDO 0x1011:01 --> 1684107116 \b reset +#-d */ + + +#- verify slave, including reset +${SCRIPTEXEC} ${ecmccfg_DIR}slaveVerify.cmd "RESET=true" + +#- analog input Ch1 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_32bit.cmd "CH_ID=01,ECMC_PDO=0x1a00,ECMC_ENTRY=0x6000" +#- analog input Ch2 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_32bit.cmd "CH_ID=02,ECMC_PDO=0x1a01,ECMC_ENTRY=0x6010" +#- analog input Ch3 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_32bit.cmd "CH_ID=03,ECMC_PDO=0x1a02,ECMC_ENTRY=0x6020" +#- analog input Ch4 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_32bit.cmd "CH_ID=04,ECMC_PDO=0x1a03,ECMC_ENTRY=0x6030" diff --git a/hardware/Beckhoff_3XXX/EL/ecmcEL3318.cmd b/hardware/Beckhoff_3XXX/EL/ecmcEL3318.cmd new file mode 100644 index 000000000..a90ffdcba --- /dev/null +++ b/hardware/Beckhoff_3XXX/EL/ecmcEL3318.cmd @@ -0,0 +1,33 @@ +#-d /** +#-d \brief hardware script for EL3318 +#-d \details EL3318 | 8-channel (16 bits) thermocouple input terminal with open-circuit recognition +#-d \author Markus Kristensson, Carlos Doro Neto +#-d \file +#-d \note SDOS +#-d \param [out] SDO 0x1011:01 --> 1684107116 \b reset +#-d */ + + +epicsEnvSet("ECMC_EC_HWTYPE" "EL3318") +epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") +epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x0cf63052") + +#- verify slave, including reset +${SCRIPTEXEC} ${ecmccfg_DIR}slaveVerify.cmd "RESET=true" + +#- analog input Ch1 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=01,ECMC_PDO=0x1a00,ECMC_ENTRY=0x6000" +#- analog input Ch2 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=02,ECMC_PDO=0x1a01,ECMC_ENTRY=0x6010" +#- analog input Ch3 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=03,ECMC_PDO=0x1a02,ECMC_ENTRY=0x6020" +#- analog input Ch4 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=04,ECMC_PDO=0x1a03,ECMC_ENTRY=0x6030" +#- analog input Ch5 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=05,ECMC_PDO=0x1a04,ECMC_ENTRY=0x6040" +#- analog input Ch6 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=06,ECMC_PDO=0x1a05,ECMC_ENTRY=0x6050" +#- analog input Ch7 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=07,ECMC_PDO=0x1a06,ECMC_ENTRY=0x6060" +#- analog input Ch8 +${SCRIPTEXEC} ${ecmccfg_DIR}ecmcAnalogInput_16bit.cmd "CH_ID=08,ECMC_PDO=0x1a07,ECMC_ENTRY=0x6070" diff --git a/hardware/Sensors/ecmcEL33XX-Sensor-generic.cmd b/hardware/Sensors/ecmcEL33XX-Sensor-generic.cmd index 381e28c57..c30297e75 100644 --- a/hardware/Sensors/ecmcEL33XX-Sensor-generic.cmd +++ b/hardware/Sensors/ecmcEL33XX-Sensor-generic.cmd @@ -2,6 +2,7 @@ #-d \brief hardware script for ecmcEL33XX-Sensor-generic #-d \details Parmetrization default SDO settings for EL33XX #-d \author Anders Sandstroem +#-d \author Carlos Doro Neto #-d \file #-d */ @@ -13,56 +14,83 @@ #- -ECMC_EC_SLAVE_NUM = slave number #- -#- Enable user scale (default 0=disabled) +#- Enable user scale +#- 0 = Disabled (default) +#- 1 = Enabled epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x1") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Disabled +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" -#- Presentation: -#- 0 = Signed (Default) -#- 1 = Absolute, MSB as sign -#- 2 = High precision (only available for certain terminals) +#- Presentation +#- Index EL3314-0002, EL3314-0010 All other EL33XX +#- EL3314-0020, EL3314-0030 +#- ------- ---------------------------- ----------------------- +#- 0 0.1 degC/digit Signed (default) +#- 1 Absolute, MSB as sign +#- 2 0.01 degC/digit (default) High resolution +#- 3 0.001 degC/digit epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x2") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Signed +ecmcEpicsEnvSetCalcTernary("ECMC_EC_SDO_VALUE", "'${ECMC_EC_HWTYPE}'='EL3314-0002' or '${ECMC_EC_HWTYPE}'='EL3314-0010' or '${ECMC_EC_HWTYPE}'='EL3314-0020' or '${ECMC_EC_HWTYPE}'='EL3314-0030'", "2", "0") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" -#- Enable Siemens S5 bits: (not available for all EL33XX) +#- Enable Siemens S5 bits +#- Note: not available for EL3314-0010, EL3314-0020 and EL3314-0030 +#- 0 = Disabled (default) +#- 1 = Enabled epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x5") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Disabled -ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") +ecmcEpicsEnvSetCalcTernary("ECMC_SKIP_ME", "'${ECMC_EC_HWTYPE}'='EL3314-0010' or '${ECMC_EC_HWTYPE}'='EL3314-0020' or '${ECMC_EC_HWTYPE}'='EL3314-0030'", "#", "") +${ECMC_SKIP_ME}ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvUnset("ECMC_SKIP_ME") #- Enable filter +#- Note: according to documentation the filter is always enabled independent of setting since needed for measure process. So rely on default value. +#- 0 = Disabled +#- 1 = Enabled (default) epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x6") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "1") # Enabled -#- NOTE: According to documentation the filter is always enabled independent of setting since needed for measure process. So rely on default value. +epicsEnvSet("ECMC_EC_SDO_VALUE", "1") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" -#- Enable limit 1 (not available for all EL33XX) +#- Enable limit 1 +#- Note: not available for EL3314-0010, EL3314-0020, EL3314-0030 and EL3318 +#- 0 = Disabled (default) +#- 1 = Enabled epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x7") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Disabled -ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") +ecmcEpicsEnvSetCalcTernary("ECMC_SKIP_ME", "'${ECMC_EC_HWTYPE}'='EL3314-0010' or '${ECMC_EC_HWTYPE}'='EL3314-0020' or '${ECMC_EC_HWTYPE}'='EL3314-0030' or '${ECMC_EC_HWTYPE}'='EL3318'", "#", "") +${ECMC_SKIP_ME}ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvUnset("ECMC_SKIP_ME") -#- Enable limit 2 (not available for all EL33XX) +#- Enable limit 2 +#- Note: not available for EL3314-0010, EL3314-0020, EL3314-0030 and EL3318 +#- 0 = Disabled (default) +#- 1 = Enabled epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x8") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Disabled -ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") +ecmcEpicsEnvSetCalcTernary("ECMC_SKIP_ME", "'${ECMC_EC_HWTYPE}'='EL3314-0010' or '${ECMC_EC_HWTYPE}'='EL3314-0020' or '${ECMC_EC_HWTYPE}'='EL3314-0030' or '${ECMC_EC_HWTYPE}'='EL3318'", "#", "") +${ECMC_SKIP_ME}ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvUnset("ECMC_SKIP_ME") #- Enable user calibration +#- 0 = Disabled (default) +#- 1 = Enabled epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0xA") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Disabled +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" #- Enable vendor calibration +#- 0 = Disabled +#- 1 = Enabled (default) epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0xB") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "1") # Enabled +epicsEnvSet("ECMC_EC_SDO_VALUE", "1") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" #- Cold junction compensation @@ -71,16 +99,17 @@ ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_E #- 2 = Extern process data epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0xC") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Internal +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" #- Disable wirebreak detection +#- Note: not available for EL3311 and EL3312 #- 0 = Wire break detection active (default) #- 1 = Wire break detection not active epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0xE") epicsEnvSet("ECMC_EC_SDO_SIZE", "1") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Active -ecmcEpicsEnvSetCalcTernary("ECMC_SKIP_ME", "'${ECMC_EC_HWTYPE}'='EL3312'", "#", "") +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") +ecmcEpicsEnvSetCalcTernary("ECMC_SKIP_ME", "'${ECMC_EC_HWTYPE}'='EL3311' or '${ECMC_EC_HWTYPE}'='EL3312'", "#", "") ${ECMC_SKIP_ME}ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" epicsEnvUnset("ECMC_SKIP_ME") @@ -90,28 +119,37 @@ epicsEnvSet("ECMC_EC_SDO_SIZE", "2") epicsEnvSet("ECMC_EC_SDO_VALUE", "0") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" -#- User scale gain (Represented in fixed point format with factor 2^⁻16=> 1 corresponds to 65535) +#- User scale gain +#- Note: represented in fixed point format with factor 2^16 (gain = 1 corresponds to 65535) epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x12") epicsEnvSet("ECMC_EC_SDO_SIZE", "4") -epicsEnvSet("ECMC_EC_SDO_VALUE", "65535") # Gain 1 +epicsEnvSet("ECMC_EC_SDO_VALUE", "65535") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" -#- Limit 1 (not available for all EL33XX) +#- Limit 1 +#- Note: not available for EL3314-0010, EL3314-0020, EL3314-0030 and EL3318 epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x13") ecmcEpicsEnvSetCalcTernary("ECMC_EC_SDO_SIZE", "'${ECMC_EC_HWTYPE}'='EL3314-0002'", "4", "2") epicsEnvSet("ECMC_EC_SDO_VALUE", "0") -ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +ecmcEpicsEnvSetCalcTernary("ECMC_SKIP_ME", "'${ECMC_EC_HWTYPE}'='EL3314-0010' or '${ECMC_EC_HWTYPE}'='EL3314-0020' or '${ECMC_EC_HWTYPE}'='EL3314-0030' or '${ECMC_EC_HWTYPE}'='EL3318'", "#", "") +${ECMC_SKIP_ME}ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvUnset("ECMC_SKIP_ME") -#- Limit 2 (not available for all EL33XX) +#- Limit 2 +#- Note: not available for EL3314-0010, EL3314-0020, EL3314-0030 and EL3318 epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x14") ecmcEpicsEnvSetCalcTernary("ECMC_EC_SDO_SIZE", "'${ECMC_EC_HWTYPE}'='EL3314-0002'", "4", "2") epicsEnvSet("ECMC_EC_SDO_VALUE", "0") -ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +ecmcEpicsEnvSetCalcTernary("ECMC_SKIP_ME", "'${ECMC_EC_HWTYPE}'='EL3314-0010' or '${ECMC_EC_HWTYPE}'='EL3314-0020' or '${ECMC_EC_HWTYPE}'='EL3314-0030' or '${ECMC_EC_HWTYPE}'='EL3318'", "#", "") +${ECMC_SKIP_ME}ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvUnset("ECMC_SKIP_ME") #- Filter settings +#- Note: per channel configuration is not possible. All channels use channel 1 setting. +#- Note: there are undocumented options for EL3314-0002. #- Index All EL33XX except EL3314-0002 EL3314-0002 -#- ------- ------------------------------- ------------- -#- 0 50 Hz 2.5 Hz +#- ------- ------------------------------- ------------------ +#- 0 50 Hz (default) 2.5 Hz (default) #- 1 60 Hz 5 Hz #- 2 100 Hz 10 Hz #- 3 500 Hz 16.6 Hz @@ -119,14 +157,15 @@ ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_E #- 5 2 kHz 50 Hz #- 6 3.75 kHz 60 Hz #- 7 7.5 kHz 100 Hz -#- 8 15 kHz -#- 9 30 kHz -#- 10 5 Hz -#- 11 10 Hz +#- 8 15 kHz ??? +#- 9 30 kHz ??? +#- 10 5 Hz ??? +#- 11 10 Hz ??? +#- 12 ??? +#- 13 ??? epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x15") epicsEnvSet("ECMC_EC_SDO_SIZE", "2") epicsEnvSet("ECMC_EC_SDO_VALUE", "0") -#- NOTE: Per channel configuration is not possible. All channels use channel 1 setting. ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" #- User calibration offset @@ -135,43 +174,70 @@ epicsEnvSet("ECMC_EC_SDO_SIZE", "2") epicsEnvSet("ECMC_EC_SDO_VALUE", "0") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" -#- User calibration gain (Represented in fixed point format with factor 2^⁻16=> 1 corresponds to 65535) +#- User calibration gain +#- Note: represented in fixed point format with factor 2^16 (gain = 1 corresponds to 65535) epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x18") epicsEnvSet("ECMC_EC_SDO_SIZE", "2") epicsEnvSet("ECMC_EC_SDO_VALUE", "65535") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" -#- TC Element (different for EL33XX, List for EL3314-0000 below) -#- 0 = K -200..1370 degC (default) -#- 1 = J -100..1200 degC -#- 2 = L 0..900 degC -#- 3 = E -100..1000 degC -#- 4 = T -200..400 degC -#- 5 = N -100..1300 degC -#- 6 = U 0..600 degC -#- 7 = B 600..1800 degC -#- 8 = R 0..1767 degC -#- 9 = S 0..1760 degC -#- 10 = C 0..2320 degC +#- Thermocouple element +#- Index All EL33XX except EL3314-0002 EL3314-0010, EL3314-0020 +#- EL3314-0010, EL3314-0020 EL3314-0030 +#- EL3314-0030, EL3314-0002 +#- ------- -------------------------- -------------------------- ---------------------------- +#- 0 K (default) K (default) K (default) +#- 1 J J J +#- 2 L L L +#- 3 E E E +#- 4 T T T +#- 5 N N N +#- 6 U U U +#- 7 B B B +#- 8 R R R +#- 9 S S S +#- 10 C C C +#- 100 ±30 mV (1 µV resolution) ±78 mV (1 µV resolution) +#- 101 ±60 mV (2 µV resolution) +#- 102 ±90 mV (4 µV resolution) +#- 103 ±2.5 V (1 µV resolution) +#- 104 ±78 mV (10 nV resolution) +#- +#- Thermocouple ranges: +#- type K from -200 to 1370 degC +#- type J from -100 to 1200 degC +#- type L from 0 to 900 degC +#- type E from -100 to 1000 degC +#- type T from -200 to 400 degC +#- type N from -100 to 1300 degC +#- type U from 0 to 600 degC +#- type B from 600 to 1800 degC +#- type R from 0 to 1767 degC +#- type S from 0 to 1760 degC +#- type C from 0 to 2320 degC +#- epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x19") epicsEnvSet("ECMC_EC_SDO_SIZE", "2") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # K +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" -# MC filter only EL3314-0002, EL3314-0010 +#- Microcontroller filter +#- Note: only available for EL3314-0002, EL3314-0010, EL3314-0020 and EL3314-0030 #- 0 = Inactive (default) #- 1 = IIR 1 #- 2 = IIR 2 #- 3 = IIR 3 #- 4 = IIR 4 -#- 5 = FIR 4 -#- 6 = FIR 8 -#- 7 = FIR 16 -#- 8 = FIR 32 +#- 5 = FIR 4 (only EL3314-00X0) +#- 6 = FIR 8 (only EL3314-00X0) +#- 7 = FIR 16 (only EL3314-00X0) +#- 8 = FIR 32 (only EL3314-00X0) epicsEnvSet("ECMC_EC_SDO_INDEX_OFFSET", "0x1A") epicsEnvSet("ECMC_EC_SDO_SIZE", "2") -epicsEnvSet("ECMC_EC_SDO_VALUE", "0") # Inactive -#ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvSet("ECMC_EC_SDO_VALUE", "0") +ecmcEpicsEnvSetCalcTernary("ECMC_SKIP_ME", "'${ECMC_EC_HWTYPE}'='EL3314-0002' or '${ECMC_EC_HWTYPE}'='EL3314-0010' or '${ECMC_EC_HWTYPE}'='EL3314-0020' or '${ECMC_EC_HWTYPE}'='EL3314-0030'", "", "#") +${ECMC_SKIP_ME}ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},${ECMC_EC_SDO_INDEX},$(ECMC_EC_SDO_INDEX_OFFSET),$(ECMC_EC_SDO_VALUE),$(ECMC_EC_SDO_SIZE))" +epicsEnvUnset("ECMC_SKIP_ME") #- Cleanup epicsEnvUnset("ECMC_EC_SDO_INDEX_OFFSET") diff --git a/motion/ecmc_axis_unset.cmd b/motion/ecmc_axis_unset.cmd index 2ffb3bd61..6aadbd676 100644 --- a/motion/ecmc_axis_unset.cmd +++ b/motion/ecmc_axis_unset.cmd @@ -65,9 +65,6 @@ epicsEnvUnset(ECMC_DRV_SCALE_DENOM) epicsEnvUnset(ECMC_DRV_SCALE_NUM) epicsEnvUnset(ECMC_DRV_BRAKE_OPEN_DLY_TIME) epicsEnvUnset(ECMC_DRV_BRAKE_CLOSE_AHEAD_TIME) -epicsEnvUnset(ECMC_SOFT_LOW_LIM) -epicsEnvUnset(ECMC_DXLM_ENABLE) -epicsEnvUnset(ECMC_SOFT_HIGH_LIM) epicsEnvUnset(ECMC_DXLM_ENABLE) epicsEnvUnset(ECMC_EC_MON_LOWLIM) epicsEnvUnset(ECMC_EC_MON_HIGHLIM) @@ -90,7 +87,6 @@ epicsEnvUnset(ECMC_HOME_POS) epicsEnvUnset(ECMC_HOME_ACC) epicsEnvUnset(ECMC_HOME_DEC) epicsEnvUnset(ECMC_DRV_TYPE) -epicsEnvUnset(ECMC_VELO) epicsEnvUnset(ECMC_SOFT_LOW_LIM) epicsEnvUnset(ECMC_SOFT_HIGH_LIM) epicsEnvUnset(ECMC_HOME_POS_MOVE_ENA)