ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Launch/control VI's on remote host using exec from Application Builder and the VI Server

I have several (very) remote rackmount PC's with hardware connected that I need to control (programatically from software) from a central location using TCPIP.  An easy solution for remote process control from within LabView would seem to be the VI server.  My question is: What do I need on the remote PC's to give me the functionality of the VI server at that end.  The remote machines do not have LabView installed.  I have the LabView Application Builder so in principal I could build an application (with the desired remote VI's loaded in) that does nothing but wait for VI Server requests.  Is there a better way?
0 Kudos
Message 1 of 5
(2,880 Views)

In any case, you will need the LV run-time engine on the computers (which is installed when you create an installer for your app). These apps would definitely be able to communicate, but you will need to define the VI server settings on each computer (or copy the settings into the INI file).

Another, probably better, option is to implement your own TCP protocol. You can find several examples and tutorials both in the example finder and on this site. A nice one is the example called TCP message protocol which can be found on the site. You will have to manage the communications with each of computers (opening\closing\handling comm errors), but it's fairly simple.


___________________
Try to take over the world!
Message 2 of 5
(2,875 Views)
What kind of hardware do you need to control? There's NI-VISA Server that makes GPIB, serial, USB, etc, instruments accessible over a network. There's also the NI-DAQ Remote Device Access Server. I haven't experimented with that in a long time and I'm not sure whether that works with DAQmx.
0 Kudos
Message 3 of 5
(2,874 Views)
Thanks for the quick replies.  The hardware in question are mostly DAQ boards of the 6602, 6533 type.  We alredy make heavy use of RDA and the VISA Server (for message based devices).  We are trying to do all our new development in DAQmx whish does not support RDA, hence we are exploring new options.  We have already tried Remote Panels and Data Sockets but neither are adequate for what we want.
 
We are also actively developing our own TCP protocols for functions that stream data at very high rates (> 1MHz or so).  As Mighty Mouse (tst) suggests, this is straight forward but arduous.  We currently have quite a lot of VI's that run (already spawned/controlled locally by the VI server as needed) on the "master" machine and access the remote hardware via MAX/RDA.  My thought was to use the Application Builder to load a process onto each of the remote machines that would enable the VI Server to spawn/control these VI's remotely on the machine where the hardware is physically located, eliminating the need for RDA with minimal changes to our setup.
 
--Lee
0 Kudos
Message 4 of 5
(2,864 Views)
The network is transparent to the VI server, so you can open a reference to a remote LV application simply by wiring that computer's IP into Open Application Reference, and use that app ref to open the VI ref. The remote application will talk to the remote hardware, so you probably shouldn't have any changes in your VIs, but I don't use DAQ, so I don't know how simple that is with executables (it probably includes everything you need when you create the installer).
So, basically, you will just need to have the VIs on the remote machines and the remote apps will call each VI locally to spawn your processes (assuming I understood what you want correctly).

___________________
Try to take over the world!
0 Kudos
Message 5 of 5
(2,854 Views)