LabVIEW Idea Exchange

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

 

When it comes to integer addition, subtraction I would like to have one more bit for input and output. This will help me to achieve N byte (width) addition or subtraction. Please see the diagram for details.

 

 

 

Some times when there is an overflow, I would like to have saturated value or sometimes modulo value. With the current behavior we get modulo addition only. if we have this bit output, we can even decide the output to be saturated value(FF) or modulo value. 

 

 

Since basic arithmetic functions are polymorphic in nature. we can add this two terminals as optional terminals.  

 

New Idea.png

If you have a log graph that has a range from 10 to 1000 there is only one label (100) between the min and max.

 

I have found this to be confusing for the end user since the minor increments change from 10 to 100, having labels would clarify the data for them.

It would be nice if we could programmatically set the inclusion of the upper and lower limits in "In Range and Coerce" function by having two additional input terminals in this function. This two extra terminals should be optional. With a value connected, the context menu option should be override.

 

Now it's possible to do it with a case structure. We may need to have up to 4 cases to cover all possibilities.

Please implement a way to generate reports in ODF (native format of OpenOffice) as it is a file format everybody can read (.doc is not because you must buy Microsoft software).

 

 

If you do that, programmers will automatically be able to generate PDF because OpenOffice has a dos command to convert any ODF document to PDF.

I would like to see a LabVIEW implementation of the Matlab function which approximates a floating point number to a ratio of two integers, within a given tolerance.

From Matlab help:

 RAT    Rational approximation.
    [N,D] = RAT(X,tol) returns two integer matrices so that N./D
    is close to X in the sense that abs(N./D - X) <= tol*abs(X).
    The rational approximations are generated by truncating continued
    fraction expansions.   tol = 1.e-6*norm(X(:),1) is the default.
 
    S = RAT(X) or RAT(X,tol) returns the continued fraction
    representation as a string.

 

Some discussion and example code of how to implement in LabVIEW is here: http://forums.ni.com/ni/board/message?board.id=170&thread.id=18012&view=by_date_ascending&page=2

 

This is being discussed lots.. There are replies like, each and every element can't be assigned with property of its own and it may require a huge memory..!! But, there is a property called Index Value which when written with Zero, it returns the Value of the Active element ( The Element visible or last edited element).. And this will be very helpful if just the Index Value can be assigned by us and we get the necessary Value we require..

 

array element reference.png

 

This will be of huge help and save a lot of time when working with Referencing and array whose Data Type is a Variant (Unknown)., Eg: Unknown Cluster..

 

I personally believe that this will be possible.. Because, if Memory and all such matters, there wont be a property like Index Value and get its Value alone. We just need to Extend this.. It will be useful in lots and lots of projects.. :):)

Background:

LabVIEW has had a recent proliferation of datatypes that essentially store the same type of data: an ordered sequence of numbers.  We now have Array, Matrix, Waveform (+ Digital Data/Waveforms), Signal (!) and Image datatypes (and perhaps one could also include Scalar).

 

The Benefits:

Each datatype is optimised for its own particular application, making it simple to perform a particular set of operations on the data.  However each appears to be developed independently.

 

The Limitations:

Each datatype has different restrictions on representation, dimension (typically only 1D or 2D), and "metadata", and most built-in functions will work on only a small subset of types.  Accessing the data as a different type usually requires copying the underlying data, with consequent limitations on speed and especially memory.  I notice these limits especially in three situations:

1) I want to use a function written for one datatype on another datatype (for example, use the Wavelet Denoising function (or even simply Square Root) on an Image),

2) I want a way to work easily with 3D images (most of the existing 2D image processing functions would have simple extensions to 3D),

3) I want to write routines that will adapt to both 2D and 3D arrays (say deconvolution).

It is certainly possible currently to work around all of these things, but it seems there should be a more cohesive approach.

 

New LabVIEW developments:

3 new developments in recent versions of LabVIEW show potential for addressing this issue: Classes, In Place Element Structure, and Data Value References (DVR).  However because they are all ideas "in development", and added on top of the existing LabVIEW rather than under the core, they only hint at possibilities rather than provide them.

 

A Possible Solution:

