LabVIEW Idea Exchange

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

I just took a look at the LabVIEW Web UI Builder and was very impressed with the way it lets you buy a UI. I started to become very jealous and wondered why core LabVIEW does not have these features. A couple that I first noticed was when placing a button alignment lines were drawn so you can properly align with current objects on the front panel. Another cool feature was on the block diagram and along the top the properties of the currently selected item shows up to allow quick easy editing.

 

There was all kinds of great features this had that make builder a great UI that really need to be in LabVIEW. I have been wishing for something like this to come out in a future version and seeing this gives me hope.

 

Another great feature this has was having the palette docked on the left side so you can easily see and drag everything onto the panel.

 

 

To further expand generic programming, we should be able to specify custom patterns as a custom structure. For example, if you very often write "retry once" code you could write retry2x.

 

CropperCapture[47].Png

I think if you expand this concept you can accomplish other requests on this board like case structures that respond to error wires with warnings on them. If you expand it farther you could have "express" structures that have a configuration interface.

Hi, I am a beginner in Labview and often when I read Labview code I wonder how one can determine if the code makes sense.

 

Is there a mathematical description of the Labview Language? Vi's need to be connected in certain order to do something meaningful (semantics), but there is also a syntax-rules, which for instance  are that you must create a virtual channel before you write to the virtual channel, you must obtain a queue before you enqueue an element.(I don't know if this will result in a broken wire actually)

 

makes no sense.png

 

What is a Labview program? Can I validate if the above program is correct? If it makes sense? What it does by "mechanically" applying rules from a description of the language? Or is it only by testing and gathering experience of previous behavior that I can validate a code?

 

What can a Labview program consist of? You can also have files that are of .vi, .lvclass, .ctl, .lvlib. I understand that a vi is a virtual instrument, a graphical code entity, and a lvlib must then be a collection of vi's located on a computer. What is a .ctl file and a .lvclass file?

 

 

I've also noted that many entities in a labview program have propertynodes. These seams to be very little documented. Just trial and error here I suppose.

 

Then a question from a colleague: Is Labview fly-safe? That is, can one prove that a certain Labview code behaves a particular way and doesn't crash an aeroplane which have a computer that runs the Labview-software. An instrument that is used to test certain functions on an aeroplane on the ground must also be fly-safe. His question has the same roots as mine I suppose..-How do I understand a Labview-program, can it be done using rules, or is it just by experiencing the behaviour of the software.

 

I think you're in a dilemma here... If you write down a mathematical description of Labview, there will be non-NI Labview compilers out there the next month, if you do not do some computer science theory on the Labview language, no computer science deparment will pick it up and do reasearch on it, and that means still no university courses in Labview. Maybe you should wait until you reach a critical "mass".

 

Kindest regards,

 

Lasse

 

 

 

 

 

 

 

Hi all !

 

I am a beginner in Labview.

 

What is the most timeconsuming obstacle using Labview? You know what you want to do, but it feels that Labview forces you to go big circles around it?

 

BROKEN WIRES!

 

You want to connect, but you cannot. Labview wants you to: array it up, de-array, bundel, unbundel, get a waveform component here and smack it together with a sampling rate there. And you go

CRAZY!!!!

 

Simple solution:

Wire is broken. Rightclick on the x, and choose some legit suggestion.

I am not a programmer, but couldn't this annoying thing be solved implementing a simple lookup-table in the Labview intrepreter? There are not much different datatypes, and dealing with aggregated datatypes like clusters of different sorts could be dealt with some sort of pattern matching scheme. In a recursive language like Haskell patternmatching is done "quite easy".

What does the "Edit Mode On Open" Property do? I do not manage to do anything useful with it. Could you please improve the help text?

 

What is its purpose?

Is this setting saved when the VI is saved?

When I set it to false and open the FP thereafter programmatically, why is the VI in edit mode?

 

When a file is opened with the file open dialog of LabVIEW, the containing folder can not be moved, even if the file is closed. It is only possible when a file in an other folder is opened.

Not only moving is not possible, but also moving, renaming and ejecting the containing drive.

 

The folder should definitely not be locked by the dialog after it is closed!

 

This issue still exists in LabVIEW 2010 SP1.

Don't know whether this has ever been posted, not as far as I have seen, but I could have missed it.  Sry if I did.

 

Sometimes I want to change the same property of different controls and indicators.  What I miss tremendously is that you can select them all, right click on them and see all the mutual properties they have and of coarse being able to change them.

 

An example of one of them would be :

- show caption : shows the captions of all controls selected

- Hide control : hides all selected controls on the front panel

- representation

- ...

 

And this list can go on and on...

Today, when adding new event, the Event Data Node is duplicated from the previous event.

Sometimes, this node does not match the new event and breaks the code.

 

Simple example: When the current event is "Menu Selection (User)" with node chosen "ItemTag". Add new event like "Panel Close?". The new event will be created with "ItemTag" node, and the code will be broken.

Of course, there are many more examples for that, and this is happening quite a lot.

 

