Hi Mike
Like we discussed on the phone earlier, this is expected behaviour. The DAQmx OPC server which is performing the network communication is continuously running and when you perform a network read it runs a task to read the data on your Global Channels. This will cause the read on your host machine to error saying the resource is already reserved. The way to get around this is to write your channel data to a library of shared variable on your host machine and read in these variable on the client.
You mentioned how you were not sure if this behavour is correct as you did not see the same issue when perform writes in the same way. The reason it works with the digital writes is due to a difference in the way the driver operates between the reads and writes. If you look at the DAQmxWrite(Digital).vi you will see an auto start input, this will determine if the VI automatically starts the task if it has not already been explicitly started.
I hope this information helps
Rich
NI | UK