Quality of service/delivery guarantee|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
Quality of service/delivery guarantee
Avatar
kristian mo
New Member
Members
Forum Posts: 1
Member Since:
03/22/2022
sp_UserOfflineSmall Offline
1
09/04/2023 - 06:57
sp_Permalink sp_Print

I could use some help to understand delivery guarantees, thank you.

Assuming an underlying data source for an OPC UA server that is sampled already, i.e. the assumed use case is that every value the OPC UA server receives from the underlying system shall be sent to the client. The OPC UA server shall not do any sampling. Is this a valid use case for OPC UA client/server? A sort of a QoS1 in MQTT - deliver every change at least once. I see a possible solution using DA to stream data, and periodic HA to recover any missed data.

In an OPC UA server/client setup it is my understanding that the client will create a monitored item with a publishing interval and a queue size++. If the queue runs over before the publishing interval then values goes missing from the front or back. So if there are intermittent data flow issues resulting in a larger than normal update rate some values are lost. The queue size is the only and intended configuration to handle peaks in update rate from underlying systems?  

OPC UA PubSub with MQTT offers more control with ack/nack on messages but experience shows that brokers and client libraries has some quality issues for handling ack/nack properly. Are there initiatives looking at adding AMQP/NATS/Kafka or similar where ack/nack is more "visible"?

Avatar
Randy Armstrong
Admin
Forum Posts: 1564
Member Since:
05/30/2017
sp_UserOfflineSmall Offline
2
09/05/2023 - 03:38
sp_Permalink sp_Print

The QueueSize can be set to whatever size is needed to ensure no data loss during transients.

Some servers may support durable subscriptions which ensure data is not lost even if the client goes offline:

https://reference.opcfoundatio.....5/docs/6.8

That said, clients are constrained by the limits of the server. A UA server running on low end PLC is will not support durable subscriptions nor will it allow for excessively large queue sizes. A UA server running on a PC class machine could support this.

It is worth remembering that MQTT QoS requires that the messages be stored somewhere and you had a low-end PLC running MQTT it would run into the same RAM and storage issues that affect the UA server implementation. The main advantage is UA allows servers to tell clients, in advance, what it can support so the client can compensate. Using MQTT with QoS would simply fail at runtime and you would never really know why.

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