Firmware Address for (Real) Commanded Position

Is there an address for an axis’s actual commanded position?

Suppose I want to verify that backlash is working. When I use the address for RSIAxisAddressTypeCOMMAND_POSITION, I get the position that I commanded, not the position than RMP commanded.

Is there a (supported) means of retrieving the “sent” command position that I could use as a means of comparison to (my) command and the actual positions?

Hi @todd_mm,

Axis::CommandPositionGet() - Returns a UserUnits scaled Command Position. This is the value in the MotionController which is scaled by UserUnits before being sent to the EtherCAT Master / MainDevice. It might be acted on by PostTrajectoryGearing or Backlash though.

I recommend going to the absolute sent value. If you are using CSP position control and use Axis::NetworkIndexGet(NetworkIndexTypePOSITION_DEMAND_INDEX), then you can use its return value with MotionController::NetworkOutputSentValueGet(#indexFromBefore#). This is the definitive value which is sent out over the network. For the address, you want to use MotionController::NetworkOutputAddressGet(#indexFromBefore#, RSINetworkOutputAddressTypeSENT_VALUE)

You may find looking at the backlash value helpful since that is what you are testing. Axis::AddressGet(RSIAxisAddressTypeBACKLASH_VALUE).

Let me know if this doesn’t help out.

1 Like

I’ll try this. Thanks, Jacob.