LabVIEW Idea Exchange

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

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

 

 

 

 

 

My 2 cents: would be nice to have optional tabs on the case structure similar to what we have in modern browsers like chrome. If dont have gazillion cases then this would be a very comfortable way to switch between cases. Arrows at the side shift the cases. The active case is color coded and slightly overlapping the surrounding cases.

 

Warning: MS paint artwork below! 🙂

 

case.png

I'd like to see added to LabVIEW  a 'Retain String Formatting' option for the concatenation operator. This would cause string formatting (the stuff you set with the CTRL-0 shortcut) to be preserved when concatenated. See the example below. This could be added to the right-click properties of the concatenation operator "Preserve String Formatting". An alternate symbol for concatentation would need to be provided so that you could visually tell that this option was enabled when looking at the concatenation operator on the block diagram. Maybe the NBC peacock sitting on top of it?

 

Sometimes setting string formatting attributes programmatically is a lot of work, and inappropriate to the application; simply not changing/removing the attributes would be sufficient... Note that the string formatting attributes are preserved across a cut-and-paste - if you copy the contents of a formatted string and paste it into another string, the attributes are retained. I find the current behavior of the concatenation operator  (NOT retaining string attributes) to be at odds and inconsistent with LabVIEW. After all, it is a GRAPHICAL programming environment, is it not?

 

If I remember correctly, you also lose string formatting attributes when changing a string constant to a control or indicator - perhaps that also could use some thought...

 

NewConcatenate.jpg

FPGA code allows I/O references to be used so that code can be re-used/abstracted, like this

FPGA-SubVI.PNG

This could/should be extended to cRIO C-modules so that code can be re-used on multiple modules. This would require the 'cRIO Device' property node to return an array of I/O Refnums that could then be passed to subVIs or other modular code.

 

For example, if I have code for an analogue input module (say, NI 9205) which filters and processes the data, and I wish to re-use that code in multiple experiments I have to manually change the module name in each IO constant or node (Mod1/AI0 to Mod3/AI0) if the module moves or I need more than one of the same type.

 

Conversely, if the cRIO Device property could provide the I/O references, the code could accept a cRIO Device constant and the reusable code extract the I/O references. The code would then adapt from Mod1/AI0 to Mod3/AI0 as the cRIO device was changed from Mod1 to Mod3.

 

It would be added to these properties.

FPGA-cRIO-Prop.PNG

 

Thanks,

Richard.

 

Capture.PNG

User Colors 1-16 are now pre-defined by the default LabVIEW.ini file  that leaves us developers with only two.  Why 18 total?  This needs some adjustments IMHO!  It should be easy to implement but, can't be done without hacking the ini editor

Hi Team,

 

Would be Great to add or Delete Input in Array [ Insert Into Array ]. Bit difficult to manage when used for reporting. Rearrange all input nodes if to add or delete a input inbetween.

 

Idea.png

 

 

Many Thanks

Anbu

Hi !

 

Often dealing with old code it's always a pain to install old versions of LabVIEW to get the code compiled the newest LV version.

For example, porting code made in LV 5.0 implies converting first to LV 7, then convert to LV 2009, and finally convert to LV 2013.

You then have to install these version, licences, ...

 

It would be nice to have a service on NI.com website from which we could send a zip archive containing the project to convert.

Then selecting the target LV version, a could service could unzip and compile the code across all versions of LV to have the code matching the requested version.

I find the new Channel wires very useful things! However, I really miss one type/variation which would make a real many-to-many lossless message sending possible, but also with total control over where the msgs end up in case of multiple readers! Imagine that we have a Channel wire which can be branched, and you can also specify a "destination label" (could be a number, or string, etc.) at the Write nodes. This new Channel type would allow multiple Write and Read nodes. At the Read nodes, we could also specify the "destination label", so ONLY those Reader nodes would get the actual message which are subscribed for that particular "label".

 

I can program this functionality, but it would be great to have such features in a single Channel wire...

What do you think? Is this a good idea or you see some caveats/downsides of such Channel?

The current way to bind many shared variables to an OPC client, is through browsing a tree and selecting.

This is very time consuming when you have hundrends or thousands of tags to bind. Specialy if the all the tags are not in the same path.

A better way, is to bind the variables, by simple text.

Example: We will insert the following text

A1M01Z1:value

A2M01Z1:value

A3M01Z1:value

 

and LabVIEW will automatically create 3 variables, bounding to those addresses (with the same name, prefered). Many OPC Servers supports this type of address.

Note that the true path of A1M01Z1 could be something very big, like:

My Computer\OPC ABB.lvlib\_OPC1\[Control Structure]\Root\NETWORK 1\Nodecm3\Extended Process Objects\MB300 AI\A1M01Z1\VALUE

 

This way you can add thousands of items in minutes. It is quite easy for the R&D team to implement and will help many professional engineers.

Most probably, this idea will not accept many kudos, but i think R&D must consider to implement this.

 

(this was discussed with NI technical suport, Reference#3279019)

 

Thank you all, for reading

I would like the worfkflow to save a new class/library/project to be more like Save As... when creating a copy.  Mainly I would like the option to either use 'Current folder' which puts the class/library in the current directory, or the option I would almost always use, Save which creates a new folder with the class name and puts the class inside.

 

NewClassSaveDialog.png

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.

 

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

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 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.

 

 

 which it is still not doing in LabVIEW 2015.

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

Hi All 

 

if NI adds the Fuctional Global Variable (FGV) tempalte in design pateren tempates in hte New window, it is easy to create FGV VI's.

and Helps the programmers, no need to create from the begining of VI.

Even it is usefull for CLD Exam also.Smiley Happy

 

 

FGV Template.jpg

Search for Keywords is presently limited to logical "OR" search. It would highly profit from logical "AND" Search.