Professional OPC
Development Tools

logos

Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

Siemens PLC UA server - too many monitored items in the subscription

More
20 Sep 2024 09:09 - 20 Sep 2024 18:06 #13174 by support
Hello.

The OPC UA specification defines variables which the server can use to announce to its clients which capabilities and limits it has, so that the clients can adjust accordingly.
In an ideal world, this will work like this:

1) The server will correctly expose and fill in the capabilities/limits variables.
2) The client (QuickOPC, in this case) will correctly interpret them and attempt to adjust, where possible.

On the client side, QuickOPC currently does *some* of it, but not all. Specifically, in version 2024.1, it honors the "MaxMonitoredItemsPerCall" variable, but it does not honor the "MaxMonitoredItemsPerSubscription" variable, and this can be the reason for the behavior you observed.

We have a work item to also provide support for "MaxMonitoredItemsPerSubscription" and if needed, create more subscriptions to accommodate for larger number of monitored items, but it has not been assigned a target release yet. I may be able to squeeze it into the upcoming QuickOPC 2024.2 release which is probably going to be out in November. But for it to make sense for you, we want to be sure that the requirements are also fulfilled on the server side - i.e. that the server announces its limits properly.

To verify this, can you please use our OpcCmd utility, and issue a following command, replacing the endpoint URL of our demo server with the endpoint of your server:
OpcCmd uaClient collectSoftwareInfo //opcua.demo-this.com:51210/UA/SampleServer
This collects various info about the server, including the capabilities and limits, and displays a table.

Once you know that the command is working, start it again (from the Windows command prompt), and this time redirect the output to a text file, by appending e.g. "> output.txt" to the end of the command line.Then, post the resulting output.txt file here; or email to support09 (at) opclabs.com if there is privacy concern; but you can verify that the contents of the file is actually just software info, there should be nothing "private" in it anyway.

If you need a solution right now, I can only offer an ugly workaround:

Choose a somewhat different monitored item arguments for different sets of items. For example, use sampling rate 1000 with first 200 items, and then use sampling rate 998 with the second set of 200 items, and so on (make at least 2 milliseconds difference). This will cause QuickOPC to maintain separate subscriptions.

It would also be possible to use multiple EasyUAClient objects with Isolated = true setting, but that is even uglier, because it would cause separate sessions to the server, so this requires even more resources and you would likely hit another server limit soon.

Best regards
Last edit: 20 Sep 2024 18:06 by support. Reason: improved the sampling rates workaround description

Please Log in or Create an account to join the conversation.

More
19 Sep 2024 09:21 #13173 by Nowok
With some Siemens PLC we reached error telling us that there are too many monitored items in the subscription.Is it possible to force QuickOPC to create new subscriptions according to the set requirements (e.g. we want one subscription to have a maximum of 200 variables)?

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.044 seconds