LabVIEW Idea Exchange

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

Often times, I have a set of code in a for loop that takes a while to complete, so I put in a progress bar on the UI.  The problem is the progress bar defaults to 0-100 range, and my for loop normally does not have 100 iterations. 

So.... I can either rescale the progress bar to the number of elements, or I can use the "N" and "i" to calculate the percent complete and use that.

 

Since I like to keep my progress bars as 0-100 (since that works nicely to also show a percent complete) and % complete is useful elsewhere, I generally always end up calculating % complete of my for loops.

 

Well, why can't NI calculate this for me automatically???  Something like expanding the "i" iteration counter in the loop also have a "%" box right next to it.

 

Example shown below should probably wire as a double instead of an int, but you get the idea!

 

ForLoopProgress.jpg

It's good to have tool like Quick Drop...........but it will great if we can see our own VIs/Custom Controls/Custom Indicators/objects present in my PC in the list.

 

This can be achieved by remembering them while they are made or being used for the first time. So that every time I don't have to got to Select Vi, search the path & call a VI.

The only option to do this right now is by placing the VIs in user or inst directory of Labview.

But this not what we always do right? We manage the folders & VIs in different locations.

 

Just as good function as any desktop search.

When a control caption.text property is called and the caption has not been set in the Properties dialog of the control an error is thrown.

caption text code.PNG

error 1320.PNG

It would be nice for the caption.text to default as an empty string so an error wouldn’t be thrown when it is called in the block diagram.  This would allow easier runtime editing of each control on the VI.

I really think this is a bug, but I'm going to file this as a feature request, just to add more weight to the issue...

 

The VI Server Application method Library.Get File LV Version claims to be able to tell you the version of a Library (or XControl, XNode, LVClass) on disk, without loading it into memory.

 

noname.gif

 

Here are the docs:

 

12-1-2010 4-18-09 PM.png

 

But, when you try to call this method on a Library saved in a version of LabVIEW newer than the version of LabVIEW in which the method is executing, you get the following error:

 

Error 1125 (LabVIEW: File version is later than the current LabVIEW version.)

 

Why an error?  It had to read the version in order to generate the error.  Why not just return the version?

 

Thanks in advance for your kudos 🙂

Hi, i wanted to suggest the creation of a separate utility software that would convert a VI from any version to any other version. This would save people a lot of time by not waiting to get it converted from their respective threads. Also it would serve for more people to able to reply on the forum(me included since i am using LabVIEW 8.6 and most of the posts contain VIs made in 2009 and 2010 even though most of the time the same functions are avalable in 8.6 😞 ).

 

 

PS: Sorry, got no pictures

 

We currently have an option to "Run executable at the end of installation".  This is useful for installing other stuff required by your application.  However, we also need the ability to clean up these things during the uninstall process.  So, I'd like an option to "Run executable at the beginning of uninstallation".

 

Pre-Uninstall Tasks.png

Hi,

 

when I have to rework a vi, i usually start by putting the existing code in a disable structure

and then start working in the disabled 'case'.

 

Quite often I end up trying to replace the disable structure with a case structure to test the new or reworked vi.

 

Now I have to copy everyting into a temporary vi, remove the disable structure, put a case structure in place, paste again and rewire iputs and outputs.

 

Please add the ability to replace the disable structure with a case structure.

I would suggest that NI makes the datatypes of the "Quotient and Remainder" VI consistent.

 

If you now wire a double to the VI the outputs are of the datatype "double" however in my opinion this is not consistent with the mathematical definition of quotient, floor(x/y) and remainder, x-y*floor(x/y). The output of the VI is always a integer and should therefore also be of that datatype, thus one of the following datatypes (I64, I32, I16, I8).

Sometimes programmers overlook the building queues and face performance issues ... I think there should be a utility to monitor the 'queue status of all the queues associated' when the program is running.The features of the utility should be in 2 ways :

 

I. Watch a particular queue : this should list the updating  vi's name where the queue has been updated, number of elements queued in that particular vi , the total elements at any time.

 

LV idea1.jpg

 

 

 

ii.Watch the queues in a particular vi / set of selected vis / project : A page to first to select one among the 3 options (particular vi / set of selected vis / project) .Runtime indication of the queue status of all the queue associated.

 

LV idea1_1.jpg

