LabVIEW Idea Exchange

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

I like channel wires for obvious reasons. I like to have modules, which work on their own, coming with their own GUI. This is convenient for developing my modules and testing them. Afterwards I want to be free to insert this module into a bigger project, which takes control of my module.

The channel wire controls on the connector pane can be set optional, but LabVIEW throws an error, when executing a VI with not connected channel wire control. (All branches of a channel wire must be connected to a channel endpoint...)
Please make VIs working with not connected, optional channel wire controls on the connector pane. That way, we can have channel wire based modules, which can run on their own, as a single VI, or can be controlled remotely without any change.

Quiztus2_0-1707901224255.png

 

When debugging it's common to place a series of probes on a wire that goes into an out-of multiple sequential subVIs (a "rail" wire).

 

For example, in the screenshot below, we might want to place four consecutive probes, on each of four consecutive error wire segments.

Petru_Tarabuta_1-1700167441346.png

Currently this requires four right-click gestures.

 

It would be useful to have a "Probe Chain" menu item (not sure if this is the best name, please suggest better ones) just beneath "Probe" or beneath "Custom Probe", or perhaps beneath "Generic Probe" in the Custom Probe sub-menu.

Petru_Tarabuta_2-1700167544064.png

When clicked, the "Probe Chain" would apply a probe to each wire segment in a sequential or consecutive set of wire segments. This would result in the same set of four probes shown in the first screenshot. It would save a few right-click gestures.

 

Another typical example would be when probing an object or cluster wire.

Petru_Tarabuta_3-1700167889489.png


Notes:

  • I'd be happy if the propagation of the probes occurs only in the downstream direction. What I mean is: if the user right-clicks on the wire segment between SubVI B and SubVI C (screenshot above), then probes 6, 7, and 8 would be created (using the numbering in the screenshot above), but probe 5 wouldn't be created because it is "behind" or upstream of the segment where the action was triggered from. I'd be happy if the propagation worked in both directions, but I suspect that the implementation would be slightly simpler for just the downstream direction.
  • In the first screenshot above, it would be ideal if the tool would create probe 4. But I'd be happy if the tool would omit creating that probe on the grounds that that wire segment is bifurcated, assuming that dealing with bifurcated wires would make the implementation more difficult.
  • Perhaps pseudocode for determining if wire segments are sequential or consecutive (i.e. if they form a "rail") is: if a node takes as input a single wire of a given data type, and outputs a single wire of that same data type, then consider the two wire segments to be part of the same "rail". I wonder if the Quick Drop Ctrl+W tool already implements a similar algorithm, and whether parts of that algorithm could be reused.

Thanks!

Sometimes you need to change the name of the library (class) or you need to change dependent library (class) and everything becomes broken. It is really painful to replace broken subVIs one by one. I wish "search and replace" functionality is available for these broken subVIs.

 

Ekran görüntüsü 2023-11-01 083836.png

 

 

Ekran görüntüsü 2023-11-01 084213.png

 

I haven't tried yet, but this might be already possible by generating C code and then building a Python package from that. It would be nice to have that automated.

I think there's also a commercial potential to sell Vision Assistant as a separate product (to Python developers).

Provide a new command line option to open the VI specified on the command line automatically minimized (/MIN) or hidden, i.e. just in memory (/MEM). When I want to research something in a project, I open many top-level VIs from the command line which takes a considerable amount of time. While they are loading I should be able to work on something else but LabVIEW keeps opening the windows on top of all other applications. Neither cmd.exe's start /MIN a.vi nor start /MIN LabVIEW.exe a.vi minimizes it. See current arguments here: https://www.ni.com/docs/en-US/bundle/labview/page/lvhowto/lv_defined_args.html

 

Consider that a related idea had 334 kudos but was declined for NI-convenience. If LabVIEW did that this wouldn't be needed: "Don't force all LabVIEW windows to the top when one is selected" - https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Don-t-force-all-LabVIEW-windows-to-the-top-when-one-is-selected/idi-p/2546089

Right-clicking the icon on the front panel of most VIs displays a pop-up menu with a "Find All Instances" of that subVI on the block diagrams of other VIs. However, if the VI is password-protected the pop-up menu is displayed. The password may not even be known by the developer.

It would be great to be able to configure LVMerge options via the command line as described here

 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q0000019c3VCAQ&l=en-US

 

There was a previous proposal to fix this that was closed

https://forums.ni.com/t5/LabVIEW-Idea-Exchange/LVMerge-Configurable-Load-Options/idi-p/1282252

 

 

