LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Programmatically bound network cFP I/O to SV not logging to Citadel

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. 

Message Edited by MichaelBalzer on 11-13-2009 01:23 PM
Message Edited by MichaelBalzer on 11-13-2009 01:24 PM




Certified LabVIEW Architect
Unless otherwise stated, all code snippets and examples provided
by me are "as is", and are free to use and modify without attribution.
0 Kudos
Message 1 of 3
(2,667 Views)

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? 

0 Kudos
Message 2 of 3
(2,619 Views)

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.

 

HistoricalView.png 

 

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.




Certified LabVIEW Architect
Unless otherwise stated, all code snippets and examples provided
by me are "as is", and are free to use and modify without attribution.
0 Kudos
Message 3 of 3
(2,613 Views)