Ignition 8.1.44
We are connecting to the OPC-UA server on a BRX BX-DM1E-36ED23-D PLC via their OPC-UA option module. We started to notice that PLC values reported by the PLC programming software were not matching the values reported/shown by Ignition once we exceed a certain number of exposed items in the BRX.
While troubleshooting, one of our engineers noticed that once we went above ~240 items exposed by the BRX server, the values in Ignition would begin to not match those in the PLC. While monitoring the values, they discovered that the value provided to Ignition was the value from the register a few memory addresses over from the subscribed tag.
It appears almost like we are subscribing to the wrong index in memory, but with how the BRX exposes members, that isn't possible from the Ignition side. In the BRX, you have to assign a memory register a 'Nickname', and that allows you to expose it via OPC-UA. In Ignition, the 'Nickname' is the node item that you see/can select on the BRX OPC server.
E.G, memory register R14 is assigned a nickname of Voltage_L1, and exposed via OPC-UA. In Ignition, we subscribe to that (Voltage_L1) node. After creating the Ignition tag, we monitor and confirm that the proper value is being shown. This register in particular is sitting around 0.037 with a small amount of noise.
Once we exceed 242 exposed items, that Ignition tag now shows a value of ~71.38, which lines up exactly with the value from R17 in the BRX, despite that memory address not being exposed and Ignition subscribing to what should be R14
This issue appears to persist through PLC power cycle and through us disabling and re-enabling the Ignition OPC-UA client connection to the BRX.
We have contacted Automation Direct/Host Engineering support regarding this. I am fairly confident this is an implementation issue on the BRX OPC-UA server side, but would like to confirm that nothing on Ignition's side would influence this.