i am afraid you will have to make a workaround to control spindle by brain
by using Userled's witch are set in the brain.
then macropump script can read these LED's and control spindle
example for macropump script:
'turn spindle on CW ----------------------------------------------
'check UserLed was set by brain and SingleShot LED is False
If (GetUserLed(1500) = True) And (GetUserLed(1501) = False) Then
DoSpinCW()
End If
'update status of single shot LED
SetUserLed(1501,GetUserLed(1500))
'turn spindle on CCW ---------------------------------------------
'check UserLed was set by brain and SingleShot LED is False
If (GetUserLed(1502) = True) And (GetUserLed(1503) = False) Then
DoSpinCCW()
End If
'update status of single shot LED
SetUserLed(1503,GetUserLed(1502))
'turn spindle OFF ------------------------------------------------
'check UserLed was set by brain and SingleShot LED is False
If (GetUserLed(1504) = True) And (GetUserLed(1505) = False) Then
DoSpinStop()
End If
'update status of single shot LED
SetUserLed(1505,GetUserLed(1504))
in this example
UserLed(1500) will turn on Spindle CW
UserLed(1502) will turn on Spindle CCW
UserLed(1504) will Stop Spindle
i have no idea for your MPG problem, but maybe this
https://www.youtube.com/watch?v=ICYedxkSXGccan help.
individual axis GoTo zero can be done in the same way like spindle control.