From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Remote communication between multiple Linux RT targes

Solved!
Go to solution

We have a project consists at least 5 cRIO Linux RT targets, located remotely from each other. Can anyone advise us for the best Labview network technique to communicate between these RT targets over ethernet please?

We understand the network-published shared variable method is easiest to implement, but it requires a Windows machine to host SVE, therefore we cannot use it.

Could we use Network Stream or TCP? Or CCC and any other methods? Any practical advice by experience would be appreciated.

Many thanks for your help.

 

0 Kudos
Message 1 of 10
(2,984 Views)

Have you looked at the Distributed Control and Automation Framework (DCAF) ? It's supposed to supersede CCC , CVT, and the other old machine control architecture stuff. 

 

Actually you do not need a windows machine to host the SVE, the variables can be hosted by the cRIO. It is kind of confusing how some kb articles talk about using a windows machine to host the SVE-- you can host them either on Windows machine or the cRIO. I believe the windows hosting was for performance reasons in the past but the newer cRIOs have enough performance to  host shared variables.

0 Kudos
Message 2 of 10
(2,972 Views)

I am a fan of the STM library.  I use TCP/IP with the STM for communicating between my systems.

 

You could use UDP for broadcast values.

 

Do note that NPSVs are for Tag data (single point values, only carrying the latest value).  They tend to be really slow as well.


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 10
(2,951 Views)

Thank you very much for your comments.

Are you sure SVE can run on Linux cRIO? It didn't work in our system. As to DCAF, have you used it and how easy is it to pick up? Thanks.

0 Kudos
Message 4 of 10
(2,937 Views)

well I'm sure the SVE can run on a linux cRIO, I've done it many times. I am just now starting to use DCAF but it looks pretty well thought out and engineered. As for how easy to pick up it is, it seems that most of it can be set up through the configuration utilities it comes with which is easy, below the hood it looks complicated but you can ignore that for the most part.

Message 5 of 10
(2,935 Views)

Thanks very much for your comments. It seems TCP/IP and STM are hard to code. I am not an experienced Labview programer. What do you think Network Stream for our application comparing with TCP/IP STM? UDP isn't reliable enough for us by the way. Many thanks for your help.

0 Kudos
Message 6 of 10
(2,916 Views)

STM is quite simple after you spend 5 minutes looking at the examples.

 

Network Streams are not much different as far as complexity.  But they do handle network blips (connections lost for a short time) for you.


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 10
(2,914 Views)

Hi, Thanks for the suggestions. STM looks good, but how does STM handle losing connections?

0 Kudos
Message 8 of 10
(2,908 Views)
Solution
Accepted by topic author Noriker

@Noriker wrote:

Hi, Thanks for the suggestions. STM looks good, but how does STM handle losing connections?


You will have to handle the reconnections by detecting an error, closing the connection, and then go back to connecting.  But if you have a loop just for the connection and communication, it just turns into a simple state machine.

 

Or you can figure out the Network Streams and it handles most of that for you.  If memory serves the network stream will handle quick interrupts in connection.  But if a cRIO goes completely down, you will get errors.


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 9 of 10
(2,905 Views)

Thank you for your advice. We will implement it.

0 Kudos
Message 10 of 10
(2,871 Views)