BC 系列控制器通过 K-bus 总线与各种端子实现数据交换,而 K-bus 总线是一种 6 线制的本地高速串行总线;其特点是在数据传送过程中,采取先排序字节地址、后排序位地址的原则。因此,在计算 BC(BCxx50除外) 系列 I/O 地址时,应注意以下几个方面的问题:
一、I/O 端子排列顺序
原则上来说,可以根据需要任意排列,没有限制;但尽量按照先排列模拟量端子、特殊功能端子,最后排列数字量端子的原则进行排列,以便为软件编程分配 I/O 地址时提供方便。
二、 I/O 端子的模式设置
Beckhoff 的 I/O 端子分为:Complex (复杂型)方式、Compact (紧凑型)方式和 fieldbus(现场总线型)方式。出厂设置为 Complex (复杂型)方式。推荐用户按照下列方式处理:
1. 数字量 I/O 端子
保留出厂设置的 Complex (复杂型)方式。
2. 模拟量 I/O 端子
一般情况下,如果没有特殊要求,应将该端子设置为Compact (紧凑型)方式,因为在这种方式下,端子所占据的地址空间和端子的类型是相互匹配的。
例如:KL3002(假设为第一个 I/O模块),当设置为Compact (紧凑型)方式后,所占据的地址空间为:%IW0 (第一通道)和 %IW2(第二通道);KL4004(假设为第二个 I/O 模块),当设置为Compact (紧凑型)方式后,所占据的地址空间为:%QW0 (第一通道)、%QW2 (第二通道)、%QW4 (第三通道)和 %QW6(第四通道)。
但当 I/O 端子设置为 Complex (复杂型)方式时,不仅占据输入地址空间,同时也占据输出地址空间,该种方式主要用于 BC 控制器通过 K-bus 总线访问 I/O 端子的内部寄存器,以满足用户对端子的特殊设置。
例如:KL3002 端子(假设为第一个 I/O 模块),当设置为Complex (复杂型)方式后,所占据的地址空间分配如下:
输入地址空间:
%IB0 (第一通道状态字节)、%IW2 (第一通道数据字)
%IB4 (第二通道状态字节)、%IW6 (第二通道数据字)
输出地址空间:
%QB0 (第一通道控制字节)、%QW2 (第一通道数据字)
%QB4 (第二通道控制字节)、%QW6 (第二通道数据字)
KL4004 端子(假设为第二个 I/O 模块),当设置为Complex (复杂型)方式后,所占据
的地址空间分配如下:
输入地址空间:
%IB8 (第一通道状态字节)、%IW10 (第一通道数据字)
%IB12 (第二通道状态字节)、%IW14 (第二通道数据字)
%IB16 (第三通道状态字节)、%IW18 (第三通道数据字)
%IB20 (第四通道状态字节)、%IW22 (第四通道数据字)
输出地址空间:
%QB8 (第一通道控制字节)、%QW10 (第一通道数据字)
%QB12 (第二通道控制字节)、%QW14 (第二通道数据字)
%QB16 (第三通道控制字节)、%QW18 (第三通道数据字)
%QB20 (第四通道控制字节)、%QW22 (第四通道数据字)
由此可见,Complex (复杂型)方式和 Compact (紧凑型)方式在占据 I/O 地址空间方面差异显著。
三、系统端子 KL9XXX 的影响
一般情况下,KL9XXX 系统端子只占据物理空间,不占据地址空间;但带有诊断功能的系统端子 KL9110/KL9160/KL9210/KL9260 除外,这四个端子均占据 2 位输入地址空间。因此,实际使用过程中应注意。
由于 K-bus 总线访问 I/O 端子的特殊性,即:先排序字节地址、后排序位地址的原则。这也是为什么当插入一个模拟量端子后数字量端子的地址会依次往后推的原因。