we are running into problems accessing a Siemens-PLC driven OPC-UA Server using Halocon/HalconCPP, which in turn seems to be built on unified automation.
We currently have two c++/halcon/opcua applications accesssing the opcua server from two different macines (later there will be 4-8). Each application browses the complete node tree on connect, polls 2-4 variables in ~50-100ms interval and occsionaly reads or writes (1-5 accesses /minute on average) to one of ~20 variables.
On each machine we are also running DataFeed opc client as a development aid to manually set/view opc-variables.
With this setup we have the problem that browse calls to e.g. query_io_device or open_io_channel fail with an BadNodeIdUnknown error. What was seemingly undeterministic has been tracked down to happen frequently during disconnects/reconnects of other clients (our only 2nd application or the Datafeed tool). This behaviour can be triggered in about 90-95% of the cases by intentionally disconnecting/connecting one app while the other is browsing. All variables are accessed via short namespace and ids.
- Since we are not dynamically changing, moving, deleting or creating the failing nodes i have no idea why this annoyoing errors would happen?
- Is this a problem with the setup of our server? Are there any settings to consider/change?
- Can this be a problem with the changing nodes in the ServerSessions subtree? But then, why would other nodes be unavailable?