Hi,
I use a program utility that converts PCB artwork into Gcode for isolation routing. One of the settings I can make
is to assign a spindle acceleration time. I specify 3 seonds for my spindle and this is an excerpt of the code it
produces:
N00000 G21
N00010 (Absolute Coordinates)
N00020 G90
N00030 G00 X0.0000 Y0.0000
N00040 M03
N00050 G04 P3.000000
N00060 G00 Z1.0000
N00070 G00 X66.5519 Y18.1959
N00080 G01 Z-0.4600 F100
Note line N00050 is the delay instruction. To my knowledge most if not all CAM, or more precisely CAM posts allow
such a setting.
This is one approach, namely have the delay expressed explicitly within the Gcode.
Another approach is to have Mach wait until the spindle is up to a percentage of its ultimate speed. That requires
Mach to have some feedback from the spindle to measure its speed. You do not have that facility evidently.
Yet another approach is to have Mach wait on a signal from the VFD (or speed controller) that indicates that the spindle
is up to speed. Many VFDs have programmable monitoring outputs including two of use in this regard.
Mach itself has two input signals defined (ISIG_SPINDLE_AT_SPEED and ISIG_AT_ZERO) that allow you to utilize that
method if you wish.
The first method is as old a Gcode programming itself and one I use extensively.
For automatic control the second method, namely spindle feedback, is very convenient and accurate. Machs core already has
all the code it requires but it does require an index or encoder signal from the spindle. Depending on your spindle this may or
may not be possible.
For example my highspeed (24000 rpm, 750W) spindle has an enclosed fan and would require me to break open the fan housing
to get to some rotating part to which I could attach an index sensor. This spindle is a high quality German made spindle and
I have no intention of digging it open for a sensor. A simple Gcode delay or using signals from the VFD are more than adequate.
My high torque spindle (1.8kW 6.2Nm 3500 rpm AC servo) however has programmable outputs to which I can assign
either/or an index pulse derived from the actual encoder or one (or even both) of the quadrature channels. So there is no need
to dig into the back of the servo thus the feedback method is as simple as programming the servo drive and running a wire
to an input on my motion controller.
A simple delay is adequate for most purposes. If you were in a production environment you might think otherwise.
Lets say at least one of your tools, a facing tool or boring head, takes 3 seconds to spin up to speed. If however you picked
an endmill it would spin up in 2 seconds. Thus if you programmed your post to allow 3 seconds delay on each spindle start
then there will be occasions when the machine is waiting unnecessarily instead of producing chips and making money.
Thus the demands of business, or lack thereof, will determine the effort and expense that you will devote to the issue.
Craig