Add festo
This commit is contained in:
@@ -19,7 +19,7 @@ axis:
|
||||
# positioning: 1 # Allow positioning
|
||||
|
||||
epics:
|
||||
name: Axis1 # Axis anme
|
||||
name: M1 # Axis anme
|
||||
precision: 3 # Decimal count
|
||||
description: Festo drive test # Axis description
|
||||
unit: deg # Unit
|
||||
@@ -27,7 +27,7 @@ epics:
|
||||
|
||||
drive:
|
||||
numerator: 360 # Fastest speed in engineering units
|
||||
denominator: 15100000 # I/O range for ECMC_EC_ALIAS_DRV_VELO_SET
|
||||
denominator: 16777216 # I/O range for ECMC_EC_ALIAS_DRV_VELO_SET
|
||||
#denominator: 16777216 # I/O range for ECMC_EC_ALIAS_DRV_VELO_SET
|
||||
type: 1 # Stepper: 0. DS402: 1 (DS402 = servos and advanced stepper drives)
|
||||
control: ec0.s$(DRV_ID).driveControl01 # Control word ethercat entry
|
||||
@@ -49,7 +49,7 @@ drive:
|
||||
|
||||
encoder:
|
||||
numerator: 360 # Scaling numerator example 360 deg/rev
|
||||
denominator: 15100000 # Scaling denominator example 16777216 ticks per 360 degree
|
||||
denominator: 16777216 # Scaling denominator example 16777216 ticks per 360 degree
|
||||
#denominator: 16777216 # Scaling denominator example 16777216 ticks per 360 degree
|
||||
type: 1 # Type: 0=Incremental, 1=Absolute
|
||||
bits: 32 # Total bit count of encoder raw data
|
||||
@@ -96,12 +96,12 @@ encoder:
|
||||
# ready: ec0.. # Ethercat entry for readinf drive internal homing seq ready (seq id 26)
|
||||
|
||||
controller:
|
||||
Kp: 15 # Kp proportinal gain
|
||||
Ki: 0.1 # Ki integral gain
|
||||
Kd: 0 # Kd derivative gain
|
||||
Kp: 15 # Kp proportinal gain
|
||||
Ki: 0.1 # Ki integral gain
|
||||
Kd: 0 # Kd derivative gain
|
||||
# Kff: 1 # Feed forward gain
|
||||
deadband:
|
||||
tol: 0.01 # Stop control if within this distance from target for the below time
|
||||
tol: 0.01 # Stop control if within this distance from target for the below time
|
||||
time: 100
|
||||
# limits:
|
||||
# minOutput: -100 # Minimum controller output
|
||||
@@ -117,9 +117,9 @@ controller:
|
||||
trajectory:
|
||||
type: 1 # Default 0 = trapetz, 1 = S-curve (ruckig)
|
||||
axis:
|
||||
velocity: 360 # Default velo for axis
|
||||
acceleration: 360 # Default acc for axis
|
||||
deceleration: 360 # Default dec for axis
|
||||
velocity: 720 # Default velo for axis
|
||||
acceleration: 720 # Default acc for axis
|
||||
deceleration: 720 # Default dec for axis
|
||||
# emergencyDeceleration: 0.05 # Deceleration when axis in error state
|
||||
jerk: 1000 # Default jerk for axis
|
||||
jog:
|
||||
@@ -168,7 +168,7 @@ monitoring:
|
||||
time: 100 # Allowed time outside tolerance
|
||||
target:
|
||||
enable: true # Enable at target monitoring (needs to be enabled if using motor record)
|
||||
tolerance: 0.5 # Allowed tolerance
|
||||
tolerance: 5 # Allowed tolerance
|
||||
time: 10 # Filter time inside tolerance to be at target
|
||||
velocity:
|
||||
enable: false # Enable velocity monitoring
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
# ecmc test system
|
||||
# Anders Sandström
|
||||
|
||||
require ecmccfg sandst_a "MASTER_ID=0,ENG_MODE=1"
|
||||
require ecmccomp sandst_a
|
||||
|
||||
epicsEnvSet("IOC" ,"$(IOC="c6025a")")
|
||||
epicsEnvSet("SCRIPTEXEC" ,"$(SCRIPTEXEC="iocshLoad")")
|
||||
|
||||
# Configuration loaded via FoE
|
||||
epicsEnvSet(DRV_ID,20)
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=${DRV_ID}, HW_DESC=Festo-CMMT-ST"
|
||||
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Phytron-pyhBasic-42-1-1.5,MACROS='U_NOM_MV=24000,MAX_RPM=1800,NOM_RPM=1000,COMMUTATION=2'"
|
||||
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Encoder-RLS-LA11-26bit-BISS-C,MACROS='CLK_FRQ_KHZ=6000,ST_BITS=12,MT_BITS=14,INV_DIR=0'"
|
||||
|
||||
ecmcConfigOrDie "Cfg.EcApplyConfig(1)"
|
||||
|
||||
# To check mode:
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addEcSdoRT.cmd, "SLAVE_ID=${DRV_ID},INDEX=0x6060,SUBINDEX=0x0,DT=U8,NAME=DrvMode"
|
||||
|
||||
# Configure Motion
|
||||
epicsEnvSet("DEV", "$(IOC)")
|
||||
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}loadYamlAxis.cmd, "FILE=./cfg/axis_CSV_OL_EMMS-ST_INCREMENTS.yaml"
|
||||
|
||||
# Other
|
||||
ecmcConfigOrDie "Cfg.EcSetDiagnostics(1)"
|
||||
ecmcConfigOrDie "Cfg.EcEnablePrintouts(0)"
|
||||
ecmcConfigOrDie "Cfg.EcSetDomainFailedCyclesLimit(100)"
|
||||
|
||||
# go active
|
||||
$(SCRIPTEXEC) $(ecmccfg_DIR)setAppMode.cmd
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
# ecmc test system
|
||||
# Anders Sandström
|
||||
|
||||
require ecmccfg "MASTER_ID=0,ENG_MODE=1"
|
||||
require ecmccfg "MASTER_ID=1,ENG_MODE=1"
|
||||
require ecmccomp
|
||||
|
||||
epicsEnvSet("IOC" ,"$(IOC="c6025a")")
|
||||
epicsEnvSet("SCRIPTEXEC" ,"$(SCRIPTEXEC="iocshLoad")")
|
||||
|
||||
# Configuration loaded via FoE
|
||||
epicsEnvSet(DRV_ID,0)
|
||||
epicsEnvSet(DRV_ID,20)
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=${DRV_ID}, HW_DESC=Festo-CMMT-ST_PV"
|
||||
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,MACROS=U_NOM_MV=24000,MAX_RPM=1740,NOM_RPM=800,COMMUTATION=2,I_MAX_MA=1000,I_STDBY_MA=500,R_COIL_MOHM=8000,L_COIL_UH=12000,I_CTRL_GAIN_REACT_CURR=10,I_CTRL_GAIN_ACT_CURR=10"
|
||||
#-d I_CTRL_GAIN_REACT_CURR : P1.80.0.0 Current controller amplification gain reactive current (50.0)
|
||||
@@ -27,4 +24,4 @@ ${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}loadYamlAxis.cmd, "FILE=./cfg/axis_PV_PURE_OL_E
|
||||
|
||||
# go active
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}applyConfig.cmd
|
||||
$(SCRIPTEXEC) ($(ecmccfg_DIR)setAppMode.cmd)
|
||||
$(SCRIPTEXEC) $(ecmccfg_DIR)setAppMode.cmd
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
# ecmc test system
|
||||
# Anders Sandström
|
||||
|
||||
require ecmccfg "MASTER_ID=0,ENG_MODE=1"
|
||||
require ecmccomp sandst_a
|
||||
|
||||
epicsEnvSet("IOC" ,"$(IOC="c6025a")")
|
||||
epicsEnvSet("SCRIPTEXEC" ,"$(SCRIPTEXEC="iocshLoad")")
|
||||
|
||||
# Configuration loaded via FoE
|
||||
epicsEnvSet(DRV_ID,15)
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=${DRV_ID}, HW_DESC=Festo-CMMT-ST_PV"
|
||||
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,MACROS=U_NOM_MV=24000,MAX_RPM=1740,NOM_RPM=800,COMMUTATION=2,I_MAX_MA=500,I_STDBY_MA=500,R_COIL_MOHM=10000,L_COIL_UH=2000,I_CTRL_GAIN_REACT_CURR=10,I_CTRL_GAIN_ACT_CURR=10"
|
||||
#-d I_CTRL_GAIN_REACT_CURR : P1.80.0.0 Current controller amplification gain reactive current (50.0)
|
||||
#-d I_CTRL_INT_REACT_CURR : P1.81.0.0 Current controller integartion constant reactive current (10000.0)
|
||||
#-d I_CTRL_GAIN_ACT_CURR : P1.82.0.0 Current controller amplification gain active current (50.0)
|
||||
#-d I_CTRL_INT_ACT_CURR : P1.83.0.0 Current controller integartion constant active current (10000.0)
|
||||
|
||||
|
||||
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Encoder-Generic-OPENLOOP,MACROS=''"
|
||||
|
||||
ecmcConfigOrDie "Cfg.EcApplyConfig(1)"
|
||||
|
||||
# To check mode:
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addEcSdoRT.cmd, "SLAVE_ID=${DRV_ID},INDEX=0x6060,SUBINDEX=0x0,DT=U8,NAME=DrvMode"
|
||||
|
||||
# Configure Motion
|
||||
epicsEnvSet("DEV", "$(IOC)")
|
||||
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}loadYamlAxis.cmd, "FILE=./cfg/axis_PV_PURE_OL_EMMS-ST_INCREMENTS.yaml"
|
||||
|
||||
# Other
|
||||
ecmcConfigOrDie "Cfg.EcSetDiagnostics(1)"
|
||||
ecmcConfigOrDie "Cfg.EcEnablePrintouts(0)"
|
||||
ecmcConfigOrDie "Cfg.EcSetDomainFailedCyclesLimit(100)"
|
||||
|
||||
# go active
|
||||
$(SCRIPTEXEC) ($(ecmccfg_DIR)setAppMode.cmd)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user