2024年5月28日发(作者:宋北辰)
Chapter 10 Modbus Communication
10.2 Modbus 通讯
10.2.1 Modbus 通讯
1. 介绍
XGB 内置通讯支持 Modbus, 即 Modicon 产品的通讯协议. 同时支持使用 ASCII 数据类型的ASCII
格式和使用Hex数据格式的 RTU格式. 通过在 Modbus 中所支持的功能代码实现通讯,特殊功能代
码如 01, 02, 03, 04, 05, 06, 15 和 16. 请参考 "Modicon Modbus 通讯协议指南".
2.基本规范
1) ASCII 模式
A) 使用 ASCII 数据通讯.
B) 每个桢使用 ‘:’ (冒号n: H3A), 作为头, CR/LF (Carriage return-line feed: HoD H0A), 作为尾.
C) 使用 LRC检查错误.
D) 桢结构(ASCII数据)
项目
大小
2) RTU 模式
A) 使用十六进制通讯.
B) 没有头和尾的区别. 从地址开始,到有 CRC的桢结束.
C) 在两个桢之间至少有 3.5 字符时间.
D) 使用 16 位 CRC检查错误.
E) 桢结构(HEX数据)
项目
大小
3)地址区域
(1)设定范围是从 1 到247,但是 XGB支持 0 到 63.
(2)地址 0 被用作传送地址. 传送地址是所有从站设备接受和自身地址响应的地址,XGB不支持此项功
能.
4) 功能代码区域
(1) 命令代码是 0~225. XGB 仅支持 01, 02, 03, 04, 05, 06, 15, 和 16.
(2) 如果响应格式是+(ACK), 使用相同的功能代码.
(3) 如果响应格式是-(NAK),返回同时设置功能代码的第8位是 1.
例.)如果功能代码是 03
-我们这里只写了功能代码的一部分, 因为仅有功能代码是不同的.
[请求]
0000 0011 (H03)
[确认+]
0000 0011 (H03)
[确认-]
1000 0011 (H83)
返回同时设置功能代码的第8位是
1
10-40
地址
1 字节
功能码
1字节
数据
n字节
CRC
2字节
头
1 字节
地址
2字节
功能码
2字节
数据
n字节
LRC
2字节
尾(CR/LF)
2字节
Chapter 10 Modbus Communication
5) 数据区域
(1)发送数据类型为 ASCII 数据(ASCII 模式) 或者 hex (RTU模式).
(2) 数据根据每个功能代码改变.
(3)相应桢的数据区域是响应数据或者是错误数据.
6) LRC 检测/CRC 检测区域
(1) LRC (纵向冗余检测) : 工作方式是 ASCII模式. 它是除了头和尾之外转换成 ASCII 的所有桢和的
补码,
(2) CRC (循环冗余校验):工作方式是RTU 模式. 使用 2字节 CRC 检验规则.
备注
1) 所有的数据可以是十六进制,十进制和二进制类型。如果我们把十进制7和10转换成各种类
型,结果如下:
十六进制 : H07, H0A 或者16#07, 16#0A
十进制 : 7, 10
7) 功能码类型
Modicon PLC
代码 功能码名称 注释
数据地址
01
02
03
04
05
06
15
16
8) 使用数据大小
对于数据尺寸, XGB支持 240 字节. Modicon 产品的数据大小对每个产品是不同的. 请参考 "Modicon
Modbus 通讯协议指南".
10-41
读取输出触点状态
读取输入状态
读取输出寄存器
读取输入寄存器
强制单个触点输出
设置单个寄存器
强制多个触点输出
设置多个寄存器
0XXXX(位输出)
1XXXX(位输入)
4XXXX(字输出)
3XXXX(字输入)
0XXXX(位输出t)
4XXXX(字输出)
0XXXX(位输出)
4XXXX(字输出)
读位
读位
读字
读字
写位
写字
写位
写字
2024年5月28日发(作者:宋北辰)
Chapter 10 Modbus Communication
10.2 Modbus 通讯
10.2.1 Modbus 通讯
1. 介绍
XGB 内置通讯支持 Modbus, 即 Modicon 产品的通讯协议. 同时支持使用 ASCII 数据类型的ASCII
格式和使用Hex数据格式的 RTU格式. 通过在 Modbus 中所支持的功能代码实现通讯,特殊功能代
码如 01, 02, 03, 04, 05, 06, 15 和 16. 请参考 "Modicon Modbus 通讯协议指南".
2.基本规范
1) ASCII 模式
A) 使用 ASCII 数据通讯.
B) 每个桢使用 ‘:’ (冒号n: H3A), 作为头, CR/LF (Carriage return-line feed: HoD H0A), 作为尾.
C) 使用 LRC检查错误.
D) 桢结构(ASCII数据)
项目
大小
2) RTU 模式
A) 使用十六进制通讯.
B) 没有头和尾的区别. 从地址开始,到有 CRC的桢结束.
C) 在两个桢之间至少有 3.5 字符时间.
D) 使用 16 位 CRC检查错误.
E) 桢结构(HEX数据)
项目
大小
3)地址区域
(1)设定范围是从 1 到247,但是 XGB支持 0 到 63.
(2)地址 0 被用作传送地址. 传送地址是所有从站设备接受和自身地址响应的地址,XGB不支持此项功
能.
4) 功能代码区域
(1) 命令代码是 0~225. XGB 仅支持 01, 02, 03, 04, 05, 06, 15, 和 16.
(2) 如果响应格式是+(ACK), 使用相同的功能代码.
(3) 如果响应格式是-(NAK),返回同时设置功能代码的第8位是 1.
例.)如果功能代码是 03
-我们这里只写了功能代码的一部分, 因为仅有功能代码是不同的.
[请求]
0000 0011 (H03)
[确认+]
0000 0011 (H03)
[确认-]
1000 0011 (H83)
返回同时设置功能代码的第8位是
1
10-40
地址
1 字节
功能码
1字节
数据
n字节
CRC
2字节
头
1 字节
地址
2字节
功能码
2字节
数据
n字节
LRC
2字节
尾(CR/LF)
2字节
Chapter 10 Modbus Communication
5) 数据区域
(1)发送数据类型为 ASCII 数据(ASCII 模式) 或者 hex (RTU模式).
(2) 数据根据每个功能代码改变.
(3)相应桢的数据区域是响应数据或者是错误数据.
6) LRC 检测/CRC 检测区域
(1) LRC (纵向冗余检测) : 工作方式是 ASCII模式. 它是除了头和尾之外转换成 ASCII 的所有桢和的
补码,
(2) CRC (循环冗余校验):工作方式是RTU 模式. 使用 2字节 CRC 检验规则.
备注
1) 所有的数据可以是十六进制,十进制和二进制类型。如果我们把十进制7和10转换成各种类
型,结果如下:
十六进制 : H07, H0A 或者16#07, 16#0A
十进制 : 7, 10
7) 功能码类型
Modicon PLC
代码 功能码名称 注释
数据地址
01
02
03
04
05
06
15
16
8) 使用数据大小
对于数据尺寸, XGB支持 240 字节. Modicon 产品的数据大小对每个产品是不同的. 请参考 "Modicon
Modbus 通讯协议指南".
10-41
读取输出触点状态
读取输入状态
读取输出寄存器
读取输入寄存器
强制单个触点输出
设置单个寄存器
强制多个触点输出
设置多个寄存器
0XXXX(位输出)
1XXXX(位输入)
4XXXX(字输出)
3XXXX(字输入)
0XXXX(位输出t)
4XXXX(字输出)
0XXXX(位输出)
4XXXX(字输出)
读位
读位
读字
读字
写位
写字
写位
写字