Machsupport Forum

Mach Discussion => Mach4 General Discussion => Topic started by: DonnyM on January 14, 2019, 08:33:55 PM

Title: G93 Inverse Time
Post by: DonnyM on January 14, 2019, 08:33:55 PM
What is the F register limit for G93? I might need to go down to  F 0.001 Which is like 16.67 hours .
Seems a bit long of a time but for this contraption its kinda short.
I am looking at how to specify different feed rates on 3 rotary axis and no liner axis over a long period of time. Seems like G93 might be the only option.

thanks,
 
Title: Re: G93 Inverse Time
Post by: smurph on January 15, 2019, 02:51:26 AM
In the core, we basically call it zero velocity if you are below .00001" per minute.   So don't go that far.  Your motion controller may limit you, so check the specs on it.

Steve
Title: Re: G93 Inverse Time
Post by: DonnyM on January 15, 2019, 10:15:45 AM
Steve,
Just making sure we are on the same page. With Inverse time G93 a value of F1 takes 1 minute. A value of F2 takes 30 seconds. A value of F0.5 takes 2 minutes.
So G01 G93 A360 F0.00001 would take 100,000 minutes to move 360 degrees.
So as long as the micro-controller I am using takes this many decimal places I am good to this #? Any other gotchas in Mach4 with this?

thanks,
 
Title: Re: G93 Inverse Time
Post by: smurph on January 15, 2019, 05:24:46 PM
Yes, feed rate is units per minute.

However, it isn't necessarily the number of decimal places that you should be concerned with, motion controller wise.  In the end, a trajectory is boiled down to the number of counts/steps the motor should move in a window of time.  The most common "time slice" is 1 millisecond.  I don't know what motion controller you are using, so I can't give any advice on what it may or may not do. 

For the purposes of this discussion, let's assume that is is running a 1 millisecond time slice.  To get continuous motion on the motor, a minimum of 1 count per time slice is needed.  Say the counts per unit is 10000 (inch).

10000 per inch == .0001" per millisecond. 
.0001 * 1000 == .1000" per second
.1000 * 60 == 6.000" per minute. 

That is for the case of each time slice moving 1 count per millisecond.  Obviously, the more counts per unit (higher resolution), the slower you can go with the smoothest possible motion.  But for most things, we have to compromise on the smoothness of the motion to go slower.  Say like a count every other millisecond (3.0000" per minute).  The time the motor spent moving would be equal to the time the motor wasn't moving.  In other words, 1/2 of the time, the motor would move.  But if you extend that out to a count every 4 milliseconds (1.5000" per minute), the motor is moving 1/4 of the time.  And so on and so forth.  At what point does the motion controller consider the motion as stopped?  No movement in 10 milliseconds?  20? 100?  That is what you have to worry about.

Steve
Title: Re: G93 Inverse Time
Post by: DonnyM on January 15, 2019, 06:37:04 PM
Thanks for the explanation. the 360 in 100,000 minutes was just a over exaggerated example. Real world would be running 1 rpm continuously for 100,000 minutes.
Which would be
G01 G93 A36,000,000 F0.00001

The controller is a PMDX 416. I have reached out to them but have not heard back.

thanks,