Hello together,
We need to retrieve ca. 300 opc items from a number of OPC UA Servers of the same type. This was no Problem until a new mandatory Firmware for the Servers was released. Now they have a limitation of maximum 160 items in 2 subscriptions at the same time. So the first 160 subscribed items are working correctly the remaining ones are not available anymore.
Most of the items don't have archive or alert configs in the Wincc OA datamodel, so it would be sufficent to subscribe them only if they are really needed/shown. My idea was to create a subscription for every effected panel content to be able to activate it only if the related panel is shown in the UI and deactivate it if the panel is closed. Unfortunatelly doesn't it matter if a subscription is activated or not, more than 2 subscriptions are not accepted by the Server. So this strategy works fine for the first 2 subscriptions but not for the rest.
So now my idea is to have to subscriptions, one for the essential items with alert and archive configs and one for the "rest". For the rest items I want to activate and deactivate the adress configs dynamically by opening and closing of the affected panels.
And now the question is the OPC UA Client Driver able to handle dynamic activation/deactivation of >50 pheripheral adresses configs without a restart (even in a short period, if the user is clicking through the screens). Is there a best practice solution for such an Approach or has anybody a better idea?
(Btw. WinCC OA Ver. 3.11 SP1 and 3.14)
Thanks a lot
Best regards
Daniel Ponader
Dynamic Subscription of OPC UA Items
- Gertjan van Schijndel
- Posts:634
- Joined: Mon Aug 02, 2010 10:37 am
Re: Dynamic Subscription of OPC UA Items
I think the driver is able to handle this, especially because it are not that many items (I am surprised by this and would complain that the new firmware causes such low number of subscribed items).
Basically the drivers (S7+ and OPC DA) already do this (S7+ with 'polling on use' and OPC DA with 'nonpermanentKey') although the address config is not actually (de)activated, but only the polling/subscribing of the data changes. The drivers look at the '_connect' config to determine if they should (de)activate the address.
Basically the drivers (S7+ and OPC DA) already do this (S7+ with 'polling on use' and OPC DA with 'nonpermanentKey') although the address config is not actually (de)activated, but only the polling/subscribing of the data changes. The drivers look at the '_connect' config to determine if they should (de)activate the address.
- daniel.ponader
- Posts:34
- Joined: Tue Jan 10, 2012 1:40 pm
Re: Dynamic Subscription of OPC UA Items
Thank you very much for the reply. Unfortunately at the moment we have to accept the issue with the low number of items. What is the best way to do this? I would create a control script with a query connect on all affected dpes.:_connect.._manids which (de)activates the address configs in dependence to the connected managers. Or is there a better solution?
Thanks a lot
Thanks a lot
- Gertjan van Schijndel
- Posts:634
- Joined: Mon Aug 02, 2010 10:37 am
Re: Dynamic Subscription of OPC UA Items
A dpQueryConnectSingle with a blocking time on the affected '_connect' configs in a control script seems the second best solution (best would be poll on use in the driver).
To get the affected dpes you can filter on '_distrib.._driver' with the driver number.
To get the affected dpes you can filter on '_distrib.._driver' with the driver number.
- leoknipp
- Posts:2928
- Joined: Tue Aug 24, 2010 7:28 pm
Re: Dynamic Subscription of OPC UA Items
The _connect attribute does not contain any information if a dpQueryConnectSingle/dpQueryConnectAll is used.
It only works if a dpConnect is used.
Best Regards
Leopold Knipp
Senior Support Specialist
It only works if a dpConnect is used.
Best Regards
Leopold Knipp
Senior Support Specialist
- daniel.ponader
- Posts:34
- Joined: Tue Jan 10, 2012 1:40 pm
Re: Dynamic Subscription of OPC UA Items
Thanks for the hints. Now the item subscription "on demand" works fine. Of course now it takes some seconds until all demanded values are refreshed after opening an affected panel, so the user sees "old" values within this time. I would like to signalize that the refresh is in progress. Would it be good way just to connect to the original value time stamps of the dpes and give a wait indicator until all time stamps are near the current time? Or is there a better way to realize such a function?
Thanks a lot
Regards
Daniel
Thanks a lot
Regards
Daniel
- Gertjan van Schijndel
- Posts:634
- Joined: Mon Aug 02, 2010 10:37 am
Re: Dynamic Subscription of OPC UA Items
Normally drivers with poll on use will indicate this with the '_uncertain' attribute, which is set when the subscription ends and reset with the first value after the subscription is active.
You could also set this '_uncertain' attribute, but I do not think that a driver without poll on use will reset this attribute.
You could also set this '_uncertain' attribute, but I do not think that a driver without poll on use will reset this attribute.