LabVIEW Idea Exchange

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

I really like having two different default locations for my terminal labels.  What I do not like so much is that I still end up dragging a lot of labels around after changing a control to an indicator or indicator to control.  I would like it if the label location was automatically moved to the default position when the direction of a terminal is changed. 

 

You could get fancy and only move it if it is currently in the default location, I'd prefer it to always be moved.  And I am not interested in the Quick Drop shortcut here.  I do not want a quick way to clean up the mess I do not want the mess made in the first place.

 

Move Labels.png

I've often produced VIs with non-array controls and indicators only to find that by changing them to arrays I can increase the power and functionality of my VI. When this happens you have to create the array element, drop in your control and then if it is connected to a VI input or output pin, rewire the pin.

What would be nice is to simply have the Add Dimension capability available for a non-array control to instantly convert it to an array and conversely the Remove Dimension to convert a 1D array control back to a non-arrayed control.

 

Add Dimension.jpg

Not so much an idea, as a wish/plead/rant:

 

Please make the next version of LabVIEW a major update of the features we have available to create user interfaces.

 

2011 was the "improved stability" version. 2014 should be the year it became simple and fun to create user interfaces that blow everyone's socks off. I'm not even talking about fancy stuff, just get the basics right!  Fix the graph indicators, and provide better front panel scaling options - and that alone will make 2014 the best update ever(!).

 

 

I started writing a list of all the things I find bad with the graph/charts for example, and found out that it would be better to just do a search here on the idea exchange to see how many ideas mention graphs alone. 2390 ideas! (yes, I have not gone through them all to filter out the ones that do not actually request changes to the graphs, but most of them do, directly or indirectly...). My own little list started like this, in random order:

 

Graphs and charts

1. You cannot stack plots in any of the graph indicators, only in charts
2. Number of plots stacked cannot be varied at run-time
3. Annotation properties are only partially available programmatically
4. Auto-scaling cannot be restricted to one way-only, it's behaviour cannot be configured in any way
5. Legends, palettes and tools do not fit together to form an organized user interface, nor are they possible to detach from eachother to get more flexible designs/scaling for ecxample...
6. XY graphs become sluggish and almost unusable with large data sets, where alternatives written in other languages have no performance issues
7. Plot colors could automatically adjust to the chosen background color - suggesting unique colors for the added plots that provide the best possible
visibility.

8. Graphs on e.g. Google and Yahoo have tonnes of cool features like animated zooming, thumbnail graphs, highlighting of the plot you hover the mouse over etc. which provide a very interactive feeling, you can achieve some of this in LV as well, but it could/should be possible with little or no programming

9. To get charts to accept data with variable sample rate (delta X) is possible, but cumbersome and an almost hidden feature...

 

Mixed signal
1. You cannot set the group names programmatically
2. The number of plot areas is not configurable at run-time
3. You cannot assign plots to a given group programmatically
4. You cannot show the visibility checkbox of each plot etc.

 

And then you have the additional 2000 ideas...;-)

 

As for front panel scaling there are not that many ideas (naturally), but the impact/value of them would change every LabVIEW programmer's life significantly. We can stop spending so much time finding ways around limitations in LV, and start focusing on the actual goal of our applications.

Would that not make everyone's day?

 

 

There are several methods to exchange data between parallel loops.

These methods however are (intrinsically) not following LabVIEW's dataflow-along-wire paradigm.

 

If you think in different layers, where several loops are running in parallel at the surface, you could have subsurface datatransfer.

You could add a new "tunnel mode" to the LabVIEW 2013 right mouse menu on the border of a loop.

There you could also specify whether you would like the data passing the boundary to be queued.

You would however think of something to visualize these settings at the loop boundary as well as having some error terminals in case of queues.

 

 

Underpass_data_transport_be.jpg

In my daily work, I'd guess that over 90% of the time I drop something with Quick Drop, I use an object shortcut name ('cs' for Case Structure, 'rn' for Property Node, etc.):

 

cs.png

 

You can configure object shortcuts by clicking the Configure button in the Quick Drop window. I've often suggested that people download and use my Quick Drop Palette Object Shortcuts for Right-Handed Developers to be able to drop most objects without ever having to move the left hand from the keyboard and the right hand from the mouse.

 

But in order for you to benefit from having object shortcuts, you either need to (1) create your own or (2) download mine from the link above. Neither of these options are particularly discoverable, nor do they make it easy to get started with the feature.

 

I propose that NI start shipping a pre-defined set of Quick Drop object shortcuts with LabVIEW so that everybody can have access to them from the start.

The "Probe Display" pane of most default probes should have indicators that are set to "Fit to Pane". The worst offenders, in my opinion, are Strings and Variants...I often find myself cursing the fact that I can't see more of the data, and usually have to copy & paste into Notepad++ or something to actually see what I'm looking for.

 

Yes, you can make custom probes for this behavior. But it should be native.

 

probe.png

Path Type Function returns 0 Absolute Path if the path is empty.

 

It should return 2 <Not A Path> or better yet a 3 <Empty Path> when path is empty.

 

Sure I could check to see if the control = not a path or = empty path, but it would be nce to have one function to check.

