LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

What would cause a cluster I32 named value to change when it is written to a global area.

A sub VI writes information other than the named I32 value into a cluster. At this point the value is proper. Then the cluster is connected to a global variable. Then the value is examined and found to be changed from what it was to 0. No other sub VI's, programs etc. are running or accessing the global variable.
0 Kudos
Message 1 of 6
(3,055 Views)
Hi,

It would be a good idea if you could attach your troublesome VI(s).

regards
Ray Farmer
Regards
Ray Farmer
0 Kudos
Message 2 of 6
(3,055 Views)
Ray,

Thank you for your prompt response.

I have attached all the significant files, both configuration (.cfg) and vi's.

This is a simple configuration file reading and parsing program. It places the information found in the config files into a global area for use by other vi's operating in parallel.

To observe the problem start the vi test. None of the parameters need to be modified on the panel. It will prompt for two files. The first file is the TypeDefs.cfg file and the second is the Example.cfg file.

The program will halt on a breakpoint that I have set in ReadConf.vi. The values prior to the breakpoint are correct. The values after as they go into the global are zero.

Sincerely,

Marcus K. Junod
mjunod@home.com
0 Kudos
Message 4 of 6
(3,055 Views)
You have a race condition in ReadConf.vi. It is reading the data from the ACQ Equipment global before you set it in ConfSect.vi. I didn't have time to look over all of your code, so this may not be the only race condition you have. Try to use wires to control your program flow instead of globals and sequences.

Good luck!

Brian Vibert
0 Kudos
Message 5 of 6
(3,055 Views)
Brian,

Your description of the problem allowed me to resolve the issue. Thanks.

Marcus.

PS. Due to the nature of the application it is impossible to control a parallel running program through the connection of wires. The architecture of our application is such that the operation of the data acquistion runs at a faster rate than that of the operator panel. This required me to provide a status semiphore utilizing a shared memory area or global area.

MKJ
0 Kudos
Message 6 of 6
(3,055 Views)
Two ideas,

Not running 6.0.2.

or

A race condition.

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 3 of 6
(3,055 Views)