Hello Guest it is April 21, 2021, 12:50:37 PM

Author Topic: Jogging and DRO errors  (Read 3190 times)

0 Members and 1 Guest are viewing this topic.

Jogging and DRO errors
« on: December 29, 2017, 04:41:05 PM »
With machine homed and zeroed if I use jog in either X or Y direction the DRO indicates that the move is longer than the Jogging increment.
    If the increment is 1.00 the DRO shows 1.0002
    If the increment is 0.1 the DRO shows  0.1003
    If the increment is 0.0100 the DRO shows 0.0103
    If the increment is 0.0010 (or smaller) the DRO doesn't change and the X or Y axis does not move.
    In all cases if I jog back in the negative direction the DRO goes exactly the correct amount.

    The Z axis does not have this error

The diagnostic screen does not show the error because it only shows 3 places to the right of the decimal point.
In the jogging configuration jogging is shown to support from 1.0 to 0.0001


    If I activate the diagnostic log I can see each of the jog increment change requests.
2017-12-29 13:33:28.832 - API: mcJogSetInc(inst = 0, axis = 0, inc = 0.1000) (Mach4GUI)
2017-12-29 13:33:28.833 - API: mcJogSetInc(inst = 0, axis = 1, inc = 0.1000) (Mach4GUI)
2017-12-29 13:33:28.833 - API: mcJogSetInc(inst = 0, axis = 2, inc = 0.1000) (Mach4GUI)
2017-12-29 13:33:28.833 - API: mcJogSetInc(inst = 0, axis = 3, inc = 0.1000) (Mach4GUI)
2017-12-29 13:33:28.833 - API: mcJogSetInc(inst = 0, axis = 4, inc = 0.1000) (Mach4GUI)
2017-12-29 13:33:28.833 - API: mcJogSetInc(inst = 0, axis = 5, inc = 0.1000) (Mach4GUI)
2017-12-29 13:33:30.409 - API: mcJogSetInc(inst = 0, axis = 0, inc = 0.0100) (Mach4GUI)
2017-12-29 13:33:30.410 - API: mcJogSetInc(inst = 0, axis = 1, inc = 0.0100) (Mach4GUI)
2017-12-29 13:33:30.410 - API: mcJogSetInc(inst = 0, axis = 2, inc = 0.0100) (Mach4GUI)
2017-12-29 13:33:30.410 - API: mcJogSetInc(inst = 0, axis = 3, inc = 0.0100) (Mach4GUI)
2017-12-29 13:33:30.410 - API: mcJogSetInc(inst = 0, axis = 4, inc = 0.0100) (Mach4GUI)
2017-12-29 13:33:30.410 - API: mcJogSetInc(inst = 0, axis = 5, inc = 0.0100) (Mach4GUI)
2017-12-29 13:33:31.465 - API: mcJogSetInc(inst = 0, axis = 0, inc = 0.0010) (Mach4GUI)
2017-12-29 13:33:31.465 - API: mcJogSetInc(inst = 0, axis = 1, inc = 0.0010) (Mach4GUI)
2017-12-29 13:33:31.465 - API: mcJogSetInc(inst = 0, axis = 2, inc = 0.0010) (Mach4GUI)
2017-12-29 13:33:31.465 - API: mcJogSetInc(inst = 0, axis = 3, inc = 0.0010) (Mach4GUI)
2017-12-29 13:33:31.465 - API: mcJogSetInc(inst = 0, axis = 4, inc = 0.0010) (Mach4GUI)
2017-12-29 13:33:31.466 - API: mcJogSetInc(inst = 0, axis = 5, inc = 0.0010) (Mach4GUI)
2017-12-29 13:33:33.059 - API: mcJogSetInc(inst = 0, axis = 0, inc = 0.0001) (Mach4GUI)
2017-12-29 13:33:33.060 - API: mcJogSetInc(inst = 0, axis = 1, inc = 0.0001) (Mach4GUI)
2017-12-29 13:33:33.060 - API: mcJogSetInc(inst = 0, axis = 2, inc = 0.0001) (Mach4GUI)
2017-12-29 13:33:33.060 - API: mcJogSetInc(inst = 0, axis = 3, inc = 0.0001) (Mach4GUI)
2017-12-29 13:33:33.060 - API: mcJogSetInc(inst = 0, axis = 4, inc = 0.0001) (Mach4GUI)
2017-12-29 13:33:33.061 - API: mcJogSetInc(inst = 0, axis = 5, inc = 0.0001) (Mach4GUI)

If I attempt to jog when the increment is lower than 0.001 I get this:

