Lagunmatic 3516-SX Retrofit

More
03 Feb 2017 17:02 #87229 by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit
I agree, the wiring should go smoothly. I have a copy of the printed manual with all schematics and it has been a lifesaver so far. When I purchased my machine it was in pretty dire shape.

Pretty lucky to find a direct match! I found direct match for the Yaskawa fan motor/housing but they were about $350. I'm going to use an off the shelf fan (I believe 170MM) for about $50.

These old machines can be pretty stressful to update, you never know if something is going to cost $10 or $1000 to replace.

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

More
03 Feb 2017 17:30 #87233 by lunada
Replied by lunada on topic Lagunmatic 3516-SX Retrofit
yea they are stressful in general... i did the retrofit because i lost a board in the dynapath within a week of owning it. luckily they didn't seem to go too exotic or proprietary on the hardware in these things.

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

More
19 Dec 2017 04:35 #103329 by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit
Long time no updates!

I've set a goal to have this machine at least moving in XYZ by the end of the year, so here I am back at configuring LinuxCNC and waiting for some components to arrive so I can start wiring on the bench.

Lunada retrofitted an identical machine to mine, and was gracious enough to provide his config files. I've been scouring over them trying to reverse engineer the what was done and why. I have to admit, none of this is coming naturally but I'm trudging along.

I'm unsure about nearly everything, but I'm most unsure about the toolchanger right now. This set of files uses the classicladder "carousel pockets" component to handle the toolchanger. My basic plan right now is to use PNCconf to create my own set of config files (done) and then copy/paste the pertinent info from Lunada's files.

As I mentioned before, I replaced the original Yaskawa spindle drive with a Teco A510. I will tackle the spindle after I get the XYZ movement, but it's definitely on the back of my mind that I'll need to learn how to interface with the new spindle drive to orient, confirm speed, etc.

Any comments and advice would be appreciated. Here are the files:

lagunmatic.hal
# Generated by PNCconf at Wed Dec 21 15:14:14 2016
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hostmot2
loadrt hm2_pci config=" num_encoders=4 num_pwmgens=1 num_stepgens=0 sserial_port_0=000xxx" 
setp    hm2_5i25.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt threads name1=classicladder-thread period1=2000000 

loadrt classicladder_rt numS32in=3 numS32out=8 numRungs=60 numBits=90 numWords=55 numTimers=27  numCounters=15 numPhysInputs=50 numPhysOutputs=50 numArithmExpr=25 numSections=6 numSymbols=220 numS32in=3 numS32out=9

loadusr -w classicladder --nogui shizuoka.clp
loadrt modmath mod_dir=1
loadrt carousel pockets=18  encoding=index num_sense=1  dir=2

addf carousel.0               servo-thread

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 hm2_5i25.0.write         servo-thread
addf classicladder.0.refresh classicladder-thread

# external output signals


# --- SPINDLE-CW ---
net spindle-cw hm2_5i25.0.7i77.0.0.output-00

# --- SPINDLE-CCW ---
net spindle-ccw hm2_5i25.0.7i77.0.0.output-01

# --- COOLANT-FLOOD ---
net coolant-flood hm2_5i25.0.7i77.0.0.output-02

# --- MACHINE-IS-ENABLED ---
net machine-is-enabled hm2_5i25.0.7i77.0.0.output-03

# --- SPINDLE-INDEX-ENABLE ---
#net spindle-index-enable hm2_5i25.0.7i77.0.0.output-05

# --- LUBE ---
net lube hm2_5i25.0.7i77.0.0.output-13

# external input signals


# --- LUBE_LEVEL ---
net lube_level     <=  hm2_5i25.0.7i77.0.0.input-00

# --- BOTH-X ---
net both-x     <=  hm2_5i25.0.7i77.0.0.input-01-not

# --- BOTH-Y ---
net both-y     <=  hm2_5i25.0.7i77.0.0.input-02-not

# --- BOTH-Z ---
net both-z     <=  hm2_5i25.0.7i77.0.0.input-03-not

# --- HOME-X ---
net home-x     <=  hm2_5i25.0.7i77.0.0.input-04

# --- HOME-Y ---
net home-y     <=  hm2_5i25.0.7i77.0.0.input-05

# --- HOME-Z ---
net home-z     <=  hm2_5i25.0.7i77.0.0.input-06

# --- SPINDLE-AT-SPEED ---
net spindle-at-speed     <=  hm2_5i25.0.7i77.0.0.input-21

#setp   hm2_5i25.0.7i77.0.1.analogout4-scalemax 5915
#setp hm2_[HOSTMOT2](BOARD).0.pwmgen.04.output-type 2
#net Spindle-rpm-cmd motion.spindle-speed-out => hm2_5i25.0.7i77.0.1.analogout4


# --- SPINDLE-INDEX-ENABLE ---
#net spindle-index-enable     <=  hm2_5i25.0.7i77.0.0.input-24

# --- ESTOP-EXT ---
#net estop-ext     <=  hm2_5i25.0.7i77.0.0.input-26

# --- CYCLE-START ---
net cycle-start     <=  hm2_5i25.0.7i77.0.0.input-28