Please kudos this so that that it is considered 😉

Hello all!

Either all or some of these have surely been wished/requested before, but were unheard, since LV lacks them since 20 years.

  • Zoomable front panel and block diagram (Ctrl key modifier)
  • Reset front panel position to origin (the dot/cross) by one click
  • Lock front panel background from movement when designing UIs

Sometimes, when debugging code, I may force a situation, e.g. force a boolean to be TRUE or FALSE, or force a For Loop to only run once. Once I have made the fix I then forget to reverse my changes and run my code. Or, even worse, create an executable and send it to a customer. Doh!

 

Could we create a primitive, in the shape of a small bug, that I could drop in my code at the point where I force the code? Then, when I come to run a popup asks "Run with bug?" This would allow me to debug my code, but would also remind me to undo the deliberate bug before I run the code for real or try to create an executable.

I prefer having the setting "Show subVI names when dropped" ticked (found in Tools >> Options >> Block Diagram). However, this option applies only to VIs. It doesn't apply to primitive nodes such as "Search 1D Array", "Format Into String" or "Match Pattern". This is fine, as the name of the setting implies this.

 

However, because I sometimes prefer showing the names of nodes, I have to select one or multiple nodes, right-click and select "Visible Items >> Label". This is a minor inconvenience, but it'd be nice if there was another option named something like "Show node names when dropped", as seen below. When ticked, the node labels would be visible by default. Hopefully the implementation effort of this setting is low.

 

Screenshot (edited).png

 

Screenshot 2 (edited).png

 

Thanks

 

In a standardized  architecture,   there are some cluster that need to be specfic  to  the current project.

 

In labview 2013 the reference to these clusters was automatically  done without preserving default value.

 

In newer version of labview we have  to review and update each specific cluster contained in the  common part of the code .

 

It would be great to make an exception on some  type def, on which  the default value doesn't really matter.

 

 

 

 

 

 

 

 

 

.

In vi.lib\Utility\file.llb the 'file open+.vi' throws an error when a file can't be opened. It doesn't tell which file it can't open.

 

One of the strenghts of LV is the source string in the error cluster that can be used to include a lot of extra information. For example which file couldn't be opened.

 

The change can be very simple, just add the file into the source string, also see attached file:

beuvink_0-1652104974240.png

This is probably true for some other files here as well.

 

(also checking out these files... would be nice if they are updated to some newer standards... still some very old styling here...)

 

Some background: https://forums.ni.com/t5/LabVIEW/Looking-for-feedback-on-the-Carya-PDF-toolkit/m-p/4229342#M1228046

 

 

 

 

 

Right-clicking a subVI and selecting "Find all instances" is extremely useful. However there is currently no way to filter the results by a particular input or output being wired in the caller VI.

 

My proposal is: It would be great to be able to filter by a particular input or output, or a particular combination of inputs and outputs, being wired in the caller (i.e. being used by the caller) when using "Find all instances". There are multiple ways of exposing such a filter to the user, so I won't attempt to mock up a design here.

 

Background

Recently I refactored parts of a medium-size LabVIEW project that I was working with for the first time. As part of the refactoring I wanted to remove an output of an FGV-type subVI with multiple inputs and outputs, because I suspected that that output was unused by any of the callers. Using "Find all instances" I found around 60 instances where this subVI was called. I had to Ctrl + G through the results list and check that the output I wanted to remove was not used in any of the callers. This would have been simpler if I could have set a filter condition to this effect, as the search would have returned only those callers that were using that output. In this case, the search would have returned 0 results, thus confirming that the output was unused.

 

Side-note: You are probably thinking "You could have disconnected the output terminal from the connector pane, and used the Error List (broken run arrows) to find the broken callers." That's what I intended to do before I realised that virtually all of the caller VIs were dynamically called VIs. Therefore those VIs being broken wouldn't have broken the main VI of the app. I put those dynamically called VIs into the disabled case of a Diagram Disable Structure such that they were loaded in memory and "Find all instances" would search inside them.

Thanks

Background

This idea is derived from the following idea: Front panel controls and indicators should be genuine after being replaced with control or indicator of different style . Please read that thread for background.


Problem

There are three ways to replace front panel controls and indicators:
1. Right-click the control or indicator, select Replace, then select the select the object to replace with.

2. Select the control or indicator, press Ctrl + Space to bring up QuickDrop, search for the object to replace with, then press Ctrl + P.

