Setting geographical network addresses with TCP/IP

  • Thread starter Rob Hulsebos Philips CFT
  • Start date
R

Thread Starter

Rob Hulsebos Philips CFT

Hi, interesting problem with network addressing: I have a machine with 30 embedded PC's, stretched out along a conveyor belt (sort of). Each PC, from left to right, will do something specifically to the products passing along via a robot controlled by that PC. They are all connected to a 100 Mbit/s Ethernet, and a 31st PC is responsible for controlling all 30 others. All PC's run NT embedded and have the same application running. From the controlling PC, they receive a job file containing the commands they have to execute, and when. This job file is specific for each PC, and the location of the PC (operations to the products have to be made in a certain order). The configuration of the IP-addresses is: 192.168.0.1 for the first PC (leftmost), up to 192.168.0.30 for the last PC (rightmost). So far, easy. It is clear who is where. Now comes the catch. The operator has the option to add and remove robots and the accompanying PC's, or to shift them around to other locations in the machine. Don't ask why, it is very application specific, it happens depending on the production demands. I thus lose the mapping between IP-address and location of the robot in th machine. I.e, IP-address 192.168.0.1 could be no longer the left-most PC in the machine. This means that it receives the wrong job file. I want to prevent that. It is no option to have the operator reconfigure the PC's, as they are headless (no video, no keyboard, no mouse, etc.). The solution that we're thinking of is using the parallel port for setting the lowest 8 bits of the IP-address, via a dongle (sort of). When a robot and its PC are moved around and connected to the base of the machine, they automatically get attached to the dongle for that location, and thus also get the lP-address belonging to that location. Question: is this possible at all in NT? Are there any other possibilities to get 'geographical' addressing? I know of the same problem in train networks, but it requires relays in the network-connection, which is only possible when using a bus, not a star topology as with 100Base-TX. Is it possible at all to change an IP-address dynamically? Or must I reboot NT? Sincerely, Rob Hulsebos / Philips CFT [email protected]
 
