LabVIEW Idea Exchange

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

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 am a big fan of the built in logging added to the daqMX library, and would like to see NI build upon this model of adding common dq programming tasks without the need to do anything more than flip a few properties on a task.

 

The set of properties I would like to see is a section on task.read called processing that would apply signal processing to the incomming signal prior to reading.  Some examples would be filtering (low, High, band, selectable windows....) FFT, sthresholing, edge detection (returns booleans instead of analog signal).  If this was implemented in a slick way the driver could possibly offload the processing to a FPGA folowing the cRIO model.  Since this is a property added to a task, the task could decide if there are hardware resources avaliable or software processing only. 

 

The programmer can simply select the processing for the task type and now have a daq task with built-in signal processing simplifying the code development cycle (IMHO).

 

Hi,

 

 the "Search 1D array" function returns only the index of the fist item found. However some times, it is needed to get all the indices of the elements that match the element the we are searching for. I think it will be nice if this vi returns all the indices that match the element we are looking for.

 

g.gif   

 

to become like this

 

srcharay.gif

Currently when replacing an element/subarray using Replace Array Subset, you are only able to replace an element that is of lower dimensionality where one dimension is unity.

For example, given an array of size 100x3, it is only possible to replace one row at a time 1x3.

It would be helpful for me to avoid using a loop and be able to replace a subarray of dimension Nx3 where  100 > N > 1.

 

I may still have to use a loop to completely fill an array, but the loop could potentially run many less iterations.

This comes up for me because I read the FIFO buffer from a device and generate a chunk of data at once.

I then need to insert this data into a preallocated array (avoiding buildarray or similar due to the time critical nature of VI).

 

If I have a 1E5x3 array that I want to place into a 1E8x3 array, why waste time with a loop to do each row at a time (remembering that the loop is still much faster than buildarray)?

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.

We are all used to creating arrays with a for loop.  I have always wondered why there wasn't a simplier way to do this.

 

What about simplfying array creation with a more advanced Initialize Array.  Add another terminal that is just "increment" or "delta".  In the example below a double array of length 1000 with a starting value of .004 and an increment of .004 per element.

 

newarray.png

It'd be usefull to explicitly see the figures as they look like coded in different FP formats and flavours. The main set of FP format is:

 

 

Floating-point precisions

IEEE 754:
16-bit: Half (binary16)
32-bit: Single (binary32), decimal32
64-bit: Double (binary64), decimal64
128-bit: Quadruple (binary128), decimal128
Other:
Minifloat · Extended precision
Arbitrary precision

 

The new VI(s) would be greatly welcomed.

Hi,

 

Can any one help me in converting Date/TIme(String ) to floating point number and vice verse. I have attached a file which contains the details.

 

regards,

nikhil.

It would be nice to have an VI to delete groups and channels in .tdms files with all data belonging to the channel and group.

 

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

Add field witch shows the size of the array.

 

new probe watch window

 

So simple but so helpful Smiley Happy

Hi,

I would recommend bipolar logarithmic scales in graphs or a new graph-type. This one: http://www.didactronic.de/Halbleiter+Dioden/diodenkennl2.gif is not log-sclaed, but it woul make sense. 

Sure the log of negative values is not defined (and I think it is calculated to plot the data), but to plot measured data it would be great to calculate it like:

 

measurement / abs(measurement) * log (abs(measurement))

 

I could do this manually, but I prefer to have the real values on the scales, and not the log(measurement)-Value.

 

kind regards

When you or two numeric numbers it does a bitwise or.  The same should happen when using Or Array Elements, but it is not supported for numeric arrays. I see no reason why it shouldn't work just the same?

 

test.PNG

The updated to IEEE 754 adds a half-float and a platform independent quad float. We have a project where a data source will be giving us values in half floats (16-bit). It would also be nice to support quad floats (128-bit) since the current EXT datatype is platform dependent.

I would like to see the call chain information of the Errors generated by the LabVIEW primitive VIs. In case of the user generated errors As a standard practice we add the Call chain information as part of the source string.

I'd like to have the ability to wire a cluster directly to the selector.  Values of the Cluster could be wrapped with brackets [], or {}, and elements separated by semicolon ; to make the various separations easier to distinguish..  

In audio industry I always use logorathmic frequency (X) axis and often also logarithmic Y-axis. Like from 20 to 20kHz but not linear as in Labview but logarithmic as in Bode-diagram.

 

Today, labview doesn't understand these. They can show them if you select that your graph-window to have logarithmic axis. But the waveform-type itself doesn't. In the waveform type you have f0, df and Y. But df is not a constant if you have log axis.

Also, the limit-testing methods doesn't understand logarithmic axis either.

 

I would appreciate it if in a future version of Labview it will allow the use of logarithmic axis.

I made an improved version of String Subset:

 

If offset is non-negative, the returned string will start at the offset# position in string, counting from zero.

If offset is negative, the returned string will start at the offset# character from the end of string.

 

If length is given and is positive, the string returned will contain at most length characters beginning from start (depending on the length of string).

If length is given and is negative, then that many characters will be omitted from the end of string (after the start position has been calculated when an offset is negative).

 

It would be nice if it could work like this by default (no additional inputs needed) 

Add Non-Uniformly Spaced Vector Interpolation to Mathscript or Labview

(Similar to Matlab's griddata function) so the attached data set can be plotted on a contour plot in labview:

 

 

The Timing palatte is looking bad with all thes gaps.  A simple fix would be to fill these holes with useful functions. I'm proposing 3 and attaching 2 from my re-use code. (I may re-create the third later)

timing2.PNG

 

Time to XL.vi (Attached): and its inverse, XL to Time.vi

12:00:00.0 AM Jan 0, 1900 is a pretty common epoch (Base Date) for external programs and converting from LabVIEW epoch shows up several times a year on the forums. and Time to excel has a few solutions to threads under its belt.   Moreover for analisys against external data from other enviornments you are often using Access, Excel, Lotus... All share the same epoch (and Leap year bug) in their date/time formats.  These vi.s have been pretty useful to me although the names may change to avoid (tm) infringements

 

Time to Time of Day.vi (Attached) has also been in my arsenal and proves both valuable and get on a few threads per year on the forum.

 

The gaps in the palatte make it a perfect fit

timing.PNG

Download All