LabVIEW Idea Exchange

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

There are some analytic software that adds connections to Excel.  JMP comes to mind - it allows 2-way data transfer, and allows excel to run some of JMP's analysis routines.  Those packaged routines are vetted by phd's and can't be quickly damaged by a tired user. 

 

This details how JP morgan lost a few billion dollars because they were using Excel for hard math, and someone had an error in an equation.

 

Excel is likely more common than both Javascript or SQL for use in the planet. 

 

It might be very powerful to be able to import an excel spreadsheet, specify inputs, specify outputs, and get it translated to "g".  This could allow it to run thousands of times faster, and the visual language would allow a technical vetting that can be very hard for humans to do on hundreds and hundreds of pages of tables of numbers or formulas. 

 

This would be a motive for banks like JP Morgan (or their peers) and their multi-billion dollar business units to use LabVIEW.  Stunning speed, optimization, and scale.  Stunning accessibility to error correction.  Packages that, once wrapped, stay wrapped, but can plug in where they need to.

 

Other add-in or connectors for Excel:

It is unlike the TDM-importer in that it sends data to LabVIEW, the data is transformed or processed, and a numeric, text, or image result is returned to Excel.

In the "R" language, Hadley Wickham is a superstar.  (personal, git)

 

One of his packages is "lubridate".  It has a stack of very useful time/date handling utilities.  They are most useful for "speaking human" or in average-person-facing user interfaces.

 

You should look at the utility here.  Things like elapsed time in days, or holiday handling built-in.  That might be useful to have in a clean and native package.

With the release of labview 2016 the issue of cross-platform support for video becomes critical.

 

As stated in the "features and changes" page: "NI no longer provides the 32-bit version of LabVIEW for OS X."

 

Up to now it was possible to use Christophe Salzmann's QTLib to work with video. This was great software because the very same "universal" VIs ran on Windows and OSX systems. However, this tool relied on QuickTime. QuickTime is 32-bit and will not evolve to 64-bit (it has been replaced by newer libraries), and so does QTLib.

 

Thus all the code developed with labview including cross-platform video handling cannot be maintained and developed!

 

On the other hand, video is becoming an ubiquitous feature in computer technologies, from mobile apps, to IT, to big data and deep learning. It is a strategic time to push for video on labview across all platforms. It is time for video handling VIs to appear in the standard dev package, just as jpeg or png read/write VIs were added after photos massively entered the computer world.

 

I propose the addition in the "Programming/Graphics&Sound" palette of a subset of VIs for handling video (open video file for read or write, read file frame by frame, append one frame to file, grab frames from webcam). There is no doubt that such feature will be valuable in a future labview release!

 

Hello, I would like to be able to copy a configuration for a specific variable in fuzzy system designer. It's very tedious to specify the ranges and the values for those variables one by one. In some cases there are many variables that are configured in a very simillar way. There should be a copy button next to them.

 

Fuzy System Designer Idea

When you have a probe to se the data in an array, you se all elements in one row (in the Value column) and just one element in the Probe Display area. If you have a large array, it is difficult to get a good overview.

 

My suggestion is that in the part of the probe window called Probe Display, you should be able to pull the bottom right corner and see several elements simultaneously.

 

Probe 4.png

 

An extra feature would be to also show the array size anywhere in the probe window.

The Report Generation Toolkit includes Excel Easy Table that allows either Text (2D String Arrays) or Numeric (2D Dbl Arrays) to be written to Excel.  The function is written as a Polymorphic function to handle the two types of input.  However, when processing numeric input, an inner function called "Append Numeric Table to Report (wrap)" converts the numeric data to a String Array using the format string %.3f.  This is, in fact, a Control input for the function, but its caller does not wire the input, forcing the numeric data to be truncated to three significant digits.

 

I suggest that the default either be changed to %.15f (or something similar) to preserve the precision of the input data, or the Format String be "brought out" to the User (but there are no free Connector slots) to allow the User to control the precision.