A low-level generic Array datatype from which all these other types are "inherited", therefore providing a single common way of addressing array-type data.  It seems like this datatype could resemble either a Class or a DVR.  It would have various attributes associated with it:

- Dimension and Size - essentially specifies the way in which indices address the array (probably always stored as a 1D array underneath)

- Metadata - e.g. t0 and dt of Waveforms, name etc of Signals, border size etc of Images, ...

The In Place Element Structure would be one way of choosing how to access the information in this variable, although it may be possible for the array information to be directly available.  Hopefully something like this would also enable the ability to "overload" existing routines, for example adding a 3D convolution to the 2D and 1D routines that already exist.

 

Some of my earlier thoughts are here, here and here.

 

PS - hope no-one said Ideas here had to be practical or reasonable!

 

Hello,

 

Burst random signal is commonly used for vibration test with shaker. LabVIEW has some random signal generator in original functions, time series analysis toolkit, but not burst random signal. If LabVEIW does not feature burst random signal, it is difficult to suggest shaker vibration testing with LabVIEW.

Now we have to compete with other NVH vendors such as LMS, B&K, however lacking of basic functions might be kind of obstacle for DSA business. Even Ono Sokki and A&D who are automotive testing supplier in Japan can offer it, NI should do to meet customer's expectations.

 

Saku Kakibe

LabVIEW should support loop unrolling...

 