# --- ABORT ---
net abort     <=  hm2_5i25.0.7i77.0.0.input-29

# --- FEED-HOLD ---
net feed-hold     <=  hm2_5i25.0.7i77.0.0.input-30

#*******************
#  AXIS X
#*******************

setp   pid.x.Pgain     [AXIS_0]P
setp   pid.x.Igain     [AXIS_0]I
setp   pid.x.Dgain     [AXIS_0]D
setp   pid.x.bias      [AXIS_0]BIAS
setp   pid.x.FF0       [AXIS_0]FF0
setp   pid.x.FF1       [AXIS_0]FF1
setp   pid.x.FF2       [AXIS_0]FF2
setp   pid.x.deadband  [AXIS_0]DEADBAND
setp   pid.x.maxoutput [AXIS_0]MAX_OUTPUT
setp   pid.x.error-previous-target true
#setp   pid.x.maxerror .0005

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_5i25.0.7i77.0.1.analogout0-scalemax  [AXIS_0]OUTPUT_SCALE
setp   hm2_5i25.0.7i77.0.1.analogout0-minlim    [AXIS_0]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i77.0.1.analogout0-maxlim    [AXIS_0]OUTPUT_MAX_LIMIT

net x-output                             => hm2_5i25.0.7i77.0.1.analogout0
net x-pos-cmd    axis.0.motor-pos-cmd
net x-enable     axis.0.amp-enable-out
# enable _all_ sserial pwmgens
net x-enable   hm2_5i25.0.7i77.0.1.analogena

# ---Encoder feedback signals/setup---

setp    hm2_5i25.0.encoder.00.counter-mode 0
setp    hm2_5i25.0.encoder.00.filter 1
setp    hm2_5i25.0.encoder.00.index-invert 0
setp    hm2_5i25.0.encoder.00.index-mask 0
setp    hm2_5i25.0.encoder.00.index-mask-invert 0
setp    hm2_5i25.0.encoder.00.scale  [AXIS_0]ENCODER_SCALE

net x-pos-fb               <=  hm2_5i25.0.encoder.00.position
net x-vel-fb               <=  hm2_5i25.0.encoder.00.velocity
net x-pos-fb               =>  axis.0.motor-pos-fb
net x-index-enable    axis.0.index-enable  <=>  hm2_5i25.0.encoder.00.index-enable
net x-pos-rawcounts        <=  hm2_5i25.0.encoder.00.rawcounts

# ---setup home / limit switch signals---

net home-x     =>  axis.0.home-sw-in
net both-x     =>  axis.0.neg-lim-sw-in
net both-x     =>  axis.0.pos-lim-sw-in

#*******************
#  AXIS Y
#*******************

setp   pid.y.Pgain     [AXIS_1]P
setp   pid.y.Igain     [AXIS_1]I
setp   pid.y.Dgain     [AXIS_1]D
setp   pid.y.bias      [AXIS_1]BIAS
setp   pid.y.FF0       [AXIS_1]FF0
setp   pid.y.FF1       [AXIS_1]FF1
setp   pid.y.FF2       [AXIS_1]FF2
setp   pid.y.deadband  [AXIS_1]DEADBAND
setp   pid.y.maxoutput [AXIS_1]MAX_OUTPUT
setp   pid.y.error-previous-target true
#setp   pid.y.maxerror .0005

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_5i25.0.7i77.0.1.analogout1-scalemax  [AXIS_1]OUTPUT_SCALE
setp   hm2_5i25.0.7i77.0.1.analogout1-minlim    [AXIS_1]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i77.0.1.analogout1-maxlim    [AXIS_1]OUTPUT_MAX_LIMIT

net y-output                             => hm2_5i25.0.7i77.0.1.analogout1
net y-pos-cmd    axis.1.motor-pos-cmd
net y-enable     axis.1.amp-enable-out

# ---Encoder feedback signals/setup---

setp    hm2_5i25.0.encoder.01.counter-mode 0
setp    hm2_5i25.0.encoder.01.filter 1
setp    hm2_5i25.0.encoder.01.index-invert 0
setp    hm2_5i25.0.encoder.01.index-mask 0
setp    hm2_5i25.0.encoder.01.index-mask-invert 0
setp    hm2_5i25.0.encoder.01.scale  [AXIS_1]ENCODER_SCALE

net y-pos-fb               <=  hm2_5i25.0.encoder.01.position
net y-vel-fb               <=  hm2_5i25.0.encoder.01.velocity
net y-pos-fb               =>  axis.1.motor-pos-fb
net y-index-enable    axis.1.index-enable  <=>  hm2_5i25.0.encoder.01.index-enable
net y-pos-rawcounts        <=  hm2_5i25.0.encoder.01.rawcounts

# ---setup home / limit switch signals---

net home-y     =>  axis.1.home-sw-in
net both-y     =>  axis.1.neg-lim-sw-in
net both-y     =>  axis.1.pos-lim-sw-in

#*******************
#  AXIS Z
#*******************

