Wow--I did not know about G28.1 for Mach 4--thank you. I've only used G28 before, and since I want to home the axes in the sense that I want to each to go through their homing routine (programmed feed rate to home sensor; back off sensor; zero axis; apply offset, if necessary), G28 doesn't work, since it's only sending the axes to their assigned home positions.
However, G28.1 seems to work strangely for me: each axis assignment seems to require a location (G28.1 X0, for instance; G28.1 X not allowed). The axis appears to rapid to that coordinate, then rapid to the home position, rather than using the programmed feed in the Homing/Soft Limits setup (or in the Homing section of the ESS plugin setup, in my case). The rapid movement causes to the homing to fail. (This is a custom assembly machine, and some high-speed axes need to approach the home sensor at only 3% of their max, or rapid, rate).
G28.1 was the perfect answer for me, but I'm puzzled by its behavior, and the Mach 4 Mill Programming Manual didn't shed any more light on how it works, or what other arguments it takes. Does this rapid motion to home (or the intermediate position) make sense, and is it possible to modify that behavior?
I think I'm headed to the checking "mc.mcAxisIsHomed in a loop route", since I had no luck getting mc.mcSignalWait() to work with OSIG_HOMED_X as an argument.