Bit mapping for RSIAxisAddressTypeSTATUS and RSIAxisAddressTypeMOTION_STATUS

Can someone please write out the bit mapping for RSIAxisAddressTypeSTATUS and RSIAxisAddressTypeMOTION_STATUS? I see it can technically be deduced based on values in rsienums.h and rsiconstants.h, but I think I am doing something wrong or missing something.

Also is there an address I can record to get the value of RSIFirmwareStatus and RSIState for each axis?

Hi @edco,

Both can have any of the following values within RSIFirmwareStatus.
The RSIAxisAddressTypeSTATUS refers to the Axis Status and RSIAxisAddressTypeMOTION_STATUS refers to the Motion Supervisor Status. These should generally show the same value unless you are coming something complicated.

The Axis::AddressGet(RSIAxisAddressType) function should give you either address which could be recorded/scoped. You may also find Axis::AddressDataTypeGet(RSIAxisAddressType) useful.

I don’t see a good RSIState address which you can use.

Can you tell me more about what is happening? Maybe I can help.

We’ve been recording the entire double value of STATUS and MOTION_STATUS to our external time series database. I want to decode these bits for analysis. For example, I was trying to troubleshoot a bug and it would be useful to see states such as Stopped/Idle/Error/etc in addition to the motion bits Done/Start/etc.

I don’t want to write extra code to record each bit as an separate metric, when I am already recording the entire value and can decode in the my visualization tool after the fact

I am looking for something like:

bit 0 = IN_COURSE_POSITION
bit 1 = AT_TARGET

bit n = something

bit 0 = RSIFirmwareStatusIN_COARSE_POSITION
bit 1 = RSIFirmwareStatusAT_TARGET
bit 2 = RSIFirmwareStatusAT_VELOCITY
bit 3 = RSIFirmwareStatusIN_FINE_POSITION & RSIFirmwareStatusSETTLED
bit 4 = RSIFirmwareStatusDONE
bit 5 = RSIFirmwareStatusMOTION_START
bit 7 = RSIFirmwareStatusPS_FAULT
bit 8 = RSIFirmwareStatusMS_FAULT
bit 9 = RSIFirmwareStatusOUT_OF_FRAMES
bit 10 = RSIFirmwareStatusFRAME
bit 11 = RSIFirmwareStatusRESET
bit 12 = RSIFirmwareStatusRESUME
bit 13 = RSIFirmwareStatusPAUSE
bit 14 = RSIFirmwareStatusSTOP
bit 15 = RSIFirmwareStatusESTOP
bit 16 = RSIFirmwareStatusESTOP_ABORT
bit 17 = RSIFirmwareStatusESTOP_CMD_EQ_ACT
bit 18 = RSIFirmwareStatusTRIGGERED_MODIFY_ESTOP
bit 19 = RSIFirmwareStatusTRIGGERED_MODIFY
bit 20 = RSIFirmwareStatusABORT
bit 21 = RSIFirmwareStatusERROR_STATE
bit 22 = RSIFirmwareStatusDISABLED
bit 23 = RSIFirmwareStatusHOST
bit 24 = RSIFirmwareStatusREC_IDLE
bit 25 = RSIFirmwareStatusREC_HIGH
bit 26 = RSIFirmwareStatusREC_FULL
bit 27 = RSIFirmwareStatusREC_RUNNING
bit 28 = RSIFirmwareStatusCAM
bit 29 = RSIFirmwareStatusEXTERNAL
bit 30 = RSIFirmwareStatusTRIGGERED_MODIFY_ESTOP_ABORT
bit 31 = RSIFirmwareStatusMOTOR_LIMIT

Perfect, Thank you!