LabVIEW Idea Exchange

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

Often it is desirable to know if a control on the connector pane was wired or not. At present this can only be done by checking the value or by making the control a variant and checking if an error occurs when converting it to the proper type. Both of these have issues. Using the default value does not always work because you may need to take different action it is is truly not wired. If the control is an ENUM it would mean you have to include some value like "Invalid" in the list. This can cause confusion when using ENUM constants because it would appear that the ENUM has another value. The variant approach is problematic because it defeats automatic type checking by the compiler. It would be best if we had a simple property node on the control to indicate if it is wired or not.

I know that I can Have multi plots on XY but I can not find a way to have a single X axis many XY axis graph without respecifying the X axis, this is very memory and process intensive.

I would like to build an array of clusters where each cluster is a time and several variables to have an easy way to make this type of graph.

An example is an application where I had a reactor where the history was build at uneven time samples (1-5 seconds between for several days) there were 50 process variables, I would have like to build a XY graph and displayed this easily but endeded up with an array of clusters of XY arrays- not too nice.

Why isnt this represented as a single array of records (Time and vaiables) this maps to how data is sampled in the reactor.

 

Can this already be done?

Inspired during discussion in this nugget of Darren:

 

In my opinion there are a lot of good reasons to inline nearly every VI, which is reentrant. I see only three reasons for not using inlining:

 

1.) use recursive code (which I seldom use)
2.) call the reentrant VI dynamically (which I use more often than recursion, but still I use this seldom)
3.) you don't want to recompile every time, when you change the reentrant sub-VI

 

Of course you can disable inlining, if you want. It is only enabled after you set the VI reentrant. This behavior could be controlled via LabVIEW options.

 

Regards,

Marc

 

Perhaps this could be handled by having an "exit" out of a For Loop

but I think it make more sense to have the

option to have While Loop Auto - Stop if a wired array input has indexing enabled.

This would save diagram space to catch an infinite loop.

 

Either a right-click on the "Enable indexing" icon of the array input or a right click on the Stop if True or Stop if False icon to

change it to Purple or Orange to indicate the while loop is also enabled to stop when input array has reached its array size.

 

 

Dear All,

 

The toggle bit function is very essential to toggle the flags set in the progam.

Right now we have to doit in inderect manner shown in attachement.

 

It will be very useful when we have a bit toggle boolean function. Not just inverting bit it has to toggle specified flag.

 

If it is already availble in any other form please let me know.

 

 

Regards,

Y.Stalin

Hi,

it would be a great idea to choose an option to put a LV icon on the taskbar when LV is minimized (when running a program), also try to eliminate the 2 windows when open an running a "vi", with one is too enought ...

Thanks !!!

My idea is to enable access logging for the Application Web Server.

 

In this way access to a web service can be analyzed which is also useful in debugging timing or performance problems of your application. To facilitate easy analysis, industry standards like the "common log format" or "combined log format" (link) should be used, then analyzer tools like AWStats can be used. The Appweb Embedded Web Server, which is the core of the Application web server, does already support logging so getting this running should be easy.

By using the VI-server reference "pane" > you will obtain a array which contains a reference for each used element. This VI-server reference can be wired in any sub-VI, to check for example the state (value) of a element. Into the respective sub-VI the array function "Array Index" can be used to check the value of the element. Everything will work fine, until you put another element into your frontpanel. At this point, LabView change the order of the reference array. Now the user wish to have a function, to edit the reference number of each element (like "Change order of elements in cluster"). The problem remains, even if the new element will be deleted.

How many times have you created a sequence structure with two milisecond timers around a section of code to see how fast it operates.  Now the VI Profiler works great if you are only looking at whole VIs, but there are lot of cases where that the VI level is not granular enough.  A great feature would be a Benchmarking Probe.  It would work similar to a Breakpoint. It would have a Benchmark Probe Manager similar to the Breakpoint Manager in which you can enable/disable/delet benchmarking probes (very useful when you need to quickly see if the benchmarking code itself is adding excessive overhead).

 

Unlike a breakpoint or a probe, it requires two icons a Start/Stop of where you want to take a measurement. I would imagine that there would be two ways to insert the benchmark probe, one method would be similar to how insert a Breakpoint (in fact you could simply use the breakpoint tool and just add a right click option to convert to a benchmark probe). Once you clicked on the Wire that you wanted to "Start" the benchmark, the mouse icon would change to a the "Stop" benchmark icon and you would choose the place to Stop the benchmark. Of course if those two points weren't "In Place" and "Sequential" with each other, LabVIEW wouldn't allow you to place it.

 

Another method could be simply highlighting the area of code you want to benchmark and then right-clicking on the hgihlighted section, you would get an additional pop-up menu item for adding a benchmark, this would automatically place the two benchmark icons.

 

The Benchmark manager would give options of viewing the Total Time, Average Time, number of Runs in miliseconds, microseconds,etc in addtion to being able to enable disable, delete benchmarks.

 

benchmark.png

I have a Group of numeric values.Such as

1.0

0.866

 0.5

0.2

0.1

0.0

I want to create and update a drop down menu so a user can select a numeric value(Direct calculation,do not Converted form a string), a bit like a combo box.

 

DBL to DBL.png

 

Hope to have this controls in the labVIEW!

 


