Files
ecmc_master_slave/example/startup.script_ecmc
2024-09-16 09:31:27 +02:00

95 lines
4.4 KiB
Plaintext
Raw Blame History

require ecmccfg sandst_a,"ECMC_VER=sandst_a,MODE=NO_MR,ENG_MODE=1,EC_RATE=100"
require ecmccomp
require ecmc_master_slave sandst_a
#- ############################################################################
#- add slaves
#- list of slaves (4 axis test motion box)
# Master0
# 0 0:0 PREOP + EK1100 EtherCAT-Koppler (2A E-Bus)
# 1 0:1 PREOP + EL9227-5500 <20>berstromschutz 24V DC, 2K., max. 10A (Summe), eins
# 2 0:2 PREOP + EL5042 2Ch. BiSS-C Encoder
# 3 0:3 PREOP + EL5042 2Ch. BiSS-C Encoder
# 4 0:4 PREOP + EL3204 4K. Ana. Eingang PT100 (RTD)
# 5 0:5 PREOP + EL2008 8K. Dig. Ausgang 24V, 0.5A
# 6 0:6 PREOP + EL1008 8K. Dig. Eingang 24V, 3ms
# 7 0:7 PREOP + EL7041 1Ch. Stepper motor output stage (50V, 5A)
# 8 0:8 PREOP + EL7041 1Ch. Stepper motor output stage (50V, 5A)
# 9 0:9 PREOP + EL7041 1Ch. Stepper motor output stage (50V, 5A)
# 10 0:10 PREOP + EL7041 1Ch. Stepper motor output stage (50V, 5A)
#
# 0:0 - EK1100 EtherCAT coupler
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EK1100"
# 0:1 - EL9227-5500
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL9227-5500"
# 0:2 - EL5042 2Ch BiSS-C Encoder
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL5042"
# 0:3 - EL5042 2Ch BiSS-C Encoder
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL5042"
# 0:4 - EL3204
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL3204"
# 0:5 - EL2008
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL2008"
# 0:6 - EL1008 8K. Dig. Eingang 24V, 3ms
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL1008"
# 0:7 - EL7041 1Ch Stepper
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL7041-0052"
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,MACROS='I_MAX_MA=1000,I_STDBY_MA=500,U_NOM_MV=48000,R_COIL_MOHM=1230,STEPS=400'"
${SCRIPTEXEC} ${ecmccfg_DIR}loadYamlAxis.cmd, "FILE=cfg/axis_ax5_lower.yaml, DRV_SLAVE=${ECMC_EC_SLAVE_NUM}, ENC_SLAVE=${ECMC_EC_SLAVE_NUM}, ENC_CHANNEL=01"
# 0:8 - EL7041 1Ch Stepper
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL7041-0052"
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,MACROS='I_MAX_MA=1000,I_STDBY_MA=500,U_NOM_MV=48000,R_COIL_MOHM=1230,STEPS=400'"
${SCRIPTEXEC} ${ecmccfg_DIR}loadYamlAxis.cmd, "FILE=cfg/axis_ax6_upper.yaml, DRV_SLAVE=${ECMC_EC_SLAVE_NUM}, ENC_SLAVE=${ECMC_EC_SLAVE_NUM}, ENC_CHANNEL=01"
# 0:9 - EL7041 1Ch Stepper
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL7041-0052"
# 0:10 - EL7041 1Ch Stepper
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL7041-0052"
#- #################################################################
#- Virtual axes
${SCRIPTEXEC} ${ecmccfg_DIR}loadYamlAxis.cmd, "FILE=cfg/axis_vax5_YCEN.yaml, AX_ID=${AX_NUM=12}"
${SCRIPTEXEC} ${ecmccfg_DIR}loadYamlAxis.cmd, "FILE=cfg/axis_vax6_YGAP.yaml, AX_ID=${AX_NUM=13}"
#- #############################################################################
#- Y Direction -- Axis groupings in preparation for kinematics PLC
ecmcConfigOrDie "Cfg.AddAxisGroup(realAxesY)"
ecmcConfigOrDie "Cfg.AddAxisToGroupByName(5,realAxesY)"
ecmcConfigOrDie "Cfg.AddAxisToGroupByName(6,realAxesY)"
ecmcConfig "GetAxisGroupIndexByName(realAxesY)"
epicsEnvSet(GRP_ID_RAX,${ECMC_CONFIG_RETURN_VAL=0})
ecmcConfigOrDie "Cfg.AddAxisGroup(virtualAxesY)"
ecmcConfigOrDie "Cfg.AddAxisToGroupByName(12,virtualAxesY)"
ecmcConfigOrDie "Cfg.AddAxisToGroupByName(13,virtualAxesY)"
ecmcConfig "GetAxisGroupIndexByName(virtualAxesY)"
epicsEnvSet(GRP_ID_VAX,${ECMC_CONFIG_RETURN_VAL=0})
#- PLCs with inverse kinematics (note the INC var including dirs to search for include files)
${SCRIPTEXEC} ${ecmccfg_DIR}loadPLCFile.cmd, "FILE=./cfg/axis_main.plc, PLC_ID=1, INC=.:${ecmc_master_slave_DIR}, PLC_MACROS='PLC_ID=1, AX_CEN=12, AX_GAP=13, AX_LO=5, AX_HI=6, GRP_ID_RA=${GRP_ID_RAX}, GRP_ID_VA=${GRP_ID_VAX}'"
#- #################################################################
#- apply the configuration
${SCRIPTEXEC} ${ecmccfg_DIR}applyConfig.cmd
#- #################################################################
#- go active
${SCRIPTEXEC} ${ecmccfg_DIR}setAppMode.cmd
#- #############################################################################
#- reset all errors
afterInit("ecmcConfigOrDie 'ControllerErrorReset()'")
ecmcConfigOrDie "Cfg.SetDiagAxisEnable(0)"