An add-on to the highlight execution that makes the highlight execution go into the subVIs and keeps doing highlight execution in the subVI

It would be useful if there was functionality within the VI Analyzer, under the style section, that checked for overlapping on the block diagram. This would allow you to be able to check readability and check for some mistakes. For example, it is possible to copy and paste while loops on top of each other. VI Analyzer should be able to tell you that there are 2 while loops overlapping to help with style and debugging. 

Hey there. I'm working on a transparency vi which overlays 2 images (U32RGB and U8 Grayscale with User Palette). After I found out about the Resample Functionality, I thought the transparency Issue or its parts would be easy. But this was not the case. I'm missing following functionality:

Merging 2 Images or ROIs with a transparency factor
extracting the color image from a grayscale single image with user palette (my solution attached)
multiplying a color image with a floating constant  (my solution for the U32RGB Array attached) (integer values are not suited for small numbers)
subtracting a color image FROM a constant without creating an image from the constant / image inversion (does not work with my U32RGB images)

I've got my solution but i'm convinced it is slow.

Download All

I would like to encourage NI developers to produce an Advanced Signal Processing Toolkit (with the wavelets functionality like the one for WINDOWS) for MAC OSX.  I have been using Labview for some time now but i really dislike having to change OS platforms just when i use wavelets.  I am sure I am not alone here as there are many using Labview in the OSX environment.  

I would love an update to the signal processing VI's contained in NI_MAPro.lvlib to support waveforms with a SGL Y-value representation. The library is locked and most VI's call dll's that are not able to be modified anyways (by me that is, I am not all that strong in traditional text based languages). It would be nice to also support SGL waveforms within the .llb's contained in vi.lib/measure; although these are mostly unlocked and able to be modified.

 

Working with a cRIO, the FPGA to host DMA channels encourage the use of SGL data type so I went with it and kept it as SGL throughout my application. For some functions I turn my SGL array into a waveform with SGL Y-value representation. I was disappointed to learn that most of the signal processing waveform tools contained in NI_MAPro.lvlib do not support the SGL Y-values.

 

 The predessesor application was done on the usb cDAQ line that i was using DBL representation Y-values. I want to re-use a lot of code and was hoping the waveform signal processing VI's would accept SGL Y-values. For now I am stuck converting my data type for the sole purpose of re-using code; at 50kHz on 36 channels this can become a performance issue.

I only mean that this should apply to the sub vi's that come with LabVIEW. I was putting together a vi that is execution time sensitive. I had a choice between the IMAQ Histogram and IMAQ Histograph. I could get the result i needed from wither one but I was forced to try each,  run a few times, and clock each one. There are many such "which of these two similar options is fastest" choices we make for every program and knowing which upfront would be very helpful.

As the title says.

 

double click on a *.rsl file should open the Vi Analyzer results window

 

We have a CI server that runs VI Analyzer and posts the rsl files as artifacts, downloading the rsl file to my code base works great to find and fix errors. The only thing missing is the double click.

The current error-case only allows two states, when the error-cluster is wired: "No error" or "Error".

 

My suggestion is, to allow any number of cases which depends on manually defined error-codes (see attached picture). The error-case must be enhanced so that error codes can be treated separately in individial cases.

 

Previously to handle a specific error code, first the code must be read from the error cluster and than be wired to the case. This is to be omitted.

 

Optimized_Error_Case.png

The In Range and Coerce function is frequently used to determine whether a value is within range of an upper limit and lower limit values.

 

But when it is out of range, you often also want to know whether the value is out of range too high, or out of range too low.  It is easy enough to add a comparison function alongside and compare the original value to the upper limit.  It's another primitive and 2 more wire branches.  But since comparison is one of the primary purposes of the In Range and Coerce function, why shouldn't it be built into it?

 

The use case that made me think of this that as come up in my code a few times over the years is with any kind of thermostat type of control, particularly one that would have hysteresis built into it.  If a temperature is within range (True), then you would often do nothing.  If it is lower than the lower limit, you'd want to turn on a heater.  If it is higher than the upper limit, than you'd turn off the heater.  (Or the opposite if you are dealing with a chiller.)

 

