SPINDLE ORIENT PID
20 Nov 2018 17:12 #121073
by COlger81
SPINDLE ORIENT PID was created by COlger81
I'm close but i could use some help with SPINDLE ORIENT. I think i've got all of the pieces put together except Mux2 out. Attached is my configs.
# This config file was created 2017-11-26 08:54:27.459061 by the update_ini script
# The original config files may be found in the /home/fadal/linuxcnc/configs/my_LinuxCNC_machine/my_LinuxCNC_machine.old directory
# Generated by PNCconf at Mon Nov 20 15:07:44 2017
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
# The version string for this INI file.
VERSION = 1.1
MACHINE = my_LinuxCNC_machine
DEBUG = 0
[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/fadal/linuxcnc/nc_files
INCREMENTS = .01in .001in .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
[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
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
ORIENT_OFFSET = 0
#REMAP=M6 modalgroup=6 ngc=toolchange
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[HAL]
HALUI = halui
HALFILE = my_LinuxCNC_machine.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal
[HALUI]
MDI_COMMAND = 1
[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 8.3333
NO_FORCE_HOMING = 0
[EMCIO]
EMCIO = io
CYCLE_TIME = .10
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
RANDOM_TOOLCHANGER = 0
#********************
# Axis X
#********************
[KINS]
KINEMATICS = trivkins
#This is a best-guess at the number of joints, it should be checked
JOINTS = 3
[AXIS_X]
HOME = 0.0
MIN_LIMIT = -15.0
MAX_LIMIT = 15.0
MAX_VELOCITY = 8.3333
MAX_ACCELERATION = 40.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 1.0
MIN_FERROR = .05
MAX_VELOCITY = 8.3333
MAX_ACCELERATION = 40.0
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.00003
MAX_OUTPUT = 0.0
ENCODER_SCALE = -100000.0
OUTPUT_SCALE = -10.0
OUTPUT_MIN_LIMIT = -10.0
OUTPUT_MAX_LIMIT = 10.0
MIN_LIMIT = -15.0
MAX_LIMIT = 15.0
HOME_OFFSET = 0.1700
HOME_LATCH_VEL = .05
HOME_USE_INDEX = YES
HOME_SEQUENCE = 0
#BACKLASH = 0.0005
#********************
# Axis Y
#********************
[AXIS_Y]
HOME = 0.0
MIN_LIMIT = -8.0
MAX_LIMIT = 8.0
MAX_VELOCITY = 8.3333
MAX_ACCELERATION = 40.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 1
MIN_FERROR = 0.05
MAX_VELOCITY = 8.3333
MAX_ACCELERATION = 40.0
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.00003
MAX_OUTPUT = 0.0
ENCODER_SCALE = -100000.0
OUTPUT_SCALE = -10.0
OUTPUT_MIN_LIMIT = -10.0
OUTPUT_MAX_LIMIT = 10.0
MIN_LIMIT = -8.0
MAX_LIMIT = 8.0
HOME_OFFSET = 0.1000
HOME_LATCH_VEL = .05
HOME_USE_INDEX = YES
HOME_SEQUENCE = 0
#BACKLASH = 0.001
#********************
# Axis Z
#********************
[AXIS_Z]
HOME = 0.0
MIN_LIMIT = -16.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 8.3333
MAX_ACCELERATION = 40.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 1
MIN_FERROR = 0.05
MAX_VELOCITY = 8.3333
MAX_ACCELERATION = 40.0
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.00003
MAX_OUTPUT = 0.0
ENCODER_SCALE = 100000.0
OUTPUT_SCALE = 10.0
OUTPUT_MIN_LIMIT = -10.0
OUTPUT_MAX_LIMIT = 10.0
MIN_LIMIT = -16.0
MAX_LIMIT = 4.0
HOME_OFFSET = 0.1000
HOME_LATCH_VEL = .05
HOME_USE_INDEX = YES
HOME_SEQUENCE = 0
#BACKLASH = 0.0003
#********************
# Spindle
#********************
[HOSTMOT2]
# **** This is for info only ****
# DRIVER0=hm2_pci
# BOARD0=5i25
#********************
# Spindle
#********************
[SPINDLE_9]
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 7500.0
ENCODER_SCALE = 4000.0
#OUTPUT_SCALE = -7640
OUTPUT_SCALE = -7500
OUTPUT_MIN_LIMIT = -7500
OUTPUT_MAX_LIMIT = 7500
[SPINDLE_0]
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 7500.0
ENCODER_SCALE = 4000.0
#OUTPUT_SCALE = -7640
OUTPUT_SCALE = -7500
OUTPUT_MIN_LIMIT = -7500
OUTPUT_MAX_LIMIT = 7500
# Generated by PNCconf at Mon Nov 20 15:07:45 2017
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
#---LINK TO PYTHON FILES-START---
loadusr python lube.py
loadusr python ATC.py
loadusr python axisselector.py
loadusr python pyautoguitest.py
loadusr python programresume.py
#---LINK TO PYTHON FILES-END---
#============================================================
#---CRITICAL-THREAD-COMPONENTS-START---
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_eth board_ip=10.10.10.10 config=" num_encoders=6 num_pwmgens=0 num_stepgens=0 sserial_port_0=300xxx"
setp hm2_7i92.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s,pid.o
loadrt abs names=abs.spindle
loadrt lowpass names=lowpass.spindle
loadrt scale names=scale.spindle
#---CRITICAL-THREAD-COMPONENTS-END---
#============================================================
#---LOAD-THREAD-COMPONENTS-START---
loadrt matrix_kb config=8x8s
loadrt carousel pockets=21 encoding=index num_sense=1 dir=2
loadrt and2 count=1
loadrt mux4 count=1
loadrt ilowpass
loadrt toggle count=7
loadrt or2 count=2
loadrt gearchoice
loadrt orient
loadrt mux2 count=1
#---LOAD-THREAD-COMPONENTS-END---
#============================================================
#---CRITICAL-FUNCTIONS-START---
addf hm2_7i92.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 pid.o.do-pid-calcs servo-thread
addf scale.spindle servo-thread
addf abs.spindle servo-thread
addf lowpass.spindle servo-thread
#---CRITICAL-FUNCTIONS-END---
#============================================================
#---ADD-FUNCTIONS-START---
addf matrix_kb.0 servo-thread
addf carousel.0 servo-thread
addf and2.0 servo-thread
addf mux4.0 servo-thread
addf ilowpass.0 servo-thread
addf toggle.0 servo-thread
addf toggle.1 servo-thread
addf toggle.2 servo-thread
addf toggle.3 servo-thread
addf toggle.4 servo-thread
addf toggle.5 servo-thread
addf toggle.6 servo-thread
addf or2.0 servo-thread
addf or2.1 servo-thread
addf gearchoice.0 servo-thread
addf orient.0 servo-thread
addf mux2.0 servo-thread
#!!---KEEP-hm2_7i92.0.write-LAST-addf---!!
addf hm2_7i92.0.write servo-thread
#!!---KEEP-hm2_7i92.0.write-LAST-addf---!!
#---ADD-FUNCTIONS-END---
#============================================================
#---ADD-PARAMETERS-START---
setp matrix_kb.0.negative-logic false
setp matrix_kb.0.key_rollover 2
setp mux4.0.in0 .000001
setp mux4.0.in1 .00001
setp mux4.0.in2 .0001
setp mux4.0.in3 .0
setp ilowpass.0.scale 100
setp ilowpass.0.gain 0.03
setp halui.rapid-override.count-enable true
setp halui.rapid-override.direct-value true
#setp gmoccapy.rapid.rapid-override.analog-enable true
#setp halui.rapid-override.counts 1
#setp halui.rapid-override.increase true
#setp halui.rapid-override.decrease true
#setp halui.rapid-override.scale .01
#---ADD-PARAMETERS-END---
#============================================================
#---START-OF-MESA-PNCCONFIGURATION---
#*******************
# AXIS X
#*******************
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
net x-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
#net x-vel-cmd => pid.x.command-deriv
net x-pos-fb => pid.x.feedback
net x-output => pid.x.output
# ---PWM Generator signals/setup---
setp hm2_7i92.0.7i77.0.1.analogout0-scalemax [JOINT_0]OUTPUT_SCALE
setp hm2_7i92.0.7i77.0.1.analogout0-minlim [JOINT_0]OUTPUT_MIN_LIMIT
setp hm2_7i92.0.7i77.0.1.analogout0-maxlim [JOINT_0]OUTPUT_MAX_LIMIT
net x-output => hm2_7i92.0.7i77.0.1.analogout0
net x-pos-cmd joint.0.motor-pos-cmd
net x-enable joint.0.amp-enable-out
# enable _all_ sserial pwmgens
net x-enable hm2_7i92.0.7i77.0.1.analogena
# ---Encoder feedback signals/setup---
setp hm2_7i92.0.encoder.00.counter-mode 0
setp hm2_7i92.0.encoder.00.filter 1
setp hm2_7i92.0.encoder.00.index-invert 0
setp hm2_7i92.0.encoder.00.index-mask 0
setp hm2_7i92.0.encoder.00.index-mask-invert 0
setp hm2_7i92.0.encoder.00.scale [JOINT_0]ENCODER_SCALE
net x-pos-fb <= hm2_7i92.0.encoder.00.position
net x-vel-fb <= hm2_7i92.0.encoder.00.velocity
net x-pos-fb => joint.0.motor-pos-fb
net x-index-enable joint.0.index-enable <=> hm2_7i92.0.encoder.00.index-enable
net x-pos-rawcounts <= hm2_7i92.0.encoder.00.rawcounts
# ---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
#*******************
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
net y-index-enable <=> pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
#net y-vel-cmd => pid.y.command-deriv
net y-pos-fb => pid.y.feedback
net y-output => pid.y.output
# ---PWM Generator signals/setup---
setp hm2_7i92.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_7i92.0.7i77.0.1.analogout1-minlim [JOINT_1]OUTPUT_MIN_LIMIT
setp hm2_7i92.0.7i77.0.1.analogout1-maxlim [JOINT_1]OUTPUT_MAX_LIMIT
net y-output => hm2_7i92.0.7i77.0.1.analogout1
net y-pos-cmd joint.1.motor-pos-cmd
net y-enable joint.1.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_7i92.0.encoder.01.counter-mode 0
setp hm2_7i92.0.encoder.01.filter 1
setp hm2_7i92.0.encoder.01.index-invert 0
setp hm2_7i92.0.encoder.01.index-mask 0
setp hm2_7i92.0.encoder.01.index-mask-invert 0
setp hm2_7i92.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y-pos-fb <= hm2_7i92.0.encoder.01.position
net y-vel-fb <= hm2_7i92.0.encoder.01.velocity
net y-pos-fb => joint.1.motor-pos-fb
net y-index-enable joint.1.index-enable <=> hm2_7i92.0.encoder.01.index-enable
net y-pos-rawcounts <= hm2_7i92.0.encoder.01.rawcounts
# ---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
#*******************
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
net z-index-enable <=> pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
#net z-vel-cmd => pid.z.command-deriv
net z-pos-fb => pid.z.feedback
net z-output => pid.z.output
# ---PWM Generator signals/setup---
setp hm2_7i92.0.7i77.0.1.analogout2-scalemax [JOINT_2]OUTPUT_SCALE
setp hm2_7i92.0.7i77.0.1.analogout2-minlim [JOINT_2]OUTPUT_MIN_LIMIT
setp hm2_7i92.0.7i77.0.1.analogout2-maxlim [JOINT_2]OUTPUT_MAX_LIMIT
net z-output => hm2_7i92.0.7i77.0.1.analogout2
net z-pos-cmd joint.2.motor-pos-cmd
net z-enable joint.2.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_7i92.0.encoder.02.counter-mode 0
setp hm2_7i92.0.encoder.02.filter 1
setp hm2_7i92.0.encoder.02.index-invert 0
setp hm2_7i92.0.encoder.02.index-mask 0
setp hm2_7i92.0.encoder.02.index-mask-invert 0
setp hm2_7i92.0.encoder.02.scale [JOINT_2]ENCODER_SCALE
net z-pos-fb <= hm2_7i92.0.encoder.02.position
net z-vel-fb <= hm2_7i92.0.encoder.02.velocity
net z-pos-fb => joint.2.motor-pos-fb
net z-index-enable joint.2.index-enable <=> hm2_7i92.0.encoder.02.index-enable
net z-pos-rawcounts <= hm2_7i92.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 S
#*******************
setp pid.s.Pgain [SPINDLE_9]P
setp pid.s.Igain [SPINDLE_9]I
setp pid.s.Dgain [SPINDLE_9]D
setp pid.s.bias [SPINDLE_9]BIAS
setp pid.s.FF0 [SPINDLE_9]FF0
setp pid.s.FF1 [SPINDLE_9]FF1
setp pid.s.FF2 [SPINDLE_9]FF2
setp pid.s.deadband [SPINDLE_9]DEADBAND
setp pid.s.maxoutput [SPINDLE_9]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 mux2.0.in0
#======orient-pid---start
setp pid.o.Pgain [SPINDLE_0]P
setp pid.o.Igain [SPINDLE_0]I
setp pid.o.Dgain [SPINDLE_0]D
setp pid.o.bias [SPINDLE_0]BIAS
setp pid.o.FF0 [SPINDLE_0]FF0
setp pid.o.FF1 [SPINDLE_0]FF1
setp pid.o.FF2 [SPINDLE_0]FF2
setp pid.o.deadband [SPINDLE_0]DEADBAND
setp pid.o.maxoutput [SPINDLE_0]MAX_OUTPUT
setp pid.o.error-previous-target true
net spindle-index-enable <=> pid.o.index-enable
net orient-angle spindle.0.orient-angle orient.0.angle
net orient-mode spindle.0.orient-mode orient.0.mode
net spindle-orient spindle.0.orient orient.0.enable pid.o.enable mux2.0.sel
net spindle-in-pos orient.0.is-oriented spindle.0.is-oriented
net spindle-revs orient.0.position pid.o.feedback
net orient-command orient.0.command pid.o.command
net spindle-output2 pid.o.output mux2.0.in1
#======orient-pid---end
# ---PWM Generator signals/setup---
setp hm2_7i92.0.7i77.0.1.analogout4-scalemax [SPINDLE_9]OUTPUT_SCALE
setp hm2_7i92.0.7i77.0.1.analogout4-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT
setp hm2_7i92.0.7i77.0.1.analogout4-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT
net spindle-output => hm2_7i92.0.7i77.0.1.analogout4
#net spindle-enable => hm2_7i92.0.7i77.0.1.spinena
# ---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 gearchoice.0.speed-command <= spindle.0.speed-out
net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-enable gearchoice.0.spindle-on <= spindle.0.on
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse
net spindle-brake gearchoice.0.brake-enable <= 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
#net spindle-input-index hm2_7i92.0.encoder.03.input-index
#net spindle-revs spindle.0.revs orient.0.position
# ---Setup spindle at speed signals---
sets spindle-at-speed true
#SPINDLE RPM TEST
setp scale.spindle.gain 58.84
setp lowpass.spindle.gain 1.00000
net spindle-vel-fb-rps => scale.spindle.in
net spindle-fb-rpm scale.spindle.out => abs.spindle.in
#net spindle-fb-rpm mux2.0.out => abs.spindle.in
net spindle-fb-rpm-abs abs.spindle.out => lowpass.spindle.in
net spindle-fb-rpm-abs-filtered lowpass.spindle.out
#SPINDLE RPM TEST
net spindle-enable spindle.0.on => hm2_7i92.0.7i72.0.2.output-22 hm2_7i92.0.7i72.0.2.output-23
#net spindle-ccw spindle.0.reverse => hm2_7i92.0.7i72.0.2.output-23 hm2_7i92.0.7i72.0.2.output-22
#ENCODER INFO
setp hm2_7i92.0.encoder.03.counter-mode 0
setp hm2_7i92.0.encoder.03.filter 1
setp hm2_7i92.0.encoder.03.index-invert 1
setp hm2_7i92.0.encoder.03.index-mask 0
setp hm2_7i92.0.encoder.03.index-mask-invert 0
setp hm2_7i92.0.encoder.03.scale [SPINDLE_9]ENCODER_SCALE
net spindle-revs <= hm2_7i92.0.encoder.03.position
net spindle-vel-fb-rps <= hm2_7i92.0.encoder.03.velocity
net spindle-index-enable <=> hm2_7i92.0.encoder.03.index-enable
#net spindle-index-enable <=> hm2_7i92.0.7i77.0.0.input-31
#---END-OF-MESA-PNCCONFIGURATION---
#============================================================
#---HALUI-SIGNALS-START---
net joint-select-a halui.axis.x.select
net x-is-homed halui.joint.0.is-homed
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 joint-select-b halui.axis.y.select
net y-is-homed halui.joint.1.is-homed
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 joint-select-c halui.axis.z.select
net z-is-homed halui.joint.2.is-homed
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 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
#---HALUI-SIGNALS-END---
#============================================================
#---COOLANT-CONTROL---START---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# --- COOLANT-FLOOD ---
net coolant-flood hm2_7i92.0.7i72.0.2.output-01
# --- COOLANT-MIST ---
net coolant-mist hm2_7i92.0.7i72.0.2.output-02
#net coolant-flood <= matrix_kb.0.key.r3c6
#net coolant-mist <= matrix_kb.0.key.r3c5
#---COOLANT-CONTROL---END---
#============================================================
#---OUTPUT-SIGNALS-START---
# --- POWER-DRAWBAR ---
net power-drawbar hm2_7i92.0.7i72.0.2.output-03
# --- SPINDLE AIR BLAST ---
net spindle-air-blast hm2_7i92.0.7i72.0.2.output-11
#---OUTPUT-SIGNALS-END---
#============================================================
#---MISCELLANEOUS-START---
# ---motion control signals---
net in-position lube.motion-lube <= motion.in-position => motion.atc-position
net machine-is-enabled <= motion.motion-enabled
net tool-out-from-gcode motion.digital-out-00 => ATC.from-gcode
net power-drawbar <= matrix_kb.0.key.r3c1
#---BEACON---NEEDS BULB!!
#net beacon-light hm2_7i92.0.7i72.0.2.output-21
#---MISCELLANEOUS-END---
#============================================================
#---MODE-SELECT-KEYBOARD-START---
net mode-jog matrix_kb.0.key.r6c3 => halui.mode.manual
net mode-auto matrix_kb.0.key.r6c6 => halui.mode.auto
net mode-manual matrix_kb.0.key.r6c5 => halui.mode.mdi
#---MODE-SELECT-KEYBOARD-END---
#============================================================
#---CAROUSEL-ATC-COMPONENT-PINS-START---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
#net tool-prepare-loopback ATC.tool-prepare => iocontrol.0.tool-prepared
net tool-prep-number iocontrol.0.tool-prep-number => carousel.0.pocket-number
net tool-change iocontrol.0.tool-change => carousel.0.enable
net atc-tool-change-out iocontrol.0.tool-changed <= carousel.0.ready
net turret-sensor-pocket hm2_7i92.0.7i77.0.0.input-29 => carousel.0.sense-0 carousel.0.sense-1
net tool-number iocontrol.0.tool-number => carousel.0.init-position
net turret-motor-forpin hm2_7i92.0.7i72.0.2.output-09 ATC.turret-forward-out
net turret-motor-revpin hm2_7i92.0.7i72.0.2.output-10 ATC.turret-reverse-out
net turret-motor-fwd carousel.0.motor-fwd ATC.turret-forward-in
net turret-motor-rev carousel.0.motor-rev ATC.turret-reverse-in
net turret-active carousel.0.active ATC.turret-active
net carousel-homing-toggle motion.digital-out-03
net carousel-jog-fwd matrix_kb.0.key.r3c2 => carousel.0.jog-fwd
net carousel-jog-rev matrix_kb.0.key.r3c3 => carousel.0.jog-rev
#net tool-out-from-gcode motion.digital-out-00 => ATC.from-gcode
#---CAROUSEL-ATC-COMPONENT-PINS-END---
#============================================================
#---TURRET-SLIDE-PINS-START---
net turret-slide-in SO.atc-turslide-in => hm2_7i92.0.7i72.0.2.output-08
net turret-slide-out SO.atc-turslide-out => hm2_7i92.0.7i72.0.2.output-07
#---TURRET-SLIDE-PINS-END---
#============================================================
#----PINS---ORIENT SENSOR AND LOCK---START
#net orient-sensor SO.so-sen => hm2_7i92.0.7i77.0.0.input-31
#net orient-lock SO.so-or-lock => hm2_7i92.0.7i72.0.2.output-06
net orient-lock motion.digital-out-01 => hm2_7i92.0.7i72.0.2.output-06
#----PINS---ORIENT SENSOR AND LOCK---END
#============================================================
#----PINS---ESTOP---START
net estop-in iocontrol.0.emc-enable-in <= and2.0.out
net internal-estop and2.0.in1 <= iocontrol.0.user-enable-out
net remote-estop and2.0.in0 halui.estop.activate => hm2_7i92.0.7i77.0.0.input-20-not
net estop-in <= hm2_7i92.0.7i72.0.2.output-00
#net estop-in halui.machine.on
#----PINS---ESTOP---END
#============================================================
#----PINS---JOG PENDANT---START
net x-jog-select axis.x.jog-enable <= axisselect.x
net y-jog-select axis.y.jog-enable <= axisselect.y
net z-jog-select axis.z.jog-enable <= axisselect.z
#net a-jog-select axis.a.jog-enable <= hm2_7i92.0.7i77.0.0.input-03
net axis-sel-0 axisselect.one <= hm2_7i92.0.7i77.0.0.input-00
net axis-sel-1 axisselect.two <= hm2_7i92.0.7i77.0.0.input-01
net x100 hm2_7i92.0.7i77.0.0.input-03 => mux4.0.sel1
net x10 hm2_7i92.0.7i77.0.0.input-04 => mux4.0.sel0
net jogscale mux4.0.out => joint.0.jog-scale axis.x.jog-scale
net jogscale => joint.1.jog-scale axis.y.jog-scale
net jogscale => joint.2.jog-scale axis.z.jog-scale
#net jogscale =>joint.3.jog-scale axis.a.jog-scale
net mpg-out hm2_7i92.0.7i77.0.0.enc0.rawcounts => ilowpass.0.in
net jogcounts ilowpass.0.out => joint.0.jog-counts axis.x.jog-counts
net jogcounts => joint.1.jog-counts axis.y.jog-counts
net jogcounts => joint.2.jog-counts axis.z.jog-counts
#net jogcounts => joint.3.jog-counts axis.a.jog-counts
#----PINS---JOG PENDANT---END
#============================================================
#----PHYSICAL-MESA-PINS---MATRIX KEYBOARD---START---
net key_01 matrix_kb.0.row-00-out <= hm2_7i92.0.7i77.0.0.output-07
net key_02 matrix_kb.0.row-01-out <= hm2_7i92.0.7i77.0.0.output-00
net key_03 matrix_kb.0.row-02-out <= hm2_7i92.0.7i77.0.0.output-01
net key_04 matrix_kb.0.row-03-out <= hm2_7i92.0.7i77.0.0.output-02
net key_05 matrix_kb.0.row-04-out <= hm2_7i92.0.7i77.0.0.output-03
net key_06 matrix_kb.0.row-05-out <= hm2_7i92.0.7i77.0.0.output-04
net key_07 matrix_kb.0.row-06-out <= hm2_7i92.0.7i77.0.0.output-05
net key_08 matrix_kb.0.row-07-out <= hm2_7i92.0.7i77.0.0.output-06
net key_09 matrix_kb.0.col-00-in <= hm2_7i92.0.7i77.0.0.input-08
net key_10 matrix_kb.0.col-01-in <= hm2_7i92.0.7i77.0.0.input-09
net key_11 matrix_kb.0.col-02-in <= hm2_7i92.0.7i77.0.0.input-10
net key_12 matrix_kb.0.col-03-in <= hm2_7i92.0.7i77.0.0.input-11
net key_13 matrix_kb.0.col-04-in <= hm2_7i92.0.7i77.0.0.input-12
net key_14 matrix_kb.0.col-05-in <= hm2_7i92.0.7i77.0.0.input-13
net key_15 matrix_kb.0.col-06-in <= hm2_7i92.0.7i77.0.0.input-14
net key_16 matrix_kb.0.col-07-in <= hm2_7i92.0.7i77.0.0.input-15
#----PHYSICAL-MESA-PINS---MATRIX KEYBOARD---END---
#============================================================
#----KEYBOARD-LAYOUT-PYAUTOGUI---MATRIX KEYBOARD---START---
net keyboard-enter matrix_kb.0.key.r5c2 => pyautopins.enter
net keyboard-m matrix_kb.0.key.r0c2 => pyautopins.m
net keyboard-6 matrix_kb.0.key.r0c5 => pyautopins.6
net keyboard-t matrix_kb.0.key.r1c5 => pyautopins.t
net keyboard-1 matrix_kb.0.key.r4c4 => pyautopins.1
net keyboard-2 matrix_kb.0.key.r4c7 => pyautopins.2
net keyboard-3 matrix_kb.0.key.r4c6 => pyautopins.3
net keyboard-4 matrix_kb.0.key.r4c5 => pyautopins.4
net keyboard-5 matrix_kb.0.key.r0c6 => pyautopins.5
net keyboard-7 matrix_kb.0.key.r0c1 => pyautopins.7
net keyboard-8 matrix_kb.0.key.r4c1 => pyautopins.8
net keyboard-9 matrix_kb.0.key.r4c3 => pyautopins.9
net keyboard-0 matrix_kb.0.key.r4c0 => pyautopins.0
net keyboard-backspace matrix_kb.0.key.r5c4 => pyautopins.backspace
net keyboard-q matrix_kb.0.key.r5c7 => pyautopins.q
net keyboard-w matrix_kb.0.key.r5c6 => pyautopins.w
net keyboard-e matrix_kb.0.key.r5c5 => pyautopins.e
net keyboard-r matrix_kb.0.key.r1c6 => pyautopins.r
net keyboard-y matrix_kb.0.key.r1c1 => pyautopins.y
net keyboard-u matrix_kb.0.key.r1c3 => pyautopins.u
net keyboard-i matrix_kb.0.key.r5c1 => pyautopins.i
net keyboard-o matrix_kb.0.key.r5c3 => pyautopins.o
net keyboard-p matrix_kb.0.key.r5c0 => pyautopins.p
net keyboard-delete matrix_kb.0.key.r7c4 => pyautopins.delete
net keyboard-a matrix_kb.0.key.r7c7 => pyautopins.a
net keyboard-s matrix_kb.0.key.r7c6 => pyautopins.s
net keyboard-d matrix_kb.0.key.r7c5 => pyautopins.d
net keyboard-f matrix_kb.0.key.r1c4 => pyautopins.f
net keyboard-g matrix_kb.0.key.r1c7 => pyautopins.g
net keyboard-h matrix_kb.0.key.r1c0 => pyautopins.h
net keyboard-j matrix_kb.0.key.r1c2 => pyautopins.j
net keyboard-k matrix_kb.0.key.r7c1 => pyautopins.k
net keyboard-l matrix_kb.0.key.r7c3 => pyautopins.l
net keyboard-semicolon matrix_kb.0.key.r7c0 => pyautopins.semicolon
net keyboard-plus matrix_kb.0.key.r7c2 => pyautopins.plus
net keyboard-shiftleft matrix_kb.0.key.r2c4 => pyautopins.shiftleft
net keyboard-shiftright matrix_kb.0.key.r2c2 => pyautopins.shiftright
net keyboard-z matrix_kb.0.key.r2c7 => pyautopins.z
net keyboard-x matrix_kb.0.key.r2c6 => pyautopins.x
net keyboard-c matrix_kb.0.key.r2c5 => pyautopins.c
net keyboard-v matrix_kb.0.key.r0c4 => pyautopins.v
net keyboard-b matrix_kb.0.key.r0c7 => pyautopins.b
net keyboard-n matrix_kb.0.key.r0c0 => pyautopins.n
net keyboard-comma matrix_kb.0.key.r2c1 => pyautopins.comma
net keyboard-period matrix_kb.0.key.r2c3 => pyautopins.period
net keyboard-forwardslash matrix_kb.0.key.r2c0 => pyautopins.forwardslash
net keyboard-space matrix_kb.0.key.r0c3 => pyautopins.space
net keyboard-minus matrix_kb.0.key.r4c2 => pyautopins.minus
#----KEYBOARD-LAYOUT-PYAUTOGUI---MATRIX KEYBOARD---END---
#============================================================
#----PINS---TOGGLE COMPONENTS---START
# Flood Coolant control with one button
#net flood-toggle toggle.0.in <= matrix_kb.0.key.r3c6
#net flood-control toggle.0.out => hm2_7i92.0.7i72.0.2.output-01
# THRU SPINDLE COOLANT with one button
#net thru-spindle-toggle toggle.1.in <= matrix_kb.0.key.r3c5
#net thru-spindle-control toggle.1.out => hm2_7i92.0.7i72.0.2.output-02
# SPINDLE HIGH RANGE!! control with one button
#net spindle-high-toggle toggle.2.in <= matrix_kb.0.key.r1c0
#net spindle-high-control toggle.2.out => hm2_7i92.0.7i72.0.2.output-05
# KEYBOARD SLIDE HOLD!! control with one button
#net slide-hold-toggle toggle.6.in <= matrix_kb.0.key.r3c4
#net slide-hold-control toggle.6.out => motion.feed-hold
# SPINDLE ORIENTATION!! control with one button
#net spindle-orient-toggle toggle.3.in <= matrix_kb.0.key.r5c3
#net spindle-orient-control toggle.3.out => hm2_7i92.0.7i72.0.2.output-06
# SLIDE MOTOR!! control with one button
#net slide-motor-toggle toggle.4.in <= matrix_kb.0.key.r0c2
#net slide-motor-control toggle.4.out => hm2_7i92.0.7i72.0.2.output-07
# SLIDE IN!! control with one button
#net slide-in-toggle toggle.5.in <= matrix_kb.0.key.r0c0
#net slide-in-control toggle.5.out => hm2_7i92.0.7i72.0.2.output-08
# TURRET MOTOR ON!!---KEYBOARD KEY = TURRET CW---control with one button
#net turret-motor-toggle ATC.turret-toggle toggle.6.in <= matrix_kb.0.key.r3c2
#net turret-motor-control toggle.6.out => ATC.turret-status
#net turret-on ATC.turret-on => hm2_7i92.0.7i72.0.2.output-09
#----PINS---TOGGLE COMPONENTS---END
#============================================================
#---PROGRAM-RUN, OPTIONAL-STOP, BLOCK-DELETE, SINGLE-STEP, AND-PAUSE---START---
net program-run1 or2.0.in0 hm2_7i92.0.7i77.0.0.input-19
net program-run2 or2.0.in1 matrix_kb.0.key.r6c4
net program-runout or2.0.out halui.program.run
net program-pause1 or2.1.in0 hm2_7i92.0.7i77.0.0.input-18 progres.panbutton
net program-pause2 or2.1.in1 matrix_kb.0.key.r3c4 progres.matrixbutton
net program-pauseout or2.1.out halui.program.pause
net program-is-paused halui.program.is-paused progres.pausestatus
net program-resume progres.resume => halui.program.resume
net optional-stop-on hm2_7i92.0.7i77.0.0.input-06-not => halui.program.optional-stop.on
net optional-stop-off hm2_7i92.0.7i77.0.0.input-06 => halui.program.optional-stop.off
net block-delete-on hm2_7i92.0.7i77.0.0.input-07-not => halui.program.block-delete.on
net block-delete-off hm2_7i92.0.7i77.0.0.input-07 => halui.program.block-delete.off
net single-step matrix_kb.0.key.r6c1 => halui.program.step
#---PROGRAM-RUN,OPTIONAL-STOP,AND-PAUSE---END---
#============================================================
#---RAPID-OVERRIDE-SELECTOR-SWITCH---START---
net override-scale halui.rapid-override.scale rapidselect.scale-output
net override-value halui.rapid-override.value rapidselect.value
net rapid-sel-0 rapidselect.one <= hm2_7i92.0.7i77.0.0.input-21
net rapid-sel-1 rapidselect.two <= hm2_7i92.0.7i77.0.0.input-22
net rapid-sel-2 rapidselect.three <= hm2_7i92.0.7i77.0.0.input-23
net rapid-sel-inc rapidselect.increase halui.rapid-override.increase
net rapid-sel-dec rapidselect.decrease halui.rapid-override.decrease
#---RAPID-OVERRIDE-SELECTOR-SWITCH---START---
#============================================================
#---SPINDLE-GEAR-CHOICE---START---
net high-gear gearchoice.0.high-gear hm2_7i92.0.7i72.0.2.output-05
#---SPINDLE-GEAR-CHOICE---END---
#===================
Please Log in or Create an account to join the conversation.
21 May 2019 19:00 #134520
by giz
Replied by giz on topic SPINDLE ORIENT PID
Did you ever get this working? I was struggling with this same problem before I packed up and moved my machine in December.
There is a lot of info in my latest post - I have a working PID loop however I did not reach a point where it was working well.
There is a lot of info in my latest post - I have a working PID loop however I did not reach a point where it was working well.
Please Log in or Create an account to join the conversation.
Time to create page: 0.256 seconds