I'm hoping someone else has some insight into an issue I'm seeing when using either I/O network published variables or shared variables in general.
There seems to be an bug when accessing shared variables programatically. In the image below I am trying to remotely access a shared variable hosted on a crio. In both cases I'm accessing the same shared variable on a crio that has been disconnected from the network.
In the top case, the variable will constantly timeout at 100 ms when using a shared variable node. However, in the bottom frame, the timeout is always 5000 ms even though I have set it to 100. There seems to be an internal 5000ms timeout within the programmatic function for accessing shared even when using the "Read Variable with Timeout" and "Open Variable and Verify" functions. The "Open shared Variable in Background" Vi does not solve the issue either. The timeout parameters appear to have no effect if the network is disconnected when first connection. This is a huge problem if I open a GUI and the network connection has been cut. All my daemons using these variable slow to a crawl because I can not specify a timeout.
Not only this but the vi's are not reentrant and are blocking. So if I'm opening variable in multiple places, such as when using different network actors, they will all block in series and create a HUGE network bottleneck.
I'm hoping someone has seen this same issue and has a way to get around it. At this point I'm considering rewriting everything to use TCP/IP instead of shared or I/O variables. Or setting up another layer that maps my calls unto these individual shared variable nodes.
This is still a pain as the shared variable nodes are a LOT less flexible than using programmatic access. In addition I'm also using an Ethernet expansion module and I have to use shared variables to read the data off the modules as there is no real time running on top. Thanks