This commit is contained in:
Thaddeus-Maximus
2026-04-03 15:58:58 -05:00
commit f3953d66ae
1516 changed files with 586639 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
{
"permissions": {
"allow": [
"Bash(dir /s \"L:\\\\configs\")",
"Bash(dir:*)",
"WebFetch(domain:github.com)"
]
}
}

35
configs/lagun/autosave.halscope Executable file
View File

@@ -0,0 +1,35 @@
THREAD servo-thread
MAXCHAN 16
HMULT 1
HZOOM 3
HPOS 4.873061e-01
CHAN 3
PIN pid.x.command
VSCALE -1
VPOS 0.627706
VAC 0.000000e+00
CHOFF
CHAN 4
PIN pid.x.feedback
VSCALE -1
VPOS 0.629149
VAC 0.000000e+00
CHOFF
CHAN 5
PIN pid.x.error
VSCALE -8
VPOS 0.456633
VAC 0.000000e+00
CHOFF
CHAN 2
PIN joint.0.motor-pos-fb
VSCALE 0
VPOS 0.353535
VOFF 0.000000e+00
CHAN 1
PIN pid.xl.error
VSCALE 0
VPOS 0.685426
VOFF 0.000000e+00
TMODE 0
RMODE 0

2
configs/lagun/custom.hal Executable file
View File

@@ -0,0 +1,2 @@
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again

2
configs/lagun/custom_gvcp.hal Executable file
View File

@@ -0,0 +1,2 @@
# Include your custom_gvcp HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_postgui HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,22 @@
# Halshow settings
# This file is generated automatically.
wm geometry . 700x475+628+261
placeFrames 0.3
set ::ratio 0.3
set ::old_w_leftf 160
set ::watchlist {
pin+axis.x.jog-scale
pin+axis.x.pos-cmd
pin+axis.x.teleop-pos-cmd
pin+axis.x.kb-jog-active
pin+axis.x.eoffset
pin+axis.x.jog-counts
pin+axisui.jog.x
}
set ::workmode showhal
set ::watchInterval 100
set ::col1_width 100
set ::ffmts
set ::ifmts
set ::alwaysOnTop 0
set ::autoSaveWatchlist 1

398
configs/lagun/lagun.hal Executable file
View File

@@ -0,0 +1,398 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS base_thread_fp=1
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=6"
loadrt mux16 names=jogincr,foincr,mvoincr,soincr
loadrt mux2 count=1
loadrt sum2 count=3
loadrt logic count=1 personality=0x0102
addf logic.0 servo-thread
addf mux2.0 servo-thread
loadrt weighted_sum wsum_sizes=8 #wsum_sizes=[128,64,32,16,8,4,2,1] # default should do conversion??
addf process_wsums servo-thread
addf sum2.0 servo-thread
addf sum2.1 servo-thread
addf sum2.2 servo-thread
addf jogincr servo-thread
addf foincr servo-thread
addf mvoincr servo-thread
addf soincr servo-thread
setp hm2_5i24.0.pwmgen.pwm_frequency 15500
setp hm2_5i24.0.pwmgen.pdm_frequency 15500
setp hm2_5i24.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.s,pid.xl,pid.yl,pid.zl
addf hm2_5i24.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.xl.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.yl.do-pid-calcs servo-thread
addf pid.zl.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i24.0.write servo-thread
# relay outputs
setp hm2_5i24.0.gpio.041.is_output true
setp hm2_5i24.0.gpio.044.is_output true
setp hm2_5i24.0.gpio.046.is_output true
setp hm2_5i24.0.gpio.041.invert_output true
setp hm2_5i24.0.gpio.044.invert_output true
setp hm2_5i24.0.gpio.046.invert_output true
# some inputs
setp hm2_5i24.0.gpio.027.is_output false
setp hm2_5i24.0.gpio.028.is_output false
setp hm2_5i24.0.gpio.029.is_output false # ESTOP
setp hm2_5i24.0.gpio.030.is_output false # START
setp hm2_5i24.0.gpio.031.is_output false # STOP
#net machine_estop_out <= hm2_5i24.0.gpio.029.in_not
#net machine_estop_out => halui.machine.on
# This stuff should work but it seems to be shutting off the machine.
# net btn-estop-out hm2_5i24.0.gpio.029.in_not => halui.machine.on
# net btn-estop-in hm2_5i24.0.gpio.029.in => halui.machine.off
# net btn-pause hm2_5i24.0.gpio.031.in_not => halui.program.pause
# net btn-start hm2_5i24.0.gpio.030.in_not => halui.program.run
# net btn-start hm2_5i24.0.gpio.030.in_not => halui.program.resume
# first ADC
#setp hm2_5i24.0.gpio.032.is_output false
#setp hm2_5i24.0.gpio.033.is_output false
#setp hm2_5i24.0.gpio.034.is_output false
#setp hm2_5i24.0.gpio.035.is_output false
#setp hm2_5i24.0.gpio.036.is_output false
#setp hm2_5i24.0.gpio.037.is_output false
#setp hm2_5i24.0.gpio.038.is_output false
#setp hm2_5i24.0.gpio.039.is_output false
# second ADC
#setp hm2_5i24.0.gpio.040.is_output false
#setp hm2_5i24.0.gpio.041.is_output false
#setp hm2_5i24.0.gpio.042.is_output false
#setp hm2_5i24.0.gpio.043.is_output false
#setp hm2_5i24.0.gpio.044.is_output false
#setp hm2_5i24.0.gpio.045.is_output false
#setp hm2_5i24.0.gpio.046.is_output false
#setp hm2_5i24.0.gpio.047.is_output false
#net hm2_5i24.0.gpio.032 <= wsum.0.bit.0.in
#net hm2_5i24.0.gpio.033 <= wsum.0.bit.1.in
#net hm2_5i24.0.gpio.034 <= wsum.0.bit.2.in
#net hm2_5i24.0.gpio.035 <= wsum.0.bit.3.in
#net hm2_5i24.0.gpio.036 <= wsum.0.bit.4.in
#net hm2_5i24.0.gpio.037 <= wsum.0.bit.5.in
#net hm2_5i24.0.gpio.038 <= wsum.0.bit.6.in
#net hm2_5i24.0.gpio.039 <= wsum.0.bit.7.in
# ******************
# AXIS X JOINT 0
# ******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain 0
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
net x-enable => pid.x.enable
net x-pos-mtr => pid.x.feedback
net x-output-mtr <= pid.x.output
setp pid.xl.Pgain [JOINT_0]P_LIN
setp pid.xl.Igain [JOINT_0]I_LIN
setp pid.xl.Dgain [JOINT_0]D_LIN
setp pid.xl.bias 0
setp pid.xl.FF0 0
setp pid.xl.FF1 0
setp pid.xl.FF2 0
setp pid.xl.deadband [JOINT_0]DEADBAND
setp pid.xl.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.xl.error-previous-target true
net x-enable => pid.xl.enable
net x-pos-lin => pid.xl.feedback
net x-output-lin <= pid.xl.output
net x-output-lin => sum2.0.in0
net x-output-mtr => sum2.0.in1
net x-output <= sum2.0.out
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-pos-cmd => pid.xl.command
net x-pos-cmd => pid.x.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.00.output-type 1
setp hm2_5i24.0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.00.offset-mode 1
net x-output => hm2_5i24.0.pwmgen.00.value
net x-enable joint.0.amp-enable-out => hm2_5i24.0.pwmgen.00.enable
net x-enable => hm2_5i24.0.gpio.046.out
net x-pos-rawcounts <= hm2_5i24.0.encoder.00.rawcounts
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.03.counter-mode 0
setp hm2_5i24.0.encoder.03.filter 1
setp hm2_5i24.0.encoder.03.index-invert 0
setp hm2_5i24.0.encoder.03.index-mask 0
setp hm2_5i24.0.encoder.03.index-mask-invert 0
setp hm2_5i24.0.encoder.03.scale [JOINT_0]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.00.counter-mode 0
setp hm2_5i24.0.encoder.00.filter 1
setp hm2_5i24.0.encoder.00.index-invert 0
setp hm2_5i24.0.encoder.00.index-mask 0
setp hm2_5i24.0.encoder.00.index-mask-invert 0
setp hm2_5i24.0.encoder.00.scale [JOINT_0]ENCODER_LIN_SCALE
net x-pos-mtr <= hm2_5i24.0.encoder.03.position
net x-vel-mtr <= hm2_5i24.0.encoder.03.velocity
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.03.index-enable
#net x-pos-mtr => joint.0.motor-pos-fb
net x-pos-lin <= hm2_5i24.0.encoder.00.position
net x-vel-lin <= hm2_5i24.0.encoder.00.velocity
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.00.index-enable
net x-pos-lin => joint.0.motor-pos-fb
# ******************
# AXIS Y JOINT 1
# ******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain 0
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
net y-enable => pid.y.enable
net y-pos-mtr => pid.y.feedback
net y-output-mtr <= pid.y.output
setp pid.yl.Pgain [JOINT_1]P_LIN
setp pid.yl.Igain [JOINT_1]I_LIN
setp pid.yl.Dgain [JOINT_1]D_LIN
setp pid.yl.bias 0
setp pid.yl.FF0 0
setp pid.yl.FF1 0
setp pid.yl.FF2 0
setp pid.yl.deadband [JOINT_1]DEADBAND
setp pid.yl.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.yl.error-previous-target true
net y-enable => pid.yl.enable
net y-pos-lin => pid.yl.feedback
net y-output-lin <= pid.yl.output
net y-output-lin => sum2.1.in0
net y-output-mtr => sum2.1.in1
net y-output <= sum2.1.out
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-pos-cmd => pid.yl.command
net y-pos-cmd => pid.y.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.02.output-type 1
setp hm2_5i24.0.pwmgen.02.scale [JOINT_1]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.02.offset-mode 1
net y-output => hm2_5i24.0.pwmgen.02.value
net y-enable joint.1.amp-enable-out => hm2_5i24.0.pwmgen.02.enable
# net y-enable => hm2_5i24.0.gpio.044.out # commented out because duplicates x axis
net y-pos-rawcounts <= hm2_5i24.0.encoder.01.rawcounts
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.04.counter-mode 0
setp hm2_5i24.0.encoder.04.filter 1
setp hm2_5i24.0.encoder.04.index-invert 0
setp hm2_5i24.0.encoder.04.index-mask 0
setp hm2_5i24.0.encoder.04.index-mask-invert 0
setp hm2_5i24.0.encoder.04.scale [JOINT_1]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.01.counter-mode 0
setp hm2_5i24.0.encoder.01.filter 1
setp hm2_5i24.0.encoder.01.index-invert 0
setp hm2_5i24.0.encoder.01.index-mask 0
setp hm2_5i24.0.encoder.01.index-mask-invert 0
setp hm2_5i24.0.encoder.01.scale [JOINT_1]ENCODER_LIN_SCALE
net y-pos-mtr <= hm2_5i24.0.encoder.04.position
net y-vel-mtr <= hm2_5i24.0.encoder.04.velocity
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.04.index-enable
#net y-pos-mtr => joint.1.motor-pos-fb
net y-pos-lin <= hm2_5i24.0.encoder.01.position
net y-vel-lin <= hm2_5i24.0.encoder.01.velocity
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.01.index-enable
net y-pos-lin => joint.1.motor-pos-fb
#*******************
# AXIS Z JOINT 2
#*******************
#setp pid.z.Pgain [JOINT_2]P
#setp pid.z.Igain 0
#setp pid.z.Dgain [JOINT_2]D
#setp pid.z.bias [JOINT_2]BIAS
#setp pid.z.FF0 [JOINT_2]FF0
#setp pid.z.FF1 [JOINT_2]FF1
#setp pid.z.FF2 [JOINT_2]FF2
#setp pid.z.deadband [JOINT_2]DEADBAND
#setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
#setp pid.z.error-previous-target true
#net z-enable => pid.z.enable
#net z-pos-mtr => pid.z.feedback
#net z-output-mtr <= pid.z.output
setp pid.zl.Pgain [JOINT_2]P
setp pid.zl.Igain [JOINT_2]I
setp pid.zl.Dgain [JOINT_2]D
setp pid.zl.bias 0
setp pid.zl.FF0 0
setp pid.zl.FF1 0
setp pid.zl.FF2 0
setp pid.zl.deadband [JOINT_2]DEADBAND
setp pid.zl.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.zl.error-previous-target true
net z-override => logic.0.in-00
net z-enable => logic.0.in-01
net z-enable-comb <= logic.0.and
sets z-override TRUE
# this section about ferror doesnt work
net z-enable-comb => mux2.0.sel
setp mux2.0.in0 100
setp mux2.0.in1 0.2
net z-ferror <= mux2.0.out
#net z-ferror => ini.2.min_ferror #joint.2.f-error #ini.2.ferror
net z-enable-comb => pid.zl.enable
net z-pos-lin => pid.zl.feedback
net z-output-lin <= pid.zl.output
net z-output-lin => sum2.2.in0
#net z-output-mtr => sum2.2.in1
net z-output <= sum2.2.out
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-pos-cmd => pid.zl.command
#net z-pos-cmd => pid.z.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.04.output-type 1
setp hm2_5i24.0.pwmgen.04.scale [JOINT_2]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.04.offset-mode 1
net z-output => hm2_5i24.0.pwmgen.04.value
net z-enable joint.2.amp-enable-out => hm2_5i24.0.pwmgen.04.enable
net z-enable-comb => hm2_5i24.0.gpio.044.out
net z-pos-rawcounts <= hm2_5i24.0.encoder.02.rawcounts
# ---Encoder feedback signals/setup---
#setp hm2_5i24.0.encoder.05.counter-mode 0
#setp hm2_5i24.0.encoder.05.filter 1
#setp hm2_5i24.0.encoder.05.index-invert 0
#setp hm2_5i24.0.encoder.05.index-mask 0
#setp hm2_5i24.0.encoder.05.index-mask-invert 0
#setp hm2_5i24.0.encoder.05.scale [JOINT_2]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.02.counter-mode 0
setp hm2_5i24.0.encoder.02.filter 1
setp hm2_5i24.0.encoder.02.index-invert 0
setp hm2_5i24.0.encoder.02.index-mask 0
setp hm2_5i24.0.encoder.02.index-mask-invert 0
setp hm2_5i24.0.encoder.02.scale [JOINT_2]ENCODER_LIN_SCALE
#net z-pos-mtr <= hm2_5i24.0.encoder.05.position
#net z-vel-mtr <= hm2_5i24.0.encoder.05.velocity
#net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.05.index-enable
#net z-pos-mtr => joint.2.motor-pos-fb
net z-pos-lin <= hm2_5i24.0.encoder.02.position
net z-vel-lin <= hm2_5i24.0.encoder.02.velocity
net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.02.index-enable
net z-pos-lin => joint.2.motor-pos-fb
#### SPINDLE ####
#net spindle.0.on spindle-enable
net spindle-enable spindle.0.on => hm2_5i24.0.gpio.041.out
#******************************
# connect miscellaneous signals
#******************************
# ---coolant signals---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# ---probe signal---
net probe-in => motion.probe-input
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
net tool-change-request <= iocontrol.0.tool-change
net tool-change-confirmed => iocontrol.0.tool-changed
net tool-number <= iocontrol.0.tool-prep-number
# ---Use external manual tool change dialog---
loadusr -W hal_manualtoolchange
net tool-change-request => hal_manualtoolchange.change
net tool-change-confirmed <= hal_manualtoolchange.changed
net tool-number => hal_manualtoolchange.number
# ---ignore tool prepare requests---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

259
configs/lagun/lagun.ini Executable file
View File

