Home > Community > Discussion Forums

LabVIEW Real-Time Idea Exchange

Showing results for 
Search instead for 
Do you mean 
The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea

Having used our LabVIEW 2011 StateChart module with great success on a CompactDAQ system, I now have a new project using a CompactRIO 9075 which will
be controlling a hydraulic test unit.  I would like to again use our StateChart Module so the functionality of the machine is understandable to all stakeholders.


The best NI example project I could find is the Chemical Mixing Example w/StateChart.  It is exactly what I need except that it is a "headless" architecture.  I need a 1:1 networked communication to my host PC for recipe entering and data logging much like the Bioreactor Example in the CompactRIO Developers Guide.  See attached architecture jpg. I need to know how, specifically, to add a Host UI and incorporate network streams for the Host Command sender -> RT Command Parser.


In other words, what software architecture would combine the Chemical Mixing Example (w/StateChart) with the Bioreactor Example?

Reconfiguration from console (mode)

Status: New
by Active Participant Mads on ‎04-12-2012 05:50 AM

The console mode of RT controllers has very limited functionality. It would be great if all or most of the settings of the controller were editable from the console.


File browsing and transfer, plus software loading, would be nice too. We have had cases where the controller is operational and holds valuable data, but because the network interface has gotten damaged we have had no way to extract that data...

I think the configuration property pages for SoftMotion axes are missing the parameters for maximum velocity, maximum acceleration and deceleration for individual axes.

When performing single axes moves it is somehow easy to control these parameters because they are wired to the appropriate property nodes when configuring the move itself.

But when performing moves with axes in a coordinate space the move parameters given are for the resulting vector, resulting in unknown velocities for the individual axes.


When configuring the maximum velocity and acceleration/deceleration for an axis there should be the option to

a) Generate an error when the requested move can not be solved within the limits

b) Coerce the limiting value to its maximum and solve the move using the new values, generate a warning



Different versions of NI-RIO only support certain versions of Labview, see link below.  You can not have Labview 8.5.1 Real-Time & 2011 Real-Time co-exist on the same PC because NI-RIO 4.0 only supports up to 8.6.1.  Wouldn't it be nice if you could install multiple version of NI-RIO just like you can have multiple version of Labview?


NI-RIO and LabVIEW Version Compatibility

Reboot RT into Safe Mode from MAX

Status: New
by Active Participant Sima on ‎09-01-2009 10:26 AM
It would be nice to have an option to reboot RT into safe mode from MAX rather than having to create a safe mode disk.

Currently, when you add a new (not existing) cRIO controller and chassis to a LabVIEW project, there is no check as to whether this is a valid configuration or not. For example, you can successfully add a cRIO 9072 controller with a 9112 chassis to a project, even though the 9072 is a controller with an integrated chassis. I believe that the LabVIEW Project interface should notify the user (via dialog box) that this is not a valid configuration before they can add modules and start developing code to use an invalid configuration.

I did not see any options for this in labVIEW. I saw only you can play around writing and reading sound files and perform some manipulation to sound file.

Why not we compare two sound files extensively and indicate about similarities. For example, a system is running with constant sound(Motor is running in good case) and other hand the same system is running bad after some days or years(sound is different and louder with noise).


Second, if we can compare a sound with another sound, that would be interesting and possibly useful in applications. I know that many sensors out there for this operation but thought of interest to see it digitally in labVIEW.


If  any thing wrong with my idea, please let me know.

If I have variable library with virtual folders and I choose "Export to..." only top level variables are exported to the file. I suppose that also variables inside virtual folders should be exported. I think virtual folders make structure clear and export/import is useful if you are working with several projects in different computers. I would like to see them work together.


I've been attempting to perform a relatively simple homing routine on a motion axis where there are two limit switches (forward and reverse) and a home switch located somewhere in the middle. The homing routine starts by advancing forward and if it does not see a home switch, it will continue in the forward direction until the forward limit switch is activated. At this point, the routine will reverse the direction of motion and continue searching for a home switch until it would eventually see it (thus it is guaranteed that the home switch is found.) Once the home switch is activated, the routine performs a fine tuning procedure by slowly backing away from the home switch (in the forward direction again) until it is no longer active.


When using a c-series servo interface module, there is a Stop Mode property that one can set for each limit switch to either stop immediately, decelerate or disable the drive (See fig. Axis Properties and Limit Stop Mode ). When the stop mode is set to Disable drive, the homing routine fails upon triggering a limit. 