In addition to displaying the names of all palette items, Quick Drop will also display the names of all VIs, classes, typedefs, etc., that are present in all currently-open projects. It has been suggested to me that we should provide a configuration option in Quick Drop to only display project items from the currently "active" project, to avoid potential cross-linking issues that can stem from accidentally dropping an object from one project into a VI that is open under another project.

How many times have you found yourself entering items in an array, typing merrily along, only to have to switch back to a mouse to click on the next element and type it it.  I suggest that Alt-Enter complete the current entry and move to the next array element.

 

This idea proposed using the Tab key, which collides with manual tool changes.  Shift-Enter was also proposed, but it collides with the ability to move to a new line in strings and to add another element to a enum/ring.

 

I propose using Alt-Enter to advance to the next array element:

AltEnter.png

As mentioned here, Chrome is now the dominant web browser worldwide, but acessing remote front panels using Chrome is still not officially supported by NI (more details and links are in the quoted thread). 

 

 

While there are some hints that several users had success back in 2010, I was not successful so far.

 

IDEA: There needs to be official NI support for the dominant browser and NI should invest some effort to get this working seamlessly.

Labview 2013 has a great new documentation feature called Bookmark Manager.  It even has a nice feature that lets you click on the listed bookmark and takes you to that point in the code. However, I was surprised that I could not print or otherwise "export" the list.  It would be nice if the Bookmark Manager output list savable, copyable and printable or perhaps even exportable in text, spreadsheet or other format.  This would allow the information to be merged with external project management schedules, ToDo List etc.  Thanks for any comments and/or Kudos!!

 

Bookmark Manager Suggestion1.png

I am probably the only one to be using Extended precision numbers considering the feedback on these requests:

 

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Allow-graphs-to-display-extended-type-values-i-e-create-true-EXT/idi-p/2239078

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Allow-All-LabVIEW-Supported-Number-Types-in-Formula-Node/idi-p/2502198

 

but so be it.

One other area where LabVIEW ignores extended precision is wire values in debug mode. To illustrate what I am talking about, consider this snapshot of a debugging session:

 

ScreenHunter_001.jpg

 

The result of my modified Bessel calculation (that reminds me I haven't suggested to implement special function calculation in extended mode...) returns a perfectly valid extended precision number, such as 5.03E+418, but LabVIEW doesn't recognise this as a valid value and returns an "Inf" value (which would be the correct reaction if the wire could only display double precision floating point values).

This wire is connected to the logarithm primitive, which happens to be polymorphic and hence accepts the extended type. The result is the correct logarithm of 5.03E+418, i.e. 964.15.

On the face of it though, it appears that the output of my VI is +Inf, and that LV went wahoo and estimated an arbitrary value of log(Inf)...

My code actually stores such values in shift registers, so when I debug problems with the code, I have 3 or 4 wires carrying an "Inf" value, which, when I am trying to understand the reason of overflow problem, is not exactly helpful.

 

Suggestion: display Extended Precision wire values correctly in debug mode.

 

The High Resolution Relative Seconds VI has been around since LabVIEW 2010 and according to Darren is cross platform.

 

So what reason is there to not have this get more exposure on the palette?  Admittedly I still use the tick count for just about everything I do, but I think bringing this function the Timing palette would help those who ask about more accurate timing needs.

 

The only argument I can see, is that new users of LabVIEW are going to want to wait X microseconds and turn a digital line high and low, and be confused when Windows isn't consistent.  But this argument can be used for the normal timing functions too, because Windows non-deterministic.

Just found out MathScript Module does not have a 64-bit version yet. I don't know if NI has any timetable to release its 64bit version?

 

Why do I need a 64bit version? Mainly the memory issue. I have a Matlab code which requires a massive memory allocation. Now I am trying to use the .m code in LabVIEW, but encountered a 'Not Enough Memory' warning message. I think a 64bit version shuold fix this issue, correct?

 

Besides, 64bit is the future anyway. So in case MathScript Module 64 bit is not even being considered by NI, I would like to suggest it here.

Automatic routing of new wires is actively trying to get in my way!

 

Automatic Wire Routing

I can add a manual bend and try to pixel align things myself then clean up mistakes after, but why can't it work right the first time!

I love lvoop but I hate that you have to suffer a huge performance hit when accessing parent class private data via access vi's, especially if it is large datastructures.  

 

As access vi's can also be invoked using property nodes, make a read/write property node pair accessible via an IPES - this will instruct the compiler that this access to the parent class' data should be done in-place.

VI Analyzer has a spell check ability (woo hoo!!)

You can even add custom words to a custom dictionary, for the case where you have a need to.

However, for a out-of-the-box spell check system for an application used heavily by the Test and Measurement community, I was very discouraged I needed to add words such as

Agilent

GHz

preamp

to the custom dictionary to stop getting them flagged as misspelled.

How about a standard out-of-the-box dictionary refresh to include technical terms commonly used in T&M applications?

After 2011 we have the option to ignore all the missing vi's which are missing. But after loading the project if a vi is loaded and if it has a missing vi then there is no way to check from where it has to be loaded (Expected path of the missing vi). So it would be a good option to check the Expected path of the missing vi after loading its caller (May be in the properties of the missing vi).

 

Enum and Adapt To Entered Data has no meannig.

 

With an "Enum", this option should be removed from the menu.

 

 

                       SR1.png