I’m using the NCD Component library (v2.0.50727) to make calls on a USB ProXR Relay board with an attached expansion board. If the expansion board is disconnected or the power is unplugged, the call ProXR.RelayBanks.GetStatus(relay_num) return “OFF” which could actually be the state of the relay if the board were connected and powered up. I would expect the call to throw an exception but it does not.
Are there any NCD Component calls that can be made to determine if an expansion board is connected and powered up?
The relay controller will respond to these commands regardless of physical attachment as controlling relays is physically a write only operation. The controller has no way of knowing if the controller is physically attached as it keeps track of all relay status within local memory, therefore, local memory is reporting the memory status, so no errors are thrown. Only ProXR enterprise controllers can determine if an error occurs when communicating to relays based on physical attachment as there is a physical 2-way communication between the controller and the relay board (errors are flagged in a special error status register). Hope this helps.
Thank you, Ryan. That is very helpful. I will look to use the enterprise controllers in situations where the relay state is required.