I have a question regarding PubSub vs Subscription, especially regarding to sampling interval and publishing interval.
I know the standard does not define any concrete limits for these intervals. However, what would be in general the more usual way to transmit a lot of data arriving with a high data rate, e.g. data arriving with 50 kHz, at the server.
For this use case would it be common to use a subscription, for example with the following settings?
MonitoredItemSettings: samplingInterval = 0,02 ms, Queue Size = 1000
SubscriptionSettings: publishing interval = 20 ms
This would result in transmitting 1000 values with a rate of 50 Hz via Subscription
Or would it be more common to use pubsub and try to transmit with a higher rate. I don't know if 50 kHz are possible, but maybe combine also more values into one frame e.g. 100 => transfer rate 500 Hz
It's no conrete example without any detailed tests. However, I wonder what would be the most common way in OPC UA?
Thanks for any answers in advance.
You will have to play around with QueueSize and PublicationInterval and MaxNotificationsPerPublish to find the optimal transfer rate but you have the right approach where high frequency changes are buffered and sent as blocks. The client may need to 'prime the pump' by having a larger number of outstanding publish requests if you are frequently exceeding MaxNotificationsPerPublish. Some clients make the number of requests a configuration parameter.
The optimal settings will depend on your server, CPU, network and other factors.