I run into an application written on C#.NET dated 2014. The App uses Ingear.ABLINK 3.0 to communicate with a PLC5 via Ethernet. The end user decided to move all the PLCs from a LAN (wired) to a new IP address (via Default Gateway). All PLCs can be see by Windows but the C# App can’t communicate with the PLC. My guess is that when the Ingear.ABLINK was set up, it was prepared to use this LAN IP address for the PLCs, now that we are changing the IPs for the PLCs, I don’t have communication with the PLC. Do I need to modify and rebuild this App using the new IPs on Ingear.ABlink, or there is a “config file” that Ingear.ABlink reads that I can easily change the IPs (tags remain unchanged).
Hi there and welcome to the forums.
The short answer is yes, you would need to update the IP addresses in your C# application. If these addresses are hard-coded in the program classes then you will need all the source-code (Visual Studio solution file) and rebuild the project and executable for re-deployment.
I would check if there is an option in the front-end GUI to update the IP address of devices, or some sort of XML or data file in the install directory that the application is reading IP addresses of device at program launch, otherwise, you’ll need to look at the source code to see where the IP addresses are hard-coded, update, recompile and deploy.
Hopefully this is something that you’re equipped to do, otherwise, my company may be able to assist provided you have access to the source files. Can I ask where are you located? Keep us up to date on your progress.
Thank you Fred, the C# application uses an XML config/file that has the IPs, I changed the IPs here and stop/start the application but no connection that is why I was thinking that Ingear.ABLink has another config file they use for the tags and the IPs.
Hmm, if the application is parsing the new IP address in the XML file correctly it should be working since, as you say, you are able to ping the PLCs from the workstation. Without looking at the source code it is difficult to tell what is going on? I would look for a log file in the installation directory to see if it will provide any hints as to what is happening. The instantiation of the ABLinkController object is an application level call.
I’ve attached an image of what the call looks like for a project I did for a client some years ago. The IP in this application was hard-coded, however, it should only be called once in the application. There were no hardware changes correct?
Thank you Graham, you are correct, there is no hardware changes, the only thing it bothers me, is that the old IPs where connected via LAN (CAT5e hard wired) NIC2 and the new one IPs are connected via a Default Gateway (NIC1). There is a possibility the ports were bind to the old LAN IP and now, it doesn’t know how to resolve to send the packages. In other words, a Network issue, since the C# App binds the ports and IPs for the old address (NIC2) to the localhost and now we have a Default Gateway to resolve the new addresses (NIC1). Still don’t know what direction to go. My first try was to figure out if the issue was with Ingear.ABlink and the need to update a config file but since there is no hardware changes, I am now thinking this may be a “network issue” and not Ingear.ABlink. Just my thoughts
Ok, keep us posted on what you find. Also, just to confirm, you did set the Default Gateway addresses in the PLCs too right? If you didn’t, this could be creating an issue as well as the PLCs won’t know how or where to route to.
yes we did set up the Default Gateway on the PLCs, that is why we can see the PLCs from the Windows servers on the new network.
Ok, just making sure you weren’t pinging locally and trying to connect your application remotely. Well, let us know what you uncover, I’ll be interested to hear.
nope, we will continue to research, we will post any status on this one.