寻址和路由

寻址控制网络的拓扑结构具有唯一的地址映射。一个 节点地址 进行了详细的分层建立。

每个网络结构中都包含一个本地地址定义节点在本地网络中唯一的标识。对于整个的节点地址,所有本地地址都会自动的加上由本地父节点分配的子索引。此外前面还必须具有他的父节点的地址。

因此,子索引的长度(以比特算)是由设备决定的,而本身地址的长度是由网络类型决定的。

无主网络的节点是具有地址0的顶节点。主网络中不包含父节点的节点也是一个顶节点,并且可以被分配到主网络中的本地节点中。

插图 35: 主网络和子网络示例

在上述示例中,子节点的地址是以十六进制表示的。地址的前四位代表主网络中的父节点,例如PLC1中的 0x007A=122 for PLC1。接着的字节(蓝色显示)表示按照父节点定义的本地地址,例如: C=12网络节点地址为12。

由于地址的结构路由算法可以保持相对学习。例如,没有路由表,本地信息是必须的:自己的地址以及父节点的地址。在一个节点上将会按照一定的方式处理数据包:

  • 如果目标系统的地址等于当前的节点地址,那么它被认定为接收器。
  • 如果目标系统的开始地址是当前的节点,那么数据包是发往子节点或者派生节点的,那么数据包应该继续往前。
  • 否则,接收器的当前节点如果没有派生节点。数据包将会返回到所属的父节点。

相对地址是一种特殊的功能。 相对地址不包含接收器节点的节点号,只包含从发送器到接收器的路径。其原理类似于文件系统中一个相对路径:一个由步数量组成的数据包不得不“往上”移动,紧挨着各自的父节点,后来的路径自动排到目标系统之后。

相对寻址的优势在于,在相同的子树中的两个节点在整个网络移动到另一个位置是仍然可以实现通讯。由于这样的移动导致绝对的节点地址发生变化,但是相对的地址仍然有效。

地址测定

从节点定义的某个地址,或者基于父地址或者基于顶端节点。因为这个原因一个节点在运行脚本时将发送地址测试信息到主网络中。如果消息没有回应,那么节点就被认为是一个顶端节点,同时他也会不断的尝试检测父节点。父节点会根据通知地址做出反应。其上的节点会自动完成地址配置并将它传递到子网络中。

地址测试在系统脚本启动或者PC编程系统重启的时候进行重新测定。尚未实现:一旦一个地址被冻结,地址测试将不会再执行。