在网络拓扑图5-1中,在终端Q文件中,映射主站Q2下从站1对应的整形输出寄存器,IO变量组具体设置方式如下图所示:
图5-35 建立IO变量组
变量组建立完成后,在变量表中只显示一行,实际对应5个变量。变量组中的变量具有相同的属性,不同之处在于:变量名称和映射从站的寄存器号不相同。
注意:目前只有通用的MODBUS和“捷麦顺驰科技有限公司”的JMBUS协议支持变量组的建立,其它设备型号的站点暂不支持变量组的建立。
变量组名:是以“字母”或“下划线_”开头,后面可以跟任意字母、数字或者下划线_,字母不区分大小写,字符不能超过31个字符。变量组名是对这一个变量组的统称,而每个变量在数组中的位置可用统一的站点名和下标来唯一确定,其中变量名称 = 变量组名称 [下标1] [下标2]......
<变量组名称>后面的下标用于确定数组的维度和大小,例如:
a[10] b[2][3]
分别定义了一维数组a 和 二维数组b。
变量名称命名遵从一定规律-下标变化规律:每维的下标默认从0开始,下标的变化从第一维开始变化,每次+1,直到第一维下标达到最大值,如果变量组有第二维,则第二维下标+1,第一维下标清0,第一维下标再次进行+1操作,直到第二维下标达到最大值,如果变量组有第三维,第三维下标+1,第二维、第一维下标清0,继续进行+1操作,直到每维的下标都达到最大值。
组维度:目前建立变量组最多支持三个维度,用户可以根据需要选择变量组的组维度。
维大小:用户选择了组维度,需要规定每一个维度的大小。
注意:在定义每维大小时,数值必须大于1,数组中至少有一个元素。
偏移地址:此处所填的偏移地址是变量组的起始偏移地址,每个变量的偏移长度根据存储区类型和数据类型而定。其中关于扩展MODBUS协议具体查看文档《JM_MOD协议说明V1.2D.docx》
类型 |
存储区 |
数据类型 |
每个变量偏移长度 |
说明 |
常规MODBUS具有的存储区 |
离散输出(01\0F) 离散输入(02) |
BOOL |
1 |
|
整形输出(03\10) 整形输入(04) |
INT |
1 |
| |
扩展MODBUS增加的存储区 (扩展MODBUS继续沿用整形输入、输出的命令码) |
字节输出(03\10) 字节输入(04) |
INT |
1 |
1个FLOAT型是4个字节,需要读两个整形,因此变量偏移长度为2 |
FLOAT |
2 | |||
DOUBLE |
4 | |||
TEXT |
N | |||
浮点输出(03\10) 浮点输入(04) |
FLOAT |
2 | ||
DOUBLE |
4 | |||
|
|
|
|
|
图 0‑331建立IO变量组偏移长度
在图5-35中建立的IO变量组根据“存储区”和“数据类型”,在图5-36中得到每个变量偏移长度为1,因此每个变量的变量名称和偏移地址对照关系如下图所示:
变量名称 |
寄存器号 |
IOgroup[0] |
0 |
IOgroup[0] |
1 |
IOgroup[0] |
2 |
IOgroup[0] |
3 |
IOgroup[0] |
4 |
图 0‑332变量名称与寄存器号对照表