LabVIEW Idea Exchange

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

My idea is simple... It could be helpful to add automatically a connection (input/output) when we draw a wire through a flat sequence.  At the moment, we have to connect the wire on the left side and than, passing through the flat sequence to the right side...

I Have already designed a program in Visual studio 2008 to control the movement of some linear stages.  In the future we want to create the program in labview to integrate it with our other program's which run labview.  Is there a tool which can convert the VS straight to a labview VI?

Hi

I like that the labview suport to show the hided control which is member of cluster, 

 

It would be nice to have an option in XYgraph that could allow the user to define some set of spatially related points (or cluster in statistics) by drawing some boundaries with complex shapes using the mouse. Here is the problem that brought me to write this post. Let's say that we have a series of data {x1,x2...xi...xn} that represents the duration of time between two adjacent heart beats. The pointcare plot is the representation of the points [xi,x(i+1)] and that can be achieved to by the XYGraph function. Using this graphic, it is expected that adjacent intervals with almost similar values will form a cloud (circular, eliptic or with more complex shapes) centered around the average values of the xi. Now, unusual changes between adjacent xi values in the time series (lower or higher x(i+1)) will result in points outside of the primary cloud. This is an easy way to identify abrupt changes in a time series.

 

The step I'm blocked with the following. After I used the XY graph to plot the [Xi,X(i+1)], I would like to use the mouse the draw the border of the primary cloud and extract separately the indexes of the point in or points outside the border. 

 

Again, I really appreciate your help for that.

 

Olivier 

I do not know if this is a new idea, but is so hard to add new fonts to LabView.  I think Labview should use the fonts stored in the computer instead of a fixed list of previously selected fonts on FP.

 

If we add a new font to the computer, this one should automatically appear on the list of fonts available to use.

 

FP

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.

We just bought LabVIEW 2010 and I noticed that there is no utility avaible for converting a function panel (.fp) to a VI.  When will this utility be available?

When you hover (mouse) over a string control or indicator on the front panel of a VI, the tool automatically changes to the positioning tool when the cursor is over the border of the control or indicator.  Then, the tool automatically changes to the labeling tool when you hover over the interior portion of the control or indicator.  This behavior is perfect because you don't have to manually change tools to be able to enter or edit the text in the control or indicator.

 

I have noticed, however, that there is a different behavior for owned and free labels/captions on both the front panel and the block diagram as well as string constants on the block diagram.  If you hover over the border of these types of objects (both labels and string constants), the tool automatically changes to the positioning tool, as expected.  However, when you hover over the interior of these objects, the tool never changes to the labeling tool.

 

It would be really nice if labels and string constants behaved just the same as string controls and indicators on the front panel.  In other words, when hovering over the interior of labels and string constants, the tool should automatically change to the labeling tool.  You can currently access the text in labels and string constants by double-clicking on them, but it would be fewer mouse clicks if the tool automatically changed.  In addition, the behavior between free/owned labels/captions, string controls/indicators, and string constants would be consistent.

I know that code that is disabled cannot be properly cleaned and processed by labview but it would be nice it control-b at least removed loose ends on wires in the disabled structures.

Wires are not part of the z-plane ordering and so you cannot put things behind wires.  "Send to back" and "Send to front" aren't options when you click on a wire.

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

 

Add support for array calculations in Formula Node.

Seems not that much of an effort, since LabVIEW is very array based.

Now only scalars can be dealt with.

 

(Mathscript is an add-on that can do this, however I would like to see this as base functionality).

It would be useful to be able to create a new project containing just a selection of VIs, without having to either:

1. Copy all of the VIs and just use the ones that are necessary - this is very wasteful of disk space

2. Manually go through the hierarchy view looking for and noting the names of the VIs, globals etc and then copying them into a new project area - this is very costly as it takes a long time.

 

It would be great to be able to select a VI to clone, show the hierarchy and then say right click on the top level VI and have the option to CREATE A NEW PROJECT BASED ON THIS HIERARCHY. Even better would be the additional option to deselect any VIs that you know are not needed, before creating the new project

 

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?

