10-15-2008 09:50 AM
10-15-2008 10:00 AM
What version of LabVIEW are you using?
How big is the VI on disk?
Norbert
10-15-2008 10:01 AM
Can you provide a simple example that demonstrates this?
I have developed apps with large numbers cases in a case structure and I did not notice any difference in the speed to handle more cases.
The only scenaio I can image that would produce that situation is if the cases have locals or globals since each instance would have to get updated when one gets updated therefore resulting more time to complete the work in one of the cases.
Just trying to help,
Ben
10-15-2008 10:11 AM
im using lab view 8.2
please see attached layout, the case structure with fanfailure has more than 200 cases on it.
thanks for the reply...i am currently working on the vi right now and it take me a long time to wire each cases.
any help is highly appreciated.
tnx
10-15-2008 10:19 AM
Is the VI originaly written in an older version of LabVIEW?
There are sometimes issues in updating VIs which can lead to a slowdown of the whole LV-environment. SO maybe you are running into this. As Ben wrote, those issues more likely occur if the code is complex and full of variables.
It seems, that your code is not too complex, but full of variables. Maybe that is something you should look into.
hope this helps,
Norbert
10-15-2008 10:26 AM
no, its not written in any version of LV.
it was only generated and written in 8.2 version.
yes, i have two big clusters in there (PSMI ReadOut and PSMI Specs).. but the problem occur after i added a case structure to
case out objects inside the two clusters. I dont have any option but to unbundled each object inside each case to compare its data from the other cluster.
10-15-2008 10:28 AM
Can you clarify what you mean by "slow". Does it run more slowly or does it feel sluggish during editing?
Could you attach the actual VI?
Overall, I agree with the notion of local variable overuse. For example, you read the same local variable twice in the same case. Is there a need for this? Is there a chance that it varies between the two reads? Typically, you would place the terminal in front of the case structure and wire to all the locations where you need the value. This ensures that the data is consistent. Still, this should not cause any slowdown problem.
(On a sidenote, the code in the upper left corner is inefficient. You convert the same data to lower case with each iteration, so you might want to place this before the loop and do it only once (well, if you are lucky, LabVIEW will fold the operation, but still....). Also your "index array" operation can be replaced by autoidenxing of the 2D array on the outer loop boundary.)
10-15-2008 10:42 AM
slow --- noticeable low when you wire from one point to another, you have to wait for few secs, not like with other vi.
the variable you just mention didnt affect anything on the problem, i tried to wire it direct from the first variable, same result.
regarding the lower case, yes i can put it outside the loop.
10-15-2008 11:03 AM
Yes, it feels somewhat slugginsh adding wires even in 8.5. NI should look into this.
Also note that you have a large number of overlapping objects on the front panel, which could cause redraw performance issues, but I don't think this is the problem here. Personally, there is a lot of very similar code in the cases and it probably would have been much easier to consolidate if you would have used simpler data structures, e.g. arrays instead of all individual cluster elements.
10-15-2008 11:11 AM
there's a reason why i didnt use an array, i use individual object instead. this is for the top level vi.
and i dont think thats the issue here.
front panel was created first prior i added those cases. i dont have any issue before i add those cases.
i already sent an email to ni, but i didnt get any responce yet, that's why i decided to post it here.
by the way, thanks a lot for looking onto this.