The most likely cause is a failure to specify the spindle RPM. If you do not include a reasonable "S" value for the RPM, then you are probably defaulting to 0 RPM. M3 with S0 will not start the spindle.I'm running CNC 10. when I write the M code for spindle enable (M03) it runs
the program but the NO contact for spin en doesn't close. Are there other
criteria that needs to be met before it will pick the relay? Why does the
program continue to run if it doesn't pick the relay? I tried writing a new
M code in place of SPIN EN using the FLOOD M code but it stops the program,
I assume due to it not being wired to anything. Any help would be great,
Another possible cause of this is an open limit switch input. Are you running a two-axis mill?
If you are running a two-axis mill, you still need to ensure that INP5 and INP6 (the Z axis limit switch inputs) are closed; or you need to modify your PLC program. The standard PLC programs assume that all six limit inputs are used, and will stop the spindle if any of them are open.
Do you have a DC3IO, a SERVO3IO, or some other PLC and servo drive combination? I will assume since you are running CNC10 that you have a DC3IO, but that is not guaranteed.
Do you have a touch probe plugged in, or some other device connected to INP15?
Some earlier PLC programs would inhibit the spindle if they detected a touch probe plugged in, but would fail to report it as a fault and cancel the cycle. Current PLC programs will trigger a fault if you try to start the spindle with a touch probe plugged in.