Hello,
I understand the issue. Whatever happens between the OPC UA server code and the actual hardware is generally, however, outside of control of any OPC client. Normally, the server is expected to assure connections to the downstream systems automatically - for reads, writes, subscriptions etc., without the client having to do anything for that.
We do not do anything "magical" in QuickOPC's SubscribeDataChange. Only the things that are necessary and that every client has to do: Creating a subscription, adding monitored items, etc.
Some servers need time to set things up. In this case, if you subscribe, you may not notice anything, because the server will eventually send the data, when it becomes available. But the behavior of such servers in case of Read (from device) is not always the same. Some servers may block the call until the data becomes available. Others may simply return an error (or bad status). The data may become available later, so the next Read may succeed. It is possible that this is your case, but it is just one of the possibilities, and I cannot be sure.
All in all, the question is more about server behavior, so it should rather be directed at the server vendor.
What exception or status code do you get when you do the Read and the server is not connected to the PLC?
Best regards