7i76 analog spindle power options

More
9 years 8 months ago #88345 by andypugh

Michael wrote: As it relates to my issue I have voltage following mode wired + to P2 and - to P1 so I am most likely not refernicing ground properly and thus only out putting the 8v instead of 12v. Will post again if this resolves the issue.


Be _very_ careful before referencing GND with a KBIC. Test the voltage with a meter before taking connections anywhere near the Mesa hardware.

On the KBIC board I had the potentiometer terminals were 100V above GND. The 7i76 would not like that across + and -. However, as it is isolated, it should be OK with any voltage difference within its rated range, regardless of where those voltages sit relative to GND.

Please Log in to join the conversation.

More
9 years 8 months ago #88414 by Benb
No eBay APP ID and/or Cert ID defined in Kunena configurationKB electronics does make signal isolation board for their speed controllers. Here is the link to the datasheet www.kbelectronics.com/data_sheets/kbsi240d.pdf
and the link to the manual:
www.kbelectronics.com/manuals/kbsi_240d_manual.pdf
There are few boards for sale on ebay:

Please Log in to join the conversation.

More
9 years 8 months ago #88456 by Michael

PCW wrote: The spindle output of the 7I76 should be 12V with a
full scale command if the spindle power is 12V

That is if hm2_5i25.0.7i76.0.0.spinout = hm2_7i76e.0.7i76.0.0.spinout-scalemax
and hm2_7i76e.0.7i76.0.0.spinout-maxlim does not limit hm2_5i25.0.7i76.0.0.spinout
then the output should equal the power supply. If this is not the case something
is wrong and needs to be investigated


Have it disconnected from the controller and just checking spinout. I am only getting 8.5v with a full scale command and a 12v source. The source is still over 12v at full scale and should be able to drive 300ma.