It would be nice if LabVIEW handles the coersion automatically by inserting the required conversion function with inserted function in different color or in any other representation wherever possible so that user understands there is a coersion happening and in the same case we will not have performance pitfalls. Example scenario is show in the picture.

 

coersion.jpg

 

If the user still want the coersion, there can be an option of "Forced coersion" in the right click menu of the inserted function.

Hello,

 

It would be nice to add a new menu item in Labview IDE, which could close all executing VI's.

 

This could solve the problem of "running Modal VI's" which can "block" an execution.

 

This could also be helpfull to "clear" the execution context when you have bad closed "detached and assynchonous executing VI's".

 

The top, would be to get a report (a list of VI's in a window) of the forced closed VI's ... It would be helpfull for analysis.

 

Manu.net

 

 

I had a customer call in that wanted to be able to increase the limitation that Excel allows us to import. He has found a work around in which he creates a Visual Basic Macro in excel. He uses Active X in LabVIEW to open excel, and this puts the macro into use and overwrites the limitation. He was hoping that LabVIEW could do this for him and others so he would not have to write separate code in Visual Basic.

When building an application, the build will fail if any of the VIs are broken.  But, the build doesn't fail until very late in the build process.  It would be great if the build would fail right away if any VIs are broken.

 

Note: In one of our big applications, it sometimes takes 30 minutes into the build before the build fails.  However, it only takes a couple minutes to detect this by loading the VIs into memory and testing if they are broken.  So, as part of our one-click build, we implemented a pre-build test for broken VIs and abort the build -- this saves us a lot of time (in cases where the build is broken).

VI Analyzer complains if you use the Build Array function or Concatenate Strings function in a loop because these functions negatively affect memory and processor usage in a loop. Using both of these functions in loops bring certain advantages to code. Primarily, you can dynamically build strings or arrays, which is helpful because sometimes it is hard (if not impossible) to know how big a string or array is going to be when a loop is run.

 

The first image below shows a loop with both of these functions that will cause a memory leak as the loop is run.

 Build Array and Con String.PNG

Build Array and Concatenate String in Loop - Will Cause Memory Leak

 

I got to wondering... Is there a way to dynamically build arrays and strings in a loop that will not cause a memory leak? In my limited testing, it looks like the code in the second image performs the same function as the build array and concatenate strings functions, but without the poor memory performance. I can run the code below for long periods of time and not have a memory leak. The instant I switch over to the case to use Build Array and Concatenate Strings the code beings to chew up memory. My idea is this: Replace the internals of the Build Array and Concatenate Strings functions with the code boxed in red in the image below. It is preferable that the code below gets contained in its own function because it clutters up any diagram with the extra nodes. 

 

If putting this code into the Build Array and Concatenate Strings functions is technically possible, it will allow people to dynamically build arrays and strings in loops without the costly memory performance. One note is that the code that builds an array in the second image is scalable, but the code that builds a string is not scalable. If this is implemented, the code to build a string should be scalable, but based on the code below that does not cause a memory leak.

Build Array and Con String - No Memory Leak.PNG

Replace Build Array and Concatenate Strings with the Code Boxed in Red

 

It's been great to be able to find Items with No Callers in Project. How about Find Broken VIs as well?

 

FindBroken.png

Anyone ever run a vi when you left a modal subvi opened burried somewhere in the huge pile of opened windows? Wors yet the moday subvi had hidden toolbar and shortcuts disabled (most likely since modals are used as gui vi and you dont expose this toolbar to users).  Now if you dont have your own vi task manager your are most likely stuck and have to force quit labview.  Cant there be an option to wanr me before this situation occurs.  AGAIN THIS WOULD BE AN OPTION,  if you dont like it turn it off.  The simple function when you click the run button, it world check the current sub-vi in memory and see if they are modal if so, they would ask if you want to close the modal subvis, ignore or cancel. 

 

I use labview all day everyday and find myself in this situation every so often - but maybe this is just me.

 

Yes I know I can make my own vi to do this but it would be easier if it was already in labview for each future version.

In many of my programs, it is frequent that I have to issue a command, then wait for a period of time before reading a response. Usually, if there is a timing delay in code, it is usual to end up with something like this:

 

timing2.png

 

To do this more neatly, I created a timing subVI with errors wired in and out, and a number wired to it, to instruct the program to stay in that subVI for that period of time. It takes up much less space.

 

timing3.png

 

By doing this, I can easily control timing and execution. However, it's be nice to rework the 'milliseconds to wait' diagram so we could wire errors through it, as this would make the block diagrams so much neater...

 

I would like to have some kind of compiler optimalisation options.

The save time is often to long, Editing is annoying

Editing in LV2010 often halts for 10-20 seconds because it it recompiling the code for some reason.

If we had some option to turn off "advanced optimalisation" things might go fluently, like in the old days.

 

HABF?

 

An acronym for one of my favorite Spolskyisms. Great article, read it.

 

Background

 

When you discover what you consider to be a bug in LabVIEW's IDE or language, it's a difficult process to report the bug and track the bug's status as new LabVIEW editions debut. This idea addresses the transparency and facilitation of this process, and is meant to appeal to both those who create LabVIEW and those who use LabVIEW.

 

Problems with Current Issue Tracking Platform

 

"Platform" is a generous term for the current reporting and tracking process:

 

  1. The issue reporting procedure is undocumented - few seem to know how to report issues, fewer know how to track documented issues
  2. Issue tracking status is largely monitored by a squad of Dedicated Volunteer Bug Scrapers
  3. Duplication of effort (for users, AE's, and R&D) is probable since there is not a centralized, searchable repository
  4. Relies on unreliable methods including email, FTP uploads, phone conversations, forums...

Comparing LabVIEW Issue Tracking and Feature Tracking Platforms

 

Before the Idea Exchange, there was the Product Suggestion Center (PSC). What's that, you ask? It's a hole in the internet you threw your good Ideas into. Smiley Very Happy The Idea Exchange revolutionized Feature Suggestions by introducing a platform that allows an unprecedented level of public brainstorming and symbiotic discussions between R&D and customers. Further, we can watch Ideas flow from inception to implementation.

 

I want to see an analogue for Issue Tracking.

 

Proposed Solution

 

A web-based platform with the following capabilities:

 

  1. Allows users to interactively search a known bug database. Knowing the status of a bug (not yet reported, pending fix for next release, already fixed in new release...) will minimize duplicated effort
  2. Allow embedded video screen captures (such as Jing)
  3. Allow uploaded files that demonstrate reproduceable issues
  4. Allow different "Access Levels" for different bug types. View and Modify permissions should be settable based on User ID, User Group, etc... (Some types of bugs should not be public)
  5. Allow different access levels for content within one bug report. For instance, a customer may want a bug report to be public and searchable, yet attach Private Access Level to proprietary uploads.
  6. Allow collaborative involvement for adding content to Bug Reports, where any member can upload additional information (given they have Modify Access Level privileges)
  7. The Homepage of the Issue Tracker should be accessible and visible through ni.com (maybe IDE too, such as a GSW link)
  8. A more detailed Bugfix Report for each LabVIEW debut (cryptic subject lines on the current Bugfix List is not helpful)
  9. Specific fields such as Related Bug Reports and Related Forum Posts that allow easily-identifiable cross-referencing.
  10. An email-based alert system, letting you know when the status or content changes in bug reports of interest (:thumbup1:)
  11. Same username and logon as the Forums
  12. Bonus: Visible download links to patches and other bug-related minutiae

 

Additional Thoughts

 

  • I have used the Issue Tracking platform used in Betas, and the exposed featureset is too lacking to fulfill the spirit of this Idea
  • I realize the initial and ongoing investment for such a system is high compared to most Ideas on the Exchange. Both issue tracking and economics are sensitive issues, but the resultant increase in product stability and customer confidence makes the discussion worth having.
  • Just to clarify, a perfectly acceptable (and desirable) action is to choose an established issue-tracking service provider (perhaps one of NI's current web service providers carries an acceptable solution?), not create this behemoth in-house.

 

BugFeature.png

(Picture first spotted on Breakpoint)

 

Generally: you are voting for a platform that eases the burden of Issue Reporting, additionally offering a means of Issue Tracking.

 

My suggestions are neither concrete nor comprehensive: please voice further suggestions, requirements, or criticisms in the Comments Section!

I am finding labview execution speed to be extremely slow.  I seem to recall documentation indicating that labview passes all data/variables by value by default.  I think that if labview would default to passing data/variables by reference instead of by value, then execution speeds would greatly improve.  Is there an option that would allow one to change this?