Behavior of MultiAxis::ClearFaults() when the object state ISN'T error?

What behavior should I expect from ClearFaults() if the object is not in an error state?

First, is it the implicit expectation that no sensible person would ClearFaults() without having checked the state first? (The example does something like this.)

Are there other things I should check to know if I would want to ClearFaults() besides the state? Are there states/faults that could exist (in the mapped axes, e.g.) that would not be reflected in the multi axis states?

ClearFaults when Idle (and AmpEnabled) ?

Supposing an axis in the multi axis was enabled and idle. Would you expect anything at all to happen?

I have observed that under some conditions when the axis (which is a member of the multi axis) is enabled and idle, that clearing faults has the effect that the bits in the status word will indicate that the axis is in the “not ready to switch on” state ( 0b x0xx 0000 ) for a few (~8) milliseconds.

Reason for ClearFaults

I am clearing faults in preparation for streaming motion, so it’s just a part of the get-ready-for-motion code. I haven’t been checking states anything. I was using the function as if to say, “clear any faults, if there are any.”

Is this the proper expectation? If not, what should I expect?

The method ClearFaults() sets a bit in the control word to command the drive the clear their fault bit. Calling ClearFaults() while the axis is idle and without errors is fine and does not affect the axis. The axis being enabled or disabled does not affect the method’s behavior.

However, calling ClearFaults() while the axis is moving will throw an exception, so be sure to check that the axis is not in motion or in the process of stopping.

As far as the behavior of the drive upon receiving the command to clear their fault bit, that may vary based on the drive. For more details, I suggest reaching out to the vendors.

1 Like