############################################################################## #- test config for ecmc_plugin_safety #- #- In this config the interface to safety system is liked to simulated ethercat entries: #- * To allow motion: #- caput c6025a:m0s013-Zero 3 #- * To simulate interlock from safety system: #- caput c6025a:m0s013-Zero 0 #- #- Monitor status with: #- camon c6025a:SS1-first-Err c6025a:SS1-first-RmpDwnCmdAct c6025a:SS1-first-AxsStndStllAct #- #- ethercat slaves #- 0 0:0 PREOP + EK1100 EtherCAT Coupler (2A E-Bus) #- 1 0:1 PREOP + EL2068 8Ch. Dig Output 24V, 0.5A #- 2 0:2 PREOP + EL2819 16K. Dig. Ausgang 24V, 0,5A, Diagnose #- 3 0:3 PREOP + EL5001 1K. SSI Encoder #- 4 0:4 PREOP + EL6224 (IO Link Master) #- 5 0:5 PREOP + EL2008 8K. Dig. Ausgang 24V, 0.5A #- 6 0:6 PREOP + EL2522 2K. Pulse Train Ausgang #- 7 0:7 PREOP + EL5072 2Ch. Inductive sensor interface (LVDT, Half Bridge) #- 8 0:8 PREOP + EL1008 8K. Dig. Eingang 24V, 3ms #- 9 0:9 PREOP + EL5042 2Ch. BiSS-C Encoder #- 10 0:10 PREOP + EL6692 EtherCAT Bridge-Klemme (Prim�r) #- 11 0:11 PREOP + EK1100 EtherCAT-Koppler (2A E-Bus) #- 12 0:12 PREOP + EL7031 1K. Schrittmotor-Endstufe (24V, 1.5A) #- 13 0:13 PREOP + EL7201 1K. MDP742 Servo-Motor-Endstufe (50V, 4A) #- 14 0:14 PREOP + EL7041-0052 1Ch. Stepper motor output stage (50V, 5A) #- 15 0:15 PREOP + EL7342 2Ch. DC motor output stage (50V, 3.5A) #- 16 0:16 PREOP + EL7411 BLDC Terminal with incremental encoder/Hall, 50 V DC, 4. #- 17 0:17 PREOP + EL7211-9014 1K. MDP742 Servo-Motor-Endstufe mit OCT (50V, 4,5A #- 18 0:18 PREOP + EL9576 Bremschopper Klemme require ecmccfg v10.0.0_RC1 "ENG_MODE=1,MASTER_ID=0,ECMC_VER=v10.0.0_RC1" # 0:14 - EL7041 1Ch Stepper ${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=14,HW_DESC=EL7041-0052" ${SCRIPTEXEC} ${ecmccfg_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper, MACROS='I_MAX_MA=1500, I_STDBY_MA=1000, U_NOM_MV=48000, R_COIL_MOHM=1230'" epicsEnvSet(DRV_SID,${ECMC_EC_SLAVE_NUM}) # 0:9 - EL5042 2Ch BiSS-C Encoder, RLS-LA11 ${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=9,HW_DESC=EL5042" ${SCRIPTEXEC} ${ecmccfg_DIR}applyComponent.cmd "COMP=Encoder-RLS-LA11-26bit-BISS-C,CH_ID=1" ${SCRIPTEXEC} ${ecmccfg_DIR}applyComponent.cmd "COMP=Encoder-RLS-LA11-26bit-BISS-C,CH_ID=2" epicsEnvSet(ENC_SID,${ECMC_EC_SLAVE_NUM}) ${SCRIPTEXEC} ${ecmccfg_DIR}loadYamlAxis.cmd, "FILE=./cfg/axis.yaml, DEV=${IOC}, AX_NAME=M1, AXIS_ID=1, DRV_SID=${DRV_SID}, ENC_SID=${ENC_SID}, ENC_CH=01" ${SCRIPTEXEC} ${ecmccfg_DIR}loadYamlEnc.cmd, "FILE=./cfg/enc_open_loop.yaml, DEV=${IOC}, ENC_SID=${DRV_SID}" ############################################################################## ## Load safety plugin require ecmc_plugin_safety v10.0.0_RC1 # simulate inputs and outputs in drive "ZERO" and ONE dummy-entry epicsEnvSet(BI_SLAVE,${DRV_SID}) epicsEnvSet(BO_SLAVE,${DRV_SID}) # Create SS1 group #- EC_RAMP_DOWN_CMD : Digital Input: Ethercat entry for ramp down command, input to ecmc (command from safety PLC/system) #- EC_AXES_AT_REST_STAT : Digital Output: Ethercat entry for signaling that all axes in group are at rest, output from ecmc (feedback to safety PLC/system) #- EC_AXES_LIM_VELO_CMD : Digital Input: Ethercat entry for reducing velocity, input to ecmc (command from safety PLC/system) #- DELAY_MS : Time between rampdown command and STO epicsEnvSet(EC_RAMP_DOWN_CMD,"ec${ECMC_EC_MASTER_ID}.s${BI_SLAVE}.ONE.0") epicsEnvSet(EC_AXES_AT_REST_STAT,"ec${ECMC_EC_MASTER_ID}.s${BO_SLAVE}.ZERO.0") epicsEnvSet(EC_AXES_LIM_VELO_CMD,"ec${ECMC_EC_MASTER_ID}.s${BO_SLAVE}.ONE.1") epicsEnvSet(SAFETY_TIMEOUT,500) ${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addSS1Group.cmd "NAME=first,EC_RAMP_DOWN_CMD=${EC_RAMP_DOWN_CMD},EC_AXES_AT_REST_STAT=${EC_AXES_AT_REST_STAT},EC_AXES_LIM_VELO_CMD=${EC_AXES_LIM_VELO_CMD=empty},DELAY_MS=${SAFETY_TIMEOUT}" #- Add axis #- AX_ID : Axis ID #- VELO_REST_LIM : Velocity at rest limit [unit same as EGU of axis] #- VELO_MAX_LIM : Velocity maximum limit, -1 to disable [unit same as EGU of axis] ${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToSafetyGroup.cmd "NAME=first,AX_ID=1,VELO_REST_LIM=0.01,VELO_MAX_LIM=1" ecmcEpicsEnvSetCalc(S_ID, "${DRV_SID}", "%03d") afterInit "dbpf ${IOC}:m${ECMC_EC_MASTER_ID=0}s${S_ID}-One 0"