As much as I try to understand what you are referring to in hostmot2 it still isnt making isn't making sense to me, or atleast looks like it is setup as you describe. Here is my HAL and ini to make sure:
Code:
# Generated by PNCconf at Sat Feb 18 16:40:06 2017 # 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=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxx" setp hm2_5i25.0.watchdog.timeout_ns 5000000 loadrt pid names=pid.x,pid.y,pid.z,pid.s loadrt abs names=abs.spindle loadrt lowpass names=lowpass.spindle 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 abs.spindle servo-thread addf lowpass.spindle servo-thread addf hm2_5i25.0.write servo-thread # external output signals # external input signals # --- ESTOP-EXT --- net estop-ext <= hm2_5i25.0.7i76.0.0.input-16 # --- MIN-HOME-X --- net min-home-x <= hm2_5i25.0.7i76.0.0.input-17-not # --- MAX-HOME-Y --- net max-home-y <= hm2_5i25.0.7i76.0.0.input-18-not # --- MAX-HOME-Z --- net max-home-z <= hm2_5i25.0.7i76.0.0.input-19-not #******************* # 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 # Step Gen signals/setup setp hm2_5i25.0.stepgen.00.dirsetup [AXIS_0]DIRSETUP setp hm2_5i25.0.stepgen.00.dirhold [AXIS_0]DIRHOLD setp hm2_5i25.0.stepgen.00.steplen [AXIS_0]STEPLEN setp hm2_5i25.0.stepgen.00.stepspace [AXIS_0]STEPSPACE setp hm2_5i25.0.stepgen.00.position-scale [AXIS_0]STEP_SCALE setp hm2_5i25.0.stepgen.00.step_type 0 setp hm2_5i25.0.stepgen.00.control-type 1 setp hm2_5i25.0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAXACCEL setp hm2_5i25.0.stepgen.00.maxvel [AXIS_0]STEPGEN_MAXVEL # ---closedloop stepper signals--- net x-pos-cmd <= axis.0.motor-pos-cmd net x-vel-cmd <= axis.0.joint-vel-cmd net x-output <= hm2_5i25.0.stepgen.00.velocity-cmd net x-pos-fb <= hm2_5i25.0.stepgen.00.position-fb net x-pos-fb => axis.0.motor-pos-fb net x-enable <= axis.0.amp-enable-out net x-enable => hm2_5i25.0.stepgen.00.enable # ---setup home / limit switch signals--- net min-home-x => axis.0.home-sw-in net min-home-x => axis.0.neg-lim-sw-in net x-pos-limit => 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 # Step Gen signals/setup setp hm2_5i25.0.stepgen.01.dirsetup [AXIS_1]DIRSETUP setp hm2_5i25.0.stepgen.01.dirhold [AXIS_1]DIRHOLD setp hm2_5i25.0.stepgen.01.steplen [AXIS_1]STEPLEN setp hm2_5i25.0.stepgen.01.stepspace [AXIS_1]STEPSPACE setp hm2_5i25.0.stepgen.01.position-scale [AXIS_1]STEP_SCALE setp hm2_5i25.0.stepgen.01.step_type 0 setp hm2_5i25.0.stepgen.01.control-type 1 setp hm2_5i25.0.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAXACCEL setp hm2_5i25.0.stepgen.01.maxvel [AXIS_1]STEPGEN_MAXVEL # ---closedloop stepper signals--- net y-pos-cmd <= axis.1.motor-pos-cmd net y-vel-cmd <= axis.1.joint-vel-cmd net y-output <= hm2_5i25.0.stepgen.01.velocity-cmd net y-pos-fb <= hm2_5i25.0.stepgen.01.position-fb net y-pos-fb => axis.1.motor-pos-fb net y-enable <= axis.1.amp-enable-out net y-enable => hm2_5i25.0.stepgen.01.enable # ---setup home / limit switch signals--- net max-home-y => axis.1.home-sw-in net y-neg-limit => axis.1.neg-lim-sw-in net max-home-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 # Step Gen signals/setup setp hm2_5i25.0.stepgen.02.dirsetup [AXIS_2]DIRSETUP setp hm2_5i25.0.stepgen.02.dirhold [AXIS_2]DIRHOLD setp hm2_5i25.0.stepgen.02.steplen [AXIS_2]STEPLEN setp hm2_5i25.0.stepgen.02.stepspace [AXIS_2]STEPSPACE setp hm2_5i25.0.stepgen.02.position-scale [AXIS_2]STEP_SCALE setp hm2_5i25.0.stepgen.02.step_type 0 setp hm2_5i25.0.stepgen.02.control-type 1 setp hm2_5i25.0.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAXACCEL setp hm2_5i25.0.stepgen.02.maxvel [AXIS_2]STEPGEN_MAXVEL # ---closedloop stepper signals--- net z-pos-cmd <= axis.2.motor-pos-cmd net z-vel-cmd <= axis.2.joint-vel-cmd net z-output <= hm2_5i25.0.stepgen.02.velocity-cmd net z-pos-fb <= hm2_5i25.0.stepgen.02.position-fb net z-pos-fb => axis.2.motor-pos-fb net z-enable <= axis.2.amp-enable-out net z-enable => hm2_5i25.0.stepgen.02.enable # ---setup home / limit switch signals--- net max-home-z => axis.2.home-sw-in net z-neg-limit => axis.2.neg-lim-sw-in net max-home-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 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 potentionmeter output signals/setup--- setp hm2_5i25.0.7i76.0.0.spinout-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT setp hm2_5i25.0.7i76.0.0.spinout-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT setp hm2_5i25.0.7i76.0.0.spinout-scalemax [SPINDLE_9]OUTPUT_SCALE net spindle-vel-cmd-rpm-abs => hm2_5i25.0.7i76.0.0.spinout net spindle-enable => hm2_5i25.0.7i76.0.0.spinena net spindle-ccw => hm2_5i25.0.7i76.0.0.spindir # ---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 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 # ---Setup spindle at speed signals--- sets spindle-at-speed true #****************************** # 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 # ---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 # ---manual tool change signals--- loadusr -W hal_manualtoolchange net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Code:
# Generated by PNCconf at Sat Feb 18 16:40:06 2017 # If you make changes to this file, they will be # overwritten when you run PNCconf again [EMC] MACHINE = G0704_LinuxCNC 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/malcocer33/linuxcnc/nc_files PYVCP = pyvcp-panel.xml INCREMENTS = .1in .05in .01in .005in .001in POSITION_FEEDBACK = ACTUAL DEFAULT_LINEAR_VELOCITY = 2.000000 MAX_LINEAR_VELOCITY = 4.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 [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 = 1005000 [HOSTMOT2] # **** This is for info only **** # DRIVER0=hm2_pci # BOARD0=5i25 [HAL] HALUI = halui HALFILE = G0704_LinuxCNC.hal HALFILE = custom.hal POSTGUI_HALFILE = postgui_call_list.hal SHUTDOWN = shutdown.hal [HALUI] [TRAJ] AXES = 3 COORDINATES = X Y Z LINEAR_UNITS = inch ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_VELOCITY = 0.40 MAX_LINEAR_VELOCITY = 4.00 NO_FORCE_HOMING = 1 [EMCIO] EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = tool.tbl TOOL_CHANGE_QUILL_UP = 1 #******************** # Axis X #******************** [AXIS_0] TYPE = LINEAR HOME = 0.0 FERROR = 0.5 MIN_FERROR = 0.05 MAX_VELOCITY = 4.0 MAX_ACCELERATION = 30.0 # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger. STEPGEN_MAXVEL = 5.00 STEPGEN_MAXACCEL = 60 P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0.0 # these are in nanoseconds DIRSETUP = 5000 DIRHOLD = 10000 STEPLEN = 2500 STEPSPACE = 2500 STEP_SCALE = -2034.0 BACKLASH = 0.0005 MIN_LIMIT = -6.24 MAX_LIMIT = 12.34 HOME_OFFSET = -6.340000 HOME_SEARCH_VEL = -1.000000 HOME_LATCH_VEL = 0.016667 HOME_FINAL_VEL = 2.000000 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 1 #******************** # Axis Y #******************** [AXIS_1] TYPE = LINEAR HOME = 0.0 FERROR = 0.5 MIN_FERROR = 0.05 MAX_VELOCITY = 4.0 MAX_ACCELERATION = 30.0 # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger. STEPGEN_MAXVEL = 5.00 STEPGEN_MAXACCEL = 60 P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0.0 # these are in nanoseconds DIRSETUP = 5000 DIRHOLD = 10000 STEPLEN = 2500 STEPSPACE = 2500 STEP_SCALE = 2032.38 BACKLASH = 0.0036 MIN_LIMIT = -5.57 MAX_LIMIT = 2.0 HOME_OFFSET = 2.010000 HOME_SEARCH_VEL = 1.000000 HOME_LATCH_VEL = -0.016667 HOME_FINAL_VEL = 2.000000 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 2 #******************** # Axis Z #******************** [AXIS_2] TYPE = LINEAR HOME = 0.0 FERROR = 0.5 MIN_FERROR = 0.05 MAX_VELOCITY = 1.5 MAX_ACCELERATION = 20.0 # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger. STEPGEN_MAXVEL = 5.00 STEPGEN_MAXACCEL = 40 P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0.0 # these are in nanoseconds DIRSETUP = 5000 DIRHOLD = 10000 STEPLEN = 2500 STEPSPACE = 2500 STEP_SCALE = 2033.25 BACKLASH = 0.0037 MIN_LIMIT = -17.0 MAX_LIMIT = 0.99 HOME_OFFSET = 1.000000 HOME_SEARCH_VEL = 1.000000 HOME_LATCH_VEL = -0.016667 HOME_FINAL_VEL = 1.000000 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = 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 = 5600 OUTPUT_SCALE = 5600 OUTPUT_MIN_LIMIT = 50 OUTPUT_MAX_LIMIT = 5600

