You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm currently working on resolving an issue with an OPC Client application which is using the .net client components and I'm having an issue with understanding notification order.
So in my client I am creating a subscription for a number of customer-configured tags (e.g. A, B, and C). In this case, the customer has configured their ladder logic to write to A, B and then C, with the expectation that the C tag notification is a trigger to tell the client that it can now carry out some operation on the client-cached values of A and B.
So what they expect to happen, in the order they expect it to happen, is:
Add items A, B and C to subscription for tags A, B and C respectively.
Write fresh value to tag A from PLC.
Write fresh value to tag B from PLC.
Write fresh value to tag C from PLC.
The client gets a notification for A, B and C in that order. When we get the notification for C we are assuming that we have already received notifications for A and B and the client can use the fresh cached values for A and B.
What's actually happening:
Add items A, B and C to subscription for tags A, B and C respectively.
Write fresh value to tag A from PLC.
Write fresh value to tag B from PLC.
Write fresh value to tag C from PLC.
The client gets a notification for A, C and B in that order. When we get the notification for C we are assuming that we have already received notifications for A and B and the client can use the cached values for A and B. The problem is obviously that the cached value for B is stale.
One thing to mention is that the server shows the tags being updated at the same timestamp (not sure if that matters)
So my question is:
How do we track the order that these operations are happening on the server/PLC? Is this something that the UA stack even handles or does the server just throw the notifications at the client in any arbitrary order at the end of the publishing interval? Is there some configuration that I'm missing to define some sort of dependency between these items, or maybe a common design pattern that people use to achieve this that isn't necessarily part of the UA stack itself?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello,
I'm currently working on resolving an issue with an OPC Client application which is using the .net client components and I'm having an issue with understanding notification order.
So in my client I am creating a subscription for a number of customer-configured tags (e.g. A, B, and C). In this case, the customer has configured their ladder logic to write to A, B and then C, with the expectation that the C tag notification is a trigger to tell the client that it can now carry out some operation on the client-cached values of A and B.
So what they expect to happen, in the order they expect it to happen, is:
What's actually happening:
One thing to mention is that the server shows the tags being updated at the same timestamp (not sure if that matters)
So my question is:
How do we track the order that these operations are happening on the server/PLC? Is this something that the UA stack even handles or does the server just throw the notifications at the client in any arbitrary order at the end of the publishing interval? Is there some configuration that I'm missing to define some sort of dependency between these items, or maybe a common design pattern that people use to achieve this that isn't necessarily part of the UA stack itself?
Any advice would be greatly appreciated,
Thanks very much.
Beta Was this translation helpful? Give feedback.
All reactions