6040 7i76 Conversion

More
06 Aug 2023 21:08 #277167 by PCW
Replied by PCW on topic 6040 7i76 Conversion
Right, so the spindle stepgen should be deleted from the setup

When you get 3.98V, what is the spindle speed set to?

Printing the results of

halcmd show all spindle > spindle.txt might help debug further

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

More
06 Aug 2023 22:07 #277170 by spacestate1
Replied by spacestate1 on topic 6040 7i76 Conversion
removed the spindle stuff from the conf

here's what I get when the spindle is running and 3.98v is seen on the VFD

cat spindle.txt
Loaded HAL Components:
ID      Type  Name                                            PID   State

Component Pins:
Owner   Type  Dir         Value  Name
    29  bit   IN          FALSE  spindle.0.amp-fault-in
    29  bit   IN           TRUE  spindle.0.at-speed <== spindle-at-speed
    29  bit   OUT         FALSE  spindle.0.brake ==> spindle-brake
    29  bit   OUT         FALSE  spindle.0.forward ==> spindle-cw
    29  bit   I/O         FALSE  spindle.0.index-enable <=> spindle-index-enable
    29  bit   IN          FALSE  spindle.0.inhibit
    29  bit   IN          FALSE  spindle.0.is-oriented
    29  bit   OUT         FALSE  spindle.0.locked
    29  bit   OUT          TRUE  spindle.0.on ==> spindle-enable
    29  bit   OUT         FALSE  spindle.0.orient
    29  float OUT             0  spindle.0.orient-angle
    29  s32   IN              0  spindle.0.orient-fault
    29  s32   OUT             0  spindle.0.orient-mode
    29  bit   OUT          TRUE  spindle.0.reverse ==> spindle-ccw
    29  float IN              0  spindle.0.revs <== spindle-revs
    29  float OUT     -5.016667  spindle.0.speed-cmd-rps
    29  float IN              0  spindle.0.speed-in <== spindle-vel-fb-rps
    29  float OUT          -301  spindle.0.speed-out ==> spindle-vel-cmd-rpm
    29  float OUT           301  spindle.0.speed-out-abs ==> spindle-vel-cmd-rpm-abs
    29  float OUT     -5.016667  spindle.0.speed-out-rps ==> spindle-vel-cmd-rps
    29  float OUT      5.016667  spindle.0.speed-out-rps-abs ==> spindle-vel-cmd-rps-abs

Pin Aliases:
 Alias                                            Original Name

Signals:
Type          Value  Name     (linked to)
bit            TRUE  spindle-at-speed
                         ==> spindle.0.at-speed
bit           FALSE  spindle-brake
                         <== spindle.0.brake
bit            TRUE  spindle-ccw
                         ==> hm2_7i92.0.7i76.0.0.spindir
                         <== spindle.0.reverse
bit           FALSE  spindle-cw
                         <== spindle.0.forward
bit            TRUE  spindle-enable
                         ==> hm2_7i92.0.7i76.0.0.spinena
                         ==> pid.s.enable
                         <== spindle.0.on
bit           FALSE  spindle-index-enable
                         ==> pid.s.index-enable
                         <=> spindle.0.index-enable
bit           FALSE  spindle-manual-ccw
                         ==> halui.spindle.0.reverse
bit           FALSE  spindle-manual-cw
                         ==> halui.spindle.0.forward
bit           FALSE  spindle-manual-stop
                         ==> halui.spindle.0.stop
float          -301  spindle-output
                         ==> hm2_7i92.0.7i76.0.0.spinout
                         <== pid.s.output
float             0  spindle-revs
                         ==> spindle.0.revs
float          -301  spindle-vel-cmd-rpm
                         ==> pid.s.command
                         <== spindle.0.speed-out
float           301  spindle-vel-cmd-rpm-abs
                         <== spindle.0.speed-out-abs
float     -5.016667  spindle-vel-cmd-rps
                         <== spindle.0.speed-out-rps
float      5.016667  spindle-vel-cmd-rps-abs
                         <== spindle.0.speed-out-rps-abs
float             0  spindle-vel-fb-rpm
                         ==> pid.s.feedback
float             0  spindle-vel-fb-rps
                         ==> spindle.0.speed-in

Parameters:
Owner   Type  Dir         Value  Name

Parameter Aliases:
 Alias                                            Original Name

Exported Functions:
Owner   CodeAddr  Arg       FP   Users  Name

Realtime Threads:
     Period  FP     Name               (     Time, Max-Time )

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

More
06 Aug 2023 22:18 - 06 Aug 2023 22:21 #277172 by PCW
Replied by PCW on topic 6040 7i76 Conversion
Looks like you selected the "use +-10 for direction" spindle option in pncconf:

float          -301  spindle-vel-cmd-rpm
                         ==> pid.s.command
                         <== spindle.0.speed-out

 This does not work because the 7I76 spindle interface expects only unsigned (positive) values


A quick fix is to replace

net spindle-vel-cmd-rpm     => pid.s.command

with

net spindle-vel-cmd-rpm-abs     => pid.s.command
 
Last edit: 06 Aug 2023 22:21 by PCW.

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

More
07 Aug 2023 00:09 #277179 by spacestate1
Replied by spacestate1 on topic 6040 7i76 Conversion
made the change and went back to the config wizard and tried a couple other settings, but it still gets the same behavior:

# Generated by PNCconf at Sun Aug  6 20:07:31 2023
# Using LinuxCNC version:  2.8
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_eth board_ip="192.168.1.121" config="num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxxxx"
setp    hm2_7i92.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt near

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 near.0                   servo-thread
addf hm2_7i92.0.write         servo-thread
setp hm2_7i92.0.dpll.01.timer-us -50
setp hm2_7i92.0.stepgen.timer-number 1

# external output signals


# external input signals


#*******************
#  AXIS X JOINT 0
#*******************

setp   pid.x.Pgain     [JOINT_0]P
setp   pid.x.Igain     [JOINT_0]I
setp   pid.x.Dgain     [JOINT_0]D
setp   pid.x.bias      [JOINT_0]BIAS
setp   pid.x.FF0       [JOINT_0]FF0
setp   pid.x.FF1       [JOINT_0]FF1
setp   pid.x.FF2       [JOINT_0]FF2
setp   pid.x.deadband  [JOINT_0]DEADBAND
setp   pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp   pid.x.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp   pid.x.maxerror 0.012700

net x-index-enable  =>  pid.x.index-enable
net x-enable        =>  pid.x.enable
net x-pos-cmd       =>  pid.x.command
net x-pos-fb        =>  pid.x.feedback
net x-output        <=  pid.x.output

# Step Gen signals/setup

