LabVIEW Idea Exchange

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

Please add to AF:

Interface based messaging. The need to create messages for all communication is a major decrease in productivity and speed of actor programming. It also decreases readability. It is a better with the BD Preview in Choose Implementation Dialog in LV19, but still.

 

Add a confirmation dialogue when changing type definition to control. I just experienced changing a type definition to a control by mistake and was scared until i realised that if i just kill LabVIEW at this moment that it would work as an undo. Of course undoing all the other changes also.

 

A simple are you sure dialogue wouldn't be so annoying as this happens rarely and don't believe that it would require lots of resources to implement.

In response to another post, Darren suggested someone start a new topic about how to more effectively spread information about new or esoteric features (sometimes referred to as "tribal knowledge").

One idea is to have a database of these gems and display one at random during the splash screen.  So, while we are waiting for LabVIEW to start, we can learn a potentially useful "trick", if we care to.

 

Example:  "Control-click on some primitives will reverse the order of the inputs.  By also holding Shift, any inversions will follow the connections."

(Note:  the second have of this example is not actually implemented yet.)

I really need the concept of "aliases" or "shortcuts" to project items.  Consider this project:

Case 1.PNG

Case 1: maybe the item in blue is where I left off working yesterday,

Case 2: maybe the item in blue is a VI that I have to change when I add a new class somewhere else.

 

Either way, to get to it, I have to

1... Open the target ('RTAC-Culverson')

2... Open the DAQOBJECT folder

3... Open the DAQOBJECT CAN folder

4... Open the DAQMODULE CAN folder

5... Open the DAQMODULE CAN.lvclass

6... Open the ACCESSORS folder

7... Open the MY OUTPUT CAN TASK folder

8... Open the VI that I want.

 

I suggest this:

 

1...  I pop up on this item in the project, and choose CREATE ALIAS.

2... An Alias appears in the project.  Aliases are ALWAYS at the top of the project, without opening any folders.  (maybe limit to 10 aliases)

3... You can't do anything to an alias except OPEN it or REMOVE it.

4... Double clicking (= OPEN) an alias merely opens all folders leading to the targeted item, and highlighting it.

5... You can create an alias to a VI, to a CTL, to a CLASS, to a FOLDER, to a BUILD SPEC, anything in the project.

6... Deleting the original item deletes the alias to it.

 

This seems simple to do, because you don't need a context menu for the alias (if it's a build spec, allow BUILD in the menu, if it's a VI, allow RUN, or OPEN, etc.) Forget all that.  Just OPEN it, or REMOVE it.

 

It's a ref to an item WITHIN the project, so copying a LVPROJ file should copy all the aliases.

 

Whaddya think ?

.net calls can end up being pretty verbose in LabVIEW, having to pipe between property boxes to get to some nested value, when the call is pretty straightforward when written in a more traditional language. In addition, trying to replicate some .dll functionality seen in c++ is frustrated by how different the calls look. Having the ability to drop into a function block to write .net code would make it much easier to port functionality + debug.

Even if there was a penalty performance wise, it would still be a nice middle ground for getting a prototype off the ground before optimising it for LabVIEW.

I would like to be able to target an entire sub-palette for searching, rather than just a single vi.

 

That way, for example, if I want to find every vi that contains any of the Queue functions, I could get them all in a single search, rather than having to search for each vi in that palette.

Knobs and dials require the user to move the mouse in a circular arc when adjusting the value, which isn't very ergonomic or precise. If the user isn't careful, passing the mouse over the center of the knob while adjusting it can cause the value to change rapidly and unexpectedly.

 

knob_vertical.png

 

The idea is to add an option for the knob or dial control to be adjusted by only moving the mouse along a single axis (vertically or horizontally).

I have a set of Icons that I use, saved in the folder \<User Docs>\LabVIEW Documents\Icon Templates\VI\BS Icons.  I've gone through a bit of work to organize this folder, adopting the "Reverse Alphabetic Order" that seems to be the Ordering Principle here (i.e. the Icon "Zebra" is first, "Aardvark" is last).  Yet when I open the Icon Editor after starting LabVIEW, "All Templates" is selected (by default), rather than my BS Icons Library.

 

One way to "fix" this is to empty (or delete) the two "Frameworks" folders, both of which contain a (differing) Icon called "_blank" (so-named, I bet, to "reverse-sort" first in the list).

 

This is, I realize, a minor "cosmetic" issue, but creating LabVIEW VI Icons is an important part of LabVIEW Style, so why not make it more User-Friendly?

 

Bob Schor

Since a few days I'm struggling to debug a packaged library. The project library works when called with development system. If called by the corresponding executable I’m only getting error 1498 and there is no way (to my knowledge) to obtain more/usefull information. Even inside the LVInternalReports folder no information is stored. REALLY useful as well would be the bugfix of CARS #684847 which is reported since version 2016, which prevents to show the block diagram of nested PPL if called from the executable…

So please give a more convenient way to debug packed libraries and fix the mentioned CARS.

Dear all,

 

timeouts and UID properties of "Modbus Master.lvclass" and "Modbus Slave.lvclass" can currently be set but not read out (they should).

 

See discussion here.

 

Sincerely,

TDMS files generally come in pairs.  There is the TDMS file itself which contains all the data and meta data stored in the file.  And there is usually a tdms_index file.  This is the file with the meta data in it, but not the actual data.  The idea being that this index file is created from the original file, but since it doesn't contain all the extra data, it is faster to search through for a particular offset in the file to find something.

 

