SPINDLE ORIENT PID

More
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.

File Attachment:

File Name: my_LinuxCN...20-2.ini
File Size:4 KB

File Attachment:

File Name: my_LinuxCN...20-2.hal
File Size:27 KB
# 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---
#===================
Attachments:

Please Log in or Create an account to join the conversation.

More
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.

Please Log in or Create an account to join the conversation.

Time to create page: 0.150 seconds
Powered by Kunena Forum