Atomic update group - best practice ?|OPC UA Standard|Forum|OPC Foundation

Avatar
Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
sp_Feed sp_PrintTopic sp_TopicIcon
Atomic update group - best practice ?
Avatar
Carina Schwab
New Member
Members
Forum Posts: 1
Member Since:
02/24/2022
sp_UserOfflineSmall Offline
1
02/24/2022 - 08:01
sp_Permalink sp_Print

Hello!

I am new to OPC UA and I am looking for some more experienced input on how to set up a system.

Basically the plan is to have an OPC UA server that collects and provides data to clients and where the data updates get pushed to the server. We are currently trying to figure out what would be the best way to get the data updates into the server.

One possibility is to have OPC UA clients execute write requests to write the nodes that they have new information on. Now, some of these nodes (let us call them atomic update group) might have to be updated together in an all or none approach. I already read in another forum topic that creating structures/objects that are updated with one write request would be the way to go. However, this would limit the model design options and/or increase the amount of data that needs to be exchanged. E.g. in order to adjust two values in two different arrays of a bigger node structure then the client would have to first read that full structure before adjusting the values and then write the full structure again, right?

Since there is a way to execute a write request for multiple node-value pairs (which also supports writing parts of arrays): is there no way to request that all or none of these writes are executed? Why is the rollback the responsibility of the client?

PubSub is an option that we will look into, since it could make sense that the updates are broadcast and then read by the server and processed (updating the node values so that other, reading only, clients can access them), but currently I do not know a lot about.

Thank you for your opinions đŸ™‚

Carina

Avatar
Randy Armstrong
Admin
Forum Posts: 1564
Member Since:
05/30/2017
sp_UserOfflineSmall Offline
2
02/24/2022 - 15:25
sp_Permalink sp_Print

Why is the rollback the responsibility of the client?

OPC is an API to a system/process. It is not a database. Many features that are easy to implement for UA servers with direct access to a database are impossible to implement in other UA servers. In particular, the read back and then write that you are trying to avoid would have to be done in many servers with the possibility that another client changed the value in the meantime. Making this behavior visible to the client means the client knows they have to deal with it.

You could also create methods to implement a atomic write across multiple nodes.

Forum Timezone: America/Phoenix
Most Users Ever Online: 510
Currently Online:
Guest(s) 36
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Forum Stats:
Groups: 2
Forums: 10
Topics: 1435
Posts: 4855