LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Reliable communication between RT vi and host vi

Hi,

 

I am developing application in LabVIEW RT, In which i am acquire data from different sensor on 4 different NI cards,

For communication between FPGA and RT vi, i am using 14 DMA FIFOs  and 10 front panel control and indicator.

and i want to share those data to host vi (which is running on same pc but host vi is in different project than RT vi project), now my questions are

1) NI-9038 chassis has only 16 DMA FIFO out of which i am using 14, is there any better option for communication between RT and FPGA vi? since front panel control and indicator will impact the performance of FPGA VI.

2) Currently I am using network stream variable to share data from RT vi to host vi(in different project) what is better way to do it?

 

Thanks in advance.   

Best Regards
Sumit Memane
CLAD, CTD
0 Kudos
Message 1 of 2
(1,829 Views)

@sumit04 wrote:

2) Currently I am using network stream variable to share data from RT vi to host vi(in different project) what is better way to do it? 


No fair, you asked a "trick question".  If you had not asked for a "better way than network streams", I would have said "Use Network Streams".  A few years ago, I "inherited" a LabVIEW RT Project where the acquisition was done both on the RT Remote (and saved locally on the Remote's disk, to be later FTP'd to the Host at the end of the day, a process that could take minutes) and, using additional PCI hardware, on the Host, at a lower data rate, simply for purposes of "seeing the data".

 

I rewrote this routine as a true RT Project -- the Remote acquired the data, passed it via an RT FIFO to a loop that sent it in packets of 50 points (the data were acquired from up to 20 channels at 1 kHz) to the Host, which streamed it to disk and plotted the average of the 50 data points so that the display updated at 20 Hz, perfect for viewing the data.

 

I ultimately had four Network Streams between Host and Remote.  Two were for Message Queues, used to send commands and responses between Host and Remote (one in each direction).  One, Remote-to-Host, was the 1 kHz data stream described above, the other was for "Events", time-stamped data that recorded State Changes, button presses, and other timed events registered by the Remote.  Worked like a charm -- got higher (and much more reliable) data rates Remote-to-Host, had more reliable data visualization (WYSIWYG, as opposed to the "What You See is Not What You Get" in the data file, as they come from different A/D converters, not necessarily synchronized), and requires half the hardware (since we don't need to "convert" in the PC Host).  So I "vote" for Network Streams.

 

Bob Schor

0 Kudos
Message 2 of 2
(1,780 Views)