LabVIEW Idea Exchange

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

I have been using the Continuous Measurement & Logging template for a few years and when looking back I see that I've spent a non-trivial amount of time doing the same tasks as soon as I create the template. So...I decided to create a project and save to use as my new template next time I have an application that will benefit from it. 


My main goal was to reduce the number of wires in the initial template and use more TypeDefs (like with the queues) to eliminate the need to refactor each VI if the data type changed. 

 

Feel free to take a look at the project and let me know if you agree with the changes/additions and if it helps you, cool! If it doesn't help, I'd like to hear other folks opinions regarding why and suggestions for other ways of refining the starting point.

 

 

Winston

Download All

Two recommendations:

 

1) Add an OSI Read VI for N wavelength spectra that returns each wavelength spectrum as a waveform (i.e. an N x number of channels array of waveforms). This will provide the time stamp of each wavelength spectrum, and will also be more efficient that reading one set of channel wavelength spectra at a time.

 

2) Add a VI that applies the wavelength scaling to wavelengths.  This will allow the user to apply their own power spectrum peak search algorithm to wavelength spectra, whilst still applying the current wavelength scaling algorithm. This will free the user from having to use the OSI peak search algorithm.

 

We have found that the peak search algorithm utilised by NI-OSI performs poorly when the peaks in the power spectrum are poor quality, and that a much simpler algorithm yielded far better performance. Our algorithm was to simply report the maximum power wavelength in the sensor wavelength range if it was above a minimum threshold. This is in significant contrast to the NI-OSI algorithm that searches for peaks across the entire power spectrum using four algorithm tuning parameters, identifying all of the detected peaks that fall within the sensor wavelength range, and then reporting the one with maximum wavelength.

 

 

For reference, we have a PXIe-4844, and are using NI-OSI 16.0.

Hi all,

I recently came across the need to lock a FPGA ref during some operations to prevent a race condition. While implementing, I naturally thought it would perhaps be simpler to implement using the same mechanism the In Place Element Structure uses to lock the DVR reference. As such, whatever reference wired into the IPES would have the option of being marked as "Blocking".

I have no idea if this is a small change or a huge effort to implement, but I think it can help in managing resources more efficiently - or at least with less steps.

 

Best,

Cris

In other programming languages you see something like this to implement a linked list

struct Node
{
int data;
struct Node *next;
};

 

 

I'd like to be able to make the equivalent:

linked list2.PNG

 

The Profile Performance and memory gives me a good indication where to find memory and performance issues in sub-vi's.

This however does not work on continuous running vi's as is the case for User Interfaces or main vi's. I sometimes solve this by measuring the time a single loop of the vi takes to execute, but this is just part of the info I need. Would adding the mem and performace stats to these kind of cont. running vi's not help us?  

I've always wondered why this is not possible.

 

So you can dynamically start a VI. Except when it's not already "running". I quoted running, but the VI itself is not running, it's just on the diagram of a running VI.

 

To start a VI dynamically, when already "running" we need to make it re-entrant. This is very limiting (see use case in following post).

 

Technically, there should not be a problem. You can create a new VI, put the sub VI on the diagram and run it.

 

Why can't we do this by reference???

Hi All,

 

It will be great time saver if NI puts stop actor functionality inbuilt with AF Framework VI.

 

Reference to my post : Change Actor Framework override VIs

 

Thanks!

If in the middle of building a VI, a user needs to look over something in another project to ensure the 2 programs function together the user clicks File>Open Project this spawns windows explorer where you have to browse to the directory where the project is located at. Since LabVIEW  .ini file contains the paths to known projects, the dialog box should populate with the project names and paths for known projects. This allows the user to one-click the project instead of having push down several directories to get there. Of source the user can still browse to another project path not listed in the INI file if the dialog is coded as such. Just a matter of convenience and ease of use