If a TDMS file exists in a folder without a tdms_index file, it will generally be created when calling the TDMS Open function.  This means when DIAdem indexes it, or when Excel Importer opens it, or when Scout opens it, this index file is created.  Often a useful way of looking at a folder of logs is to look at the Date Modified or Date Created and look at the newest.  But if we are viewing a folder of TDMS files which don't have the indexes, as soon as we open one to view it, the index file will be created with the modified and creation date being set to right now.  This suggestion is to have it be set to the same value as the original TDMS file.  As always pictures are useful.  Here is a folder of TDMS files sorted by the date modified.

 

Before Open.png

After double clicking that file the TDMS editor of choice opens it and the directory looks like this:

After Open.png

The index file is created, but since it has a newer mod date it moves to the top of the list.  My suggestion is to have the index file have the creation and mod date set to the TDMS file so the directory will look like this after it is created:

Proposal.png

Yes I realize you can write code to set this but I can't think of a reason why I would ever want to know what the date and time that the index file was created.  I'm only interested in the data, not the index file.  If this is implemented on the TDMS API side of things, then all tools that get made from that point forward will have the file modification set automatically.

Currently, the "Tab" key is not individually mapped to an action for Block Diagram interactions; my suggestion is to use it to swap between "control", "indicator" and "constant", in the same way we already do with the options of the right-click menu "Change to Control/Indicator/Constant".

As an example, having selected a control on the BD, by just pressing "Tab" we would transform it into an indicator, a second press to a constant, and a third one would bring it back into being a control.

 

I understand this is a simple thing, but personally, I feel this ends up being one of the most repeated actions we end up taking as developers and I believe it would be intuitive to map it to a familiar key to many of us - tab.

 

Thanks all,

Cris

(In LV2017) "Browse Relationshiips\Unopened SubVIs" shows a list of icons with truncated VI names - about 12 characters per VI. When looking through a list of similar icons, one has to hover over each icon to see the full VI name.  This is impractical when hunting through tens or hundreds of SubVIs.  If unopened SubVIs could appear as an alphabetically-sorted list of VI names, it would be very helpful.

 

 

 

Ever tried to parallelize a loop?

You just have to place your mouse over what feels an approximately 1 pixel wide area on the left side of your loop and press the right mouse-button without moving the mouse. If there was no input or case terminal around a context menu opens that gives you access to the function you need.

Point anywhere else and the contect menu doesn't contain what you need.

 

The context menu entry could also show if the mouse hovers over any other parts of the loop as well to make the area easier to point at.

Currently, the only way to add a webservice to a project, is by right clicking a Target and selecting New->Web Service.

There's no way to add existing Web Service definitions to a project, other than manually performing the copy operation at the XML file level.

This prevents proper re-use of IP!

 

Webservice in project.png

 

I would propose extending the capabilities of a Library to also support Web Service definitions as Child objects.

That way, the library can act as a container for the Web Service definition, and can easily be reused in other projects:

 

Webservice in library.png

I tried using an XML editor to manually put a Web Service definition underneath a Library, LabVIEW didn't like that!

When you want to look for a specific VI in your project using Ctrl+F you have an handy option to search vi by name. But this is quiet difficult to find the VI you are looking for in this windows : All VIs are listed (without structure) and there is no Filter. Something similar to Event selection window would be much better (That would have a filter and where VI's would be grouped by libraries and class)

 

This "Find all instance" could also be added directly in the project explorer, in the Right click -> "Find" menu

 

 

Download All

LabVIEW functions "Set Waveform Attribute" and "Get Waveform Attribute" could write/read any attribute name/value to waveform. But, according to help files (http://zone.ni.com/reference/en-XX/help/371361N-01/lvwave/set_waveform_attribute/), there are default attributes such as device number, channel name, etc., which could be set by NI-DAQ, and Express VIs. But sometimes there is need to set them manually (for example, while reading data from FPGA and building waveform from it).
It would be handy to include to Waveform pallete simple API with polymorphic VI to set and get those default attributes. Then one should not remember what exact name it has, but just take the function, select which attribute he needs, and use it.

 

Sincerely, kosist90.

 

Refer to http://zone.ni.com/reference/en-XX/help/371361P-01/lvpict/draw_line/

 

Under the Pen -> Style, there is a "Dot" option.

 

But the output is not really a dot but a short dash. Can labVIEW make the output into a real single pixel dot?

 

Same applies to draw circle VI.

 

It would be useful to insert a VI directly from a project or from a class into a line.

 

At the moment, using Diagram Disable Structure with Channel Wires results in a broken arrow, which prevents compilation. However, it would be highly beneficial to allow temporarily disabling the transmission of values or messages to different parts of a program—for example, during debugging.

Quiztus2_0-1755004887752.png

A tedious workaround used in the past involved connecting ))Channel.vi with ChannelOp.ctl from the generated Channel Wire library to the channel in the enabled case. This allowed bypassing the broken arrow issue.

Quiztus2_1-1755005119160.png

However, since around 2025, these components have become natively private, making the workaround even more cumbersome and less viable.

I’d like to propose the following improvements:

  • Native compatibility between Channel Wires and Diagram Disable Structure.

  • Optional front panel connection for Channel Wire controls—i.e., they shouldn’t require a wired connection to function or compile.

These changes would streamline debugging and development workflows and reduce unnecessary complexity.