Please Log in to join the conversation.

More
9 years 8 months ago #88458 by PCW
So are you saying you set the spindle speed to 5600 and only got 8.5V on the analog out pin?
If so, this indicates a problem with the 7I76.

Please Log in to join the conversation.

More
9 years 8 months ago #88459 by Michael
That is correct. I used m3 s5600 and the spin out reads 8.5v (another meter I have reads 9v) as referenced to spin-. spin+ to spin- reads 12.5v while the m3 s5600 is issued.

Please Log in to join the conversation.

More
9 years 8 months ago #88461 by PCW
There are two possible problems I can think of

1. You have one of the 7I76s that had a stability problem with the buffer OP amp. This was caught and patched
quickly but there may be a few test escapes. If so, the problem can be solved by adding a 1000 to 4700 pF capacitor from SPIN-OUT to SPIN- The cards with this issue have lot number 14248 (patched lot 14248 cards have a capacitor on he back of the 7I76 card)

2. Somehow the analog output section has been damaged

Please Log in to join the conversation.

More
9 years 8 months ago #88472 by Michael
My card is lot 14640L1 and does not have a capacitor on it. I could get a .1uf cap tomorrow or order a 1000pf but my thoughts are that will not work. So if the analog output is somehow damaged how do we go about assessing that and repairing it?

Please Log in to join the conversation.

More
9 years 8 months ago #88500 by PCW
A capacitor is not needed for any lot other than 14248

I think at this point it would be best to request a RMA from MESA and return the card for repair/replacement

Please Log in to join the conversation.

More
9 years 8 months ago #88506 by Michael
We can stand down from that. I tore apart the house and found some different power supplies. I believe I had a faulty isolated power supply. The one I am using now is rated at 12v 1000ma. 0 scale I get 13.2v spin+ to spin-. Full scale I get 13.2v! So the new challenge is to bring that down. I only want to output 10.2v to this controller which would give me ~6900rpm. I really only want to run at 6000rpm which is 9.2v.

I could wire in a pot and turn it down. Would I also be able to manipulate this section of ini:
MAX_OUTPUT = 13000
OUTPUT_SCALE = 13000
OUTPUT_MIN_LIMIT = 0
OUTPUT_MAX_LIMIT = 13000

I set it this way to check the output voltage in a more linear fashion. Ultimately I will be running the spindle in closed loop (sure could use some help on the HAL side) and wont have any progams that ask for more than 6000rpm. This is my thinking for the new ini file but scaled down to the rpm ranges I am talking about:

MAX_OUTPUT = 9100
OUTPUT_SCALE = 9100
OUTPUT_MIN_LIMIT = 0
OUTPUT_MAX_LIMIT = 6000

Please Log in to join the conversation.

More
9 years 8 months ago #88538 by andypugh
Yes, that is what you need to do

Wheter directly in the HAL or using INI-lookup you want

setp hm2_5i25.0.7i76.0.0.spinout-minlim 0
setp hm2_5i25.0.7i76.0.0.spinout-maxlim 9.2
setp hm2_5i25.0.7i76.0.0.spinout-scalemax 13.2

Please Log in to join the conversation.

Time to create page: 0.103 seconds
Powered by Kunena Forum