To generate a VI or set of VIs with a general driver to get low-end FPGA boards to work with LabView FPGA. Parameters will only come from the users to make this dynamic, this would be the total count of I/Os FPGA type, location of I/O items (eg. buttons) in the FPGA board, etc. It would be a bit of work, but also would pay off at the end. Doing such is no more than an extension of LabView if done well, let's say written in an xml file plus it would be a very powerful tool for researchers, and would generate more sales to use LabView FPGA for more researchers, university students, and engineers who want to test a few things without full initial commitment to NI tools.

 

 

Hi

   My idea is to connect two nodes without the need to use the mouse to connect the wire. Just select two nodes and use some command(shortcut like (ctrl+n) or Right click and select from drop down)so that, both the nodes maybe connected to each other.

(Note: sorry if this idea already given)

 idea.PNG

regards

Senthil

 

 

 I would love to see an optional input node on the edge of a while loop for loop wait. 

This NIST site defines a non-integer factorial:

http://www.itl.nist.gov/div898/handbook/pmc/section3/pmc32.htm

 

The result of the computation is used in statistical process control.

 

I think that LabVIEW should have its VI's compatible with NIST, and "engineered for process control", seeing how they control processes.  The control shouldn't exclusively about operation, but should also have bounds, and quick/effective alerting for out-of-control condition.  (OOC).

Dear Ladies and Gentlemen,

it would be greatful, if it will be possible to develop an intelligent debugger, that has the following functionality:

Looking for an error and jump automatically to the VI, where the error occurs, without setting a breakpoint, to find the VI with the failure significant faster.

 

With kind regards Sönke

When I build, I like to test each step.  That means that I make a bunch of "debugging" indicators.  Some might prefer probes and breakpoints, but I like the "build as you go" and "don't use too many tools".  The challenge here is that about 80% of indicators that I make, I have to delete.

 

I wish there were a version of "diagram disable" that is specified in the block diagram, that worked for the front pane, and left me some tiny asterisk instead of the indicator, that didn't hit program execution times, and that when I configure execution the asterisks can be made to disappear. 

 

This would allow me to revisit my code, to access all of my debugging methods very quickly and intuitively, and to not necessarily change the final layout of the front panel after my debug is done.

Normally, in the development environment, I make everything nonreentrant just to facilitate debugging. But sometimes, there are small VIs that are called frequently from many callers where it would be nice if I could make them reentrant so they don't block each other when running as an executable.

make reentrant.png

I'd appreciate to be able to reset every channel of the NI-9361 separatly when channels are set to count edges. 

The property node "Cnt.Reset" doesn't work if the task is running so it's quite unuseful to use it for this purpose.

And when the DAQmx Task is stopped it resets all counters.

Measure range is not commited to SMU instrument while the output is in off state. niDCPower commit VI should change range of device even when output is in off state.

 

In cases where UUT has external voltage applied to it, SMU device will give an overvoltage error even if UUT voltage is within SMU voltage range. This occurs due to the range settings not being commited when the output has been turned off.

I found a weird configuration in my stuff where a program was not working right because it was clearing out the error code inside a for loop.  The for loop was clearing out the error code because it received an empty array from a property node for an array.  The property node sent an empty array to the for loop because it received an error on its input. 

 

In the VI where I found this configuration I have an error wire going thru a property node for an array.  The values read from the property node are then fed into a for loop and processed.  The error wire is fed thru the for loop and then the error is passed back out of the loop in an indexed tunnel and combined with an merge error.  When the property node has an error on its input it outputs an empty array.  The empty array is then fed into the for loop causing the for loop not to run.  The for loop then sends out an empty error wire without the error code that was sent in. 

 

I am attaching a simple VI to demonstrate this behaviour.  To see the behaviour toggle the error control on and off. 

 

edit: I forgot to set the default values in the in array on the original attachment

When Open reentrant instances of a VI asynchronously the 2 methods that work are configuring the front panel to open when called and setting up a invovle node for front panel open inside the target VI. It would be helpful to have the option to open several front panel instances setting up the control of this behavior on the caller.

 

For the people that have been activally using and supporting LabVIEW for more than the past say 20 years in more than just basic applications it should be possible to be granted a CLV certificate. Last friday I tried the CLD exam and it was a struggle ...