For those who do not know what loop unrolling is (from wikipedia http://en.wikipedia.org/wiki/Loop_unwinding)

Loop unwinding, also known as loop unrolling, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of its binary size (space-time tradeoff). The transformation can be undertaken manually by the programmer or by an optimizing compiler.

 

The goal of loop unwinding is to increase a program's speed by reducing (or eliminating) instructions that control the loop, such as pointer arithmetic and "end of loop" tests on each iteration;[1] reducing branch penalties; as well as "hiding latencies, in particular, the delay in reading data from memory".[2] Loops can be re-written instead as a repeated sequence of similar independent statements eliminating this overhead.[3]

 

Example with textual programming language:

 

int x;
for (x = 0; x < 100; x++)
{
   delete(x);
}

 

Becomes:

 

int x;
for (x = 0; x < 100; x+=5)
{
   delete(x);
   delete(x+1);
   delete(x+2);
   delete(x+3);
   delete(x+4);
}

 

Who is with me 😉

Using the 3D Surface Plot in LV2011 it is possible to switch on or off either "Surface", Mesh" or "Normal".

Being in the need of the surface normal angle for some calculation I was told that this data is not accessible through property nodes.

 

I would really prefer accessing this data instead of calculating it twice!!!

 

 

And by the way: Displaying large data arrays in 3D Plots takes computing power running on one core only. Wouldn't it be possible to have a parallelizing option here...

I assume that the LabVIEW sort algorithm is a comparison based sorting algorithm (and my guess is that they use a form of mergesort & insertionsort, and maybe better, timsort). Anyway, for arrays of integers, string this works perfectly. For clusters and classes the implementation does not work that smooth since the sorting algorithm will always sort on the first parameter in the cluster, respectivily class. For this reason it is in my opinion that the sort VI should have some kind of ability to edit the comparison on how the sort VI actually sorts. In many languages you have the ability to do this but not in LabVIEW. This would be very usefull for when sorting classes and clusters. 

 

A example of how this should be implemented is as followed. When the sort VI has a non-standard LabVIEW datatype as input, one should be able to add a reference to a VI (or add by a menu), with 2 inputs and 1 output. In this VI the user needs to define the rules which apply to the datatype of the input. In the end the VI will output a boolean, telling if input 1 is greater (depending on which sorting algorithm LabVIEW uses) then input 2.

Well, I think the title says it all...

 

There are many threads on the NI website about this certain topic, but none of them really shows how to deal with this "problem" correctly!

 

It is a very common task to synchronize a AI signal (let's say 0-10 V from a torque sensor) with a Ctr signal (e.g. an angular position of a drive which causes the torque). How do I correctly display the torque over the drive angle in a X-Y graph?

 

It would be great if NI offers a reference example in the LV example finder, how to solve such a task elegantly and efficiently.

 

I'm not sure if this is the appropriate place for this suggestion, but anyway...I would love to see this in the LV example finder!

 

Regards

A:T:R

The "Std Deviation and Variance.vi" of the Probability & Statistics" Palette:

 

Screen Shot 2014-12-30 at 12.06.14.png

 

does exactly what the description says.

Wait!

What is that "Weighting (Sample)" input THAT IS NOT A REQUIRED INPUT? And more importantly, what is its Default Value "Sample" doing?

Let's take a look at the doc:

 

It computes variance = 1/W*sum((X_i-mean)^2) where the X_i are the array elements (total number N) and mean is their average and:

 

W = N when weighting = Population

W = N - 1 when weighting = Sample (the default).

 

I am not a statistician, but I would be surprised if many in the engineering and scientific fields are using the second definition.

If you have a large sample, the difference is minimal.

In the other cases, all bets are off.

In particular try N = 1.

 

There is a very verbose mention of it in the new source of all knoweldge, wikipedia, at the end of the article, but it has been proposed to move it to some more specialized article. In other words, nobody cares, unless they are statisticians. In this case, they'll use anything but LabVIEW to analyze data.

 

So either set the default value to "Population" OR make the input required AND the doc much clearer about the consequences of the weighting choice.

 

As requested in this thread (http://forums.ni.com/t5/LabVIEW/Picture-variable-to-image-IMAQ/m-p/1626254), it would be nice if there were a function that could convert the picture type that is output from the Graphics and Sound toolbox into an IMAQ image type. 

 

Currently, the necessary steps are to use a trio of Picture to Pixmap, Unflatten Pixmap and then IMAQ ArraytoImage or IMAQ ArraytoColorImage or to save the file as a .bmp and then loading it as an IMAQ image.

 

Thanks!

 

In a complexe project, when you make Packed Librairie (lvlibp) or dll it is very important to compil your lvlib in a good order.

(from lvlib with less depencies to lvlib with more depencies)

 

But we don't have a way to see the lvlib hierachy

(we have only vi hierarchie, class hierarchie)

 

 

Hi Friends,

 

When I try to have the wire lable for every wires that I used in block diagram, every time I need to use >....> . Why can we have a default symbol with the control lable included when we insert an label into wire.

 

Regards,

 

Ganesha Moorthy A

Back in my Pascal days I could access string as an array. This made processing of data presented as a string much easier.  In Labview I have to convert the sting to an array then process the elements. This would not be too bad if their was ASCII option in the radix for a unsigned integer or case structure

 

 

Up to LV 2010 the "Nonlinear Curve Fit.VI" has an Input for the data weighting. For sure this could somehow be related to measurement errors of the data, but as this is not documented and not for a daily user well known it would be nice to have an additional instance were the input is not the "Weight" but the "Std. Dev. of y".

In a similar way it is not totally straight forward to calculate the standard deviation for the "best fit coefficients" from the "covariance matrix". So an additional output "Std. Dev. of best fit coefficients" would be very helpful.

Right now in labVIEW the plots can be exported into excel and can be saved into different  image formats (*.png,*.jpeg,*.eps,etc,.). In addition to the other properties it would really a very cool and excellent option to save the plot data as a LabVIEW figure with an extension "vifig" (*.vifig). The idea here is when the  plot is saved as LabVIEW figure the tester with the help of an interactive tool or some thing like this reload the *.vifig to view, change the graphic object properties , maipulate legend, xaxis label, yaxis label so on... and finally save.

 

Let's assume a situation where the user wants to analyse the data (zoom in, zoom out, find delay etc.,) and change few properties the the data who doesn't know LabVIEW and he needs to use another programs like origin, excel etc. This could be done very easily witht he help of an interactive tool. Unlike LabVIEW, the softwares like MATLAB, Origin has such a pretty useful option. 

 

Thank you.

I'd like the Equal To Zero? and Not Equal To Zero? primitives to support the error cluster wire.  The node would look at the Error Code and compare it to zero, resulting in a Boolean accordingly.

 

Error_Cluster_Zero.png

 

Thanks,

 

Steve K