LabVIEW Idea Exchange

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

When your certification expires, do you instantly forget everything you knew? Of course not.

 

I think the Certifications should be tied to a LabVIEW version. That way, there's an "implied age" to one's Certification (if they haven't taken a newer one), but you are still allowed to produce the Certification on cards, job interviews, etc.

 

 

CLAD logo Idea.JPG

If you have mulitple versions of LabVIEW installed, some of them show up in the "Open With" menu, but regardless of which item you select, the VI will always open in whichever version of LabVIEW was opened most recently.

 

Example: if I opened a legacy VI in LabVIEW 2009, closed that version of LabVIEW completely, and opened another VI using the "Open with" menu and selected LabVIEW 12..., LabVIEW 2009 is relaunched and is unable to open the VI because it should have launched in LabVIEW 2012.

 

 

OpenWith.png

The current workaround is to add all installed versions as options in the "Send to" menu, but this is not nearly as intuitive as using "Open with" would be.

 

Estimate and show the Time Remaining during LabVIEW Installs, using selectable and realistic time units:

.

install.png

Currently, the markers of intensity graphs are left-aligned with the intensity pixels. This is most noticable when graphing small arrays, but is a general problem. Have a look at the left picture (x0 and dx are at the default). There is one too many markers on each axis and it is errorprone to read out the coordinates of a certain pixel because it is always betwen two adjacent markers.

 

(If we graph a 1D array with 10 elements on a plain graph with the same size (loose fit off), the axis will go from 0..9. It is misleading to show another marker at 10 in the case of the intensity graph!)

 

Correct would be to center the axis markers on the pixels as simulated in the image on the right. Now the limits are correct!

 

The problem is even more severe with cursors locked to the plot. The cursors align with the markers and thus fall right between four adjacent pixels (left) while they should be smack dab in the middle of exactly one (right). Currently, we have a 25% chance of picking the right pixel with a cursor unless we are very carefully!

 

 

Idea summary: The markers of intensity graphs need to be centered on the graph pixels. Same for cursors.

 

(...of course the same applies to intensity charts and similar)

If I have a Control labelled '%s In', I would like to be able to right click on it and select Create Indicator, resulting in a terminal label of '%s Out'. Likewise, if I have an Indicator labelled '% Out', I would like to select Create Control and automatically label it '%s In'.

 

idea1.png

 

Simple enough, but one of those tiny little tweaks that would save me a tiny fraction of effort every time I do it 🙂

Ther are 10 pages of suggestions coming up when typing "probe location on wire".

AFAIK, none of them addresses this irritating behavior of probes:

 

Screen Shot 2015-04-24 at 18.07.18.png

 

The probe icon will snap to some algorithmically determined location which might result in illegible data flow during debugging, or might end up in a region of the diagram far from where the critical action takes place.

I know that what matters should be the VALUE of the probe, but WHEN to check the probe value is also critical, and in a visual development environment, this time is determined by monitoring the data flow (among other methods). This is where this uncontrollable probe location can be annoying at times.

 

My suggestion: just as for labels, let the user choose the location of a probe anchor point on a wire (especially when it branches off).

When using Property Nodes, some nested data items can be accessed directly:

 

_carl_3-1634314422914.png

 

while other nested data items must be accessed with a separate unbundle function:

 

_carl_2-1634314226412.png

_carl_1-1634314195636.png

Why not expose all nested data items directly in property nodes?

 

 

 

Wire : Right Click --> Visbile --> Label  (Its void Now )

 

1.png                                  2.png

 

Solution : It can take the control Name as default label of the wire,  instead of  being Void

 

 

3.png

 

Not sure if this idea is already proposed. 

 

 

I would like to have an option to export a simplified image of a graph directly into png. The image formats available in LV2010 are bmp, eps, emf and pict. Png is superior to bmp with rougly 100-50 times smaller file sizes. At the moment if I want to export a simplified image of a graph to png then I have to use the extra code below or alternatively export the image to clipboard, paste that into a graphics editor an save it to png. It would be much more simple to have an option to directly export to png. My suggestions below:

 

export simplified image to png.png

export simplified image to png 2.png

 

When I connect something to the output of a Select node, I would like the input types to be updated to the connected output type.

For example, if I connect an enum to the output of my select node - if I "create constants" on the inputs, it should create the same enum type instead of a double. Similarly, when I connect a string to the output, I would expect the inputs to be strings as well.

If there is a conflict with the compiler, perhaps it could use whatever was connected first (input or output).

Help! I need a way to pack more Classes onto my Block Diagrams!

 

This idea is simple and quite subtle- reduce the size of the Class Constant on the Block Diagram. The majority of the footprint belongs to the Class Icon, which cannot be sized smaller, but the additional border graphic that creates the "Object Cube" effect can be reduced to give a total footprint of 42x42 pixels down from 48x48 pixels. (If you're counting, that's a 42% reduction in "fluff", discounting the 32x32 that must remain!)

 

Idea.png

 

 

If you're not crazy about the first-draft artwork, feel free to post a new rendition in the Comments section!

Many or most VIs that ship with LabVIEW have their protection set to Unlocked (no password). The screenshot below shows a selection of such VIs.

1.png

 

It would be much better if the protection of vi.lib VIs was set to "Locked (no password)", to prevent accidental modification.

2.png

 

It seems very risky for built-in VIs to be open to modification, especially to accidental modification.

 

Scenario 1: Developer A is developing an application on their machine which contains modified vi.lib VIs which were accidentally modified as part of work on previous projects. They build an application which passes validation and starts to be used in production. All of the developer's source code is committed to a source code repository. Developer A leaves the company. Six months later Developer B is asked to pull the code from the repository and add a minor improvement. The application behaves very differently when Developer B builds it on their machine. A long and complicated troubleshooting session later, Developer B concludes that the different behaviour was likely caused by modified vi.lib VIs on Developer A's machine. Developer B cannot be sure, because Developer A's machine was wiped when they left, so there is no way to unequivocally prove the conclusion.

 

Scenario 2: A team of developers builds a test system for a defence application. The code is completed, and the test system is put through a thorough  commissioning and validation process that involves testing dozens of known good units and known bad units. The validation process takes three weeks to complete. Management plans to not have to run the whole validation process for future minor changes. Instead they will ask the development team to perform code reviews and record notes for each minor change. Revalidation is not necessary if the code reviewers agree that the changes are non-functional, for example, the wording was changed in a dialogue message, or a logo was added to the UI. This sounds like a great plan, but is technically unsafe. Strictly speaking the whole revalidation process would have to be rerun, even for minor changes, due to the fact that not all of the source code is visible in the repository (there is uncontrolled source code in vi.lib that could have been modified in between builds).

Essentially I don't think it's safe for an app to contain source code that is not visible or tracked in a repository.

I can't think of a simple, quick solution to the concerns above, but having all vi.lib VIs set to "Locked (no password)" could be a quick first step towards reducing the likelihood of this issue. Developers would at least have to consciously edit vi.lib VIs, rather than doing it accidentally which can happen now. Of course, a malicious actor could still wreak havoc by editing a few inconspicuous vi.lib VIs.

The risk would be reduced further if the vi.lib VIs were password-protected. This would come at the expense of not being able to view the source code of native VIs, something which I find useful. Therefore, I personally would prefer "Locked (no password)" to password-protected, but I might prefer password-protected to unlocked.

Similar concerns apply to non-NI third-party libraries that install in vi.lib, user.lib or instr.lib, for example the extremely useful OpenG libraries. These too are examples of uncontrolled source code. For this reason some developers I worked with preferred to copy the OpenG and other libraries into the project repository (this involves a tedious job of opening each library VI and relinking it to the other library VIs in their new location).


This idea is similar but potentially easier to implement than the following idea: Make the VI's from the "vi.lib" Read-only - NI Community

 

Thanks

I think the Array Element Gap should be sizable. This would facilitate lining up FP arrays with other items on the FP, or simply as a mechanism to add more apparent delineation between elements.

The size should be set in the Properties box, not by dragging the element gap with the mouse - that would add too much "cursor noise".

A new Property Node for this feature would complete Idea.

 

GapSize.png

Hello,

Being able to rotate some indicators, controls, graphics or anything else would be great in my opinion.

Indeed, for example, when you have to represent an electrical circuit in your HMI, you must have several images of the same component with an angle of rotation of 0°/90°/-90°/180°.

So allowing a LabVIEW user to rotate some elements with an angle which could be set, would be more convenient.

 MALT.PNG

  Four images for one element. If we have 2.000 différent elements we must store 8.000 images.

 

 For Example mimic.PNG

I often use LabVIEW projects.  Projects may contain libraries, classes, etc.

 

Changing the contents of any component (such as a library) within a project causes the project file to change -- even though the project definition itself shouldn't have actually changed. For instance, if this is my project:

_carl_0-1656622304965.png

and I delete a VI that is inside an .lvlib, the project file itself claims to have had an attribute change:

_carl_2-1656622426038.png

_carl_3-1656622515498.png

In theory, this top-level project change isn't necessary -- since the project should just reference the library, and only the library should reflect a change.

 

These unnecessary file changes make it trickier to deal with source control, merging code, tracking changes, etc, along with adding one more file that you get prompted to save every time you close a project.

The list of available LabVIEW modules and device drivers is very long. Their names tend to be long too, which is compounded by the many levels of nesting. Modern screens are large.

 

Given all that, why are we selecting software components by scrolling around a tiny window which can't be expanded?

 

tinyinstaller.png

(Note: most of the trees above aren't exen opened yet!)

 

 

Proposal: Make the window bigger (vertically and horizontally), or resizeable, or both.

 

Thanks for listening!

We've all seen the demo that shogg did where he set the color of his splitter bars to the panel color so they disappear at run time, but what if the splitter goes over background controls that you want to persist between panels?

 

22583iA7F722F2038D69E4

 

It look slike the smallest i can have my splitter bars is 2 pixels.  I totally want them to show up in edit mode, but I'd like them to be 0 pixels wide in run mode (selectable, of course).

It is time to put a dent in the floating point "problems" encountered by many in LV.  Due to the (not so?) well-known limitations of floating point representations, comparisons can often lead to surprising results.  I propose a new configuration for the comparison functions when floats are involved, call it "Compare Floats" or otherwise.  When selected, I suggest that Equals? becomes "Almost Equal?" and the icon changes to the approximately equal sign.  EqualToZero could be AlmostEqualToZero, again with appropriate icon changes.  GreaterThanorAlmostEqual, etc.

 

AlmostEqual.png

 

 

I do not think these need to be new functions on the palette, just a configuration option (Comparison Mode).  They should expose a couple of terminals for options so we can control what close means (# of sig figs, # digits, absolute difference, etc.) with reasonable defaults so most cases we do not have to worry about it.  We get all of the ease and polymorphism that comes with the built-in functions.

 

There are many ways to do this, I won't be so bold as to specify which way to go.  I am confident that any reasonable method would be a vast improvement over the current method which is hope that you are never bitten by Equals?.

Unlike the scales of numeric controls, graph scales don't support text labels (wouldn't that be cool! :smileywink: ) *(see footnote)

 

It could be handled very similar to the way text labels are handled for the scales of numeric controls, so most of the code is already there.

 

This would come in very handy for e.g. histograms or bar graphs, where each bar needs a text label, or for cases where we have arbitrary units.

 

Examples for integer scales: 

  • "January", "February", ...
  • "LabVIEW users", "CVI Users" ...
  • "Europe", "Asia", ...

 

Examples for floating point scales (x, or y):

  • "Too cold", "cold", "warm", "hot", "too hot"...
  • "small", "medium", "large", ...
  • "min", "max"...
  • "high frequrency", "low frequency"...

 

*My quote from this old discussion . See also Ben's example further down.

The request:

The thickness of splitter bars can be resized through the front panel at edit time, but this property is not exposed through property nodes. Why not expose this?

 

Background:

I use splitter bars all the time for resizable GUIs. They're also cumbersome. Many of the feature improvements I'd love to see have already been captured on this forum. In the mean time, I've got tools for automating what I can -- but I've hit a dead end when it comes to resizing the splitters programmatically. This requested property node doesn't exist and pre-sized splitters can't be copied from template VIs using scripting because the "Move" method throws an error.