Well someone had to check this out to see if it could provide viable probe protection. Protection for the single supported probe is afforded by the CSMIO with plugin 2.910, but the later version 3 plugin, which supports 4 probes, does not (as yet ) offer built in protection.
Based on Daz’s suggestion I added the following to the signal table:
[mc.ISIG_PROBE] = function (state)
-- AW Add probe protection
if ((state == 1) and (machState ~= mc.MC_STATE_MRUN_PROBE)) then
mc.mcCntlEnable(inst, 0)
end
end,
The inclusion of state in the if statement ensures that only leading edges of the signal inhibit motion. As a result, it is fully compatible with the built in probing functions of Mach4 and should work with all motion, whether initiated by jogging, MDI, Gcode or MPG.
So how does this perform in practice? Craig makes the valid point that response times may be inadequate, mainly because when the drives are disabled the machine will coast to a standstill. Such behaviour is obviously system dependednt. It may be possible with some systems to stop motion under power, thereby improving deceleration.
In my case I have an elderly converted manual Bridgeport driven by ac servos. Its rapid speed is modest at 1800mm/min. I measured the position of the vice jaws and then jogged the probe towards them at 1800mm/min until probe protection kicked in. The excess travel was pretty repeatable as follows:
X axis: 2mm
Y axis: 1.5mm
Z axis: 1mm
As my homemade probe can accept an overtravel of 3mm in Z and 6mm in X and Y, I have a safety factor of about 3:1, and conclude that this is an entirely viable method of protection which I shall continue to use.
Allan