@@ -0,0 +1,259 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = lagun.hal
#HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
HALFILE = xhc-whb04b-6.hal
HALUI = halui
[HALUI]
MDI_COMMAND=(DEBUG,<1>)
MDI_COMMAND=G10 L20 P0 X[#<_x>/2.0]
MDI_COMMAND=G10 L20 P0 Y[#<_y>/2.0]
MDI_COMMAND=(DEBUG,<4>)
MDI_COMMAND=(DEBUG,<5>)
MDI_COMMAND=G10 L20 P0 X0
MDI_COMMAND=G10 L20 P0 Y0
MDI_COMMAND=G10 L20 P0 Z0
MDI_COMMAND=(DEBUG,<5>)
MDI_COMMAND=(DEBUG,<9>)
MDI_COMMAND=(DEBUG,<10>)
MDI_COMMAND=(DEBUG,<2>)
MDI_COMMAND=(DEBUG,<12>)
MDI_COMMAND=(DEBUG,<13>)
MDI_COMMAND=(DEBUG,<14>)
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -24.0
MAX_LIMIT = +24.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 0
I = 0
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 300
I_LIN = 500
D_LIN = 0
BIAS = 0
DEADBAND = 0.0005
MAX_OUTPUT = 0
ENCODER_LIN_SCALE = 5085.5
ENCODER_MTR_SCALE = -27939.6
# 5.4 is the ratio between linear and motor scales, roughly
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -24.0
MAX_LIMIT = +24.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -12.0
MAX_LIMIT = +12.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 0
I = 0
D = 5
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 350
I_LIN = 500
D_LIN = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 1
ENCODER_LIN_SCALE = 5085.4
ENCODER_MTR_SCALE = 27453.6
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12
MAX_LIMIT = +12
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
OUTPUT_SCALE = -1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 1.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
# SETTING MIN_FERROR TO 100 ALLOWS Z AXIS TO DO WHATEVER. IDEALLY ITS 0.2
MIN_FERROR = 100
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 200
I = 300
D = 2
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = +1.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
OUTPUT_SCALE = -1
OUTPUT_OFFSET = 0
ENCODER_LIN_SCALE = -10075
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

258
configs/lagun/lagun.ini.bak Executable file
View File

@@ -0,0 +1,258 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = lagun.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
HALFILE = xhc-whb04b-6.hal
HALUI = halui
[HALUI]
MDI_COMMAND=(DEBUG,<1>)
MDI_COMMAND=G10 L20 P0 X[#<_x>/2.0]
MDI_COMMAND=G10 L20 P0 Y[#<_y>/2.0]
MDI_COMMAND=(DEBUG,<4>)
MDI_COMMAND=(DEBUG,<5>)
MDI_COMMAND=G10 L20 P0 X0
MDI_COMMAND=G10 L20 P0 Y0
MDI_COMMAND=G10 L20 P0 Z0
MDI_COMMAND=(DEBUG,<5>)
MDI_COMMAND=(DEBUG,<9>)
MDI_COMMAND=(DEBUG,<10>)
MDI_COMMAND=(DEBUG,<2>)
MDI_COMMAND=(DEBUG,<12>)
MDI_COMMAND=(DEBUG,<13>)
MDI_COMMAND=(DEBUG,<14>)
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -24.0
MAX_LIMIT = +24.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 0
I = 0
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 300
I_LIN = 500
D_LIN = 0
BIAS = 0
DEADBAND = 0.0005
MAX_OUTPUT = 0
ENCODER_LIN_SCALE = 5085.5
ENCODER_MTR_SCALE = -27939.6
# 5.4 is the ratio between linear and motor scales, roughly
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -24.0
MAX_LIMIT = +24.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -12.0
MAX_LIMIT = +12.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 0
I = 0
D = 5
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 350
I_LIN = 500
D_LIN = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 1
ENCODER_LIN_SCALE = 5085.4
ENCODER_MTR_SCALE = 27453.6
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12
MAX_LIMIT = +12
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
OUTPUT_SCALE = -1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 1.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 200
I = 300
D = 2
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = +1.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
OUTPUT_SCALE = -1
OUTPUT_OFFSET = 0
ENCODER_LIN_SCALE = -10075
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

119
configs/lagun/linuxcnc.var Normal file
View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 10.519713
5222 -9.229862
5223 -2.943129
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.080900
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 10.519713
5222 -9.229862
5223 -2.943129
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.080900
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 10.519713
5222 -9.229862
5223 -2.943129
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.080900
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,225 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = my_LinuxCNC_machine.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 400
I = 0
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 400
I_LIN = 100
D_LIN = 4
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 100
MAX_OUTPUT_LINEAR = 100
ENCODER_LIN_SCALE = 5174
ENCODER_MTR_SCALE = -27939.6
# /5.4
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12.0
MAX_LIMIT = 12.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 10.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = 5084
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
ENCODER_SCALE = -9862
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

2
configs/lagun/shutdown.hal Executable file
View File

@@ -0,0 +1,2 @@
# Include your shutdown HAL commands here
# This file will not be overwritten when you run PNCconf again

5
configs/lagun/tool.tbl Normal file
View File

@@ -0,0 +1,5 @@
T1 P1 D+0.375000 I+7.000000 ;1/8 end mill Sample Tool
T2 P2 D+0.062500 ;1/16 end mill Sample Tool
T3 P3 D+0.201000 ;#7 tap drill Sample Tool
T4 P4 D+2.000000 ;2 inch mill Sample Tool
T5 P5 D+0.250000 ;1/4

View File

@@ -0,0 +1,5 @@
T1 P1 D0.375 I7 ;1/8 end mill Sample Tool
T2 P2 D0.0625 ;1/16 end mill Sample Tool
T3 P3 D0.201 ;#7 tap drill Sample Tool
T4 P4 D2 ;2 inch mill Sample Tool
T5 P5 D0.25 ;1/4

167
configs/lagun/xhc-whb04b-6.hal Executable file
View File

@@ -0,0 +1,167 @@
# ######################################################################
# load pendant components
# ######################################################################
loadusr -W xhc-whb04b-6 -HsfB
# ######################################################################
# pendant signal configuration
# ######################################################################
# On/Off signals
net machine.is-on halui.machine.is-on whb.halui.machine.is-on
# net pdnt.machine.on whb.halui.machine.on halui.machine.on
# net pdnt.machine.off whb.halui.machine.off halui.machine.off
# program related signals
net pdnt.program.is-idle whb.halui.program.is-idle halui.program.is-idle
net pdnt.program.is-paused whb.halui.program.is-paused halui.program.is-paused
net pdnt.program-is-running whb.halui.program.is-running halui.program.is-running
#net pdnt.program.resume whb.halui.program.resume halui.program.resume
#net pdnt.program.pause whb.halui.program.pause halui.program.pause
#net pdnt.program.run whb.halui.program.run halui.program.run
#net pdnt.program.stop whb.halui.program.stop halui.program.stop
# machine mode related signals
net pdnt.mode.auto whb.halui.mode.auto halui.mode.auto
net pdnt.mode.manual whb.halui.mode.manual halui.mode.manual
net pdnt.mode.mdi whb.halui.mode.mdi halui.mode.mdi
net pdnt.mode.joint whb.halui.mode.joint halui.mode.joint
net pdnt.mode.teleop whb.halui.mode.teleop halui.mode.teleop
net pdnt.mode.is-auto halui.mode.is-auto whb.halui.mode.is-auto
net pdnt.mode.is-manual halui.mode.is-manual whb.halui.mode.is-manual
net pdnt.mode.is-mdi halui.mode.is-mdi whb.halui.mode.is-mdi
net pdnt.mode.is-joint halui.mode.is-joint whb.halui.mode.is-joint
net pdnt.mode.is-teleop halui.mode.is-teleop whb.halui.mode.is-teleop
# "is-homed" axis signal for allowing pendant when machine is not homed
net pdnt.axis.X.is-homed halui.joint.0.is-homed whb.halui.joint.x.is-homed
net pdnt.axis.Y.is-homed halui.joint.1.is-homed whb.halui.joint.y.is-homed
net pdnt.axis.Z.is-homed halui.joint.2.is-homed whb.halui.joint.z.is-homed
# "selected axis" signals
net pdnt.axis.X.select whb.halui.axis.x.select halui.axis.x.select
net pdnt.axis.y.select whb.halui.axis.y.select halui.axis.y.select
net pdnt.axis.Z.select whb.halui.axis.z.select halui.axis.z.select
net pdnt.axis.x.jog-scale whb.axis.x.jog-scale axis.x.jog-scale
net pdnt.axis.y.jog-scale whb.axis.y.jog-scale axis.y.jog-scale
net pdnt.axis.z.jog-scale whb.axis.z.jog-scale axis.z.jog-scale
net pdnt.axis.x.jog-counts whb.axis.x.jog-counts axis.x.jog-counts
net pdnt.axis.y.jog-counts whb.axis.y.jog-counts axis.y.jog-counts
net pdnt.axis.z.jog-counts whb.axis.z.jog-counts axis.z.jog-counts
net pdnt.axis.x.jog-enable whb.axis.x.jog-enable axis.x.jog-enable
net pdnt.axis.y.jog-enable whb.axis.y.jog-enable axis.y.jog-enable
net pdnt.axis.z.jog-enable whb.axis.z.jog-enable axis.z.jog-enable
net pdnt.axis.x.jog-vel-mode whb.axis.x.jog-vel-mode axis.x.jog-vel-mode
net pdnt.axis.y.jog-vel-mode whb.axis.y.jog-vel-mode axis.y.jog-vel-mode
net pdnt.axis.z.jog-vel-mode whb.axis.z.jog-vel-mode axis.z.jog-vel-mode
# macro buttons to MDI commands
net pdnt.macro-1 whb.button.macro-1 halui.mdi-command-01 # use MDI command from main.ini
net pdnt.macro-2 whb.button.macro-2 halui.mdi-command-02 # use MDI command from main.ini or used for Hardcoded lube on/off
#net pdnt.reserved.for.spindle+ whb.button.macro-3 # Hardcoded for spindle+ whb.halui.spindle.increase
#net pdnt.reserved.for.spindle- whb.button.macro-4 # Hardcoded for spindle- whb.halui.spindle.decrease
net pdnt.macro-5 whb.button.macro-5 halui.mdi-command-05 # use MDI command from main.ini
net pdnt.macro-6 whb.button.macro-6 halui.mdi-command-06 # use MDI command from main.ini
net pdnt.macro-7 whb.button.macro-7 halui.mdi-command-07 # use MDI command from main.ini
#net pdnt.reserved.for.spindle.dir whb.button.macro-8 # Hardcoded for spindle direction inside pendant
net pdnt.macro-9 whb.button.macro-9 halui.mdi-command-09 # use MDI command from main.ini
net pdnt.reserved.for.ABS-REL whb.button.macro-10 # Hardcoded for swap Dro Relative/Absolue
net pdnt.macro-14 whb.button.macro-14 halui.mdi-command-14 # use MDI command from main.ini
net pdnt.reserved.for.flood whb.button.macro-15 # Hardcoded for halui.flood on/off
net pdnt.reserved.for.mist whb.button.macro-16 # Hardcoded for halui.mist on/off
net pdnt.macro.11 whb.button.macro-11 halui.mdi-command-11 # use MDI command from main.ini
net pdnt.macro.12 whb.button.macro-12 halui.mdi-command-12 # use MDI command from main.ini
net pdnt.macro.13 whb.button.macro-13 halui.mdi-command-13 # use MDI command from main.ini
# flood and mist toggle signals
net pdnt.flood.is-on whb.halui.flood.is-on halui.flood.is-on #return signal is on or off
net pdnt.flood.off whb.halui.flood.off halui.flood.off #reserved whb.button.macro-15
net pdnt.flood.on whb.halui.flood.on halui.flood.on #reserved whb.button.macro-15
net pdnt.mist.is-on whb.halui.mist.is-on halui.mist.is-on #return signal is on or off
net pdnt.mist.off whb.halui.mist.off halui.mist.off #reserved whb.button.macro-16
net pdnt.mist.on whb.halui.mist.on halui.mist.on #reserved whb.button.macro-16
#net pdnt.lube.is-on whb.halui.lube.is-on halui.lube.is-on #return signal is on or off
#net pdnt.lube.off whb.halui.lube.off halui.lube.off #reserved whb.button.macro-2
#net pdnt.lube.on whb.halui.lube.on halui.lube.on #reserved whb.button.macro-2
# default function button signals
net pdnt.button.m-home whb.button.m-home halui.home-all # Homing use built-in halui home all
net pdnt.button.safe-z whb.button.safe-z halui.mdi-command-03 # Safe-z use MDI command from main.ini
net pdnt.button.w-home whb.button.w-home halui.mdi-command-04 # Unpark use MDI command from main.ini
net pdnt.button.probe-z whb.button.probe-z halui.mdi-command-08 # Probe-Z use MDI command from main.ini
# unused, just exposes pendant internal status or as basic button
#net pdnt.mode-lead whb.halui.feed.selected-lead
#net pdnt.mode-mpg-feed whb.halui.feed.selected-mpg-feed
#net pdnt.mode-continuous whb.halui.feed.selected-continuous
#net pdnt.mode-step whb.halui.feed.selected-step
#net pdnt.button.mode-mpg whb.button.mode-continuous
#net pdnt.button.mode-step whb.button.mode-step
#net pdnt.button.fn whb.button.fn
#net pdnt.button.reset whb.button.reset
#net pdnt.button.stop whb.button.stop
#net pdnt.button.start-pause whb.button.start-pause
#net pdnt.button.s-on-off whb.button.s-on-off
#net pdnt.button.spindle-plus whb.button.spindle-plus
#net pdnt.button.spindle-minus whb.button.spindle-minus
#net pdnt.button.feed-plus whb.button.feed-plus
#net pdnt.button.feed-minus whb.button.feed-minus
# spindle related signals
#net pdnt.spindle.is-on whb.halui.spindle.is-on spindle.0.on
#net pdnt.spindle.start whb.halui.spindle.start halui.spindle.0.start
#net pdnt.spindle.stop whb.halui.spindle.stop halui.spindle.0.stop
#net pdnt.spindle.forward whb.halui.spindle.forward halui.spindle.0.forward
#net pdnt.spindle.reverse whb.halui.spindle.reverse halui.spindle.0.reverse
#net pdnt.spindle.increase whb.halui.spindle.increase halui.spindle.0.increase # reserved whb.button.macro-3
#net pdnt.spindle.decrease whb.halui.spindle.decrease halui.spindle.0.decrease # reserved whb.button.macro-4
#net pdnt.spindle-speed-abs whb.halui.spindle-speed-cmd spindle.0.speed-out-abs # speed cmd from motion in rpm absolue
# spindle speed override signals
#net pdnt.spindle-override.scale whb.halui.spindle-override.scale halui.spindle.0.override.scale # needed for both spindle+/- and spindleoverride+/- button
#net pdnt.spindle.override.value halui.spindle.0.override.value whb.halui.spindle-override.value # GUI feed rate related signals
#net pdnt.spindle.override.increase whb.halui.spindle-override.increase halui.spindle.0.override.increase
#net pdnt.spindle.override.decrease whb.halui.spindle-override.decrease halui.spindle.0.override.decrease
# GUI feed rate related signals can be used when program is running moving GUI slider
net pdnt.feed-override.scale whb.halui.feed-override.scale halui.feed-override.scale # needed for both FeedOverride+/- and rotary knob button
net pdnt.max-velocity.value whb.halui.max-velocity.value halui.max-velocity.value # needed for Mpg mode : button feed position% * max-velocity = Mpg feedrate
# take feed override min/max values from/to the GUI
net pdnt.feed-override.value halui.feed-override.value whb.halui.feed-override.value # GUI feed rate related signals
net pdnt.feed-override.increase whb.halui.feed-override.increase halui.feed-override.increase
net pdnt.feed-override.decrease whb.halui.feed-override.decrease halui.feed-override.decrease
# axis position related signals feedback
net pdnt.axis.x.pos-feedback halui.axis.x.pos-feedback whb.halui.axis.x.pos-feedback
net pdnt.axis.y.pos-feedback halui.axis.y.pos-feedback whb.halui.axis.y.pos-feedback
net pdnt.axis.z.pos-feedback halui.axis.z.pos-feedback whb.halui.axis.z.pos-feedback
# axis position related signals relative
net pdnt.axis.x.pos-relative halui.axis.x.pos-relative whb.halui.axis.x.pos-relative
net pdnt.axis.y.pos-relative halui.axis.y.pos-relative whb.halui.axis.y.pos-relative
net pdnt.axis.z.pos-relative halui.axis.z.pos-relative whb.halui.axis.z.pos-relative

View File

@@ -0,0 +1,6 @@
# gmoccapy postgui HAL file for Lagun mill
# These connections are made after the GUI loads so gmoccapy pins exist
# --- Tool offset display ---
net tooloffset-x gmoccapy.tooloffset-x <= motion.tooloffset.x
net tooloffset-z gmoccapy.tooloffset-z <= motion.tooloffset.z

398
configs/lagun_gmoccapy/lagun.hal Executable file
View File

@@ -0,0 +1,398 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS base_thread_fp=1
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=6"
loadrt mux16 names=jogincr,foincr,mvoincr,soincr
loadrt mux2 count=1
loadrt sum2 count=3
loadrt logic count=1 personality=0x0102
addf logic.0 servo-thread
addf mux2.0 servo-thread
loadrt weighted_sum wsum_sizes=8 #wsum_sizes=[128,64,32,16,8,4,2,1] # default should do conversion??
addf process_wsums servo-thread
addf sum2.0 servo-thread
addf sum2.1 servo-thread
addf sum2.2 servo-thread
addf jogincr servo-thread
addf foincr servo-thread
addf mvoincr servo-thread
addf soincr servo-thread
setp hm2_5i24.0.pwmgen.pwm_frequency 15500
setp hm2_5i24.0.pwmgen.pdm_frequency 15500
setp hm2_5i24.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.s,pid.xl,pid.yl,pid.zl
addf hm2_5i24.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.xl.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.yl.do-pid-calcs servo-thread
addf pid.zl.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i24.0.write servo-thread
# relay outputs
setp hm2_5i24.0.gpio.041.is_output true
setp hm2_5i24.0.gpio.044.is_output true
setp hm2_5i24.0.gpio.046.is_output true
setp hm2_5i24.0.gpio.041.invert_output true
setp hm2_5i24.0.gpio.044.invert_output true
setp hm2_5i24.0.gpio.046.invert_output true
# some inputs
setp hm2_5i24.0.gpio.027.is_output false
setp hm2_5i24.0.gpio.028.is_output false
setp hm2_5i24.0.gpio.029.is_output false # ESTOP
setp hm2_5i24.0.gpio.030.is_output false # START
setp hm2_5i24.0.gpio.031.is_output false # STOP
#net machine_estop_out <= hm2_5i24.0.gpio.029.in_not
#net machine_estop_out => halui.machine.on
# This stuff should work but it seems to be shutting off the machine.
# net btn-estop-out hm2_5i24.0.gpio.029.in_not => halui.machine.on
# net btn-estop-in hm2_5i24.0.gpio.029.in => halui.machine.off
# net btn-pause hm2_5i24.0.gpio.031.in_not => halui.program.pause
# net btn-start hm2_5i24.0.gpio.030.in_not => halui.program.run
# net btn-start hm2_5i24.0.gpio.030.in_not => halui.program.resume
# first ADC
#setp hm2_5i24.0.gpio.032.is_output false
#setp hm2_5i24.0.gpio.033.is_output false
#setp hm2_5i24.0.gpio.034.is_output false
#setp hm2_5i24.0.gpio.035.is_output false
#setp hm2_5i24.0.gpio.036.is_output false
#setp hm2_5i24.0.gpio.037.is_output false
#setp hm2_5i24.0.gpio.038.is_output false
#setp hm2_5i24.0.gpio.039.is_output false
# second ADC
#setp hm2_5i24.0.gpio.040.is_output false
#setp hm2_5i24.0.gpio.041.is_output false
#setp hm2_5i24.0.gpio.042.is_output false
#setp hm2_5i24.0.gpio.043.is_output false
#setp hm2_5i24.0.gpio.044.is_output false
#setp hm2_5i24.0.gpio.045.is_output false
#setp hm2_5i24.0.gpio.046.is_output false
#setp hm2_5i24.0.gpio.047.is_output false
#net hm2_5i24.0.gpio.032 <= wsum.0.bit.0.in
#net hm2_5i24.0.gpio.033 <= wsum.0.bit.1.in
#net hm2_5i24.0.gpio.034 <= wsum.0.bit.2.in
#net hm2_5i24.0.gpio.035 <= wsum.0.bit.3.in
#net hm2_5i24.0.gpio.036 <= wsum.0.bit.4.in
#net hm2_5i24.0.gpio.037 <= wsum.0.bit.5.in
#net hm2_5i24.0.gpio.038 <= wsum.0.bit.6.in
#net hm2_5i24.0.gpio.039 <= wsum.0.bit.7.in
# ******************
# AXIS X JOINT 0
# ******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain 0
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
net x-enable => pid.x.enable
net x-pos-mtr => pid.x.feedback
net x-output-mtr <= pid.x.output
setp pid.xl.Pgain [JOINT_0]P_LIN
setp pid.xl.Igain [JOINT_0]I_LIN
setp pid.xl.Dgain [JOINT_0]D_LIN
setp pid.xl.bias 0
setp pid.xl.FF0 0
setp pid.xl.FF1 0
setp pid.xl.FF2 0
setp pid.xl.deadband [JOINT_0]DEADBAND
setp pid.xl.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.xl.error-previous-target true
net x-enable => pid.xl.enable
net x-pos-lin => pid.xl.feedback
net x-output-lin <= pid.xl.output
net x-output-lin => sum2.0.in0
net x-output-mtr => sum2.0.in1
net x-output <= sum2.0.out
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-pos-cmd => pid.xl.command
net x-pos-cmd => pid.x.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.00.output-type 1
setp hm2_5i24.0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.00.offset-mode 1
net x-output => hm2_5i24.0.pwmgen.00.value
net x-enable joint.0.amp-enable-out => hm2_5i24.0.pwmgen.00.enable
net x-enable => hm2_5i24.0.gpio.046.out
net x-pos-rawcounts <= hm2_5i24.0.encoder.00.rawcounts
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.03.counter-mode 0
setp hm2_5i24.0.encoder.03.filter 1
setp hm2_5i24.0.encoder.03.index-invert 0
setp hm2_5i24.0.encoder.03.index-mask 0
setp hm2_5i24.0.encoder.03.index-mask-invert 0
setp hm2_5i24.0.encoder.03.scale [JOINT_0]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.00.counter-mode 0
setp hm2_5i24.0.encoder.00.filter 1
setp hm2_5i24.0.encoder.00.index-invert 0
setp hm2_5i24.0.encoder.00.index-mask 0
setp hm2_5i24.0.encoder.00.index-mask-invert 0
setp hm2_5i24.0.encoder.00.scale [JOINT_0]ENCODER_LIN_SCALE
net x-pos-mtr <= hm2_5i24.0.encoder.03.position
net x-vel-mtr <= hm2_5i24.0.encoder.03.velocity
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.03.index-enable
#net x-pos-mtr => joint.0.motor-pos-fb
net x-pos-lin <= hm2_5i24.0.encoder.00.position
net x-vel-lin <= hm2_5i24.0.encoder.00.velocity
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.00.index-enable
net x-pos-lin => joint.0.motor-pos-fb
# ******************
# AXIS Y JOINT 1
# ******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain 0
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
net y-enable => pid.y.enable
net y-pos-mtr => pid.y.feedback
net y-output-mtr <= pid.y.output
setp pid.yl.Pgain [JOINT_1]P_LIN
setp pid.yl.Igain [JOINT_1]I_LIN
setp pid.yl.Dgain [JOINT_1]D_LIN
setp pid.yl.bias 0
setp pid.yl.FF0 0
setp pid.yl.FF1 0
setp pid.yl.FF2 0
setp pid.yl.deadband [JOINT_1]DEADBAND
setp pid.yl.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.yl.error-previous-target true
net y-enable => pid.yl.enable
net y-pos-lin => pid.yl.feedback
net y-output-lin <= pid.yl.output
net y-output-lin => sum2.1.in0
net y-output-mtr => sum2.1.in1
net y-output <= sum2.1.out
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-pos-cmd => pid.yl.command
net y-pos-cmd => pid.y.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.02.output-type 1
setp hm2_5i24.0.pwmgen.02.scale [JOINT_1]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.02.offset-mode 1
net y-output => hm2_5i24.0.pwmgen.02.value
net y-enable joint.1.amp-enable-out => hm2_5i24.0.pwmgen.02.enable
# net y-enable => hm2_5i24.0.gpio.044.out # commented out because duplicates x axis
net y-pos-rawcounts <= hm2_5i24.0.encoder.01.rawcounts
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.04.counter-mode 0
setp hm2_5i24.0.encoder.04.filter 1
setp hm2_5i24.0.encoder.04.index-invert 0
setp hm2_5i24.0.encoder.04.index-mask 0
setp hm2_5i24.0.encoder.04.index-mask-invert 0
setp hm2_5i24.0.encoder.04.scale [JOINT_1]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.01.counter-mode 0
setp hm2_5i24.0.encoder.01.filter 1
setp hm2_5i24.0.encoder.01.index-invert 0
setp hm2_5i24.0.encoder.01.index-mask 0
setp hm2_5i24.0.encoder.01.index-mask-invert 0
setp hm2_5i24.0.encoder.01.scale [JOINT_1]ENCODER_LIN_SCALE
net y-pos-mtr <= hm2_5i24.0.encoder.04.position
net y-vel-mtr <= hm2_5i24.0.encoder.04.velocity
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.04.index-enable
#net y-pos-mtr => joint.1.motor-pos-fb
net y-pos-lin <= hm2_5i24.0.encoder.01.position
net y-vel-lin <= hm2_5i24.0.encoder.01.velocity
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.01.index-enable
net y-pos-lin => joint.1.motor-pos-fb
#*******************
# AXIS Z JOINT 2
#*******************
#setp pid.z.Pgain [JOINT_2]P
#setp pid.z.Igain 0
#setp pid.z.Dgain [JOINT_2]D
#setp pid.z.bias [JOINT_2]BIAS
#setp pid.z.FF0 [JOINT_2]FF0
#setp pid.z.FF1 [JOINT_2]FF1
#setp pid.z.FF2 [JOINT_2]FF2
#setp pid.z.deadband [JOINT_2]DEADBAND
#setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
#setp pid.z.error-previous-target true
#net z-enable => pid.z.enable
#net z-pos-mtr => pid.z.feedback
#net z-output-mtr <= pid.z.output
setp pid.zl.Pgain [JOINT_2]P
setp pid.zl.Igain [JOINT_2]I
setp pid.zl.Dgain [JOINT_2]D
setp pid.zl.bias 0
setp pid.zl.FF0 0
setp pid.zl.FF1 0
setp pid.zl.FF2 0
setp pid.zl.deadband [JOINT_2]DEADBAND
setp pid.zl.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.zl.error-previous-target true
net z-override => logic.0.in-00
net z-enable => logic.0.in-01
net z-enable-comb <= logic.0.and
sets z-override TRUE
# this section about ferror doesnt work
net z-enable-comb => mux2.0.sel
setp mux2.0.in0 100
setp mux2.0.in1 0.2
net z-ferror <= mux2.0.out
#net z-ferror => ini.2.min_ferror #joint.2.f-error #ini.2.ferror
net z-enable-comb => pid.zl.enable
net z-pos-lin => pid.zl.feedback
net z-output-lin <= pid.zl.output
net z-output-lin => sum2.2.in0
#net z-output-mtr => sum2.2.in1
net z-output <= sum2.2.out
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-pos-cmd => pid.zl.command
#net z-pos-cmd => pid.z.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.04.output-type 1
setp hm2_5i24.0.pwmgen.04.scale [JOINT_2]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.04.offset-mode 1
net z-output => hm2_5i24.0.pwmgen.04.value
net z-enable joint.2.amp-enable-out => hm2_5i24.0.pwmgen.04.enable
net z-enable-comb => hm2_5i24.0.gpio.044.out
net z-pos-rawcounts <= hm2_5i24.0.encoder.02.rawcounts
# ---Encoder feedback signals/setup---
#setp hm2_5i24.0.encoder.05.counter-mode 0
#setp hm2_5i24.0.encoder.05.filter 1
#setp hm2_5i24.0.encoder.05.index-invert 0
#setp hm2_5i24.0.encoder.05.index-mask 0
#setp hm2_5i24.0.encoder.05.index-mask-invert 0
#setp hm2_5i24.0.encoder.05.scale [JOINT_2]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.02.counter-mode 0
setp hm2_5i24.0.encoder.02.filter 1
setp hm2_5i24.0.encoder.02.index-invert 0
setp hm2_5i24.0.encoder.02.index-mask 0
setp hm2_5i24.0.encoder.02.index-mask-invert 0
setp hm2_5i24.0.encoder.02.scale [JOINT_2]ENCODER_LIN_SCALE
#net z-pos-mtr <= hm2_5i24.0.encoder.05.position
#net z-vel-mtr <= hm2_5i24.0.encoder.05.velocity
#net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.05.index-enable
#net z-pos-mtr => joint.2.motor-pos-fb
net z-pos-lin <= hm2_5i24.0.encoder.02.position
net z-vel-lin <= hm2_5i24.0.encoder.02.velocity
net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.02.index-enable
net z-pos-lin => joint.2.motor-pos-fb
#### SPINDLE ####
#net spindle.0.on spindle-enable
net spindle-enable spindle.0.on => hm2_5i24.0.gpio.041.out
#******************************
# connect miscellaneous signals
#******************************
# ---coolant signals---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# ---probe signal---
net probe-in => motion.probe-input
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
net tool-change-request <= iocontrol.0.tool-change
net tool-change-confirmed => iocontrol.0.tool-changed
net tool-number <= iocontrol.0.tool-prep-number
# ---Use external manual tool change dialog---
loadusr -W hal_manualtoolchange
net tool-change-request => hal_manualtoolchange.change
net tool-change-confirmed <= hal_manualtoolchange.changed
net tool-number => hal_manualtoolchange.number
# ---ignore tool prepare requests---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

View File

@@ -0,0 +1,255 @@
# Based on lagun config (PNCconf Fri Jul 26 13:18:08 2024)
# Modified to use GMOCCAPY instead of AXIS
# Using LinuxCNC version: Master (2.9)
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = gmoccapy
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = 0.1000 0.0500 0.0100 0.0050 0.0010 0.0005 0.0001
DEFAULT_LINEAR_VELOCITY = 3.0
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
DEFAULT_SPINDLE_SPEED = 500
[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
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = lagun.hal
HALFILE = xhc-whb04b-6.hal
POSTGUI_HALFILE = gmoccapy_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
MDI_COMMAND=(DEBUG,<1>)
MDI_COMMAND=G10 L20 P0 X[#<_x>/2.0]
MDI_COMMAND=G10 L20 P0 Y[#<_y>/2.0]
MDI_COMMAND=(DEBUG,<4>)
MDI_COMMAND=(DEBUG,<5>)
MDI_COMMAND=G10 L20 P0 X0
MDI_COMMAND=G10 L20 P0 Y0
MDI_COMMAND=G10 L20 P0 Z0
MDI_COMMAND=(DEBUG,<5>)
MDI_COMMAND=(DEBUG,<9>)
MDI_COMMAND=(DEBUG,<10>)
MDI_COMMAND=(DEBUG,<2>)
MDI_COMMAND=(DEBUG,<12>)
MDI_COMMAND=(DEBUG,<13>)
MDI_COMMAND=(DEBUG,<14>)
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 3.0
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -24.0
MAX_LIMIT = +24.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 0
I = 0
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 300
I_LIN = 500
D_LIN = 0
BIAS = 0
DEADBAND = 0.0005
MAX_OUTPUT = 0
ENCODER_LIN_SCALE = 5085.5
ENCODER_MTR_SCALE = -27939.6
# 5.4 is the ratio between linear and motor scales, roughly
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -24.0
MAX_LIMIT = +24.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -12.0
MAX_LIMIT = +12.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 0
I = 0
D = 5
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 350
I_LIN = 500
D_LIN = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 1
ENCODER_LIN_SCALE = 5085.4
ENCODER_MTR_SCALE = 27453.6
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12
MAX_LIMIT = +12
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
OUTPUT_SCALE = -1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 1.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
# SETTING MIN_FERROR TO 100 ALLOWS Z AXIS TO DO WHATEVER. IDEALLY ITS 0.2
MIN_FERROR = 100
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 200
I = 300
D = 2
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = +1.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
OUTPUT_SCALE = -1
OUTPUT_OFFSET = 0
ENCODER_LIN_SCALE = -10075
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.488159
5222 -0.501329
5223 -1.515298
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.080900
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.488159
5222 -0.501329
5223 -1.515298
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.080900
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,80 @@
[DEFAULT]
dro_digits = 4
dro_size = 28
abs_color = #0000FF
rel_color = #000000
dtg_color = #FFFF00
homed_color = #00FF00
unhomed_color = #FF0000
enable_dro = False
scale_jog_vel = 1.0
scale_spindle_override = 1
scale_feed_override = 1
scale_rapid_override = 1
spindle_bar_min = 0.0
spindle_bar_max = 6000.0
turtle_jog_factor = 20
hide_turtle_jog_button = False
unlock_code = 123
toggle_readout = True
spindle_start_rpm = 500.0
kbd_height = 250
blockheight = 0.0
reload_tool = False
open_file =
screen1 = window
hide_titlebar = False
x_pos = 40
y_pos = 30
width = 979
height = 750
use_toolmeasurement = False
gtk_theme = Follow System Theme
icon_theme = classic
audio_enabled = True
audio_alert = /usr/share/sounds/freedesktop/stereo/dialog-warning.oga
audio_error = /usr/share/sounds/freedesktop/stereo/dialog-error.oga
grid_size = 1.0
view = z
mouse_btn_mode = 4
hide_cursor = False
hide_tooltips = False
system_name_tool = Tool
system_name_g5x = G5x
system_name_rot = Rot
system_name_g92 = G92
system_name_g54 = G54
system_name_g55 = G55
system_name_g56 = G56
system_name_g57 = G57
system_name_g58 = G58
system_name_g59 = G59
system_name_g59.1 = G59.1
system_name_g59.2 = G59.2
system_name_g59.3 = G59.3
jump_to_dir = /home/linuxcnc
show_keyboard_on_offset = False
show_keyboard_on_tooledit = False
show_keyboard_on_edit = True
show_keyboard_on_mdi = True
show_keyboard_on_file_selection = False
x_pos_popup = 45.0
y_pos_popup = 55
width_popup = 250.0
max_messages = 10
message_font = sans 10
use_frames = True
blockdel = False
show_offsets = True
show_dtg = False
view_tool_path = False
view_dimension = False
run_from_line = no_run
unlock_way = use
show_preview_on_offset = False
use_keyboard_shortcuts = True
offset_axis_y = -0.1
offset_axis_x = -0.1875
offset_axis_z = 0.0
tool_in_spindle = 3

View File

@@ -0,0 +1,2 @@
# Include your shutdown HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,6 @@
T3 P3 D+0.187500 ;3/16in flat
T1 P1 D+0.187500 I+7.000000 ;0.201in DrillBit
T5 P5 D+0.250000 ;1/4
T2 P2 D+0.437500 ;7/16in MillBit
T4 P4 D+2.000000 ;2 inch mill Sample Tool
T0 P0 ;comment

View File

@@ -0,0 +1,170 @@
# ######################################################################
# load pendant components
# ######################################################################
loadusr -W xhc-whb04b-6 -HsfB
# ######################################################################
# pendant signal configuration
# ######################################################################
# On/Off signals
net machine.is-on halui.machine.is-on whb.halui.machine.is-on
# net pdnt.machine.on whb.halui.machine.on halui.machine.on
# net pdnt.machine.off whb.halui.machine.off halui.machine.off
# program related signals
net pdnt.program.is-idle whb.halui.program.is-idle halui.program.is-idle
net pdnt.program.is-paused whb.halui.program.is-paused halui.program.is-paused
net pdnt.program-is-running whb.halui.program.is-running halui.program.is-running
#net pdnt.program.resume whb.halui.program.resume halui.program.resume
#net pdnt.program.pause whb.halui.program.pause halui.program.pause
#net pdnt.program.run whb.halui.program.run halui.program.run
#net pdnt.program.stop whb.halui.program.stop halui.program.stop
# machine mode related signals
net pdnt.mode.auto whb.halui.mode.auto halui.mode.auto
net pdnt.mode.manual whb.halui.mode.manual halui.mode.manual
net pdnt.mode.mdi whb.halui.mode.mdi halui.mode.mdi
net pdnt.mode.joint whb.halui.mode.joint halui.mode.joint
net pdnt.mode.teleop whb.halui.mode.teleop halui.mode.teleop
net pdnt.mode.is-auto halui.mode.is-auto whb.halui.mode.is-auto
net pdnt.mode.is-manual halui.mode.is-manual whb.halui.mode.is-manual
net pdnt.mode.is-mdi halui.mode.is-mdi whb.halui.mode.is-mdi
net pdnt.mode.is-joint halui.mode.is-joint whb.halui.mode.is-joint
net pdnt.mode.is-teleop halui.mode.is-teleop whb.halui.mode.is-teleop
# "is-homed" axis signal for allowing pendant when machine is not homed
net pdnt.axis.X.is-homed halui.joint.0.is-homed whb.halui.joint.x.is-homed
net pdnt.axis.Y.is-homed halui.joint.1.is-homed whb.halui.joint.y.is-homed
net pdnt.axis.Z.is-homed halui.joint.2.is-homed whb.halui.joint.z.is-homed
# "selected axis" signals
net pdnt.axis.X.select whb.halui.axis.x.select halui.axis.x.select
net pdnt.axis.y.select whb.halui.axis.y.select halui.axis.y.select
net pdnt.axis.Z.select whb.halui.axis.z.select halui.axis.z.select
# --- Jog signals ---
# GMOCCAPY does not create axis.x.jog-* pins like AXIS does.
# Use joint.N.jog-* pins instead (provided by the motion module).
net pdnt.axis.x.jog-scale whb.axis.x.jog-scale joint.0.jog-scale
net pdnt.axis.y.jog-scale whb.axis.y.jog-scale joint.1.jog-scale
net pdnt.axis.z.jog-scale whb.axis.z.jog-scale joint.2.jog-scale
net pdnt.axis.x.jog-counts whb.axis.x.jog-counts joint.0.jog-counts
net pdnt.axis.y.jog-counts whb.axis.y.jog-counts joint.1.jog-counts
net pdnt.axis.z.jog-counts whb.axis.z.jog-counts joint.2.jog-counts
net pdnt.axis.x.jog-enable whb.axis.x.jog-enable joint.0.jog-enable
net pdnt.axis.y.jog-enable whb.axis.y.jog-enable joint.1.jog-enable
net pdnt.axis.z.jog-enable whb.axis.z.jog-enable joint.2.jog-enable
net pdnt.axis.x.jog-vel-mode whb.axis.x.jog-vel-mode joint.0.jog-vel-mode
net pdnt.axis.y.jog-vel-mode whb.axis.y.jog-vel-mode joint.1.jog-vel-mode
net pdnt.axis.z.jog-vel-mode whb.axis.z.jog-vel-mode joint.2.jog-vel-mode
# macro buttons to MDI commands
net pdnt.macro-1 whb.button.macro-1 halui.mdi-command-01 # use MDI command from main.ini
net pdnt.macro-2 whb.button.macro-2 halui.mdi-command-02 # use MDI command from main.ini or used for Hardcoded lube on/off
#net pdnt.reserved.for.spindle+ whb.button.macro-3 # Hardcoded for spindle+ whb.halui.spindle.increase
#net pdnt.reserved.for.spindle- whb.button.macro-4 # Hardcoded for spindle- whb.halui.spindle.decrease
net pdnt.macro-5 whb.button.macro-5 halui.mdi-command-05 # use MDI command from main.ini
net pdnt.macro-6 whb.button.macro-6 halui.mdi-command-06 # use MDI command from main.ini
net pdnt.macro-7 whb.button.macro-7 halui.mdi-command-07 # use MDI command from main.ini
#net pdnt.reserved.for.spindle.dir whb.button.macro-8 # Hardcoded for spindle direction inside pendant
net pdnt.macro-9 whb.button.macro-9 halui.mdi-command-09 # use MDI command from main.ini
net pdnt.reserved.for.ABS-REL whb.button.macro-10 # Hardcoded for swap Dro Relative/Absolue
net pdnt.macro-14 whb.button.macro-14 halui.mdi-command-14 # use MDI command from main.ini
net pdnt.reserved.for.flood whb.button.macro-15 # Hardcoded for halui.flood on/off
net pdnt.reserved.for.mist whb.button.macro-16 # Hardcoded for halui.mist on/off
net pdnt.macro.11 whb.button.macro-11 halui.mdi-command-11 # use MDI command from main.ini
net pdnt.macro.12 whb.button.macro-12 halui.mdi-command-12 # use MDI command from main.ini
net pdnt.macro.13 whb.button.macro-13 halui.mdi-command-13 # use MDI command from main.ini
# flood and mist toggle signals
net pdnt.flood.is-on whb.halui.flood.is-on halui.flood.is-on #return signal is on or off
net pdnt.flood.off whb.halui.flood.off halui.flood.off #reserved whb.button.macro-15
net pdnt.flood.on whb.halui.flood.on halui.flood.on #reserved whb.button.macro-15
net pdnt.mist.is-on whb.halui.mist.is-on halui.mist.is-on #return signal is on or off
net pdnt.mist.off whb.halui.mist.off halui.mist.off #reserved whb.button.macro-16
net pdnt.mist.on whb.halui.mist.on halui.mist.on #reserved whb.button.macro-16
#net pdnt.lube.is-on whb.halui.lube.is-on halui.lube.is-on #return signal is on or off
#net pdnt.lube.off whb.halui.lube.off halui.lube.off #reserved whb.button.macro-2
#net pdnt.lube.on whb.halui.lube.on halui.lube.on #reserved whb.button.macro-2
# default function button signals
net pdnt.button.m-home whb.button.m-home halui.home-all # Homing use built-in halui home all
net pdnt.button.safe-z whb.button.safe-z halui.mdi-command-03 # Safe-z use MDI command from main.ini
net pdnt.button.w-home whb.button.w-home halui.mdi-command-04 # Unpark use MDI command from main.ini
net pdnt.button.probe-z whb.button.probe-z halui.mdi-command-08 # Probe-Z use MDI command from main.ini
# unused, just exposes pendant internal status or as basic button
#net pdnt.mode-lead whb.halui.feed.selected-lead
#net pdnt.mode-mpg-feed whb.halui.feed.selected-mpg-feed
#net pdnt.mode-continuous whb.halui.feed.selected-continuous
#net pdnt.mode-step whb.halui.feed.selected-step
#net pdnt.button.mode-mpg whb.button.mode-continuous
#net pdnt.button.mode-step whb.button.mode-step
#net pdnt.button.fn whb.button.fn
#net pdnt.button.reset whb.button.reset
#net pdnt.button.stop whb.button.stop
#net pdnt.button.start-pause whb.button.start-pause
#net pdnt.button.s-on-off whb.button.s-on-off
#net pdnt.button.spindle-plus whb.button.spindle-plus
#net pdnt.button.spindle-minus whb.button.spindle-minus
#net pdnt.button.feed-plus whb.button.feed-plus
#net pdnt.button.feed-minus whb.button.feed-minus
# spindle related signals
#net pdnt.spindle.is-on whb.halui.spindle.is-on spindle.0.on
#net pdnt.spindle.start whb.halui.spindle.start halui.spindle.0.start
#net pdnt.spindle.stop whb.halui.spindle.stop halui.spindle.0.stop
#net pdnt.spindle.forward whb.halui.spindle.forward halui.spindle.0.forward
#net pdnt.spindle.reverse whb.halui.spindle.reverse halui.spindle.0.reverse
#net pdnt.spindle.increase whb.halui.spindle.increase halui.spindle.0.increase # reserved whb.button.macro-3
#net pdnt.spindle.decrease whb.halui.spindle.decrease halui.spindle.0.decrease # reserved whb.button.macro-4
#net pdnt.spindle-speed-abs whb.halui.spindle-speed-cmd spindle.0.speed-out-abs # speed cmd from motion in rpm absolue
# spindle speed override signals
#net pdnt.spindle-override.scale whb.halui.spindle-override.scale halui.spindle.0.override.scale # needed for both spindle+/- and spindleoverride+/- button
#net pdnt.spindle.override.value halui.spindle.0.override.value whb.halui.spindle-override.value # GUI feed rate related signals
#net pdnt.spindle.override.increase whb.halui.spindle-override.increase halui.spindle.0.override.increase
#net pdnt.spindle.override.decrease whb.halui.spindle-override.decrease halui.spindle.0.override.decrease
# GUI feed rate related signals can be used when program is running moving GUI slider
net pdnt.feed-override.scale whb.halui.feed-override.scale halui.feed-override.scale # needed for both FeedOverride+/- and rotary knob button
net pdnt.max-velocity.value whb.halui.max-velocity.value halui.max-velocity.value # needed for Mpg mode : button feed position% * max-velocity = Mpg feedrate
# take feed override min/max values from/to the GUI
net pdnt.feed-override.value halui.feed-override.value whb.halui.feed-override.value # GUI feed rate related signals
net pdnt.feed-override.increase whb.halui.feed-override.increase halui.feed-override.increase
net pdnt.feed-override.decrease whb.halui.feed-override.decrease halui.feed-override.decrease
# axis position related signals feedback
net pdnt.axis.x.pos-feedback halui.axis.x.pos-feedback whb.halui.axis.x.pos-feedback
net pdnt.axis.y.pos-feedback halui.axis.y.pos-feedback whb.halui.axis.y.pos-feedback
net pdnt.axis.z.pos-feedback halui.axis.z.pos-feedback whb.halui.axis.z.pos-feedback
# axis position related signals relative
net pdnt.axis.x.pos-relative halui.axis.x.pos-relative whb.halui.axis.x.pos-relative
net pdnt.axis.y.pos-relative halui.axis.y.pos-relative whb.halui.axis.y.pos-relative
net pdnt.axis.z.pos-relative halui.axis.z.pos-relative whb.halui.axis.z.pos-relative

5209
configs/mpgtest.pncconf Executable file

File diff suppressed because it is too large Load Diff

2
configs/mpgtest/custom.hal Executable file
View File

@@ -0,0 +1,2 @@
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_gvcp HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_postgui HAL commands here
# This file will not be overwritten when you run PNCconf again

324
configs/mpgtest/mpgtest.hal Executable file
View File

@@ -0,0 +1,324 @@
# Generated by PNCconf at Sat Aug 3 03:07:39 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_pci config="num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxxxx"
setp hm2_5i25.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt mux16 names=jogincr,foincr,mvoincr,soincr
addf hm2_5i25.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf jogincr servo-thread
addf foincr servo-thread
addf mvoincr servo-thread
addf soincr servo-thread
addf hm2_5i25.0.write servo-thread
setp hm2_5i25.0.dpll.01.timer-us -50
setp hm2_5i25.0.stepgen.timer-number 1
# external output signals
# external input signals
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.000500
net x-index-enable => pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output
# Step Gen signals/setup
setp hm2_5i25.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_5i25.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_5i25.0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_5i25.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_5i25.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp hm2_5i25.0.stepgen.00.step_type 0
setp hm2_5i25.0.stepgen.00.control-type 1
setp hm2_5i25.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_5i25.0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-output => hm2_5i25.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
net x-pos-fb => joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net x-enable => hm2_5i25.0.stepgen.00.enable
# ---setup home / limit switch signals---
net x-home-sw => joint.0.home-sw-in
net x-neg-limit => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in
#*******************
# AXIS Y JOINT 1
#*******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.000500
net y-index-enable => pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
# Step Gen signals/setup
setp hm2_5i25.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_5i25.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_5i25.0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_5i25.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_5i25.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp hm2_5i25.0.stepgen.01.step_type 0
setp hm2_5i25.0.stepgen.01.control-type 1
setp hm2_5i25.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_5i25.0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
net y-output => hm2_5i25.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_5i25.0.stepgen.01.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
net y-enable => hm2_5i25.0.stepgen.01.enable
# ---setup home / limit switch signals---
net y-home-sw => joint.1.home-sw-in
net y-neg-limit => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# AXIS Z JOINT 2
#*******************
setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.z.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.z.maxerror 0.000500
net z-index-enable => pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# Step Gen signals/setup
setp hm2_5i25.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_5i25.0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_5i25.0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_5i25.0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_5i25.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE
setp hm2_5i25.0.stepgen.02.step_type 0
setp hm2_5i25.0.stepgen.02.control-type 1
setp hm2_5i25.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_5i25.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
net z-output => hm2_5i25.0.stepgen.02.velocity-cmd
net z-pos-fb <= hm2_5i25.0.stepgen.02.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => hm2_5i25.0.stepgen.02.enable
# ---setup home / limit switch signals---
net z-home-sw => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net z-pos-limit => joint.2.pos-lim-sw-in
#*******************
# SPINDLE
#*******************
setp pid.s.Pgain [SPINDLE_0]P
setp pid.s.Igain [SPINDLE_0]I
setp pid.s.Dgain [SPINDLE_0]D
setp pid.s.bias [SPINDLE_0]BIAS
setp pid.s.FF0 [SPINDLE_0]FF0
setp pid.s.FF1 [SPINDLE_0]FF1
setp pid.s.FF2 [SPINDLE_0]FF2
setp pid.s.deadband [SPINDLE_0]DEADBAND
setp pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp pid.s.error-previous-target true
net spindle-index-enable => pid.s.index-enable
net spindle-enable => pid.s.enable
net spindle-vel-cmd-rpm => pid.s.command
net spindle-vel-fb-rpm => pid.s.feedback
net spindle-output <= pid.s.output
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm <= spindle.0.speed-out
net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-enable <= spindle.0.on
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse
net spindle-brake <= spindle.0.brake
net spindle-revs => spindle.0.revs
net spindle-at-speed => spindle.0.at-speed
net spindle-vel-fb-rps => spindle.0.speed-in
net spindle-index-enable <=> spindle.0.index-enable
# ---Setup spindle at speed signals---
sets spindle-at-speed true
#******************************
# connect miscellaneous signals
#******************************
# ---HALUI signals---
net axis-select-x halui.axis.x.select
net jog-x-pos halui.axis.x.plus
net jog-x-neg halui.axis.x.minus
net jog-x-analog halui.axis.x.analog
net x-is-homed halui.joint.0.is-homed
net axis-select-y halui.axis.y.select
net jog-y-pos halui.axis.y.plus
net jog-y-neg halui.axis.y.minus
net jog-y-analog halui.axis.y.analog
net y-is-homed halui.joint.1.is-homed
net axis-select-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
net spindle-manual-cw halui.spindle.0.forward
net spindle-manual-ccw halui.spindle.0.reverse
net spindle-manual-stop halui.spindle.0.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.axis.jog-speed
net MDI-mode halui.mode.is-mdi
# ---coolant signals---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# ---probe signal---
net probe-in => motion.probe-input
sets selected-jog-incr 0.000000
# connect feed override increments - MPG
setp halui.feed-override.direct-value false
setp halui.feed-override.scale .01
net fo-enable => halui.feed-override.count-enable
net axis-selected-count => halui.feed-override.counts
# connect max velocity override increments - MPG
setp halui.max-velocity.direct-value false
setp halui.max-velocity.scale 20.000000
net mvo-enable => halui.max-velocity.count-enable
net axis-selected-count => halui.max-velocity.counts
# connect spindle override increments - MPG
setp halui.spindle.0.override.direct-value false
setp halui.spindle.0.override.scale .01
net so-enable => halui.spindle.0.override.count-enable
net axis-selected-count => halui.spindle.0.override.counts
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
net tool-change-request <= iocontrol.0.tool-change
net tool-change-confirmed => iocontrol.0.tool-changed
net tool-number <= iocontrol.0.tool-prep-number
# ---Use external manual tool change dialog---
loadusr -W hal_manualtoolchange
net tool-change-request => hal_manualtoolchange.change
net tool-change-confirmed <= hal_manualtoolchange.changed
net tool-number => hal_manualtoolchange.number
# ---ignore tool prepare requests---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

211
configs/mpgtest/mpgtest.ini Executable file
View File

@@ -0,0 +1,211 @@
# Generated by PNCconf at Sat Aug 3 03:07:39 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = mpgtest
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = 1in .5in .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.500000
MAX_LINEAR_VELOCITY = 1.666667
MIN_LINEAR_VELOCITY = 0.003333
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i25.0
[HAL]
HALUI = halui
HALFILE = mpgtest.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
#******************************************
#******************************************
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

2
configs/mpgtest/shutdown.hal Executable file
View File

@@ -0,0 +1,2 @@
# Include your shutdown HAL commands here
# This file will not be overwritten when you run PNCconf again

4
configs/mpgtest/tool.tbl Executable file
View File

@@ -0,0 +1,4 @@
T1 P1 Z0.511 D0.125 ;1/8 end mill Sample Tool
T2 P2 Z0.1 D0.0625 ;1/16 end mill Sample Tool
T3 P3 Z1.273 D0.201 ;#7 tap drill Sample Tool
T4 P4 Z0 D2 ; 2 inch mill Sample Tool

View File

@@ -0,0 +1,7 @@
THREAD servo-thread
MAXCHAN 16
HMULT 1
HZOOM 1
HPOS 5.000000e-01
TMODE 0
RMODE 0

View File

@@ -0,0 +1,2 @@
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_gvcp HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_postgui HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,15 @@
# Halshow settings
# This file is generated automatically.
wm geometry . 700x475+610+302
placeFrames 0.3
set ::ratio 0.3
set ::old_w_leftf 160
set ::watchlist {
}
set ::workmode settings
set ::watchInterval 100
set ::col1_width 100
set ::ffmts
set ::ifmts
set ::alwaysOnTop 0
set ::autoSaveWatchlist 1

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,338 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=6"
setp hm2_5i24.0.pwmgen.pwm_frequency 15500
setp hm2_5i24.0.pwmgen.pdm_frequency 15500
setp hm2_5i24.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
addf hm2_5i24.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i24.0.write servo-thread
# setp hm2_5i24.0.dpll.01.timer-us -50
# stepgen setp hm2_5i24.0.stepgen.timer-number 1
# external output signals
# external input signals
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
# stepgen # This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.000500
net x-index-enable => pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.00.output-type 1
setp hm2_5i24.0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.00.offset-mode 1
net x-output => hm2_5i24.0.pwmgen.00.value
net x-pos-cmd joint.0.motor-pos-cmd
net x-enable joint.0.amp-enable-out => hm2_5i24.0.pwmgen.00.enable
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.00.counter-mode 0
setp hm2_5i24.0.encoder.00.filter 1
setp hm2_5i24.0.encoder.00.index-invert 0
setp hm2_5i24.0.encoder.00.index-mask 0
setp hm2_5i24.0.encoder.00.index-mask-invert 0
setp hm2_5i24.0.encoder.00.scale [JOINT_0]ENCODER_SCALE
net x-pos-fb <= hm2_5i24.0.encoder.00.position
net x-vel-fb <= hm2_5i24.0.encoder.00.velocity
net x-pos-fb => joint.0.motor-pos-fb
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.00.index-enable
net x-pos-rawcounts <= hm2_5i24.0.encoder.00.rawcounts
net x-pos-mtr hm2_5i24.0.encoder.03.position
net x-vel-mtr hm2_5i24.0.encoder.03.velocity
# ---setup home / limit switch signals---
net x-home-sw => joint.0.home-sw-in
net x-neg-limit => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in
#*******************
# AXIS Y JOINT 1
#*******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# stepgen # This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.000500
net y-index-enable => pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
# Step Gen signals/setup
# stepgen #setp hm2_5i24.0.stepgen.09.dirsetup [JOINT_1]DIRSETUP
# stepgen #setp hm2_5i24.0.stepgen.09.dirhold [JOINT_1]DIRHOLD
# stepgen #setp hm2_5i24.0.stepgen.09.steplen [JOINT_1]STEPLEN
# stepgen #setp hm2_5i24.0.stepgen.09.stepspace [JOINT_1]STEPSPACE
# stepgen #setp hm2_5i24.0.stepgen.09.position-scale [JOINT_1]STEP_SCALE
# stepgen #setp hm2_5i24.0.stepgen.09.step_type 0
# stepgen #setp hm2_5i24.0.stepgen.09.control-type 1
# stepgen #setp hm2_5i24.0.stepgen.09.maxaccel [JOINT_1]STEPGEN_MAXACCEL
# stepgen #setp hm2_5i24.0.stepgen.09.maxvel [JOINT_1]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
# stepgen net y-output => hm2_5i24.0.stepgen.09.velocity-cmd
# stepgen net y-pos-fb <= hm2_5i24.0.stepgen.09.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
# stepgen net y-enable => hm2_5i24.0.stepgen.09.enable
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.01.counter-mode 0
setp hm2_5i24.0.encoder.01.filter 1
setp hm2_5i24.0.encoder.01.index-invert 0
setp hm2_5i24.0.encoder.01.index-mask 0
setp hm2_5i24.0.encoder.01.index-mask-invert 0
setp hm2_5i24.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y-pos-fb <= hm2_5i24.0.encoder.01.position
net y-vel-fb <= hm2_5i24.0.encoder.01.velocity
net y-pos-fb => joint.1.motor-pos-fb
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.01.index-enable
net y-pos-rawcounts <= hm2_5i24.0.encoder.01.rawcounts
net y-pos-mtr hm2_5i24.0.encoder.04.position
net y-vel-mtr hm2_5i24.0.encoder.04.velocity
# ---setup home / limit switch signals---
net y-home-sw => joint.1.home-sw-in
net y-neg-limit => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# AXIS Z JOINT 2
#*******************
setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.z.error-previous-target true
# stepgen # This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.z.maxerror 0.000500
net z-index-enable => pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# Step Gen signals/setup
# stepgen setp hm2_5i24.0.stepgen.06.dirsetup [JOINT_2]DIRSETUP
# stepgen setp hm2_5i24.0.stepgen.06.dirhold [JOINT_2]DIRHOLD
# stepgen setp hm2_5i24.0.stepgen.06.steplen [JOINT_2]STEPLEN
# stepgen setp hm2_5i24.0.stepgen.06.stepspace [JOINT_2]STEPSPACE
# stepgen setp hm2_5i24.0.stepgen.06.position-scale [JOINT_2]STEP_SCALE
# stepgen setp hm2_5i24.0.stepgen.06.step_type 0
# stepgen setp hm2_5i24.0.stepgen.06.control-type 1
# stepgen setp hm2_5i24.0.stepgen.06.maxaccel [JOINT_2]STEPGEN_MAXACCEL
# stepgen setp hm2_5i24.0.stepgen.06.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
# stepgen net z-output => hm2_5i24.0.stepgen.06.velocity-cmd
# stepgen net z-pos-fb <= hm2_5i24.0.stepgen.06.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
# stepgen net z-enable => hm2_5i24.0.stepgen.06.enable
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.02.counter-mode 0
setp hm2_5i24.0.encoder.02.filter 1
setp hm2_5i24.0.encoder.02.index-invert 0
setp hm2_5i24.0.encoder.02.index-mask 0
setp hm2_5i24.0.encoder.02.index-mask-invert 0
setp hm2_5i24.0.encoder.02.scale [JOINT_2]ENCODER_SCALE
net z-pos-fb <= hm2_5i24.0.encoder.02.position
net z-vel-fb <= hm2_5i24.0.encoder.02.velocity
net z-pos-fb => joint.2.motor-pos-fb
net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.02.index-enable
net z-pos-rawcounts <= hm2_5i24.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net z-home-sw => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net z-pos-limit => joint.2.pos-lim-sw-in
#*******************
# SPINDLE
#*******************
setp pid.s.Pgain [SPINDLE_0]P
setp pid.s.Igain [SPINDLE_0]I
setp pid.s.Dgain [SPINDLE_0]D
setp pid.s.bias [SPINDLE_0]BIAS
setp pid.s.FF0 [SPINDLE_0]FF0
setp pid.s.FF1 [SPINDLE_0]FF1
setp pid.s.FF2 [SPINDLE_0]FF2
setp pid.s.deadband [SPINDLE_0]DEADBAND
setp pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp pid.s.error-previous-target true
net spindle-index-enable => pid.s.index-enable
net spindle-enable => pid.s.enable
net spindle-vel-cmd-rpm => pid.s.command
net spindle-vel-fb-rpm => pid.s.feedback
net spindle-output <= pid.s.output
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm <= spindle.0.speed-out
net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-enable <= spindle.0.on
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse
net spindle-brake <= spindle.0.brake
net spindle-revs => spindle.0.revs
net spindle-at-speed => spindle.0.at-speed
net spindle-vel-fb-rps => spindle.0.speed-in
net spindle-index-enable <=> spindle.0.index-enable
# ---Setup spindle at speed signals---
sets spindle-at-speed true
#******************************
# connect miscellaneous signals
#******************************
# ---HALUI signals---
net axis-select-x halui.axis.x.select
net jog-x-pos halui.axis.x.plus
net jog-x-neg halui.axis.x.minus
net jog-x-analog halui.axis.x.analog
net x-is-homed halui.joint.0.is-homed
net axis-select-y halui.axis.y.select
net jog-y-pos halui.axis.y.plus
net jog-y-neg halui.axis.y.minus
net jog-y-analog halui.axis.y.analog
net y-is-homed halui.joint.1.is-homed
net axis-select-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
net spindle-manual-cw halui.spindle.0.forward
net spindle-manual-ccw halui.spindle.0.reverse
net spindle-manual-stop halui.spindle.0.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.axis.jog-speed
net MDI-mode halui.mode.is-mdi
# ---coolant signals---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# ---probe signal---
net probe-in => motion.probe-input
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
net tool-change-request <= iocontrol.0.tool-change
net tool-change-confirmed => iocontrol.0.tool-changed
net tool-number <= iocontrol.0.tool-prep-number
# ---Use external manual tool change dialog---
loadusr -W hal_manualtoolchange
net tool-change-request => hal_manualtoolchange.change
net tool-change-confirmed <= hal_manualtoolchange.changed
net tool-number => hal_manualtoolchange.number
# ---ignore tool prepare requests---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

View File

@@ -0,0 +1,216 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = my_LinuxCNC_machine.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 40.0
ENCODER_SCALE = 5174.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12.0
MAX_LIMIT = 12.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
ENCODER_SCALE = 5084.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
ENCODER_SCALE = -9862
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

View File

@@ -0,0 +1,2 @@
# Include your shutdown HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,4 @@
T1 P1 Z0.511 D0.125 ;1/8 end mill Sample Tool
T2 P2 Z0.1 D0.0625 ;1/16 end mill Sample Tool
T3 P3 Z1.273 D0.201 ;#7 tap drill Sample Tool
T4 P4 Z0 D2 ; 2 inch mill Sample Tool

View File

@@ -0,0 +1,17 @@
THREAD servo-thread
MAXCHAN 16
HMULT 1
HZOOM 3
HPOS 5.000000e-01
CHAN 1
PIN pid.x.error
VSCALE 0
VPOS 0.500000
VOFF 0.000000e+00
CHAN 2
PIN pid.x.output
VSCALE 0
VPOS 0.500000
VOFF 0.000000e+00
TMODE 0
RMODE 1

View File

@@ -0,0 +1,2 @@
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_gvcp HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_postgui HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,15 @@
# Halshow settings
# This file is generated automatically.
wm geometry . 700x475+610+302
placeFrames 0.3
set ::ratio 0.3
set ::old_w_leftf 160
set ::watchlist {
}
set ::workmode settings
set ::watchInterval 100
set ::col1_width 100
set ::ffmts
set ::ifmts
set ::alwaysOnTop 0
set ::autoSaveWatchlist 1

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,338 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=6"
setp hm2_5i24.0.pwmgen.pwm_frequency 15500
setp hm2_5i24.0.pwmgen.pdm_frequency 15500
setp hm2_5i24.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
addf hm2_5i24.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i24.0.write servo-thread
# setp hm2_5i24.0.dpll.01.timer-us -50
# stepgen setp hm2_5i24.0.stepgen.timer-number 1
# external output signals
# external input signals
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
# stepgen # This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.000500
net x-index-enable => pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.00.output-type 1
setp hm2_5i24.0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.00.offset-mode 1
net x-output => hm2_5i24.0.pwmgen.00.value
net x-pos-cmd joint.0.motor-pos-cmd
net x-enable joint.0.amp-enable-out => hm2_5i24.0.pwmgen.00.enable
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.03.counter-mode 0
setp hm2_5i24.0.encoder.03.filter 1
setp hm2_5i24.0.encoder.03.index-invert 0
setp hm2_5i24.0.encoder.03.index-mask 0
setp hm2_5i24.0.encoder.03.index-mask-invert 0
setp hm2_5i24.0.encoder.03.scale [JOINT_0]ENCODER_MTR_SCALE
net x-pos-fb <= hm2_5i24.0.encoder.03.position
net x-vel-fb <= hm2_5i24.0.encoder.03.velocity
net x-pos-fb => joint.0.motor-pos-fb
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.03.index-enable
net x-pos-rawcounts <= hm2_5i24.0.encoder.03.rawcounts
#net x-pos-mtr hm2_5i24.0.encoder.03.position
#net x-vel-mtr hm2_5i24.0.encoder.03.velocity
# ---setup home / limit switch signals---
net x-home-sw => joint.0.home-sw-in
net x-neg-limit => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in
#*******************
# AXIS Y JOINT 1
#*******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# stepgen # This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.000500
net y-index-enable => pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
# Step Gen signals/setup
# stepgen #setp hm2_5i24.0.stepgen.09.dirsetup [JOINT_1]DIRSETUP
# stepgen #setp hm2_5i24.0.stepgen.09.dirhold [JOINT_1]DIRHOLD
# stepgen #setp hm2_5i24.0.stepgen.09.steplen [JOINT_1]STEPLEN
# stepgen #setp hm2_5i24.0.stepgen.09.stepspace [JOINT_1]STEPSPACE
# stepgen #setp hm2_5i24.0.stepgen.09.position-scale [JOINT_1]STEP_SCALE
# stepgen #setp hm2_5i24.0.stepgen.09.step_type 0
# stepgen #setp hm2_5i24.0.stepgen.09.control-type 1
# stepgen #setp hm2_5i24.0.stepgen.09.maxaccel [JOINT_1]STEPGEN_MAXACCEL
# stepgen #setp hm2_5i24.0.stepgen.09.maxvel [JOINT_1]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
# stepgen net y-output => hm2_5i24.0.stepgen.09.velocity-cmd
# stepgen net y-pos-fb <= hm2_5i24.0.stepgen.09.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
# stepgen net y-enable => hm2_5i24.0.stepgen.09.enable
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.01.counter-mode 0
setp hm2_5i24.0.encoder.01.filter 1
setp hm2_5i24.0.encoder.01.index-invert 0
setp hm2_5i24.0.encoder.01.index-mask 0
setp hm2_5i24.0.encoder.01.index-mask-invert 0
setp hm2_5i24.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y-pos-fb <= hm2_5i24.0.encoder.01.position
net y-vel-fb <= hm2_5i24.0.encoder.01.velocity
net y-pos-fb => joint.1.motor-pos-fb
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.01.index-enable
net y-pos-rawcounts <= hm2_5i24.0.encoder.01.rawcounts
net y-pos-mtr hm2_5i24.0.encoder.04.position
net y-vel-mtr hm2_5i24.0.encoder.04.velocity
# ---setup home / limit switch signals---
net y-home-sw => joint.1.home-sw-in
net y-neg-limit => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# AXIS Z JOINT 2
#*******************
setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.z.error-previous-target true
# stepgen # This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.z.maxerror 0.000500
net z-index-enable => pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# Step Gen signals/setup
# stepgen setp hm2_5i24.0.stepgen.06.dirsetup [JOINT_2]DIRSETUP
# stepgen setp hm2_5i24.0.stepgen.06.dirhold [JOINT_2]DIRHOLD
# stepgen setp hm2_5i24.0.stepgen.06.steplen [JOINT_2]STEPLEN
# stepgen setp hm2_5i24.0.stepgen.06.stepspace [JOINT_2]STEPSPACE
# stepgen setp hm2_5i24.0.stepgen.06.position-scale [JOINT_2]STEP_SCALE
# stepgen setp hm2_5i24.0.stepgen.06.step_type 0
# stepgen setp hm2_5i24.0.stepgen.06.control-type 1
# stepgen setp hm2_5i24.0.stepgen.06.maxaccel [JOINT_2]STEPGEN_MAXACCEL
# stepgen setp hm2_5i24.0.stepgen.06.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
# stepgen net z-output => hm2_5i24.0.stepgen.06.velocity-cmd
# stepgen net z-pos-fb <= hm2_5i24.0.stepgen.06.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
# stepgen net z-enable => hm2_5i24.0.stepgen.06.enable
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.02.counter-mode 0
setp hm2_5i24.0.encoder.02.filter 1
setp hm2_5i24.0.encoder.02.index-invert 0
setp hm2_5i24.0.encoder.02.index-mask 0
setp hm2_5i24.0.encoder.02.index-mask-invert 0
setp hm2_5i24.0.encoder.02.scale [JOINT_2]ENCODER_SCALE
net z-pos-fb <= hm2_5i24.0.encoder.02.position
net z-vel-fb <= hm2_5i24.0.encoder.02.velocity
net z-pos-fb => joint.2.motor-pos-fb
net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.02.index-enable
net z-pos-rawcounts <= hm2_5i24.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net z-home-sw => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net z-pos-limit => joint.2.pos-lim-sw-in
#*******************
# SPINDLE
#*******************
setp pid.s.Pgain [SPINDLE_0]P
setp pid.s.Igain [SPINDLE_0]I
setp pid.s.Dgain [SPINDLE_0]D
setp pid.s.bias [SPINDLE_0]BIAS
setp pid.s.FF0 [SPINDLE_0]FF0
setp pid.s.FF1 [SPINDLE_0]FF1
setp pid.s.FF2 [SPINDLE_0]FF2
setp pid.s.deadband [SPINDLE_0]DEADBAND
setp pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp pid.s.error-previous-target true
net spindle-index-enable => pid.s.index-enable
net spindle-enable => pid.s.enable
net spindle-vel-cmd-rpm => pid.s.command
net spindle-vel-fb-rpm => pid.s.feedback
net spindle-output <= pid.s.output
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm <= spindle.0.speed-out
net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-enable <= spindle.0.on
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse
net spindle-brake <= spindle.0.brake
net spindle-revs => spindle.0.revs
net spindle-at-speed => spindle.0.at-speed
net spindle-vel-fb-rps => spindle.0.speed-in
net spindle-index-enable <=> spindle.0.index-enable
# ---Setup spindle at speed signals---
sets spindle-at-speed true
#******************************
# connect miscellaneous signals
#******************************
# ---HALUI signals---
net axis-select-x halui.axis.x.select
net jog-x-pos halui.axis.x.plus
net jog-x-neg halui.axis.x.minus
net jog-x-analog halui.axis.x.analog
net x-is-homed halui.joint.0.is-homed
net axis-select-y halui.axis.y.select
net jog-y-pos halui.axis.y.plus
net jog-y-neg halui.axis.y.minus
net jog-y-analog halui.axis.y.analog
net y-is-homed halui.joint.1.is-homed
net axis-select-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
net spindle-manual-cw halui.spindle.0.forward
net spindle-manual-ccw halui.spindle.0.reverse
net spindle-manual-stop halui.spindle.0.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.axis.jog-speed
net MDI-mode halui.mode.is-mdi
# ---coolant signals---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# ---probe signal---
net probe-in => motion.probe-input
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
net tool-change-request <= iocontrol.0.tool-change
net tool-change-confirmed => iocontrol.0.tool-changed
net tool-number <= iocontrol.0.tool-prep-number
# ---Use external manual tool change dialog---
loadusr -W hal_manualtoolchange
net tool-change-request => hal_manualtoolchange.change
net tool-change-confirmed <= hal_manualtoolchange.changed
net tool-number => hal_manualtoolchange.number
# ---ignore tool prepare requests---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

View File

@@ -0,0 +1,218 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = my_LinuxCNC_machine.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 400
I = 10
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 1
ENCODER_SCALE = 5174.0
ENCODER_MTR_SCALE = -27939.6
# /5.4
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12.0
MAX_LIMIT = 12.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = 5084
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
ENCODER_SCALE = -9862
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

View File

@@ -0,0 +1,218 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = my_LinuxCNC_machine.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 400
I = 10
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 1
ENCODER_SCALE = 5174.0
ENCODER_MTR_SCALE = -27939.6
# /5.4
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12.0
MAX_LIMIT = 12.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = 5084
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
ENCODER_SCALE = -9862
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

View File

@@ -0,0 +1,2 @@
# Include your shutdown HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,4 @@
T1 P1 Z0.511 D0.125 ;1/8 end mill Sample Tool
T2 P2 Z0.1 D0.0625 ;1/16 end mill Sample Tool
T3 P3 Z1.273 D0.201 ;#7 tap drill Sample Tool
T4 P4 Z0 D2 ; 2 inch mill Sample Tool

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
THREAD servo-thread
MAXCHAN 16
HMULT 1
HZOOM 3
HPOS 4.873061e-01
CHAN 3
PIN pid.x.command
VSCALE -1
VPOS 0.627706
VAC 0.000000e+00
CHOFF
CHAN 4
PIN pid.x.feedback
VSCALE -1
VPOS 0.629149
VAC 0.000000e+00
CHOFF
CHAN 5
PIN pid.x.error
VSCALE -8
VPOS 0.456633
VAC 0.000000e+00
CHOFF
CHAN 1
PIN joint.0.error
VSCALE 0
VPOS 0.284271
VOFF 0.000000e+00
CHAN 2
PIN joint.0.motor-pos-fb
VSCALE 0
VPOS 0.353535
VOFF 0.000000e+00
TMODE 0
RMODE 0

View File

@@ -0,0 +1,2 @@
# Include your custom HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_gvcp HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,2 @@
# Include your custom_postgui HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,22 @@
# Halshow settings
# This file is generated automatically.
wm geometry . 700x475+628+261
placeFrames 0.3
set ::ratio 0.3
set ::old_w_leftf 160
set ::watchlist {
pin+axis.x.jog-scale
pin+axis.x.pos-cmd
pin+axis.x.teleop-pos-cmd
pin+axis.x.kb-jog-active
pin+axis.x.eoffset
pin+axis.x.jog-counts
pin+axisui.jog.x
}
set ::workmode showhal
set ::watchInterval 100
set ::col1_width 100
set ::ffmts
set ::ifmts
set ::alwaysOnTop 0
set ::autoSaveWatchlist 1

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,378 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS base_thread_fp=1
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=6"
loadrt sum2 count=6
addf sum2.0 servo-thread
addf sum2.1 servo-thread
addf sum2.2 servo-thread
addf sum2.3 servo-thread
addf sum2.4 servo-thread
addf sum2.5 servo-thread
setp hm2_5i24.0.pwmgen.pwm_frequency 15500
setp hm2_5i24.0.pwmgen.pdm_frequency 15500
setp hm2_5i24.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s,pid.xl,pid.yl
addf hm2_5i24.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.xl.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i24.0.write servo-thread
# setp hm2_5i24.0.dpll.01.timer-us -50
# stepgen setp hm2_5i24.0.stepgen.timer-number 1
# external output signals
# external input signals
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain 0
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
#setp pid.x.maxerror [JOINT_0]MAX_ERROR
net x-enable => pid.x.enable
net x-pos-mtr => pid.x.feedback
net x-output-mtr <= pid.x.output
setp pid.xl.Pgain [JOINT_0]P_LIN
setp pid.xl.Igain [JOINT_0]I_LIN
setp pid.xl.Dgain [JOINT_0]D_LIN
setp pid.xl.bias 0
setp pid.xl.FF0 0
setp pid.xl.FF1 0
setp pid.xl.FF2 0
setp pid.xl.deadband [JOINT_0]DEADBAND
setp pid.xl.maxoutput [JOINT_0]MAX_OUTPUT_LINEAR
setp pid.xl.error-previous-target true
#setp pid.xl.maxerror [JOINT_0]MAX_ERROR_LINEAR
net x-enable => pid.xl.enable
net x-pos-lin => pid.xl.feedback
net x-output-lin <= pid.xl.output
#setp sum2.4.gain0 -1
#setp sum2.4.gain1 -1
net x-output-lin => sum2.4.in0
net x-output-mtr => sum2.4.in1
net x-output <= sum2.4.out
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-pos-cmd => pid.xl.command
net x-pos-cmd => pid.x.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.00.output-type 1
setp hm2_5i24.0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.00.offset-mode 1
net x-output => hm2_5i24.0.pwmgen.00.value
net x-enable joint.0.amp-enable-out => hm2_5i24.0.pwmgen.00.enable
net x-pos-rawcounts <= hm2_5i24.0.encoder.00.rawcounts
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.03.counter-mode 0
setp hm2_5i24.0.encoder.03.filter 1
setp hm2_5i24.0.encoder.03.index-invert 0
setp hm2_5i24.0.encoder.03.index-mask 0
setp hm2_5i24.0.encoder.03.index-mask-invert 0
setp hm2_5i24.0.encoder.03.scale [JOINT_0]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.00.counter-mode 0
setp hm2_5i24.0.encoder.00.filter 1
setp hm2_5i24.0.encoder.00.index-invert 0
setp hm2_5i24.0.encoder.00.index-mask 0
setp hm2_5i24.0.encoder.00.index-mask-invert 0
setp hm2_5i24.0.encoder.00.scale [JOINT_0]ENCODER_LIN_SCALE
net x-pos-mtr <= hm2_5i24.0.encoder.03.position
net x-vel-mtr <= hm2_5i24.0.encoder.03.velocity
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.03.index-enable
#net x-pos-mtr => joint.0.motor-pos-fb
net x-pos-lin <= hm2_5i24.0.encoder.00.position
net x-vel-lin <= hm2_5i24.0.encoder.00.velocity
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.00.index-enable
net x-pos-lin => joint.0.motor-pos-fb
# ---setup home / limit switch signals---
net x-home-sw => joint.0.home-sw-in
net x-neg-limit => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in
#*******************
# AXIS Y JOINT 1
#*******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# stepgen # This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.000500
net y-index-enable => pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
# Step Gen signals/setup
# stepgen #setp hm2_5i24.0.stepgen.09.dirsetup [JOINT_1]DIRSETUP
# stepgen #setp hm2_5i24.0.stepgen.09.dirhold [JOINT_1]DIRHOLD
# stepgen #setp hm2_5i24.0.stepgen.09.steplen [JOINT_1]STEPLEN
# stepgen #setp hm2_5i24.0.stepgen.09.stepspace [JOINT_1]STEPSPACE
# stepgen #setp hm2_5i24.0.stepgen.09.position-scale [JOINT_1]STEP_SCALE
# stepgen #setp hm2_5i24.0.stepgen.09.step_type 0
# stepgen #setp hm2_5i24.0.stepgen.09.control-type 1
# stepgen #setp hm2_5i24.0.stepgen.09.maxaccel [JOINT_1]STEPGEN_MAXACCEL
# stepgen #setp hm2_5i24.0.stepgen.09.maxvel [JOINT_1]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
# stepgen net y-output => hm2_5i24.0.stepgen.09.velocity-cmd
# stepgen net y-pos-fb <= hm2_5i24.0.stepgen.09.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
# stepgen net y-enable => hm2_5i24.0.stepgen.09.enable
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.01.counter-mode 0
setp hm2_5i24.0.encoder.01.filter 1
setp hm2_5i24.0.encoder.01.index-invert 0
setp hm2_5i24.0.encoder.01.index-mask 0
setp hm2_5i24.0.encoder.01.index-mask-invert 0
setp hm2_5i24.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y-pos-fb <= hm2_5i24.0.encoder.01.position
net y-vel-fb <= hm2_5i24.0.encoder.01.velocity
net y-pos-fb => joint.1.motor-pos-fb
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.01.index-enable
net y-pos-rawcounts <= hm2_5i24.0.encoder.01.rawcounts
net y-pos-mtr hm2_5i24.0.encoder.04.position
net y-vel-mtr hm2_5i24.0.encoder.04.velocity
# ---setup home / limit switch signals---
net y-home-sw => joint.1.home-sw-in
net y-neg-limit => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# AXIS Z JOINT 2
#*******************
setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.z.error-previous-target true
# stepgen # This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.z.maxerror 0.000500
net z-index-enable => pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# Step Gen signals/setup
# stepgen setp hm2_5i24.0.stepgen.06.dirsetup [JOINT_2]DIRSETUP
# stepgen setp hm2_5i24.0.stepgen.06.dirhold [JOINT_2]DIRHOLD
# stepgen setp hm2_5i24.0.stepgen.06.steplen [JOINT_2]STEPLEN
# stepgen setp hm2_5i24.0.stepgen.06.stepspace [JOINT_2]STEPSPACE
# stepgen setp hm2_5i24.0.stepgen.06.position-scale [JOINT_2]STEP_SCALE
# stepgen setp hm2_5i24.0.stepgen.06.step_type 0
# stepgen setp hm2_5i24.0.stepgen.06.control-type 1
# stepgen setp hm2_5i24.0.stepgen.06.maxaccel [JOINT_2]STEPGEN_MAXACCEL
# stepgen setp hm2_5i24.0.stepgen.06.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
# stepgen net z-output => hm2_5i24.0.stepgen.06.velocity-cmd
# stepgen net z-pos-fb <= hm2_5i24.0.stepgen.06.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
# stepgen net z-enable => hm2_5i24.0.stepgen.06.enable
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.02.counter-mode 0
setp hm2_5i24.0.encoder.02.filter 1
setp hm2_5i24.0.encoder.02.index-invert 0
setp hm2_5i24.0.encoder.02.index-mask 0
setp hm2_5i24.0.encoder.02.index-mask-invert 0
setp hm2_5i24.0.encoder.02.scale [JOINT_2]ENCODER_SCALE
net z-pos-fb <= hm2_5i24.0.encoder.02.position
net z-vel-fb <= hm2_5i24.0.encoder.02.velocity
net z-pos-fb => joint.2.motor-pos-fb
net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.02.index-enable
net z-pos-rawcounts <= hm2_5i24.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net z-home-sw => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net z-pos-limit => joint.2.pos-lim-sw-in
#*******************
# SPINDLE
#*******************
setp pid.s.Pgain [SPINDLE_0]P
setp pid.s.Igain [SPINDLE_0]I
setp pid.s.Dgain [SPINDLE_0]D
setp pid.s.bias [SPINDLE_0]BIAS
setp pid.s.FF0 [SPINDLE_0]FF0
setp pid.s.FF1 [SPINDLE_0]FF1
setp pid.s.FF2 [SPINDLE_0]FF2
setp pid.s.deadband [SPINDLE_0]DEADBAND
setp pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp pid.s.error-previous-target true
net spindle-index-enable => pid.s.index-enable
net spindle-enable => pid.s.enable
net spindle-vel-cmd-rpm => pid.s.command
net spindle-vel-fb-rpm => pid.s.feedback
net spindle-output <= pid.s.output
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm <= spindle.0.speed-out
net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-enable <= spindle.0.on
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse
net spindle-brake <= spindle.0.brake
net spindle-revs => spindle.0.revs
net spindle-at-speed => spindle.0.at-speed
net spindle-vel-fb-rps => spindle.0.speed-in
net spindle-index-enable <=> spindle.0.index-enable
# ---Setup spindle at speed signals---
sets spindle-at-speed true
#******************************
# connect miscellaneous signals
#******************************
# ---HALUI signals---
net axis-select-x halui.axis.x.select
net jog-x-pos halui.axis.x.plus
net jog-x-neg halui.axis.x.minus
net jog-x-analog halui.axis.x.analog
net x-is-homed halui.joint.0.is-homed
net axis-select-y halui.axis.y.select
net jog-y-pos halui.axis.y.plus
net jog-y-neg halui.axis.y.minus
net jog-y-analog halui.axis.y.analog
net y-is-homed halui.joint.1.is-homed
net axis-select-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
net spindle-manual-cw halui.spindle.0.forward
net spindle-manual-ccw halui.spindle.0.reverse
net spindle-manual-stop halui.spindle.0.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.axis.jog-speed
net MDI-mode halui.mode.is-mdi
# ---coolant signals---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# ---probe signal---
net probe-in => motion.probe-input
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
net tool-change-request <= iocontrol.0.tool-change
net tool-change-confirmed => iocontrol.0.tool-changed
net tool-number <= iocontrol.0.tool-prep-number
# ---Use external manual tool change dialog---
loadusr -W hal_manualtoolchange
net tool-change-request => hal_manualtoolchange.change
net tool-change-confirmed <= hal_manualtoolchange.changed
net tool-number => hal_manualtoolchange.number
# ---ignore tool prepare requests---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

View File

@@ -0,0 +1,225 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = my_LinuxCNC_machine.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 400
I = 0
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 400
I_LIN = 2000
D_LIN = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 100
MAX_OUTPUT_LINEAR = 100
ENCODER_LIN_SCALE = 5174
ENCODER_MTR_SCALE = -27939.6
# /5.4
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12.0
MAX_LIMIT = 12.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 10.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = 5084
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
ENCODER_SCALE = -9862
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

View File

@@ -0,0 +1,225 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
CYCLE_TIME = 100
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = my_LinuxCNC_machine.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
P = 400
I = 0
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 400
I_LIN = 100
D_LIN = 4
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 100
MAX_OUTPUT_LINEAR = 100
ENCODER_LIN_SCALE = 5174
ENCODER_MTR_SCALE = -27939.6
# /5.4
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12.0
MAX_LIMIT = 12.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 10.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = 5084
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
ENCODER_SCALE = -9862
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

View File

@@ -0,0 +1,2 @@
# Include your shutdown HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,4 @@
T1 P1 Z0.511 D0.125 ;1/8 end mill Sample Tool
T2 P2 Z0.1 D0.0625 ;1/16 end mill Sample Tool
T3 P3 Z1.273 D0.201 ;#7 tap drill Sample Tool
T4 P4 Z0 D2 ; 2 inch mill Sample Tool

19
configs/sim.axis.ngcgui/README Executable file
View File

@@ -0,0 +1,19 @@
ngcgui -- Create tabs in the axis gui for subroutines.
pyngcgui -- python, gladevcp implementation of ngcgui that can be embedded in guis like touchy, gscreen gmoccapy
In the packaged version of LinuxCNC, ngcgui_lib is created as a symbolic link to a system directory owned by root:
/usr/share/linuxcnc/ncfiles/ngcgui_lib
This library is not ordinarily changed by the user. To modify a library .ngc file, copy the .ngc file to the [DISPLAY]PROGRAM_PREFIX directory or to a directory that is included in the path specified by [RS274NGC]SUBROUTINE_PATH and (optionally) change the filename.
The search path for LinuxCNC and ngcgui is:
[DISPLAY]PROGRAM_PREFIX
followed in order by all the colon (:) separated directories listed in:
[RS274NGC]SUBROUTINE_PATH
The search for subroutine files uses the first file found with a matching name.
See the examples and the documentation for configuring ngcgui in the startup ini file.

View File

@@ -0,0 +1,21 @@
ngcgui -- Crea pestañas en el gui Axis para las subrutinas.
pyngcgui -- implementación de ngcgui python, gladevcp que se puede incrustar en guis como gmoccapy, touchy, gscreen
En la versión empaquetada de LinuxCNC, ngcgui_lib se crea como un enlace simbólico a un directorio del sistema propiedad root:
/usr/share/linuxcnc/ncfiles/ngcgui_lib
Esta biblioteca normalmente no es cambiada por el usuario. Para modificar un archivo .ngc de la biblioteca,
copie el archivo .ngc en el directorio [DISPLAY]PROGRAM_PREFIX o en un directorio que esté incluido en la
ruta especificada por [RS274NGC]SUBROUTINE_PATH y (opcionalmente) cambie el nombre del archivo.
La ruta de búsqueda para LinuxCNC y ngcgui es:
[DISPLAY]PROGRAM_PREFIX
Seguido en orden por todos los directorios listados separados por dos puntos (:) en:
[RS274NGC]SUBROUTINE_PATH
La búsqueda de archivos de subrutinas utiliza el primer archivo encontrado con un nombre coincidente.
Consulte los ejemplos y la documentación para configurar ngcgui en el archivo ini de arranque.

View File

@@ -0,0 +1,14 @@
# user command file to increase default axis gui size
# invoke with the ini file item:
# [DISPLAY]USER_COMMAND_FILE = axis_resize.py
maxgeo=root_window.tk.call("wm","maxsize",".")
# custom size (to accommodate bigger gladevcp panels)
newsize = '800' + 'x' + '680'
# for fullsize: uncomment this
# newsize=fullsize
root_window.tk.call("wm","geometry",".",newsize)

View File

@@ -0,0 +1,31 @@
#-----------------------------------------------------------------------
# Copyright: 2013
# Author: Dewey Garrett <dgarrett@panix.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#-----------------------------------------------------------------------
# Expand to fullscreen
# for axis gui, include ini item:
# Usage (in ini file):
# [DISPLAY]USER_COMMAND_FILE = fullscreen.py
maxgeo=root_window.tk.call("wm","maxsize",".")
if type(maxgeo) is type(''):
fullsize=maxgeo.split(' ')[0] + 'x' + maxgeo.split(' ')[1]
else:
fullsize=str(maxgeo[0]) + 'x' + str(maxgeo[1])
root_window.tk.call("wm","geometry",".",fullsize)

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<object class="HAL_GremlinPlus" id="hal_gremlin_plus1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<property name="debug">False</property>
<property name="width">-1</property>
<property name="height">-1</property>
<property name="glade_file">default</property>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,10 @@
T1 P1 D0.100000 Z+0.100000 I+95.000000 J+155.000000 Q1 ;
T2 P2 D0.100000 I+85.000000 J+25.000000 Q2 ;
T3 P3 D0.100000 I+275.000000 J+335.000000 Q3 ;
T4 P4 D0.100000 I+265.000000 J+205.000000 Q4 ;
T5 P5 D0.100000 I+210.000000 J+150.000000 Q5 ;
T6 P6 D0.100000 X+0.500000 Z+0.500000 I+120.000000 J+60.000000 Q6 ;
T7 P7 D0.100000 I-30.000000 J+30.000000 Q7 ;
T8 P8 D0.100000 I+240.000000 J+300.000000 Q8 ;
T9 P9 D0.100000 Q9 ;
T10 P10 D0. ; demo zero diameter

View File

@@ -0,0 +1,161 @@
[EMC]
VERSION = 1.1
MACHINE = Ngcgui-demo
DEBUG = 0
[DISPLAY]
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
TKPKG = Ngcgui 1.0
TKPKG = Ngcguittt 1.0
# Ngcgui must precede Ngcguittt
NGCGUI_FONT = Helvetica -12 normal
# for startup NGCGUI_PREAMBLE, NGCGUI_SUBFILE, NGCGUI_POSTAMBLE, TTT_PREAMBLE
# items, specifly:
# a) absolute filename (start with /)
# b) relative filename: search directories specified by
# [DISPLAY]PROGRAM_PREFIX and [RS274NGC]SUBROUTINE_PATH
NGCGUI_PREAMBLE = in_std.ngc
NGCGUI_SUBFILE = xyz.ngc
NGCGUI_SUBFILE = iquad.ngc
NGCGUI_SUBFILE = db25.ngc
NGCGUI_SUBFILE = qpocket.ngc
NGCGUI_SUBFILE = qpex.ngc
NGCGUI_SUBFILE = arc2.ngc
NGCGUI_SUBFILE = ihex.ngc
NGCGUI_SUBFILE = gosper.ngc
# specify "" for a custom tab page
NGCGUI_SUBFILE = ""
NGCGUI_OPTIONS =
#NGCGUI_OPTIONS = opt1 opt2 ...
# opt items:
# nonew -- disallow making new tab page
# noremove -- disallow removing any tab page
# noauto -- no autosend (makeFile, then manually send)
# noiframe -- no internal image, image on separate toplevel
# nom2 -- no m2 terminator (use %)
TTT = truetype-tracer
TTT_PREAMBLE = in_std.ngc
DISPLAY = axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
EDITOR = gedit
# use tooltable columns for diam and z only:
TOOL_EDITOR = tooledit diam z
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[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]
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs
USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 2
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
HOME = 0.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

View File

@@ -0,0 +1 @@
ngcgui -- comprehensive example

View File

@@ -0,0 +1,174 @@
# Sat Aug 03 09:34:55 CDT 2024
#
# This file: ./ngcgui_cmds.hal
# Created by: /usr/share/linuxcnc/hallib/basic_sim.tcl
# With options:
# From inifile: /home/linuxcnc/linuxcnc/configs/sim.axis.ngcgui/ngcgui.ini
# Halfiles: LIB:basic_sim.tcl
#
# This file contains the hal commands produced by basic_sim.tcl
# (and any hal commands executed prior to its execution).
# ------------------------------------------------------------------
# To use ./ngcgui_cmds.hal in the original inifile (or a copy of it),
# edit to change:
# [HAL]
# HALFILE = LIB:basic_sim.tcl parameters
# to:
# [HAL]
# HALFILE = ./ngcgui_cmds.hal
#
# Notes:
# 1) Inifile Variables substitutions specified in the inifile
# and interpreted by halcmd are automatically substituted
# in the created halfile (./ngcgui_cmds.hal).
# 2) Input pins connected to a signal with no writer are
# not included in the setp listings herein so must be added
# manually
#
# user space components
loadusr -W hal_manualtoolchange
# components
#preloaded module: loadrt tpmod
#preloaded module: loadrt homemod
loadrt trivkins
loadrt motmod base_period_nsec=0 servo_period_nsec=1000000 num_joints=3
#loadrt __servo-thread (not loaded by loadrt, no args saved)
loadrt pid names=J0_pid,J1_pid,J2_pid
loadrt mux2 names=J0_mux,J1_mux,J2_mux
loadrt ddt names=J0_vel,J0_accel,J1_vel,J1_accel,J2_vel,J2_accel
loadrt hypot names=hyp_xy,hyp_xyz
loadrt sim_home_switch names=J0_switch,J1_switch,J2_switch
loadrt sim_spindle names=sim_spindle
loadrt limit2 names=limit_speed
loadrt lowpass names=spindle_mass
loadrt near names=near_speed
loadrt scale names=rpm_rps
# pin aliases
# param aliases
# signals
# nets
net J0:acc J0_accel.out
net J0:enable joint.0.amp-enable-out => J0_pid.enable
net J0:homesw J0_switch.home-sw => joint.0.home-sw-in
net J0:on-pos J0_pid.output => J0_mux.in1
net J0:pos-cmd joint.0.motor-pos-cmd => J0_pid.command
net J0:pos-fb J0_mux.out => J0_mux.in0 J0_switch.cur-pos J0_vel.in joint.0.motor-pos-fb
net J0:vel J0_vel.out => J0_accel.in hyp_xy.in0 hyp_xyz.in0
net J1:acc J1_accel.out
net J1:enable joint.1.amp-enable-out => J1_pid.enable
net J1:homesw J1_switch.home-sw => joint.1.home-sw-in
net J1:on-pos J1_pid.output => J1_mux.in1
net J1:pos-cmd joint.1.motor-pos-cmd => J1_pid.command
net J1:pos-fb J1_mux.out => J1_mux.in0 J1_switch.cur-pos J1_vel.in joint.1.motor-pos-fb
net J1:vel J1_vel.out => J1_accel.in hyp_xy.in1 hyp_xyz.in1
net J2:acc J2_accel.out
net J2:enable joint.2.amp-enable-out => J2_pid.enable
net J2:homesw J2_switch.home-sw => joint.2.home-sw-in
net J2:on-pos J2_pid.output => J2_mux.in1
net J2:pos-cmd joint.2.motor-pos-cmd => J2_pid.command
net J2:pos-fb J2_mux.out => J2_mux.in0 J2_switch.cur-pos J2_vel.in joint.2.motor-pos-fb
net J2:vel J2_vel.out => J2_accel.in hyp_xyz.in2
net estop:loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
net sample:enable motion.motion-enabled => J0_mux.sel J1_mux.sel J2_mux.sel
net spindle-at-speed near_speed.out => spindle.0.at-speed
net spindle-index-enable sim_spindle.index-enable <=> spindle.0.index-enable
net spindle-orient spindle.0.orient => spindle.0.is-oriented
net spindle-pos sim_spindle.position-fb => spindle.0.revs
net spindle-rpm-filtered spindle_mass.out => near_speed.in2 rpm_rps.in
net spindle-rps-filtered rpm_rps.out => spindle.0.speed-in
net spindle-speed-cmd spindle.0.speed-out => limit_speed.in near_speed.in1
net spindle-speed-limited limit_speed.out => sim_spindle.velocity-cmd spindle_mass.in
net tool:change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool:changed hal_manualtoolchange.changed => iocontrol.0.tool-changed
net tool:prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
net tool:prep-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net xy:vel hyp_xy.out
net xyz:vel hyp_xyz.out
# parameter values
setp J0_accel.tmax 0
setp J0_mux.tmax 0
setp J0_pid.do-pid-calcs.tmax 0
setp J0_switch.tmax 0
setp J0_vel.tmax 0
setp J1_accel.tmax 0
setp J1_mux.tmax 0
setp J1_pid.do-pid-calcs.tmax 0
setp J1_switch.tmax 0
setp J1_vel.tmax 0
setp J2_accel.tmax 0
setp J2_mux.tmax 0
setp J2_pid.do-pid-calcs.tmax 0
setp J2_switch.tmax 0
setp J2_vel.tmax 0
setp hyp_xy.tmax 0
setp hyp_xyz.tmax 0
setp limit_speed.tmax 0
setp motion-command-handler.tmax 0
setp motion-controller.tmax 0
setp near_speed.difference 10
setp near_speed.scale 1.1
setp near_speed.tmax 0
setp rpm_rps.tmax 0
setp servo-thread.tmax 0
setp sim_spindle.scale 0.01666667
setp sim_spindle.tmax 0
setp spindle_mass.gain 0.07
setp spindle_mass.tmax 0
# realtime thread/function links
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf J0_pid.do-pid-calcs servo-thread
addf J1_pid.do-pid-calcs servo-thread
addf J2_pid.do-pid-calcs servo-thread
addf J0_mux servo-thread
addf J1_mux servo-thread
addf J2_mux servo-thread
addf J0_vel servo-thread
addf J0_accel servo-thread
addf J1_vel servo-thread
addf J1_accel servo-thread
addf J2_vel servo-thread
addf J2_accel servo-thread
addf hyp_xy servo-thread
addf hyp_xyz servo-thread
addf J0_switch servo-thread
addf J1_switch servo-thread
addf J2_switch servo-thread
addf limit_speed servo-thread
addf spindle_mass servo-thread
addf rpm_rps servo-thread
addf near_speed servo-thread
addf sim_spindle servo-thread
# setp commands for unconnected input pins
setp J0_pid.FF0 1.0
setp J0_pid.Pgain 0
setp J0_pid.Dgain 0
setp J0_pid.Igain 0
setp J0_pid.FF1 0
setp J0_pid.FF2 0
setp J1_pid.FF0 1.0
setp J1_pid.Pgain 0
setp J1_pid.Dgain 0
setp J1_pid.Igain 0
setp J1_pid.FF1 0
setp J1_pid.FF2 0
setp J2_pid.FF0 1.0
setp J2_pid.Pgain 0
setp J2_pid.Dgain 0
setp J2_pid.Igain 0
setp J2_pid.FF1 0
setp J2_pid.FF2 0
setp J0_switch.hysteresis 0.05
setp J0_switch.home-pos 0.10
setp J1_switch.hysteresis 0.05
setp J1_switch.home-pos 0.10
setp J2_switch.hysteresis 0.05
setp J2_switch.home-pos 0.10
setp sim_spindle.scale 0.01666667
setp limit_speed.maxv 5000.0
setp spindle_mass.gain .07
setp near_speed.scale 1.1
setp near_speed.difference 10

View File

@@ -0,0 +1 @@
ngcgui -- ejemplo completo

View File

@@ -0,0 +1,163 @@
[EMC]
VERSION = 1.1
MACHINE = Ngcgui-gcmc-demo
DEBUG = 0
[DISPLAY]
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
TKPKG = Ngcgui 1.0
TKPKG = Ngcguittt 1.0
# Ngcgui must precede Ngcguittt
NGCGUI_FONT = Helvetica -12 normal
# for startup NGCGUI_PREAMBLE, NGCGUI_SUBFILE, NGCGUI_POSTAMBLE, TTT_PREAMBLE
# items, specifly:
# a) absolute filename (start with /)
# b) relative filename: search directories specified by
# [DISPLAY]PROGRAM_PREFIX and [RS274NGC]SUBROUTINE_PATH
NGCGUI_PREAMBLE = in_std.ngc
NGCGUI_SUBFILE = rectangle.gcmc
NGCGUI_SUBFILE = drill.gcmc
NGCGUI_SUBFILE = involute-gear.gcmc
NGCGUI_SUBFILE = trochoid-path.gcmc
NGCGUI_SUBFILE = cpocket.gcmc
NGCGUI_SUBFILE = star.gcmc
NGCGUI_SUBFILE = wheels.gcmc
NGCGUI_SUBFILE = xyz.ngc
# specify "" for a custom tab page
NGCGUI_SUBFILE = ""
NGCGUI_OPTIONS =
#NGCGUI_OPTIONS = opt1 opt2 ...
# opt items:
# nonew -- disallow making new tab page
# noremove -- disallow removing any tab page
# noauto -- no autosend (makeFile, then manually send)
# noiframe -- no internal image, image on separate toplevel
# nom2 -- no m2 terminator (use %)
# example for gcmc includes: separate dirnames with colons:
# GCMC_INCLUDE_PATH = dir1:dir2:...
GCMC_INCLUDE_PATH = ../../nc_files/gcmc_lib
TTT = truetype-tracer
TTT_PREAMBLE = in_std.ngc
DISPLAY = axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
EDITOR = gedit
# use tooltable columns for diam and z only:
TOOL_EDITOR = tooledit diam z
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[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]
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/gcmc_lib:../../nc_files/ngcgui_lib/utilitysubs
USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
NO_FORCE_HOMING = 1
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 2
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
HOME = 0.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

View File

@@ -0,0 +1,15 @@
ngcgui embedded as axis tab
with support for .gcmc (G-Code Meta Compiler) files
The .ngc and .gcmc files can be intermixed with
ini file lines like:
NGCGUI_SUBFILE = drill.gcmc
NGCGUI_SUBFILE = wheels.gcmc
NGCGUI_SUBFILE = star.gcmc
NGCGUI_SUBFILE = simp.ngc
NGCGUI_SUBFILE = ""
See the ini file for example details

View File

@@ -0,0 +1,15 @@
ngcgui incrustado como pestaña de Axis
con soporte para archivos .gcmc (G-Code Meta Compiler)
Los archivos .ngc y .gcmc se pueden mezclar con
líneas de archivo ini como:
NGCGUI_SUBFILE = drill.gcmc
NGCGUI_SUBFILE = wheels.gcmc
NGCGUI_SUBFILE = star.gcmc
NGCGUI_SUBFILE = simp.ngc
NGCGUI_SUBFILE = ""
Ver el archivo ini para detalles de ejemplo

View File

@@ -0,0 +1,131 @@
[EMC]
VERSION = 1.1
MACHINE = ngcgui-lathe
[DISPLAY]
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
TKPKG = Ngcgui 1.0
NGCGUI_FONT = Helvetica -12 normal
# for startup NGCGUI_PREAMBLE, NGCGUI_SUBFILE, NGCGUI_POSTAMBLE, TTT_PREAMBLE
# items, specifly:
# a) absolute filename (start with /)
# b) relative filename: search directories specified by
# [DISPLAY]PROGRAM_PREFIX and [RS274NGC]SUBROUTINE_PATH
NGCGUI_PREAMBLE = lathe_std.ngc
NGCGUI_SUBFILE = id.ngc
NGCGUI_SUBFILE = od.ngc
NGCGUI_SUBFILE = taper-od.ngc
NGCGUI_SUBFILE = g76base.ngc
NGCGUI_SUBFILE = g76diam.ngc
# specify "" for a custom tab page
NGCGUI_SUBFILE = ""
#NGCGUI_OPTIONS = opt1 opt2 ...
# opt items:
# nonew -- disallow making new tab page
# noremove -- disallow removing any tab page
# noauto -- no autosend (makeFile, then manually send)
# noiframe -- no internal image, image on separate toplevel
# nom2 -- no m2 terminator (use %)
DISPLAY = axis
LATHE = 1
EDITOR = gedit
# use tooltable columns for: diam front back orien
TOOL_EDITOR = tooledit diam front back orien
CYCLE_TIME = 0.100
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
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]
PARAMETER_FILE = sim-lathe.var
SUBROUTINE_PATH = ../../nc_files/ngcgui_lib/lathe:../../nc_files/ngcgui_lib/utilitysubs
USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.0
MAX_LINEAR_VELOCITY = 3.333334
DEFAULT_LINEAR_ACCELERATION = 20.0
MAX_LINEAR_ACCELERATION = 20.0
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = lathe.tbl
TOOL_CHANGE_POSITION = 1 0 1
TOOL_CHANGE_WITH_SPINDLE_ON = 1
[KINS]
KINEMATICS = trivkins coordinates=xz
JOINTS = 2
[AXIS_X]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 20.0
[AXIS_Z]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 20.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1

View File

@@ -0,0 +1 @@
ngcgui example with lathe subroutines

View File

@@ -0,0 +1 @@
Ejemplo ngcgui con subrutinas para torno

View File

@@ -0,0 +1,149 @@
[EMC]
VERSION = 1.1
MACHINE = Ngcgui-demo
DEBUG = 0
[DISPLAY]
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Note: TKPKG (one or more) specifies tcl/tk apps to embed in axis tab pages
TKPKG = Ngcgui 1.0
# for startup NGCGUI_PREAMBLE, NGCGUI_SUBFILE, NGCGUI_POSTAMBLE, TTT_PREAMBLE
# items, specifly:
# a) absolute filename (start with /)
# b) relative filename: search directories specified by
# [DISPLAY]PROGRAM_PREFIX and [RS274NGC]SUBROUTINE_PATH
NGCGUI_PREAMBLE = in_std.ngc
NGCGUI_SUBFILE = simp.ngc
NGCGUI_SUBFILE = xyz.ngc
NGCGUI_FONT = Helvetica -12 normal
NGCGUI_OPTIONS = nonew noremove
#NGCGUI_OPTIONS = opt1 opt2 ...
# opt items:
# nonew -- disallow making new tab page
# noremove -- disallow removing any tab page
# noauto -- no autosend (makeFile, then manually send)
# noiframe -- no internal image, image on separate toplevel
# nom2 -- no m2 terminator (use %)
DISPLAY = axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
EDITOR = gedit
TOOL_EDITOR = tooledit
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[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]
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs
USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
#NO_FORCE_HOMING = 1
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 2
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
HOME = 0.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

View File

@@ -0,0 +1 @@
ngcgui -- simple example subroutines

View File

@@ -0,0 +1 @@
ngcgui -- ejemplo simple de subrutinas

View File

@@ -0,0 +1,162 @@
[EMC]
VERSION = 1.1
MACHINE = pyngcgui-axis demo
DEBUG = 0
[DISPLAY]
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
USER_COMMAND_FILE = ./fullscreen.py
EMBED_TAB_NAME = Pyngcgui
EMBED_TAB_COMMAND = gladevcp -x {XID} pyngcgui_axis.ui
EMBED_TAB_NAME = Gremlinview
EMBED_TAB_COMMAND = gladevcp -x {XID} gremlin_view.ui
NGCGUI_FONT = Helvetica -12 normal
# for startup NGCGUI_PREAMBLE, NGCGUI_SUBFILE, NGCGUI_POSTAMBLE
# items, specifly:
# a) absolute filename (start with /)
# b) relative filename: search directories specified by
# [DISPLAY]PROGRAM_PREFIX and [RS274NGC]SUBROUTINE_PATH
NGCGUI_PREAMBLE = in_std.ngc
NGCGUI_SUBFILE = simp.ngc
NGCGUI_SUBFILE = db25.ngc
NGCGUI_SUBFILE = gosper.ngc
NGCGUI_SUBFILE = xyz.ngc
NGCGUI_SUBFILE = iquad.ngc
NGCGUI_SUBFILE = qpocket.ngc
NGCGUI_SUBFILE = arc2.ngc
NGCGUI_SUBFILE = ihex.ngc
# specify "" for a custom tab page
NGCGUI_SUBFILE = ""
NGCGUI_OPTIONS =
#NGCGUI_OPTIONS = opt1 opt2 ...
# opt items:
# nonew -- disallow making new tab page
# noremove -- disallow removing any tab page
# noauto -- no autosend (makeFile, then manually send)
# noiframe -- no internal image, image on separate toplevel
# nom2 -- no m2 terminator (use %)
DISPLAY = axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
EDITOR = gedit
# use tooltable columns for diam and z only:
TOOL_EDITOR = tooledit diam z
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[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]
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs
USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 2
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
HOME = 0.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

View File

@@ -0,0 +1,5 @@
pyngcgui_axis
Demonstrates pyngcgui as gladevcp app in axis gui
The original ngcgui may be better integrated in the axis gui

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<property name="resizable">False</property>
<property name="default_width">712</property>
<property name="default_height">200</property>
<child>
<object class="PyNgcGui" id="pyngcgui1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<property name="use_keyboard">False</property>
<property name="debug">False</property>
<property name="verbose">False</property>
<property name="send_function_name">send_to_axis</property>
<property name="send_to_dir"></property>
<property name="control_font_name"></property>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,5 @@
pyngcgui_axis
Demuestra pyngcgui como aplicación gladevcp en gui Axis
El ngcgui original puede integrarse mejor en la interfaz Axis

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<property name="resizable">False</property>
<property name="default_width">712</property>
<property name="default_height">200</property>
<child>
<object class="PyNgcGui" id="pyngcgui1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<property name="use_keyboard">True</property>
<property name="debug">False</property>
<property name="verbose">False</property>
<property name="send_function_name">default_send</property>
<property name="send_to_dir"></property>
<property name="control_font_name"></property>
</object>
</child>
</object>
</interface>

View 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
T98876 P543 Z+0.100000 ;big tool number

119
configs/sim.axis.ngcgui/sim.var Executable file
View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

24
configs/sim.axis/README Executable file
View File

@@ -0,0 +1,24 @@
Axis is a modern, GL-based interface coded in python
The principal Axis gui sim ini files:
axis.ini basic demo (in)
axis_9axis.ini 9 axes
axis_mm.ini basic demo (mm)
canterp.ini demo for a non-gcode interpreter
histogram_demo.ini hal-histogram examples
historical_lathe.ini configured with 3 joints (XYZ with Y unused)
ini_hal_demo.ini ini hal pins demo
lathe.ini lathe demo
ldelta.ini linear delta robot
ldelta_demo.ini linear delta with jog guis
minimal_xyz.ini minimal set of config items
profile_axis.ini profiling
random_tc.ini random tool changer
rdelta.ini rotary delta robot
Select one of these if you have no functional machine but want to edit some basic configuration stuff or play with one of the LinuxCNC displays.
Additional configurations are provided in subdirectories.
These configurations demonstrate LinuxCNC functionality using the axis gui as the interface. (The functionality demonstrated may be available in other guis also)

33
configs/sim.axis/README_es Executable file
View File

@@ -0,0 +1,33 @@
Axis es una moderna interfaz basada en GL y codificada en Python
Archivos ini principales de Axis gui sim:
axis.ini demo básica (in).
axis_9axis.ini 9 ejes.
axis_mm.ini demo básica (mm).
canterp.ini demo de intérprete
no-gcode.
gantry.ini demo pórtico.
gantry_mm.ini demo pórtico (mm).
histogram_demo.ini ejemplos
hal-histogram.
historical_lathe.ini torno, 3 articula-
-ciones (XYZ, con Y
sin usar).
ini_hal_demo.ini demo ini pines hal.
lathe.ini demo torno.
ldelta.ini robot delta lineal.
ldelta_demo.ini robot delta lineal
con gui para jog.
minimal_xyz.ini conjunto mínimo de
configuración.
profile_axis.ini perfil.
random_tc.ini cambiador aleatorio.
de herramientas.
rdelta.ini robot delta rotativo.
Seleccione uno de estos si no tiene una máquina funcional pero desea editar algunas cosas de configuración básica o jugar con una de las pantallas de LinuxCNC.
Se proporcionan configuraciones adicionales en los subdirectorios.
Estas configuraciones demuestran la funcionalidad de LinuxCNC utilizando la interfaz Axis. (La funcionalidad demostrada puede estar disponible tambien en otras guis)

229
configs/sim.axis/axis.ini Executable file
View File

@@ -0,0 +1,229 @@
# EMC controller parameters for a simulated machine.
# 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-HAL-SIM-AXIS
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
#DEBUG = 0x7FFFFFFF
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
# Name of display program, e.g., axis
DISPLAY = axis
# Cycle time, in seconds, that display will sleep between polls
CYCLE_TIME = 0.100
# 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 = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 5
DEFAULT_LINEAR_VELOCITY = .25
DEFAULT_SPINDLE_SPEED = 200
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
TOOL_EDITOR = tooledit
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[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
# Task controller 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.001
# Part program interpreter section --------------------------------------------
[RS274NGC]
# File containing interpreter variables
PARAMETER_FILE = sim.var
# Motion control section ------------------------------------------------------
[EMCMOT]
EMCMOT = motmod
# Timeout for comm to emcmot, in seconds
COMM_TIMEOUT = 1.0
# BASE_PERIOD is unused in this configuration but specified in core_sim.hal
BASE_PERIOD = 0
# Servo task period, in nano-seconds
SERVO_PERIOD = 1000000
# section for main IO controller parameters -----------------------------------
[EMCIO]
# Name of IO controller program, e.g., io
EMCIO = io
# cycle time, in seconds
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
# Hardware Abstraction Layer 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_sim.hal
HALFILE = sim_spindle_encoder.hal
HALFILE = axis_manualtoolchange.hal
HALFILE = simulated_home.hal
HALFILE = check_xyz_constraints.hal
HALFILE = cooling.hal
# list of halcmd commands to execute
# commands are executed in the order in which they appear
#HALCMD = save neta
# Single file that is executed after the GUI has started. Only supported by
# AXIS at this time (only AXIS creates a HAL component of its own)
#POSTGUI_HALFILE = test_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
MAX_LINEAR_VELOCITY = 4
DEFAULT_LINEAR_ACCELERATION = 100
MAX_LINEAR_ACCELERATION = 100
POSITION_FILE = position.txt
[KINS]
KINEMATICS = trivkins
JOINTS = 3
# Axes sections ---------------
[AXIS_X]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
[AXIS_Y]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
[AXIS_Z]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -8.0
MAX_LIMIT = 0.12
# Joints sections -------------
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
FERROR = 0.050
MIN_FERROR = 0.010
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
FERROR = 0.050
MIN_FERROR = 0.010
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -8.0
# Normally the Z max should be 0.000!
# The only reason it's greater than 0 here is so that the splash screen
# gcode will run.
MAX_LIMIT = 0.12
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

Some files were not shown because too many files have changed in this diff Show More