2017-12-29 13:35:10.582 - API: mcJogSetInc(inst = 0, axis = 0, inc = 0.1000) (Mach4GUI)
2017-12-29 13:35:10.582 - API: mcJogSetInc(inst = 0, axis = 1, inc = 0.1000) (Mach4GUI)
2017-12-29 13:35:10.583 - API: mcJogSetInc(inst = 0, axis = 2, inc = 0.1000) (Mach4GUI)
2017-12-29 13:35:10.583 - API: mcJogSetInc(inst = 0, axis = 3, inc = 0.1000) (Mach4GUI)
2017-12-29 13:35:10.583 - API: mcJogSetInc(inst = 0, axis = 4, inc = 0.1000) (Mach4GUI)
2017-12-29 13:35:10.583 - API: mcJogSetInc(inst = 0, axis = 5, inc = 0.1000) (Mach4GUI)
2017-12-29 13:35:12.054 - API: mcJogSetInc(inst = 0, axis = 0, inc = 0.0100) (Mach4GUI)
2017-12-29 13:35:12.054 - API: mcJogSetInc(inst = 0, axis = 1, inc = 0.0100) (Mach4GUI)
2017-12-29 13:35:12.054 - API: mcJogSetInc(inst = 0, axis = 2, inc = 0.0100) (Mach4GUI)
2017-12-29 13:35:12.054 - API: mcJogSetInc(inst = 0, axis = 3, inc = 0.0100) (Mach4GUI)
2017-12-29 13:35:12.054 - API: mcJogSetInc(inst = 0, axis = 4, inc = 0.0100) (Mach4GUI)
2017-12-29 13:35:12.054 - API: mcJogSetInc(inst = 0, axis = 5, inc = 0.0100) (Mach4GUI)
2017-12-29 13:35:15.342 - API: mcJogSetInc(inst = 0, axis = 0, inc = 0.0010) (Mach4GUI)
2017-12-29 13:35:15.343 - API: mcJogSetInc(inst = 0, axis = 1, inc = 0.0010) (Mach4GUI)
2017-12-29 13:35:15.343 - API: mcJogSetInc(inst = 0, axis = 2, inc = 0.0010) (Mach4GUI)
2017-12-29 13:35:15.343 - API: mcJogSetInc(inst = 0, axis = 3, inc = 0.0010) (Mach4GUI)
2017-12-29 13:35:15.343 - API: mcJogSetInc(inst = 0, axis = 4, inc = 0.0010) (Mach4GUI)
2017-12-29 13:35:15.343 - API: mcJogSetInc(inst = 0, axis = 5, inc = 0.0010) (Mach4GUI)
2017-12-29 13:35:19.824 - API: mcJogIncStart(inst = 0, axis = 0, inc = 0.0010) (Mach4GUI Button)
2017-12-29 13:35:19.824 - Attempt transition from "Idle" on event "Jog" Axis.cpp:564
2017-12-29 13:35:19.824 - Signal id 1127, (Jog Enabled), changed from HIGH to LOW.
2017-12-29 13:35:19.824 - S_IDLE_on_exit
2017-12-29 13:35:19.824 - ACTION_start_jogging
2017-12-29 13:35:19.824 - S_JOGGING_on_entry
2017-12-29 13:35:19.831 - Attempt transition from "Jogging" on event "Stop Jog" Controller.cpp:1379
2017-12-29 13:35:19.832 - S_JOGGING_on_exit
2017-12-29 13:35:19.832 - S_FILE_RUNNING_stop_jogging
2017-12-29 13:35:19.832 - S_IDLE_on_entry
2017-12-29 13:35:19.832 - Signal id 1127, (Jog Enabled), changed from LOW to HIGH.

I can't figure out what is going on here.  I have a PMDX 416 controller, Windows 10

Thanks
Re: Jogging and DRO errors
« Reply #1 on: December 29, 2017, 04:48:51 PM »
Forgot to mention I have Mach 4 build 3481 and latest PMDX software. :'(

Offline Chaoticone

*
  • *
  •  5,626 5,626
  • Precision Chaos
    • View Profile
Re: Jogging and DRO errors
« Reply #2 on: December 29, 2017, 05:13:15 PM »
What are your steps per for the axis showing the error? You can not move in partial steps. Only whole steps can be taken. So, the result is most likely the math of putting you as close to requested as possible.
;D If you could see the things I have in my head, you would be laughing too. ;D

My guard dog is not what you need to worry about!
Re: Jogging and DRO errors
« Reply #3 on: December 29, 2017, 05:40:35 PM »
My X and Y are set to 1/8 and my Z is set to 1/4. MY X and Y are on a belt and my Z is on a screw.

What is the message "Attempt transition from "Jogging" on event "Stop Jog" Controller.cpp:1379" indicate? Where can I find a listing of all the error messages?

The actual error is extremely small considering what I use my machine for so it probably doesn't matter but it is curious.
Re: Jogging and DRO errors
« Reply #4 on: January 13, 2018, 11:25:43 PM »
My X and Y are set to 1/8 and my Z is set to 1/4. MY X and Y are on a belt and my Z is on a screw.

