TCPClientConnect confusing documentation.
The more I research this the more uncertain I become. I hope you can help clear some of this confusion.
The controller I most likely will end up using is AC800M
a) Does this controller support a normal TCP/IP network at all? Do I need a physical ethernet connection from point A to point B in order to communicate A-B over TCP/UDP?
b) Can it be just connected to a switch (I figure it doesn't support DHCP so I need to set the IP somewhere, I cant set it in control builder because control builder requires a connection from the controller to the PC..)
If it uses TCP/IP over a physical connection, why is this limitation in place? TCP/IP is not a routing protocol, just send the packet to default gateway, the rest is my (routers) problem.
c) The documentation refers to "Programming Station" which I am guessing is the PC I have control builder installed on. Control Builder requires me to have an IP connection to the controller. Suppose I want to assign the controller an IP in my normal network (192.168.x.x). Do I have to first connect it to my PC with ethernet, upload (download) my program, finally change the device IP to local network IP, disconnect it, connect it to the switch and hope for the best?
I dont have a chance to test most of this for another two weeks so any input is much appreciated!
Voted best answer
As far as I can tell (I do not mainly work with the AC 800M) you can use the TCP or UDP libraries to exchange telegrams with any routable peer on the network.
The Control Builder M, CBM need to be able to route traffic to AC 800M as well. This connection is not required after download, but for debugging purposes, subsequent download, etc. its of course a benefit if CBM is able to reach the AC 800M at all times.
The initial IP address can be set with a serial communication based tool part of the CBM installation.
The IP address can be changed later on by a download. A CBM project have two locations where IP is defined; A) Remote System (the "target" for the next online/download attempt) and B) Ethernert port 1 + Ethernet port 2. Normally Remote System setting equals Eth1. But Eth1 can be set with another address, this address will be taken AFTER download AND AFTER a subsequent controller (short) reset. This way you can actually change the IP address remotely via Ethernet & download (otherwise serial connection is required). Of course, to resume connection with CBM, the Remote System address must be changed to whatever was downloaded. The main purpose of Eth2 is to enable redundant routing, but it may be used to communicate with a second network as well. However, only one Default Gateway setting is possible.
AC 800M run RNRP which is a routing and redundancy protocol proprietary to ABB.
Correctly configured, RNRP will automatically discover router nodes and update the routing table of AC 800M so that it can exchange telegrams with devices on remote networks. If a redundant route exist; RNRP will, when necessary automatically update the routing table to maintain connection, keeping the application "unaware" of that the primary route went down. Once the primary route is open, the routing table is restored back to default. Hence, all applications desiring to make use of RNRP should always address its communication peers by their primary interface.
AC 800M also support routing via Default Gateway; also in combination with RNRP.
If your peer does not run RNRP, the Default Gateway is your option. Define Default Gateway and your TCP or UDP application should work well.
If you like to peek into a controller's networking settings, use the CBM->Maintenance->Remote System->Controller Analysis->Network Information->Get. The output will among a lot of other network information also contain the ARP cache and the routing table. If you have set the Default Gateway, it will appear as 0.0.0.0 in the table.
The IP Address of the controller is set with a serial cable. You'll need a 9 pin DSub serial port on your PC or a USB / Serial convertor that properly supports tansmitting a "break" character.
A: Yes, its a 10M tcp/ip connection with a static address. No, you dont need a point-to-point crossover cable
B: Yes, not only "can" it be connected to a switch it "should" be connected to a switch. Default gateways are only used when the device is in a differnet subnet. This is a DCS - Never put devices in different subnets, you're asking for a world of hurt. Anyway, ABB uses a proprietary RNRP protocol to handle routing properly.
C:Use the serial cable to configure the static IP address.