setp   pid.z.Pgain     [AXIS_2]P
setp   pid.z.Igain     [AXIS_2]I
setp   pid.z.Dgain     [AXIS_2]D
setp   pid.z.bias      [AXIS_2]BIAS
setp   pid.z.FF0       [AXIS_2]FF0
setp   pid.z.FF1       [AXIS_2]FF1
setp   pid.z.FF2       [AXIS_2]FF2
setp   pid.z.deadband  [AXIS_2]DEADBAND
setp   pid.z.maxoutput [AXIS_2]MAX_OUTPUT
setp   pid.z.error-previous-target true
#setp   pid.z.maxerror .0005

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_5i25.0.7i77.0.1.analogout2-scalemax  [AXIS_2]OUTPUT_SCALE
setp   hm2_5i25.0.7i77.0.1.analogout2-minlim    [AXIS_2]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i77.0.1.analogout2-maxlim    [AXIS_2]OUTPUT_MAX_LIMIT

net z-output                             => hm2_5i25.0.7i77.0.1.analogout2
net z-pos-cmd    axis.2.motor-pos-cmd
net z-enable     axis.2.amp-enable-out

# ---Encoder feedback signals/setup---

setp    hm2_5i25.0.encoder.02.counter-mode 0
setp    hm2_5i25.0.encoder.02.filter 1
setp    hm2_5i25.0.encoder.02.index-invert 0
setp    hm2_5i25.0.encoder.02.index-mask 0
setp    hm2_5i25.0.encoder.02.index-mask-invert 0
setp    hm2_5i25.0.encoder.02.scale  [AXIS_2]ENCODER_SCALE

net z-pos-fb               <=  hm2_5i25.0.encoder.02.position
net z-vel-fb               <=  hm2_5i25.0.encoder.02.velocity
net z-pos-fb               =>  axis.2.motor-pos-fb
net z-index-enable    axis.2.index-enable  <=>  hm2_5i25.0.encoder.02.index-enable
net z-pos-rawcounts        <=  hm2_5i25.0.encoder.02.rawcounts

# ---setup home / limit switch signals---

net home-z     =>  axis.2.home-sw-in
net both-z     =>  axis.2.neg-lim-sw-in
net both-z     =>  axis.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
#setp   pid.s.maxerror .0005



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        <=  motion.spindle-speed-out-rps  
net spindle-vel-cmd-rps-abs    <=  motion.spindle-speed-out-rps-abs
#net spindle-vel-cmd-rpm        <=  motion.spindle-speed-out  hm2_5i25.0.7i77.0.1.analogout4
net spindle-vel-cmd-rpm-abs    <=  motion.spindle-speed-out-abs
net spindle-enable             <=  motion.spindle-on
net spindle-cw                 <=  motion.spindle-forward
net spindle-ccw                <=  motion.spindle-reverse
net spindle-brake              <=  motion.spindle-brake
net spindle-revs               =>  motion.spindle-revs
net spindle-at-speed           =>  motion.spindle-at-speed
net spindle-vel-fb-rps         =>  motion.spindle-speed-in
net spindle-index-enable      <=>  motion.spindle-index-enable

loadrt scale count=1
addf scale.0 servo-thread
setp scale.0.gain 0.002
net spindle-speed-scale motion.spindle-speed-out => scale.0.in
net spindle-speed-DAC scale.0.out => hm2_5i25.0.7i77.0.1.analogout4


#******************************
# connect miscellaneous signals
#******************************

#  ---HALUI signals---

net joint-select-a        halui.joint.0.select
net x-is-homed            halui.joint.0.is-homed
net jog-x-pos             halui.jog.0.plus
net jog-x-neg             halui.jog.0.minus
net jog-x-analog          halui.jog.0.analog
net joint-select-b        halui.joint.1.select
net y-is-homed            halui.joint.1.is-homed
net jog-y-pos             halui.jog.1.plus
net jog-y-neg             halui.jog.1.minus
net jog-y-analog          halui.jog.1.analog
net joint-select-c        halui.joint.2.select
net z-is-homed            halui.joint.2.is-homed
net jog-z-pos             halui.jog.2.plus
net jog-z-neg             halui.jog.2.minus
net jog-z-analog          halui.jog.2.analog
net jog-selected-pos      halui.jog.selected.plus
net jog-selected-neg      halui.jog.selected.minus
net spindle-manual-cw     halui.spindle.forward
net spindle-manual-ccw    halui.spindle.reverse
net spindle-manual-stop   halui.spindle.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.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

# ---jogwheel signals to mesa encoder - shared MPG---

net joint-selected-count     <=  hm2_5i25.0.encoder.03.count

#  ---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-ext     =>  iocontrol.0.emc-enable-in
net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
#  ---toolchange signals for custom tool changer---

