Hi Marc,
I don't know if I can help, but we can talk until someone comes along
I have never run steppers on a cnc to have first hand knowledge of what you are dealing with.
Do you know that your motors never lose steps on acceleration?
Have you experimented with the "Smooth " command yet? (I believe this command is available in CNC Professional, but not Lite). It might be worth a shot to see if the motors will keep running smoothly over a multi step profile. If you don't use a decelstop, you will get an instant stop "ramp", which, I would think, would be the cause of lost steps. This would be the reason to incorporate the smooth on command.
I set up a set of "shadow gcodes" that do exactly the same thing as G1, G2 and G3 (which all contain a decelstop command), except the shadow set has the decelstop removed, but must be used in conjunction with a seperate gcode which turns smooth on.
When the profile is finished, I turn smooth off with another gcode, prior to going back to the conventional G1, G2, G3. I am running this on a lathe, where the profiles are short and sweet.
I've been thinking about this lately, and I may change my method for use on a mill, because it would be very inconvenient, to use different gcodes other than standard, especially when creating programs from standard cadcam software. It might work better to create a flag variable, which resides in your G1, G2 or G3 logic, and which represents the state of "smooth on" or "smooth off". This way, you will still turn smooth on and off by changing the state of the flag variable:
G100 logic (pick any free gcode you have)
\200 (or whatever) = 1 'smooth on
G101 logic
\200 = 0 ' smooth off
G1 logic
IF\200=1THEN SMOOTH ON
GO x;y;z
This way, you can continue to program with standard software for all the movements.
You do need to turn smooth off before the final feedrate movement has been completed (to prevent the "instant stop ramp" from occurring.) You would have to command
G101 G1 at the last movement in the profile, in this example, to shut off smoothing:
G1 logic
IF\200=1THEN SMOOTH ON
If\200=0 THEN SMOOTH OFF; DECELSTOP
GO x;y;z
BTW, I have not looked at the manual for a few months, so my syntax may not be correct. I running on pure neurons here.
Just be sure to initialize \200 to zero in your startup.fil and also with any kind of "machining program abort or reset" Mcode or Gcode that you have set up.


LinkBack URL
About LinkBacks






