How do I zero an axis when homed?

More
6 years 4 weeks ago #184693 by jhandel
I know this has to be covered somewhere, but I am not finding it in the homing configuration docs or anywhere else..

I would like to zero my axis when homed.. Instead it seems to jog back to where ever "zero" was before homing.. (where the axis was when it turned on)..

Current behavior:
Boot Linux CNC: All Axis say 0
Home X axis : machine feeds to switch, triggers, then feeds back to the arbatrary location the axis was when it turned on
Axis stays 0 sure but its not zero.. zero is where my home switch is.

Ideal behavior:
Boot Linux CNC : (Frankly I don't care what it says, but for giggles, lets say it remembers its last coordinate)
Home X axis: Machine Jogs to switch, switch trigger (and searching and latching and such), Linux sets THAT location to 0 then applies HOME and HOME_OFFSET (which are both currently zero)

To elaborate the problem.. If I boot with my X axis 5mm from home and I home, it will feed to the switch, do its thing, then feed back 5mm... (back to the booted up location) If I boot with my X axis 20mm from the home switch and I home, it will feed 20mm to the switch, then feed back 20mm to where the machine was when it booted up...

I KNOW this has got to be something simple, but I am not finding it in the docs or searching the forums..

Thanks for any help what is I am sure a very dumb question....

Please Log in to join the conversation.

More
6 years 4 weeks ago #184702 by OT-CNC
Homing can be setup in many ways. Look over the latest docs on the homing sequences which have a nice illustration:

linuxcnc.org/docs/2.8/html/config/ini-homing.html

It's the HOME_OFFSET you want to adjust.

Please Log in to join the conversation.

More
6 years 4 weeks ago #184704 by jhandel
maybe I am not describing the problem correctly..

Current behaviour (with X 10mm away from the home switch):
Boot Linux CNC: X is 0 in G53
Home X: Machine Feeds -10, Home switch triggers, feeds < 5mm to Index pulse, machine stops. X is -10 on G53 (not reset to zero), X moves back to 0 (the place it was when booted)

Jog machine to say +5mm (now machine is 15mm from Home switch.
Turn off Linux CNC

restart Linux CNC: X is 0 G53 (because it is resetting to zero between boots)
Home X: Machine feeds -15mm this time (because remember we moved it 5mm) X is now -15 in G53, X moves back to 0 (which is 15mm from the home switch/the same place it was when we restarted linux CNC.

Expected behaviour:
Start Linux CNC: X axis is some random number (zero is fine)
Home X: X feeds to the home switch, , feeds < 5mm to Index pulse, when triggered the X in G53 is set to 0

I had an HOME_OFFSET of 0, I also tried 0.001 to see if the issue was with HOME_OFFSET not being zero but that isn't documented, and the problem persists with a non zero value so that is not it..

Here is the relevant part of my INI file

HOME = 0
HOME_OFFSET = 0.001000
HOME_SEARCH_VEL = 4.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 10.000000
HOME_USE_INDEX = YES

To be clear it IS jogging to the home switch, and latching on it.. the issue is that G53 is not changing based on home being found.

Please Log in to join the conversation.

More
6 years 4 weeks ago #184705 by jhandel
Ok on to something here..
HOME_USE_INDEX = YES <---- If this is NO things work as expected, but if its YES things are weird..

Carefully watching the DRO here is what happens...

Home X from Linux CNC starting with X axis 10mm from switch
1- Feed to Switch (-10mm in DRO)
2- DRO zeros
3- Feed to Index Pulse (DRO less than 5mm because that is where the index pulse is)
4- DRO resets back to started state (-10mm + DRO location at index pulse)
5- Feed to X 0 (original X location at boot up)

Step 4 should not be happening.. the DRO should reset to 0 again..

So its something with the Index Pulse Latch process that is screwing up homing..

Please Log in to join the conversation.

More
6 years 4 weeks ago #184706 by OT-CNC
Index is only used if you are reading in the index signal from your encoder (either linear or rotary) in conjunction with switch or index only as called out in section 6 from the doc I linked.

Are you using the index or are you homing conventionally?

HOME_OFFSET can be zero. But that would not explain why it parks in different locations.
If you are using index and the pulse is missed for some reason, you could be off by maybe a full motor revolution (assuming motor mounted encoder)

Please Log in to join the conversation.

More
6 years 4 weeks ago #184708 by jhandel
The movements are all correct per the documentation, HOME_SEARCH_VEL speed is used until the switch is hit, then HOME_LATCH_VEL speed is used until the encoder index is hit (yes there are motor encoders, and yes the index pulse is firing)

The park location is based on where the Axis is at boot.. If X axis was 100mm from the home switch, the Park locaiton would be 100mm from my home switch, if I restarted with the X axis 25mm from my home switch the park location would be 25mm from the home switch...

Its the step 4 that I described above where the DRO should reset back to zero after finding the index and instead is resetting to the feed distance from where the axis was when Linux CNC started..

Its extra telling that the issue is only when using index.. suggests there may be a bug with the HOME_USE_INDEX algorithm...

Is homing something that is a "macro" that is editable or would that require going to source to fix or debug further?

(I am running 2.8 prod release)

Please Log in to join the conversation.

More
6 years 3 weeks ago #184717 by OT-CNC
I don't know.
The behavior you should see if you select homing is, regardless where you last placed your axes, on startup axes move to the the home switch, then look for index then final move to the home offset position. That position is 0 and it should not change from one homing routine to the next.

Is that part working correctly? Does your machine physically stop at the correct position? Say 10mm away from the index point if your home offset is -10? That position should read 0 on the dro. If not maybe clear it via set zero for the coordiante system you're working in? Also there is a view setting relative/actual position that will change how the coordinates are displayed. Not sure if any of that helps.

Please Log in to join the conversation.

More
6 years 3 weeks ago #184720 by jhandel
So fundamentally X home changes every-time I boot even though X is searching and latching at the same physical location (in meat space) the same time everytime..

I threw a quick 4 minute video up showing the behavior..



Hopefully that will help explain the issue which is feeling more like a bug..

Please Log in to join the conversation.

More
6 years 3 weeks ago #184722 by PCW
Can you post your hal and ini files?

BTW homing to index with step/dir is not supported AFAIK

Please Log in to join the conversation.

More
6 years 3 weeks ago #184723 by jhandel
oh! wait, you can't use index with a closed loop step/direction servo? um... how is the step generator involved in this as the encoder is essentially a second home switch. Is there a way I can customize that behaviour outside of source... Homing on my z-pulse is the difference between home +/- .5mm and home +/-.005mm (basically the backlash of the ball screw)

Here is my Hal and INI (they are both still very much in development)...

HAL:
Code:
# Generated by PNCconf at Thu Sep 3 17:54:38 2020 # Using LinuxCNC version: UNAVAILABLE # 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="10.10.10.10" config="num_encoders=10 num_pwmgens=0 num_stepgens=6 sserial_port_0=0000xx" setp hm2_7i76e.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 loadrt scale names=scale.spindle loadrt charge_pump addf charge-pump servo-thread addf hm2_7i76e.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 scale.spindle servo-thread addf abs.spindle servo-thread addf lowpass.spindle servo-thread addf hm2_7i76e.0.write servo-thread # --- SPINDLE-ENABLE --- setp hm2_7i76e.0.gpio.018.invert_output true setp hm2_7i76e.0.gpio.020.invert_output true setp hm2_7i76e.0.gpio.022.invert_output true setp hm2_7i76e.0.gpio.024.invert_output true setp hm2_7i76e.0.gpio.018.is_output true setp hm2_7i76e.0.gpio.020.is_output true setp hm2_7i76e.0.gpio.022.is_output true setp hm2_7i76e.0.gpio.024.is_output true # external input signals # --- HOME-X --- net home-x <= hm2_7i76e.0.7i76.0.0.input-00-not #******************* # 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 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-pos-fb => pid.x.feedback net x-output <= pid.x.output # Step Gen signals/setup setp hm2_7i76e.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP setp hm2_7i76e.0.stepgen.00.dirhold [JOINT_0]DIRHOLD setp hm2_7i76e.0.stepgen.00.steplen [JOINT_0]STEPLEN setp hm2_7i76e.0.stepgen.00.stepspace [JOINT_0]STEPSPACE setp hm2_7i76e.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE setp hm2_7i76e.0.stepgen.00.step_type 0 setp hm2_7i76e.0.stepgen.00.control-type 1 setp hm2_7i76e.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL setp hm2_7i76e.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_7i76e.0.stepgen.00.velocity-cmd net x-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.00.enable # ---setup home / limit switch signals--- net home-x => 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 # ---Encoder feedback signals/setup--- net x-index-enable joint.0.index-enable <=> hm2_7i76e.0.encoder.02.index-enable #******************* # 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 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-pos-fb => pid.y.feedback net y-output <= pid.y.output # Step Gen signals/setup setp hm2_7i76e.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP setp hm2_7i76e.0.stepgen.01.dirhold [JOINT_1]DIRHOLD setp hm2_7i76e.0.stepgen.01.steplen [JOINT_1]STEPLEN setp hm2_7i76e.0.stepgen.01.stepspace [JOINT_1]STEPSPACE setp hm2_7i76e.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE setp hm2_7i76e.0.stepgen.01.step_type 0 setp hm2_7i76e.0.stepgen.01.control-type 1 setp hm2_7i76e.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL setp hm2_7i76e.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_7i76e.0.stepgen.01.velocity-cmd net y-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.01.enable # ---Encoder feedback signals/setup--- setp hm2_7i76e.0.encoder.01.counter-mode 0 setp hm2_7i76e.0.encoder.01.filter 1 setp hm2_7i76e.0.encoder.01.index-invert 0 setp hm2_7i76e.0.encoder.01.index-mask 0 setp hm2_7i76e.0.encoder.01.index-mask-invert 0 setp hm2_7i76e.0.encoder.01.scale [JOINT_1]ENCODER_SCALE net y-index-enable joint.1.index-enable <=> hm2_7i76e.0.encoder.01.index-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 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-pos-fb => pid.z.feedback net z-output <= pid.z.output # Step Gen signals/setup setp hm2_7i76e.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP setp hm2_7i76e.0.stepgen.02.dirhold [JOINT_2]DIRHOLD setp hm2_7i76e.0.stepgen.02.steplen [JOINT_2]STEPLEN setp hm2_7i76e.0.stepgen.02.stepspace [JOINT_2]STEPSPACE setp hm2_7i76e.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE setp hm2_7i76e.0.stepgen.02.step_type 0 setp hm2_7i76e.0.stepgen.02.control-type 1 setp hm2_7i76e.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL setp hm2_7i76e.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_7i76e.0.stepgen.02.velocity-cmd net z-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.02.enable # ---Encoder feedback signals/setup--- setp hm2_7i76e.0.encoder.00.counter-mode 0 setp hm2_7i76e.0.encoder.00.filter 1 setp hm2_7i76e.0.encoder.00.index-invert 0 setp hm2_7i76e.0.encoder.00.index-mask 0 setp hm2_7i76e.0.encoder.00.index-mask-invert 0 setp hm2_7i76e.0.encoder.00.scale [JOINT_2]ENCODER_SCALE net z-index-enable joint.2.index-enable <=> hm2_7i76e.0.encoder.00.index-enable #******************* # 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 # This setting is to limit bogus stepgen # velocity corrections caused by position # feedback sample time jitter. setp pid.s.maxerror 0.012700 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 # Step Gen signals/setup setp hm2_7i76e.0.stepgen.05.dirsetup [SPINDLE_0]DIRSETUP setp hm2_7i76e.0.stepgen.05.dirhold [SPINDLE_0]DIRHOLD setp hm2_7i76e.0.stepgen.05.steplen [SPINDLE_0]STEPLEN setp hm2_7i76e.0.stepgen.05.stepspace [SPINDLE_0]STEPSPACE setp hm2_7i76e.0.stepgen.05.position-scale [SPINDLE_0]STEP_SCALE setp hm2_7i76e.0.stepgen.05.step_type 0 setp hm2_7i76e.0.stepgen.05.control-type 1 setp hm2_7i76e.0.stepgen.05.maxaccel [SPINDLE_0]MAX_ACCELERATION setp hm2_7i76e.0.stepgen.05.maxvel [SPINDLE_0]MAX_VELOCITY net spindle-enable => hm2_7i76e.0.stepgen.05.enable net spindle-enable => hm2_7i76e.0.gpio.018.out #net spindle-enable => hm2_7i76e.0.gpio.022.out net spindle-vel-cmd-rps => hm2_7i76e.0.stepgen.05.velocity-cmd # ---Encoder feedback signals/setup--- setp hm2_7i76e.0.encoder.03.counter-mode 0 setp hm2_7i76e.0.encoder.03.filter 1 setp hm2_7i76e.0.encoder.03.index-invert 0 setp hm2_7i76e.0.encoder.03.index-mask 0 setp hm2_7i76e.0.encoder.03.index-mask-invert 0 setp hm2_7i76e.0.encoder.03.scale [SPINDLE_0]ENCODER_SCALE net spindle-revs <= hm2_7i76e.0.encoder.03.position net spindle-vel-fb-rps <= hm2_7i76e.0.encoder.03.velocity net spindle-index-enable <=> hm2_7i76e.0.encoder.03.index-enable # ---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 # Use ACTUAL spindle velocity from spindle encoder # spindle-velocity bounces around so we filter it with lowpass # spindle-velocity is signed so we use absolute component to remove sign # ACTUAL velocity is in RPS not RPM so we scale it. setp scale.spindle.gain 60 setp lowpass.spindle.gain 1.000000 net spindle-vel-fb-rps => scale.spindle.in net spindle-fb-rpm scale.spindle.out => abs.spindle.in net spindle-fb-rpm-abs abs.spindle.out => lowpass.spindle.in net spindle-fb-rpm-abs-filtered lowpass.spindle.out # ---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 #****************************** # 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 # ---charge pump signals--- net estop-out => charge-pump.enable net charge-pump <= charge-pump.out # ---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--- net dout-00 <= motion.digital-out-00 net dout-01 <= motion.digital-out-01 net dout-02 <= motion.digital-out-02 net dout-03 <= motion.digital-out-03 net din-00 => motion.digital-in-00 net din-01 => motion.digital-in-01 net din-02 => motion.digital-in-02 net din-03 => motion.digital-in-03 # ---estop signals--- net estop-out <= iocontrol.0.user-enable-out net estop-out => 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

INI
Code:
# Generated by PNCconf at Sat Oct 3 09:16:25 2020 # Using LinuxCNC version: UNAVAILABLE # If you make changes to this file, they will be # overwritten when you run PNCconf again [EMC] MACHINE = Skyfire DEBUG = 0 VERSION = 1.1 [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/cnc/linuxcnc/nc_files PYVCP = pyvcp-panel.xml INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .001mm POSITION_FEEDBACK = ACTUAL DEFAULT_LINEAR_VELOCITY = 6.000000 MAX_LINEAR_VELOCITY = 25.000000 MIN_LINEAR_VELOCITY = 0.500000 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 SERVO_PERIOD = 1000000 [HMOT] # **** This is for info only **** CARD0=hm2_7i76.0 [HAL] HALUI = halui HALFILE = Skyfire.hal HALFILE = custom.hal POSTGUI_HALFILE = postgui_call_list.hal SHUTDOWN = shutdown.hal [HALUI] [KINS] JOINTS = 3 KINEMATICS = trivkins coordinates=XYZ [TRAJ] COORDINATES = XYZ LINEAR_UNITS = mm ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 16.67 MAX_LINEAR_VELOCITY = 166.67 [EMCIO] EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = tool.tbl TOOL_CHANGE_WITH_SPINDLE_ON = 1 TOOL_CHANGE_QUILL_UP = 1 #****************************************** [AXIS_X] MAX_VELOCITY = 166.666666667 MAX_ACCELERATION = 600.0 MIN_LIMIT = -0.01 MAX_LIMIT = 200.0 [JOINT_0] TYPE = LINEAR HOME = 0.0 FERROR = 10.0 MIN_FERROR = 1.0 MAX_VELOCITY = 166.666666667 MAX_ACCELERATION = 600.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 = 208.33 STEPGEN_MAXACCEL = 750.00 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 ENCODER_SCALE = 2000.0 # these are in nanoseconds DIRSETUP = 10000 DIRHOLD = 10000 STEPLEN = 5000 STEPSPACE = 5000 STEP_SCALE = -1000.0 MIN_LIMIT = -0.01 MAX_LIMIT = 200.0 HOME = 0 HOME_OFFSET = 0.001000 HOME_SEARCH_VEL = 4.000000 HOME_LATCH_VEL = -0.500000 HOME_FINAL_VEL = 10.000000 HOME_USE_INDEX = YES #****************************************** #****************************************** [AXIS_Y] MAX_VELOCITY = 166.666666667 MAX_ACCELERATION = 600.0 MIN_LIMIT = -0.01 MAX_LIMIT = 200.0 [JOINT_1] TYPE = LINEAR HOME = 0.0 FERROR = 10.0 MIN_FERROR = 1.0 MAX_VELOCITY = 166.666666667 MAX_ACCELERATION = 600.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 = 208.33 STEPGEN_MAXACCEL = 750.00 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 ENCODER_SCALE = 2000.0 # these are in nanoseconds DIRSETUP = 10000 DIRHOLD = 10000 STEPLEN = 5000 STEPSPACE = 5000 STEP_SCALE = 1000.0 MIN_LIMIT = -0.01 MAX_LIMIT = 200.0 HOME_OFFSET = 0.0 #****************************************** #****************************************** [AXIS_Z] MAX_VELOCITY = 25.0 MAX_ACCELERATION = 750.0 MIN_LIMIT = -100.0 MAX_LIMIT = 0.01 [JOINT_2] TYPE = LINEAR HOME = 0.0 FERROR = 10.0 MIN_FERROR = 1.0 MAX_VELOCITY = 25.0 MAX_ACCELERATION = 750.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 = 31.25 STEPGEN_MAXACCEL = 937.50 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 ENCODER_SCALE = 2000.0 # these are in nanoseconds DIRSETUP = 10000 DIRHOLD = 10000 STEPLEN = 5000 STEPSPACE = 5000 STEP_SCALE = 1000.0 MIN_LIMIT = -100.0 MAX_LIMIT = 0.01 HOME_OFFSET = 0.0 #****************************************** [SPINDLE_0] MAX_VELOCITY = 150.0 MAX_ACCELERATION = 900.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 = 187.50 STEPGEN_MAXACCEL = 1125.00 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 ENCODER_SCALE = 4096.0 # these are in nanoseconds DIRSETUP = 10000 DIRHOLD = 10000 STEPLEN = 5000 STEPSPACE = 5000 STEP_SCALE = 1024.0

Oh where do I file bugs then, because this behavior (supported or not) is a bug... And honestly with encoded step/direction setups becoming easier to get a hold of likely to be more and more common so worth fixing.

Please Log in to join the conversation.

Time to create page: 0.188 seconds
Powered by Kunena Forum