net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared


   
#in
net magazine-CW-req-fetch carousel.0.motor-fwd classicladder.0.in-14 
net magazine-CCW-req-fetch carousel.0.motor-rev classicladder.0.in-15 
net tool-change iocontrol.0.tool-change classicladder.0.in-00 
net magazine-fwd-switch hm2_5i25.0.7i77.0.0.input-11 classicladder.0.in-09
net magazine-back-switch hm2_5i25.0.7i77.0.0.input-10 classicladder.0.in-08
net magazine-home-switch hm2_5i25.0.7i77.0.0.input-15 carousel.0.sense-0
net magazine-position-switch hm2_5i25.0.7i77.0.0.input-14 carousel.0.sense-1 
net magazine-up-switch hm2_5i25.0.7i77.0.0.input-12 classicladder.0.in-10
net magazine-dwn-switch hm2_5i25.0.7i77.0.0.input-13 classicladder.0.in-11
net orient-complete hm2_5i25.0.7i77.0.0.input-07 classicladder.0.in-07
net unclamp-tool hm2_5i25.0.7i77.0.0.input-18 classicladder.0.in-03
net unclamp-tool-position hm2_5i25.0.7i77.0.0.input-17 classicladder.0.in-02 
net carousel-in-position classicladder.0.in-19 <= carousel.0.ready 
#net reset classicladder.0.in-01 <= hm2_[HOSTMOT2](BOARD).0.gpio.039.in_not
#net program-running halui.program.is-running classicladder.0.in-07
#net program-is-auto halui.mode.is-auto classicladder.0.in-08
#net flood-coolant-out classicladder.0.out-07 hm2_[HOSTMOT2](BOARD).0.gpio.060.out
#net flood-coolant-io iocontrol.0.coolant-flood classicladder.0.in-09 
#net flood-coolant-button hm2_[HOSTMOT2](BOARD).0.gpio.035.in classicladder.0.in-10
#out
net spindle-orient classicladder.0.out-04 hm2_5i25.0.7i77.0.0.output-04
net magazine-cw classicladder.0.out-12 hm2_5i25.0.7i77.0.0.output-09
net magazine-ccw classicladder.0.out-03 hm2_5i25.0.7i77.0.0.output-10
net tool-unclamp classicladder.0.out-05 hm2_5i25.0.7i77.0.0.output-06
net magazine-down classicladder.0.out-11 <= hm2_5i25.0.7i77.0.0.output-08
net magazine-fwd classicladder.0.out-06 <= hm2_5i25.0.7i77.0.0.output-07
net tool-changed iocontrol.0.tool-changed classicladder.0.out-07
#net magazine-position classicladder.0.s32out-01 mod-dir.0.actual 
net mod-desired-position iocontrol.0.tool-prep-number  carousel.0.pocket-number
net rotate-carousel carousel.0.enable  classicladder.0.out-13




#net servo0-power-on classicladder.0.out-15 hm2_[HOSTMOT2](BOARD).0.pwmgen.00.enable
#net servo1-power-on classicladder.0.out-16 hm2_[HOSTMOT2](BOARD).0.pwmgen.01.enable
#net servo2-power-on classicladder.0.out-17 hm2_[HOSTMOT2](BOARD).0.pwmgen.02.enable


 # "times 4 mode" one count per full quadrature cycle, instead of the usual one count per edge.  
 # mpg jog wheels often have a full quadrature cycle per "click". 0 for off and 1 for on.
 #setp encoder.0.x4-mode 0
#setp axis.0.jog-vel-mode 1
#setp axis.1.jog-vel-mode 1
#setp axis.2.jog-vel-mode 1
#setp axis.3.jog-vel-mode 1

#setp mux4.0.in0 0.0001
#setp mux4.0.in1 0.001
#setp mux4.0.in2 0.01




#net pend-scale axis.0.jog-scale <= mux4.0.out
#net pend-scale axis.1.jog-scale
#net pend-scale axis.2.jog-scale
#net pend-scale axis.3.jog-scale

#net mpg-a encoder.0.phase-A <= hm2_[HOSTMOT2](BOARD).0.gpio.029.in
#net mpg-b encoder.0.phase-B <= hm2_[HOSTMOT2](BOARD).0.gpio.031.in



#net pend-counts axis.0.jog-counts <= encoder.0.counts
#net pend-counts axis.1.jog-counts
#net pend-counts axis.2.jog-counts
#net pend-counts axis.3.jog-counts

lagunmatic.ini
# Generated by PNCconf at Wed Dec 21 15:14:14 2016
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

[EMC]
MACHINE = lagunmatic
DEBUG = 0

