为了简化数据模型与设备存储区的对应关系,引入了一种地址模型。该模型通过编号的方式对不同类型数据进行区分,各数据的地址编号请看下面的表格: MODBUS地址模型 MODBUS数据模型/数据区 MODBUS地址编号 线圈 0 离散量输入 1 输入寄存器 3 保持寄存器 4 MODBUS地址模型的编号从1开始。 自动控制网www.eadianqi.com版权所有 由于每一种数据都最大支持65536个元素,因此理论上,对于线圈型数据来说,其地址范围为000001-065536;类似的,离散量输入,其地址范围为100001-165536;输入寄存器,其地址范围为300001-365536;保持寄存器,其地址范围为400001-465536。 由于65536是比较大的数值,实际应用一般不需要这么大的存储区,因此PLC厂家普遍采用的是10000以内的地址范围,即:线圈地址范围为00001-09999;离散量输入地址范围为10001-19999;输入寄存器地址范围为30001-39999;保持寄存器地址范围为40001-49999。 有了该地址模型,我们就可以从MODBUS寄存器的地址判断要访问的区块的类型。比如本文开头提到到地址40001就是保持存储器的第一个值的地址,而10001就是离散量输入的第一个值的地址;要注意的是,保持寄存器和输入寄存器的每个值的大小为16bits(字),而线圈和离散量输入每个值的大小为1bit(位)。 各PLC厂家根据PLC的实际情况,将MODBUS的地址模型映射到实际的存储区。一般来说,线圈对应过程输出映像区(Q);离散量输入对应过程输入映像区(I);输入寄存器对应模拟量输入(AI);保持寄存器对应数据块或V存储区或M存储区。以西门子S7-200 SMART为例,其MODBUS地址与存储器地址的对应关系如下表所示: 本文来自www.eadianqi.com MODBUS地址 S7-200 SMART存储区 00001-00256 Q0.0-Q31.7 10001-10256 I0.0-I31.7 30001-30056 AIW0-AIW110 40001-4×××× V-V+2*(××××-1) MODBUS地址模型对于MODBUS-RTU/ASCII和MODBUS-TCP协议都是适用的。 |