Community

Capturing "Is Motor Enabled?" in MotionScope

Is there a bit/word in the firmware that I could monitor that would reflect the “enabled” state of a motor?

I can get the AMP_FAULT I/O address, but that’s only going to be high if the drive reports a fault, right? If RMP faults (for whatever its reasons), is that reflected anywhere?

We use the “Operation Enabled” bit of the status word to determine the enabled/disabled state of a given axis. Depending on what you need, you might also observe:

  • 0 Ready to switch on
  • 1 Switched on
  • 2 Operation enabled

Only the drive sets this PDO.
image

StatusBitGet() will get you if an object has a fault in the RMP.
The RMP can set this high. but it will also reflect the value in the status word.
image

SourceNameGet() Is also useful for debigging any exceptions/faults in the RMP.
Also

You can also configure RMP objects to log or throw exceptions. ThrowExceptions(bool) Then either catch them or check the size of your error log.

1 Like

Is there a nice way I can get the address of the status bit? Recall that I’m trying to capture data with the scope.

Ah, missed that as it wasn’t in the body of your message. Have you tried:
AddressGet(RSIAxisAddressTypeSTATUS);

I haven’t tried anything because it’s difficult to know for sure if the memory at an address is what I’m really looking for, especially if it’s only a bit. I was looking for an authoritative answer.

Does that address (RSIAxisAddressTypeSTATUS) correspond to the “status bits” shown in RapidSetup? And which bit is the fault bit?

Yes, the above would get you the address of the internal RSI status bits.

You might instead be interested in trying these methods for EtherCAT Statusword.
Using this for motion scope would be our recommendation as well.

Axis.NetworkIndexGet(NetworkIndexTypeSTATUS_WORD_INDEX) MotionController::NetworkInputAddressGet(int32_t index)

Or you can hover over the value in Network Data
image