For anyone who finds configuring a message path difficult, there is a simple rule to follow, which always works.
Just keep repeating the pair of specifications....
Port, Destination [, Port, Destination]
....until you have completed the "journey".
A simple example, suppose I have a ControLogix controller in my chassis (doesn't matter what slot it is in), and a comms module in slot 5, and I want to Read from, or Write to, another ControlLogix controller in slot 8 of a remote chassis, with a similar comms module in any slot.
Now, the first pair of path parameters will define how we leave our controller, in our case we have to go onto the 1756 backplane, and for any module that is always Port 1. Once on the backplane, we want to go to the comms module in slot 5. So we have....
1, 5, ..... as the start of our path.
From the comms module we want to come out of the primary comms port, which is port 2 (port 1 is the backplane port), and go to our destination address, whatever that is. For Ethernet the destination address will be the IP address, and for DeviceNet or ControlNet it will be the Node address.
Say our remote Ethernet module has the IP address 192.168.1.67, then the second pair of path parameters, added on to the first pair, makes our path now...
1, 5, 2, 192.168.1.67,....
Now we have landed in our remote comms module, so we have to go out onto the backplane of the remote chassis Port 1), and our destination will be the slot number of the remote controller (slot 8). The path to the remote controller is then complete, being ....
1, 5, 2, 192.168.1.67, 1, 8
There will always be an even number of parameters, unless part or all of that path is already defined, which occurs if any part of the path is included in the I/O configuration, e.g. If I have my local 1756-EN2T comms module in the I/O config called "local_EN2T", then that name replaces the first pair of parameters ....
local_EN2T, 2, 192.168.1.67, 1, 8
and if I have the remote Ethernet module (as a child to local_EN2T) in the I/O configuration named "remote_EN2T", then that name replaces the part of the path, because it is already defined ....
remote_EN2T, 1, 8
if the remote controller is then added as a child to the remote Ethernet module, and we call it "remote_CLX", then our path can be entered simply as ....
remote_CLX
In fact we wouldn't enter it, we can simply choose it from a drop-down list, the same goes for any preceding path segments. Any named modules in the I/O configuration will appear in the drop-down list.
Now for the clever part. As we start to enter our path specification (Port, Dest, ...), then the software will echo (underneath the entry field) when it is a valid path segment. It does not mean the path is complete, it just means that, up to now, the path is valid.
So if I type 1,5 then either it will echo 1,5 under the entry field, or it will pop-up the name of the module at 1,5 e.g. "local_ENBT". As we continue to build our path, the echo will disappear, reappear, disappear, reappear, as each complete "hop" is added to the path, always replacing your [Port, Dest] pairs of specifications with the actual path-name, if it is known.
Long post, I know, but if you just remember [Port, Dest] repeated until you land in the target module you will not go wrong.