寻址手段:将控制网络的拓扑结构映射到唯一的地址。
节点地址是分级构成的:对于每个网络连接,相关的块驱动程序都会确定一个本地地址,该地址可唯一标识本地网络中的节点。完整的节点地址如下所示:本地地址放在父节点分配的本地网络子网索引前面。而子网索引则放在父节点地址的前面。因此,子网索引的长度(位)由设备决定。反之,本地地址的长度则由网络类型决定。没有主网络的节点是顶级节点,地址为 0。没有父节点的主网络节点同样也是顶级节点。它将获得主网络的本地地址。
点击此处查看控制网络示例:

在示例中,节点地址用十六进制表示。前 4 位数字代表主网络中相应父网络的地址,例如0x007A=122
代表PLC1
。下一个字节(蓝色字体)为子网索引保留,后面是本地地址,例如C=12
表示节点 ID12
。地址的结构化使精简的路由算法成为可能。例如,路由表就不需要了。信息只能在本地查询:通过自己的地址和父节点的地址。在此基础上,节点才能正确处理数据包:
-
如果目标地址与当前节点的地址一致,那么这就是接收者。
-
如果目的地址以当前节点的地址开头,那么数据包要么是直接发给节点的子节点,要么是发给节点的子节点,因此必须转发。
-
在所有其他情况下,接收者都不是当前节点的后代,数据包必须转发给自己的父节点。
相对地址是一种特殊情况:相对地址不包含接收者的节点编号,而是直接描述从发送者到接收者的路径。其原理类似于文件系统中的相对路径:地址由数据包必须向上传输的步数组成。这些是通往相应父节点的步骤,以及从后续路径向下通往目的地节点的步骤。
相对寻址的优势在于,即使整个子树转移到整个网络的另一个地方,同一子树中的两个节点也能继续通信。虽然绝对节点寻址必须因这一转变而修改,但相对寻址仍然有效。
地址确定
节点要想知道自己的地址,就必须知道其父节点的地址,或者知道自己是顶级节点。为此,节点会在启动过程中向所有网络设备发送一条信息,以确定地址。只要没有收到该信息的回复,节点就会认为自己是顶级节点,但会继续寻找可能的父节点。父节点通过公布自己的地址做出回应。因此,节点将独立完成其地址,并向子网公布。地址的确定可以在启动过程中完成,也可以根据用于编程的 PC 的要求进行。