How to control items in Publish Response

Questions regarding the use of the .NET SDK 2.0 for Server or Client development or integration into customer products ...

Moderator: uasdknet

Post Reply
martenbyebye
Hero Member
Hero Member
Posts: 21
Joined: 03 Mar 2017, 16:08

How to control items in Publish Response

Post by martenbyebye »

Hi,

is it possible to control the time (and hence which items) are published within a certain publish response?

Background:
I am publishing groups of nodes, each group having a "trigger" variable. When the client receives a change of the trigger, it will store the data belonging to that group somewhere else.

Currently I am using Internal nodes and I am writing onto those nodes in the following sequence:
- Write all data EXCLUDING the triggers
- Wait 400 ms
- Write all triggers
- Wait 400 ms
- Repeat

The problem now is that although I am writing in that sequence, sometimes the TCP package containing the PublishResponse contains not only the triggers, but some other data. This results in a data scramble for the client. (In the above scenario, the sampling interval would be 200 ms, publishing interval would be 100 ms, subscription mode "by exception")

1. Therefore my question is whether there is a way to control when exactly the batch is generated that is sent over the wire, ideally with Internal nodes, but if necessary with ExternalPush nodes. Basically I want to do what I did using write onto internal nodes, but on the level of PublishResponse:
- Add all data EXLUDING triggers to new publish response
- Send publish response
- Wait 400 ms
- Add all triggers to new publish response
- Send publish response
- Wait 400 ms
- Repeat

2. Would there be an advantage of using "ReportDataChanges" with ExternalPush nodes instead of "Write" onto Internal nodes?

Many thanks in advance!

User avatar
Support Team
Hero Member
Hero Member
Posts: 3068
Joined: 18 Mar 2011, 15:09

Re: How to control items in Publish Response

Post by Support Team »

OPC UA only ensures in sequence delivery of notifications per MonitoredItem. The behavior across several monitored items is completely undefined and there is no way do ensure a certain packaging.

The sampling into monitored items, the queuing in the monitored item and the delivery cycle defined by PublishingInterval and the sending through Publish Responses to the client are completely decoupled and there is no synchronization or parameters to influence the behavior across several monitored items.
Best regards
Unified Automation Support Team

Post Reply