11-12-2009 11:22 PM - edited 11-12-2009 11:24 PM
Hi,
I'm attempting to programmatically bind a network Fieldpoint I/O channel to a programmatically created shared variable, and then have the shared variable engine automatically log data to Citadel. I'm using LabVIEW 8.6 with the DSC module installed.
I've been successful in binding the I/O channel to the shared variable, and can see that it works by checking the SV value in the Distributed System Manager.
The problem I am having is that the data in the shared variable is not being logged to Citadel. If I do not bind the variable, and instead write data to it using the data socket VIs, the data gets written to Citadel perfectly fine. The minute I bind the variable, data no longer gets logged even though the DSM shows it coming through.
I've attached a VI of what I'm attempting to do (in LV8.2).
Any help would be much appreciated.
11-16-2009 06:14 PM
Hi MichaelBalzer,
What happens when you enable logging (wire a true constant) for the process you've created in the VI?
Do you see the same problems when you statically create a shared variable and enable logging?
11-16-2009 07:47 PM
I wired in true to the Enable Process Logging VI, and wired the tag of a statically created shared variable to the first property node in my VI. Unfortunately the problem is still there. I've attached a screenshot of the historical data viewer in MAX showing the results of running the VI with binding disabled, and then binding enabled.
Interestingly there is a tiny bit of data present when binding is first enabled, but I suspect the tiny bit of data visible is actually the previous value the shared variable held when binding was disabled before it has been updated via the bound I/O (you can sort of draw an invisible line from the last point when binding is disabled to the little bit of data for binding enabled).
I've come up with a temporary work around which is to programmatically create a second shared variable which has binding disabled and logging enabled, while the original variable has binding enabled but logging disabled. Then a parallel loop is run where the variable with only binding enabled is read and written to the variable with only logging enabled, which is then successfully logged to citadel.