LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Who is that PXI?

I am developing a series of data acquisition/control routines for neuroscience experiments, using a PC/PXI/LabVIEW RT system (Version 8.5, soon 8.6).  I want to be able to run this in multiple labs, with multiple PC/PXI combinations.  I would like to, as part of my initialization routine. have the functionality that I see in MAX whereby my program can "discover" the name and the IP of the PXI system(s) to which it is connected.

 

Our data acquisition PCs are connected to their PXIs using a "direct TCP" connection (either a crossover cable or through a "smart switch") -- on the PC side, we use a dedicated NIC that (typically) uses static non-routable IP addressing (e.g. 10.x.x.x), as do the PXI systems.   When I fire up MAX, it appears to "go looking" and reports back the name and IP of whatever PXI controller is connected to the PC, and it is this functionality that I would like to duplicate in my code.

 

My idea is that the user would start the program, it would "discover" the identity of its attached PXI, and would then know enough to start VIs on this remote system.  Alternatively, it could present the user with a list of possible targets and allow him/her to choose.  The key step, however, is the "discovery" of the remote system's IP.

 

Now that I'm running 8.5, the remote PXIs clearly "know" quite a bit about themselves, as they come up announcing their local IP and MAX system identification name.  I'm presuming that if I have the IP, there's a way I can get the remote system to tell me its name -- hints gratefully accepted.

 

One thought re MAX has occurred to me -- I've noticed that MAX "remembers" the names and parameters of controllers for which it was previously configured.  Is MAX simply "looking up known associates", i.e. using the existing knowledge of the IP/name combinations it might find, then testing to see if those addresses are valid?  This would imply that my hope of easily "discovering" the attached PXI information "by doing it the same way MAX does it" may be a false hope if MAX "already has the answers".  So just how does MAX figure out who is attached?  It clearly doesn't do a "universal ping" ...

 

Bob Schor 

0 Kudos
Message 1 of 5
(3,122 Views)

Just did the experiment -- took a PC that had never "seen" this PXI (and, for good measure, gave the PXI an IP I'd never used before), and MAX popped up an icon naming it and telling me its IP (it took about 10 seconds, I think, but who's counting?).  So MAX can definitely do this, and I want to be able to do it, too!  This will make my application much more flexible and user-friendly, since I won't have to "code in" the parameters of the PXI controller that I use (and which will change, depending on the lab running the routine).

 

Bob Schor 

0 Kudos
Message 2 of 5
(3,114 Views)

Hi Bob,

 

There is a VI that can be used to discover the name and the IP address of Real-Time PXI systems on the network.  From the Block Diagram»Real-Time»RT Utilities»RT PingControllers .  The return type is an array of clusters.  Each cluster includes the name and IP address of the RT system.

 

 

Message Edited by Pie56694 on 08-20-2008 11:37 AM
0 Kudos
Message 3 of 5
(3,074 Views)

Bob,

 

Take a look at the "RT Ping Controllers" VI in the Real-Time Utilities palette. It will let you query the local subnet for LabVIEW RT targets. That sounds like what you want.

 

-JRA

Message 4 of 5
(3,073 Views)

Thanks!  I did searches on "Obtain IP" and looked within LabVIEW for TCP/IP stuff, but overlooked the obvious!

 

Bob Schor 

0 Kudos
Message 5 of 5
(3,053 Views)