There are property nodes available to read the stop mode however the nodes are read only. (see fig. PropertyNode)

It would be nice to have the ability to programatically change the stop mode depending on the motion being performed. Our application requires that the drives be disabled upon activation of any limit switch under regular motion. However, during a homing routine since the disable drive stop mode impedes the routine, it would be benefitial to be able to change the stop mode to decelerate for the duration of the homing routine, and then change it back to disable drive once homing is complete.


I need a simple way to stop, from a PC, the startup application (if any) running on the RT system. This would work without prior knowledge of what is running on the RT.


This could be VI based solution that I could use in developing a startup upload application.


This would allow me to FTP new application files to the RT system as new startup code. Currently, if there is a startup application running on the RT system I cannot replace the application file since it is in use and I cannot stop the application without having access to the LV development system. I want too make this upload process into a user run software application for a PC connected to the RT system - without the user having access to the LV development software.

Drive a timed loop with multiple timing sources

Status: New
by Active Participant StephenB on ‎02-10-2011 10:07 AM

I propose having the timed loop accept one or more timing source(s). The loop would wakeup and execute if any of the chosen timing sources tic'd. If multiple sources tic'd, then the 1st timing source would execute first.


This would ease the creation of more complex timing schemes on the host. For example, application needs to wake up every 50ms and whenever a timing source tics. Both wake up events need to operate on the same data and neither should happen at the same time. Typically this means you write two timed loops and a lot of handshaking overhead... or a single while loop with a lot of timing structure built into it and probably encompassed by a timed sequence structure so you get priority and CPU assignment.


All of this would be much easier if a single timed loop could handle multiple timing sources. All of your data would be in the same shift register(s) and you don't have to write any handshaking code to prevent simultaneous execution.


Obviously the GUI for this would be somewhat complex, but for the programmatic inputs you can simply turn most of them into arrays.

Create a timing source from RT FIFO reference

Status: New
by Active Participant StephenB on ‎02-10-2011 10:30 AM

I'd like to create a timing source from an RT FIFO reference to drive a timed loop. The timing source would tic whenever there an element is placed into the RT FIFO, facilitating a timed loop to be configured for reading elements from the RT FIFO as they become available. This would only be available for blocking mode on read. Once the loop awakes, the user can then read the FIFO with a 0 timeout to get the data.


This would provide all the nice features of timed loops to loops that need to be timed by data showing up in the FIFO. Right now you have to place a while loop that blocks on the RT FIFO and wrap it in a timed sequence for CPU assignment and priority.


Also, combined with the idea posted for multiple timing source for a single timed loop, could be very powerful.

Real time display

Status: New
by Active Participant ErnieH on ‎12-17-2010 07:31 AM

Ability to create a GUI (with touchscreens) using the graphics capability on desktop PC's. Maybe something like PEG (portable embedded GUI). For small testers, I don't necessarily want a PC or touchscreen PC running CE or XPE. The PC's involve a lot of setup, virus concerns, etc that I don't need on some testers. Support would be much easier also. Plus, in a lot of organizations, they don't understand the difference between PC's for desktops and PC's for production stands. You end up getting a "standard" PC with a lot of restrictions on it that requires several different groups to support when it fails.

At the moment Labview RT does not support high speed USB 2.0 (EHCI) functionality on PXI-8xxx controllers even if the controller has supporting hardware.  We implemented a copy operation to transfer data files from a harddrive on the PXI chassis to an external USB connected flash drive using the copy VI, and only obtained speeds at USB 1.1 (OHCI) levels.  We also tried a move version using the Move VI with similar results.  The controller used in our tests was a PXI-8186, which has USB 2.0 ports.


My discussions with NI Support and the R&D team indicate this a limitation imposed by the ETS RTOS from Phar Lap that Labivew RT runs on.  This is inline with the fact that VxWorks supported controllers have access to EHCI speeds as per this faq:




Could we get high speed USB support implemented in Labview RT/ETS?


Here are some benchmarks that we obtained:



Size (kB)



Laptop to USB




Labview Copy VI Laptop to USB




Laptop FTP to RT




Labview Copy VI RT to USB




I understand that the FE vi's needed to be optimized for speed so that they could be put inline without disturbing RT timing.  But it would be nice to be able to send a string description

with the fault so that it would show up in the DSM.  An example would be a fault due to trying to send an invalid remote message.  It would be nice if the invalid message string could be logged with the fault event.

I think making it optional would still preserve the determinism when needed.