It is not uncommon to have to restrict numeric entries to accept only either odd or even values. It would be nice to be able to specify that behavior, for example in the Data Entry tab of the Properties dialog, so we don't have to write some code to enforce that restriction, with the Response to value outside limits to either round up or down. This would apply to integers only.

 

I do a fair amount of Pipelining and it would be cool if I could Offset the Input Shift Register from the Output Shift Register.

The default would be to keep them aligned but a right - click would give me the option to offset the input or output Terminal. I think it would be bad form to allow crossing the terminals between multiple Shift Registers so the top Input terminal would correspond to the top Output terminal.Offset Shift registers.JPG

 

 

I've recently run into an issue when using external code (ActiveX to be exact) where I needed to explicitly call garbage collection in a similar fashion to how it's done in C# (C Sharp).

The "Request Deallocation" function isn't true garbage collection.

 

A C# example would be:

someComObject = null;

GC.Collect();

 

 

There are situations where it is neccessary to explicitly call garbage collection.

 

 

I Hit on a post today that required a Queue function "work-a-round"

 

The Poster simply wanted to reset the property "Queue.MaxLen" and that property is quite buried.  (and look at the bug in probes on queues where "number of elements in queue" must = "0").

 

One solution was: ReSizeQue.png

 

A better (IMHO) solution would be to drop the "set" method of "Get Queue information" function on the BD and solve the problem with a single call of a vi.lib object.

 

Multi-Threaded Interrupt Management Capabilities in LabVIEW

 

Background

 

            Event interrupt management works well in LabVIEW if ones’ programme is small and developed within a single overall Event Structure, encapsulated within a While Loop.

 

            The problem comes when the software architecture demands a separation between the User Interface management (interrupt) functions and the sequential and looped programme structure (executable) components of the code for modular programming. In this configuration, waiting for Events to occur before code execution, pausing code execution (once started), stopping code execution or even aborting code execution (with the ability to close the application down cleanly prior to code exit) become challenging operations to implement within LabVIEW.

 

            This software architecture design challenge is exacerbated, if branching within the looped programme structure (executable code segment) is also a requirement.

 

Two Key Requirements

 

            Ideally, the following two capabilities, if implemented within LabVIEW would solve all of the aforementioned problems:

 

  1. To be able to interrupt a While Loop, pause it and if appropriate reset the [i] loop index back to zero. If controlled via the Event structure, this would make both Event structures and While Loops compatible with each other, which is not the case today.
  2. To be able to interrupt a Flat Sequence or Stacked Sequence structure and break out at any individual “Frame” in that structure, based upon a specific Event interrupt or even an Abort, which when controlling hardware can be a critical request that requires immediate action! Today, it is not possible to break out of a Flat or Stacked Sequence structure, one has to wait until the complete Sequence has executed.

 

Current Tools

 

            Current LabVIEW, if used with care, can overcome to some extent the current While Loop and Flat Sequence software architecture limitations, but they are very cumbersome to use and require an "eagle eye" and good software tracking and debugging skills!

 

While Loop with Pause and Stop buttons

 

Set Occurrence

 

Wait on Notification (Front Panel activity)

 

A not yet fully complete explanation of the key multi-threaded programming issues is attached. If it requires updating to make it complete, do let me know.

If I press ctrl+f while the root project is highlighted I get the "Find Project Items" window. This is all well.

 

However, if i press ctrl+f on a folder in the project, the "Find Project Window" is also opened, with the same search scope as when the root project is highlighted. To me this is not the expected behaviour. There are two other things that would be more relevant:

1. Perform an project items search (recursive) within that virtual folder.

2. Perform a Find operation such as the one we get when we press ctrl+f on a BD or FP, with the search scope set to "Selected VIs" and with the VIs in the virtual folder (recursively) set as "Selected VIs to Search".

 

My suggestion is case 2, perform a selected VIs seach directly from the virtual folder.