Jump to content

Remote Messaging between VIs


Recommended Posts

What's the latest for messaging between VIs on different machines? Can I use message ques across machines, or would I have to use TCP or something else, for example drop a message on a que on machine1, that que is serviced by a TCP loop and transmitted to machine 2, where it is received and then dropped on a que there. I'd probably have a qued producer consumer setup on both ends. I know I've read something about this but can't find it now.

related question:

I've been following the form of D. Elizalde's "Simple TCP/IP Messaging Protocol" for LVRT messaging, how has Shared Variable change this approach for anyone?

cc

Link to comment
What's the latest for messaging between VIs on different machines? Can I use message ques across machines, or would I have to use TCP or something else, for example drop a message on a que on machine1, that que is serviced by a TCP loop and transmitted to machine 2, where it is received and then dropped on a que there. I'd probably have a qued producer consumer setup on both ends. I know I've read something about this but can't find it now.

related question:

I've been following the form of D. Elizalde's "Simple TCP/IP Messaging Protocol" for LVRT messaging, how has Shared Variable change this approach for anyone?

cc

Traditional objects based on refnums do not have any meaning outside of the process that created them.So queues or notifiers or such won't work as they couldn't connect each to each other.

Your options are as follows"

1) Use LabVIEW 8 shared variables

2) Use DataSocket in earlier LabVIEW versions

3) Use VI server

4) Use TCP/IP to write your own client/server communication

5) Use external files

I'm not sure about 1), but 2) is something I wouldn't recommend for a number of reasons. It's performance is quite limited, it can be hard to get configured right, and it uses an undocumented protocol.

1) and 3) have the same issue about being undocumented but at least 3) does work very well and all the low level stuff is done for you.

4) is the hardest to implement and requires quite some experience to get a good working system that will also be able to deal with extensions in the future. But it is the most flexible and also most performant solution.

5) is really only a last ressort. I wouldn't recommend it at all as you get all sorts of problems with synchronizing access to the files between the two or more applications.

Rolf Kalbermatter

Link to comment

Two weeks ago I tried slapping together something quick using shared variables; I would previously have done that program using the "Simple TCP/IP Messaging" bag of tricks.

The result was not good. Crashes aplenty on the RT machine after a few minutes of run time. Meanwhile I have fundamentally the same functionality implemented the old way and that runs for hours without any problem.

I've thus decided that I'm not trying shared variables again on 8.0...

Guillaume Lessard

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.