3. Select a control or indicator and press Ctrl + X. The control will disappear from the front panel. Select another control or indicator. Press Ctrl + V. The second control is replaced by the first control.

 

The first two methods preserve some of the look and feel of the original object. For example, when replacing a Modern-style string control with a classic-style string control, the end result is a control that looks like a mixture between the two styles. This may or may not be desired behaviour.


The third method does not preserve any of the attributes of the object that was replaced. The end result is a control that looks exactly like the control that was selected when Ctrl + X was pressed.

 

Both behaviours can be desireable in different situations, and it's good that there are ways to achieve both. However, the third method is not easily discoverable.

Proposed solution

A more intuitive and discoverable solution could be: After right clicking an object, selecting Replace, and selecting the object to replace with, a two button dialogue message could popup. The message could ask something like "Preserve attributes?" The buttons' Boolean text could be "Yes" and "No".

 

Ideally the same popup would appear when using the QuickDrop Ctrl + Space, Ctrl + P method.

 

This would:

1. Enable the user to select either to preserve attributes or not, depending on their intention at that particular moment. (the same user may prefer either behaviour at different times)

2. Increase awareness that two behaviours are available

Thanks

I use an electrical drawing package and on different pages of schematics it is nice to have copied components e.g. potential lines to be in the same position so when flicking through pages you can easily see the differences and it looks prettier.

 

In an event structure or case structure when I copy and paste an object from one case to another I would like to be able to also copy the position of the copied item. I like to be able to scroll through event structures and see any identical components in the same location. 

 

I propose that the X and Y keys on the keyboard be used to trigger this auto alignment so that after pasting, pressing Y will move the copied item to the same Y position and then X to move to X position.

 

 

an insider program for LV for signed up users to be able to access and pretest current or next version LV and all its module for non-academic/commercial/industrial applications; so that signed up members can help NI detect bugs for the free access? that can further improve LV during release in addition to just being a communication channel

 

interested members can sign up with active SSP as entry requirement

 

Batch message class should have a public static method to build a batch message that can be sent to the Time-Delayed Message.vi.

tkendall_0-1643323757644.png

 

I would like to wait xxxx ms then send three messages in order.

tkendall_1-1643323849848.png

Yes there are twelve other ways to do this but this would be much cleaner and it is an easy one change.

Allow type casting between Strictly Typed VI References

TypeCastVI.png

Why:

The asynchronous methods require strictly typed VIs. Strictly typed VIs depend on the connector pane and terminal wiring type (Required, Recommended, Optional). Depending on your development environment and configuration options (Front Panel > Connector pane terminals default to required), newly connected terminals may be Required -or- Recommended. 

Opening a VI reference or calling an async method with the wrong terminal wiring type will result in Error 1057: Type mismatch. 

TypeCastVI_Justification2.png

To work around the connector pane variance, we need to type cast check every connector pane terminal variance in order to call the proper async method without getting the Type Mismatch error.

TypeCastVI_Current.png

The amount of unnecessary complexity to call and collect a thread is infuriating. There is already enough complexity when it comes to spawning a new threads; between the conditional options (Non-Reentrant, Reentrant, Async Forget, Async Collect), VI type specifier (Generic, Strict), Connector Pane Type (Pattern, Rotation), Terminal Wiring Types (Required, Recommended, Optional), etc. Threading in LabVIEW needs improvement.

Idea:

To better support Asynchronous calls, we need the ability type cast the required strictly typed VIs to:

1. Add an option to Start Asynchronous Call and Wait on Asynchronous Call methods to ignore the VI terminal wiring type flags:

     Required (0x21000), Recommended (0x20800), Optional (0x20000)

2. Support type casting VIs To More Generic Type and To More Specific Type to avoid the error 1057 Type Mismatch all together

TypeCastVI_Idea.png

Regards,

A LabVIEW Enthusiast 

Two more suggestions

 

There has also been a need for rising edge and falling edge triggers for boolean values instead of having to manually code this in every time.  I know this would take extra memory space but could be turned on or off maybe in the control settings dialog.

 

I also have to manually code in time delay functions because everything I do is in loops with parallel code.  The timers can't execute properly this way and would be nice to be able to use the built-in timing functions instead of hand-coding.

Aren't you tired or seeing Labview, or LABview or LabView online?

 

NI Certifications (CLA, CLD, etc) should be stripped off people engage in miss-spelling LabVIEW.

 

And those who aren't certified should handwrite "LabVIEW stands for Laboratory Virtual Instrumentation Engineering Workbench" 10 thousand times!