LabVIEW Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Using the LabVIEW 2009 Build Spec (as an example) allows you to add a Destination to a Library which is very handy, as it means you can namespace VIs at build-time.

 

I would like to take this a step forward and then be able to set that new Library as a Sub-Library of another Library that already exists in the Project.

I would then want to be able to set the scope of this Sub-Library as well (relative to its now, Parent).

 

This combined with my Locking State Idea would allow be create a Distribution that would hide and protect a Support VI Library

As the Sub-Library would be Private Scoped (from above) and the Parent Library would be set Locked (does not show Private Members).

 

I currently can implement this using Scripting but it would be nice to have it native.

 

Cheers

-JG

 

 

17619iFB1C3A1375DBE39317621i6935DFDFCA489040

Hi,

 

I need a vi which will convert PNG file to GIF file. i could find a vi which is not in palette, do this. But the output GIF file is in uncompressed format. So the size of the file is very large. And also it is not working when i build the application as EXE.

 

It will be really helpful for me if this feature is included in the next release of LV.

 

Thanks,

Vairamuthu.

-----------------------------------------------------------------------------------------------

It would be beneficial if nodes had the ability to retain data from their previous execution. Along with "Use Default If Unwired" it would save memory allocation and coding time if there was a "Use Current Value If Unwired" selection which would retain the node's value and pass the last executed value. 

 

 Use Current Value If Unwired.PNG

This figure illustrates one application where "Use Current Value If Unwired" would save memory and increase performance instead of using multiple property nodes or local variables for retaining the output data. It would also eliminate extra wiring in every case this node is not used.

Hi,

 

in LV2009 a new set of VIs have been published for working with configuration VIs. They are now part of config.lvlib. But some VIs of config.lvlib are marked private, therefore I cannot use these VIs as Sub-VIs, if the calling VI is not part of config.lvlib. This is bad (at least for me), since I have written some tools to load a configuration directly from a string and not from a file. To do this in LV2009, I need these private VIs, which I cannot use without changing config.lvlib.

 

Therefore I suggest to make all VIs of config.lvlib public. In fact, is there a good reason, why these are private in the first place?

 

Regards,

Marc

I think there should be a way to reinitialize a stacked shift register to the originally initialized value so you can clear out the contents of every iteration all at once.  For example, the code below, implemented with 4 individual shift registers:

 

 multiple shift registers.PNG

 

Could be implemented with 1 stacked shift register with a reinitialize terminal:

 

stacked shift register with reinitialize.PNG 

Classes in LabVIEW are a great step over (and finally, with LV 2009 them start to work...) but there are still two 'holes'

 

Abstract methods. 

It would be great to have the possibility to define abstract methods and interfaces. Now I'm forcing an error into the error out indicator to notify the usage of a method not yet defined but it would be better to make the compiler to recognize the usage of abstract methods during the design time. One way to define abstract methods could be the introduction of a new entry in the 'class menu' and allowing to define them just in term of front panel (block diagram not available).

 

Class duplication.

An object is duplicated on each node, so is not easy to work into parralel loops on the same instance. To use the same instance I have used references, but it is not so easy to use (not as the 'normal' wires) and it hasn't the same performance (working with reference is heavier than working with instances). It would be great to introduce a mechanism that implements the convertion from instance to object, something likes a standard 'getReference' and 'getInstance'.

My apologies if this has already been suggested ...  I've written many VIs with a While loop that has True wired to the Stop terminal, making it a "Do Once" loop.  This is such a common construct (i.e. a VIG) that it might merit its own "structure", something that "looks like" a While loop but has no Stop terminal, no "i" indicator, and is guaranteed to "Run Once".  I think having a unique "look" for this common special use of the While loop would be a useful addition.  Among other things, it would clearly distinguish "purpose" as different than a While construct.

 

Bob Schor

The Get and Set Variant attribute functions are polymorphic on the 'variant' input terminal.

 

Why?

What do you expect of the following code:

Example_VI_BD.png

 

I think allowing this is a bad technique in a 'early typed' language like LabVIEW.

 

Or am I missing something?

 

Ton

