LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

VI Server/Client Problems

I have vi's (LabView 7.1) running on a PC(Win2k-SP4) controlling a rack of power supplies though a PCI-MXI-2/VXI interface. I would like to pass the current set values for those power supplies from a vi (LabView 7.1) running on another PC (Linux-2.6.8 Kernel).

I have tried the example vi's provided, Server-VIServer example.vi and Cient-VIServer Example.vi without success.
The sequence I tried went as follows...

on the Windows PC-
open Server vi
input the server's ip address
input the client's ip address
input the full path to test.vi (which just adds two numbers and returns the sum) in the exported vi list
run the server vi (runs with no errors)

on the Linux PC-
open the client vi
input the server's ip address
run the client vi

The output I get in the messages box is
Listing exported Server example VIs on ""
and the vi stops. The server:station box remains empty

Should I see the server and test.vi listed?
And the big question is - How do I pass the test.vi a couple numbers to add and get the result on the Linux PC?

I can ping each machine from the other and I have run (successfully) the automatic VI Server Connection Polling.vi, but do not have access to the test.vi.

Thanks in advance for any help available
Mark
0 Kudos
Message 1 of 6
(3,227 Views)
Hi Mark!

The first thing to realize is that the Server/Client - VIServer Example VIs are not tools, but more of a completed application. The VIs are hardwired to only accept specific VIs with a specific input/output pattern. You can see this by looking at the block diagram of the Client VI. There is a subVI called Filter StationVIs.vi. This subVI looks at the list of exported VIs (by the server) and filters out all exported VIs that don't have the naming convention of:

Station [AB][0-9] - VIServer Example.vi

If you want to test this out, write a VI and name it "Station A3 - VIServer Example.vi". Save the subVI in Server.LLB (since this is where it looks for the subVIs to export). Also, if you want the Client VI to execute without error, you need to make your subVI (Station A3 - VIServer Example.vi) of the same input/output pattern that is being expected by the client. The type expected by the Client is a 4x4 connector pattern with the top left terminal being a DBL input and the top right terminal being a 1D DBL output. You can see that this is hardwired in the block diagram of the Client VI.

Hope this helps!

Travis H.
National Instruments

PS: I'm attaching a simple example of "Station A3 - VIServer Example.vi"
Travis H.
LabVIEW R&D
National Instruments
0 Kudos
Message 2 of 6
(3,209 Views)
 
Travis H.
LabVIEW R&D
National Instruments
0 Kudos
Message 3 of 6
(3,208 Views)
I'm not quite sure what happened with that attachment, here is the correct one:
Travis H.
LabVIEW R&D
National Instruments
0 Kudos
Message 4 of 6
(3,205 Views)
Thanks Travis,

I had not looked at the Client.vi closely. I'll give your example a try, and then all I need to figure out is how to change the input/output from DBL to clusters.

Mark
0 Kudos
Message 5 of 6
(3,183 Views)
Hi Mark,

Sounds good. The Client VI actually uses the selected, exported VI as a subVI (to provide the data points on the graph). You can just modify the Client VI to use the VI types that you want to use. Just look at where the Client VI uses the exported VIs and this will be easier to understand.

Travis H.
National Instruments
Travis H.
LabVIEW R&D
National Instruments
0 Kudos
Message 6 of 6
(3,175 Views)