Might check the Eaton site for tools. I remember that Rockwell Automation has such a tool. A DHCP server that runs on a desktop OS Its their BootP DHCP EtherNet/IP Tool
Get device IP-address within auto-ip range (169.254.x.y)
I am a PLC programmer (industrial automation) with verry little programming experience in "PC" programming languages such as Python, C, and visual basic. One of my customers has a machine that I have written software for on a simple Eaton PLC (Eaton Easy e4) a while ago. This customer has since built and installed more then 1000 of these machines. My customer wants his field technicians to be able to take a laptop to the machine, connect the laptop to the ethernet port of that PLC, and through simple interface be able to view and edit some of the data in the device. The eaton programming software is too complicated for this since the people who need to use it are not always technicaly skilled.
The PLC's are never part of a network, so there is nothing else connected to them apart from the laptop at that point. These Eaton PLC's have a modbus Server functionality built into them and an ethernet port and that's how I can interface with them over ethernet.
So far I have succeeded in creating a Modbus TCP client in visual basic to read and write the modbus registers. But here's where I'm stuck: These Eaton PLC's are by default set to 'auto-ip'. For my test setup I have checked the IP address of that specific PLC manually and then entered it manually in my application, but this is not what I want for my not so technical customer. I want them to be able to click 'connect' and let visual basic sort it all out (if at all possible...), or any other solution I havent thought of..
As mentioned earlier, these PLC's have auto-ip, so it first tries to get an IP address from a DHCP server, if there is no DHCP server (as is the case with these PLCs, because they aren't connected to a network) they will assign themselves an address somewhere in the range 169.254.x.y. So I can always assume the PLC has an address in that range.
So the question in short: if I have one device (the Eaton PLC) connected to my laptop (directly, no switch, no other devices), and I know it's range to be 169.254.x.y, is there a way to scan for that device and find it's IP address?
Or perhaps any other suggestion that lets me connect my visual basic application (modbus TCP client) to the PLC, such as a DHCP server on the laptop perhaps..? If the laptop can give the PLC an IP address, and I know which address has been given then I know the IP address I need to use in my Modbus TCP client..
Thanks in advance for your suggestions :)