I have written a C# windows service to monitor and process OPCUA tag data from an Ignition server. (Must be C# for various reasons out of my control, not my first time writing a windows service). I used the examples from the OPC foundation to write my code. However being a 24/7 application it is very unforgiving. Sometimes tags will change on the server and the topic change events will just stop in my application. No clue why.
My application must be very robust and OPCUA is mostly a big complicated mystery to me right now. I need to know more.
Specific things I would like to learn more about, but have not found anything very helpful yet:
-
How do you know for sure when the OPCUA connection is broken and it is time to disconnect and reconnect ? Best I can come up with is using a heartbeat tag subscription but surly the OPCUA has a better solution. Using some of the properties and events that seem like they should provide this information are very inconsistent.
-
How do you automate the testing of a OPCUA connection state ? How can I introduce network connection loss, busy networks, etc. so tests can be run before each software release to verify recovery is working ? ( I know… big topic)
-
Am I better off purchasing a 3rd party toolkit ? Know any good ones ?
-
Are there any good books that explain OPCUA (OPCUA for dummies ??:))
Any advice would be appreciated !