[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/cncmill/linuxcnc/nc_files
PYVCP = shizuoka.xml

INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 1.0000
MAX_LINEAR_VELOCITY = 6.6666666000000
MIN_LINEAR_VELOCITY = 0.010000
DEFAULT_ANGULAR_VELOCITY = 0.250000
MAX_ANGULAR_VELOCITY = 1.000000
MIN_ANGULAR_VELOCITY = 0.010000
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

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
SERVO_PERIOD = 1000000

[HOSTMOT2]
# **** This is for info only ****
# DRIVER0=hm2_pci
# BOARD0=5i25

[HAL]
HALUI = halui
HALFILE = lagunmatic.hal
#HALFILE = custom.hal
#SHUTDOWN = shutdown.hal
POSTGUI_HALFILE =		shizuoka-pyvcp.hal

[HALUI]

[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 1.0
MAX_LINEAR_VELOCITY = 6.66666600

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1

# tool turret info
TOOL_TURRET_MAX = 17
TOOL_TURRET_WRAP = 1


#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.05
MIN_FERROR = 0.007
MAX_VELOCITY = 6.6666660
MAX_ACCELERATION = 20.0
P = 105
I = 0
D = 0
FF0 = 0
FF1 = 1.197
FF2 = 0.01
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = -20320
OUTPUT_SCALE = 10
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
MIN_LIMIT = -.001
MAX_LIMIT = 26.4
HOME_OFFSET = 2.8000000
HOME_SEARCH_VEL = -.2500
HOME_LATCH_VEL = -0.05000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = YES
HOME_SEQUENCE = 1

#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.05
MIN_FERROR = 0.005
MAX_VELOCITY = 6.66666660
MAX_ACCELERATION = 20.0
P = 30
I = 0
D = 0
FF0 = 0
FF1 = 0.395
FF2 = 0.0055
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = 20320
OUTPUT_SCALE = -10
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
MIN_LIMIT = -16.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = .5
HOME_LATCH_VEL = 0.050000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = YES
HOME_SEQUENCE = 2

#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0
FERROR = 0.1
MIN_FERROR = 0.02
MAX_VELOCITY = 6.6666660
MAX_ACCELERATION = 30.0
P = 60
I = 0
D = 0
FF0 = 0
FF1 = 1.155
FF2 = 0.01
BIAS = -0.0001
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = -20320
OUTPUT_SCALE = 10
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
MIN_LIMIT = -20.50
MAX_LIMIT = 0.05
HOME_OFFSET = -0.030000
HOME_SEARCH_VEL = .5000
HOME_LATCH_VEL = 0.050000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = YES
HOME_SEQUENCE = 0

#********************
# 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 = 2000.0

shizuoka-pyvcp.hal
#net seconds classicladder.0.s32out-05 pyvcp.seconds-number
#net minutes classicladder.0.s32out-04 pyvcp.minutes-number
#net hours classicladder.0.s32out-06 pyvcp.hours-number
#linksp Spindle-rpm-cmd pyvcp.spindle-speed
net tool-num-display carousel.0.current-position pyvcp.tool-number
net tool-release-button pyvcp.tool-release-button classicladder.0.in-16

#net mpg-x axis.0.jog-enable <= pyvcp.axis-selection.X_AXIS
#net mpg-y axis.1.jog-enable <= pyvcp.axis-selection.Y_AXIS
#net mpg-z axis.2.jog-enable <= pyvcp.axis-selection.Z_AXIS
#net mpg-a-axis axis.3.jog-enable <= pyvcp.axis-selection.A_AXIS

#net scale1 mux4.0.sel0 <= pyvcp.feed-multiplier..0010in
#net scale2 mux4.0.sel1 <= pyvcp.feed-multiplier..0100in

net esc-button halui.program.stop pyvcp.stop-execution

shizuoka.clp
_FILES_CLASSICLADDER
_FILE-rung_7.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=2
#NEXTRUNG=1
1-0-0/11 , 9-0-60/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 2-0-50/1 , 9-0-0/0 , 50-0-60/4
0-0-0/0 , 0-0-50/0 , 1-1-50/7 , 9-0-0/9 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 2-0-0/32 , 9-0-0/0 , 50-0-60/6
0-0-60/0 , 0-0-0/29 , 0-0-50/3 , 1-1-50/9 , 9-0-0/0 , 9-0-0/0 , 9-0-0/7 , 2-0-0/33 , 9-0-0/0 , 50-0-0/19
0-0-60/9 , 0-0-50/0 , 0-0-0/35 , 0-0-50/0 , 1-1-60/5 , 9-0-0/0 , 9-0-0/0 , 2-0-0/34 , 9-0-0/9 , 50-0-60/11
1-0-0/19 , 9-0-0/50 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/1 , 9-0-0/0 , 9-0-0/0 , 50-0-60/5
1-0-50/16 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/10
_/FILE-rung_7.csv
_FILE-arithmetic_expressions.csv
#VER=2.0
0004,@280/4@=@251/2@
0005,@280/5@=@251/4@
0006,@280/6@=@251/0@
_/FILE-arithmetic_expressions.csv
_FILE-timers.csv
2,4
2,11
2,2
2,1
2,5
2,5
2,2
2,3
2,3
2,3
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-timers.csv
_FILE-modbusioconf.csv
#VER=1.0
_/FILE-modbusioconf.csv
_FILE-rung_2.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=-1
#NEXTRUNG=7
1-0-50/0 , 9-0-0/0 , 9-0-0/0 , 2-0-0/30 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/10
0-0-0/10 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 50-1-0/11
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 50-1-0/13
0-0-0/10 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/14
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
_/FILE-rung_2.csv
_FILE-sections.csv
#VER=1.0
#NAME000=Prog1
000,0,-1,2,4,0
_/FILE-sections.csv
_FILE-com_params.txt
MODBUS_MASTER_SERIAL_PORT=
MODBUS_MASTER_SERIAL_SPEED=9600
MODBUS_MASTER_SERIAL_DATABITS=8
MODBUS_MASTER_SERIAL_STOPBITS=1
MODBUS_MASTER_SERIAL_PARITY=0
MODBUS_ELEMENT_OFFSET=0
MODBUS_MASTER_SERIAL_USE_RTS_TO_SEND=0
MODBUS_MASTER_TIME_INTER_FRAME=100
MODBUS_MASTER_TIME_OUT_RECEIPT=500
MODBUS_MASTER_TIME_AFTER_TRANSMIT=0
MODBUS_DEBUG_LEVEL=0
MODBUS_MAP_COIL_READ=0
MODBUS_MAP_COIL_WRITE=0
MODBUS_MAP_INPUT=0
MODBUS_MAP_HOLDING=0
MODBUS_MAP_REGISTER_READ=0
MODBUS_MAP_REGISTER_WRITE=0
_/FILE-com_params.txt
_FILE-sequential.csv
#VER=1.0
S50,79,1701669204,114,0,0
S57,79,1701669204,114,0,0
S64,79,1701669204,114,0,0
S71,79,1701669204,114,0,0
S78,79,1701669204,114,0,0
S85,79,1701669204,114,0,0
S92,79,1701669204,114,0,0
S99,79,1701669204,114,0,0
S106,79,1701669204,114,0,0
S113,79,1701669204,114,0,0
S120,78,1701669204,114,0,0
S127,78,1701669204,114,0,0
T1,21541,13389,-256,-1,-1,21541,13389,-256,-1,-1,25934,8311,26964,25965,114,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21541,13645,-256,-1,-1,37,84,77
C1,0,0/0
_/FILE-sequential.csv
_FILE-counters.csv
9999
59
59
9999
59
0
17
0
0
0
0
0
0
0
0
_/FILE-counters.csv
_FILE-rung_0.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=0
#NEXTRUNG=1
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
_/FILE-rung_0.csv
_FILE-rung_4.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=8
#NEXTRUNG=-1
1-0-0/31 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/30
2-0-0/10 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 99-0-0/0 , 13-0-0/0 , 0-0-0/0 , 50-1-60/7
9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 99-0-0/0 , 99-0-0/0 , 9-1-0/0 , 50-0-0/17
3-0-50/19 , 9-0-0/0 , 2-0-0/14 , 9-0-0/0 , 9-1-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/15
1-0-0/15 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 50-1-0/16
3-0-0/17 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/14
_/FILE-rung_4.csv
_FILE-symbols.csv
#VER=1.0
%I0,M6 SGNL,
%I1,TL CLMP P,
%I2,TL UNCL P,
%I3,TL UNCLPD,
%I4,,,
%I5,TARGET #,
%I6,,,
%I7,ORNT CPLT,no signal connected
%I8,MAG BK P,
%I9,MAG FWD P,
%I10,MAG UP P,
%I11,MAG DWN P,
%I12,POS CNT,
%I13,MAG HM SW,
%I14,%I14,
%I15,%I15,
%I16,%I16,
%I17,%I17,
%I18,%I18,
%I19,%I19,
%I20,%I20,
%I21,%I21,
%I22,%I22,
%I23,%I23,
%I24,%I24,
%I25,%I25,
%I26,%I26,
%I27,%I27,
%I28,%I28,
%I29,%I29,
%I30,%I30,no signal connected
%I31,%I31,
%I32,%I32,
%I33,%I33,
%I34,%I34,
%I35,%I35,
%I36,%I36,
%I37,%I37,
%I38,%I38,
%I39,%I39,
%I40,%I40,
%I41,%I41,
%I42,%I42,
%I43,%I43,
%I44,%I44,
%I45,%I45,
%I46,%I46,
%I47,%I47,
%I48,%I48,
%I49,%I49,
%Q0,OOOO,
%Q1,%Q1,
%Q2,%Q2,
%Q3,MAG CCW,
%Q4,ORIENT,
%Q5,TL UNCLP,
%Q6,MAG FWD,
%Q7,TCH CPLT,
%Q8,%Q8,
%Q9,TR DB,
%Q10,%Q10,
%Q11,MAG DWN,
%Q12,MAG CW,
%Q13,%Q13,
%Q14,%Q14,
%Q15,%Q15,
%Q16,%Q16,
%Q17,%Q17,
%Q18,%Q18,
%Q19,%Q19,
%Q20,%Q20,
%Q21,%Q21,
%Q22,%Q22,
%Q23,%Q23,
%Q24,%Q24,
%Q25,%Q25,
%Q26,%Q26,
%Q27,%Q27,
%Q28,%Q28,
%Q29,%Q29,
%Q30,%Q30,
%Q31,%Q31,
%Q32,%Q32,
%Q33,%Q33,
%Q34,%Q34,
%Q35,%Q35,
%Q36,%Q36,
%Q37,%Q37,
%Q38,%Q38,
%Q39,%Q39,
%B0,%B0,HOME LATCHED
%B1,MAG HM LA,INTERNAL COIL FOR MAG HOME LATCH
%B2,%B2,HOME LATCHED
%B3,%B3,HOME LATCHED
%B4,%B4,HOME LATCHED
%B5,%B5,HOME LATCHED
%B6,%B6,
%B7,%B7,
%B8,%B8,
%B9,%B9,
%B10,%B10,
%B11,%B11,
%B12,%B12,
%B13,%B13,
%B14,%B14,
%B15,%B15,
%B16,%B16,
%B17,%B17,
%B18,%B18,
%B19,%B19,
%B20,%B20,
%B21,%B21,
%B22,%B22,
%B23,%B23,
%B24,%B24,
%B25,%B25,
%B26,%B26,
%B27,%B27,
%B28,%B28,
%B29,%B29,
%B30,%B30,
%B31,%B31,
%B32,%B32,
%B33,%B33,
%B34,%B34,
%B35,%B35,
%B36,%B36,
%B37,%B37,
%B38,%B38,
%B39,%B39,
%B40,%B40,
%B41,%B41,
%B42,%B42,
%B43,%B43,
%B44,%B44,
%B45,%B45,
%B46,%B46,
%B47,%B47,
%B48,%B48,
%B49,%B49,
%W0,%W0,
%W1,%W1,
%W2,%W2,
%W3,%W3,
%W4,%W4,
%W5,%W5,
%W6,%W6,
%W7,%W7,
%IW0,%IW0,
%IW1,TOOL # RE,
%B50,%B50,
%B51,%B51,
%B52,%B52,
%B53,%B53,
%B54,%B54,
%B55,%B55,
%B56,%B56,
%B57,%B57,
%B58,%B58,
%B59,%B59,
%B60,%B60,
%B61,%B61,
%B62,%B62,
%B63,%B63,
%B64,%B64,
%B65,%B65,
%B66,%B66,
%B67,%B67,
%B68,%B68,
%B69,%B69,
%W8,%W8,
%W9,%W9,
%W10,%W10,
%W11,%W11,
%W12,%W12,
%W13,%W13,
%W14,%W14,
%W15,%W15,
%W16,%W16,
%W17,%W17,
%W18,%W18,
%W19,%W19,
%IW2,%IW2,
%QW0,%QW0,
%QW1,%QW1,
%QW2,%QW2,
%QW3,%QW3,
%QW4,%QW4,
%QW5,%QW5,
%QW6,%QW6,
%IF0,%IF0,
%IF1,%IF1,
%IF2,%IF2,
%IF3,%IF3,
%IF4,%IF4,
%IF5,%IF5,
%IF6,%IF6,
%IF7,%IF7,
%IF8,%IF8,
%IF9,%IF9,
%Q40,%Q40,
%Q41,%Q41,
%Q42,%Q42,
%Q43,%Q43,
%Q44,%Q44,
%Q45,%Q45,
%Q46,%Q46,
%Q47,%Q47,
%Q48,%Q48,
%Q49,%Q49,
%B70,%B70,
%B71,%B71,
%B72,%B72,
%B73,%B73,
%B74,%B74,
%B75,%B75,
%B76,%B76,
%B77,%B77,
%B78,%B78,
%B79,%B79,
_/FILE-symbols.csv
_FILE-general.txt
PERIODIC_REFRESH=2
SIZE_NBR_RUNGS=60
SIZE_NBR_BITS=90
SIZE_NBR_WORDS=55
SIZE_NBR_TIMERS=27
SIZE_NBR_MONOSTABLES=10
SIZE_NBR_COUNTERS=15
SIZE_NBR_TIMERS_IEC=10
SIZE_NBR_PHYS_INPUTS=50
SIZE_NBR_PHYS_OUTPUTS=50
SIZE_NBR_ARITHM_EXPR=25
SIZE_NBR_SECTIONS=6
SIZE_NBR_SYMBOLS=220
_/FILE-general.txt
_FILE-monostables.csv
1,5
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
_/FILE-monostables.csv
_FILE-timers_iec.csv
1,2,0
1,1,0
1,2,2
1,5,0
2,6,0
2,1,0
2,50,0
1,5,0
1,1,0
2,16,0
_/FILE-timers_iec.csv
_FILE-ioconf.csv
#VER=1.0
_/FILE-ioconf.csv
_FILE-rung_8.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=1
#NEXTRUNG=4
1-0-0/13 , 9-0-0/0 , 1-0-50/11 , 9-0-0/0 , 0-0-0/5 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/7
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-1-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/14
0-0-50/0 , 0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 1-1-50/14 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/12
9-0-0/0 , 0-0-0/0 , 9-0-0/0 , 9-1-0/0 , 0-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 0-1-0/15
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 1-1-50/15 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/3
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 9-1-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-60/13
_/FILE-rung_8.csv
_FILE-rung_1.csv
#VER=2.0
#LABEL=
#COMMENT=
#PREVRUNG=7
#NEXTRUNG=8
1-0-0/16 , 9-0-0/14 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/34
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/3 , 1-1-50/10 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/33
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-1-50/10 , 0-0-0/0 , 99-1-0/0 , 13-0-0/1 , 9-0-0/0 , 50-0-0/32
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-1-0/0 , 0-0-0/0 , 99-0-0/0 , 99-0-0/0 , 0-0-0/0 , 0-0-0/0
0-0-0/0 , 0-0-50/8 , 0-0-0/0 , 0-0-0/0 , 1-1-50/8 , 9-0-0/1 , 9-0-0/0 , 9-0-0/0 , 9-0-0/0 , 50-0-0/31
0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0 , 0-0-0/0
_/FILE-rung_1.csv
_/FILES_CLASSICLADDER

And here is my current pin mapping based on the above hal file as a sanity check. I plan to do things a little bit different, such as using separate pins for limit +/-/home. I also don't quite know what some of the inputs are involving the magazine position and tool unclamping.

Outputs
0Spindle CW
1Spindle CCW
2Coolant Flood
3Machine is Enabled
4Spindle Orient
5Spindle Index Enable
6Tool Unclamp
7Magazine Forward
8Magazine Down
9Magazine CW
10Magazine CCW
11
12
13Lube
14
15
16

Inputs
0Lube Level
1Both X
2Both Y
3Both Z
4Home X
5Home Y
6Home Z
7Spindle Orient Complete
8
9
10Magazine Back Switch
11Magazine FWD Switch
12Magazine Down Switch
13Magazine Position Switch
14Magazine Home Switch
15Magazine Home Switch
16
17Unclamp Tool Position
18Tool Unclamped
19
20
21Spindle Index Enable
22
23
24Spindle Index Enable
25
26Estop Ext
27
28Cycle Start
29Abort
30Feed Hold
31
32

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

More
19 Dec 2017 10:46 #103335 by andypugh
If you just want XYZ then the Classic Ladder can wait. And if it worked on an identical machine then it should also work on yours.

So, what is the current obstacle to getting XYZ moving?

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

More
19 Dec 2017 12:08 #103339 by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit
No real obstacle other than waiting for a few parts to arrive! I don't anticipate any huge issues getting to that point

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

More
25 Dec 2017 00:00 #103579 by lunada
Replied by lunada on topic Lagunmatic 3516-SX Retrofit
my spindle drive had an orient input and orient complete output on it, which was nice. not sure if yours does. If it does, it should be fairly simple. I'm not sure if our machines are identical, your pinout might be a bit different. But as long as you get your inputs and outputs right, you are probably better off just using my config files, unless you want to learn the hard way.

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

More
25 Dec 2017 00:44 #103580 by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit

lunada wrote: my spindle drive had an orient input and orient complete output on it, which was nice. not sure if yours does. If it does, it should be fairly simple. I'm not sure if our machines are identical, your pinout might be a bit different. But as long as you get your inputs and outputs right, you are probably better off just using my config files, unless you want to learn the hard way.


I had to replace the original spindle drive, so I lost the Orient signals and others. I'm sure this can be overcome but not certain how yet.

I plan on redoing the config files and copying over what makes sense. Having your files to look at has helped IMMENSELY! But I want to learn as much as I can to ensure I can customize/expand the machine in the future.

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

More
25 Dec 2017 18:24 #103595 by lunada
Replied by lunada on topic Lagunmatic 3516-SX Retrofit
did you see any feedback from the spindle motor to the drive? I haven't really looked, but there should be a sensor or something of the sort on the spindle. I'm fairly certain there is not an encoder though. You can make a very simple encoder with a home made tone ring and some cheap emitter/collector pass through sensors... i did it on my old mill so i could do rigid tapping. Worked really well and it was cheap... probably 20 bucks in parts.

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

More
25 Dec 2017 19:37 - 25 Dec 2017 19:39 #103597 by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit

lunada wrote: did you see any feedback from the spindle motor to the drive? I haven't really looked, but there should be a sensor or something of the sort on the spindle. I'm fairly certain there is not an encoder though. You can make a very simple encoder with a home made tone ring and some cheap emitter/collector pass through sensors... i did it on my old mill so i could do rigid tapping. Worked really well and it was cheap... probably 20 bucks in parts.


Yeah I do have some options here. My spindle motor has encoder feedback and I have an encoder feedback card for the Teco A510 spindle drive. There is also a 2000ppr encoder connected to the spindle cartridge (the spindle motor is connected to the cartridge at a 4:5 ratio).

I think my best option is to run the motor encoder to the spindle drive and close that loop in the drive, running in V/F+PG mode. Then run the cartridge encoder to the 7i77 and use it for rigid tapping, maybe RPM display in LinuxCNC, etc.

This method wouldn't require me to run any extra wiring between the two control cabinets, so that's a plus.
Last edit: 25 Dec 2017 19:39 by giz.

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

More
25 Dec 2017 22:48 #103605 by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit


Finished up the CAD design of the new pc panel. I 3D printed brackets for the DB15, DB25, and DB37 breakout boards as well as a piece to hold the computer components.

Just waiting for the wire raceway to show up, should have everything wired and installed by Friday.

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

Moderators: cncbasher
Time to create page: 0.128 seconds
Powered by Kunena Forum