A
Would it be possible to write an application on the controller PC (#31) to allow your operators the ability to make changes to PC/job file/ parameters? IP addresses would remain constant, and jobs would be assigned by physical location. I'm imagining a graphical interface with perhaps a table with drop-down job selection menus. Each IP address could be dynamically assigned a specific job file from this table. NTE and WINNT are not capable of dynamic TCP/IP re-assignment, although it is possible to do in Windows 2000 Pro. Regards, Alan Brause
 
G

Greg Goodman

i think it's a mistake to use the physical IP address of a machine to identify its logical role in the process. i'd suggest a level of indirection, such as specifying machines by name, and using a runtime-configurable name lookup (such as the hosts file or DNS) to resolve the address. i realize you don't have consoles on your robot controllers, but you'd only need any sort of user interface to a file on the master station, and that interface need not be a local keyboard and mouse. for example, the master control program could resolve addresses using a textfile name/address map, stored in an exported directory. the file could be accessed and modified from another machine, say a laptop plugged as needed into the ethernet.
 
Just my two cents but: Why do you map IP to Location? I like the IDEA of a dongle, instead of the low 8 bits of the IP why not just create a Location SN. When a Device is placed on the LAN and Dongle for the Location SN is installed and accepted it would announce to the Job control PC where it is at (Location SN). The Job Control PC would then make necessary changes to the routing control. IP is not deterministic of location (other than subnet or domain)
 
W

Wright Sullivan

Rob- First the easy part: NT4 won't let you change IP addresses without a reboot (Win2000 allows this). Regarding the rest of your post, I'd suggest that you may be able to have your server query your network switch via SNMP to find out what IP address is connected to what port (assuming that switch ports ARE geographically fixed to physical locations, not floating with the computers). Then, once your server determines what IP address is at "physical position #xx" (by querying the switch) you could have it send the correct file for position #xx. Exactly which IP address it has becomes unimportant. If you want to email me, feel free. Wright Sullivan A&E Engineering, Inc. [email protected]
 
T

Theo Baarslag

Hello Rob, my thought is to add a bit more overhead, and let the IP-addresses as they are. In this overhead, you can use the dongle solution to determine where the machine is currently employed, and ask for the proper configuration file for that location. Another solution, if the setup doesn't change that often, is to use DHCP on a central server (the 31-address perhaps?). This list could then be modified (using a screen, I know) whenever the setup changes. The robots keep the same MAC-address, they get a DHCP-assigned IP-address based on that MAC-address and the list on the server when ever they boot; voila you can change the addresses whenever the setup changes without reconfiguring each machine locally. That is the best I can come up with. Hope it helps, KR, Theo Baarslag PLC-/CIMspecialist IAMS Europe bv, Coevorden
 
A

Alex Pavloff

That's a pretty tricky problem there, and I think that you've got the right idea with the machine assigning the IP address to the NT machine. What you're really looking for is a way to automatically change the IP address. How about this: Write a program that monitors the parallel port. When the IP address from the port changes, edit the registry key containing the IP address. Its HKLM\System\CurrentControlSet?\Services\<network interface>\Parameters\tcpip\IPAddress. Then, you shold be able to restart the networking services, without having to reboot the entire machine.
 
K
Hi Rob... It sounds to me like your issue is not with IP addressing so much as it is with identifying what station a particular robot is in at any given time. Just a thought but I might approach this issue in this way... I would install a 7 pole plug receptacle at each robot station. A mating plug on each robot would connect to a DC input card in the PC. Of the seven pins one would be a ground connection another would be for a + 24 Vdc source. The other pins (you would only need 5) I would go to the inputs. Using binary coding you could then designate each station... you would close poles on the receptacles as needed. Pole 1 would connect to Inp1 and have a value of 1. Pole 2 would connect to Inp2 and have a value of 2. Pole 3 would connect to Inp3 and have a value of 4 etc. etc. In this fashion... if the PC saw Inp1 and Inp3 true and all the others false it would know that it was attached to station 5. Your program could then request the required program file. With this solution there would be no need to worry about network addressing at all and your could continue to use a DHCP daemon for IP assignment. Best Regards... Rick Kelly Chief Electrical Technician Natural Cuts, Cheese Operations Kraft Canada Inc. [email protected] (613) 537-8069 (V) (613) 537-8044 (F)
 
H

Hullsiek, William

Actually, instead of changing the IP address, you may want to use a DNS name that has more of a "logical" address instead of the network address. So basically, have the program send to a DNS name instead of a TCP/IP name. This may reduce potential failure modes.. - Bill Hullsiek MES Software Engineer.
 
M

Michael Griffin

You might wish to consider the following. Each machine has two numbers - IP address and station ID. The IP address can stay fixed, while the station ID is derived from the dongle. When it comes time to send a job from the master PC to the stations, poll each IP address and ask it what its station ID is. You now know what station each IP address is associated with and can send the job file to the appropriate station based on this information. There should be no need to ever change the IP address in this scenario. This assumes you are able to add the appropriate logic to both the master and slave computers, and that the communications protocol will permit you to add an "identify yourself" command. You did not mention whether these are open to modification. ********************** Michael Griffin London, Ont. Canada [email protected] **********************
 
R

Rob Entzinger Schneider Automation

Does each PC have a unique function??? Do differrent operators logon?? Depending on the answers above instead of using IP addresses you can use names. Rob E.
 
C

Crucius, Wesley

I do not think this is correct. NT may not let you change computer name or domain without reboot. But many times I have even switched between DHCP assigned and Staticly assigned IP without reboot. If you can do this you can certainly change from one static IP to another. What I don't know, and I said this before, is if you can do it programmatically... That said, this is an even better idea! I have seen tracert source code floating around the 'NET...
 
R

Richard Theron

Hi Rob If you have DNS (Domain Name Server) on the equipment yes, your requirements are a function of the product not the network. Regards Richard Theron FieldServer Technologies 1991 Tarob Court, Milpitas, CA, 95035, USA Phone: 408-262 2299 ex 125 Fax: 408-262 9042 www.fieldserver.com
 
Hi William... The DNS approach still relies on knowing the IP address of the station that owns a particular domain. Best Regards... Rick Kelly Chief Electrical Technician Natural Cuts, Cheese Operations Kraft Canada Inc. [email protected] (613) 537-8069 (V) (613) 537-8044 (F)
 
H

Hullsiek, William

Actually, i use dns to point my MES workstations to a server. For instance, i have two server named ABCMES1, and ABCMES2 each with their own IP address. I have another DNS name called MESDB When ABCMES1 is the database server, the DNS name points to ABCMES1 When ABSMES2 is the database server, the DNS name points to ABCMES2 Changing the DNS name does not require a reboot. All I was suggesting, is that instead of manipulating the IP address, you manipulate DNS names. Alternatively, you could write a program to determine which operations you perform based on the DNS name(s) that maps to your IP address.
 
S
Hi Rob This may be a little expensive, but I know in production situations it is sometimes better to spend the money and get things going. 1. Identify exactly how many of the pc's you need to alter the IP address on. Lets hope it isn't all of them. 2. Try to find a way to minimize this number by planning all these change overs so that where possible units can be placed where they will still operate as needed. 3. For the units which still could use an IP address change, purchase these removable hard drive enclosures and install them in these machines. Mark these enclosures in a way that will make it easy to keep up with where they went originally. Make a chart indicating which machines they need to be in for each set up. Then when you do the change over, the machines which can be moved into locations to eliminate the need for an IP address change are moved and the ones where the IP addresses need to be swapped with others, the hard drives can be swapped thus changing the IP address so the prople program files will be sent to them. Stan Jacobs [email protected]
 
S
Hi Rob This may be a little expensive, but I know in production situations it is sometimes better to spend the money and get things going. 1. Identify exactly how many of the pc's you need to alter the IP address on. Lets hope it isn't all of them. 2. Try to find a way to minimize this number by planning all these change overs so that where possible units can be placed where they will still operate as needed. 3. For the units which still could use an IP address change, purchase these removable hard drive enclosures and install them in these machines. Mark these enclosures in a way that will make it easy to keep up with where they went originally. Make a chart indicating which machines they need to be in for each set up. Then when you do the change over, the machines which can be moved into locations to eliminate the need for an IP address change are moved and the ones where the IP addresses need to be swapped with others, the hard drives can be swapped thus changing the IP address so the prople program files will be sent to them. Stan Jacobs [email protected]
 
Top