LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Handling large number of variables

Hello all,

Please have a look at the attached vi. Its for a temperature-cycle testing device.

1. The application has 10 similar stages that run sequentially.
2. Each stage has 10 similar steps that run sequentially.
3. Each step does temperature control (heater/cooling fan) for a fixed time.
4. Each step has 6 user input parameters.
5. All 10 steps (0-9) are same in the sense that the types of input parameters are same. The values will of course, differ as per the user's wish.
6. Right at the start, Stage 1 begins, with Step 0, then move to Step 1, Step 2 and so on...
7. Subsequently, Stage 2 begins, again with its Step 0, Step 1, Step 2...
8. This happens till Stage 10 > Step 9, after which the device shuts down.

The variables involved are:
6 per step x 10 steps per stage x 10 stages = 600.

The user may or may not use all the steps or all the stages, but I need to provide them in the application.

The user will be saving these values in a file to run the same test at a later stage.

I am a novice with LV. The task of wiring 600 terminals is daunting. So is there a way I can reduce the work load? Maybe variables in each step could be 'Cluster'ed or 'Array'ed? There are so many control and functions, and being new, I haven't explored or been able to identify something that will really help simplify this.

So I need suggestions on how to go about this. Or please point me to topics to read that could help.

I am using LabView 8.5. I come from a background of programming PICs in assembly, if that matters.

Regards,
Trog.

0 Kudos
Message 1 of 9
(3,407 Views)

Hi,

 

This is the worst way to do coding.

I think you give some selection button to user like Stage and Step. On the basis of selection you update the controls value.

In each step you have 6 controls, make a cluster of all these controls and update cluster on selection basis.

 

The other way you can adopt is Multicolumn listbox. All steps with data you can make a 2 d array and update it in your multicolumn listbox.

 

According to me each and every time to update all controls worthless we are not shows all data in a single panel.

In your method it will increase your work load and decrease process performance.

 

Thanks and Regards

Himanshu Goyal 

 

Thanks and Regards
Himanshu Goyal | LabVIEW Engineer- Power System Automation
Values that steer us ahead: Passion | Innovation | Ambition | Diligence | Teamwork
It Only gets BETTER!!!
0 Kudos
Message 2 of 9
(3,404 Views)

Definately read up on these topics before you proceed any further: Clusters, Custom Controls and Type Defs (a type of custom control) Make sure you understand those topics. There are a lot of tutorials on the NI site and the help that comes with LabVIEW is very good.

 

And never post a VI that is set to run when opened. That will anger people on the forums faster than anything you can think of. Just a friendly tip Smiley Happy

 

Also take a look at your datatypes. You have a DBL for cool when required and heat when required. You should use a boolean for those on your front panel. If you have to actually use a DBL for that then convert the boolean on your block diagram. Same for the number of heaters control. That should be an integer, most likely an unsigned 8 bit integer.

=====================
LabVIEW 2012


Message 3 of 9
(3,392 Views)

I second Steve's advice.  Your time in sec/min needs to be UINT8 or 16.  Any control that does not need negatives, use unsigned variables and only as big as you need.  This is good programming practice and can also prevent unwanted occurances from happening with your program if an unexpected value is entered.  Type Def controls and clusters will save you a lot of time, especially with this kind of architecture.

-----------------------------------------------------------------------------------------
Reese, (former CLAD, future CLD)

Some people call me the Space Cowboy!
Some call me the gangster of love.
Some people call me MoReese!
...I'm right here baby, right here, right here, right here at home
Message 4 of 9
(3,377 Views)

Your parameters should look as simple as a cluster of 6 elements inside an 10x10 array.

Then use an autoindexing for loop to run through you 10 stages.

Inside, you'll use again an autoindexing for loop to go through your 10 steps.

Just make sure, the 2D array is set properly to autoindex first over the stages. If not, just use the transpose array function.

 

Felix

Message 5 of 9
(3,358 Views)

Thanks fellows. Will read up on clusters.

0 Kudos
Message 6 of 9
(3,353 Views)

Something like this as reference:

/Y

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 7 of 9
(3,318 Views)

I have LabView 8.5. If possible, please downconvert.

 

Thanks,

Mohit.

0 Kudos
Message 8 of 9
(3,295 Views)

8.2 version (with minor change)

/Y

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 9 of 9
(3,279 Views)