LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Exe built on one machine won't work correctly on another.

Hello list!

I have two identical PC's. Both run Windows 2000. Both have two NIC cards, one on the motherboard, the other in physical PCI slot 3. The 2nd NIC on both machines is the same make & model. The NIC on the motherboard on each is configured for DHCP to talk to the company network. The other has a fixed I.P. address to talk to my Fieldpoint and instrumentation. The Fixed I.P. NIC of each PC is connected to a FP2010, an Keithley 2701 and a Tektronix TDS-3012. Both FP controllers have the same address, both DMMs have the same address and both scopes have the same address. Each PC has Labview 7 installed.

In short, all of the hardware is identical between the two installs.

My source code for my application is on the company network. My IAK file for the Fieldpoint is on the network, and the source code points to it's location. Both machines log into the network, but with different login names. Both machines are local admins of their logins. Both machines map the same network drives to the same drive letters.

If I run the source code (from the network) in either machine, it works fine and talks to all of the ethernet I/O just fine.

If I build an EXE in machine A and try to run that EXE in machine A, it works fine and talks to the ethernet I/O, but if I try to run that EXE in machine B, it will run but won't talk to the ethernet I/O .

If I build an EXE in machine B and try to run that EXE in machine B, it works fine and talks to the ethernet, but if I try to run that EXE in machine B, it will run fine but won't talk to the ethernet I/O .

The only thing different between the two machines is this minor configuration difference...

If you do a START->Settings->Network and Dialup Connections->Select the 2nd NIC, then Properties->Configure. In the "General" tab is the name of the card (3Com....), the "Device type" (Network Adapters), "Manufacturer" (3Com), and "Location:"

On one machine the "Location:" is PCI Slot 4 (PCI bus 1, device 13, function 0).

On the other machine, the "Location" is PCI Slot 5 (PCI bus 2, device 13, function 0).

I'm pretty sure this is the issue, but how do I fix it?  Is there some way to get Labview to find the ethernet card no matter what PCI Slot or bus it's using? Is there something I should be including in the build that I'm missing?

Any suggestions would be appreciated.

Mike

 

0 Kudos
Message 1 of 10
(4,388 Views)

hi there

hmm, ok, sounds like a similar problem i once had with more than one NICs in my system. In my case the app searched for a device with a given IP address, but it wasn't found because the device was connected to the second NIC in the systems list of NICs and the first NIC gave a timo error.

You could try to connect both networks with a single NIC. You can set the NIC to default DHCP (automatically retrieve IP address from your company network) and give it an "Alternative network settings" (sorry, i have german Win, so i don't know the english expression). By doing so ONE single NIC can connect to TWO IP addresses from different sub-Networks (i know that this works with XP, don't know about Win2000).

Then there'll be no conflicts in the search orders (but be aware that one NIC has to handle all the traffic).

 

Best regards
chris

CL(A)Dly bending G-Force with LabVIEW

famous last words: "oh my god, it is full of stars!"
Message 2 of 10
(4,377 Views)
Chris,
 

Thanks for the reply, but that's not an option. The company IT folks DEMAND that I keep the instrumentation/Fieldpoint off of the company network wires.

When I posted I was trying to simplify the problem...to make this a bigger mess, I actually have 8 of these machines. 7 of them are on the shop floor and the NICs are all PCI Slot 5 (PCI bus 2, device 13, function 0)...only the one on my desk is the PCI Slot 4 (PCI bus 1, device 13, function 0).

See, the shop floor machines don't have a keyboard or mouse, and the monitors are mounted at 7 feet in the air...so the only "easy" was to build the EXE out there is to remote in via VNC from my desk.

Since the instruments were set up in MAX as VISA TCP/IP Resources, is there some file I'm supposed to include/point to/copy over that will make this work? Apparently, the IAK file for the Fieldpoint isn't enough to get the application to find the FP2010.

Mike

0 Kudos
Message 3 of 10
(4,356 Views)
You could put a cheap switch between your hardware and the rest of the network. That way your FieldPoint devices won't appear on the corporate network.

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
Message 4 of 10
(4,347 Views)

Mike,

Thanks for the reply.

No, the IT guys won't allow it.  They've got something running on the network that goes out and looks at MAC addresses.  If it sees something it doesn't recognize in it's list of "allowed" hardware (like Netgear or Linksys stuff), it shuts down the port that it's connected to.  (Sometimes I think the IT guys have taken over the company.)

The next thing I'm going to try is removing the 2nd NIC and deleting any reference to it in the registry. Then installing a new, never-installed NIC (of the same make & model) and see what PCI slot & bus it configures itself to.

I'll post my results, but I still think I'm missing something easy...

Mike

 

 

 

0 Kudos
Message 5 of 10
(4,341 Views)
Mike,

There is a lot of documentation on creating applications and networking Real-Time targets with host machines using multiple network cards.  Before I post a barrage a links I wanted to know if you are familiar with any of these articles. 
Mark
NI App Software R&D
0 Kudos
Message 6 of 10
(4,305 Views)
Mark,
 
Thanks for your reply.
 
Yes I am familiar, but I am not running anything in Real-Time. 
 
The EXE's are built with Labview, but run on the PC, not in RT on the FP2101.  The Fieldpoint FP2010 is just used to communicate with it's I/O.  
 
Further, this is not strictly a Fieldpoint problem...the EXE doesn't communicate with any of the ethernet equipment unless I build the EXE on the machine it is to be run on...not just the Fieldpoint.
 
Mike
 
 
 
 
0 Kudos
Message 7 of 10
(4,286 Views)

Hey, just taking a blind shot in the dark here...

I assume the build files are exactly the same, hopefully copied, not recreated...

Is your program calling a DLL that might be different from one machine to the other? (Shouldn't matter, but again something odd is going on)

Are the network drivers the same on each machine? (Shouldn't matter, but again something odd is obviously going on)

________________________________________________________

Use the rating system, otherwise its useless; and please don't forget to tip your waiters!
using LV 2010 SP 1, Windows 7
________________________________________________________
0 Kudos
Message 8 of 10
(4,279 Views)
Thanks for the reply.
 
When I built the EXE's, I first tried building them on one machine and copying them to the other machine using the same folder names, paths, etc.  I then tried building them to a network folder from one machine and then running them from the other...that didn't work either.
 
I know that when I build the EXE's, LV grabs a couple of DLLs that run the Fieldpoint stuff, but mabe is should be grabbing (or me including) something from MAX, because the Tek scope and Keithly DMM are configured in MAX as VISA resources....I just don't know.
 
The interesting this is that the source code is on the network, and it will run on both machines!
 
Mike
 
 
0 Kudos
Message 9 of 10
(4,275 Views)
Instead of copying things over, try to create an installer with all of those items.
________________________________________________________

Use the rating system, otherwise its useless; and please don't forget to tip your waiters!
using LV 2010 SP 1, Windows 7
________________________________________________________
0 Kudos
Message 10 of 10
(4,269 Views)