Request Add an additional output to In Range and Coerce that tells whether the out of range condition is higher than the upper limit, or lower than the lower limit.

 

(That does leave the question as to what should the value of this extra output be when the input value is within range.  Perhaps, the output should not be a boolean, but  a numeric value of 1, 0, and -1, perhaps an enum.)

TensorFlow is an open source machine learning tool originally developed by Google research teams.

 

Quoting from their API page:

 

TensorFlow has APIs available in several languages both for constructing and executing a TensorFlow graph. The Python API is at present the most complete and the easiest to use, but the C++ API may offer some performance advantages in graph execution, and supports deployment to small devices such as Android.

Over time, we hope that the TensorFlow community will develop front ends for languages like Go, Java, JavaScript, Lua R, and perhaps others.

 

Idea Summary: I would love to see LabVIEW among the "perhaps others". 😄

 

(Disclaimer: I know very little in that particular field of research)

 

Many advanced funtions in the optimization and fitting palettes allow the use of a "VI model" given as a strictly typed VI reference to be defined by the user. A great feature!

 

LabVIEW provides various templates containing the correct connector pattern. Here is a list of the templates I found:

 

in labview\vi.lib\gmath\NumericalOptimization:

  • ucno_objective function template.vit

  • cno_objective function template.vit

  • LM model function and gradient.vit

in labview\vi.lib\gmath

  • Zero Finder f(x) 1D.vit

  • Zero Finder f(x) nD.vit

  • 1D Evolutionary PDE Func Template.vit

  • 2D Evolutionary PDE Func Template.vit

  • 2D Stationary PDE Func Template.vit

  • ODE rhs.vit

  • Global Optimization_Objective Function.vit

  • DAE Radau 5th Order Func Template.vit

  • function_and_derivative_template.vit

  • function_template.vit

As you can see, the naming is quite inconsistent:

  • all files are templates as is immediately obvious from the file extension! (*.vit )
  • some containing the word "_template" (undescore/lowercase t)
  • some containing the word " template" (space/lowercase t)
  • some contain the word " Template") (space/uppercase T)
  • some don't contain the word template in any form (good! :D)

 Since the extension fully defines them as templates, maybe the word "template" could be scrubbed from all the filenames, making things more uniform and consistent.

 

Idea Summary: remove the word "template" from all model template names that contain it.

I very much like the formula parse and evaluate vi's. For me writing a formula is easier and I am making less mistakes writing formulas than wiring numeric nodes. Specially when the formula is taken from literature.
Unfortunately, the parsed formula is much slower than using standard numeric nodes. Browsing through the formula nodes, I notice that the formulas are parsed down to the same standard numeric nodes (add subtract etc.). Still the formula parsing method is much slower because of many case statements that have to be executed before arriving at the  level of the numeric building blocks.
I think from the status where the formula parsing blocks are now, it would be feasible to have the formula parsing blocks generate vi's using only numeric nodes so the formula parsing nodes will have the same performance as the standard labview mathematics. The best solution would be to include it in the building/compiling of the code.

 

Arjan

 

 

Should be able to specify tolerance instead of just upper and lower limits. This de clutters the application block diagram when you are checking for a value within certain limits.

 

 . Upper limit becomes : x+ tolerance, Lower Limite becomes : x - tolerance when using tolerance instance of the polymorphic vi.

 

For even higher level functionality , specify units of tolerance : absolute, percent(1e-2), parts per million (1e-6), parts per billion (1e-9)

The idea is to change Equal? function in a way, that it will be configurable, and will have one input as function "Equal To 0?". Sometimes you need to evaluate number of loops execution in While Loop (or not just it), and when you put standard Equal? function, some of wires will be not aligned in a straight line (either which is connected to Index output, or which is connected to Loop Condition), and you need to move up/down one of terminals.

So, you can see it from the attached picture.

Idea.PNG