Axis YAML settings table

KeyDescriptionOptional
axis.idAxis idNo
axis.typeAxis typeNo
axis.modesupported mode, CSV and CSP, defaults CSVYes
axis.parametersAdditional params to motor record driverNo
axis.healthOutputEthercat entry for health outputNo
axis.feedSwitchesOutputEthercat entry for fed switchesNo
axis.feedSwitchesValueValue to write to axis.feedSwitchesOutput. Defaults to 1No
axis.groupAdd axis to group (group will be created if not exists)No
axis.autoMode.modeSetEthercat entry drive mode write (set CSV,CSP,homing)No
axis.autoMode.modeActEthercat entry drive mode reading (set CSV,CSP,homing)No
axis.autoMode.modeCmdMotionDrive mode value for normal motion (written to axis.drvMode.modeSet when normal motion)No
axis.autoMode.modeCmdHomeDrive mode value for when homing (written to axis.drvMode.modeSet when homing)No
axis.features.blockComBlock communication to axisYes
axis.features.allowSrcChangeWhenEnabledAllow traj/enc source change when axis is enabledNo
axis.features.allowedFunctions.homingAllow homingNo
axis.features.allowedFunctions.constantVelocityAllow constant velocityNo
axis.features.allowedFunctions.positioningAllow positioningNo
axis.autoEnable.enableTimeoutIf defined, ecmc tries to auto-enable for a maximum enableTimeout seconds.No
axis.autoEnable.disableTimeoutIf defined, ecmc disables axis after idle (non busy) in disableTime secondsNo
axis.autoEnable.atStartupAuto enable axis at ioc start, default FalseNo
axis.tweakDistTweak value (both ecmc interface and motor record tweak value)No
epics.nameAxis nameNo
epics.precisionDecimal countNo
epics.descriptionAxis descriptionNo
epics.unitUnitNo
epics.motorRecord.enableEnable motor recordNo
epics.motorRecord.descriptionThis is MRNo
epics.motorRecord.fieldInitExtra config for Motor recordNo
epics.motorRecord.syncSoftLimitsSync softlimits between motor and ecmc (default false)No
drive.numeratorFastest speed in engineering unitsNo
drive.denominatorI/O range for ECMC_EC_ALIAS_DRV_VELO_SETNo
drive.typeStepper: 0. DS402: 1 (DS402 = servos and advanced stepper drives)No
drive.controlControl word ethercat entryNo
drive.enableEnable bit index in control word (not used if DS402)No
drive.enabledEnabled bit index in status word (not used if DS402)No
drive.statusStatus word ethercat entryNo
drive.setpointVelocity setpoint if CSV. Position setpoint if CSPNo
drive.reduceTorqueReduce torque bit in drive control wordNo
drive.reduceTorqueEnableEnable reduce torque functionalityNo
drive.brake.enableNo
drive.brake.outputEthercat link to brake outputNo
drive.brake.openDelayBrake timing parameter in cycles (default 1kHz)No
drive.brake.closeAheadBrake timing parameter in cycles (default 1kHz)No
drive.resetReset (if no drive reset bit then leave empty)No
drive.warningWarning (if no drive warning bit then leave empty)No
drive.error[0]Error 0 (if no drive error bit then leave empty)No
drive.error[1]Error 1 (if no drive error bit then leave empty)No
drive.error[2]Error 2 (if no drive error bit then leave empty)No
encoder.numeratorScaling numerator example 360 deg/revNo
encoder.denominatorScaling denominator example 4096 ticks per 360 degreeNo
encoder.typeType: 0=Incremental, 1=AbsoluteNo
encoder.bitsTotal bit count of encoder raw dataNo
encoder.absBitsAbsolute bit count (for absolute encoders) always least significant part of ‘bits’No
encoder.absOffsetEncoder offset in eng units (for absolute encoders)No
encoder.maskMask applied to raw encoder valueNo
encoder.positionEthercat entry for actual position input (encoder)No
encoder.controlmandatory only if ‘reset’ is usedNo
encoder.statusmandatory only if ‘warning’ or ‘error’ are usedNo
encoder.readyBit in encoder status word for encoder readyYes
encoder.source0 = Encoder value from EtherCAT hardware, 1 = Encoder value from PLCNo
encoder.resetResetYes
encoder.warningWarningYes
encoder.error[0]Error 0Yes
encoder.error[1]Error 1Yes
encoder.error[2]Error 2Yes
encoder.filter.velocity.sizeFilter size for velocityYes
encoder.filter.velocity.enableenable velocity filterYes
encoder.filter.position.sizeFilter size for encoder valueYes
encoder.filter.position.enableenable encoder value filterYes
encoder.latch.positionLink to latched value. Used for some homing seqsYes
encoder.latch.controlBit in encoder control word to arm latch. Used for some homing seqsYes
encoder.latch.statusBit in encoder status word for latch triggered status. Used for some homing seqsYes
encoder.latch.armCmdValue in dec to arm latch/touch probe to write to encoder.controlYes
encoder.latch.armBitsBit size of encoder.latch.armCmdYes
encoder.primaryUse this encoder as primary (for control)Yes
encoder.useAsCSPDrvEncUse this encoder as CSP drive encoder (ecmc controller enabled in CSP)Yes
encoder.allowOverUnderFlowAllow over/under flow of encoder raw counter (default true). Set to false for linear encoders.Yes
encoder.homing.typeHoming sequence typeNo
encoder.homing.positionPosition to reference encoder toNo
encoder.homing.velocity.toVelocity to cam/sensor (used for some homing seqs)No
encoder.homing.velocity.fromVelocity from cam/sensor (used for some homing seqs)No
encoder.homing.accelerationAcceleration during homingNo
encoder.homing.decelerationDeceleration during homingNo
encoder.homing.refToEncIDAtStartupAt startup then set the start value of this encoder to actpos of this encoder idNo
encoder.homing.refAtHomeIf homing is executed then set position of this encoderNo
encoder.homing.tolToPrimIf set then this is the max allowed tolerance between prim encoder and this encoderNo
encoder.homing.postMoveEnableEnable move after successfull homingNo
encoder.homing.postMovePositionPosition to move to after successfull homingNo
encoder.homing.triggEtherCAT entry for triggering drive internal homing seq (seq id 26)No
encoder.homing.readyEthercat entry for readinf drive internal homing seq ready (seq id 26)No
encoder.homing.latchCountlatch number to ref on (1=ref on first latch)No
encoder.delayComp.timeDelay time between set and act [cycles]No
encoder.delayComp.enableenable (defaults to 1 if not set)Yes
encoder.lookuptable.filenameLoad correction lockuptable file. Value will be subtracted from encoder value.Yes
encoder.lookuptable.enableEnable correction table (default enabled if loaded).Yes
encoder.lookuptable.scaleScale applied to LUT (if you want value to be added then set scale to -1.0)Yes
encoder.lookuptable.rangeLUT modulo value (Lut should cover the range 0..range)Yes
controller.KpKp proportional gainYes
controller.KiKi integral gainYes
controller.KdKd derivative gainYes
controller.KffFeed forward gainYes
controller.deadband.tolStop control if within this distance from target for the below timeYes
controller.deadband.timeDeadband time filterYes
controller.limits.minOutputMinimum controller outputYes
controller.limits.maxOutputMaximum controller outputYes
controller.limits.minIntegralMinimum integral outputYes
controller.limits.maxIntegralMaximum integral outputYes
controller.inner.KpKp for when close to targetYes
controller.inner.KiKi for when close to targetYes
controller.inner.KdKd for when close to targetYes
controller.inner.tolDistance from target for when inner PID params will be used, defaults to atTarget tolYes
trajectory.typeDefault 0 = trapetz, 1 = S-curve (ruckig)No
trajectory.source0 = take trajectory setpoint from axis traj object, 1 = trajectory setpoint from plcNo
trajectory.axis.velocityDefault velo for axisNo
trajectory.axis.accelerationDefault acc for axisNo
trajectory.axis.decelerationDefault dec for axisNo
trajectory.axis.emergencyDecelerationDeceleration when axis in error stateNo
trajectory.axis.jerkDefault jerk for axisNo
trajectory.jog.velocityDefault velo fro JOG (motor record)No
trajectory.modulo.rangeModulo range 0..360No
trajectory.modulo.typeModulo typeNo
input.limit.forwardEthercat entry for low limit switch input,No
input.limit.forwardPolarityPolarity of forward limit switchNo
input.limit.backwardEthercat entry for high limit switch inputNo
input.limit.backwardPolarityPolarity of forward limit switchNo
input.homeEthercat entry for home switchNo
input.homePolarityPolarity of home switchNo
input.interlockEthercat entry for interlock switch inputNo
input.interlockPolarityPolarity of interlock switchNo
input.analog.interlockEthercat entry for analog interlockNo
input.analog.interlockPolarity0: High value is bad, 1 = Low value is badNo
input.analog.rawLimitAnalog raw limitNo
input.analog.enableEnable analog interlock default true if analog.interlock is setNo
softlimits.enableEnable soft limitsNo
softlimits.forwardSoft limit position fwdNo
softlimits.forwardEnableSoft limit position fwd enableNo
softlimits.backwardSoft limit position bwdNo
softlimits.backwardEnableSoft limit position bwd enableNo
monitoring.lag.enableEnable position lag monitoring (following error)No
monitoring.lag.toleranceAllowed toleranceNo
monitoring.lag.timeAllowed time outside toleranceNo
monitoring.target.enableEnable at target monitoring (needs to be enabled and configured if using motor record)No
monitoring.target.toleranceAllowed toleranceNo
monitoring.target.timeFilter time inside tolerance to be at targetNo
monitoring.velocity.enableEnable velocity monitoringNo
monitoring.velocity.maxAllowed max velocityNo
monitoring.velocity.time.trajectoryTime allowed outside max velo before system init haltNo
monitoring.velocity.time.driveTime allowed outside max velo before system disables driveNo
monitoring.velocityDifference.enableEnable velocity diff monitoring (velo set vs velo act)No
monitoring.velocityDifference.maxAllowed max differenceNo
monitoring.velocityDifference.time.trajectoryTime allowed outside max diff velo before system init haltNo
monitoring.velocityDifference.time.driveTime allowed outside max diff velo before system disables driveNo
monitoring.stall.enableEnable stall monitoring. Attarget must be enabled for this functionallityNo
monitoring.stall.time.timeoutIf not at target after “timeout” cycles after trajectory generator is ready then drive will disableNo
monitoring.stall.time.factorMeasures duration of last motion command (busy high edge to busy low edge). The new timeout will be defined as this duration multiplied by this factor. The timeout finaly used for stall detection will be the longest (of time.timeout and calculated from time.factor).No
plc.enableEnable axis plcNo
plc.externalCommandsAllow axis to inputs from PLCNo
plc.fileFile with plc codeNo
plc.code[0]Enable axis if one of master axes is enabledNo
plc.code[1]calculate set pos for physical axisNo
plc.velocity_filter.encoder.enableFilter enableNo
plc.velocity_filter.encoder.sizeFilter sizeNo
plc.velocity_filter.trajectory.enableFilter enableNo
plc.velocity_filter.trajectory.sizeFilter sizeNo
plc.filter.velocity.enableFilter enableYes
plc.filter.velocity.sizeFilter sizeYes
plc.filter.trajectory.enableFilter enableYes
plc.filter.trajectory.sizeFilter sizeYes