Files
linuxcncAllWasm/configs/sim/axis/corexy/3joint_xyz.hal
2026-08-20 06:17:39 +08:00

105 lines
3.6 KiB
Plaintext

# 3joint_xyz.hal
# This halfile loads modules and makes connections
# for use of any kinematics using xyz coordinates
# implemented with 3 joints. Such configs include:
# [KINS]KINEMATICS = trivkins coordinates=xyz
# [KINS]KINEMATICS = corexykins
# Notes:
# 1) stepgens are implemented but no connections are
# included for hardware
# 2) home switches are simulated
#----------------------------------------------------------
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD \
servo_period_nsec=[EMCMOT]SERVO_PERIOD \
num_joints=[KINS]JOINTS
loadrt stepgen step_type=0,0,0
# simulated home switches:
loadrt sim_home_switch names=j0home,j1home,j2home
#----------------------------------------------------------
setp stepgen.0.position-scale [JOINT_0]SCALE
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp stepgen.0.steplen 5000
setp stepgen.0.stepspace 5000
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
setp stepgen.1.position-scale [JOINT_1]SCALE
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp stepgen.1.steplen 5000
setp stepgen.1.stepspace 5000
setp stepgen.1.dirhold 35000
setp stepgen.1.dirsetup 35000
setp stepgen.2.position-scale [JOINT_2]SCALE
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp stepgen.2.steplen 5000
setp stepgen.2.stepspace 5000
setp stepgen.2.dirhold 35000
setp stepgen.2.dirsetup 35000
#----------------------------------------------------------
# simulated home motor positions:
setp j0home.home-pos 0.2
setp j1home.home-pos 0.2
setp j2home.home-pos 0.1
#----------------------------------------------------------
addf stepgen.make-pulses base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf j0home servo-thread
addf j1home servo-thread
addf j2home servo-thread
#----------------------------------------------------------
net j0enable <= joint.0.amp-enable-out
net j0enable => stepgen.0.enable
net j0pos-cmd <= joint.0.motor-pos-cmd
net j0pos-cmd => stepgen.0.position-cmd
net j0pos-cmd => j0home.cur-pos
net j0pos-fb <= stepgen.0.position-fb
net j0pos-fb => joint.0.motor-pos-fb
net j0step <= stepgen.0.step
net j0dir <= stepgen.0.dir
net j0homesw <= j0home.home-sw
net j0homesw => joint.0.home-sw-in
net j1enable <= joint.1.amp-enable-out
net j1enable => stepgen.1.enable
net j1pos-cmd <= joint.1.motor-pos-cmd
net j1pos-cmd => stepgen.1.position-cmd
net j1pos-cmd => j1home.cur-pos
net j1pos-fb <= stepgen.1.position-fb
net j1pos-fb => joint.1.motor-pos-fb
net j1step <= stepgen.1.step
net j1dir <= stepgen.1.dir
net j1homesw <= j1home.home-sw
net j1homesw => joint.1.home-sw-in
net j2enable <= joint.2.amp-enable-out
net j2enable => stepgen.2.enable
net j2pos-cmd <= joint.2.motor-pos-cmd
net j2pos-cmd => stepgen.2.position-cmd
net j2pos-cmd => j2home.cur-pos
net j2pos-fb <= stepgen.2.position-fb
net j2pos-fb => joint.2.motor-pos-fb
net j2step <= stepgen.2.step
net j2dir <= stepgen.2.dir
net j2homesw <= j2home.home-sw
net j2homesw => joint.2.home-sw-in
#----------------------------------------------------------
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
net tool-change-loopback <= iocontrol.0.tool-change
net tool-change-loopback => iocontrol.0.tool-changed
net tool-prepare-loopback <= iocontrol.0.tool-prepare
net tool-prepare-loopback => iocontrol.0.tool-prepared