<Feb 5, 2011>
I have posted 1.0.2.d24
The more I looked at the interactions of mach allowing the stop button to abort the execution of the M6 scripts, the more I felt that just turning off the tool change LED and going on was not a safe action.
There is no way to clean this up from MSM. Mach should never allow this to happen in the first place (it’s a violation of the GCode definition of a block as an atomic execution unit). Since the m6 scripts can get aborted anywhere, and mach does not raise an error flag when it does this, the scripts (and the M6 sequence) are left in a state that can not be determined. In reality, this should be a control fault (a word and block partially executed) so in .d24 when MSM detects this situation, it now resets mach. This is the only safe thing for MSM to do – it can’t entice the user to continue from an unknown state as if all were well.
When this happens, it is highly likely that due to the way mach handles "current tool" and "next tool" that the current tool info still matches the tool physically mounted in the spindle! This is because a mach tool change swaps "current tool" into for "next tool" info at the start of the M6 sequence (before the tool is physically changed). The operator needs to be forced to go check things before going on. Again, if the M6 is not interrupted, this would be ok - but the interruption leaves the state inconsistent. Note that this core problem is not an MSM issue, but a Mach problem. The same thing can happen with the stock mach 1024 set M6 scripts.
MSM is now just smart enough to notice this when you press the stop button and notify you that as a result of that action things are messed up. Note that this detection code is part of the MSM stop button logic – if you execute a DoOEMButton(MachStopButton) from a script during a tool change, you will create the same problem (but MSM will not know it happened), so this improvement in MSM helps the UI level but not the scripting level (that would require a fix inside mach).
The good news is that I managed to get MSM to go back to the prior page when a Stop event interrupts a tool change...

Dave