LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Different methods of communication in LabVIEW

Hi everyone. From dicussions in other threads I have noticed various different data communication methods being discussed. I am assuming that all communication methods between PC and RT can be found in the image below?

 

What are the different options for FPGA communication besides FIFO?

 

Is there any other methods of communication that I am now aware of? Just trying to get an overview of the different methods as I plan to go through them all over the new few weeks and experiment with them in LabVIEW with my sbRIO-9651.

 

 

 

Data Communication VIs.png

0 Kudos
Message 1 of 8
(3,638 Views)

The FPGA interface below provides the methods of communication between FPGA and RT or PC as far as I can tell?

FPGA interface.png

0 Kudos
Message 2 of 8
(3,622 Views)

For communication between an FPGA and a host (RT or Windows), there are only two ways to pass data: 1) DMA FIFO and 2) writing/reading to/from front panel controls via the Read/Write Method.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 3 of 8
(3,601 Views)

David-Baratheon wrote: 

Is there any other methods of communication that I am now aware of? Just trying to get an overview of the different methods as I plan to go through them all over the new few weeks and experiment with them in LabVIEW with my sbRIO-9651.


There are so many options, but which one to use really depends on your exact situation.  What are you trying to pass between targets?  What targets are you communicating to?  How often do you need updates?  Do you need a lossless communication?  Without specifics, I cannot talk intelligently about what you should use.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 4 of 8
(3,599 Views)

Thanks for the information regarding the FPGA. Thats useful to be able to narrow communications down to two methods.

 

Regarding between Real Time and PCs, excluding the ones in the the image I posted above (from the Data Communications category of the functions box), what other ones are there? Do the others fall neatly into some of the other categories in the functions box?

 

My aim is basically to just to get an overview of all the various different methods. The image above covers Shared variables, Network Streaming, Local and Global Variables etc. What are the other options?

 

 

0 Kudos
Message 5 of 8
(3,594 Views)

Did you even read any of the cRIO Developers Guide document that I linked you to in a thread before? If you had, you would find an entire chapter on the different communications methods. It also covers FPGA -> RT/PC communications.

 

The option that you pick depends on many things (e.g. lossless/lossy data transfer, 1-to-1/1-to-N/N-to-N communications, available hardware (e.g. CAN, RS-232, TCP/UDP). Again, most of that, including tables to help you pick the appropriate option, is covered in the guide.

 

If you are doing any work with cRIO, you should have already read it, cover to cover.


LabVIEW Champion, CLA, CLED, CTD
(blog)
Message 6 of 8
(3,583 Views)

David-Baratheon wrote: The image above covers Shared variables, Network Streaming, Local and Global Variables etc. What are the other options?

My recommendation is to keep things simple.

 

For between targets (Windows and RT targets), I almost strictly use the Network Stream to pass data.  Based on recent experience, I avoid Shared Variables like the plague.  UDP is lossy, which I typically cannot allow in my applications.  STM is a really good library that is built on TCP/IP.  But the Network Stream takes care of a lot of things with the TCP/IP that I would rather not have to take care of myself (like automatic reconnecting when there is a network error).

 

For inside the same application, I use Global Variables, Action Engines, Queues, User Events, and occaisionally Notifiers.  Each one has their use based on the requirements I have.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 7 of 8
(3,581 Views)

David-Baratheon wrote:

Regarding between Real Time and PCs, excluding the ones in the the image I posted above (from the Data Communications category of the functions box), what other ones are there? Do the others fall neatly into some of the other categories in the functions box?

 

My aim is basically to just to get an overview of all the various different methods. The image above covers Shared variables, Network Streaming, Local and Global Variables etc. What are the other options?


It's very hard to understand what you're asking. Local and Global variables are NOT a way to communicate between different computers, but Shared Variables and Network Streaming are. When you ask "what are the other options?" - the options for doing what? Perhaps you just need to spend some time reading through the help for each function in that palette?

 

All the network communication functions are in that palette, although many are in subpalettes (for example, all the TCP functions are under "Protocols"). There's some redundancy, for example you can retrieve data from a web server using functions from the Datasocket, TCP, or HTTP palettes.

 

All (or close enough) network communication uses either TCP or UDP. You can find plenty of explanations of the difference between these on the internet. Higher-level protocols, both those specific to LabVIEW (such as Network Streaming) and those used everywhere (such as HTTP) are built on one of these two.

0 Kudos
Message 8 of 8
(3,571 Views)