hi,
i'm currentliy working on a tool that is writing some values via opc. Unfortunatetly i don't get how WriteMultipleValues really bahaves. We're using QuickOpc Version "5.70.1053" in a .net6 environment.
I do not want my whole application to stop while we are trying to write to the OPC Server. So we use a similar approach as you described here (
www.opclabs.com/forum/ua-reading-writing-subscriptions/2451-...is-synchronous-or-asynchronous). But Unfortunatly when we are calling WriteMultipleValues from different Tasks (Threads) WriteMultipleValues does not keep the sequence.
e.g.
Step 1 call WriteMultipleValues for 3 bool Items setting all to false. Lets call those items A, B, C
Step 2 while the first WriteMultipleValues is still active, we're trying to use WriteMultipleValues to A to true
Unforturnatly both calls will return succes, but the second call will return first. This will result in a "
lost update".
Questions:
1. Is this behaviour intended?
2. Is there a different part of the API that we can use to get both, "sequential writing" and "not blocking our application"?
If not we will need to implement kind of a message queue in our own code. But therefore we need some information.
3. Is there any kind of "cache" inside the Lib?
4. When calling in a scenario when the OPC-Server is not reachable, will the value be written as soon as the the OPC-Server is reachable again?
5. When calling WriteMultipleValues in a scenario when the OPC-Server is not reachable, a call will take between 100ms and 2000ms. Where does the big difference come from?