Get address of dedicated I/O?

Is there an API for getting the host address of a dedicated input/output for an rsi::RapidCode::Axis object?
I see APIs for general I/O, but not dedicated.

I could use the IOPoint interface, but that has the unfortunate side effect of allocating memory that I cannot directly deallocate (without destroying the process instance of the MotionController).

Is there a good way to do this? (I need the address for a user limit.)

Hello Todd,

You can use Axis.AddressGet with

RSIAxisAddressTypeDEDICATED_OUTPUTS
Dedicated Outputs (Amp Enable, Brake, etc)

and

RSIAxisAddressTypeDEDICATED_INPUTS
Dedicated Inputs (Home, Limits, Amp Fault, etc)

See:
https://roboticsys.com/RapidCode/class_axis_a0cf2ce9245e295f9baa3e962df47a67c.html#a0cf2ce9245e295f9baa3e962df47a67c

1 Like

How do I separate the various inputs in the respective words(?) of the memory at that address?
I need an address, a mask, (and a comparator, but that comes from elsewhere).

Hello Todd,

To get the mask for the positive hardware limit (for example), you can use:

(1 << RSIMotorDedicatedInLIMIT_HW_POS)

1 Like