Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[milo-dev] OPC subscribe many values - best practice

Hi!
  I'm quit new to this OPC communication concept. During a couple of weeks I have tried things out with the Milo-api, read the milo-examples, searched the internet for more examples and best practices...but I still have some questions and some unresolved problems to figure out.

In my context, I'm trying to subscribe to about 50000 different data values (parameters) from the same endpoint. The data values origin from two main branches in the end point server node-tree.
Current main opc-workflow:
- Create (one) OpcUaClient and connect
- using the client to browse recursively for parameters in the first node bransch
- using the client to browse recursively for parameters in the second node bransch
- Merging all parameters to one big list of all available parameters
- using the client to set up (one) UaSubscription and create MonitoredItemCreateRequest for all available parameters
- subscribe...

I should probably also mention that I don't have access to the configuration and setup of the opc end point.

Some problems I have experienced:
- If the parameter list is too long the OPC-client will throw;
  Caused by: UaException: status=Bad_TcpMessageTooLarge, message=message size exceeds configured limit: 3713273 > 2097152
- If I divide the list of parameters to smaller chunks and create MonitoringItems for each chunk, the server throws:
  Caused by: UaServiceFaultException: status=Bad_TooManySubscriptions, message=The server has reached its maximum number of subscriptions

Some of my questions are;
- What are some best practices to set up subscriptions for a very large number of values?
- Should I try to use more than one OpcUaClient to the same end-point?
- or should I try to set up several UaSubscription on the same OpcUaClient?

And some wishes...
- There are a lot of information regarding the milo-opc, but to me it's quite fragmented over the internet and in this mailing list. I wish some of the information could be collected and written into the README.md file or in the examples at github.

,regards
Thomas


Back to the top