setp   hm2_7i92.0.stepgen.00.dirsetup        [JOINT_0]DIRSETUP
setp   hm2_7i92.0.stepgen.00.dirhold         [JOINT_0]DIRHOLD
setp   hm2_7i92.0.stepgen.00.steplen         [JOINT_0]STEPLEN
setp   hm2_7i92.0.stepgen.00.stepspace       [JOINT_0]STEPSPACE
setp   hm2_7i92.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE
setp   hm2_7i92.0.stepgen.00.step_type        0
setp   hm2_7i92.0.stepgen.00.control-type     1
setp   hm2_7i92.0.stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL
setp   hm2_7i92.0.stepgen.00.maxvel           [JOINT_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net x-pos-cmd    <= joint.0.motor-pos-cmd
net x-vel-cmd    <= joint.0.vel-cmd
net x-output     => hm2_7i92.0.stepgen.00.velocity-cmd
net x-pos-fb     <= hm2_7i92.0.stepgen.00.position-fb
net x-pos-fb     => joint.0.motor-pos-fb
net x-enable     <= joint.0.amp-enable-out
net x-enable     => hm2_7i92.0.stepgen.00.enable

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

net x-home-sw     =>  joint.0.home-sw-in
net x-neg-limit     =>  joint.0.neg-lim-sw-in
net x-pos-limit     =>  joint.0.pos-lim-sw-in

#*******************
#  AXIS Y JOINT 1
#*******************

setp   pid.y.Pgain     [JOINT_1]P
setp   pid.y.Igain     [JOINT_1]I
setp   pid.y.Dgain     [JOINT_1]D
setp   pid.y.bias      [JOINT_1]BIAS
setp   pid.y.FF0       [JOINT_1]FF0
setp   pid.y.FF1       [JOINT_1]FF1
setp   pid.y.FF2       [JOINT_1]FF2
setp   pid.y.deadband  [JOINT_1]DEADBAND
setp   pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp   pid.y.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp   pid.y.maxerror 0.012700

net y-index-enable  =>  pid.y.index-enable
net y-enable        =>  pid.y.enable
net y-pos-cmd       =>  pid.y.command
net y-pos-fb        =>  pid.y.feedback
net y-output        <=  pid.y.output

# Step Gen signals/setup

setp   hm2_7i92.0.stepgen.01.dirsetup        [JOINT_1]DIRSETUP
setp   hm2_7i92.0.stepgen.01.dirhold         [JOINT_1]DIRHOLD
setp   hm2_7i92.0.stepgen.01.steplen         [JOINT_1]STEPLEN
setp   hm2_7i92.0.stepgen.01.stepspace       [JOINT_1]STEPSPACE
setp   hm2_7i92.0.stepgen.01.position-scale  [JOINT_1]STEP_SCALE
setp   hm2_7i92.0.stepgen.01.step_type        0
setp   hm2_7i92.0.stepgen.01.control-type     1
setp   hm2_7i92.0.stepgen.01.maxaccel         [JOINT_1]STEPGEN_MAXACCEL
setp   hm2_7i92.0.stepgen.01.maxvel           [JOINT_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y-pos-cmd    <= joint.1.motor-pos-cmd
net y-vel-cmd    <= joint.1.vel-cmd
net y-output     => hm2_7i92.0.stepgen.01.velocity-cmd
net y-pos-fb     <= hm2_7i92.0.stepgen.01.position-fb
net y-pos-fb     => joint.1.motor-pos-fb
net y-enable     <= joint.1.amp-enable-out
net y-enable     => hm2_7i92.0.stepgen.01.enable

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

net y-home-sw     =>  joint.1.home-sw-in
net y-neg-limit     =>  joint.1.neg-lim-sw-in
net y-pos-limit     =>  joint.1.pos-lim-sw-in

#*******************
#  AXIS Z JOINT 2
#*******************

setp   pid.z.Pgain     [JOINT_2]P
setp   pid.z.Igain     [JOINT_2]I
setp   pid.z.Dgain     [JOINT_2]D
setp   pid.z.bias      [JOINT_2]BIAS
setp   pid.z.FF0       [JOINT_2]FF0
setp   pid.z.FF1       [JOINT_2]FF1
setp   pid.z.FF2       [JOINT_2]FF2
setp   pid.z.deadband  [JOINT_2]DEADBAND
setp   pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp   pid.z.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp   pid.z.maxerror 0.012700

net z-index-enable  =>  pid.z.index-enable
net z-enable        =>  pid.z.enable
net z-pos-cmd       =>  pid.z.command
net z-pos-fb        =>  pid.z.feedback
net z-output        <=  pid.z.output

# Step Gen signals/setup

setp   hm2_7i92.0.stepgen.02.dirsetup        [JOINT_2]DIRSETUP
setp   hm2_7i92.0.stepgen.02.dirhold         [JOINT_2]DIRHOLD
setp   hm2_7i92.0.stepgen.02.steplen         [JOINT_2]STEPLEN
setp   hm2_7i92.0.stepgen.02.stepspace       [JOINT_2]STEPSPACE
setp   hm2_7i92.0.stepgen.02.position-scale  [JOINT_2]STEP_SCALE
setp   hm2_7i92.0.stepgen.02.step_type        0
setp   hm2_7i92.0.stepgen.02.control-type     1
setp   hm2_7i92.0.stepgen.02.maxaccel         [JOINT_2]STEPGEN_MAXACCEL
setp   hm2_7i92.0.stepgen.02.maxvel           [JOINT_2]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net z-pos-cmd    <= joint.2.motor-pos-cmd
net z-vel-cmd    <= joint.2.vel-cmd
net z-output     => hm2_7i92.0.stepgen.02.velocity-cmd
net z-pos-fb     <= hm2_7i92.0.stepgen.02.position-fb
net z-pos-fb     => joint.2.motor-pos-fb
net z-enable     <= joint.2.amp-enable-out
net z-enable     => hm2_7i92.0.stepgen.02.enable

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

net z-home-sw     =>  joint.2.home-sw-in
net z-neg-limit     =>  joint.2.neg-lim-sw-in
net z-pos-limit     =>  joint.2.pos-lim-sw-in

#*******************
#  SPINDLE
#*******************

setp   pid.s.Pgain     [SPINDLE_0]P
setp   pid.s.Igain     [SPINDLE_0]I
setp   pid.s.Dgain     [SPINDLE_0]D
setp   pid.s.bias      [SPINDLE_0]BIAS
setp   pid.s.FF0       [SPINDLE_0]FF0
setp   pid.s.FF1       [SPINDLE_0]FF1
setp   pid.s.FF2       [SPINDLE_0]FF2
setp   pid.s.deadband  [SPINDLE_0]DEADBAND
setp   pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp   pid.s.error-previous-target true

net spindle-index-enable  =>  pid.s.index-enable
net spindle-enable        =>  pid.s.enable
net spindle-vel-cmd-rpm-abs     => pid.s.command
net spindle-vel-fb-rpm-abs      => pid.s.feedback
net spindle-output        <=  pid.s.output

# ---digital potentiometer output signals/setup---

setp   hm2_7i92.0.7i76.0.0.spinout-minlim    [SPINDLE_0]OUTPUT_MIN_LIMIT
setp   hm2_7i92.0.7i76.0.0.spinout-maxlim    [SPINDLE_0]OUTPUT_MAX_LIMIT
setp   hm2_7i92.0.7i76.0.0.spinout-scalemax  [SPINDLE_0]OUTPUT_SCALE

net spindle-output      => hm2_7i92.0.7i76.0.0.spinout
net spindle-enable      => hm2_7i92.0.7i76.0.0.spinena
net spindle-ccw         => hm2_7i92.0.7i76.0.0.spindir

# ---setup spindle control signals---

net spindle-vel-cmd-rps        <=  spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs    <=  spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm        <=  spindle.0.speed-out
net spindle-vel-cmd-rpm-abs    <=  spindle.0.speed-out-abs
net spindle-enable             <=  spindle.0.on
net spindle-cw                 <=  spindle.0.forward
net spindle-ccw                <=  spindle.0.reverse
net spindle-brake              <=  spindle.0.brake
net spindle-revs               =>  spindle.0.revs
net spindle-at-speed           =>  spindle.0.at-speed
net spindle-vel-fb-rps         =>  spindle.0.speed-in
net spindle-index-enable      <=>  spindle.0.index-enable

# ---Setup spindle at speed signals---

sets spindle-at-speed true


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

#  ---HALUI signals---

net axis-select-x  halui.axis.x.select
net jog-x-pos      halui.axis.x.plus
net jog-x-neg      halui.axis.x.minus
net jog-x-analog   halui.axis.x.analog
net x-is-homed     halui.joint.0.is-homed
net axis-select-y  halui.axis.y.select
net jog-y-pos      halui.axis.y.plus
net jog-y-neg      halui.axis.y.minus
net jog-y-analog   halui.axis.y.analog
net y-is-homed     halui.joint.1.is-homed
net axis-select-z  halui.axis.z.select
net jog-z-pos      halui.axis.z.plus
net jog-z-neg      halui.axis.z.minus
net jog-z-analog   halui.axis.z.analog
net z-is-homed     halui.joint.2.is-homed
net jog-selected-pos      halui.axis.selected.plus
net jog-selected-neg      halui.axis.selected.minus
net spindle-manual-cw     halui.spindle.0.forward
net spindle-manual-ccw    halui.spindle.0.reverse
net spindle-manual-stop   halui.spindle.0.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.axis.jog-speed
net MDI-mode              halui.mode.is-mdi

#  ---coolant signals---

net coolant-mist      <=  iocontrol.0.coolant-mist
net coolant-flood     <=  iocontrol.0.coolant-flood

#  ---probe signal---

net probe-in     =>  motion.probe-input

#  ---motion control signals---

net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---digital in / out signals---

#  ---estop signals---

net estop-out     <=  iocontrol.0.user-enable-out
net estop-out     =>  iocontrol.0.emc-enable-in

#  ---manual tool change signals---

net tool-change-request    <= iocontrol.0.tool-change
net tool-change-confirmed  => iocontrol.0.tool-changed
net tool-number            <= iocontrol.0.tool-prep-number

#  ---Use external manual tool change dialog---

loadusr -W hal_manualtoolchange
net tool-change-request    =>  hal_manualtoolchange.change
net tool-change-confirmed  <=  hal_manualtoolchange.changed
net tool-number            =>  hal_manualtoolchange.number

#  ---ignore tool prepare requests---
net tool-prepare-loopback   iocontrol.0.tool-prepare      =>  iocontrol.0.tool-prepared

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

More
07 Aug 2023 00:37 #277180 by PCW
Replied by PCW on topic 6040 7i76 Conversion
Is the output voltage 0 (or close to 0) when LinuxCNC is not running?

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

More
07 Aug 2023 00:40 #277181 by spacestate1
Replied by spacestate1 on topic 6040 7i76 Conversion
It is yes, but I can double check later. I might try just setting up a whole new config and see if I can get that working with a fresh start as well.

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

More
07 Aug 2023 21:44 #277285 by spacestate1
Replied by spacestate1 on topic 6040 7i76 Conversion
Actually it is not 0 it is 3.98v even when the spindle is not engaged in linuxcnc

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

More
07 Aug 2023 22:14 #277286 by PCW
Replied by PCW on topic 6040 7i76 Conversion
That sounds like the analog TB4 pins are not connected properly
to the three VFD pins:

SPIN+ --> VFD 5VOUT
SPINOUT --> VFD 5VIN
SPIN- --> VFD GND

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

More
07 Aug 2023 23:14 #277289 by spacestate1
Replied by spacestate1 on topic 6040 7i76 Conversion
it looks like they are connected this way

5VOUT --> SPIN+
GND --> SPIN-
5VIN --> SPINOUT

just to be clear these are the right pins in the picture correct. currently getting zero volts on the + and - pins and ground

 
Attachments:

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

More
07 Aug 2023 23:17 #277290 by spacestate1
Replied by spacestate1 on topic 6040 7i76 Conversion
well 5v on 5v out on the VFD

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

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