Is there any tool to compare Multiple VIs (more than two i.e. about twenty) at a same time.How can I compare more than two VIs at the same time. I am an Lab Engineer I have to check assignments submitted by students and I want to know how many of them are copied from each other. Labview compare VI can only compare two VI at a time while I want to check about 30 VIs at same time.

Cuando tenemos en funcionamiento en tiempo de desarrollo un VI, que no tenemos activada la barra de herramientas de debuger, no es posible parar si ejecución, esto es especialmente grave cuando hay un error de programación y estamos en un bucle sin fin, o otro caso mas grave, es cuando un vi que tenemos como modal esta abierto en el tiempo de desarrollo, pero no esta en ejecución, por que no ha sido todavía llamado por el programa, este vi se pone en primer plano, y como no tiene código funcionando no tiene posibilidad de salida, con lo que impide cualquier acción sobre cualquier otra ventana, inclusive la del proyecto.

 

Seria necesario que la interrupción, del ctrl+., o cualquier otra estuviera vigente siempre, para poder detener la ejecución en tiempo de ejecución.

How to create a standalone executable in LabVIEW 2009 Professional Development System?

The attached screen shot contains the screenshot of the mesage I get when I attempt to run the exe created.This may help you suggest a solution.

Hi,

 

I would like a native LabView VI that can read comma delimited data (.csv) with double quotes into LabView. It needs to follow all the rules for csv files. A list can be seen here.. http://en.wikipedia.org/wiki/Comma-separated_values

 

And, NO the spreadsheet string to array function doesn't work.. There can be commas that are not separators, and line feed is not always equal to a new rows in the output array. (There can be line feeds inside cells..)

 

I tried to implement by using regular expressions and it seemed to work fine, BUT it was way too slow, making it useless. The implementation for regular expressions in LabView seems very slow, or maybe I used it the wrong way.

 

Thanks,

mrsound

Many of my projects are video inspections with the captured images streamed to an .avi file.  With increase use of digital cameras with non-standard frames/sec (fps) or position-based image captures where the fps rate is determined in the field, the fps often cannot be set properly before the images stream is captured.  Unfortunately, the fps value can only be set when the original .avi file is created (IMAQ AVI Create) and cannot be changed once set.  There are utilities that can change the fps of a .avi file but so far I have not found easily callable exterior routine to perform the change

 

My simple suggestion is to either allow the fps to be set when the file is closed (IMAQ AVI Close) or better yet create a vi that would allow to change fps value for an existing .avi file

Currently, there is no access to the User Event references in the Dynamic Events Registry reference.  If you have a lot of user events, you either have to bundle the references together into a cluster, or have many wires through the program.  My proposal is to add a "Registered User Events" node that allows the programmer to "unbundle" the registered user events references.

 

Also, the Register for Events node should change the User Event label to the user event name when a user event is wired to it.  Finally, there should be some mechanism to access/control the event queue programmatically, perhaps an "invoke node" coupled with the ability to create a reference to an event structure.  This invoke node would allow the user to flush the event queue, or perform other operations on it, etc.

Download All

Will LabVIEW run in Windows Azure? If not, why not?

 

What is the compatibility of LabVIEW with Azure Cloud Computing.

I'd like a new property for an Indicator, which enables me to reduce its display-update rate to something less than the source-data update rate.

 

Reasoning:  When working with robotic systems, I often find myself adding large indicators to the Front Panel so I can get an easy to see indication of some new sensor's value (from across the room). 

This indicator is not necesarily needed on the final system so I don't want to spend a lot of time incorporating it into the BD.

 

The problem is that if a sensor is updating at 100Hz (like the ultrasonic sensor on the Robotic Starter Kit) you can burn a lot of CPU cycles trying to update a large bar graph with every data update.  In fact, on my system I just get a big flashing blob.  I invariably end up implementing some strategy to only display 1 in every 25 updates.  And in the process, I end up messing ip my neat BD layout.

 

It would be great if there was a built-in display property to take care of this for me.  See suggestion below:

 

The throttling property could be the minimum update interval, or the maximum update frequency, but the assumption would be that the GUI would just throw away any data updates that occured faster than the required display update rate.  In the example below I indicate that I only need 4 updates per second (ignoring the bulk of the 100Hz range updates)

 

 

17141i01E7176DA5FDA1D4

 

I was considering submitting this in the Real-Time ideas forum, but it seemed applicable to any "fast" data acquisition system.

 

 

I've searched the Idea Exchange and found a couple of suggestions that are similar, but not exactly what I propose.

 

Specifically, I've spent considerable time tracking down what I would call a devlopement  environment bug.  The behavior of the 'bug' was addressed by the developer of the Search and Replace function in this post from the spring of 2007, describing how the algorithm works, and why it's not technically a bug.

 

He indicated that one 'solution' would be to add a flag to ignore arrays. I suggest that this be added.

 

My problem: The Search function will traverse into an image data cluster and then proceed to repeatedly search the image and mask arrays for a string that would not exist. The development performance hit was is significant and searching of a numeric array representing an image for 'words' in the context of find and replace is inconsistent.

 

U8 Search Option.png

 

In the VI Properties the VI Editing/Development Time can be displayed similar to the Microsoft Word and it should be accessed programatically, so that the effective developement time can be measured .

 

 

image.JPG