1. Right Click on Blank Cursor Column will crash DSM

2. Make cursors Max and Min actually work


Distributed System Manager Historical Trend

Status: New
by Active Participant viScience on ‎10-20-2009 02:30 PM

In the Distributed System Manager add the capability to export Historical Data.

Also, in the DSM Allow Historical Traces to be deleted.

Can MAX show date as well as time in the timestamp for I/O channels?

Status: New
by Knight of NI Knight of NI on ‎10-20-2009 10:43 AM - last edited on ‎10-22-2009 01:32 PM by Active Participant Laura F.

I was replying to a message thread someone had about question marks showing up for the times in the I/O channels for a compact Fieldpoint system.  While investigating, I notice on my system that I had timestamps for data that occurred later in the day than the current time.  So I know those timestamps were from a day prior than the current day.  Actually, the test stand had been idle for quite a few days, so I pretty much know those I/O channels had not been updated for a while.  But I could not tell from the timestamp when exactly that data was from.


In the attached screenshot, the current time was about 1:44 pm.  Some data shows it had just been timestampled.  Some data was from 7am,  other data from 2:19 pm or 4:19 pm.  I know that that data had to have been from yesterday or older.  The 7am could be from today or older, but there was no way to tell.  Based on my usage of that test stand, I'm pretty sure all of that data is at least 3 days old, and perhaps 6 or 7 days old.  That is okay and not a problem.  But there is no way of knowing how old that data actually is based on this screenshot.


I think MAX should show the date as part of the timestamp when looking at the I/O data.


Message Edited by Ravens Fan on 10-20-2009 11:48 AM
Message Edited by Laura F. on 10-22-2009 01:32 PM
0 Kudos

When using the "Open FPGA VI Reference" function you can configure it to reference the FPGA build/bitfile in three different ways:

- Build specification

- VI

- Bitfile


In development mode I often use "Build spec", for deployment I switch to "Bitfile". When using this function it behaves different, depending in which mode it is configured! This makes for a bad "User eXperience"…


In "Build spec" mode:

- when double clicking the pink border of the function it opens the referenced FPGA VI

- you need to right-click the "Open FPGA VI reference" and select "Configure…" to open the configuration dialog

- when selecting the "Build Spec" radio button it opens a selection dialog (probably a listbox) but you can't double click the build spec you want to use, you need to select the build spec and then click on "OK" button


In "Bitfile" mode:

- when double clicking the pink border of the function it opens the configuration dialog, (you don't need to right-click the "Open FPGA VI reference" and select "Configure…" to open the configuration dialog)

- when selecting the "Bitfile" radio button it opens a file dialog and but you can double click the bitfile you want to use


(All this relates to LabVIEW2014SP1. Haven't tested this with LabVIEW2015 so far.)


I propose the idea to make this behaviour consistent, independent of the selected mode in the configuration dialog!


I wish this behaviour:

- double click on pink border of the functions opens the configuration dialog

- double click on the FPGA VI icon shown inside the "Open FPGA VI reference" function opens the FPGA VI

- double click on an item in the "Build spec" selection dialog selects the build spec

0 Kudos

Porting VI from cFP to cRIO?

Status: New
by Member Dave_Karon on ‎01-08-2016 03:51 PM

Has anyone ported a real-time VI originally targetted to cFP to install on cRIO?

I have an older control program, main VI and subVIs built in LV 8.6 and run on a compact FieldPoint controller.

I would like to be able to use much of it on a cRIO-9036 or something similar.

I am wondering whether LabVIEW (2015 or so) will do the work for me.


Thanks in advance.

About LabVIEW Real-Time Idea Exchange

Have a LabVIEW Real-Time Idea?

  1. Does your idea apply to LabVIEW in general? Get the best feedback by posting it on the original LabVIEW Idea Exchange.
  2. Browse by label or search in the LabVIEW Real-Time Idea Exchange to see if your idea has previously been submitted. If your idea exists be sure to vote for the idea by giving it kudos to indicate your approval!
  3. If your idea has not been submitted click New Idea to submit a product idea to the LabVIEW Real-Time Idea Exchange. Be sure to submit a separate post for each idea.
  4. Watch as the community gives your idea kudos and adds their input.
  5. As NI R&D considers the idea, they will change the idea status.
  6. Give kudos to other ideas that you would like to see in a future version of LabVIEW Real-Time!
Idea Statuses
Top Kudoed Authors
User Kudos Count