Instead, LabVIEW can choose the first node that matches the new event.

 

Regards,

Amir.

Hi,

 

I believe that an express VI that implements a Karmaugh map to solve a boolean equation would be good.

 

The VI should receive the input, request the output(s) name(s) and provide to the user "truth table" the define the boolean equation.

 

At the end, the VI should provide boolean gate array that fulfill the table.

 

Ref. http://en.wikipedia.org/wiki/Karnaugh_map

 

This would help us to implement complex logics with simple boolean algebra expressions.

 

Cheers.

Hi,

 

Some times a test must check an output that doesn't have a precise value and this output is expressed as a value +/- a band.

 

The current "In range" implementation requires that we provide the max and min value and indicates if the value was coerced or not.

 

I believe that we could have an LabVIEW primitive that works likes it but just check the value against a reference with a safe band expressed in absolute value or percentage.

 

The code would be something like this:

 

In range.PNGCheers.

Hi, it would be nice if one could get the "path" to the functionspalett when hovering the mouspointer over a function.

Even if you pretty much know where to go into the functionspalette, I at least, get stuck everytime, when I want to recreate something similar to the code that I've found, because I cannot find the functions that are used.

 

I often have to copy paste from an existing code because I cannot find it in the Functionspalett.

 

See the attached picture. Where do I find the error input terminal? I found the I/O terminal, but that was from the Frontpanel palette.

context help improvement.png

 

Have searched for the waveform-terminal for over 15 minutes, still haven't found it..

 

 

context help improvement2.png

 

Kindest regards,

Lasse

 

 

 

 

 

I have been forced to write scripts in Python, a sequential interpreted language.

 

Usually I read variables from sensors in instruments, through CCL, then call a Python script (that usually calls other Python scripts from a library), then the script process thevariables to set parameters in instruments through CCL.

 

What I would love to do is the following:

 

Read the sensor variables through CCL

Input the variables into a Labview diagrammatic program

Call other Python scripts to include as blocks into the diagrammatic program

Upon the processing, generate outputs to set parameters through CCL

 

But also, from Labview, I would like to "export a Python script that does the same process", just to satisfy the managers here and let them feel sure to have new Python scripts that do the same processes.

 

I mean to use Labview to generate Python code, as if "compiling" the diagrammatic program to get a "machine code", even when that "machine" code is just a new interpreted Python script.

 

Just I hate programming in Python, but I must satisfy the managers providing them with new Python scripts to enrich their library.

 

Please tell me if it is possible to use Labview to make diagrammatic programs and then export the equivalent Python script.

 

Also tell me if it is possible to import a Python script from a Labview diagrammatic program, including the imports of other Python scripts, that is to include all libraries.

 

I am really desperate for a solution to this drama.

 

Thank you

 

Jaime Soto

ALMA Observatory, Chile 

It would be nice to be able to Remove Bad Sires from a specific region and not the whole application.
E.g. if a selection is made it should only delete bad wires within that scope.
Or if I right click on a structure, it will give me an option to remove all bad wires in its diagrams and all sub structures diagrams.

When you try to align element on the front panel the grid is not always enough (especially if you want to align with a picture). Same thing when designing custom controls. A zoom will allow a better alignment.

It would be nice if the programmer could rearrange the variable names in the unbundle by name by dragging and dropping the variable names in the order you won't when your assigning the values from the block diagram. This should not affect the actual cluster order. I hope this makes sense.

Currently (up through LV2010) the only run-time menu (RTM) available for a tab control is for the entire tab control, not for the individual pages (tabs). The right-click context menu (Description and Tip, Help, etc.) for each page only works at design time, not at run time. This is true of both the default or a custom RTM.

 

Why is it called a "run-time menu" if it doesn't work at run time? I consider this a bug, but it probably is just an oversight in the design. (I suppose that technically this is not a "bug" because I cannot find this feature, an RTM for each tab or page, documented.)

 

Anyone else think this a useful product improvement?

 

Ed S.

Be able to replace Enum with Ring and vice versa (as far as the data type is same). The feature to be similar to "Replace with..." feature that is available for While loop and For loop when right click the loop border.

 

the decorations in the front panel have properties, these properties you can to modify in execution time, but the order off these decorations is created automaticaly, and the newer decoration object, it's the first, and other existing decorations your order number is changed automaticaly.
Proposed solutions 
- the automatic order number should be generated, in the same order to are created the decorations, in the same way of controls
- create a new function to modifying the order number, the same way to modify the tab order of the controls.

 

 

When implementing a multiplexer the obvious solution is to use build array and then index array.

 

current.PNG

 

Proposed Alternative. Add an index to build array. If it is wired you get the selected element. If it is not wired it behaves as normal and you get the built array.

proposed.PNG

 

Or maybe there is a right click option for build array to change to the "multiplexer" style.

On the Block Diagram page of the Options dialog box, please change the default value for Place front panel terminals as icon to false(unchecked). Similar to previous idea.