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!
How to control items in Publish Response
Moderator: uasdknet
-
- Hero Member
- Posts: 21
- Joined: 03 Mar 2017, 16:08
- Support Team
- Hero Member
- Posts: 3068
- Joined: 18 Mar 2011, 15:09
Re: How to control items in Publish Response
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.
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
Unified Automation Support Team