Import LinuxCNC source tree
This commit is contained in:
2
configs/by_interface/.gitignore
vendored
Normal file
2
configs/by_interface/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
core_servo.hal
|
||||
axis_manualtoolchange.hal
|
||||
3
configs/by_interface/README
Normal file
3
configs/by_interface/README
Normal file
@@ -0,0 +1,3 @@
|
||||
by_interface
|
||||
|
||||
Configs demonstrate use of specific hardware.
|
||||
@@ -0,0 +1,179 @@
|
||||
|
||||
#########################################################################
|
||||
# Loading real-time modules #
|
||||
#########################################################################
|
||||
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt hal_gm
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt pid num_chan=3
|
||||
loadrt not
|
||||
|
||||
loadusr halmeter
|
||||
#loadusr halscope -f
|
||||
|
||||
#########################################################################
|
||||
# Adding functions #
|
||||
#########################################################################
|
||||
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
|
||||
addf gm.0.read servo-thread -1
|
||||
addf pid.0.do-pid-calcs servo-thread
|
||||
addf pid.1.do-pid-calcs servo-thread
|
||||
addf pid.2.do-pid-calcs servo-thread
|
||||
addf gm.0.write servo-thread -1
|
||||
|
||||
addf gm.0.RS485 servo-thread -1
|
||||
addf not.0 servo-thread
|
||||
|
||||
#########################################################################
|
||||
# Card mgt #
|
||||
#########################################################################
|
||||
|
||||
setp gm.0.watchdog-enable 1
|
||||
setp gm.0.watchdog-timeout-ns 3000000
|
||||
|
||||
net pwrEnable motion.motion-enabled => gm.0.power-enable
|
||||
|
||||
# create power fault loopback
|
||||
net hw_fault gm.0.power-fault => not.0.in
|
||||
net estop not.0.out => iocontrol.0.emc-enable-in
|
||||
|
||||
# connect enable signals for DAC and PID
|
||||
net Xen joint.0.amp-enable-out => gm.0.dac.0.enable
|
||||
net Xen => pid.0.enable
|
||||
net Yen joint.1.amp-enable-out => gm.0.dac.1.enable
|
||||
net Yen => pid.1.enable
|
||||
net Zen joint.2.amp-enable-out => gm.0.dac.2.enable
|
||||
net Zen => pid.2.enable
|
||||
|
||||
#########################################################################
|
||||
# Encoder setup #
|
||||
#########################################################################
|
||||
|
||||
# ################
|
||||
# X [0] Axis
|
||||
# ################
|
||||
|
||||
# encoder feedback
|
||||
setp gm.0.encoder.0.counter-mode 0 #0:quad, 1:stepDir
|
||||
setp gm.0.encoder.0.index-enable 0 #0:disable, 1:enable
|
||||
setp gm.0.encoder.0.index-mode 1 #0:reset counter at index, 1:round position at index
|
||||
setp gm.0.encoder.0.counts-per-rev 2000
|
||||
setp gm.0.encoder.0.position-scale [JOINT_0]INPUT_SCALE
|
||||
setp gm.0.encoder.0.min-speed-estimate 0.1
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# encoder feedback
|
||||
setp gm.0.encoder.1.counter-mode 0 #0:quad, 1:stepDir
|
||||
setp gm.0.encoder.1.index-enable 0 #0:disable, 1:enable
|
||||
setp gm.0.encoder.1.index-mode 1 #0:reset counter at index, 1:round position at index
|
||||
setp gm.0.encoder.1.counts-per-rev 2000
|
||||
setp gm.0.encoder.1.position-scale [JOINT_2]INPUT_SCALE
|
||||
setp gm.0.encoder.1.min-speed-estimate 0.1
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# encoder feedback
|
||||
setp gm.0.encoder.2.counter-mode 0 #0:quad, 1:stepDir
|
||||
setp gm.0.encoder.2.index-enable 0 #0:disable, 1:enable
|
||||
setp gm.0.encoder.2.index-mode 1 #0:reset counter at index, 1:round position at index
|
||||
setp gm.0.encoder.2.counts-per-rev 2000
|
||||
setp gm.0.encoder.2.position-scale [JOINT_2]INPUT_SCALE
|
||||
setp gm.0.encoder.2.min-speed-estimate 0.1
|
||||
|
||||
#########################################################################
|
||||
# PID setup #
|
||||
#########################################################################
|
||||
|
||||
# ################
|
||||
# X [0] Axis
|
||||
# ################
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.0.Pgain [JOINT_0]P
|
||||
setp pid.0.Igain [JOINT_0]I
|
||||
setp pid.0.Dgain [JOINT_0]D
|
||||
setp pid.0.bias [JOINT_0]BIAS
|
||||
setp pid.0.FF0 [JOINT_0]FF0
|
||||
setp pid.0.FF1 [JOINT_0]FF1
|
||||
setp pid.0.FF2 [JOINT_0]FF2
|
||||
setp pid.0.deadband [JOINT_0]DEADBAND
|
||||
setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.1.Pgain [JOINT_1]P
|
||||
setp pid.1.Igain [JOINT_1]I
|
||||
setp pid.1.Dgain [JOINT_1]D
|
||||
setp pid.1.bias [JOINT_1]BIAS
|
||||
setp pid.1.FF0 [JOINT_1]FF0
|
||||
setp pid.1.FF1 [JOINT_1]FF1
|
||||
setp pid.1.FF2 [JOINT_1]FF2
|
||||
setp pid.1.deadband [JOINT_1]DEADBAND
|
||||
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.2.Pgain [JOINT_2]P
|
||||
setp pid.2.Igain [JOINT_2]I
|
||||
setp pid.2.Dgain [JOINT_2]D
|
||||
setp pid.2.bias [JOINT_2]BIAS
|
||||
setp pid.2.FF0 [JOINT_2]FF0
|
||||
setp pid.2.FF1 [JOINT_2]FF1
|
||||
setp pid.2.FF2 [JOINT_2]FF2
|
||||
setp pid.2.deadband [JOINT_2]DEADBAND
|
||||
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
|
||||
|
||||
#########################################################################
|
||||
# position reference and feedback connection #
|
||||
#########################################################################
|
||||
|
||||
# connect encoder feedback to PID
|
||||
net Xpos-fb gm.0.encoder.0.position => pid.0.feedback
|
||||
net Ypos-fb gm.0.encoder.1.position => pid.1.feedback
|
||||
net Zpos-fb gm.0.encoder.2.position => pid.2.feedback
|
||||
|
||||
# connect position commands from motion module to PID
|
||||
net Xpos-cmd joint.0.motor-pos-cmd => pid.0.command
|
||||
net Ypos-cmd joint.1.motor-pos-cmd => pid.1.command
|
||||
net Zpos-cmd joint.2.motor-pos-cmd => pid.2.command
|
||||
|
||||
# connect PID output to DAC
|
||||
net Xdac-cmd pid.0.output => gm.0.dac.0.value
|
||||
net Ydac-cmd pid.1.output => gm.0.dac.1.value
|
||||
net Zdac-cmd pid.2.output => gm.0.dac.2.value
|
||||
|
||||
# connect position feedback
|
||||
net Xpos-cmd => joint.0.motor-pos-fb
|
||||
net Ypos-cmd => joint.1.motor-pos-fb
|
||||
net Zpos-cmd => joint.2.motor-pos-fb
|
||||
|
||||
#########################################################################
|
||||
# homing and limit switches #
|
||||
#########################################################################
|
||||
|
||||
net lim-sw-x-pos gm.0.joint.0.pos-lim-sw-in-not => joint.0.pos-lim-sw-in
|
||||
net lim-sw-x-neg gm.0.joint.0.neg-lim-sw-in-not => joint.0.neg-lim-sw-in
|
||||
net lim-sw-x-home gm.0.joint.0.home-sw-in-not => joint.0.home-sw-in
|
||||
|
||||
net lim-sw-y-pos gm.0.joint.1.pos-lim-sw-in-not => joint.1.pos-lim-sw-in
|
||||
net lim-sw-y-neg gm.0.joint.1.neg-lim-sw-in-not => joint.1.neg-lim-sw-in
|
||||
net lim-sw-y-home gm.0.joint.1.home-sw-in-not => joint.1.home-sw-in
|
||||
|
||||
net lim-sw-z-pos gm.0.joint.2.pos-lim-sw-in-not => joint.2.pos-lim-sw-in
|
||||
net lim-sw-z-neg gm.0.joint.2.neg-lim-sw-in-not => joint.2.neg-lim-sw-in
|
||||
net lim-sw-z-home gm.0.joint.2.home-sw-in-not => joint.2.home-sw-in
|
||||
@@ -0,0 +1,209 @@
|
||||
###############################################################################
|
||||
# General section
|
||||
###############################################################################
|
||||
|
||||
[EMC]
|
||||
#- Version of this INI file
|
||||
VERSION = 1.1
|
||||
#+ Name of machine, for use with display, etc.
|
||||
MACHINE = GM6-PCI-3-axis-servo
|
||||
#+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
DEBUG = 0
|
||||
###############################################################################
|
||||
# Sections for display options
|
||||
###############################################################################
|
||||
|
||||
[DISPLAY]
|
||||
#+ Name of display program, e.g., axis
|
||||
DISPLAY = axis
|
||||
# DISPLAY = tklinuxcnc
|
||||
# DISPLAY = touchy
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.200
|
||||
#- Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
#- Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
#- Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
#+ Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
#- Prefix to be used
|
||||
#PROGRAM_PREFIX = /home/gm/emc2/nc_files
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
#- Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 1
|
||||
###############################################################################
|
||||
# Task controller section
|
||||
###############################################################################
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
#- File containing interpreter variables
|
||||
PARAMETER_FILE = gm.var
|
||||
###############################################################################
|
||||
# Motion control section
|
||||
###############################################################################
|
||||
|
||||
[EMCMOT]
|
||||
#- Name of the motion controller to use (only one exists for nontrivkins)
|
||||
EMCMOT = motmod
|
||||
#- Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
###############################################################################
|
||||
# Hardware Abstraction Layer section
|
||||
###############################################################################
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
#- Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# list of hal config files to run through halcmd
|
||||
#+ files are executed in the order in which they appear
|
||||
HALFILE = 3-axis-servo.hal
|
||||
###############################################################################
|
||||
# Trajectory planner section
|
||||
###############################################################################
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
#+ machine specific settings
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.424
|
||||
MAX_LINEAR_VELOCITY = 30.48
|
||||
DEFAULT_LINEAR_ACCELERATION = 300.0
|
||||
MAX_LINEAR_ACCELERATION = 500.0
|
||||
###############################################################################
|
||||
# Axes sections
|
||||
###############################################################################
|
||||
#+ First axis
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -191.0
|
||||
MAX_LIMIT = 0.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
INPUT_SCALE = 2000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -191.0
|
||||
MAX_LIMIT = 0.0
|
||||
MAX_OUTPUT = 10.0
|
||||
FERROR = 1.270
|
||||
MIN_FERROR = 0.254
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 15.0
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.0000
|
||||
P = 10.0
|
||||
I = 0.000
|
||||
D = -0.02
|
||||
FF0 = 0.000
|
||||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
#+ Second axis
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = 0.0
|
||||
MAX_LIMIT = 270.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
INPUT_SCALE = 2000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = 0.0
|
||||
MAX_LIMIT = 270.0
|
||||
MAX_OUTPUT = 10.0
|
||||
FERROR = 1.270
|
||||
MIN_FERROR = 0.254
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = -15.0
|
||||
HOME_LATCH_VEL = 3.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.0000
|
||||
P = 10.0
|
||||
I = 0.000
|
||||
D = -0.02
|
||||
FF0 = 0.000
|
||||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
#+ Third axis
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -985.0
|
||||
MAX_LIMIT = 0.00
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = 100
|
||||
INPUT_SCALE = 2000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -985.0
|
||||
MAX_LIMIT = 0.00
|
||||
MAX_OUTPUT = 10.0
|
||||
FERROR = 1.270
|
||||
MIN_FERROR = 0.254
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = -15.0
|
||||
HOME_LATCH_VEL = 3.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.0000
|
||||
P = 10.0
|
||||
I = 0.000
|
||||
D = -0.02
|
||||
FF0 = 0.000
|
||||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
###############################################################################
|
||||
# section for main IO controller parameters
|
||||
###############################################################################
|
||||
@@ -0,0 +1,111 @@
|
||||
|
||||
#########################################################################
|
||||
# Loading real-time modules setup #
|
||||
#########################################################################
|
||||
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt hal_gm
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt not
|
||||
loadusr halmeter
|
||||
#loadusr halscope -f
|
||||
|
||||
#########################################################################
|
||||
# Adding functions #
|
||||
#########################################################################
|
||||
|
||||
addf gm.0.read servo-thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
addf gm.0.write servo-thread
|
||||
|
||||
addf not.0 servo-thread
|
||||
addf gm.0.RS485 servo-thread
|
||||
|
||||
#########################################################################
|
||||
# card mgt #
|
||||
#########################################################################
|
||||
|
||||
setp gm.0.watchdog-enable 1
|
||||
setp gm.0.watchdog-timeout-ns 3000000
|
||||
|
||||
net pwrEnable motion.motion-enabled => gm.0.power-enable
|
||||
|
||||
# create power fault loopback
|
||||
net hw_fault gm.0.power-fault => not.0.in
|
||||
net estop not.0.out => iocontrol.0.emc-enable-in
|
||||
|
||||
# connect enable signals for step generators
|
||||
net Xen joint.0.amp-enable-out => gm.0.stepgen.0.enable
|
||||
net Yen joint.1.amp-enable-out => gm.0.stepgen.1.enable
|
||||
net Zen joint.2.amp-enable-out => gm.0.stepgen.2.enable
|
||||
|
||||
#########################################################################
|
||||
# stepgen setup #
|
||||
#########################################################################
|
||||
|
||||
setp gm.0.stepgen.0.steplen 5000 #5000 ns = 5 us
|
||||
setp gm.0.stepgen.0.stepspace 5000 #5000 ns = 5 us
|
||||
setp gm.0.stepgen.0.dirdelay 10000 #10000 ns = 10 us
|
||||
setp gm.0.stepgen.0.invert-step1 0
|
||||
setp gm.0.stepgen.0.invert-step2 0
|
||||
setp gm.0.stepgen.0.step-type 0 #0:StepDir, 1: UpDown, 2: Quad
|
||||
setp gm.0.stepgen.0.control-type 0 #0:position control, 1:velocity control
|
||||
setp gm.0.stepgen.0.maxvel 0 #do not use the maxvel parameter, let interpolator interpolate
|
||||
setp gm.0.stepgen.0.position-scale [JOINT_0]SCALE
|
||||
setp gm.0.stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.0.maxvel [JOINT_0]STEPGEN_MAXVEL
|
||||
|
||||
setp gm.0.stepgen.1.steplen 5000 #5000 ns = 5 us
|
||||
setp gm.0.stepgen.1.stepspace 5000 #5000 ns = 5 us
|
||||
setp gm.0.stepgen.1.dirdelay 10000 #10000 ns = 10 us
|
||||
setp gm.0.stepgen.1.invert-step1 0
|
||||
setp gm.0.stepgen.1.invert-step2 0
|
||||
setp gm.0.stepgen.1.step-type 0 #0:StepDir, 1: UpDown, 2: Quad
|
||||
setp gm.0.stepgen.1.control-type 0 #0:position control, 1:velocity control
|
||||
setp gm.0.stepgen.1.maxvel 0 #do not use the maxvel parameter, let interpolator interpolate
|
||||
setp gm.0.stepgen.1.position-scale [JOINT_1]SCALE
|
||||
setp gm.0.stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.1.maxvel [JOINT_1]STEPGEN_MAXVEL
|
||||
|
||||
setp gm.0.stepgen.2.steplen 5000 #5000 ns = 5 us
|
||||
setp gm.0.stepgen.2.stepspace 5000 #5000 ns = 5 us
|
||||
setp gm.0.stepgen.2.dirdelay 10000 #10000 ns = 10 us
|
||||
setp gm.0.stepgen.2.invert-step1 0
|
||||
setp gm.0.stepgen.2.invert-step2 0
|
||||
setp gm.0.stepgen.2.step-type 0 #0:StepDir, 1: UpDown, 2: Quad
|
||||
setp gm.0.stepgen.2.control-type 0 #0:position control, 1:velocity control
|
||||
setp gm.0.stepgen.2.maxvel 0 #do not use the maxvel parameter, let interpolator interpolate
|
||||
setp gm.0.stepgen.2.position-scale [JOINT_2]SCALE
|
||||
setp gm.0.stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.2.maxvel [JOINT_2]STEPGEN_MAXVEL
|
||||
|
||||
#########################################################################
|
||||
# position reference and feedback #
|
||||
#########################################################################
|
||||
|
||||
# connect position commands from motion module to step generator
|
||||
net Xpos-cmd joint.0.motor-pos-cmd => gm.0.stepgen.0.position-cmd
|
||||
net Ypos-cmd joint.1.motor-pos-cmd => gm.0.stepgen.1.position-cmd
|
||||
net Zpos-cmd joint.2.motor-pos-cmd => gm.0.stepgen.2.position-cmd
|
||||
|
||||
# connect position feedback
|
||||
net Xpos-fb gm.0.stepgen.0.position-fb => joint.0.motor-pos-fb
|
||||
net Ypos-fb gm.0.stepgen.1.position-fb => joint.1.motor-pos-fb
|
||||
net Zpos-fb gm.0.stepgen.2.position-fb => joint.2.motor-pos-fb
|
||||
|
||||
#########################################################################
|
||||
# homing and limit switches #
|
||||
#########################################################################
|
||||
|
||||
net lim-sw-x-pos gm.0.joint.0.pos-lim-sw-in-not => joint.0.pos-lim-sw-in
|
||||
net lim-sw-x-neg gm.0.joint.0.neg-lim-sw-in-not => joint.0.neg-lim-sw-in
|
||||
net lim-sw-x-home gm.0.joint.0.home-sw-in-not => joint.0.home-sw-in
|
||||
|
||||
net lim-sw-y-pos gm.0.joint.1.pos-lim-sw-in-not => joint.1.pos-lim-sw-in
|
||||
net lim-sw-y-neg gm.0.joint.1.neg-lim-sw-in-not => joint.1.neg-lim-sw-in
|
||||
net lim-sw-y-home gm.0.joint.1.home-sw-in-not => joint.1.home-sw-in
|
||||
|
||||
net lim-sw-z-pos gm.0.joint.2.pos-lim-sw-in-not => joint.2.pos-lim-sw-in
|
||||
net lim-sw-z-neg gm.0.joint.2.neg-lim-sw-in-not => joint.2.neg-lim-sw-in
|
||||
net lim-sw-z-home gm.0.joint.2.home-sw-in-not => joint.2.home-sw-in
|
||||
@@ -0,0 +1,182 @@
|
||||
###############################################################################
|
||||
# General section
|
||||
###############################################################################
|
||||
|
||||
[EMC]
|
||||
#- Version of this INI file
|
||||
VERSION = 1.1
|
||||
#+ Name of machine, for use with display, etc.
|
||||
MACHINE = GM6-PCI-3-axis-stepper
|
||||
#+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
DEBUG = 0
|
||||
###############################################################################
|
||||
# Sections for display options
|
||||
###############################################################################
|
||||
|
||||
[DISPLAY]
|
||||
#+ Name of display program, e.g., axis
|
||||
DISPLAY = axis
|
||||
# DISPLAY = tklinuxcnc
|
||||
# DISPLAY = touchy
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.200
|
||||
#- Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
#- Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
#- Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
#+ Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
#- Prefix to be used
|
||||
#PROGRAM_PREFIX = /home/gm/emc2/nc_files
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
#- Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 1
|
||||
###############################################################################
|
||||
# Task controller section
|
||||
###############################################################################
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
#- File containing interpreter variables
|
||||
PARAMETER_FILE = gm.var
|
||||
###############################################################################
|
||||
# Motion control section
|
||||
###############################################################################
|
||||
|
||||
[EMCMOT]
|
||||
#- Name of the motion controller to use (only one exists for nontrivkins)
|
||||
EMCMOT = motmod
|
||||
#- Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
###############################################################################
|
||||
# Hardware Abstraction Layer section
|
||||
###############################################################################
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
#- Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# list of hal config files to run through halcmd
|
||||
#+ files are executed in the order in which they appear
|
||||
HALFILE = 3-axis-stepper.hal
|
||||
###############################################################################
|
||||
# Trajectory planner section
|
||||
###############################################################################
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
#+ machine specific settings
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.424
|
||||
MAX_LINEAR_VELOCITY = 30.48
|
||||
DEFAULT_LINEAR_ACCELERATION = 300.0
|
||||
MAX_LINEAR_ACCELERATION = 500.0
|
||||
###############################################################################
|
||||
# Axes sections
|
||||
###############################################################################
|
||||
#+ First axis
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -191.0
|
||||
MAX_LIMIT = 0.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = -50.000
|
||||
MAX_VELOCITY = 30.48
|
||||
STEPGEN_MAXVEL = 0.0
|
||||
MAX_ACCELERATION = 50.0
|
||||
STEPGEN_MAXACCEL = 0.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -191.0
|
||||
MAX_LIMIT = 0.0
|
||||
FERROR = 1.270
|
||||
MIN_FERROR = 0.254
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 15.0
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
#+ Second axis
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -250.0
|
||||
MAX_LIMIT = 0.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = -40.000
|
||||
MAX_VELOCITY = 30.48
|
||||
STEPGEN_MAXVEL = 0.0
|
||||
MAX_ACCELERATION = 50.0
|
||||
STEPGEN_MAXACCEL = 0.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = -1000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -250.0
|
||||
MAX_LIMIT = 0.0
|
||||
FERROR = 1.270
|
||||
MIN_FERROR = 0.254
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 15.0
|
||||
HOME_LATCH_VEL = -3.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
#+ Third axis
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -985.0
|
||||
MAX_LIMIT = 0.00
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = -30.0
|
||||
MAX_VELOCITY = 30.48
|
||||
STEPGEN_MAXVEL = 0.0
|
||||
MAX_ACCELERATION = 50.0
|
||||
STEPGEN_MAXACCEL = 0.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = 100
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -985.0
|
||||
MAX_LIMIT = 0.00
|
||||
FERROR = 1.270
|
||||
MIN_FERROR = 0.254
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 15.0
|
||||
HOME_LATCH_VEL = -3.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 0
|
||||
###############################################################################
|
||||
# section for main IO controller parameters
|
||||
###############################################################################
|
||||
13
configs/by_interface/general_mechatronics/GM6-PCI/README
Normal file
13
configs/by_interface/general_mechatronics/GM6-PCI/README
Normal file
@@ -0,0 +1,13 @@
|
||||
This configuration uses the General Mechatronics GM6-PCI board, which can control machines up to 6 axis. It has a wide I/O expansion opportunity: isolated home- and end-switches for each axis, 4x8 digital I/O, isolated digital and analogue I/O modules for RS485 field bus.
|
||||
|
||||
Please read the GM6-PCI Driver section of the Integrator Manual or visit:
|
||||
www.generalmechatronics.com
|
||||
for more information.
|
||||
|
||||
Description of sample configurations:
|
||||
|
||||
3-axis-servo:
|
||||
This configuration shows how to set up encoder and axis DAC, and how to connect them to PID hal module. All 3 axes use one home switch and two limit switches. Power fault input is connected to E-stop hal pin.
|
||||
|
||||
3-axis-stepper:
|
||||
This configuration shows how to set up stepgen module. All 3 axes use one home switch and two limit switches. Power fault input is connected to E-stop hal pin.
|
||||
3
configs/by_interface/general_mechatronics/README
Normal file
3
configs/by_interface/general_mechatronics/README
Normal file
@@ -0,0 +1,3 @@
|
||||
General Mechatronics
|
||||
|
||||
www.generalmechatronics.com
|
||||
3
configs/by_interface/mesa/README
Normal file
3
configs/by_interface/mesa/README
Normal file
@@ -0,0 +1,3 @@
|
||||
Mesa Electronics
|
||||
|
||||
www.mesanet.com
|
||||
1
configs/by_interface/mesa/hm2-modbus/.gitignore
vendored
Normal file
1
configs/by_interface/mesa/hm2-modbus/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.mbccb
|
||||
202
configs/by_interface/mesa/hm2-modbus/7i96s-modbus-bldc.ini
Normal file
202
configs/by_interface/mesa/hm2-modbus/7i96s-modbus-bldc.ini
Normal file
@@ -0,0 +1,202 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper+Modbus+BLDC
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper-eth-modbus.hal
|
||||
HALFILE = brushless-dc-motor-driver.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_eth
|
||||
BOARD_IP=10.10.10.10
|
||||
BOARD=7i96s
|
||||
CONFIG=""
|
||||
|
||||
[MODBUS]
|
||||
PORTS="hm2_7i96s.0.pktuart.0"
|
||||
MBCCBS="brushless-dc-motor-driver.mbccb"
|
||||
@@ -0,0 +1,202 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper+Modbus
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper-eth-modbus.hal
|
||||
HALFILE = brushless-dc-motor-driver.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_eth
|
||||
BOARD_IP=10.10.10.10
|
||||
BOARD=7i96s
|
||||
CONFIG=""
|
||||
|
||||
[MODBUS]
|
||||
PORTS="hm2_7i96s.0.pktuart.0"
|
||||
MBCCBS="bldc_and_wavebox.mbccb"
|
||||
201
configs/by_interface/mesa/hm2-modbus/7i96s-modbus-wavebox.ini
Normal file
201
configs/by_interface/mesa/hm2-modbus/7i96s-modbus-wavebox.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper+Modbus+Wavebox
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper-eth-modbus.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_eth
|
||||
BOARD_IP=10.10.10.10
|
||||
BOARD=7i96s
|
||||
CONFIG=""
|
||||
|
||||
[MODBUS]
|
||||
PORTS="hm2_7i96s.0.pktuart.0"
|
||||
MBCCBS="waveshare-modbus-rtu-relay-d.mbccb"
|
||||
31
configs/by_interface/mesa/hm2-modbus/README
Normal file
31
configs/by_interface/mesa/hm2-modbus/README
Normal file
@@ -0,0 +1,31 @@
|
||||
Hostmot2 Modbus using Mesa cards and PktUART
|
||||
|
||||
These examples are based on the hm2-stepper 3-axis config. Please configure the IP address in the ini file.
|
||||
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
You first need to flash your Mesa card with a bit-file that supports one or more PktUART interfaces. The PktUART version should be version 3 or later. Version 2 is supported, but there are known bugs in version 2 and several features are missing.
|
||||
|
||||
You should be able to see the PktUART interfaces listed when you have flashed the PktUART bitfile.
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
Most Modbus systems are RS-485 2-wire configuration. On your Mesa card connector, you must to connect RX- to TX- (Modbus wire 'A') and RX+ to TX+ (Modbus wire 'B'). Depending your configuration, you may need to add a termination resistor (120 Ohm) if your Mesa card does not supply that option.
|
||||
|
||||
|
||||
Practical examples
|
||||
------------------
|
||||
There are several examples in here to get you going with the hm2_modbus driver. The examples are based on the 7i96s Ethernet board, but should be easily ported to other boards.
|
||||
|
||||
Running the examples requires you to compile the MBCCS (Modbus Command Control Source) files into binary MBCCB (Modbus Command Control Binary) files using the mesambccc utility. See the manual page mesambccc(1) for details.
|
||||
|
||||
Example compile:
|
||||
$ mesambccc -o out.mbccb in.mbccs
|
||||
Add the -v flag for verbose information about settings and pins.
|
||||
|
||||
|
||||
Writing MBCCS files
|
||||
-------------------
|
||||
The file format is described in the mesambccc utility's manual page mesambccc(1).
|
||||
82
configs/by_interface/mesa/hm2-modbus/bldc_and_wavebox.mbccs
Normal file
82
configs/by_interface/mesa/hm2-modbus/bldc_and_wavebox.mbccs
Normal file
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
See setup comments in:
|
||||
- brushless-dc-motor-driver.mbccs
|
||||
- waveshare-modbus-rtu-relay-d.mbccs
|
||||
-->
|
||||
<mesamodbus baudrate="57600" parity="E" stopbits="1" interval="50000" suspend="true">
|
||||
<devices> <!-- Devices on the same bus -->
|
||||
<device address="0x01" name="bldc"><description>BLDC Control board AQMD2403BLS-M</description></device>
|
||||
<device address="0x02" name="wavebox"><description>A Waveshare "Modbus RTU Relay (D)" box</description></device>
|
||||
<device address="0x55" name="dummy" />
|
||||
</devices>
|
||||
<initlist> <!-- Initialization sequences -->
|
||||
<!-- Default baudrate for bldc board at boot -->
|
||||
<command baudrate="9600" />
|
||||
|
||||
<!-- Flush the bus so that the receiver is in a known state. -->
|
||||
<command device="dummy" function="W_COIL" address="0x0000" noanswer="1"><data value="0xff00" /></command>
|
||||
|
||||
<!-- Set the board to the stored higher baudrate. -->
|
||||
<command device="bldc" function="W_REGISTER" address="0x009d" timesout="true"><data value="1" /></command>
|
||||
|
||||
<!-- Restore our real baudrate -->
|
||||
<command baudrate="57600" />
|
||||
|
||||
<!-- Again flush the bus so that the receiver is in a known state at the new baudrate. -->
|
||||
<!-- This will also bring the wavebox in a known state -->
|
||||
<command device="dummy" function="W_COIL" address="0x0000" noanswer="1"><data value="0xff00" /></command>
|
||||
</initlist>
|
||||
<commands> <!-- Command function sequences and HAL pin assignments -->
|
||||
<command device="bldc" function="R_REGISTERS" address="0x0020" modbustype="U_AB" haltype="S32" scale="1">
|
||||
<pin name="rtpwm"/>
|
||||
<pin name="rtcurrent"/>
|
||||
<pin name="comfreq" modbustype="S_AB"/>
|
||||
<pin skip="1" />
|
||||
<pin name="rtpos" modbustype="S_ABCD" scale="0"/>
|
||||
</command>
|
||||
<!-- Gives us the following pins:
|
||||
- hm2_modbus.0.bldc.rtpwm (out, s32) (range [0..65535])
|
||||
- hm2_modbus.0.bldc.rtpwm.offset (in, u64)
|
||||
- hm2_modbus.0.bldc.rtpwm.scale (in, float) (must be set to 0.1)
|
||||
- hm2_modbus.0.bldc.rtpwm.scaled (out, float)
|
||||
- hm2_modbus.0.bldc.rtcurrent (out, s32) (range [0..65535])
|
||||
- hm2_modbus.0.bldc.rtcurrent.offset (in, u64)
|
||||
- hm2_modbus.0.bldc.rtcurrent.scale (in, float) (must be set to 0.01)
|
||||
- hm2_modbus.0.bldc.rtcurrent.scaled (out, float)
|
||||
- hm2_modbus.0.bldc.comfreq (out, s32) (range [-32768..+32767])
|
||||
- hm2_modbus.0.bldc.comfreq.offset (in, s64)
|
||||
- hm2_modbus.0.bldc.comfreq.scale (in, float) (must be set to 0.1)
|
||||
- hm2_modbus.0.bldc.comfreq.scaled (out, float)
|
||||
- hm2_modbus.0.bldc.rtpos (out, s32) (range [-2147483648..+2147483647])
|
||||
|
||||
The start will be suspended (see top). The .scale pins will be set in
|
||||
the hal-file. Offset pins are automatically initialized to zero.
|
||||
Afterwards, the hal-file will enable communication.
|
||||
-->
|
||||
|
||||
<command device="wavebox" function="R_INPUTS" address="0x0000" count="8" name="switch" />
|
||||
<!-- Gives us the following pins:
|
||||
- Eight switch inputs on the box are HAL output pins
|
||||
* hm2_modbus.0.wavebox.switch-00 (out, HAL_BIT)
|
||||
* ...
|
||||
* hm2_modbus.0.wavebox.switch-07 (out, HAL_BIT)
|
||||
-->
|
||||
|
||||
<!--
|
||||
Note: We write at the /end/ of the list because writing only occurs if a
|
||||
pin changes. Doing it last in the list makes the previous commands more
|
||||
timing stable because they are "seen" first every time when the timer
|
||||
runs.
|
||||
Assuming that the interval is longer than the time it takes for the
|
||||
commands to be handled.
|
||||
-->
|
||||
<command device="wavebox" function="W_COILS" address="0x0000" count="8" name="relay" />
|
||||
<!-- Gives us the following pins:
|
||||
- Eight relay outputs on the box are HAL input pins
|
||||
* hm2_modbus.0.wavebox.relay-00 (in, HAL_BIT)
|
||||
* ...
|
||||
* hm2_modbus.0.wavebox.relay-07 (in, HAL_BIT)
|
||||
-->
|
||||
</commands>
|
||||
</mesamodbus>
|
||||
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# HAL file for brushless-dc-motor-driver.mbccs
|
||||
#
|
||||
# ######################################################
|
||||
# Modbus pin scaling setup
|
||||
# ######################################################
|
||||
setp hm2_modbus.0.bldc.rtpwm.scale 0.1
|
||||
setp hm2_modbus.0.bldc.rtcurrent.scale 0.01
|
||||
setp hm2_modbus.0.bldc.comfreq.scale 0.1
|
||||
|
||||
# And come out of suspend with the right scaling factors in place
|
||||
setp hm2_modbus.0.suspend false
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Control board: AQMD2403BLS-M
|
||||
|
||||
The Brushless DC motor controller as been configured to run at
|
||||
8E1@57600. The snag is that this board will not start at that speed on
|
||||
power up. It starts at 8E1@9600 with a risk of the first packet to be
|
||||
discarded.
|
||||
The board has manually been set to 57600 baud by writing the two
|
||||
registers with values:
|
||||
- 0x0000 to register 0x0090
|
||||
- 0xe100 to register 0x0091
|
||||
using the W_REGISTERS(16) function. This data is stored in non-volatile
|
||||
memory of the board, but it is first loaded when writing 0x0001 to
|
||||
register 0x009d, and that must be done at every boot.
|
||||
|
||||
The initialization will downgrade to 9600 baud (board's default) and
|
||||
then send the config change. That will immediately change baudrate and
|
||||
the communication is flushed using a dummy transaction.
|
||||
-->
|
||||
<mesamodbus baudrate="57600" parity="E" stopbits="1" interval="50000" suspend="true">
|
||||
<devices> <!-- Devices on the same bus -->
|
||||
<device address="0x01" name="bldc" />
|
||||
<device address="0x55" name="dummy" />
|
||||
</devices>
|
||||
<initlist> <!-- Initialization sequences -->
|
||||
<!-- Default baudrate for bldc board at boot -->
|
||||
<command baudrate="9600" />
|
||||
<!-- Flush the bus so that the receiver is in a known state. -->
|
||||
<command device="dummy" function="W_COIL" address="0x0000" noanswer="1"><data value="0xff00" /></command>
|
||||
<!-- Set the board to the stored higher baudrate. -->
|
||||
<command device="bldc" function="W_REGISTER" address="0x009d" timesout="true"><data value="1" /></command>
|
||||
<!-- Restore our real baudrate -->
|
||||
<command baudrate="57600" />
|
||||
<!-- Again flush the bus so that the receiver is in a known state at the new baudrate. -->
|
||||
<command device="dummy" function="W_COIL" address="0x0000" noanswer="1"><data value="0xff00" /></command>
|
||||
</initlist>
|
||||
<commands> <!-- Command function sequences and HAL pin assignments -->
|
||||
<command device="bldc" function="R_REGISTERS" address="0x0020" modbustype="U_AB" haltype="S32" scale="1">
|
||||
<pin name="rtpwm"/>
|
||||
<pin name="rtcurrent"/>
|
||||
<pin name="comfreq" modbustype="S_AB"/>
|
||||
<pin skip="1" />
|
||||
<pin name="rtpos" modbustype="S_ABCD" scale="0"/>
|
||||
</command>
|
||||
<!-- Gives us the following pins:
|
||||
- hm2_modbus.0.bldc.rtpwm (out, s32) (range [0..65535])
|
||||
- hm2_modbus.0.bldc.rtpwm.offset (in, u64)
|
||||
- hm2_modbus.0.bldc.rtpwm.scale (in, float) (must be set to 0.1)
|
||||
- hm2_modbus.0.bldc.rtpwm.scaled (out, float)
|
||||
- hm2_modbus.0.bldc.rtcurrent (out, s32) (range [0..65535])
|
||||
- hm2_modbus.0.bldc.rtcurrent.offset (in, u64)
|
||||
- hm2_modbus.0.bldc.rtcurrent.scale (in, float) (must be set to 0.01)
|
||||
- hm2_modbus.0.bldc.rtcurrent.scaled (out, float)
|
||||
- hm2_modbus.0.bldc.comfreq (out, s32) (range [-32768..+32767])
|
||||
- hm2_modbus.0.bldc.comfreq.offset (in, s64)
|
||||
- hm2_modbus.0.bldc.comfreq.scale (in, float) (must be set to 0.1)
|
||||
- hm2_modbus.0.bldc.comfreq.scaled (out, float)
|
||||
- hm2_modbus.0.bldc.rtpos (out, s32) (range [-2147483648..+2147483647])
|
||||
|
||||
The start will be suspended (see top). The .scale pins will be set in
|
||||
the hal-file. Offset pins are automatically initialized to zero.
|
||||
Afterwards, the hal-file will enable communication.
|
||||
-->
|
||||
</commands>
|
||||
</mesamodbus>
|
||||
177
configs/by_interface/mesa/hm2-modbus/hm2-stepper-eth-modbus.hal
Normal file
177
configs/by_interface/mesa/hm2-modbus/hm2-stepper-eth-modbus.hal
Normal file
@@ -0,0 +1,177 @@
|
||||
# #######################################
|
||||
#
|
||||
# HAL file for HostMot2+Modbus with 3 steppers
|
||||
#
|
||||
# Based on the other examples in this directory.
|
||||
#
|
||||
# ########################################
|
||||
#
|
||||
# See also:
|
||||
# hostmot2(9)
|
||||
# hm2_modbus(9)
|
||||
# mesambccc(1)
|
||||
#
|
||||
# #####################################################################
|
||||
|
||||
|
||||
# ###################################
|
||||
# Core EMC/HAL Loads
|
||||
# ###################################
|
||||
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
|
||||
# hostmot2 driver
|
||||
loadrt hostmot2
|
||||
# debug_modules=5
|
||||
|
||||
# load low-level driver
|
||||
loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](BOARD_IP) config=[HOSTMOT2](CONFIG)
|
||||
|
||||
# load the Modbus driver
|
||||
loadrt hm2_modbus ports=[MODBUS](PORTS) mbccbs=[MODBUS](MBCCBS)
|
||||
|
||||
# load estop latch component
|
||||
loadrt estop_latch
|
||||
|
||||
# ################################################
|
||||
# THREADS
|
||||
# ################################################
|
||||
|
||||
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
|
||||
|
||||
addf hm2_modbus.0.process servo-thread
|
||||
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
# revel in the free time here from not having to run PID
|
||||
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
|
||||
addf estop-latch.0 servo-thread
|
||||
|
||||
|
||||
# ######################################################
|
||||
# Axis-of-motion Specific Configs (not the GUI)
|
||||
# ######################################################
|
||||
|
||||
|
||||
# ################
|
||||
# X [0] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.00.enable bit
|
||||
sets emcmot.00.enable FALSE
|
||||
|
||||
net emcmot.00.enable <= joint.0.amp-enable-out
|
||||
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.00.pos-cmd <= joint.0.motor-pos-cmd
|
||||
net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd
|
||||
|
||||
net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
|
||||
net motor.00.pos-fb => joint.0.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
|
||||
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.01.enable bit
|
||||
sets emcmot.01.enable FALSE
|
||||
|
||||
net emcmot.01.enable <= joint.1.amp-enable-out
|
||||
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.01.pos-cmd <= joint.1.motor-pos-cmd
|
||||
net emcmot.01.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-cmd
|
||||
|
||||
net motor.01.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb
|
||||
net motor.01.pos-fb => joint.1.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
|
||||
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.02.enable bit
|
||||
sets emcmot.02.enable FALSE
|
||||
|
||||
net emcmot.02.enable <= joint.2.amp-enable-out
|
||||
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.02.pos-cmd <= joint.2.motor-pos-cmd
|
||||
net emcmot.02.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd
|
||||
|
||||
net motor.02.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb
|
||||
net motor.02.pos-fb => joint.2.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
|
||||
|
||||
|
||||
# ##################################################
|
||||
# Standard I/O Block - EStop, Etc
|
||||
# ##################################################
|
||||
|
||||
# A basic estop loop that only includes the hostmot watchdog.
|
||||
net user-enable iocontrol.0.user-request-enable => estop-latch.0.reset
|
||||
net enable-latch estop-latch.0.ok-out => iocontrol.0.emc-enable-in
|
||||
net watchdog hm2_[HOSTMOT2](BOARD).0.watchdog.has_bit => estop-latch.0.fault-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
|
||||
|
||||
16
configs/by_interface/mesa/hm2-modbus/rs485io.mbccs
Normal file
16
configs/by_interface/mesa/hm2-modbus/rs485io.mbccs
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mesamodbus baudrate="38400" parity="E" interval="100000">
|
||||
<devices>
|
||||
<device name="rs485io" address="0x11" />
|
||||
</devices>
|
||||
<initlist>
|
||||
</initlist>
|
||||
<commands>
|
||||
<command device="rs485io" address="0x1000" function="R_REGISTERS" modbustype="U_ABCD" haltype="HAL_U32" name="potu" count="2" />
|
||||
<command device="rs485io" address="0x2000" function="R_REGISTERS" modbustype="S_ABCD" haltype="HAL_S32" name="pots" count="2" />
|
||||
<command device="rs485io" address="0x3000" function="R_REGISTERS" modbustype="F_ABCD" haltype="HAL_FLOAT" name="potf" count="2" />
|
||||
<command device="rs485io" address="0x4000" function="R_REGISTERS" modbustype="F_HGFEDCBA" haltype="HAL_FLOAT" name="potd" count="1" />
|
||||
<command device="rs485io" address="0x0000" function="R_INPUTS" name="button" count="4" />
|
||||
<command device="rs485io" address="0x0000" function="W_COILS" name="led" count="6" />
|
||||
</commands>
|
||||
</mesamodbus>
|
||||
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
The Waveshare "Modbus RTU Relay (D)" has been pre-configured manually to
|
||||
answer to Modbus Device ID 0x02.
|
||||
You must write 0x0002 to register address 0x4000 with the W_REGISTER(6)
|
||||
function for setting Modbus device ID 0x02.
|
||||
|
||||
Factory default seems to be input/relay linkage mode. To separate the
|
||||
inputs and outputs you need to write the value 0x0000 to addresses
|
||||
0x1000, 0x1001, 0x1002...0x1007 by using the W_REGISTERS(16) function or
|
||||
individually using the W_REGISTER(6) function.
|
||||
|
||||
Note on setting baudrate on this device:
|
||||
Setting 57600 works. However, faster does not seem to work stably,
|
||||
especially when parity is enabled. Also take note that the parity even
|
||||
has the value 0x01. The documentation specifies two tables with
|
||||
contradicting information.
|
||||
The 8E1@57600 setting was achieved by writing value 0x0104 to register
|
||||
address 0x2000 using the W_REGISTER(6) function.
|
||||
|
||||
See also: https://www.waveshare.com/wiki/Modbus_RTU_Relay_(D)
|
||||
-->
|
||||
<mesamodbus baudrate="57600" parity="E" stopbits="1" interval="50000">
|
||||
<devices> <!-- Devices on the same bus -->
|
||||
<device address="0x02" name="wavebox"><description>A Waveshare "Modbus RTU Relay (D)" box</description></device>
|
||||
<device address="0x55" name="dummy"><description>Dummy device, not actual on the bus</description></device>
|
||||
</devices>
|
||||
<initlist> <!-- Initialization sequences -->
|
||||
<!--
|
||||
The Waveshare "Modbus RTU Relay (D)" (wavebox) has the nasty habit of
|
||||
not answering the very first packet it receives after power-up. It is
|
||||
probably something in the firmware that causes the very first character
|
||||
to be received with an error after boot.
|
||||
We simply send a packet to a dummy device and mark it that no answer
|
||||
will be received. The wavebox will automatically ignore it and will
|
||||
enter a known responsive state.
|
||||
-->
|
||||
<command device="dummy" function="W_COIL" address="0x0000" noanswer="1"><data value="0xff00" /></command>
|
||||
</initlist>
|
||||
<commands> <!-- Command function sequences and HAL pin assignments -->
|
||||
<command device="wavebox" function="R_INPUTS" address="0x0000" count="8" name="switch" />
|
||||
<!-- Gives us the following pins:
|
||||
- Eight switch inputs on the box are HAL output pins
|
||||
* hm2_modbus.0.wavebox.switch-00 (out, HAL_BIT)
|
||||
* ...
|
||||
* hm2_modbus.0.wavebox.switch-07 (out, HAL_BIT)
|
||||
-->
|
||||
|
||||
<!--
|
||||
Note: We write at the /end/ of the list because writing only occurs if a
|
||||
pin changes. Doing it last in the list makes the previous command more
|
||||
timing stable because it is "seen" first every time when the timer runs.
|
||||
Assuming that the interval is longer than the time it takes for the
|
||||
commands to be handled.
|
||||
-->
|
||||
<command device="wavebox" function="W_COILS" address="0x0000" count="8" name="relay" />
|
||||
<!-- Gives us the following pins:
|
||||
- Eight relay outputs on the box are HAL input pins
|
||||
* hm2_modbus.0.wavebox.relay-00 (in, HAL_BIT)
|
||||
* ...
|
||||
* hm2_modbus.0.wavebox.relay-07 (in, HAL_BIT)
|
||||
-->
|
||||
</commands>
|
||||
</mesamodbus>
|
||||
201
configs/by_interface/mesa/hm2-servo/3x20-small.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/3x20-small.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=3x20
|
||||
CONFIG="firmware=hm2/3x20-1/SV24.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/4i65.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/4i65.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i65
|
||||
CONFIG="firmware=hm2/4i65/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/4i68.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/4i68.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i68
|
||||
CONFIG="firmware=hm2/4i68/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/5i20.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/5i20.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i20
|
||||
CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/5i22-big.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/5i22-big.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1.5/SVST8_8.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/5i22-small.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/5i22-small.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1/SVST8_8.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/5i23.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/5i23.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i23
|
||||
CONFIG="firmware=hm2/5i23/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/7i43-big.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/7i43-big.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-4/SVST4_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/7i43-small.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/7i43-small.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-2/SVST4_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
201
configs/by_interface/mesa/hm2-servo/7i90.ini
Normal file
201
configs/by_interface/mesa/hm2-servo/7i90.ini
Normal file
@@ -0,0 +1,201 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i90
|
||||
BOARD=7i90
|
||||
CONFIG=""
|
||||
202
configs/by_interface/mesa/hm2-servo/7i93.ini
Normal file
202
configs/by_interface/mesa/hm2-servo/7i93.ini
Normal file
@@ -0,0 +1,202 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo-eth.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_eth
|
||||
BOARD_IP=192.168.1.121
|
||||
BOARD=7i93
|
||||
CONFIG="num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
202
configs/by_interface/mesa/hm2-servo/7i96s.ini
Normal file
202
configs/by_interface/mesa/hm2-servo/7i96s.ini
Normal file
@@ -0,0 +1,202 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-servo-eth.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the X axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = -81920
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Y axis servo's encoder has an index channel, so we use it to improve the home accuracy
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
INPUT_SCALE = 81920
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -2.9
|
||||
HOME_SEARCH_VEL = -0.50
|
||||
HOME_LATCH_VEL = 0.10
|
||||
# the Z axis servo's encoder does not have an index channel, so we have to home without index
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
I = 0.000
|
||||
D = 0.000
|
||||
FF0 = 0.000
|
||||
FF1 = 1.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_eth
|
||||
BOARD_IP=192.168.1.121
|
||||
BOARD=7i96s
|
||||
CONFIG="num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
19
configs/by_interface/mesa/hm2-servo/README
Normal file
19
configs/by_interface/mesa/hm2-servo/README
Normal file
@@ -0,0 +1,19 @@
|
||||
This configuration drives a 3-axis servo machine using a Mesa AnythingIO board with the HostMot2 firmware. The config will only run if you have the card installed and have installed the firmware.
|
||||
|
||||
See LinuxCNC_Documentation.pdf - 11.4 Mesa HostMot2 Driver section for more information.
|
||||
|
||||
All 3 axes use a home switch. All home switches are connected to a single shared input pin. X and Z home without encoder index, Y homes with encoder index.
|
||||
|
||||
No limit switches are used.
|
||||
|
||||
These configs have 3 Encoders, 3 PWMs, and 0 StepGens
|
||||
|
||||
5i22-big For the 1.5M gate version
|
||||
|
||||
5i22-small For the 1.0M gate version
|
||||
|
||||
7i43-big For the 400k gate version
|
||||
|
||||
7i43-small For the 200k gate version
|
||||
|
||||
3x20-small For the 1.0M gate version
|
||||
230
configs/by_interface/mesa/hm2-servo/hm2-servo-eth.hal
Normal file
230
configs/by_interface/mesa/hm2-servo/hm2-servo-eth.hal
Normal file
@@ -0,0 +1,230 @@
|
||||
# #######################################
|
||||
#
|
||||
# HAL file for HostMot2 with 3 servos
|
||||
#
|
||||
# Derived from Ted Hyde's original hm2-servo config
|
||||
#
|
||||
# Based up work and discussion with Seb & Peter & Jeff
|
||||
# GNU license references - insert here. www.linuxcnc.org
|
||||
#
|
||||
#
|
||||
# ########################################
|
||||
# Firmware files are in /lib/firmware/hm2/7i43/
|
||||
# Must symlink the hostmot2 firmware directory of sanbox to
|
||||
# /lib/firmware before running EMC2...
|
||||
# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2
|
||||
#
|
||||
# See also:
|
||||
# <http://www.linuxcnc.org/docs/devel/html/man/man9/hostmot2.9.html#config%20modparam>
|
||||
# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
|
||||
#
|
||||
# #####################################################################
|
||||
|
||||
|
||||
# ###################################
|
||||
# Core EMC/HAL Loads
|
||||
# ###################################
|
||||
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
|
||||
# standard components
|
||||
loadrt pid num_chan=3
|
||||
|
||||
# hostmot2 driver
|
||||
# if you have any firmware trouble, enable the debug flags here and see what's going on in the syslog
|
||||
#loadrt hostmot2 debug_idrom=1 debug_module_descriptors=1 debug_pin_descriptors=1 debug_modules=1
|
||||
loadrt hostmot2
|
||||
|
||||
# load low-level driver
|
||||
loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](BOARD_IP) config=[HOSTMOT2](CONFIG)
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.pwm_frequency 40000
|
||||
|
||||
|
||||
# ################################################
|
||||
# THREADS
|
||||
# ################################################
|
||||
|
||||
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
|
||||
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
|
||||
addf pid.0.do-pid-calcs servo-thread
|
||||
addf pid.1.do-pid-calcs servo-thread
|
||||
addf pid.2.do-pid-calcs servo-thread
|
||||
|
||||
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
|
||||
|
||||
|
||||
# ######################################################
|
||||
# Axis-of-motion Specific Configs (not the GUI)
|
||||
# ######################################################
|
||||
|
||||
|
||||
# ################
|
||||
# X [0] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.00.enable bit
|
||||
sets emcmot.00.enable FALSE
|
||||
net emcmot.00.enable => pid.0.enable
|
||||
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.00.enable
|
||||
net emcmot.00.enable <= joint.0.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.counter-mode 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.filter 1
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-invert 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.scale [JOINT_0]INPUT_SCALE
|
||||
net motor.00.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.00.position => pid.0.feedback
|
||||
net motor.00.pos-fb => joint.0.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.0.Pgain [JOINT_0]P
|
||||
setp pid.0.Igain [JOINT_0]I
|
||||
setp pid.0.Dgain [JOINT_0]D
|
||||
setp pid.0.bias [JOINT_0]BIAS
|
||||
setp pid.0.FF0 [JOINT_0]FF0
|
||||
setp pid.0.FF1 [JOINT_0]FF1
|
||||
setp pid.0.FF2 [JOINT_0]FF2
|
||||
setp pid.0.deadband [JOINT_0]DEADBAND
|
||||
setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
|
||||
|
||||
net emcmot.00.pos-cmd joint.0.motor-pos-cmd => pid.0.command
|
||||
net motor.00.command pid.0.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.00.value
|
||||
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.01.enable bit
|
||||
sets emcmot.01.enable FALSE
|
||||
net emcmot.01.enable => pid.1.enable
|
||||
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.01.enable
|
||||
net emcmot.01.enable <= joint.1.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.counter-mode 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.filter 1
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-invert 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.scale [JOINT_1]INPUT_SCALE
|
||||
net motor.01.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.01.position => pid.1.feedback
|
||||
net motor.01.pos-fb => joint.1.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.1.Pgain [JOINT_1]P
|
||||
setp pid.1.Igain [JOINT_1]I
|
||||
setp pid.1.Dgain [JOINT_1]D
|
||||
setp pid.1.bias [JOINT_1]BIAS
|
||||
setp pid.1.FF0 [JOINT_1]FF0
|
||||
setp pid.1.FF1 [JOINT_1]FF1
|
||||
setp pid.1.FF2 [JOINT_1]FF2
|
||||
setp pid.1.deadband [JOINT_1]DEADBAND
|
||||
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.scale [JOINT_1]OUTPUT_SCALE
|
||||
|
||||
net emcmot.01.pos-cmd joint.1.motor-pos-cmd => pid.1.command
|
||||
net motor.01.command pid.1.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.01.value
|
||||
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.02.enable bit
|
||||
sets emcmot.02.enable FALSE
|
||||
net emcmot.02.enable => pid.2.enable
|
||||
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.02.enable
|
||||
net emcmot.02.enable <= joint.2.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.counter-mode 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.filter 1
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-invert 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.scale [JOINT_2]INPUT_SCALE
|
||||
net motor.02.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.02.position => pid.2.feedback
|
||||
net motor.02.pos-fb => joint.2.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.2.Pgain [JOINT_2]P
|
||||
setp pid.2.Igain [JOINT_2]I
|
||||
setp pid.2.Dgain [JOINT_2]D
|
||||
setp pid.2.bias [JOINT_2]BIAS
|
||||
setp pid.2.FF0 [JOINT_2]FF0
|
||||
setp pid.2.FF1 [JOINT_2]FF1
|
||||
setp pid.2.FF2 [JOINT_2]FF2
|
||||
setp pid.2.deadband [JOINT_2]DEADBAND
|
||||
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.scale [JOINT_2]OUTPUT_SCALE
|
||||
|
||||
net emcmot.02.pos-cmd joint.2.motor-pos-cmd => pid.2.command
|
||||
net motor.02.command pid.2.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.02.value
|
||||
|
||||
|
||||
# ##################################################
|
||||
# Standard I/O Block - EStop, Etc
|
||||
# ##################################################
|
||||
|
||||
# create a signal for the estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
|
||||
|
||||
|
||||
#
|
||||
# homing
|
||||
#
|
||||
|
||||
#
|
||||
# In this example, each of the three axes have their own home switch. All
|
||||
# home switches are connected to GPIO 25, though hostmot2 boards generally
|
||||
# have enough GPIO pins to put each axis' home switch on its own pin.
|
||||
#
|
||||
# Each switch is normally open, momentarily closed. When the switch is open,
|
||||
# GPIO 25 floats high (because that is the hostmot2 way). When the switch is
|
||||
# closed, it shorts GPIO 25 to ground.
|
||||
#
|
||||
# EMC expects the value on the .home-sw-in HAL pin to be active high, ie
|
||||
# True when the switch is closed and False when the switch is open.
|
||||
# We get this behavior by linking the GPIO .in_not pin instead of the .in
|
||||
# pin.
|
||||
#
|
||||
|
||||
net home-switch <= hm2_[HOSTMOT2](BOARD).0.gpio.025.in_not
|
||||
net home-switch => joint.0.home-sw-in
|
||||
net home-switch => joint.1.home-sw-in
|
||||
net home-switch => joint.2.home-sw-in
|
||||
|
||||
# only the Y servo has an index, X and Z home without using the index
|
||||
net y-index-enable hm2_[HOSTMOT2](BOARD).0.encoder.01.index-enable <=> joint.1.index-enable
|
||||
|
||||
230
configs/by_interface/mesa/hm2-servo/hm2-servo.hal
Normal file
230
configs/by_interface/mesa/hm2-servo/hm2-servo.hal
Normal file
@@ -0,0 +1,230 @@
|
||||
# #######################################
|
||||
#
|
||||
# HAL file for HostMot2 with 3 servos
|
||||
#
|
||||
# Derived from Ted Hyde's original hm2-servo config
|
||||
#
|
||||
# Based up work and discussion with Seb & Peter & Jeff
|
||||
# GNU license references - insert here. www.linuxcnc.org
|
||||
#
|
||||
#
|
||||
# ########################################
|
||||
# Firmware files are in /lib/firmware/hm2/7i43/
|
||||
# Must symlink the hostmot2 firmware directory of sanbox to
|
||||
# /lib/firmware before running EMC2...
|
||||
# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2
|
||||
#
|
||||
# See also:
|
||||
# <http://www.linuxcnc.org/docs/devel/html/man/man9/hostmot2.9.html#config%20modparam>
|
||||
# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
|
||||
#
|
||||
# #####################################################################
|
||||
|
||||
|
||||
# ###################################
|
||||
# Core EMC/HAL Loads
|
||||
# ###################################
|
||||
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
|
||||
# standard components
|
||||
loadrt pid num_chan=3
|
||||
|
||||
# hostmot2 driver
|
||||
# if you have any firmware trouble, enable the debug flags here and see what's going on in the syslog
|
||||
#loadrt hostmot2 debug_idrom=1 debug_module_descriptors=1 debug_pin_descriptors=1 debug_modules=1
|
||||
loadrt hostmot2
|
||||
|
||||
# load low-level driver
|
||||
loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.pwm_frequency 40000
|
||||
|
||||
|
||||
# ################################################
|
||||
# THREADS
|
||||
# ################################################
|
||||
|
||||
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
|
||||
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
|
||||
addf pid.0.do-pid-calcs servo-thread
|
||||
addf pid.1.do-pid-calcs servo-thread
|
||||
addf pid.2.do-pid-calcs servo-thread
|
||||
|
||||
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
|
||||
|
||||
|
||||
# ######################################################
|
||||
# Axis-of-motion Specific Configs (not the GUI)
|
||||
# ######################################################
|
||||
|
||||
|
||||
# ################
|
||||
# X [0] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.00.enable bit
|
||||
sets emcmot.00.enable FALSE
|
||||
net emcmot.00.enable => pid.0.enable
|
||||
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.00.enable
|
||||
net emcmot.00.enable <= joint.0.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.counter-mode 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.filter 1
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-invert 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.scale [JOINT_0]INPUT_SCALE
|
||||
net motor.00.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.00.position => pid.0.feedback
|
||||
net motor.00.pos-fb => joint.0.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.0.Pgain [JOINT_0]P
|
||||
setp pid.0.Igain [JOINT_0]I
|
||||
setp pid.0.Dgain [JOINT_0]D
|
||||
setp pid.0.bias [JOINT_0]BIAS
|
||||
setp pid.0.FF0 [JOINT_0]FF0
|
||||
setp pid.0.FF1 [JOINT_0]FF1
|
||||
setp pid.0.FF2 [JOINT_0]FF2
|
||||
setp pid.0.deadband [JOINT_0]DEADBAND
|
||||
setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
|
||||
|
||||
net emcmot.00.pos-cmd joint.0.motor-pos-cmd => pid.0.command
|
||||
net motor.00.command pid.0.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.00.value
|
||||
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.01.enable bit
|
||||
sets emcmot.01.enable FALSE
|
||||
net emcmot.01.enable => pid.1.enable
|
||||
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.01.enable
|
||||
net emcmot.01.enable <= joint.1.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.counter-mode 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.filter 1
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-invert 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.scale [JOINT_1]INPUT_SCALE
|
||||
net motor.01.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.01.position => pid.1.feedback
|
||||
net motor.01.pos-fb => joint.1.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.1.Pgain [JOINT_1]P
|
||||
setp pid.1.Igain [JOINT_1]I
|
||||
setp pid.1.Dgain [JOINT_1]D
|
||||
setp pid.1.bias [JOINT_1]BIAS
|
||||
setp pid.1.FF0 [JOINT_1]FF0
|
||||
setp pid.1.FF1 [JOINT_1]FF1
|
||||
setp pid.1.FF2 [JOINT_1]FF2
|
||||
setp pid.1.deadband [JOINT_1]DEADBAND
|
||||
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.scale [JOINT_1]OUTPUT_SCALE
|
||||
|
||||
net emcmot.01.pos-cmd joint.1.motor-pos-cmd => pid.1.command
|
||||
net motor.01.command pid.1.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.01.value
|
||||
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.02.enable bit
|
||||
sets emcmot.02.enable FALSE
|
||||
net emcmot.02.enable => pid.2.enable
|
||||
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.02.enable
|
||||
net emcmot.02.enable <= joint.2.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.counter-mode 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.filter 1
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-invert 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.scale [JOINT_2]INPUT_SCALE
|
||||
net motor.02.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.02.position => pid.2.feedback
|
||||
net motor.02.pos-fb => joint.2.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.2.Pgain [JOINT_2]P
|
||||
setp pid.2.Igain [JOINT_2]I
|
||||
setp pid.2.Dgain [JOINT_2]D
|
||||
setp pid.2.bias [JOINT_2]BIAS
|
||||
setp pid.2.FF0 [JOINT_2]FF0
|
||||
setp pid.2.FF1 [JOINT_2]FF1
|
||||
setp pid.2.FF2 [JOINT_2]FF2
|
||||
setp pid.2.deadband [JOINT_2]DEADBAND
|
||||
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.scale [JOINT_2]OUTPUT_SCALE
|
||||
|
||||
net emcmot.02.pos-cmd joint.2.motor-pos-cmd => pid.2.command
|
||||
net motor.02.command pid.2.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.02.value
|
||||
|
||||
|
||||
# ##################################################
|
||||
# Standard I/O Block - EStop, Etc
|
||||
# ##################################################
|
||||
|
||||
# create a signal for the estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
|
||||
|
||||
|
||||
#
|
||||
# homing
|
||||
#
|
||||
|
||||
#
|
||||
# In this example, each of the three axes have their own home switch. All
|
||||
# home switches are connected to GPIO 25, though hostmot2 boards generally
|
||||
# have enough GPIO pins to put each axis' home switch on its own pin.
|
||||
#
|
||||
# Each switch is normally open, momentarily closed. When the switch is open,
|
||||
# GPIO 25 floats high (because that is the hostmot2 way). When the switch is
|
||||
# closed, it shorts GPIO 25 to ground.
|
||||
#
|
||||
# EMC expects the value on the .home-sw-in HAL pin to be active high, ie
|
||||
# True when the switch is closed and False when the switch is open.
|
||||
# We get this behavior by linking the GPIO .in_not pin instead of the .in
|
||||
# pin.
|
||||
#
|
||||
|
||||
net home-switch <= hm2_[HOSTMOT2](BOARD).0.gpio.025.in_not
|
||||
net home-switch => joint.0.home-sw-in
|
||||
net home-switch => joint.1.home-sw-in
|
||||
net home-switch => joint.2.home-sw-in
|
||||
|
||||
# only the Y servo has an index, X and Z home without using the index
|
||||
net y-index-enable hm2_[HOSTMOT2](BOARD).0.encoder.01.index-enable <=> joint.1.index-enable
|
||||
|
||||
4
configs/by_interface/mesa/hm2-servo/tool.tbl
Normal file
4
configs/by_interface/mesa/hm2-servo/tool.tbl
Normal file
@@ -0,0 +1,4 @@
|
||||
T1 P1 D0.125000 Z+0.511000 ;1/8 end mill
|
||||
T2 P2 D0.062500 Z+0.100000 ;1/16 end mill
|
||||
T3 P3 D0.201000 Z+1.273000 ;#7 tap drill
|
||||
T99999 P99999 Z+0.100000 ;big tool number
|
||||
195
configs/by_interface/mesa/hm2-stepper/3x20-small.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/3x20-small.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=3x20
|
||||
CONFIG="firmware=hm2/3x20-1/SVST16_24.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
194
configs/by_interface/mesa/hm2-stepper/4i65.ini
Normal file
194
configs/by_interface/mesa/hm2-stepper/4i65.ini
Normal file
@@ -0,0 +1,194 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i65
|
||||
CONFIG="firmware=hm2/4i65/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
195
configs/by_interface/mesa/hm2-stepper/4i68.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/4i68.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i68
|
||||
CONFIG="firmware=hm2/4i68/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
195
configs/by_interface/mesa/hm2-stepper/5i20.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/5i20.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i20
|
||||
CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
195
configs/by_interface/mesa/hm2-stepper/5i22-big.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/5i22-big.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1.5/SVST8_8.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
195
configs/by_interface/mesa/hm2-stepper/5i22-small.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/5i22-small.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1/SVST8_8.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
195
configs/by_interface/mesa/hm2-stepper/5i23.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/5i23.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i23
|
||||
CONFIG="firmware=hm2/5i23/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
195
configs/by_interface/mesa/hm2-stepper/7i43-big.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/7i43-big.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-4/SVST4_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
195
configs/by_interface/mesa/hm2-stepper/7i43-small.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/7i43-small.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-2/SVST4_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
196
configs/by_interface/mesa/hm2-stepper/7i90-rpi-spi.ini
Normal file
196
configs/by_interface/mesa/hm2-stepper/7i90-rpi-spi.ini
Normal file
@@ -0,0 +1,196 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper-rpspi.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_rpspi
|
||||
BOARD=7i90
|
||||
CONFIG=""
|
||||
SPICLK_RATE=12500
|
||||
195
configs/by_interface/mesa/hm2-stepper/7i90.ini
Normal file
195
configs/by_interface/mesa/hm2-stepper/7i90.ini
Normal file
@@ -0,0 +1,195 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i90
|
||||
BOARD=7i90
|
||||
CONFIG=""
|
||||
196
configs/by_interface/mesa/hm2-stepper/7i93.ini
Normal file
196
configs/by_interface/mesa/hm2-stepper/7i93.ini
Normal file
@@ -0,0 +1,196 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper-eth.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_eth
|
||||
BOARD_IP=192.168.1.121
|
||||
BOARD=7i93
|
||||
CONFIG="num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
196
configs/by_interface/mesa/hm2-stepper/7i96s.ini
Normal file
196
configs/by_interface/mesa/hm2-stepper/7i96s.ini
Normal file
@@ -0,0 +1,196 @@
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = hm2-stepper-eth.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 100
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
BACKLASH = 0.000
|
||||
SCALE = 1000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
#HOME_LATCH_VEL = -0.01
|
||||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_eth
|
||||
BOARD_IP=192.168.1.121
|
||||
BOARD=7i96s
|
||||
CONFIG="num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
15
configs/by_interface/mesa/hm2-stepper/README
Normal file
15
configs/by_interface/mesa/hm2-stepper/README
Normal file
@@ -0,0 +1,15 @@
|
||||
This configuration drives a 3-axis stepper machine using a Mesa Anything IO board with the HostMot2 firmware. No limit switches are used, so this should work with very basic hardware. The config will only run if you have the card installed and have installed the firmware.
|
||||
|
||||
See LinuxCNC_Documentation.pdf - 11.4 Mesa HostMot2 Driver section for more information.
|
||||
|
||||
These configs have 0 Encoders, 0 PWMs, and 3 StepGens
|
||||
|
||||
5i22-big For the 1.5M gate version
|
||||
|
||||
5i22-small For the 1.0M gate version
|
||||
|
||||
7i43-big For the 400k gate version
|
||||
|
||||
7i43-small For the 200k gate version
|
||||
|
||||
3x20-small For the 1.0M gate version
|
||||
202
configs/by_interface/mesa/hm2-stepper/hm2-stepper-eth.hal
Normal file
202
configs/by_interface/mesa/hm2-stepper/hm2-stepper-eth.hal
Normal file
@@ -0,0 +1,202 @@
|
||||
# #######################################
|
||||
#
|
||||
# HAL file for HostMot2 with 3 steppers
|
||||
#
|
||||
# Derived from Ted Hyde's original hm2-servo config
|
||||
#
|
||||
# Based up work and discussion with Seb & Peter & Jeff
|
||||
# GNU license references - insert here. www.linuxcnc.org
|
||||
#
|
||||
#
|
||||
# ########################################
|
||||
# Firmware files are in /lib/firmware/hm2/7i43/
|
||||
# Must symlink the hostmot2 firmware directory of sanbox to
|
||||
# /lib/firmware before running EMC2...
|
||||
# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2
|
||||
#
|
||||
# See also:
|
||||
# <http://www.linuxcnc.org/docs/devel/html/man/man9/hostmot2.9.html#config%20modparam>
|
||||
# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
|
||||
#
|
||||
# #####################################################################
|
||||
|
||||
|
||||
# ###################################
|
||||
# Core EMC/HAL Loads
|
||||
# ###################################
|
||||
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
|
||||
# hostmot2 driver
|
||||
loadrt hostmot2
|
||||
|
||||
# load low-level driver
|
||||
loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](BOARD_IP) config=[HOSTMOT2](CONFIG)
|
||||
|
||||
# load estop latch component
|
||||
loadrt estop_latch
|
||||
|
||||
# ################################################
|
||||
# THREADS
|
||||
# ################################################
|
||||
|
||||
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
# revel in the free time here from not having to run PID
|
||||
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
|
||||
addf estop-latch.0 servo-thread
|
||||
|
||||
|
||||
# ######################################################
|
||||
# Axis-of-motion Specific Configs (not the GUI)
|
||||
# ######################################################
|
||||
|
||||
|
||||
# ################
|
||||
# X [0] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.00.enable bit
|
||||
sets emcmot.00.enable FALSE
|
||||
|
||||
net emcmot.00.enable <= joint.0.amp-enable-out
|
||||
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.00.pos-cmd <= joint.0.motor-pos-cmd
|
||||
net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd
|
||||
|
||||
net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
|
||||
net motor.00.pos-fb => joint.0.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
|
||||
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.01.enable bit
|
||||
sets emcmot.01.enable FALSE
|
||||
|
||||
net emcmot.01.enable <= joint.1.amp-enable-out
|
||||
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.01.pos-cmd <= joint.1.motor-pos-cmd
|
||||
net emcmot.01.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-cmd
|
||||
|
||||
net motor.01.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb
|
||||
net motor.01.pos-fb => joint.1.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
|
||||
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.02.enable bit
|
||||
sets emcmot.02.enable FALSE
|
||||
|
||||
net emcmot.02.enable <= joint.2.amp-enable-out
|
||||
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.02.pos-cmd <= joint.2.motor-pos-cmd
|
||||
net emcmot.02.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd
|
||||
|
||||
net motor.02.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb
|
||||
net motor.02.pos-fb => joint.2.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# The Mesa AnyIO output pins can be in open-drain mode (drive low, float
|
||||
# high) or push/pull mode (drive low, drive high).
|
||||
#
|
||||
# When a logical output is 1 in open-drain mode, the FPGA lets the pin
|
||||
# float and it gets pulled high to +5V via a 10K resistor.
|
||||
#
|
||||
# When a logical output is 1 in push/pull mode, the FPGA pushes the pin
|
||||
# high but only to +3.3V. This is problematic on some kinds of inputs.
|
||||
#
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.048.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.049.is_opendrain 1
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.054.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.055.is_opendrain 1
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.060.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.061.is_opendrain 1
|
||||
|
||||
|
||||
|
||||
|
||||
# ##################################################
|
||||
# Standard I/O Block - EStop, Etc
|
||||
# ##################################################
|
||||
|
||||
# A basic estop loop that only includes the hostmot watchdog.
|
||||
net user-enable iocontrol.0.user-request-enable => estop-latch.0.reset
|
||||
net enable-latch estop-latch.0.ok-out => iocontrol.0.emc-enable-in
|
||||
net watchdog hm2_[HOSTMOT2](BOARD).0.watchdog.has_bit => estop-latch.0.fault-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
|
||||
|
||||
202
configs/by_interface/mesa/hm2-stepper/hm2-stepper-rpspi.hal
Normal file
202
configs/by_interface/mesa/hm2-stepper/hm2-stepper-rpspi.hal
Normal file
@@ -0,0 +1,202 @@
|
||||
# #######################################
|
||||
#
|
||||
# HAL file for HostMot2 with 3 steppers
|
||||
#
|
||||
# Derived from Ted Hyde's original hm2-servo config
|
||||
#
|
||||
# Based up work and discussion with Seb & Peter & Jeff
|
||||
# GNU license references - insert here. www.linuxcnc.org
|
||||
#
|
||||
#
|
||||
# ########################################
|
||||
# Firmware files are in /lib/firmware/hm2/7i43/
|
||||
# Must symlink the hostmot2 firmware directory of sanbox to
|
||||
# /lib/firmware before running EMC2...
|
||||
# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2
|
||||
#
|
||||
# See also:
|
||||
# <http://www.linuxcnc.org/docs/devel/html/man/man9/hostmot2.9.html#config%20modparam>
|
||||
# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
|
||||
#
|
||||
# #####################################################################
|
||||
|
||||
|
||||
# ###################################
|
||||
# Core EMC/HAL Loads
|
||||
# ###################################
|
||||
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
|
||||
# hostmot2 driver
|
||||
loadrt hostmot2
|
||||
|
||||
# load low-level driver
|
||||
loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG) spiclk_rate=[HOSTMOT2](SPICLK_RATE)
|
||||
|
||||
# load estop latch component
|
||||
loadrt estop_latch
|
||||
|
||||
# ################################################
|
||||
# THREADS
|
||||
# ################################################
|
||||
|
||||
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
# revel in the free time here from not having to run PID
|
||||
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
|
||||
addf estop-latch.0 servo-thread
|
||||
|
||||
|
||||
# ######################################################
|
||||
# Axis-of-motion Specific Configs (not the GUI)
|
||||
# ######################################################
|
||||
|
||||
|
||||
# ################
|
||||
# X [0] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.00.enable bit
|
||||
sets emcmot.00.enable FALSE
|
||||
|
||||
net emcmot.00.enable <= joint.0.amp-enable-out
|
||||
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.00.pos-cmd <= joint.0.motor-pos-cmd
|
||||
net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd
|
||||
|
||||
net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
|
||||
net motor.00.pos-fb => joint.0.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
|
||||
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.01.enable bit
|
||||
sets emcmot.01.enable FALSE
|
||||
|
||||
net emcmot.01.enable <= joint.1.amp-enable-out
|
||||
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.01.pos-cmd <= joint.1.motor-pos-cmd
|
||||
net emcmot.01.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-cmd
|
||||
|
||||
net motor.01.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb
|
||||
net motor.01.pos-fb => joint.1.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
|
||||
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.02.enable bit
|
||||
sets emcmot.02.enable FALSE
|
||||
|
||||
net emcmot.02.enable <= joint.2.amp-enable-out
|
||||
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.02.pos-cmd <= joint.2.motor-pos-cmd
|
||||
net emcmot.02.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd
|
||||
|
||||
net motor.02.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb
|
||||
net motor.02.pos-fb => joint.2.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# The Mesa AnyIO output pins can be in open-drain mode (drive low, float
|
||||
# high) or push/pull mode (drive low, drive high).
|
||||
#
|
||||
# When a logical output is 1 in open-drain mode, the FPGA lets the pin
|
||||
# float and it gets pulled high to +5V via a 10K resistor.
|
||||
#
|
||||
# When a logical output is 1 in push/pull mode, the FPGA pushes the pin
|
||||
# high but only to +3.3V. This is problematic on some kinds of inputs.
|
||||
#
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.048.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.049.is_opendrain 1
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.054.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.055.is_opendrain 1
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.060.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.061.is_opendrain 1
|
||||
|
||||
|
||||
|
||||
|
||||
# ##################################################
|
||||
# Standard I/O Block - EStop, Etc
|
||||
# ##################################################
|
||||
|
||||
# A basic estop loop that only includes the hostmot watchdog.
|
||||
net user-enable iocontrol.0.user-request-enable => estop-latch.0.reset
|
||||
net enable-latch estop-latch.0.ok-out => iocontrol.0.emc-enable-in
|
||||
net watchdog hm2_[HOSTMOT2](BOARD).0.watchdog.has_bit => estop-latch.0.fault-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
|
||||
|
||||
202
configs/by_interface/mesa/hm2-stepper/hm2-stepper.hal
Normal file
202
configs/by_interface/mesa/hm2-stepper/hm2-stepper.hal
Normal file
@@ -0,0 +1,202 @@
|
||||
# #######################################
|
||||
#
|
||||
# HAL file for HostMot2 with 3 steppers
|
||||
#
|
||||
# Derived from Ted Hyde's original hm2-servo config
|
||||
#
|
||||
# Based up work and discussion with Seb & Peter & Jeff
|
||||
# GNU license references - insert here. www.linuxcnc.org
|
||||
#
|
||||
#
|
||||
# ########################################
|
||||
# Firmware files are in /lib/firmware/hm2/7i43/
|
||||
# Must symlink the hostmot2 firmware directory of sanbox to
|
||||
# /lib/firmware before running EMC2...
|
||||
# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2
|
||||
#
|
||||
# See also:
|
||||
# <http://www.linuxcnc.org/docs/devel/html/man/man9/hostmot2.9.html#config%20modparam>
|
||||
# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
|
||||
#
|
||||
# #####################################################################
|
||||
|
||||
|
||||
# ###################################
|
||||
# Core EMC/HAL Loads
|
||||
# ###################################
|
||||
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
|
||||
# hostmot2 driver
|
||||
loadrt hostmot2
|
||||
|
||||
# load low-level driver
|
||||
loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)
|
||||
|
||||
# load estop latch component
|
||||
loadrt estop_latch
|
||||
|
||||
# ################################################
|
||||
# THREADS
|
||||
# ################################################
|
||||
|
||||
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
# revel in the free time here from not having to run PID
|
||||
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
|
||||
addf estop-latch.0 servo-thread
|
||||
|
||||
|
||||
# ######################################################
|
||||
# Axis-of-motion Specific Configs (not the GUI)
|
||||
# ######################################################
|
||||
|
||||
|
||||
# ################
|
||||
# X [0] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.00.enable bit
|
||||
sets emcmot.00.enable FALSE
|
||||
|
||||
net emcmot.00.enable <= joint.0.amp-enable-out
|
||||
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.00.pos-cmd <= joint.0.motor-pos-cmd
|
||||
net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd
|
||||
|
||||
net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
|
||||
net motor.00.pos-fb => joint.0.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
|
||||
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.01.enable bit
|
||||
sets emcmot.01.enable FALSE
|
||||
|
||||
net emcmot.01.enable <= joint.1.amp-enable-out
|
||||
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.01.pos-cmd <= joint.1.motor-pos-cmd
|
||||
net emcmot.01.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-cmd
|
||||
|
||||
net motor.01.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb
|
||||
net motor.01.pos-fb => joint.1.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
|
||||
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.02.enable bit
|
||||
sets emcmot.02.enable FALSE
|
||||
|
||||
net emcmot.02.enable <= joint.2.amp-enable-out
|
||||
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.02.pos-cmd <= joint.2.motor-pos-cmd
|
||||
net emcmot.02.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd
|
||||
|
||||
net motor.02.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb
|
||||
net motor.02.pos-fb => joint.2.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# The Mesa AnyIO output pins can be in open-drain mode (drive low, float
|
||||
# high) or push/pull mode (drive low, drive high).
|
||||
#
|
||||
# When a logical output is 1 in open-drain mode, the FPGA lets the pin
|
||||
# float and it gets pulled high to +5V via a 10K resistor.
|
||||
#
|
||||
# When a logical output is 1 in push/pull mode, the FPGA pushes the pin
|
||||
# high but only to +3.3V. This is problematic on some kinds of inputs.
|
||||
#
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.048.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.049.is_opendrain 1
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.054.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.055.is_opendrain 1
|
||||
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.060.is_opendrain 1
|
||||
#setp hm2_[HOSTMOT2](BOARD).0.gpio.061.is_opendrain 1
|
||||
|
||||
|
||||
|
||||
|
||||
# ##################################################
|
||||
# Standard I/O Block - EStop, Etc
|
||||
# ##################################################
|
||||
|
||||
# A basic estop loop that only includes the hostmot watchdog.
|
||||
net user-enable iocontrol.0.user-request-enable => estop-latch.0.reset
|
||||
net enable-latch estop-latch.0.ok-out => iocontrol.0.emc-enable-in
|
||||
net watchdog hm2_[HOSTMOT2](BOARD).0.watchdog.has_bit => estop-latch.0.fault-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
|
||||
|
||||
4
configs/by_interface/mesa/hm2-stepper/tool.tbl
Normal file
4
configs/by_interface/mesa/hm2-stepper/tool.tbl
Normal file
@@ -0,0 +1,4 @@
|
||||
T1 P1 D0.125000 Z+0.511000 ;1/8 end mill
|
||||
T2 P2 D0.062500 Z+0.100000 ;1/16 end mill
|
||||
T3 P3 D0.201000 Z+1.273000 ;#7 tap drill
|
||||
T99999 P99999 Z+0.100000 ;big tool number
|
||||
5
configs/by_interface/mesa/plasma-5i20/README
Normal file
5
configs/by_interface/mesa/plasma-5i20/README
Normal file
@@ -0,0 +1,5 @@
|
||||
This configuration is to show how to connect the Mesa THCAD card with LinuxCNC on a Plasma Cutter.
|
||||
|
||||
There are two configurations, the plasma-5i20 that requires you to have a Mesa 5i20 installed and the plasma-demo using parallel port. The plasma-demo version is just to show how this config looks and is not a good candidate for the THCAD card due to the slow update speed when using a software encoder with the parallel port.
|
||||
|
||||
The subroutine touchoff.ngc is used with a floating head and the probe input to set the torch to the initial height of the cut. The example files x-trim.ngc and touchtest.ngc demonstrate the use of touchoff.ngc. The usage of touchoff.ngc requires you to have the probe input and Arc Ok input. It uses M66 to wait for the Arc Ok input after lighting off the torch. Three parameters are passed to touchoff pierce height, pierce delay, and cut height. In actual use you will need to adjust the height to raise the torch after touch off to Z0 to match your actual setup.
|
||||
199
configs/by_interface/mesa/plasma-5i20/plasma-5i20.hal
Normal file
199
configs/by_interface/mesa/plasma-5i20/plasma-5i20.hal
Normal file
@@ -0,0 +1,199 @@
|
||||
# Firmware files are in /lib/firmware/hm2/7i43/
|
||||
# Must symlink the hostmot2 firmware directory of sanbox to
|
||||
# /lib/firmware before running EMC2...
|
||||
# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2
|
||||
#
|
||||
# See also:
|
||||
# <http://www.linuxcnc.org/docs/devel/html/man/man9/hostmot2.9.html#config%20modparam>
|
||||
# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
|
||||
#
|
||||
# #####################################################################
|
||||
|
||||
|
||||
# ******************
|
||||
# Core EMC/HAL Loads
|
||||
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
|
||||
loadrt hal_parport cfg=0x378
|
||||
|
||||
# hostmot2 driver
|
||||
loadrt hostmot2
|
||||
|
||||
# load low-level driver
|
||||
loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)
|
||||
|
||||
|
||||
# Torch Height Control
|
||||
loadrt thc
|
||||
addf thc servo-thread
|
||||
|
||||
# THREADS
|
||||
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
|
||||
addf parport.0.read servo-thread
|
||||
addf parport.0.write servo-thread
|
||||
|
||||
# #############################################
|
||||
# Axis-of-motion Specific Configs (not the GUI)
|
||||
|
||||
# **********
|
||||
# X [0] Axis
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.00.enable bit
|
||||
sets emcmot.00.enable FALSE
|
||||
|
||||
net emcmot.00.enable <= joint.0.amp-enable-out
|
||||
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.00.pos-cmd <= joint.0.motor-pos-cmd
|
||||
net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd
|
||||
|
||||
net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
|
||||
net motor.00.pos-fb => joint.0.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
|
||||
|
||||
net both-home-x <= parport.0.pin-10-in-not
|
||||
net both-home-x => joint.0.home-sw-in
|
||||
net both-home-x => joint.0.neg-lim-sw-in
|
||||
net both-home-x => joint.0.pos-lim-sw-in
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.01.enable bit
|
||||
sets emcmot.01.enable FALSE
|
||||
|
||||
net emcmot.01.enable <= joint.1.amp-enable-out
|
||||
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
net emcmot.01.pos-cmd <= joint.1.motor-pos-cmd
|
||||
net emcmot.01.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-cmd
|
||||
|
||||
net motor.01.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb
|
||||
net motor.01.pos-fb => joint.1.motor-pos-fb
|
||||
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
|
||||
|
||||
net both-home-y <= parport.0.pin-11-in-not
|
||||
net both-home-y => joint.1.home-sw-in
|
||||
net both-home-y => joint.1.neg-lim-sw-in
|
||||
net both-home-y => joint.1.pos-lim-sw-in
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# axis enable chain
|
||||
newsig emcmot.02.enable bit
|
||||
sets emcmot.02.enable FALSE
|
||||
|
||||
net emcmot.02.enable <= joint.2.amp-enable-out
|
||||
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable
|
||||
|
||||
|
||||
# position command and feedback
|
||||
# hijack position command and feed through thc
|
||||
net emcmot.02.pos-cmd thc.z-pos-in <= joint.2.motor-pos-cmd
|
||||
net thc-pos-cmd thc.z-pos-out => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd
|
||||
net motor.02.pos-fb joint.2.motor-pos-fb <= thc.z-fb-out
|
||||
|
||||
net both-home-z => joint.2.home-sw-in
|
||||
net both-home-z => joint.2.neg-lim-sw-in
|
||||
net both-home-z => joint.2.pos-lim-sw-in
|
||||
|
||||
# timing parameters
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
|
||||
|
||||
net both-home-z <= parport.0.pin-12-in-not
|
||||
net both-home-z => joint.2.home-sw-in
|
||||
net both-home-z => joint.2.neg-lim-sw-in
|
||||
net both-home-z => joint.2.pos-lim-sw-in
|
||||
|
||||
#######################
|
||||
# Standard I/O Block - EStop, Etc
|
||||
# ###############################
|
||||
|
||||
# create a signal for the estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
|
||||
|
||||
# Touch Off
|
||||
net torch-probe motion.probe-input <= parport.0.pin-13-in-not
|
||||
|
||||
# Set up the Encoder for the THC
|
||||
setp hm2_5i20.0.encoder.00.counter-mode 1
|
||||
net thc-vel-in hm2_5i20.0.encoder.00.velocity => thc.encoder-vel
|
||||
setp thc.scale-offset 119000
|
||||
setp thc.vel-scale 0.00037866834
|
||||
|
||||
# this might need to be increased
|
||||
setp thc.correction-vel 0.0001
|
||||
|
||||
# spindle on starts the arc
|
||||
net spindle-on spindle.0.on => parport.0.pin-16-out
|
||||
|
||||
net spindle-on thc.torch-on
|
||||
|
||||
# starts the motion when the plasma arc has transferred to the work
|
||||
net start-motion-input thc.arc-ok <= motion.digital-in-00 <= parport.0.pin-15-in
|
||||
|
||||
# ******
|
||||
# For Joypad, the rest are in postgui.hal
|
||||
loadusr hal_input -W -KRAL Dual
|
||||
|
||||
|
||||
169
configs/by_interface/mesa/plasma-5i20/plasma-5i20.ini
Normal file
169
configs/by_interface/mesa/plasma-5i20/plasma-5i20.ini
Normal file
@@ -0,0 +1,169 @@
|
||||
; This configuration is based on the hostmot2 stepper configuration
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
MACHINE = Plasma-THC
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = axis
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
MAX_LINEAR_VELOCITY = 4
|
||||
DEFAULT_LINEAR_VELOCITY = 1.6
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 3
|
||||
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
|
||||
#EDITOR = geany
|
||||
PYVCP = plasma.xml
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = plasma.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = plasma-5i20.hal
|
||||
POSTGUI_HALFILE = postgui.hal
|
||||
HALUI = halui
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
# Rapid to Machine Home
|
||||
MDI_COMMAND = G53 G0 X0 Y0 Z0
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
NO_FORCE_HOMING = 1
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -50.0
|
||||
MAX_LIMIT = 51.0
|
||||
MAX_VELOCITY = 7
|
||||
MAX_ACCELERATION = 125
|
||||
|
||||
[JOINT_0]
|
||||
# X Axis
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 7
|
||||
MAX_ACCELERATION = 125
|
||||
STEPGEN_MAXACCEL = 150
|
||||
BACKLASH = 0.000
|
||||
SCALE = 3180
|
||||
MIN_LIMIT = -50.0
|
||||
MAX_LIMIT = 51.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = -0.250
|
||||
HOME_SEARCH_VEL = -1
|
||||
HOME_LATCH_VEL = -0.025
|
||||
HOME_FINAL_VEL = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 1000
|
||||
STEPSPACE = 2000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -36
|
||||
MAX_LIMIT = 36
|
||||
MAX_VELOCITY = 6.75
|
||||
MAX_ACCELERATION = 125
|
||||
|
||||
[JOINT_1]
|
||||
# Y Axis
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 6.75
|
||||
MAX_ACCELERATION = 125
|
||||
STEPGEN_MAXACCEL = 150
|
||||
BACKLASH = 0.000
|
||||
SCALE = 2985
|
||||
MIN_LIMIT = -36
|
||||
MAX_LIMIT = 36
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = 0.25
|
||||
HOME_SEARCH_VEL = 1
|
||||
HOME_LATCH_VEL = 0.025
|
||||
HOME_FINAL_VEL = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 1000
|
||||
STEPSPACE = 2000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 50
|
||||
|
||||
[JOINT_2]
|
||||
# Z Axis
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 50
|
||||
STEPGEN_MAXACCEL = 55
|
||||
BACKLASH = 0.000
|
||||
SCALE = 20000
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
HOME = 0.000
|
||||
HOME_OFFSET = 0.50
|
||||
HOME_SEARCH_VEL = 0.5
|
||||
HOME_LATCH_VEL = 0.025
|
||||
HOME_FINAL_VEL = 1
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 1000
|
||||
STEPSPACE = 2000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i20
|
||||
CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=1 num_pwmgens=0 num_stepgens=3"
|
||||
107
configs/by_interface/mesa/plasma-5i20/plasma-demo.hal
Normal file
107
configs/by_interface/mesa/plasma-5i20/plasma-demo.hal
Normal file
@@ -0,0 +1,107 @@
|
||||
# Generated by stepconf at Sat Apr 16 07:47:05 2011
|
||||
# If you make changes to this file, they will be
|
||||
# overwritten when you run stepconf again
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt hal_parport cfg="0x378 out "
|
||||
setp parport.0.reset-time 1000
|
||||
loadrt stepgen step_type=0,0,0
|
||||
|
||||
addf parport.0.read base-thread
|
||||
addf stepgen.make-pulses base-thread
|
||||
addf parport.0.write base-thread
|
||||
addf parport.0.reset 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
|
||||
|
||||
# Torch Height Control
|
||||
loadrt encoder
|
||||
addf encoder.capture-position servo-thread
|
||||
addf encoder.update-counters servo-thread
|
||||
loadrt thc
|
||||
addf thc servo-thread
|
||||
|
||||
net spindle-cmd <= spindle.0.speed-out
|
||||
net spindle-on <= spindle.0.on
|
||||
|
||||
net xstep => parport.0.pin-02-out
|
||||
setp parport.0.pin-02-out-reset 1
|
||||
net xdir => parport.0.pin-03-out
|
||||
net ystep => parport.0.pin-04-out
|
||||
setp parport.0.pin-04-out-reset 1
|
||||
net ydir => parport.0.pin-05-out
|
||||
net zstep => parport.0.pin-06-out
|
||||
setp parport.0.pin-06-out-reset 1
|
||||
net zdir => parport.0.pin-07-out
|
||||
net spindle-on => parport.0.pin-08-out
|
||||
|
||||
setp stepgen.0.position-scale [JOINT_0]SCALE
|
||||
setp stepgen.0.steplen 1
|
||||
setp stepgen.0.stepspace 0
|
||||
setp stepgen.0.dirhold 15200
|
||||
setp stepgen.0.dirsetup 15200
|
||||
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
|
||||
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
|
||||
net xstep <= stepgen.0.step
|
||||
net xdir <= stepgen.0.dir
|
||||
net xenable joint.0.amp-enable-out => stepgen.0.enable
|
||||
|
||||
setp stepgen.1.position-scale [JOINT_1]SCALE
|
||||
setp stepgen.1.steplen 1
|
||||
setp stepgen.1.stepspace 0
|
||||
setp stepgen.1.dirhold 15200
|
||||
setp stepgen.1.dirsetup 15200
|
||||
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
|
||||
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
|
||||
net ystep <= stepgen.1.step
|
||||
net ydir <= stepgen.1.dir
|
||||
net yenable joint.1.amp-enable-out => stepgen.1.enable
|
||||
|
||||
setp stepgen.2.position-scale [JOINT_2]SCALE
|
||||
setp stepgen.2.steplen 1
|
||||
setp stepgen.2.stepspace 0
|
||||
setp stepgen.2.dirhold 15200
|
||||
setp stepgen.2.dirsetup 15200
|
||||
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
|
||||
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
|
||||
net zstep <= stepgen.2.step
|
||||
net zdir <= stepgen.2.dir
|
||||
net zenable joint.2.amp-enable-out => stepgen.2.enable
|
||||
|
||||
net estop-out <= iocontrol.0.user-enable-out
|
||||
net estop-out => iocontrol.0.emc-enable-in
|
||||
|
||||
#loadusr -W hal_manualtoolchange
|
||||
#net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
|
||||
#net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
|
||||
#net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
|
||||
#net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
|
||||
# Touch Off
|
||||
net torch-probe motion.probe-input <= parport.0.pin-13-in-not
|
||||
|
||||
# Set up the Encoder for the THC
|
||||
setp encoder.0.counter-mode 1
|
||||
net thc-vel-in encoder.0.velocity => thc.encoder-vel
|
||||
setp thc.scale-offset 119000
|
||||
setp thc.vel-scale 0.00037866834
|
||||
|
||||
# this might need to be increased
|
||||
setp thc.correction-vel 0.0001
|
||||
|
||||
# spindle on starts the arc
|
||||
net spindle-on spindle.0.on => parport.0.pin-16-out
|
||||
|
||||
net spindle-on thc.torch-on
|
||||
|
||||
# starts the motion when the plasma arc has transferred to the work
|
||||
net start-motion-input thc.arc-ok <= motion.digital-in-00 <= parport.0.pin-15-in
|
||||
|
||||
|
||||
|
||||
127
configs/by_interface/mesa/plasma-5i20/plasma-demo.ini
Normal file
127
configs/by_interface/mesa/plasma-5i20/plasma-demo.ini
Normal file
@@ -0,0 +1,127 @@
|
||||
; This configuration is based on the Step Config Wizard generated configuration.
|
||||
; It is included to show what the Axis GUI looks like until you get a 5i20
|
||||
; The thc comp will work rather poorly on a parallel port input unless you have
|
||||
; an extremely good latency and can have a fast base thread.
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
MACHINE = plasma
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = axis
|
||||
#EDITOR = geany
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
|
||||
PYVCP = plasma.xml
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = emc.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 1.0
|
||||
BASE_PERIOD = 100000
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
HALUI = halui
|
||||
HALFILE = plasma-demo.hal
|
||||
POSTGUI_HALFILE = postgui.hal
|
||||
|
||||
[HALUI]
|
||||
# add halui MDI commands here (max 64)
|
||||
# Rapid to Machine Home
|
||||
MDI_COMMAND = G53 G0 X0 Y0 Z0
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.10
|
||||
MAX_LINEAR_VELOCITY = 1.00
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -0.01
|
||||
MAX_LIMIT = 8.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
|
||||
[JOINT_0]
|
||||
# X Axis
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
STEPGEN_MAXACCEL = 37.5
|
||||
SCALE = 8000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -0.01
|
||||
MAX_LIMIT = 8.0
|
||||
HOME_OFFSET = 0.0
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -0.01
|
||||
MAX_LIMIT = 8.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
|
||||
[JOINT_1]
|
||||
# Y Axis
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
STEPGEN_MAXACCEL = 37.5
|
||||
SCALE = 8000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -0.01
|
||||
MAX_LIMIT = 8.0
|
||||
HOME_OFFSET = 0.0
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 0.01
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
|
||||
[JOINT_2]
|
||||
# Z Axis
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
STEPGEN_MAXACCEL = 37.5
|
||||
SCALE = 8000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 0.01
|
||||
HOME_OFFSET = 0.0
|
||||
99
configs/by_interface/mesa/plasma-5i20/plasma.txt
Normal file
99
configs/by_interface/mesa/plasma-5i20/plasma.txt
Normal file
@@ -0,0 +1,99 @@
|
||||
[175654.344093] I-pipe: Domain RTAI registered.
|
||||
[175654.344104] RTAI[hal]: <3.6.1> mounted over IPIPE-NOTHREADS 2.0-04.
|
||||
[175654.344107] RTAI[hal]: compiled with gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3).
|
||||
[175654.344115] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
|
||||
[175654.344118] PIPELINE layers:
|
||||
[175654.344121] e0af4000 9ac15d93 RTAI 200
|
||||
[175654.344123] c0383180 0 Linux 100
|
||||
[175654.361183] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
|
||||
[175654.361575] RTAI[sched]: loaded (IMMEDIATE, UP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
|
||||
[175654.361582] RTAI[sched]: hard timer type/freq = 8254-PIT/1193180(Hz); default timing: periodic; linear timed lists.
|
||||
[175654.361586] RTAI[sched]: Linux timer freq = 250 (Hz), CPU freq = 2400241000 hz.
|
||||
[175654.361589] RTAI[sched]: timer setup = 2010 ns, resched latency = 2689 ns.
|
||||
[175654.472379] RTAI[math]: loaded.
|
||||
[175654.509879] RTAPI: Init
|
||||
[175654.509934] RTAPI: Init complete
|
||||
[175654.523048] HAL_LIB: loading kernel lib
|
||||
[175654.523055] RTAPI: initing module HAL_LIB
|
||||
[175654.523059] RTAPI: module 'HAL_LIB' loaded, ID: 1
|
||||
[175654.523407] RTAPI: shmem 01 created by module 01, key: 1212238898, size: 262000
|
||||
[175654.523416] HAL_LIB: kernel lib installed successfully
|
||||
[175654.615892] config string '0x378'
|
||||
[175654.629887] hm2: loading Mesa HostMot2 driver version 0.15
|
||||
[175654.635022] hm2_pci: loading Mesa AnyIO HostMot2 driver version 0.6
|
||||
[175654.637533] hm2_pci: discovered 5i20 at 0000:02:03.0
|
||||
[175654.769217] hm2/hm2_5i20.0: 72 I/O Pins used:
|
||||
[175654.769224] hm2/hm2_5i20.0: IO Pin 000 (P2-01): IOPort
|
||||
[175654.769227] hm2/hm2_5i20.0: IO Pin 001 (P2-03): IOPort
|
||||
[175654.769231] hm2/hm2_5i20.0: IO Pin 002 (P2-05): Encoder #0, pin B (Input)
|
||||
[175654.769235] hm2/hm2_5i20.0: IO Pin 003 (P2-07): Encoder #0, pin A (Input)
|
||||
[175654.769239] hm2/hm2_5i20.0: IO Pin 004 (P2-09): IOPort
|
||||
[175654.769242] hm2/hm2_5i20.0: IO Pin 005 (P2-11): Encoder #0, pin Index (Input)
|
||||
[175654.769246] hm2/hm2_5i20.0: IO Pin 006 (P2-13): IOPort
|
||||
[175654.769249] hm2/hm2_5i20.0: IO Pin 007 (P2-15): IOPort
|
||||
[175654.769252] hm2/hm2_5i20.0: IO Pin 008 (P2-17): IOPort
|
||||
[175654.769255] hm2/hm2_5i20.0: IO Pin 009 (P2-19): IOPort
|
||||
[175654.769258] hm2/hm2_5i20.0: IO Pin 010 (P2-21): IOPort
|
||||
[175654.769262] hm2/hm2_5i20.0: IO Pin 011 (P2-23): IOPort
|
||||
[175654.769265] hm2/hm2_5i20.0: IO Pin 012 (P2-25): IOPort
|
||||
[175654.769268] hm2/hm2_5i20.0: IO Pin 013 (P2-27): IOPort
|
||||
[175654.769271] hm2/hm2_5i20.0: IO Pin 014 (P2-29): IOPort
|
||||
[175654.769274] hm2/hm2_5i20.0: IO Pin 015 (P2-31): IOPort
|
||||
[175654.769277] hm2/hm2_5i20.0: IO Pin 016 (P2-33): IOPort
|
||||
[175654.769280] hm2/hm2_5i20.0: IO Pin 017 (P2-35): IOPort
|
||||
[175654.769283] hm2/hm2_5i20.0: IO Pin 018 (P2-37): IOPort
|
||||
[175654.769287] hm2/hm2_5i20.0: IO Pin 019 (P2-39): IOPort
|
||||
[175654.769290] hm2/hm2_5i20.0: IO Pin 020 (P2-41): IOPort
|
||||
[175654.769293] hm2/hm2_5i20.0: IO Pin 021 (P2-43): IOPort
|
||||
[175654.769296] hm2/hm2_5i20.0: IO Pin 022 (P2-45): IOPort
|
||||
[175654.769299] hm2/hm2_5i20.0: IO Pin 023 (P2-47): IOPort
|
||||
[175654.769302] hm2/hm2_5i20.0: IO Pin 024 (P3-01): IOPort
|
||||
[175654.769305] hm2/hm2_5i20.0: IO Pin 025 (P3-03): IOPort
|
||||
[175654.769308] hm2/hm2_5i20.0: IO Pin 026 (P3-05): IOPort
|
||||
[175654.769311] hm2/hm2_5i20.0: IO Pin 027 (P3-07): IOPort
|
||||
[175654.769315] hm2/hm2_5i20.0: IO Pin 028 (P3-09): IOPort
|
||||
[175654.769318] hm2/hm2_5i20.0: IO Pin 029 (P3-11): IOPort
|
||||
[175654.769321] hm2/hm2_5i20.0: IO Pin 030 (P3-13): IOPort
|
||||
[175654.769324] hm2/hm2_5i20.0: IO Pin 031 (P3-15): IOPort
|
||||
[175654.769327] hm2/hm2_5i20.0: IO Pin 032 (P3-17): IOPort
|
||||
[175654.769330] hm2/hm2_5i20.0: IO Pin 033 (P3-19): IOPort
|
||||
[175654.769333] hm2/hm2_5i20.0: IO Pin 034 (P3-21): IOPort
|
||||
[175654.769336] hm2/hm2_5i20.0: IO Pin 035 (P3-23): IOPort
|
||||
[175654.769339] hm2/hm2_5i20.0: IO Pin 036 (P3-25): IOPort
|
||||
[175654.769342] hm2/hm2_5i20.0: IO Pin 037 (P3-27): IOPort
|
||||
[175654.769346] hm2/hm2_5i20.0: IO Pin 038 (P3-29): IOPort
|
||||
[175654.769349] hm2/hm2_5i20.0: IO Pin 039 (P3-31): IOPort
|
||||
[175654.769352] hm2/hm2_5i20.0: IO Pin 040 (P3-33): IOPort
|
||||
[175654.769355] hm2/hm2_5i20.0: IO Pin 041 (P3-35): IOPort
|
||||
[175654.769358] hm2/hm2_5i20.0: IO Pin 042 (P3-37): IOPort
|
||||
[175654.769361] hm2/hm2_5i20.0: IO Pin 043 (P3-39): IOPort
|
||||
[175654.769364] hm2/hm2_5i20.0: IO Pin 044 (P3-41): IOPort
|
||||
[175654.769367] hm2/hm2_5i20.0: IO Pin 045 (P3-43): IOPort
|
||||
[175654.769370] hm2/hm2_5i20.0: IO Pin 046 (P3-45): IOPort
|
||||
[175654.769373] hm2/hm2_5i20.0: IO Pin 047 (P3-47): IOPort
|
||||
[175654.769377] hm2/hm2_5i20.0: IO Pin 048 (P4-01): StepGen #0, pin Step (Output)
|
||||
[175654.769381] hm2/hm2_5i20.0: IO Pin 049 (P4-03): StepGen #0, pin Direction (Output)
|
||||
[175654.769385] hm2/hm2_5i20.0: IO Pin 050 (P4-05): IOPort
|
||||
[175654.769388] hm2/hm2_5i20.0: IO Pin 051 (P4-07): IOPort
|
||||
[175654.769391] hm2/hm2_5i20.0: IO Pin 052 (P4-09): IOPort
|
||||
[175654.769394] hm2/hm2_5i20.0: IO Pin 053 (P4-11): IOPort
|
||||
[175654.769398] hm2/hm2_5i20.0: IO Pin 054 (P4-13): StepGen #1, pin Step (Output)
|
||||
[175654.769402] hm2/hm2_5i20.0: IO Pin 055 (P4-15): StepGen #1, pin Direction (Output)
|
||||
[175654.769406] hm2/hm2_5i20.0: IO Pin 056 (P4-17): IOPort
|
||||
[175654.769409] hm2/hm2_5i20.0: IO Pin 057 (P4-19): IOPort
|
||||
[175654.769412] hm2/hm2_5i20.0: IO Pin 058 (P4-21): IOPort
|
||||
[175654.769415] hm2/hm2_5i20.0: IO Pin 059 (P4-23): IOPort
|
||||
[175654.769419] hm2/hm2_5i20.0: IO Pin 060 (P4-25): StepGen #2, pin Step (Output)
|
||||
[175654.769423] hm2/hm2_5i20.0: IO Pin 061 (P4-27): StepGen #2, pin Direction (Output)
|
||||
[175654.769427] hm2/hm2_5i20.0: IO Pin 062 (P4-29): IOPort
|
||||
[175654.769430] hm2/hm2_5i20.0: IO Pin 063 (P4-31): IOPort
|
||||
[175654.769433] hm2/hm2_5i20.0: IO Pin 064 (P4-33): IOPort
|
||||
[175654.769436] hm2/hm2_5i20.0: IO Pin 065 (P4-35): IOPort
|
||||
[175654.769439] hm2/hm2_5i20.0: IO Pin 066 (P4-37): IOPort
|
||||
[175654.769442] hm2/hm2_5i20.0: IO Pin 067 (P4-39): IOPort
|
||||
[175654.769445] hm2/hm2_5i20.0: IO Pin 068 (P4-41): IOPort
|
||||
[175654.769448] hm2/hm2_5i20.0: IO Pin 069 (P4-43): IOPort
|
||||
[175654.769451] hm2/hm2_5i20.0: IO Pin 070 (P4-45): IOPort
|
||||
[175654.769455] hm2/hm2_5i20.0: IO Pin 071 (P4-47): IOPort
|
||||
[175654.769637] hm2/hm2_5i20.0: registered
|
||||
[175654.769640] hm2_5i20.0: initialized AnyIO board at 0000:02:03.0
|
||||
164
configs/by_interface/mesa/plasma-5i20/plasma.xml
Normal file
164
configs/by_interface/mesa/plasma-5i20/plasma.xml
Normal file
@@ -0,0 +1,164 @@
|
||||
<pyvcp>
|
||||
<hbox>
|
||||
<checkbutton>
|
||||
<text>"THC Enable"</text>
|
||||
<halpin>"thc-enable"</halpin>
|
||||
</checkbutton>
|
||||
</hbox>
|
||||
|
||||
<labelframe text="THC Settings">
|
||||
<hbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>"Vel Tolerance "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<label>
|
||||
<text>"Volts Setting "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<label>
|
||||
<text>"Volts Tolerance"</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<spinbox>
|
||||
<width>"5"</width>
|
||||
<halpin>"vel-tol"</halpin>
|
||||
<min_>.01</min_>
|
||||
<max_>1</max_>
|
||||
<resolution>0.01</resolution>
|
||||
<initval>0.2</initval>
|
||||
<format>"1.2f"</format>
|
||||
<font>("Arial",10)</font>
|
||||
</spinbox>
|
||||
<spinbox>
|
||||
<width>"5"</width>
|
||||
<halpin>"volts-requested"</halpin>
|
||||
<min_>0</min_>
|
||||
<max_>200</max_>
|
||||
<resolution>1</resolution>
|
||||
<font>("Helvetica",10)</font>
|
||||
<format>"1.0f"</format>
|
||||
<font>("Arial",10)</font>
|
||||
<initval>1</initval>
|
||||
</spinbox>
|
||||
<spinbox>
|
||||
<width>"5"</width>
|
||||
<font>("Helvetica",10)</font>
|
||||
<halpin>"volts-tolerance"</halpin>
|
||||
<resolution>0.1</resolution>
|
||||
<initval>1</initval>
|
||||
<min_>0</min_>
|
||||
<max_>10</max_>
|
||||
</spinbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
<labelframe text="Arc Volts Status">
|
||||
<hbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>"Under"</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<rectled>
|
||||
<halpin>"volts-under"</halpin>
|
||||
<height>"20"</height>
|
||||
<width>"40"</width>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</rectled>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>"OK"</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<rectled>
|
||||
<halpin>"volts-ok"</halpin>
|
||||
<height>"20"</height>
|
||||
<width>"40"</width>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</rectled>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>"Over"</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<rectled>
|
||||
<halpin>"volts-high"</halpin>
|
||||
<height>"20"</height>
|
||||
<width>"40"</width>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</rectled>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
<labelframe text="Status">
|
||||
<hbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>"Velocity"</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<rectled>
|
||||
<halpin>"vel-status"</halpin>
|
||||
<height>"20"</height>
|
||||
<width>"40"</width>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</rectled>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>"Arc"</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<rectled>
|
||||
<halpin>"arc-ok"</halpin>
|
||||
<height>"20"</height>
|
||||
<width>"40"</width>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</rectled>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>"Offset"</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"offset"</halpin>
|
||||
<font>("Helvetica",10)</font>
|
||||
<format>"+4.4f"</format>
|
||||
</number>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
|
||||
<label text="Actual Volts"/>
|
||||
<meter>
|
||||
<halpin>"actual-volts"</halpin>
|
||||
<text>"Torch"</text>
|
||||
<subtext>"Volts"</subtext>
|
||||
<size>150</size>
|
||||
<min_>0</min_>
|
||||
<max_>200</max_>
|
||||
<majorscale>25</majorscale>
|
||||
<minorscale>5</minorscale>
|
||||
</meter>
|
||||
|
||||
<labelframe text="MDI Commands">
|
||||
<button>
|
||||
<halpin>"rapid-to-home"</halpin>
|
||||
<text>"Rapid to Home"</text>
|
||||
<font>('Helvetica',10)</font>
|
||||
</button>
|
||||
</labelframe>
|
||||
</pyvcp>
|
||||
|
||||
16
configs/by_interface/mesa/plasma-5i20/postgui.hal
Normal file
16
configs/by_interface/mesa/plasma-5i20/postgui.hal
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
# THC connections
|
||||
net thc-enable pyvcp.thc-enable thc.enable
|
||||
net thc-voltmeter pyvcp.actual-volts thc.volts
|
||||
net thc-voltset pyvcp.volts-requested thc.volts-requested
|
||||
net thc-req-vel thc.requested-vel <= motion.requested-vel
|
||||
net thc-cur-vel thc.current-vel <= motion.current-vel
|
||||
net thc-vel-status pyvcp.vel-status thc.vel-status
|
||||
net thc-vel-tol pyvcp.vel-tol thc.vel-tol
|
||||
|
||||
#net thc-volts-tol pyvcp.volts-tolerance-i thc.volts-tol
|
||||
|
||||
# MDI commands
|
||||
# rapid to home button
|
||||
net remote-rapid-home halui.mdi-command-00 <= pyvcp.rapid-to-home
|
||||
|
||||
4
configs/by_interface/mesa/plasma-5i20/tool.tbl
Normal file
4
configs/by_interface/mesa/plasma-5i20/tool.tbl
Normal file
@@ -0,0 +1,4 @@
|
||||
T1 P1 D0.125000 Z+0.511000 ;1/8 end mill
|
||||
T2 P2 D0.062500 Z+0.100000 ;1/16 end mill
|
||||
T3 P3 D0.201000 Z+1.273000 ;#7 tap drill
|
||||
T99999 P99999 Z+0.100000 ;big tool number
|
||||
1
configs/by_interface/nc_files
Symbolic link
1
configs/by_interface/nc_files
Symbolic link
@@ -0,0 +1 @@
|
||||
../../nc_files
|
||||
1
configs/by_interface/parport/.gitignore
vendored
Normal file
1
configs/by_interface/parport/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
core_stepper.hal
|
||||
3
configs/by_interface/parport/README
Normal file
3
configs/by_interface/parport/README
Normal file
@@ -0,0 +1,3 @@
|
||||
PC parallel port (printer port)
|
||||
|
||||
Standard printer port on motherboard or add-on pci card
|
||||
@@ -0,0 +1,84 @@
|
||||
# Generated by stepconf at Sat Sep 20 16:05:23 2008
|
||||
# If you make changes to this file, they will be
|
||||
# overwritten when you run stepconf again
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt hal_parport cfg=0x378
|
||||
setp parport.0.reset-time 5000
|
||||
loadrt stepgen step_type=0,0,0
|
||||
|
||||
addf parport.0.read base-thread
|
||||
addf stepgen.make-pulses base-thread
|
||||
addf parport.0.write base-thread
|
||||
addf parport.0.reset 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
|
||||
|
||||
net estop-out => parport.0.pin-01-out
|
||||
net xstep => parport.0.pin-02-out
|
||||
setp parport.0.pin-02-out-reset 1
|
||||
net xdir => parport.0.pin-03-out
|
||||
net ystep => parport.0.pin-04-out
|
||||
setp parport.0.pin-04-out-reset 1
|
||||
net ydir => parport.0.pin-05-out
|
||||
net zstep => parport.0.pin-06-out
|
||||
setp parport.0.pin-06-out-reset 1
|
||||
net zdir => parport.0.pin-07-out
|
||||
|
||||
net both-home-x <= parport.0.pin-10-in
|
||||
net both-home-y <= parport.0.pin-11-in
|
||||
net both-home-z <= parport.0.pin-12-in
|
||||
|
||||
setp stepgen.0.position-scale [JOINT_0]SCALE
|
||||
setp stepgen.0.steplen 1
|
||||
setp stepgen.0.stepspace 0
|
||||
setp stepgen.0.dirhold 16000
|
||||
setp stepgen.0.dirsetup 16000
|
||||
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
|
||||
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
|
||||
net xstep <= stepgen.0.step
|
||||
net xdir <= stepgen.0.dir
|
||||
net xenable joint.0.amp-enable-out => stepgen.0.enable
|
||||
net both-home-x => joint.0.home-sw-in
|
||||
net both-home-x => joint.0.neg-lim-sw-in
|
||||
net both-home-x => joint.0.pos-lim-sw-in
|
||||
|
||||
setp stepgen.1.position-scale [JOINT_1]SCALE
|
||||
setp stepgen.1.steplen 1
|
||||
setp stepgen.1.stepspace 0
|
||||
setp stepgen.1.dirhold 16000
|
||||
setp stepgen.1.dirsetup 16000
|
||||
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
|
||||
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
|
||||
net ystep <= stepgen.1.step
|
||||
net ydir <= stepgen.1.dir
|
||||
net yenable joint.1.amp-enable-out => stepgen.1.enable
|
||||
net both-home-y => joint.1.home-sw-in
|
||||
net both-home-y => joint.1.neg-lim-sw-in
|
||||
net both-home-y => joint.1.pos-lim-sw-in
|
||||
|
||||
setp stepgen.2.position-scale [JOINT_2]SCALE
|
||||
setp stepgen.2.steplen 1
|
||||
setp stepgen.2.stepspace 0
|
||||
setp stepgen.2.dirhold 16000
|
||||
setp stepgen.2.dirsetup 16000
|
||||
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
|
||||
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
|
||||
net zstep <= stepgen.2.step
|
||||
net zdir <= stepgen.2.dir
|
||||
net zenable joint.2.amp-enable-out => stepgen.2.enable
|
||||
net both-home-z => joint.2.home-sw-in
|
||||
net both-home-z => joint.2.neg-lim-sw-in
|
||||
net both-home-z => joint.2.pos-lim-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 => iocontrol.0.tool-changed
|
||||
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
129
configs/by_interface/parport/classicladder/cl-estop/cl-estop.ini
Normal file
129
configs/by_interface/parport/classicladder/cl-estop/cl-estop.ini
Normal file
@@ -0,0 +1,129 @@
|
||||
# Generated by stepconf at Sat Sep 20 16:05:23 2008
|
||||
# If you make changes to this file, they will be
|
||||
# overwritten when you run stepconf again
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
MACHINE = Stepper-CL-EStop
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = axis
|
||||
#EDITOR = geany
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
#PROGRAM_PREFIX = /home/jet/emc2/nc_files
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
|
||||
PYVCP = panel.xml
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = emc.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 1.0
|
||||
BASE_PERIOD = 100000
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
HALFILE = cl-estop.hal
|
||||
HALFILE = custom.hal
|
||||
POSTGUI_HALFILE = custom_postgui.hal
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.10
|
||||
MAX_LINEAR_VELOCITY = 1.00
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -0.01
|
||||
MAX_LIMIT = 12.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
STEPGEN_MAXACCEL = 37.5
|
||||
SCALE = 8000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -0.01
|
||||
MAX_LIMIT = 12.0
|
||||
HOME_OFFSET = 0.000000
|
||||
HOME_SEARCH_VEL = 0.050000
|
||||
HOME_LATCH_VEL = 0.050000
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -0.01
|
||||
MAX_LIMIT = 8.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
STEPGEN_MAXACCEL = 37.5
|
||||
SCALE = 8000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -0.01
|
||||
MAX_LIMIT = 8.0
|
||||
HOME_OFFSET = 0.000000
|
||||
HOME_SEARCH_VEL = 0.050000
|
||||
HOME_LATCH_VEL = 0.050000
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 2
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 0.01
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 30.0
|
||||
STEPGEN_MAXACCEL = 37.5
|
||||
SCALE = 8000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 0.01
|
||||
HOME_OFFSET = 0.000000
|
||||
HOME_SEARCH_VEL = 0.050000
|
||||
HOME_LATCH_VEL = 0.050000
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
@@ -0,0 +1,12 @@
|
||||
# Include your customized HAL commands here
|
||||
# This file will not be overwritten when you run stepconf again
|
||||
|
||||
# Load ClassicLadder
|
||||
loadrt classicladder_rt
|
||||
|
||||
# Add the ClassicLadder refresh function to the servo thread
|
||||
addf classicladder.0.refresh servo-thread
|
||||
|
||||
# Load the ladder
|
||||
loadusr classicladder --nogui estop.clp
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Include your customized HAL commands here
|
||||
# The commands in this file are run after the AXIS GUI (including PyVCP panel)
|
||||
# starts
|
||||
# This file will not be overwritten when you run stepconf again
|
||||
|
||||
# External E-Stop pyVCP button for external use a normally closed contact
|
||||
loadrt not count=1
|
||||
addf not.0 servo-thread
|
||||
|
||||
# The not changes the normally open pyVCP button to normally closed
|
||||
net nc-gui-estop not.0.in <= pyvcp.py-estop
|
||||
net ext-estop classicladder.0.in-00 <= not.0.out
|
||||
|
||||
# Request E-Stop Enable from EMC
|
||||
net estop-all-ok iocontrol.0.emc-enable-in <= classicladder.0.out-00
|
||||
|
||||
# Request E-Stop Enable from pyVCP or external source
|
||||
net ext-estop-reset classicladder.0.in-03 <= pyvcp.py-reset
|
||||
|
||||
# This line resets the E-Stop from EMC
|
||||
net emc-reset-estop iocontrol.0.user-request-enable => classicladder.0.in-02
|
||||
|
||||
# This line enables EMC to unlatch the E-Stop in classicladder
|
||||
net emc-estop iocontrol.0.user-enable-out => classicladder.0.in-01
|
||||
|
||||
# This line turns on the green indicator when out of E-Stop
|
||||
net estop-all-ok => pyvcp.py-es-status
|
||||
198
configs/by_interface/parport/classicladder/cl-estop/estop.clp
Normal file
198
configs/by_interface/parport/classicladder/cl-estop/estop.clp
Normal file
@@ -0,0 +1,198 @@
|
||||
_FILES_CLASSICLADDER
|
||||
_FILE-general.txt
|
||||
PERIODIC_REFRESH=1
|
||||
SIZE_NBR_RUNGS=100
|
||||
SIZE_NBR_BITS=500
|
||||
SIZE_NBR_WORDS=100
|
||||
SIZE_NBR_TIMERS=10
|
||||
SIZE_NBR_MONOSTABLES=10
|
||||
SIZE_NBR_COUNTERS=10
|
||||
SIZE_NBR_TIMERS_IEC=10
|
||||
SIZE_NBR_PHYS_INPUTS=15
|
||||
SIZE_NBR_PHYS_OUTPUTS=15
|
||||
SIZE_NBR_ARITHM_EXPR=100
|
||||
SIZE_NBR_SECTIONS=10
|
||||
SIZE_NBR_SYMBOLS=100
|
||||
_/FILE-general.txt
|
||||
_FILE-timers.csv
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
_/FILE-timers.csv
|
||||
_FILE-monostables.csv
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
_/FILE-monostables.csv
|
||||
_FILE-counters.csv
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
_/FILE-counters.csv
|
||||
_FILE-timers_iec.csv
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
_/FILE-timers_iec.csv
|
||||
_FILE-arithmetic_expressions.csv
|
||||
#VER=2.0
|
||||
_/FILE-arithmetic_expressions.csv
|
||||
_FILE-rung_0.csv
|
||||
#VER=2.0
|
||||
#LABEL=
|
||||
#COMMENT=
|
||||
#PREVRUNG=-1
|
||||
#NEXTRUNG=0
|
||||
1-0-50/0 , 9-0-0/0 , 1-0-50/1 , 9-0-0/0 , 1-0-50/2 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-0-0/0 , 1-1-60/2 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 50-1-60/1
|
||||
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-0-0/0 , 1-1-60/0 , 0-1-0/0 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 1-1-50/3 , 9-0-0/0 , 9-0-0/0 , 0-1-0/0 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
_/FILE-rung_0.csv
|
||||
_FILE-sections.csv
|
||||
#VER=1.0
|
||||
#NAME000=Prog1
|
||||
000,0,-1,0,0,0
|
||||
_/FILE-sections.csv
|
||||
_FILE-sequential.csv
|
||||
#VER=1.0
|
||||
_/FILE-sequential.csv
|
||||
_FILE-ioconf.csv
|
||||
#VER=1.0
|
||||
_/FILE-ioconf.csv
|
||||
_FILE-modbusioconf.csv
|
||||
#VER=1.0
|
||||
_/FILE-modbusioconf.csv
|
||||
_FILE-symbols.csv
|
||||
#VER=1.0
|
||||
%I0,EStop,External E-Stop
|
||||
%I1,EMCReset,Auto named bit-in pin
|
||||
%I2,USRReset,Auto named bit-in pin
|
||||
%I3,CLinB3,Auto named bit-in pin
|
||||
%I4,CLinB4,Auto named bit-in pin
|
||||
%I5,CLinB5,Auto named bit-in pin
|
||||
%I6,CLinB6,Auto named bit-in pin
|
||||
%I7,CLinB7,Auto named bit-in pin
|
||||
%I8,CLinB8,Auto named bit-in pin
|
||||
%I9,CLinB9,Auto named bit-in pin
|
||||
%I10,CLinB10,Auto named bit-in pin
|
||||
%I11,CLinB11,Auto named bit-in pin
|
||||
%I12,CLinB12,Auto named bit-in pin
|
||||
%I13,CLinB13,Auto named bit-in pin
|
||||
%I14,CLinB14,Auto named bit-in pin
|
||||
%I15,CLinB15,Auto named bit-in pin
|
||||
%I16,CLinB16,Auto named bit-in pin
|
||||
%I17,CLinB17,Auto named bit-in pin
|
||||
%I18,CLinB18,Auto named bit-in pin
|
||||
%I19,CLinB19,Auto named bit-in pin
|
||||
%I20,CLinB20,Auto named bit-in pin
|
||||
%I21,CLinB21,Auto named bit-in pin
|
||||
%I22,CLinB22,Auto named bit-in pin
|
||||
%I23,CLinB23,Auto named bit-in pin
|
||||
%I24,CLinB24,Auto named bit-in pin
|
||||
%I25,CLinB25,Auto named bit-in pin
|
||||
%I26,CLinB26,Auto named bit-in pin
|
||||
%I27,CLinB27,Auto named bit-in pin
|
||||
%I28,CLinB28,Auto named bit-in pin
|
||||
%I29,CLinB29,Auto named bit-in pin
|
||||
%I30,CLinB30,Auto named bit-in pin
|
||||
%I31,CLinB31,Auto named bit-in pin
|
||||
%I32,CLinB32,Auto named bit-in pin
|
||||
%I33,CLinB33,Auto named bit-in pin
|
||||
%I34,CLinB34,Auto named bit-in pin
|
||||
%I35,CLinB35,Auto named bit-in pin
|
||||
%I36,CLinB36,Auto named bit-in pin
|
||||
%I37,CLinB37,Auto named bit-in pin
|
||||
%I38,CLinB38,Auto named bit-in pin
|
||||
%I39,CLinB39,Auto named bit-in pin
|
||||
%I40,CLinB40,Auto named bit-in pin
|
||||
%I41,CLinB41,Auto named bit-in pin
|
||||
%I42,CLinB42,Auto named bit-in pin
|
||||
%I43,CLinB43,Auto named bit-in pin
|
||||
%I44,CLinB44,Auto named bit-in pin
|
||||
%I45,CLinB45,Auto named bit-in pin
|
||||
%I46,CLinB46,Auto named bit-in pin
|
||||
%I47,CLinB47,Auto named bit-in pin
|
||||
%I48,CLinB48,Auto named bit-in pin
|
||||
%I49,CLinB49,Auto named bit-in pin
|
||||
%Q0,All OK,Enable EMC E-Stop
|
||||
%Q1,EnDrive,Auto named bit-out pin
|
||||
%Q2,CLoutB2,Auto named bit-out pin
|
||||
%Q3,CLoutB3,Auto named bit-out pin
|
||||
%Q4,CLoutB4,Auto named bit-out pin
|
||||
%Q5,CLoutB5,Auto named bit-out pin
|
||||
%Q6,CLoutB6,Auto named bit-out pin
|
||||
%Q7,CLoutB7,Auto named bit-out pin
|
||||
%Q8,CLoutB8,Auto named bit-out pin
|
||||
%Q9,CLoutB9,Auto named bit-out pin
|
||||
%Q10,CLoutB10,Auto named bit-out pin
|
||||
%Q11,CLoutB11,Auto named bit-out pin
|
||||
%Q12,CLoutB12,Auto named bit-out pin
|
||||
%Q13,CLoutB13,Auto named bit-out pin
|
||||
%Q14,CLoutB14,Auto named bit-out pin
|
||||
%Q15,CLoutB15,Auto named bit-out pin
|
||||
%Q16,CLoutB16,Auto named bit-out pin
|
||||
%Q17,CLoutB17,Auto named bit-out pin
|
||||
%Q18,CLoutB18,Auto named bit-out pin
|
||||
%Q19,CLoutB19,Auto named bit-out pin
|
||||
%Q20,CLoutB20,Auto named bit-out pin
|
||||
%Q21,CLoutB21,Auto named bit-out pin
|
||||
%Q22,CLoutB22,Auto named bit-out pin
|
||||
%Q23,CLoutB23,Auto named bit-out pin
|
||||
%Q24,CLoutB24,Auto named bit-out pin
|
||||
%Q25,CLoutB25,Auto named bit-out pin
|
||||
%Q26,CLoutB26,Auto named bit-out pin
|
||||
%Q27,CLoutB27,Auto named bit-out pin
|
||||
%Q28,CLoutB28,Auto named bit-out pin
|
||||
%Q29,CLoutB29,Auto named bit-out pin
|
||||
%Q30,CLoutB30,Auto named bit-out pin
|
||||
%Q31,CLoutB31,Auto named bit-out pin
|
||||
%Q32,CLoutB32,Auto named bit-out pin
|
||||
%Q33,CLoutB33,Auto named bit-out pin
|
||||
%Q34,CLoutB34,Auto named bit-out pin
|
||||
%Q35,CLoutB35,Auto named bit-out pin
|
||||
%Q36,CLoutB36,Auto named bit-out pin
|
||||
%Q37,CLoutB37,Auto named bit-out pin
|
||||
%Q38,CLoutB38,Auto named bit-out pin
|
||||
%Q39,CLoutB39,Auto named bit-out pin
|
||||
%Q40,CLoutB40,Auto named bit-out pin
|
||||
%Q41,CLoutB41,Auto named bit-out pin
|
||||
%Q42,CLoutB42,Auto named bit-out pin
|
||||
%Q43,CLoutB43,Auto named bit-out pin
|
||||
%Q44,CLoutB44,Auto named bit-out pin
|
||||
%Q45,CLoutB45,Auto named bit-out pin
|
||||
%Q46,CLoutB46,Auto named bit-out pin
|
||||
%Q47,CLoutB47,Auto named bit-out pin
|
||||
%Q48,CLoutB48,Auto named bit-out pin
|
||||
%Q49,CLoutB49,Auto named bit-out pin
|
||||
_/FILE-symbols.csv
|
||||
_/FILES_CLASSICLADDER
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!--
|
||||
Include your PyVCP panel here.
|
||||
The contents of this file will not be overwritten when you run stepconf again.
|
||||
-->
|
||||
<pyvcp>
|
||||
<vbox>
|
||||
<label><text>"E-Stop Demo"</text></label>
|
||||
<led>
|
||||
<halpin>"py-es-status"</halpin>
|
||||
<size>50</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
<button>
|
||||
<halpin>"py-estop"</halpin>
|
||||
<text>"E-Stop"</text>
|
||||
</button>
|
||||
|
||||
</vbox>
|
||||
|
||||
<button>
|
||||
<halpin>"py-reset"</halpin>
|
||||
<text>"Reset"</text>
|
||||
</button>
|
||||
|
||||
|
||||
</pyvcp>
|
||||
@@ -0,0 +1,4 @@
|
||||
T1 P1 D0.125000 Z+0.511000 ;1/8 end mill
|
||||
T2 P2 D0.062500 Z+0.100000 ;1/16 end mill
|
||||
T3 P3 D0.201000 Z+1.273000 ;#7 tap drill
|
||||
T99999 P99999 Z+0.100000 ;big tool number
|
||||
@@ -0,0 +1,5 @@
|
||||
This config is "stepper" with the addition of ClassicLadder connections to some of the LinuxCNC IO.
|
||||
|
||||
The initial ladder program includes several possible estop arrangements and a timed lube coil. The lube ladder includes a sense run that watches lube level or lube pressure and warns of a lube condition failure.
|
||||
|
||||
This ladder integration with the HAL will allow you to expand the IO interface to a minimill with spindle and tool changer controls.
|
||||
@@ -0,0 +1,20 @@
|
||||
# first load realtime portion of classicladder, and create a 1mS thread
|
||||
loadrt classicladder_rt period=1000000
|
||||
|
||||
# hook functions to realtime thread
|
||||
addf classicladder.0.refresh classicladder.thread 1
|
||||
|
||||
# create some I/O signals
|
||||
|
||||
# connect I/O signals to classicladder
|
||||
net I0 => classicladder.0.in-00
|
||||
net I1 => classicladder.0.in-01
|
||||
net I2 => classicladder.0.in-02
|
||||
net Q0 <= classicladder.0.out-00
|
||||
net Q1 <= classicladder.0.out-01
|
||||
net Q2 <= classicladder.0.out-02
|
||||
|
||||
# set the input signals
|
||||
sets I0 0
|
||||
sets I1 0
|
||||
sets I2 0
|
||||
@@ -0,0 +1,167 @@
|
||||
_FILES_CLASSICLADDER
|
||||
_FILE-rung_1.csv
|
||||
#VER=2.0
|
||||
#LABEL=Rung 1
|
||||
#COMMENT=Stepper Estop Chain
|
||||
#PREVRUNG=0
|
||||
#NEXTRUNG=2
|
||||
0-0-50/0 , 1-0-50/0 , 9-0-50/0 , 9-0-50/1 , 9-0-0/0 , 9-0-0/0 , 9-0-60/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/0
|
||||
0-0-0/0 , 2-0-50/1 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-50/2 , 9-0-0/0 , 9-0-0/0 , 0-1-60/1
|
||||
0-0-50/0 , 1-0-50/0 , 2-0-50/1 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/1 , 9-0-0/0 , 0-1-60/1
|
||||
9-0-0/0 , 1-0-50/0 , 2-0-50/1 , 1-0-60/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 0-1-0/0
|
||||
0-0-60/1 , 0-0-0/0 , 0-0-0/0 , 1-1-50/2 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-60/6
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
_/FILE-rung_1.csv
|
||||
_FILE-symbols.csv
|
||||
#VER=1.0
|
||||
%I0,GUI-E,
|
||||
%I1,EXT-E,
|
||||
%I2,E-RESET,
|
||||
%I3,Lube_on,
|
||||
%I4,sensor,
|
||||
%I5,I5,
|
||||
%I6,I6,
|
||||
%I7,I7,
|
||||
%I8,I8,
|
||||
%I9, ,
|
||||
%Q0,EMC-E,
|
||||
%Q1,toggle,
|
||||
%Q2,Lube_low,
|
||||
%Q3,Q3,
|
||||
%Q4,Q4,
|
||||
%Q5,Q5,
|
||||
%Q6,Q6,
|
||||
%Q7,Q7,
|
||||
%Q8,Q8,
|
||||
%Q9,Q9,
|
||||
%T0,Time-on,Time lube pump is on
|
||||
%T1,Time-off,Time lube pump is off
|
||||
%T2,Time-warn,Time before low lube warning
|
||||
%B0,reset,reset off timer
|
||||
_/FILE-symbols.csv
|
||||
_FILE-rung_2.csv
|
||||
#VER=2.0
|
||||
#LABEL=
|
||||
#COMMENT=Intermittent Lube
|
||||
#PREVRUNG=1
|
||||
#NEXTRUNG=-1
|
||||
9-0-0/0 , 1-0-50/3 , 2-0-0/0 , 99-0-0/0 , 10-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 53-0-60/1
|
||||
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 99-1-0/0 , 99-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 52-0-60/1
|
||||
0-0-0/0 , 0-0-0/0 , 2-1-60/1 , 9-0-0/0 , 9-0-0/0 , 99-0-0/0 , 10-0-0/1 , 0-0-60/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 99-1-0/0 , 99-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 1-1-50/4 , 99-0-0/0 , 10-0-0/2 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-60/9
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 99-1-0/0 , 99-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/2
|
||||
_/FILE-rung_2.csv
|
||||
_FILE-modbusioconf.csv
|
||||
#VER=1.0
|
||||
_/FILE-modbusioconf.csv
|
||||
_FILE-com_params.txt
|
||||
MODBUS_MASTER_SERIAL_PORT=
|
||||
MODBUS_MASTER_SERIAL_SPEED=9600
|
||||
MODBUS_MASTER_SERIAL_DATABITS=8
|
||||
MODBUS_MASTER_SERIAL_STOPBITS=1
|
||||
MODBUS_MASTER_SERIAL_PARITY=0
|
||||
MODBUS_ELEMENT_OFFSET=0
|
||||
MODBUS_MASTER_SERIAL_USE_RTS_TO_SEND=0
|
||||
MODBUS_MASTER_TIME_INTER_FRAME=100
|
||||
MODBUS_MASTER_TIME_OUT_RECEIPT=500
|
||||
MODBUS_MASTER_TIME_AFTER_TRANSMIT=0
|
||||
MODBUS_DEBUG_LEVEL=0
|
||||
MODBUS_MAP_COIL_READ=0
|
||||
MODBUS_MAP_COIL_WRITE=0
|
||||
MODBUS_MAP_INPUT=0
|
||||
MODBUS_MAP_HOLDING=0
|
||||
MODBUS_MAP_REGISTER_READ=0
|
||||
MODBUS_MAP_REGISTER_WRITE=0
|
||||
_/FILE-com_params.txt
|
||||
_FILE-timers_iec.csv
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
1,0,0
|
||||
_/FILE-timers_iec.csv
|
||||
_FILE-timers.csv
|
||||
1,10
|
||||
1,20
|
||||
0,20
|
||||
2,1
|
||||
2,5
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
_/FILE-timers.csv
|
||||
_FILE-counters.csv
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
_/FILE-counters.csv
|
||||
_FILE-sections.csv
|
||||
#VER=1.0
|
||||
#NAME000=Prog1
|
||||
000,0,-1,1,2,0
|
||||
_/FILE-sections.csv
|
||||
_FILE-arithmetic_expressions.csv
|
||||
#VER=2.0
|
||||
_/FILE-arithmetic_expressions.csv
|
||||
_FILE-rung_0.csv
|
||||
#VER=2.0
|
||||
#LABEL=
|
||||
#COMMENT=
|
||||
#PREVRUNG=0
|
||||
#NEXTRUNG=1
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
|
||||
_/FILE-rung_0.csv
|
||||
_FILE-ioconf.csv
|
||||
#VER=1.0
|
||||
_/FILE-ioconf.csv
|
||||
_FILE-monostables.csv
|
||||
1,10
|
||||
1,20
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
1,0
|
||||
_/FILE-monostables.csv
|
||||
_FILE-sequential.csv
|
||||
#VER=1.0
|
||||
_/FILE-sequential.csv
|
||||
_FILE-general.txt
|
||||
PERIODIC_REFRESH=100
|
||||
SIZE_NBR_RUNGS=100
|
||||
SIZE_NBR_BITS=500
|
||||
SIZE_NBR_WORDS=100
|
||||
SIZE_NBR_TIMERS=10
|
||||
SIZE_NBR_MONOSTABLES=10
|
||||
SIZE_NBR_COUNTERS=10
|
||||
SIZE_NBR_TIMERS_IEC=10
|
||||
SIZE_NBR_PHYS_INPUTS=15
|
||||
SIZE_NBR_PHYS_OUTPUTS=25
|
||||
SIZE_NBR_ARITHM_EXPR=100
|
||||
SIZE_NBR_SECTIONS=10
|
||||
SIZE_NBR_SYMBOLS=100
|
||||
_/FILE-general.txt
|
||||
_/FILES_CLASSICLADDER
|
||||
@@ -0,0 +1,99 @@
|
||||
# HAL config file for using classic ladder
|
||||
# Loads the core_stepper.hal file first to set up motion and stepgen
|
||||
# This adds limits and home from limit to the motion module
|
||||
# adds the possibility of an external momentary or sustained NC estop button
|
||||
# includes intermittent lube pump and pressure or level sensing.
|
||||
# includes coolant and spindle forward, reverse
|
||||
|
||||
# from standard pinout config file for 3-axis steppers
|
||||
# using a parport for I/O
|
||||
|
||||
# load the parport driver
|
||||
loadrt hal_parport cfg="0x378"
|
||||
# next connect the parport functions to threads
|
||||
addf parport.0.read base-thread 1
|
||||
addf parport.0.write base-thread -1
|
||||
|
||||
# This configuration uses classicladder for machine logic
|
||||
# (load the realtime portion)
|
||||
# these classicladder parameters need to be optimized after ladder completion
|
||||
loadrt classicladder_rt numRungs=12 numBits=20 numWords=4 numTimers=5 numMonostables=2 numPhysInputs=10 numPhysOutputs=10 numArithmExpr=4 numSections=4
|
||||
# We kick ladder into a thread at the slower servo rate rather than base rate
|
||||
addf classicladder.0.refresh servo-thread 1
|
||||
|
||||
# invoke the user part of CL to silently load the program
|
||||
# later we will need to add the clp file mentioned below
|
||||
# to the ini file so that we do not need to hardcode it here.
|
||||
loadusr -w classicladder --nogui demo_step_cl.clp
|
||||
# load the GUI as well
|
||||
loadusr classicladder
|
||||
|
||||
# begin to connect physical pins to signals
|
||||
# this is EMC's standard motion pinouts
|
||||
net Xstep parport.0.pin-03-out
|
||||
net Xdir parport.0.pin-02-out
|
||||
net Ystep parport.0.pin-05-out
|
||||
net Ydir parport.0.pin-04-out
|
||||
net Zstep parport.0.pin-07-out
|
||||
net Zdir parport.0.pin-06-out
|
||||
|
||||
# three axis motion allows 6 other outputs on pins 8,9,1,14,16,17
|
||||
# five additional input pins are available 10,11,12,13,15
|
||||
# these are setup by the work they perform below
|
||||
|
||||
# estop signals
|
||||
# signal is the internal or gui estop command from EMC
|
||||
net user-enable-out iocontrol.0.user-enable-out classicladder.0.in-00
|
||||
# one-shot on timer when signal above goes high.
|
||||
net user-request-enable iocontrol.0.user-request-enable classicladder.0.in-02
|
||||
# this bit is an external estop button connected to parport pin 11 and ground
|
||||
net ext-estop parport.0.pin-10-in
|
||||
net ext-estop classicladder.0.in-01
|
||||
# This bit signal is command to estop from CL to EMC
|
||||
net emc-enable-in iocontrol.0.emc-enable-in classicladder.0.out-00
|
||||
|
||||
# lube signals
|
||||
# lube run command from emc to CL
|
||||
# for ease of reading we will make a new signal lube-run
|
||||
net lube-run classicladder.0.out-01
|
||||
net lube-run parport.0.pin-01-out
|
||||
|
||||
# The lube sense stuff runs from an external pin, through CL to iocontrol in
|
||||
# lube-up is the signal between the parport and cl
|
||||
net lube-up parport.0.pin-12-in
|
||||
net lube-up classicladder.0.in-04
|
||||
|
||||
# coolant signals
|
||||
# note that these do NOT represent proper IO signals from iocontrol
|
||||
# should separate command and status for production versions
|
||||
# and run these through CL to test conditions
|
||||
net flood iocontrol.0.coolant-flood parport.0.pin-08-out
|
||||
net mist iocontrol.0.coolant-mist parport.0.pin-09-out
|
||||
|
||||
# spindle signals
|
||||
# spindle status has not been resolved
|
||||
# a simple loop through is set here
|
||||
net spindle-forward spindle.0.forward parport.0.pin-16-out
|
||||
net spindle-reverse spindle.0.reverse parport.0.pin-17-out
|
||||
|
||||
# we will let loopbacks handle tool prepare and change commands
|
||||
# though we could index an external changer
|
||||
# create connections for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
|
||||
|
||||
# create a limit switch signal
|
||||
# read limit conditions from external normally open switches in parallel
|
||||
# this configuration allows the control to run but still test limit
|
||||
# for real use a normally closed series loop and reverse parport pin polarity
|
||||
# add all limits to a single parport pin
|
||||
# connect this signal to pin 10 on the parport
|
||||
net limit-reached parport.0.pin-10-in-not
|
||||
# connect this signal to all limit signals of relevant axes
|
||||
net limit-reached joint.0.neg-lim-sw-in
|
||||
net limit-reached joint.0.pos-lim-sw-in
|
||||
net limit-reached joint.1.neg-lim-sw-in
|
||||
net limit-reached joint.1.pos-lim-sw-in
|
||||
net limit-reached joint.2.neg-lim-sw-in
|
||||
#linksp limit-reached joint.2.pos-lim-sw-in
|
||||
|
||||
@@ -0,0 +1,181 @@
|
||||
# EMC controller parameters for generic controller. Make these what you need
|
||||
# for your system.
|
||||
# General note: Comments can either be preceded with a # or ; - either is
|
||||
# acceptable, although # is in keeping with most linux config files.
|
||||
# General section -------------------------------------------------------------
|
||||
|
||||
[EMC]
|
||||
# Version of this INI file
|
||||
VERSION = 1.1
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = LinuxCNC-DEMO-STEP-CL
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
# DEBUG = 0x00000001
|
||||
# DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
# Sections for display options ------------------------------------------------
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., xlinuxcnc
|
||||
# DISPLAY = axis
|
||||
DISPLAY = tklinuxcnc
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.200
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 2
|
||||
# Task controller section -----------------------------------------------------
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = demo_step_cl.var
|
||||
# Motion control section ------------------------------------------------------
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Base task period, in nanoseconds - this is the fastest thread in the machine
|
||||
BASE_PERIOD = 50000
|
||||
# Servo task period, in nanoseconds - will be rounded to an integer multiple
|
||||
# of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
# Hardware Abstraction Layer section --------------------------------------------------
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
# Part program interpreter section --------------------------------------------
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
#
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = core_stepper.hal
|
||||
HALFILE = demo_step_cl.hal
|
||||
#HALFILE = xylotex_pinout.hal
|
||||
# HALFILE = standard_pinout.hal
|
||||
# HALFILE = simulated_limits.hal
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
# Trajectory planner section --------------------------------------------------
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
# COORDINATES = X Y Z A B C
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.0167
|
||||
MAX_LINEAR_VELOCITY = 1.2
|
||||
DEFAULT_LINEAR_ACCELERATION = 15.0
|
||||
MAX_LINEAR_ACCELERATION = 20.0
|
||||
# Axes sections ---------------------------------------------------------------
|
||||
# First axis
|
||||
|
||||
[EMCIO]
|
||||
# tool table file
|
||||
TOOL_TABLE = demo_step_cl.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.2
|
||||
MAX_ACCELERATION = 20.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 1.2
|
||||
MAX_ACCELERATION = 20.0
|
||||
STEPGEN_MAXACCEL = 21.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 0.0
|
||||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
# Second axis
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.2
|
||||
MAX_ACCELERATION = 20.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 1.2
|
||||
MAX_ACCELERATION = 20.0
|
||||
STEPGEN_MAXACCEL = 21.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 0.0
|
||||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
# Third axis
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -2.0
|
||||
MAX_LIMIT = 4.0
|
||||
MAX_VELOCITY = 1.2
|
||||
MAX_ACCELERATION = 20.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 1.2
|
||||
MAX_ACCELERATION = 20.0
|
||||
STEPGEN_MAXACCEL = 21.0
|
||||
BACKLASH = 0.000
|
||||
SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -2.0
|
||||
MAX_LIMIT = 4.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 0.0
|
||||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
# section for main IO controller parameters -----------------------------------
|
||||
@@ -0,0 +1,4 @@
|
||||
T1 P1 D0.125000 Z+0.511000 ;1/8 end mill
|
||||
T2 P2 D0.062500 Z+0.100000 ;1/16 end mill
|
||||
T3 P3 D0.201000 Z+1.273000 ;#7 tap drill
|
||||
T99999 P99999 Z+0.100000 ;big tool number
|
||||
6
configs/by_interface/parport/etch-servo/README
Normal file
6
configs/by_interface/parport/etch-servo/README
Normal file
@@ -0,0 +1,6 @@
|
||||
Etch-servo drives two servo motors using a simple parallel-port-attached circuit. 'pwmgen' produces an enable waveform to turn the servo motors at a variable speed, and 'encoder' reads TTL-level quadrature inputs to close the loop.
|
||||
|
||||
The circuit uses an L298 dual full-bridge driver to control two servo motors.
|
||||
|
||||
More information on the circuit is available:
|
||||
http://emergent.unpy.net/projects/01142347802
|
||||
116
configs/by_interface/parport/etch-servo/etch.hal
Normal file
116
configs/by_interface/parport/etch-servo/etch.hal
Normal file
@@ -0,0 +1,116 @@
|
||||
# load realtime modules
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt hal_parport cfg="0x378"
|
||||
loadrt encoder num_chan=2
|
||||
loadrt pid num_chan=2
|
||||
loadrt pwmgen output_type=1,1
|
||||
loadrt ddt count=4
|
||||
|
||||
# define the order of execution for RT code
|
||||
addf parport.0.read base-thread
|
||||
addf encoder.update-counters base-thread
|
||||
addf pwmgen.make-pulses base-thread
|
||||
addf parport.0.write base-thread
|
||||
|
||||
addf encoder.capture-position servo-thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
addf pid.0.do-pid-calcs servo-thread
|
||||
addf pid.1.do-pid-calcs servo-thread
|
||||
addf pwmgen.update servo-thread
|
||||
addf ddt.0 servo-thread
|
||||
addf ddt.1 servo-thread
|
||||
addf ddt.2 servo-thread
|
||||
addf ddt.3 servo-thread
|
||||
|
||||
# hook stuff together
|
||||
|
||||
setp encoder.0.position-scale [JOINT_0]INPUT_SCALE
|
||||
setp encoder.1.position-scale [JOINT_1]INPUT_SCALE
|
||||
|
||||
net enc0A encoder.0.phase-A <= parport.0.pin-10-in
|
||||
net enc0B encoder.0.phase-B <= parport.0.pin-11-in
|
||||
net enc1A encoder.1.phase-A <= parport.0.pin-12-in
|
||||
net enc1B encoder.1.phase-B <= parport.0.pin-13-in
|
||||
|
||||
net Xpos-fb <= encoder.0.position
|
||||
net Ypos-fb <= encoder.1.position
|
||||
|
||||
|
||||
net Xpos-fb => pid.0.feedback
|
||||
net Ypos-fb => pid.1.feedback
|
||||
net Xpos-fb => joint.0.motor-pos-fb
|
||||
net Ypos-fb => joint.1.motor-pos-fb
|
||||
|
||||
net Xvel-cmd <= pid.0.output
|
||||
net Yvel-cmd <= pid.1.output
|
||||
|
||||
net Xvel-cmd => pwmgen.0.value
|
||||
net Yvel-cmd => pwmgen.1.value
|
||||
|
||||
net Xpwm pwmgen.0.pwm
|
||||
net Ypwm pwmgen.1.pwm
|
||||
|
||||
net Xdir <= pwmgen.0.dir
|
||||
net Ydir <= pwmgen.1.dir
|
||||
|
||||
net Xdir => parport.0.pin-02-out
|
||||
net Xdir => parport.0.pin-04-out
|
||||
setp parport.0.pin-04-out-invert TRUE
|
||||
net Xpwm => parport.0.pin-03-out
|
||||
|
||||
net Ydir => parport.0.pin-05-out
|
||||
net Ydir => parport.0.pin-07-out
|
||||
setp parport.0.pin-07-out-invert TRUE
|
||||
net Ypwm => parport.0.pin-06-out
|
||||
|
||||
setp pid.0.maxoutput 1.0
|
||||
setp pid.1.maxoutput 1.0
|
||||
|
||||
# the values below come from the ini
|
||||
setp pid.0.Pgain [JOINT_0]P
|
||||
setp pid.0.Igain [JOINT_0]I
|
||||
setp pid.0.Dgain [JOINT_0]D
|
||||
setp pid.0.bias [JOINT_0]BIAS
|
||||
setp pid.0.FF0 [JOINT_0]FF0
|
||||
setp pid.0.FF1 [JOINT_0]FF1
|
||||
setp pid.0.FF2 [JOINT_0]FF2
|
||||
# deadband should be just over 1 count
|
||||
setp pid.0.deadband [JOINT_0]DEADBAND
|
||||
|
||||
setp pid.1.Pgain [JOINT_1]P
|
||||
setp pid.1.Igain [JOINT_1]I
|
||||
setp pid.1.Dgain [JOINT_1]D
|
||||
setp pid.1.bias [JOINT_1]BIAS
|
||||
setp pid.1.FF0 [JOINT_1]FF0
|
||||
setp pid.1.FF1 [JOINT_1]FF1
|
||||
setp pid.1.FF2 [JOINT_1]FF2
|
||||
# deadband should be just over 1 count
|
||||
setp pid.1.deadband [JOINT_1]DEADBAND
|
||||
|
||||
net Xpos-cmd <= joint.0.motor-pos-cmd
|
||||
net Ypos-cmd <= joint.1.motor-pos-cmd
|
||||
net Xpos-cmd => pid.0.command
|
||||
net Ypos-cmd => pid.1.command
|
||||
net Xenable <= joint.0.amp-enable-out
|
||||
net Yenable <= joint.1.amp-enable-out
|
||||
net Xenable => pid.0.enable
|
||||
net Xenable => pwmgen.0.enable
|
||||
net Yenable => pid.1.enable
|
||||
net Yenable => pwmgen.1.enable
|
||||
|
||||
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
|
||||
|
||||
net Xpos-cmd => ddt.0.in
|
||||
net Xvel <= ddt.0.out
|
||||
net Xvel => ddt.1.in
|
||||
net Xacc <= ddt.1.out
|
||||
net Ypos-cmd => ddt.2.in
|
||||
net Yvel <= ddt.2.out
|
||||
net Yvel => ddt.3.in
|
||||
net Yacc <= ddt.3.out
|
||||
|
||||
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
|
||||
191
configs/by_interface/parport/etch-servo/etch.ini
Normal file
191
configs/by_interface/parport/etch-servo/etch.ini
Normal file
@@ -0,0 +1,191 @@
|
||||
# EMC controller parameters for generic controller. Make these what you need
|
||||
# for your system.
|
||||
# General note: Comments can either be preceded with a # or ; - either is
|
||||
# acceptable, although # is in keeping with most linux config files.
|
||||
# Settings with a + at the front of the comment are likely needed to get
|
||||
# changed by the user.
|
||||
# Settings with a - at the front are highly unneeded to be changed
|
||||
###############################################################################
|
||||
# General section
|
||||
###############################################################################
|
||||
|
||||
[EMC]
|
||||
#- Version of this INI file
|
||||
VERSION = 1.1
|
||||
#+ Name of machine, for use with display, etc.
|
||||
MACHINE = LinuxCNC-ETCH-SERVO
|
||||
#+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
DEBUG = 0
|
||||
# DEBUG = 0x00000007
|
||||
# DEBUG = 0x7FFFFFFF
|
||||
###############################################################################
|
||||
# Sections for display options
|
||||
###############################################################################
|
||||
|
||||
[DISPLAY]
|
||||
#+ Name of display program, e.g., axis
|
||||
DISPLAY = axis
|
||||
# DISPLAY = tklinuxcnc
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.200
|
||||
#- Path to help file
|
||||
HELP_FILE = doc/help.txt
|
||||
#- Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
#- Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
#+ Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 10
|
||||
#- Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
#- Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
# Editor to be used with Axis
|
||||
#EDITOR = geany
|
||||
# Turn off splash screen as it won't load without a Z axis
|
||||
OPEN_FILE = ""
|
||||
###############################################################################
|
||||
# Task controller section
|
||||
###############################################################################
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
#- File containing interpreter variables
|
||||
PARAMETER_FILE = etch.var
|
||||
###############################################################################
|
||||
# Motion control section
|
||||
###############################################################################
|
||||
|
||||
[EMCMOT]
|
||||
#- Name of the motion controller to use (only one exists for nontrivkins)
|
||||
EMCMOT = motmod
|
||||
#- Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
#+ Base task period, in nanosecs - this is the fastest thread in the machine
|
||||
BASE_PERIOD = 20000
|
||||
#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
###############################################################################
|
||||
# Hardware Abstraction Layer section
|
||||
###############################################################################
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
#- Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
###############################################################################
|
||||
# Part program interpreter section
|
||||
###############################################################################
|
||||
|
||||
[HAL]
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
#
|
||||
# list of hal config files to run through halcmd
|
||||
#+ files are executed in the order in which they appear
|
||||
HALFILE = etch.hal
|
||||
#- list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
###############################################################################
|
||||
# Trajectory planner section
|
||||
###############################################################################
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
#+ machine specific settings
|
||||
# COORDINATES = X Y Z A B C
|
||||
COORDINATES = X Y
|
||||
HOME = 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 1
|
||||
MAX_LINEAR_VELOCITY = 30
|
||||
DEFAULT_LINEAR_ACCELERATION = 15.0
|
||||
MAX_LINEAR_ACCELERATION = 20.0
|
||||
###############################################################################
|
||||
# Axes sections
|
||||
###############################################################################
|
||||
#+ First axis
|
||||
|
||||
[EMCIO]
|
||||
#- tool table file
|
||||
TOOL_TABLE = etch.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 2
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = 0.0
|
||||
MAX_LIMIT = 6.5
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 50
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 50
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 1700
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = 0.0
|
||||
MAX_LIMIT = 6.5
|
||||
FERROR = 0.2
|
||||
MIN_FERROR = 0.10
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 0.0
|
||||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
P = 150
|
||||
I = 100
|
||||
D = 0.1
|
||||
BIAS = 0.0
|
||||
FF0 = 0
|
||||
FF1 = 1
|
||||
FF2 = 0.0
|
||||
DEADBAND=.002
|
||||
#+ Second axis
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = 0
|
||||
MAX_LIMIT = 4.5
|
||||
MAX_VELOCITY = 3
|
||||
MAX_ACCELERATION = 50
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 3
|
||||
MAX_ACCELERATION = 50
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 1700
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = 0
|
||||
MAX_LIMIT = 4.5
|
||||
FERROR = 0.200
|
||||
MIN_FERROR = 0.100
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 0.0
|
||||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
P = 150
|
||||
I = 100
|
||||
D = 0.1
|
||||
BIAS = 0.0
|
||||
FF0 = 0
|
||||
FF1 = 1
|
||||
FF2 = 0.0
|
||||
DEADBAND=.002
|
||||
###############################################################################
|
||||
# section for main IO controller parameters
|
||||
###############################################################################
|
||||
4
configs/by_interface/parport/etch-servo/etch.tbl
Normal file
4
configs/by_interface/parport/etch-servo/etch.tbl
Normal file
@@ -0,0 +1,4 @@
|
||||
T1 P1 D0.125000 Z+0.511000 ;1/8 end mill
|
||||
T2 P2 D0.062500 Z+0.100000 ;1/16 end mill
|
||||
T3 P3 D0.201000 Z+1.273000 ;#7 tap drill
|
||||
T99999 P99999 Z+0.100000 ;big tool number
|
||||
10
configs/by_interface/parport/gantry/README
Normal file
10
configs/by_interface/parport/gantry/README
Normal file
@@ -0,0 +1,10 @@
|
||||
Stepper Gantry basic configurations.
|
||||
|
||||
It is very important for gantry machines to set initial home switch positions before first homing so they reach home switches at a very similar time. To remove any skewing on the gantry adjust the home offset of one joint. After homing the configuration will switch from joint mode to world mode.
|
||||
|
||||
gantry_joints.ini uses the same .hal file but uses kinstype=BOTH which requires independently homing each joint axis.
|
||||
|
||||
gantry.ini implements a dual Y motor gantry. This is the configuration to use after you verify the directions and speeds of the individual joints using gantry_joints.ini.
|
||||
|
||||
These configs use switches for min-home on the X,Y,Y2 axis and max-home for Z. Pay attention to the parallel input pin assignment for the switches.
|
||||
|
||||
107
configs/by_interface/parport/gantry/gantry.hal
Normal file
107
configs/by_interface/parport/gantry/gantry.hal
Normal file
@@ -0,0 +1,107 @@
|
||||
# Generated by stepconf 1.1 at Mon Feb 28 16:28:49 2022
|
||||
# If you make changes to this file, they will be
|
||||
# overwritten when you run stepconf again
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt hal_parport cfg="0 out"
|
||||
setp parport.0.reset-time 5000
|
||||
loadrt stepgen step_type=0,0,0,0
|
||||
|
||||
addf parport.0.read base-thread
|
||||
addf stepgen.make-pulses base-thread
|
||||
addf parport.0.write base-thread
|
||||
addf parport.0.reset 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
|
||||
net spindle-cmd-rpm <= spindle.0.speed-out
|
||||
net spindle-cmd-rpm-abs <= spindle.0.speed-out-abs
|
||||
net spindle-cmd-rps <= spindle.0.speed-out-rps
|
||||
net spindle-cmd-rps-abs <= spindle.0.speed-out-rps-abs
|
||||
net spindle-at-speed => spindle.0.at-speed
|
||||
|
||||
net xstep => parport.0.pin-02-out
|
||||
setp parport.0.pin-02-out-reset 1
|
||||
net xdir => parport.0.pin-03-out
|
||||
net ystep => parport.0.pin-04-out
|
||||
setp parport.0.pin-04-out-reset 1
|
||||
net ydir => parport.0.pin-05-out
|
||||
net zstep => parport.0.pin-06-out
|
||||
setp parport.0.pin-06-out-reset 1
|
||||
net zdir => parport.0.pin-07-out
|
||||
net y2step => parport.0.pin-08-out
|
||||
setp parport.0.pin-08-out-reset 1
|
||||
net y2dir => parport.0.pin-09-out
|
||||
|
||||
#
|
||||
# Very likely that you will have wired your limit/home switches differently.
|
||||
#
|
||||
net min-home-y2 <= parport.0.pin-10-in
|
||||
net max-home-z <= parport.0.pin-11-in
|
||||
net min-home-y <= parport.0.pin-12-in
|
||||
net min-home-x <= parport.0.pin-13-in
|
||||
|
||||
setp stepgen.0.position-scale [JOINT_0]SCALE
|
||||
setp stepgen.0.steplen 1
|
||||
setp stepgen.0.stepspace 0
|
||||
setp stepgen.0.dirhold 40000
|
||||
setp stepgen.0.dirsetup 40000
|
||||
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
|
||||
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
|
||||
net xstep <= stepgen.0.step
|
||||
net xdir <= stepgen.0.dir
|
||||
net xenable joint.0.amp-enable-out => stepgen.0.enable
|
||||
net min-home-x => joint.0.home-sw-in
|
||||
net min-home-x => joint.0.neg-lim-sw-in
|
||||
|
||||
setp stepgen.1.position-scale [JOINT_1]SCALE
|
||||
setp stepgen.1.steplen 1
|
||||
setp stepgen.1.stepspace 0
|
||||
setp stepgen.1.dirhold 40000
|
||||
setp stepgen.1.dirsetup 40000
|
||||
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
|
||||
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
|
||||
net ystep <= stepgen.1.step
|
||||
net ydir <= stepgen.1.dir
|
||||
net yenable joint.1.amp-enable-out => stepgen.1.enable
|
||||
net min-home-y => joint.1.home-sw-in
|
||||
net min-home-y => joint.1.neg-lim-sw-in
|
||||
|
||||
setp stepgen.2.position-scale [JOINT_2]SCALE
|
||||
setp stepgen.2.steplen 1
|
||||
setp stepgen.2.stepspace 0
|
||||
setp stepgen.2.dirhold 40000
|
||||
setp stepgen.2.dirsetup 40000
|
||||
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
|
||||
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
|
||||
net zstep <= stepgen.2.step
|
||||
net zdir <= stepgen.2.dir
|
||||
net zenable joint.2.amp-enable-out => stepgen.2.enable
|
||||
net max-home-z => joint.2.home-sw-in
|
||||
net max-home-z => joint.2.pos-lim-sw-in
|
||||
|
||||
setp stepgen.3.position-scale [JOINT_3]SCALE
|
||||
setp stepgen.3.steplen 1
|
||||
setp stepgen.3.stepspace 0
|
||||
setp stepgen.3.dirhold 40000
|
||||
setp stepgen.3.dirsetup 40000
|
||||
setp stepgen.3.maxaccel [JOINT_3]STEPGEN_MAXACCEL
|
||||
net y2pos-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd
|
||||
net y2pos-fb stepgen.3.position-fb => joint.3.motor-pos-fb
|
||||
net y2step <= stepgen.3.step
|
||||
net y2dir <= stepgen.3.dir
|
||||
net y2enable joint.3.amp-enable-out => stepgen.3.enable
|
||||
net min-home-y2 => joint.3.home-sw-in
|
||||
net min-home-y2 => joint.3.neg-lim-sw-in
|
||||
|
||||
net estop-out <= iocontrol.0.user-enable-out
|
||||
net estop-out => iocontrol.0.emc-enable-in
|
||||
|
||||
net tool-number <= iocontrol.0.tool-prep-number
|
||||
net tool-change-loopback iocontrol.0.tool-change => iocontrol.0.tool-changed
|
||||
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
161
configs/by_interface/parport/gantry/gantry.ini
Normal file
161
configs/by_interface/parport/gantry/gantry.ini
Normal file
@@ -0,0 +1,161 @@
|
||||
# This configuration was created using Stepconf wizarda as a XYZA configuration.
|
||||
# Modified to a XYZY gantry.
|
||||
|
||||
[EMC]
|
||||
MACHINE = gantry
|
||||
DEBUG = 0
|
||||
VERSION = 1.1
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = axis
|
||||
EDITOR = geany
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
ARCDIVISION = 64
|
||||
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
MIN_SPINDLE_OVERRIDE = 0.5
|
||||
MAX_SPINDLE_OVERRIDE = 1.2
|
||||
DEFAULT_LINEAR_VELOCITY = 15.00
|
||||
MIN_LINEAR_VELOCITY = 0
|
||||
MAX_LINEAR_VELOCITY = 30.00
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
PROGRAM_PREFIX = ../../nc_files
|
||||
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
|
||||
|
||||
[KINS]
|
||||
JOINTS = 4
|
||||
KINEMATICS = trivkins coordinates=XYZY
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
PROGRAM_EXTENSION = .nc,.tap G-Code File
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = linuxcnc.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 1.0
|
||||
BASE_PERIOD = 30000
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[HAL]
|
||||
HALUI = halui
|
||||
HALFILE = gantry.hal
|
||||
#HALFILE = custom.hal
|
||||
#POSTGUI_HALFILE = postgui_call_list.hal
|
||||
|
||||
[HALUI]
|
||||
# add halui MDI commands here (max 64)
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z Y
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 15.00
|
||||
MAX_LINEAR_VELOCITY = 30.00
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[AXIS_X]
|
||||
MAX_VELOCITY = 20.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
MIN_LIMIT = -0.001
|
||||
MAX_LIMIT = 700.0
|
||||
|
||||
[AXIS_Y]
|
||||
MAX_VELOCITY = 10.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
MIN_LIMIT = -1.0
|
||||
MAX_LIMIT = 1000.0
|
||||
|
||||
[AXIS_Z]
|
||||
MAX_VELOCITY = 20.0
|
||||
MAX_ACCELERATION = 150.0
|
||||
MIN_LIMIT = -0.0
|
||||
MAX_LIMIT = 160.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MIN_LIMIT = -3
|
||||
MAX_LIMIT = 700.0
|
||||
MAX_VELOCITY = 20.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
STEPGEN_MAXACCEL = 937.5
|
||||
SCALE = -400.0
|
||||
FERROR = 1
|
||||
MIN_FERROR = .25
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -1.0
|
||||
HOME_SEARCH_VEL = -15.0
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_FINAL_VEL = 15.0
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MIN_LIMIT = -1.0
|
||||
MAX_LIMIT = 1000.0
|
||||
MAX_VELOCITY = 10.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
STEPGEN_MAXACCEL = 937.5
|
||||
SCALE = -787.4015
|
||||
FERROR = 1
|
||||
MIN_FERROR = .25
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -1.0
|
||||
HOME_SEARCH_VEL = -10.00000
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_FINAL_VEL = 8.0
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = -2
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 20.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
STEPGEN_MAXACCEL = 937.5
|
||||
SCALE = 400.0
|
||||
FERROR = 1
|
||||
MIN_FERROR = .25
|
||||
MIN_LIMIT = -0.0
|
||||
MAX_LIMIT = 160.0
|
||||
HOME = 155.0
|
||||
HOME_OFFSET = 160.0
|
||||
HOME_SEARCH_VEL = 15.0
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_FINAL_VEL = 15.0
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_3]
|
||||
TYPE = LINEAR
|
||||
MIN_LIMIT = -1.0
|
||||
MAX_LIMIT = 1000.0
|
||||
MAX_VELOCITY = 10.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
STEPGEN_MAXACCEL = 937.5
|
||||
SCALE = -787.4015
|
||||
FERROR = 1
|
||||
MIN_FERROR = .25
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -1.0
|
||||
HOME_SEARCH_VEL = -10.00000
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_FINAL_VEL = 8.0
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = -2
|
||||
|
||||
159
configs/by_interface/parport/gantry/gantry_joints.ini
Normal file
159
configs/by_interface/parport/gantry/gantry_joints.ini
Normal file
@@ -0,0 +1,159 @@
|
||||
# This configuration was created using Stepconf wizarda as a XYZA configuration.
|
||||
# Modified to a XYZY gantry.
|
||||
|
||||
[EMC]
|
||||
MACHINE = gantry_joints
|
||||
DEBUG = 0
|
||||
VERSION = 1.1
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = axis
|
||||
EDITOR = geany
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
ARCDIVISION = 64
|
||||
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
MIN_SPINDLE_OVERRIDE = 0.5
|
||||
MAX_SPINDLE_OVERRIDE = 1.2
|
||||
DEFAULT_LINEAR_VELOCITY = 15.00
|
||||
MIN_LINEAR_VELOCITY = 0
|
||||
MAX_LINEAR_VELOCITY = 30.00
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
PROGRAM_PREFIX = /home/cncbox/linuxcnc/nc_files
|
||||
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
|
||||
|
||||
[KINS]
|
||||
JOINTS = 4
|
||||
KINEMATICS = trivkins coordinates=XYZY kinstype=BOTH
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
PROGRAM_EXTENSION = .nc,.tap G-Code File
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = linuxcnc.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 1.0
|
||||
BASE_PERIOD = 30000
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[HAL]
|
||||
HALUI = halui
|
||||
HALFILE = gantry.hal
|
||||
|
||||
[HALUI]
|
||||
# add halui MDI commands here (max 64)
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z Y
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 15.00
|
||||
MAX_LINEAR_VELOCITY = 30.00
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[AXIS_X]
|
||||
MAX_VELOCITY = 20.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
MIN_LIMIT = -0.001
|
||||
MAX_LIMIT = 700.0
|
||||
|
||||
[AXIS_Y]
|
||||
MAX_VELOCITY = 10.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
MIN_LIMIT = -1.0
|
||||
MAX_LIMIT = 1000.0
|
||||
|
||||
[AXIS_Z]
|
||||
MAX_VELOCITY = 20.0
|
||||
MAX_ACCELERATION = 150.0
|
||||
MIN_LIMIT = -0.0
|
||||
MAX_LIMIT = 160.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MIN_LIMIT = -3
|
||||
MAX_LIMIT = 700.0
|
||||
MAX_VELOCITY = 20.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
STEPGEN_MAXACCEL = 937.5
|
||||
SCALE = -400.0
|
||||
FERROR = 1
|
||||
MIN_FERROR = .25
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -1.0
|
||||
HOME_SEARCH_VEL = -15.0
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_FINAL_VEL = 15.0
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
#HOME_SEQUENCE = 1
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MIN_LIMIT = -1.0
|
||||
MAX_LIMIT = 1000.0
|
||||
MAX_VELOCITY = 10.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
STEPGEN_MAXACCEL = 937.5
|
||||
SCALE = -787.4015
|
||||
FERROR = 1
|
||||
MIN_FERROR = .25
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -1.0
|
||||
HOME_SEARCH_VEL = -10.00000
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_FINAL_VEL = 8.0
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
#HOME_SEQUENCE = -2
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 20.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
STEPGEN_MAXACCEL = 937.5
|
||||
SCALE = 400.0
|
||||
FERROR = 1
|
||||
MIN_FERROR = .25
|
||||
MIN_LIMIT = -0.0
|
||||
MAX_LIMIT = 160.0
|
||||
HOME = 155.0
|
||||
HOME_OFFSET = 160.0
|
||||
HOME_SEARCH_VEL = 15.0
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_FINAL_VEL = 15.0
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
#HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_3]
|
||||
TYPE = LINEAR
|
||||
MIN_LIMIT = -1.0
|
||||
MAX_LIMIT = 1000.0
|
||||
MAX_VELOCITY = 10.0
|
||||
MAX_ACCELERATION = 750.0
|
||||
STEPGEN_MAXACCEL = 937.5
|
||||
SCALE = -787.4015
|
||||
FERROR = 1
|
||||
MIN_FERROR = .25
|
||||
HOME = 0.0
|
||||
HOME_OFFSET = -1.0
|
||||
HOME_SEARCH_VEL = -10.00000
|
||||
HOME_LATCH_VEL = -2.0
|
||||
HOME_FINAL_VEL = 8.0
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
#HOME_SEQUENCE = -2
|
||||
|
||||
3
configs/by_interface/parport/gantry/postgui.hal
Normal file
3
configs/by_interface/parport/gantry/postgui.hal
Normal file
@@ -0,0 +1,3 @@
|
||||
# Include your customized HAL commands here
|
||||
# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
# Generated by stepconf at Wed Sep 26 07:50:40 2012
|
||||
# If you make changes to this file, they will be
|
||||
# overwritten when you run stepconf again
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt hal_parport cfg="0x378 out "
|
||||
setp parport.0.reset-time 1000
|
||||
loadrt stepgen step_type=0,0,0
|
||||
loadrt charge_pump
|
||||
net estop-out charge-pump.enable iocontrol.0.user-enable-out
|
||||
net charge-pump <= charge-pump.out
|
||||
|
||||
addf parport.0.read base-thread
|
||||
addf stepgen.make-pulses base-thread
|
||||
addf charge-pump base-thread
|
||||
addf parport.0.write base-thread
|
||||
addf parport.0.reset 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
|
||||
net spindle-cmd <= spindle.0.speed-out
|
||||
|
||||
net xstep => parport.0.pin-02-out
|
||||
setp parport.0.pin-02-out-reset 1
|
||||
net xdir => parport.0.pin-03-out
|
||||
net ystep => parport.0.pin-04-out
|
||||
setp parport.0.pin-04-out-reset 1
|
||||
net ydir => parport.0.pin-05-out
|
||||
net zstep => parport.0.pin-06-out
|
||||
setp parport.0.pin-06-out-reset 1
|
||||
net zdir => parport.0.pin-07-out
|
||||
net charge-pump => parport.0.pin-16-out
|
||||
|
||||
|
||||
|
||||
|
||||
setp stepgen.0.position-scale [JOINT_0]SCALE
|
||||
setp stepgen.0.steplen 1
|
||||
setp stepgen.0.stepspace 0
|
||||
setp stepgen.0.dirhold 15200
|
||||
setp stepgen.0.dirsetup 15200
|
||||
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
|
||||
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
|
||||
net xstep <= stepgen.0.step
|
||||
net xdir <= stepgen.0.dir
|
||||
net xenable joint.0.amp-enable-out => stepgen.0.enable
|
||||
|
||||
setp stepgen.1.position-scale [JOINT_1]SCALE
|
||||
setp stepgen.1.steplen 1
|
||||
setp stepgen.1.stepspace 0
|
||||
setp stepgen.1.dirhold 15200
|
||||
setp stepgen.1.dirsetup 15200
|
||||
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
|
||||
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
|
||||
net ystep <= stepgen.1.step
|
||||
net ydir <= stepgen.1.dir
|
||||
net yenable joint.1.amp-enable-out => stepgen.1.enable
|
||||
|
||||
setp stepgen.2.position-scale [JOINT_2]SCALE
|
||||
setp stepgen.2.steplen 1
|
||||
setp stepgen.2.stepspace 0
|
||||
setp stepgen.2.dirhold 15200
|
||||
setp stepgen.2.dirsetup 15200
|
||||
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
|
||||
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
|
||||
net zstep <= stepgen.2.step
|
||||
net zdir <= stepgen.2.dir
|
||||
net zenable joint.2.amp-enable-out => stepgen.2.enable
|
||||
|
||||
net estop-out <= iocontrol.0.user-enable-out
|
||||
net estop-out => iocontrol.0.emc-enable-in
|
||||
|
||||
loadusr -W hal_manualtoolchange
|
||||
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
|
||||
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
|
||||
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
|
||||
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
120
configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.ini
Normal file
120
configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.ini
Normal file
@@ -0,0 +1,120 @@
|
||||
# Generated by stepconf at Wed Sep 26 07:50:40 2012
|
||||
# If you make changes to this file, they will be
|
||||
# overwritten when you run stepconf again
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
MACHINE = Gecko_540B3
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = axis
|
||||
#EDITOR = geany
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = linuxcnc.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 1.0
|
||||
BASE_PERIOD = 23000
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
HALFILE = Gecko_540B3.hal
|
||||
HALFILE = custom.hal
|
||||
POSTGUI_HALFILE = custom_postgui.hal
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.10
|
||||
MAX_LINEAR_VELOCITY = 1.00
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 2.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 2.0
|
||||
STEPGEN_MAXACCEL = 2.5
|
||||
SCALE = 200000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
HOME_OFFSET = 0.0
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 1.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 1.0
|
||||
STEPGEN_MAXACCEL = 1.25
|
||||
SCALE = 200000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
HOME_OFFSET = 0.0
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 2.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 2.0
|
||||
STEPGEN_MAXACCEL = 2.5
|
||||
SCALE = 200000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
HOME_OFFSET = 0.0
|
||||
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" ?>
|
||||
<stepconf>
|
||||
<property name="ahomepos" type="int" value="0"/>
|
||||
<property name="ahomesw" type="int" value="0"/>
|
||||
<property name="ahomevel" type="float" value="0.0"/>
|
||||
<property name="alatchdir" type="int" value="0"/>
|
||||
<property name="aleadscrew" type="int" value="100"/>
|
||||
<property name="amaxacc" type="int" value="2"/>
|
||||
<property name="amaxlim" type="int" value="100"/>
|
||||
<property name="amaxvel" type="int" value="0"/>
|
||||
<property name="amicrostep" type="int" value="1"/>
|
||||
<property name="aminlim" type="int" value="-100"/>
|
||||
<property name="apulleyden" type="int" value="1"/>
|
||||
<property name="apulleynum" type="int" value="1"/>
|
||||
<property name="ascale" type="int" value="0"/>
|
||||
<property name="asteprev" type="int" value="200"/>
|
||||
<property name="axes" type="int" value="0"/>
|
||||
<property name="classicladder" type="bool" value="False"/>
|
||||
<property name="createshortcut" type="bool" value="False"/>
|
||||
<property name="createsymlink" type="bool" value="False"/>
|
||||
<property name="customhal" type="int" value="1"/>
|
||||
<property name="digitsin" type="float" value="15.0"/>
|
||||
<property name="digitsout" type="float" value="15.0"/>
|
||||
<property name="dirhold" type="float" value="200.0"/>
|
||||
<property name="dirsetup" type="float" value="200.0"/>
|
||||
<property name="drivertype" type="string" value="gecko540"/>
|
||||
<property name="floatsin" type="float" value="10.0"/>
|
||||
<property name="floatsout" type="float" value="10.0"/>
|
||||
<property name="halui" type="bool" value="False"/>
|
||||
<property name="ioaddr" type="string" value="0x378"/>
|
||||
<property name="ioaddr2" type="string" value="Enter Address"/>
|
||||
<property name="ioaddr3" type="string" value="Enter Address"/>
|
||||
<property name="ladderconnect" type="bool" value="True"/>
|
||||
<property name="ladderhaltype" type="int" value="0"/>
|
||||
<property name="laddername" type="string" value="custom.clp"/>
|
||||
<property name="latency" type="float" value="15000.0"/>
|
||||
<property name="machinename" type="string" value="Gecko_540B3"/>
|
||||
<property name="manualtoolchange" type="bool" value="True"/>
|
||||
<property name="md5sums" type="eval" value="[('/home/john/linuxcnc/configs/Gecko_540B3/README', '41d8b103383504a95edf5bba747eab2f'), ('/home/john/linuxcnc/configs/Gecko_540B3/Gecko_540B3.ini', 'ea0cbc019a82cd2b5822d1d06d8df34f'), ('/home/john/linuxcnc/configs/Gecko_540B3/Gecko_540B3.hal', 'f8e0198425bda5dad47783f56cedb946')]"/>
|
||||
<property name="modbus" type="bool" value="False"/>
|
||||
<property name="number_pports" type="int" value="1"/>
|
||||
<property name="period" type="int" value="25000"/>
|
||||
<property name="pin1" type="string" value="unused-output"/>
|
||||
<property name="pin10" type="string" value="unused-input"/>
|
||||
<property name="pin10inv" type="bool" value="False"/>
|
||||
<property name="pin11" type="string" value="unused-input"/>
|
||||
<property name="pin11inv" type="bool" value="False"/>
|
||||
<property name="pin12" type="string" value="unused-input"/>
|
||||
<property name="pin12inv" type="bool" value="False"/>
|
||||
<property name="pin13" type="string" value="unused-input"/>
|
||||
<property name="pin13inv" type="bool" value="False"/>
|
||||
<property name="pin14" type="string" value="unused-output"/>
|
||||
<property name="pin14inv" type="bool" value="False"/>
|
||||
<property name="pin15" type="string" value="unused-input"/>
|
||||
<property name="pin15inv" type="bool" value="False"/>
|
||||
<property name="pin16" type="string" value="charge-pump"/>
|
||||
<property name="pin16inv" type="bool" value="False"/>
|
||||
<property name="pin17" type="string" value="unused-output"/>
|
||||
<property name="pin17inv" type="bool" value="False"/>
|
||||
<property name="pin1inv" type="bool" value="False"/>
|
||||
<property name="pin2" type="string" value="xstep"/>
|
||||
<property name="pin2inv" type="bool" value="False"/>
|
||||
<property name="pin3" type="string" value="xdir"/>
|
||||
<property name="pin3inv" type="bool" value="False"/>
|
||||
<property name="pin4" type="string" value="ystep"/>
|
||||
<property name="pin4inv" type="bool" value="False"/>
|
||||
<property name="pin5" type="string" value="ydir"/>
|
||||
<property name="pin5inv" type="bool" value="False"/>
|
||||
<property name="pin6" type="string" value="zstep"/>
|
||||
<property name="pin6inv" type="bool" value="False"/>
|
||||
<property name="pin7" type="string" value="zdir"/>
|
||||
<property name="pin7inv" type="bool" value="False"/>
|
||||
<property name="pin8" type="string" value="unused-output"/>
|
||||
<property name="pin8inv" type="bool" value="False"/>
|
||||
<property name="pin9" type="string" value="unused-output"/>
|
||||
<property name="pin9inv" type="bool" value="False"/>
|
||||
<property name="pp2_direction" type="int" value="0"/>
|
||||
<property name="pp3_direction" type="int" value="0"/>
|
||||
<property name="pyvcp" type="bool" value="False"/>
|
||||
<property name="pyvcpconnect" type="bool" value="False"/>
|
||||
<property name="pyvcphaltype" type="int" value="0"/>
|
||||
<property name="pyvcpname" type="string" value="blank.xml"/>
|
||||
<property name="s32in" type="float" value="10.0"/>
|
||||
<property name="s32out" type="float" value="10.0"/>
|
||||
<property name="spindlecarrier" type="float" value="100.0"/>
|
||||
<property name="spindlecpr" type="float" value="100.0"/>
|
||||
<property name="spindlefiltergain" type="float" value="0.01"/>
|
||||
<property name="spindlenearscale" type="float" value="1.5"/>
|
||||
<property name="spindlepwm1" type="float" value="0.2"/>
|
||||
<property name="spindlepwm2" type="float" value="0.8"/>
|
||||
<property name="spindlespeed1" type="float" value="100.0"/>
|
||||
<property name="spindlespeed2" type="float" value="800.0"/>
|
||||
<property name="stepspace" type="float" value="2000.0"/>
|
||||
<property name="steptime" type="float" value="1000.0"/>
|
||||
<property name="tempexists" type="int" value="0"/>
|
||||
<property name="units" type="int" value="0"/>
|
||||
<property name="usespindleatspeed" type="bool" value="False"/>
|
||||
<property name="xhomepos" type="float" value="0.0"/>
|
||||
<property name="xhomesw" type="float" value="0.0"/>
|
||||
<property name="xhomevel" type="float" value="0.05"/>
|
||||
<property name="xlatchdir" type="int" value="0"/>
|
||||
<property name="xleadscrew" type="float" value="100.0"/>
|
||||
<property name="xmaxacc" type="float" value="2.0"/>
|
||||
<property name="xmaxlim" type="float" value="100.0"/>
|
||||
<property name="xmaxvel" type="float" value="1.0"/>
|
||||
<property name="xmicrostep" type="float" value="10.0"/>
|
||||
<property name="xminlim" type="float" value="-100.0"/>
|
||||
<property name="xpulleyden" type="float" value="1.0"/>
|
||||
<property name="xpulleynum" type="float" value="1.0"/>
|
||||
<property name="xscale" type="float" value="200000.0"/>
|
||||
<property name="xsteprev" type="float" value="200.0"/>
|
||||
<property name="yhomepos" type="float" value="0.0"/>
|
||||
<property name="yhomesw" type="float" value="0.0"/>
|
||||
<property name="yhomevel" type="float" value="0.05"/>
|
||||
<property name="ylatchdir" type="int" value="0"/>
|
||||
<property name="yleadscrew" type="float" value="100.0"/>
|
||||
<property name="ymaxacc" type="float" value="1.0"/>
|
||||
<property name="ymaxlim" type="float" value="100.0"/>
|
||||
<property name="ymaxvel" type="float" value="1.0"/>
|
||||
<property name="ymicrostep" type="float" value="10.0"/>
|
||||
<property name="yminlim" type="float" value="-100.0"/>
|
||||
<property name="ypulleyden" type="float" value="1.0"/>
|
||||
<property name="ypulleynum" type="float" value="1.0"/>
|
||||
<property name="yscale" type="float" value="200000.0"/>
|
||||
<property name="ysteprev" type="float" value="200.0"/>
|
||||
<property name="zhomepos" type="float" value="0.0"/>
|
||||
<property name="zhomesw" type="float" value="0.0"/>
|
||||
<property name="zhomevel" type="float" value="0.05"/>
|
||||
<property name="zlatchdir" type="int" value="0"/>
|
||||
<property name="zleadscrew" type="float" value="100.0"/>
|
||||
<property name="zmaxacc" type="float" value="2.0"/>
|
||||
<property name="zmaxlim" type="float" value="100.0"/>
|
||||
<property name="zmaxvel" type="float" value="1.0"/>
|
||||
<property name="zmicrostep" type="float" value="10.0"/>
|
||||
<property name="zminlim" type="float" value="-100.0"/>
|
||||
<property name="zpulleyden" type="float" value="1.0"/>
|
||||
<property name="zpulleynum" type="float" value="1.0"/>
|
||||
<property name="zscale" type="float" value="200000.0"/>
|
||||
<property name="zsteprev" type="float" value="200.0"/>
|
||||
</stepconf>
|
||||
12
configs/by_interface/parport/gecko/Gecko_540B3/README
Normal file
12
configs/by_interface/parport/gecko/Gecko_540B3/README
Normal file
@@ -0,0 +1,12 @@
|
||||
Gecko_540B3 configuration for a 3 axis machine with X Y Z axes.
|
||||
|
||||
To use the charge pump on a G540 your base period must be set to 50,000 or lower. Otherwise disable the charge pump feature.
|
||||
|
||||
The Stepconf Wizard XML file is included so you can open it up and customize the configuration to suit your machine. After installing this configuration move the Gecko_540B3.stepconf file to the configs directory, then run the Stepconf Wizard and select Modify a configuration already created with this program.
|
||||
|
||||
Run the latency test to determine your max jitter and enter that in the Stepconf Wizard.
|
||||
|
||||
Set the axis limits, gearing for each axis.
|
||||
|
||||
Customize as needed to suit your machine.
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Include your customized HAL commands here
|
||||
# This file will not be overwritten when you run stepconf again
|
||||
@@ -0,0 +1,3 @@
|
||||
# Include your customized HAL commands here
|
||||
# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts
|
||||
|
||||
4
configs/by_interface/parport/gecko/Gecko_540B3/tool.tbl
Normal file
4
configs/by_interface/parport/gecko/Gecko_540B3/tool.tbl
Normal file
@@ -0,0 +1,4 @@
|
||||
T1 P1 D0.125000 Z+0.511000 ;1/8 end mill
|
||||
T2 P2 D0.062500 Z+0.100000 ;1/16 end mill
|
||||
T3 P3 D0.201000 Z+1.273000 ;#7 tap drill
|
||||
T99999 P99999 Z+0.100000 ;big tool number
|
||||
@@ -0,0 +1,85 @@
|
||||
# Generated by stepconf at Wed Sep 26 07:51:20 2012
|
||||
# If you make changes to this file, they will be
|
||||
# overwritten when you run stepconf again
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt hal_parport cfg="0x378 out "
|
||||
setp parport.0.reset-time 1000
|
||||
loadrt stepgen step_type=0,0,0
|
||||
loadrt charge_pump
|
||||
net estop-out charge-pump.enable iocontrol.0.user-enable-out
|
||||
net charge-pump <= charge-pump.out
|
||||
|
||||
addf parport.0.read base-thread
|
||||
addf stepgen.make-pulses base-thread
|
||||
addf charge-pump base-thread
|
||||
addf parport.0.write base-thread
|
||||
addf parport.0.reset 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
|
||||
net spindle-cmd <= spindle.0.speed-out
|
||||
|
||||
net xstep => parport.0.pin-02-out
|
||||
setp parport.0.pin-02-out-reset 1
|
||||
net xdir => parport.0.pin-03-out
|
||||
net ystep => parport.0.pin-04-out
|
||||
setp parport.0.pin-04-out-reset 1
|
||||
net ydir => parport.0.pin-05-out
|
||||
net zstep => parport.0.pin-06-out
|
||||
setp parport.0.pin-06-out-reset 1
|
||||
net zdir => parport.0.pin-07-out
|
||||
net astep => parport.0.pin-08-out
|
||||
setp parport.0.pin-08-out-reset 1
|
||||
net adir => parport.0.pin-09-out
|
||||
net charge-pump => parport.0.pin-16-out
|
||||
|
||||
|
||||
|
||||
|
||||
setp stepgen.0.position-scale [JOINT_0]SCALE
|
||||
setp stepgen.0.steplen 1
|
||||
setp stepgen.0.stepspace 0
|
||||
setp stepgen.0.dirhold 15200
|
||||
setp stepgen.0.dirsetup 15200
|
||||
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
|
||||
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
|
||||
net xstep <= stepgen.0.step
|
||||
net xdir <= stepgen.0.dir
|
||||
net xenable joint.0.amp-enable-out => stepgen.0.enable
|
||||
|
||||
setp stepgen.1.position-scale [JOINT_1]SCALE
|
||||
setp stepgen.1.steplen 1
|
||||
setp stepgen.1.stepspace 0
|
||||
setp stepgen.1.dirhold 15200
|
||||
setp stepgen.1.dirsetup 15200
|
||||
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
|
||||
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
|
||||
net ystep <= stepgen.1.step
|
||||
net ydir <= stepgen.1.dir
|
||||
net yenable joint.1.amp-enable-out => stepgen.1.enable
|
||||
|
||||
setp stepgen.2.position-scale [JOINT_2]SCALE
|
||||
setp stepgen.2.steplen 1
|
||||
setp stepgen.2.stepspace 0
|
||||
setp stepgen.2.dirhold 15200
|
||||
setp stepgen.2.dirsetup 15200
|
||||
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
|
||||
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
|
||||
net zstep <= stepgen.2.step
|
||||
net zdir <= stepgen.2.dir
|
||||
net zenable joint.2.amp-enable-out => stepgen.2.enable
|
||||
|
||||
net estop-out <= iocontrol.0.user-enable-out
|
||||
net estop-out => iocontrol.0.emc-enable-in
|
||||
|
||||
loadusr -W hal_manualtoolchange
|
||||
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
|
||||
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
|
||||
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
|
||||
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
120
configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.ini
Normal file
120
configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.ini
Normal file
@@ -0,0 +1,120 @@
|
||||
# Generated by stepconf at Wed Sep 26 07:51:20 2012
|
||||
# If you make changes to this file, they will be
|
||||
# overwritten when you run stepconf again
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
MACHINE = Gecko_540B4
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = axis
|
||||
#EDITOR = geany
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = linuxcnc.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 1.0
|
||||
BASE_PERIOD = 23000
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
HALFILE = Gecko_540B4.hal
|
||||
HALFILE = custom.hal
|
||||
POSTGUI_HALFILE = custom_postgui.hal
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.10
|
||||
MAX_LINEAR_VELOCITY = 1.00
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 2.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 2.0
|
||||
STEPGEN_MAXACCEL = 2.5
|
||||
SCALE = 200000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
HOME_OFFSET = 0.0
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 1.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 1.0
|
||||
STEPGEN_MAXACCEL = 1.25
|
||||
SCALE = 200000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
HOME_OFFSET = 0.0
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 2.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 0.20652173913
|
||||
MAX_ACCELERATION = 2.0
|
||||
STEPGEN_MAXACCEL = 2.5
|
||||
SCALE = 200000.0
|
||||
FERROR = 0.05
|
||||
MIN_FERROR = 0.01
|
||||
MIN_LIMIT = -100.0
|
||||
MAX_LIMIT = 100.0
|
||||
HOME_OFFSET = 0.0
|
||||
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" ?>
|
||||
<stepconf>
|
||||
<property name="ahomepos" type="int" value="0"/>
|
||||
<property name="ahomesw" type="int" value="0"/>
|
||||
<property name="ahomevel" type="float" value="0.0"/>
|
||||
<property name="alatchdir" type="int" value="0"/>
|
||||
<property name="aleadscrew" type="int" value="100"/>
|
||||
<property name="amaxacc" type="int" value="2"/>
|
||||
<property name="amaxlim" type="int" value="100"/>
|
||||
<property name="amaxvel" type="int" value="0"/>
|
||||
<property name="amicrostep" type="int" value="1"/>
|
||||
<property name="aminlim" type="int" value="-100"/>
|
||||
<property name="apulleyden" type="int" value="1"/>
|
||||
<property name="apulleynum" type="int" value="1"/>
|
||||
<property name="ascale" type="int" value="0"/>
|
||||
<property name="asteprev" type="int" value="200"/>
|
||||
<property name="axes" type="int" value="0"/>
|
||||
<property name="classicladder" type="bool" value="False"/>
|
||||
<property name="createshortcut" type="bool" value="False"/>
|
||||
<property name="createsymlink" type="bool" value="False"/>
|
||||
<property name="customhal" type="int" value="1"/>
|
||||
<property name="digitsin" type="float" value="15.0"/>
|
||||
<property name="digitsout" type="float" value="15.0"/>
|
||||
<property name="dirhold" type="float" value="200.0"/>
|
||||
<property name="dirsetup" type="float" value="200.0"/>
|
||||
<property name="drivertype" type="string" value="gecko540"/>
|
||||
<property name="floatsin" type="float" value="10.0"/>
|
||||
<property name="floatsout" type="float" value="10.0"/>
|
||||
<property name="halui" type="bool" value="False"/>
|
||||
<property name="ioaddr" type="string" value="0x378"/>
|
||||
<property name="ioaddr2" type="string" value="Enter Address"/>
|
||||
<property name="ioaddr3" type="string" value="Enter Address"/>
|
||||
<property name="ladderconnect" type="bool" value="True"/>
|
||||
<property name="ladderhaltype" type="int" value="0"/>
|
||||
<property name="laddername" type="string" value="custom.clp"/>
|
||||
<property name="latency" type="float" value="15000.0"/>
|
||||
<property name="machinename" type="string" value="Gecko_540B4"/>
|
||||
<property name="manualtoolchange" type="bool" value="True"/>
|
||||
<property name="md5sums" type="eval" value="[('/home/john/linuxcnc/configs/Gecko_540B4/README', 'd6795c1e5c02e4d01df374bed0ecb468'), ('/home/john/linuxcnc/configs/Gecko_540B4/Gecko_540B4.ini', 'afbe6ca64d782a9c579a7e28220e24b2'), ('/home/john/linuxcnc/configs/Gecko_540B4/Gecko_540B4.hal', '0b77650d27113f38df9ab36c05e6f2f5')]"/>
|
||||
<property name="modbus" type="bool" value="False"/>
|
||||
<property name="number_pports" type="int" value="1"/>
|
||||
<property name="period" type="int" value="25000"/>
|
||||
<property name="pin1" type="string" value="unused-output"/>
|
||||
<property name="pin10" type="string" value="unused-input"/>
|
||||
<property name="pin10inv" type="bool" value="False"/>
|
||||
<property name="pin11" type="string" value="unused-input"/>
|
||||
<property name="pin11inv" type="bool" value="False"/>
|
||||
<property name="pin12" type="string" value="unused-input"/>
|
||||
<property name="pin12inv" type="bool" value="False"/>
|
||||
<property name="pin13" type="string" value="unused-input"/>
|
||||
<property name="pin13inv" type="bool" value="False"/>
|
||||
<property name="pin14" type="string" value="unused-output"/>
|
||||
<property name="pin14inv" type="bool" value="False"/>
|
||||
<property name="pin15" type="string" value="unused-input"/>
|
||||
<property name="pin15inv" type="bool" value="False"/>
|
||||
<property name="pin16" type="string" value="charge-pump"/>
|
||||
<property name="pin16inv" type="bool" value="False"/>
|
||||
<property name="pin17" type="string" value="unused-output"/>
|
||||
<property name="pin17inv" type="bool" value="False"/>
|
||||
<property name="pin1inv" type="bool" value="False"/>
|
||||
<property name="pin2" type="string" value="xstep"/>
|
||||
<property name="pin2inv" type="bool" value="False"/>
|
||||
<property name="pin3" type="string" value="xdir"/>
|
||||
<property name="pin3inv" type="bool" value="False"/>
|
||||
<property name="pin4" type="string" value="ystep"/>
|
||||
<property name="pin4inv" type="bool" value="False"/>
|
||||
<property name="pin5" type="string" value="ydir"/>
|
||||
<property name="pin5inv" type="bool" value="False"/>
|
||||
<property name="pin6" type="string" value="zstep"/>
|
||||
<property name="pin6inv" type="bool" value="False"/>
|
||||
<property name="pin7" type="string" value="zdir"/>
|
||||
<property name="pin7inv" type="bool" value="False"/>
|
||||
<property name="pin8" type="string" value="astep"/>
|
||||
<property name="pin8inv" type="bool" value="False"/>
|
||||
<property name="pin9" type="string" value="adir"/>
|
||||
<property name="pin9inv" type="bool" value="False"/>
|
||||
<property name="pp2_direction" type="int" value="0"/>
|
||||
<property name="pp3_direction" type="int" value="0"/>
|
||||
<property name="pyvcp" type="bool" value="False"/>
|
||||
<property name="pyvcpconnect" type="bool" value="False"/>
|
||||
<property name="pyvcphaltype" type="int" value="0"/>
|
||||
<property name="pyvcpname" type="string" value="blank.xml"/>
|
||||
<property name="s32in" type="float" value="10.0"/>
|
||||
<property name="s32out" type="float" value="10.0"/>
|
||||
<property name="spindlecarrier" type="float" value="100.0"/>
|
||||
<property name="spindlecpr" type="float" value="100.0"/>
|
||||
<property name="spindlefiltergain" type="float" value="0.01"/>
|
||||
<property name="spindlenearscale" type="float" value="1.5"/>
|
||||
<property name="spindlepwm1" type="float" value="0.2"/>
|
||||
<property name="spindlepwm2" type="float" value="0.8"/>
|
||||
<property name="spindlespeed1" type="float" value="100.0"/>
|
||||
<property name="spindlespeed2" type="float" value="800.0"/>
|
||||
<property name="stepspace" type="float" value="2000.0"/>
|
||||
<property name="steptime" type="float" value="1000.0"/>
|
||||
<property name="tempexists" type="int" value="0"/>
|
||||
<property name="units" type="int" value="0"/>
|
||||
<property name="usespindleatspeed" type="bool" value="False"/>
|
||||
<property name="xhomepos" type="float" value="0.0"/>
|
||||
<property name="xhomesw" type="float" value="0.0"/>
|
||||
<property name="xhomevel" type="float" value="0.05"/>
|
||||
<property name="xlatchdir" type="int" value="0"/>
|
||||
<property name="xleadscrew" type="float" value="100.0"/>
|
||||
<property name="xmaxacc" type="float" value="2.0"/>
|
||||
<property name="xmaxlim" type="float" value="100.0"/>
|
||||
<property name="xmaxvel" type="float" value="1.0"/>
|
||||
<property name="xmicrostep" type="float" value="10.0"/>
|
||||
<property name="xminlim" type="float" value="-100.0"/>
|
||||
<property name="xpulleyden" type="float" value="1.0"/>
|
||||
<property name="xpulleynum" type="float" value="1.0"/>
|
||||
<property name="xscale" type="float" value="200000.0"/>
|
||||
<property name="xsteprev" type="float" value="200.0"/>
|
||||
<property name="yhomepos" type="float" value="0.0"/>
|
||||
<property name="yhomesw" type="float" value="0.0"/>
|
||||
<property name="yhomevel" type="float" value="0.05"/>
|
||||
<property name="ylatchdir" type="int" value="0"/>
|
||||
<property name="yleadscrew" type="float" value="100.0"/>
|
||||
<property name="ymaxacc" type="float" value="1.0"/>
|
||||
<property name="ymaxlim" type="float" value="100.0"/>
|
||||
<property name="ymaxvel" type="float" value="1.0"/>
|
||||
<property name="ymicrostep" type="float" value="10.0"/>
|
||||
<property name="yminlim" type="float" value="-100.0"/>
|
||||
<property name="ypulleyden" type="float" value="1.0"/>
|
||||
<property name="ypulleynum" type="float" value="1.0"/>
|
||||
<property name="yscale" type="float" value="200000.0"/>
|
||||
<property name="ysteprev" type="float" value="200.0"/>
|
||||
<property name="zhomepos" type="float" value="0.0"/>
|
||||
<property name="zhomesw" type="float" value="0.0"/>
|
||||
<property name="zhomevel" type="float" value="0.05"/>
|
||||
<property name="zlatchdir" type="int" value="0"/>
|
||||
<property name="zleadscrew" type="float" value="100.0"/>
|
||||
<property name="zmaxacc" type="float" value="2.0"/>
|
||||
<property name="zmaxlim" type="float" value="100.0"/>
|
||||
<property name="zmaxvel" type="float" value="1.0"/>
|
||||
<property name="zmicrostep" type="float" value="10.0"/>
|
||||
<property name="zminlim" type="float" value="-100.0"/>
|
||||
<property name="zpulleyden" type="float" value="1.0"/>
|
||||
<property name="zpulleynum" type="float" value="1.0"/>
|
||||
<property name="zscale" type="float" value="200000.0"/>
|
||||
<property name="zsteprev" type="float" value="200.0"/>
|
||||
</stepconf>
|
||||
13
configs/by_interface/parport/gecko/Gecko_540B4/README
Normal file
13
configs/by_interface/parport/gecko/Gecko_540B4/README
Normal file
@@ -0,0 +1,13 @@
|
||||
Gecko_540B4 configuration for a 4 axis machine with X Y Z A axes.
|
||||
|
||||
To use the charge pump on a G540 your base period must be set to 50,000 or lower. Otherwise disable the charge pump feature.
|
||||
|
||||
The Stepconf Wizard XML file is included so you can open it up and customize the configuration to suit your machine. After installing this configuration move the Gecko_540B4.stepconf file to the configs directory, then run the Stepconf Wizard and select Modify a configuration already created with this program.
|
||||
|
||||
Run the latency test to determine your max jitter and enter that in the Stepconf Wizard.
|
||||
|
||||
Set the axis limits, gearing for each axis.
|
||||
|
||||
Customize as needed to suit your machine.
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user