This doesn't make sense.  Your X and Y axes are set the 1/8 steps per inch (or mm)??  When you go to the Configure->Mach menu, click on the "Motors" tab and select "Motor0", what does the "Counts per unit" say?  Likewise the other motors.

For "very small" jog increments, if you don't get any motion it means that the jog increment is smaller than one step as entered in the "count per unit" field referenced above.  For example, if you have 100 counts per inch, each step pulse will move 0.01 inches.  If you set the jog increment to 0.0001 inches and try to do an incremental jog, you will get no motion until you jog 5 times (I think the PMDX plug-in rounds fractional motion up starting at 1/2 of a step).  And then every 10 incremental jogs.

Likewise, if you set the "counts per unit" to 400, each step will be 2.5 thousandths of an inch.  If you start at zero and command a move to 0.008 you will actually end up at 0.00075 because that is as close as you can get with that step size.  If the DRO is displaying 3 fractional digits, it will round up (I think) and show 0.008.  If the DRO shows 4 fractional digits it will show the full 0.0075.

Quote
What is the message "Attempt transition from "Jogging" on event "Stop Jog" Controller.cpp:1379" indicate? Where can I find a listing of all the error messages?

This is not an error message.  It simply says that the Mach4 core is attempting to change out of the "jogging" state, because it received a "stop jog" event (i.e. the motion planner told the core that it was done generating the motion).
Re: Jogging and DRO errors
« Reply #5 on: February 04, 2018, 04:00:14 PM »
@Brotenc
Have you figured out this error problem?
I get a similar thing and don't know why it acts this way. Feed screw is 5mm per turn, so for one inch (25.4/5) = 5.08 turns, times 3200 steps per rev
I have steps per unit set to a whole number (16256) and when I jog one unit it goes to .9997. Jogging negitive one unit does not return to zero, like .0002.
I was told that digital control was exact, but this acts like it's converting to parsecs and rounding it off, then reconverting to inches and getting an accumulated error.
There is no feedback in the actual motion, so mach4 is basically telling me it's not going to do 16256 steps when told.
Re: Jogging and DRO errors
« Reply #6 on: February 04, 2018, 04:52:38 PM »
Hi Roaster,
the position/velocity/time data provided by Mach for its trajectory planner is INTEGER. It can move
15432 steps or 15433 steps, but not in between.

One step at 3200 steps/rev with 5mm pitch screw is 1.5um Are you telling me that your machine is accurate enough
to indicate 1.5um? If so Hass and Mori Seiki had best watch out, a real machine builder ins in town!

Craig
My wife left with my best friend...
     and I miss him!
Re: Jogging and DRO errors
« Reply #7 on: February 04, 2018, 05:11:29 PM »
Hi Craig
It's not the machine, it's Mach4 not jogging one unit.
I tell it to jog one unit and it does something else, as indicated by the dro.
 As I stated, my steps per unit is a whole number, so what's up? Why would it do something other than move one unit worth of steps?
Re: Jogging and DRO errors
« Reply #8 on: February 04, 2018, 05:51:51 PM »
I tried a few things and the dro error is less with low acceleration rates and worse with high acceleration.
This means I can work around it, but something in the acceleration math is interfering with the delivery of the correct number of steps per unit. This decreases machine accuracy, but I guess close is good enough.
Re: Jogging and DRO errors
« Reply #9 on: February 04, 2018, 06:14:51 PM »
Hi,
OK there are a few things you can try. The first thing to realise is that when you engage microstepping, in your
case 16 microsteps per full step for 16 X 200=3200 steps per rev that it doesn't really work that way.

There have been a number of disscussions on the forum and other places but the short story is that that the torque
between adjacent microsteps is very low and cannot be relied upon to step that one microstep. In fact its reasonable
to consider a two phase stepper as having a resolution of 200 steps/rev and can almost always be relied on to
do 'half' steps for 400 steps/rev. Microstepping beyond half steps don't in reality offer you any better resolution,
what they do offer is smooth motion.

The history goes that astronomers first proposed the use of microstepping, who knows they may have been hoping for
better resolution, they didn't get it, but what they did get was 'smooth' and that suited their telescopes very well.

For the purpose of your experiments you should switch off microstepping and run at full steps. Do your measurements and see
if they match your expectation. You may try half stepping as well, I think you'll be impressed.

The 'effective resolution' of a two phase stepper is 400 steps/rev or with a 5mm ballscrew a linear resolution of 0.0125mm
or 12.5um. Pretty good for a hobby machine. You can quote 3200 steps/rev or 1.5625um per step, you'll impress a
newbie but any CNCer will roll there eyes and think 'tosser'.

Craig
My wife left with my best friend...
     and I miss him!