主题
和利时 PLC Modbus 协议
平台支持通过 Modbus RTU/TCP 协议,与和利时 PLC 进行通讯,支持 LK/LE 系列 PLC 型号。
NOTE
需要升级到 TopStack V5.6.8 及以上版本
通道设置
通道参数设置与通用 Modbus 协议相同,请参考 《Modbus 接入手册》。
寻址方式
设备地址
点表中的【设备地址】对应的是 Modbus 子站地址(1-247)。
点位寻址
和利时 PLC 将数据单元映射到 Modbus 地址空间,以通过 Modbus TCP 协议进行访问。 我们将 PLC 数据单元名称指定为 点位地址,用户不需要关心地址映射的细节。
完整的点位地址格式如下:
- 布尔型:
<数据区><地址>.<位号>
,示例 IX0.0 - 整数型、浮点型:
<数据区><地址>[字节顺序]
,示例 MW10 - 文本型:
<数据区><地址>.<字符长度>[字符顺序]
,示例 MW10.5L
LE 系列地址
地址范围 | 测点类型 | 读写 |
---|---|---|
IX0.0 ~ IX511.7 | 布尔型 | 只读 |
IW0 ~ IW510 | 布尔型、整数型、浮点型、文本型 | 只读 |
QX0.0 ~ QX511.7 | 布尔型 | 读写 |
QW0 ~ QW510 | 布尔型、整数型、浮点型、文本型 | 读写 |
MX0.0 ~ MX7816.7 | 布尔型 | 读写 |
MW0 ~ MW8190 | 布尔型、整数型、浮点型、文本型 | 读写 |
LK 系列地址
地址范围 | 测点类型 | 读写 |
---|---|---|
IX0.0 ~ IX4095.15 | 布尔型 | 只读 |
IW0 ~ IW65535 | 布尔型、整数型、文本型 | 只读 |
ID0 ~ ID32767 | 整数型、浮点型、文本型 | 只读 |
QX0.0 ~ QX4095.15 | 布尔型 | 读写 |
QW0 ~ QW65535 | 布尔型、整数型、文本型 | 读写 |
QD0 ~ QD32767 | 整数型、浮点型、文本型 | 读写 |
MX0.0 ~ MX3782.15 | 布尔型 | 读写 |
MW0 ~ MW60535 | 布尔型、整数型、文本型 | 读写 |
MD0 ~ MD30267 | 整数型、浮点型、文本型 | 读写 |
位支持
对 IW、QW、MW 数据区,可以在地址中增加位号。
地址格式示例:IW10.0
表示读取 IW10 的第 0 位。
CAUTION
LE 系列每个地址占用 8 位。
LK 系列每个地址占用 16 位。
字符串类型
IW,QW,MW 均支持字符串类型,读取字符串类型的寄存器, 需要在地址后增加字符长度和字节顺序的配置。
格式:<地址><.字符长度>L 或 <地址><.字符长度>H
。
示例:
- MW32.10H 表示起始地址为 32 的寄存器连续 10 个字符(高地址在前)。
- MW32.10L 表示起始地址为 32 的寄存器连续 10 个字符(低地址在前,默认顺序)。
字节顺序支持
Modubs 中每个寄存器占用一个“字”( 2 个字节)的空间。我们可以通过在点位地址
上增加后缀
来调整字节顺序。
- 如果需要每个“字”交换高低字节位置,可以增加地址后缀“X” ,如
MW10X
。 - 如果一个测点占用了多个“字”,默认的读取顺序是低字在前,高字在后,如果读取数据时,需要高字在前,低字在后,可以增加地址后缀“Z”,如
MW10Z
。 - 如果需要高字在前,低字在后,且每个“字”交换高低字节位置,可以增加地址后缀“XZ” ,如
MW10XZ
假设,某测点为单浮点数(float32),起始地址为 MW10,在 Modbus 寄存器中需要占用两个寄存器,数据存放顺序为 ABCD,数采驱动在读取数据时,不同的字节顺对应的地址格式如下:
ABCD -> MW10
BADC -> MW10X
CDAB -> MW10Z
DCBA -> MW10XZ
示例
地址 | 测点类型 | 数值类型 | 说明 |
---|---|---|---|
IX1.0 | 布尔型 | bool | |
IW10.0 | 布尔型 | bit | |
IW12 | 整数型 | uint16 | |
IW4 | 整数型 | float32 | ABCD 字节顺序 |
IW4Z | 整数型 | float32 | CDAB 字节顺序 |
QW18 | 浮点型 | float32 | |
MW10.5H | 文本型 | char | 读取起始地址为 MW10 的连续 5 个字符 |