Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # core HAL config file for quadrature stepper
- # first load the core RT modules that will be needed
- # kinematics
- loadrt trivkins
- # motion controller, get name and thread periods from ini file
- loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY
- # stepper module, three step generators, all three using quadrature
- loadrt stepgen step_type=2,2,2
- # hook functions to base thread (high speed thread for step generation)
- addf stepgen.make-pulses base-thread
- # hook functions to servo thread
- addf stepgen.capture-position servo-thread
- addf motion-command-handler servo-thread
- addf motion-controller servo-thread
- addf stepgen.update-freq servo-thread
- # connect position commands from motion module to step generator
- newsig Xpos-cmd float
- linksp Xpos-cmd <= axis.0.motor-pos-cmd
- linksp Xpos-cmd => stepgen.0.position-cmd
- newsig Ypos-cmd float
- linksp Ypos-cmd <= axis.1.motor-pos-cmd
- linksp Ypos-cmd => stepgen.1.position-cmd
- newsig Zpos-cmd float
- linksp Zpos-cmd <= axis.2.motor-pos-cmd
- linksp Zpos-cmd => stepgen.2.position-cmd
- # connect position feedback from step generators
- # to motion module
- newsig Xpos-fb float
- linksp Xpos-fb <= stepgen.0.position-fb
- linksp Xpos-fb => axis.0.motor-pos-fb
- newsig Ypos-fb float
- linksp Ypos-fb <= stepgen.1.position-fb
- linksp Ypos-fb => axis.1.motor-pos-fb
- newsig Zpos-fb float
- linksp Zpos-fb <= stepgen.2.position-fb
- linksp Zpos-fb => axis.2.motor-pos-fb
- # connect enable signals for step generators
- newsig Xen bit
- linksp Xen <= axis.0.amp-enable-out
- linksp Xen => stepgen.0.enable
- newsig Yen bit
- linksp Yen <= axis.1.amp-enable-out
- linksp Yen => stepgen.1.enable
- newsig Zen bit
- linksp Zen <= axis.2.amp-enable-out
- linksp Zen => stepgen.2.enable
- #connect axis driver enable to motion command
- newsig En1 bit
- #linksp En1 => motion.motion-inpos
- linksp En1 => motion.in-position
- #newsig Yen1 bit
- #linksp Yen1 => motion.in-position
- #newsig Zen1 bit
- #linksp Zen1 => motion.in-position
- # connect signals to step pulse generator outputs
- newsig X_phaseA bit
- newsig X_phaseB bit
- newsig Y_phaseA bit
- newsig Y_phaseB bit
- newsig Z_phaseA bit
- newsig Z_phaseB bit
- linkps stepgen.0.phase-A X_phaseA
- linkps stepgen.0.phase-B X_phaseB
- linkps stepgen.1.phase-A Y_phaseA
- linkps stepgen.1.phase-B Y_phaseB
- linkps stepgen.2.phase-A Z_phaseA
- linkps stepgen.2.phase-B Z_phaseB
- # set stepgen module scaling - get values from ini file
- setp stepgen.0.position-scale [AXIS_0]INPUT_SCALE
- setp stepgen.1.position-scale [AXIS_1]INPUT_SCALE
- setp stepgen.2.position-scale [AXIS_2]INPUT_SCALE
- # set stepgen module velocity limits - get values from ini file
- setp stepgen.0.maxvel [AXIS_0]STEPGEN_MAXVEL
- setp stepgen.1.maxvel [AXIS_1]STEPGEN_MAXVEL
- setp stepgen.2.maxvel [AXIS_2]STEPGEN_MAXVEL
- # set stepgen module accel limits - get values from ini file
- setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
- setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
- setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement