Hi,
Where else can I put the motor fault signals and why would the touchplate cause this behavior? I assume the limit ++ would behave like an E-Stop so putting the motor fault signal there made sense. Am I wrong?
You ask several questions, the most telling is why a probe event triggers a limit? May I suggest we break the problem down a bit:
1) Where and how can you deal with servo faults?.
2) What action do you expect of the machine if a servo does fault, an Estop or some other action less drastic like Feedhold?
3) Why does a probe event trigger a servo fault?....or is it a servo fault or is it conducted noise onto the fault wire?
Mach4 has swags of inputs in addition to ++Limits. For instance ISIG_INPUT1 through ISIG_INPUT64.
May I suggest that you use these signal inputs, one for each servo fault output.
For example:
Assign a spare input pin on your PMDX126 to signal ISIG_INPUT20 and then connect that pin to the X axis servo fault output.
Now make a new entry it the SigLib{} table in the screen load script of the form:
[ISIG_INPUT20]=function(state)
local inst=mc.mcGetInstance()
if state==1 then
mc.mcCntlSetLastError(inst,'X axis servo alarm')
mc.mcCntlEStop(inst)
else
mc.mcCntlSetLastError(inst,'X axis alarm reset')
end
end,
So now if the x axis servo faults you will know which servo has faulted. Note that I have chosen Estop as the required action
but you could equally choose some other action like:
mc.mcCntlFeedHold(inst).
You would require three inputs, one for each axis. You may need to get another breakout board, a cheap and cheerful
bidirectional C10 at $23.00 for instance. If you set pins 2-9 as inputs and used port three of the ESS with pins 2-9
set similarly as inputs you will have plenty of spare inputs if the PMDX126 does not have enough spare.
This would address the first two issues, namely how to deal with the servo fault outputs and the action to take when a servo faults.
The last question is now likely to resolve itself.
I suspect the Z axis is faulting because when the probe event occurs Mach, or rather the ESS directs that the Z axis stop immediately,
and I am guessing that it is causing an over current event within the servo. The same sort of thing happens when you Estop,
the deceleration is VERY abrupt and can cause a current spike which will trigger your alarm. If this is the case then the arrangements
I have suggested will isolate whether indeed the Estop is caused by conducted noise OR a genuine servo fault.
If it is a servo fault then you need to program the servo for some respectable max deceleration such that the over current event
is NOT triggered.
Craig