186 lines
13 KiB
YAML
186 lines
13 KiB
YAML
axis:
|
|
id: $(AX_ID) # Axis id
|
|
type: joint # this is for future selection of axis type
|
|
# mode: CSV # supported mode, CSV and CSP, defaults CSV
|
|
# parameters: 'axisPar' # Additional params to motor record driver
|
|
#healthOutput: ec0... # Ethercat entry for health output
|
|
# autoMode: # Switch drive modes automaticaly for normal motion and homing (smaract for instance)
|
|
# modeSet: ec0.. # Ethercat entry drive mode write (set CSV,CSP,homing)
|
|
# modeAct: ec0.. # Ethercat entry drive mode reading (set CSV,CSP,homing)
|
|
# modeCmdMotion: 9 # Drive mode value for normal motion (written to axis.drvMode.modeSet when normal motion)
|
|
# modeCmdHome: 10 # Drive mode value for when homing (written to axis.drvMode.modeSet when homing)
|
|
# features:
|
|
# blockCom: false # Block communication to axis
|
|
# allowedFunctions:
|
|
# homing: true # Allow homing
|
|
# constantVelocity: true # Allow constant velocity
|
|
# positioning: true # Allow positioning
|
|
|
|
epics:
|
|
name: Axis$(AX_ID) # Axis name
|
|
precision: 3 # Decimal count
|
|
description: very important motor axis # Axis description
|
|
unit: deg # Unit
|
|
# motorRecord:
|
|
# enable: true
|
|
# description: This is MR
|
|
# fieldInit: 'RRES=1.0,RTRY=2,RMOD=1,UEIP=0,RDBD=0.1,URIP=1,RDBL=$(IOC):$(ECMC_MOTOR_NAME)-PosActSim' # Extra config for Motor record
|
|
|
|
drive:
|
|
numerator: 3600 # Fastest speed in engineering units
|
|
denominator: 32768 # I/O range for ECMC_EC_ALIAS_DRV_VELO_SET
|
|
# type: 0 # Stepper: 0. DS402: 1 (DS402 = servos and advanced stepper drives)
|
|
control: ec0.s$(DRV_SLAVE).driveControl01 # Control word ethercat entry
|
|
enable: 0 # Enable bit index in control word (not used if DS402)
|
|
enabled: 1 # Enabled bit index in status word (not used if DS402)
|
|
status: ec0.s$(DRV_SLAVE).driveStatus01 # Status word ethercat entry
|
|
setpoint: ec0.s$(DRV_SLAVE).velocitySetpoint01 # Velocity setpoint if CSV. Position setpoint if CSP
|
|
# reduceTorque: 2 # Reduce torque bit in drive control word
|
|
# reduceTorqueEnable: True # Enable reduce torque functionality
|
|
# brake:
|
|
# enable: true # Enable brake
|
|
# output: ec0... # Ethercat link to brake output
|
|
# openDelay: 0 # Brake timing parameter in cycles (default 1kHz)
|
|
# closeAhead: 0 # Brake timing parameter in cycles (default 1kHz)
|
|
# reset: 1 # Reset (if no drive reset bit then leave empty)
|
|
# warning: 2 # Warning (if no drive warning bit then leave empty)
|
|
# error: # max 3
|
|
# - 3 # Error 0 (if no drive error bit then leave empty)
|
|
# - 7 # Error 1 (if no drive error bit then leave empty)
|
|
# - 14 # Error 2 (if no drive error bit then leave empty)
|
|
|
|
encoder:
|
|
numerator: 360 # Scaling numerator example 360 deg/rev
|
|
denominator: 12800 # Scaling denominator example 4096 ticks per 360 degree
|
|
# type: 0 # Type: 0=Incremental, 1=Absolute
|
|
bits: 16 # Total bit count of encoder raw data
|
|
# absBits: 0 # Absolute bit count (for absolute encoders) always least significant part of 'bits'
|
|
# absOffset: 0 # Encoder offset in eng units (for absolute encoders)
|
|
# mask: '0xFFF00' # Mask applied to raw encoder value
|
|
position: ec0.s$(DRV_SLAVE).positionActual01 # Ethercat entry for actual position input (encoder)
|
|
control: ec0.s$(DRV_SLAVE).encoderControl01 # mandatory only if 'reset' is used
|
|
status: ec0.s$(DRV_SLAVE).encoderStatus01 # mandatory only if 'warning' or 'error' are used
|
|
# ready: 10 # Bit in encoder status word for encoder ready
|
|
# source: 0 # 0 = Encoder value from etehrcat hardware, 1 = Encoder value from PLC
|
|
# reset: 1 # Reset (optional)
|
|
# warning: 2 # Warning (optional)
|
|
# error: # max 3 (optional)
|
|
# - 5 # Error 0
|
|
# - 9 # Error 1
|
|
# - 11 # Error 2
|
|
# filter:
|
|
# velocity:
|
|
# size: 100 # Filter size for velocity
|
|
# enable: true # enable velocity filter
|
|
# position:
|
|
# size: 100 # Filter size for encoder value
|
|
# enable: true # enable encoder value filter
|
|
# latch:
|
|
# position: '' # Link to latched value. Used for some homing seqs
|
|
# control: 0 # Bit in encoder control word to arm latch. Used for some homing seqs
|
|
# status: 0 # Bit in encoder status word for latch triggered status. Used for some homing seqs
|
|
# primary: 1 # Use this encoder as primary (for control)
|
|
# homing:
|
|
# type: 3 # Homing sequence type
|
|
# position: -30 # Position to reference encoder to
|
|
# velocity:
|
|
# to: 10 # Velocity to cam/sensor (used for some homing seqs)
|
|
# from: 5 # Velocity from cam/sensor (used for some homing seqs)
|
|
# acceleration: 20 # Acceleration during homing
|
|
# deceleration: 100 # Deceleration during homing
|
|
# refToEncIDAtStartup: 1 # At startup then set the start value of this encoder to actpos of this encoder id
|
|
# refAtHome: 1 # If homing is executed then set position of this encoder
|
|
# tolToPrim: 0 # If set then this is the max allowed tolerance between prim encoder and this encoder
|
|
# postMoveEnable: yes # Enable move after successfull homing
|
|
# postMovePosition: 10 # Position to move to after successfull homing
|
|
# trigg: ec0.. # Ethercat entry for triggering drive internal homing seq (seq id 26)
|
|
# ready: ec0.. # Ethercat entry for readinf drive internal homing seq ready (seq id 26)
|
|
|
|
controller:
|
|
Kp: 10 # Kp proportinal gain
|
|
Ki: 0.2 # 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
|
|
# time: 100
|
|
# limits:
|
|
# minOutput: -100 # Minimum controller output
|
|
# maxOutput: 100 # Maximum controller output
|
|
# minIntegral: -100 # Minimum integral output
|
|
# maxIntegral: 100 # Maximum integral output
|
|
# inner:
|
|
# Kp: 0.1 # Kp for when close to target
|
|
# Ki: 0.1 # Ki for when close to target
|
|
# Kd: 0.1 # Kd for when close to target
|
|
# tol: 0.1 # Distance from target for when inner PID params will be used, defaults to atTarget tol
|
|
|
|
trajectory:
|
|
# type: 1 # Default 0 = trapetz, 1 = S-curve (ruckig)
|
|
axis:
|
|
velocity: 500 # Default velo for axis
|
|
acceleration: 2000 # Default acc for axis
|
|
deceleration: 2000 # Default dec for axis
|
|
# emergencyDeceleration: 0.05 # Deceleration when axis in error state
|
|
jerk: 10 # Default jerk for axis
|
|
jog:
|
|
velocity: 5 # Default velo fro JOG (motor record)
|
|
# modulo:
|
|
# range: 360 # Modulo range 0..360
|
|
# type: 0 # Modulo type
|
|
|
|
input:
|
|
limit:
|
|
forward: ec0.s$(DRV_SLAVE).driveStatus01.11 # Ethercat entry for low limit switch input
|
|
# forwardPolarity: 0 # Polarity of forward limit switch
|
|
backward: ec0.s$(DRV_SLAVE).driveStatus01.12 # Ethercat entry for high limit switch input
|
|
# backwardPolarity: 0 # Polarity of forward limit switch
|
|
home: 'ec0.s$(DRV_SLAVE).ONE.0' # Ethercat entry for home switch
|
|
# homePolarity: 0 # Polarity of home switch
|
|
interlock: 'ec0.s$(DRV_SLAVE).ONE.0' # Ethercat entry for interlock switch input
|
|
# interlockPolarity: 0 # Polarity of interlock switch
|
|
|
|
# homing:
|
|
# type: 3 # Homing sequence type
|
|
# position: -30 # Position to reference encoder to
|
|
# velocity:
|
|
# to: 10 # Velocity to cam/sensor (used for some homing seqs)
|
|
# from: 5 # Velocity from cam/sensor (used for some homing seqs)
|
|
# acc: 20 # Acceleration during homing
|
|
# dec: 100 # Deceleration during homing
|
|
# refToEncIDAtStartup: 1 # At startup then set the start value of this encoder to actpos of this encoder id
|
|
# refAtHome: 1 # If homing is executed then set position of this encoder
|
|
# tolToPrim: 0 # If set then this is the max allowed tolerance between prim encoder and this encoder
|
|
# postMoveEnable: yes # Enable move after successfull homing
|
|
# postMovePosition: 10 # Position to move to after successfull homing
|
|
# timeout: 100 # Sequence timeout
|
|
|
|
softlimits:
|
|
enable: false # Enable soft limits
|
|
forward: 100 # Soft limit position fwd
|
|
forwardEnable: false # Soft limit position fwd enable
|
|
backward: -100 # Soft limit position bwd
|
|
backwardEnable: false # Soft limit position bwd enable
|
|
|
|
monitoring:
|
|
lag:
|
|
enable: true # Enable position lag monitoring (following error)
|
|
tolerance: 3 # Allowed tolerance
|
|
time: 10 # Allowed time outside tolerance target:
|
|
velocity:
|
|
enable: false # Enable velocity monitoring
|
|
max: 100 # Allowed max velocity
|
|
time:
|
|
trajectory: 100 # Time allowed outside max velo before system init halt
|
|
drive: 200 # Time allowed outside max velo before system disables drive
|
|
target:
|
|
enable: true # Enable at target monitoring (needs to be enabled if using motor record)
|
|
tolerance: 0.5 # Allowed tolerance
|
|
time: 10 # Filter time inside tolerance to be at target
|
|
# velocityDifference:
|
|
# enable: true # Enable velocity diff monitoring (velo set vs velo act)
|
|
# max: 100 # Allowed max difference
|
|
# time:
|
|
# trajectory: 100 # Time allowed outside max diff velo before system init halt
|
|
# drive: 200 # Time allowed outside max diff velo before system disables drive
|