I'm not sure if there is already a way to do this, but it'd be nice to have a "References Manager" at run-time so you can watch all kinds of references be created and (hopefully) destroyed when no longer needed. This can apply to file refnums, TCP connection IDs, queues, etc. It would be helpful for debugging large programs and where multiple developers are working on the same project... as well as for the forgetful likes 🙂

 It would be nice to have a default QSM project.  The attached image could be a good starting point for everyone to provide comments, in regards to what the project should include.

QSM.jpg

The only method available to assign all the data from one chart to another is to use the History Data property node.  

 

chart property.png 

 

Without using the property node, all you get is the last value of the chart.   

 

Take for example this use case:

   I have several functional globals holding unique chart data.  Using one Front Panel chart on the main VI, i swap whichever operations data i'd like to see in and out of that chart.  Currently, i have to fumble around with searching for the correct reference number of the Func Global chart and use a property node to do my data assignment.  Totally inefficient! 

 

Adding the ability to select assignment of the entire history to the "Data Operations" context menu, and making the chart polymorphic to recognize the input difference would be incredibly helpful. 

LabVIEW uses 5 types of operation behavior for push buttons. However, I have come accross a rather annoying obstacle, whenever I need to execute an event for once (turning on a simple LED AND keeping lit AND keeping the button released, for instance), I need to run through Loops or structures which  consumes the space of the block diagram. Although this may sound very simple, after all I am a newbie when it comes to LabVIEW, it really helps in certain places, namely in my very simple project. Here are two of the ways that demonstrate what I am doing at the moment: 

 

 

 

 

Untitled.jpg 

 

 

And here is how the new pressonce/execute once and for all/release block diagram looks like (excuse my English, I believe the digrams must illustrate what I want to say)

 

neww.jpg

 

 As I have said, maybe it doesn't make a difference to you, but it does to others and I am one of them, well you can either go with a while loop or without, let's keep it to the big guys to decide (this is if my suggestion gets accepted). And I am choosing a random label 😄

Thank you for your time.

🙂

 

Message Edited by toniaz on 28-11-2009 12:46 AM

This post

Has gotten me thinking about how to handle preserving a memory location for external data updates.  @009 has much better memory management- couldn't a Preserve Memory primitive be written? For obvious reasons a counterpart Deallocate would need to be required for each "Preserve" call

 

hmm2.PNG

Hi

 

Certainly, every body tries to evaluate a vi in terms of performance. This includes the time which a particular code takes to run. We have to use the tick cout vi in order to determine the time of execution.

How about adding an additional button in the  toolbar itself which measures the time taken by a particular code to execute? Smiley Happy

This can certainly be a good feature in LabVIEW!!!

Right now, you can only set a single variant attribute at a time.  You can get "all" variant attributes, but it would be nice to be able to get a specific "group" of them.  (the same could be said for delete)

 

From a programmer standpoint, the nice way to accomplish this would be to wire in an array of strings for the variant attributes you are interested in, instead of placing the function in a for loop.  It would also be nice to wire in the data type for all of those attributes, so you don't have to call the variant-to-data.

None of the existing synchronization VIs work for "instantaneous" many-to-one notification, (or do they?)

  • Notifier is one-to-one or one-to-many,
  • Rendezvous is many-to-many
  • Occurances is one-to-many
  • Semaphore handles a different sync issue!

 

In many cases, one VI may need to wait for several other VIs before performing a task, simple example is on closing,

Even more specifically, other VIs could do the "notification" and continue, but the one VI must wait until those VIs have met (and passed) the "notification" point.

 

Although the mechanism can be built easily, it could be defined by NI as a standard VI.

 

Sia

LabView Control and Simulation Design Toolkit

 

-A simulation subVI fails to compile if an initial condition of zero exists on an integration block.

 

 IDEA: Run a zero initial condition check on a system before attempting to compile.  If the condition exists, don't attempt to compile and report the problem to user.

 

 

 

-A simulation subVI fails to compile if a change is made after the subVI is created.

 

IDEA: If a change is detected in the subVI, force the subVI to recompile every time a file command is implemented.