From d464b887ac69c3e0b20453b29b13a7280de8eed3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Sandstr=C3=B6m?= Date: Thu, 21 Nov 2024 13:22:11 +0100 Subject: [PATCH] Add festo --- .../axis_PV_PURE_OL_EMMS-ST_INCREMENTS.yaml | 22 +++++------ festo/festo_CSV_OL_OWIS_BISS.script | 32 --------------- festo/festo_PV_Oriental_PKE244A.script | 9 ++--- festo/festo_PV_SuperiorElectric.script | 39 ------------------- readme.md | 8 ++++ 5 files changed, 22 insertions(+), 88 deletions(-) delete mode 100644 festo/festo_CSV_OL_OWIS_BISS.script delete mode 100644 festo/festo_PV_SuperiorElectric.script diff --git a/festo/cfg/axis_PV_PURE_OL_EMMS-ST_INCREMENTS.yaml b/festo/cfg/axis_PV_PURE_OL_EMMS-ST_INCREMENTS.yaml index e8510bc..d4b8b9a 100644 --- a/festo/cfg/axis_PV_PURE_OL_EMMS-ST_INCREMENTS.yaml +++ b/festo/cfg/axis_PV_PURE_OL_EMMS-ST_INCREMENTS.yaml @@ -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 diff --git a/festo/festo_CSV_OL_OWIS_BISS.script b/festo/festo_CSV_OL_OWIS_BISS.script deleted file mode 100644 index 5459765..0000000 --- a/festo/festo_CSV_OL_OWIS_BISS.script +++ /dev/null @@ -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 - diff --git a/festo/festo_PV_Oriental_PKE244A.script b/festo/festo_PV_Oriental_PKE244A.script index fa409ad..1e23127 100644 --- a/festo/festo_PV_Oriental_PKE244A.script +++ b/festo/festo_PV_Oriental_PKE244A.script @@ -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 diff --git a/festo/festo_PV_SuperiorElectric.script b/festo/festo_PV_SuperiorElectric.script deleted file mode 100644 index 357fc04..0000000 --- a/festo/festo_PV_SuperiorElectric.script +++ /dev/null @@ -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) - - diff --git a/readme.md b/readme.md index af42418..1597881 100644 --- a/readme.md +++ b/readme.md @@ -121,3 +121,11 @@ ecmcConfigOrDie "Cfg.EcAddSdo(${ECMC_EC_SLAVE_NUM},0x8010,0x5,500,2)" ``` similar max speed, also approx, 2350. + + +## Festo in PV +* sc30, 1720deg/s +* sc31, 720 +* sc32, 0.1 deg/s +* sc33, 2800deg/s no osc +Works roughly up to 3000deg/s but osc