TON90B-1上位机MODBUS通讯协议(V1.1 20100209)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如果 TON90B-1 收到错误的信息,返回帧格式如下:
地址
功能码 错误码
CRC 校验码
1 字节
1 字节 1 字节
2 字节
返回功能码在收到的功能码基础上加 0X80。 错误码的定义如下:
-2-
TON90B-1 与上位机的 MODBUS 协议说明
错误码 0X02 0X03
定义 校验码错。 数据错误,查询超过 100 个整形数时,会返回此 信息。
第5位
通道 6 是否关闭:1:是;0:否
第6位
通道 7 是否关闭:1:是;0:否
第7位
通道 8 是否关闭:1:是;0:否
通道 1 的浓度值,高位在前
通道 1 的状态
数据位号 数据定义说明
第0位
是否预热:1:是;0:否
第1位
是否故障:1:故障;0:正常
第2位
是否 A1 报警:1:是; 0:否
第3位
是否 A2 报警:1:是; 0:否
3.1 查询功能码 0X03__________________________________________________ 1 3.2 设置功能码-0X80 _________________________________________________ 3
4 数据定义 _______________________________________________________4
如果支路模块的量程和单位为:40.0%LEL,当前检测到的气体浓 度为 5.2%LEL,那么支路模块上传的公共模块时,将数据分解为:量 程:400, 单位:UNIT_01LEL,当前气体浓度:52。
如果支路模块的量程和单位为:5.0(无单位),当前检测到的气体 浓度为 1.2,那么支路模块上传的公共模块时,将数据分解为:量程: 50, 单位:UNIT_01NONE,当前气体浓度:12。
3.1.4 主机对信息处理的说明 3.2 设置功能码-0X80
此功能码用于上位机设置控制器的机型、地址和波特率。
3.2.1 上位机发送的数据格式
从机地址 功能码
机型
1 字节 1 字节(0x80) 1 字节
地址 1 字节
波特率 1 字节
机型列表:见4.2 控制器机型的定义; 地址:1~250。 254 为广播地址,0 代表不响应; 波特率:见4.3 波特率的定义。
目录
1 适用范围 _______________________________________________________1 2 通讯约定 _______________________________________________________1 3 命令解释 _______________________________________________________1
TON90B-1 与上位机的 MODBUS 协议说明
编写: 审核: 批准:
TON90B-1 与上位机的 MODBUS 协议说明
版本号 V1.0
V1.1 征求意见稿
版本历史
修改人 任善明 王平
修改日期 2010-01-04 2010-02-09
说明 初次版本 修改文档格式 字节定义有改
动。
-2-
TON90B-1 与上位机的 MODBUS 协议说明
0.
9600
1.
4800
所代表的含义
4.4 气体类型的定义
气体类型使用如下定义: #define GAS_NONE #define GAS_FLA #define GAS_H2 #define GAS_CO #define GAS_H2S #define GAS_NH3 #define GAS_CL2 #define GAS_O2 #define GAS_NO #define GAS_SO2 #define GAS_NO2 #define GAS_CO2 #define GAS_O3 #define GAS_ETO #define GAS_HCN #define GAS_HCL #define GAS_VOC
4.2 控制器机型的定义
控制器代码
所代表的机型
-5-
0. 1. 2. 3. 4. 5. 6. 7.
其他
TON90B-1 与上位机的 MODBUS 协议说明
ES2000 TON80 TON90B ESC2000 ESC3000 TON96 ESC500 FGS1000 预留
4.3 波特率的定义
波特率代码
气体单位使用如下定义: #define UNIT_NONE
0 //无单位
Leabharlann Baidu-6-
TON90B-1 与上位机的 MODBUS 协议说明
#define UNIT_LEL #define UNIT_PPM #define UNIT_VV #define UNIT_KPPM #define UNIT_PERCENT #define UNIT_01NONE #define UNIT_01LEL #define UNIT_01PPM #define UNIT_01VV #define UNIT_01KPPM #define UNIT_01PERCENT
0002 0003
0004 0005 0006 0007 0008 0009
通道关闭状态:
数据位号 数据定义说明
第0位
通道 1 是否关闭:1:是;0:否
第1位
通道 2 是否关闭:1:是;0:否
第2位
通道 3 是否关闭:1:是;0:否
第3位
通道 4 是否关闭:1:是;0:否
第4位
通道 5 是否关闭:1:是;0:否
2 字节
2 字节
功能码固定为 03 。
寄存器地址见4.1 地址表。
注意:此协议不同于 ES2000 的 MODBUS 协议,此协议完全符合 MODBU S 协议,地址以整型数对齐。
寄存器个数为要读取的寄存器地址的个数,单位为整形数,即:主机读取 1 个整型数,TON90B-1 返回 2 个字节;
3.1.2 TON90B-1 返回的数据格式
响应 03 命令的帧格式:
从机地址
1 字节 说明:
功能码 数据字节数 数据区
CRC 校验码
长度由数据字
1 字节(03) 1 字节 节数确定
2 字节
功能码固定为 03 。
数据字节数以字节为单位。即:主机读取 1 个整型数,TON90B-1 返回 2 个 字节;
地址表见4.1 地址表。
3.1.3 错误的处理
3.2.2 TON90B-1 返回的数据格式
CRC 校验码 2 字节
地址 功能码 1 字节 1 字节(0X80)
返回码 1 字节
CRC 校验码 2 字节
错误码 0X00 0X02 0X03
定义 设置正确。 CRC 校验码错。 数据错误,波特率地址不是 9600 或 4800。
-3-
TON90B-1 与上位机的 MODBUS 协议说明
4 数据定义
4.1 地址表
地址为十进制。
地址 数据说明
0000 控制器类型,高字节在前,见附表。
0001 控制器的当前状态
数据位号 数据定义说明
第8位
主电状态:1:故障;0:正常
第9位
备电状态:1:故障;0:正常
第 10 位
是否有主电:1: 无 0:有
第 11 位
是否有备电:1: 无 0:有
其他
预留
利用通讯命令,可以进行读取每个 TON90B-1 各支路的状态信息和设置信 息等参数。
为了提高总线利用率,本协议规定,4800 波特率时,从机典型响应最大完 成时间为 200ms。如果主机在发送完一帧命令后,200ms 内没有收完从机的响 应信息,则可认为从机响应超时。
串行通信口 RS-485,异步通讯方式。 数据传输速率:4800/9600 B/S,可设置。设备出厂时默认为 9600B/S。8 位 数据位,1 位停止位,无校验。 当传送 2 字节数据时,高 8 位在前,低 8 位在后;传送 CRC16 校验码时, 也是高 8 位在前,低 8 位在后。 TON90B-1 在系统中的地址为:1~250 可设定。
如果支路模块的量程和单位为:100%LEL,当前检测到的气体浓 度为 50,那么支路模块上传的公共模块时,将数据分解为:量程: 100, 单位:UNIT_LEL,当前气体浓度:50。
如果支路模块的量程和单位为:25.0ppm,当前检测到的气体浓度 为 5.1ppm,那么支路模块上传的公共模块时,将数据分解为:量程: 250, 单位:UNIT_01PPM,当前气体浓度:51。
4.5 气体单位的定义
0 1 //可燃气体 2 //氢气 3 //一氧化碳 4 //硫化氢 5 //氨气 6 //氯气 7 //氧气 8 //一氧化氮 9 //二氧化硫 10 //二氧化氮 11 //二氧化碳 12 //臭氧 13 //环氧乙烷 14 //氢氰酸 15 //氯化氢 16 //可挥发液体
第4位
是否自检:1:是;0:否
第 5~15 位 预留,未使用
通道 2 的浓度值
通道 2 的状态
通道 3 的浓度值
通道 3 的状态
通道 4 的浓度值
通道 4 的状态
-4-
0010 0011 0012 0013 0014 0015 0016 0017 0018
0019
0020
0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041
1 //%LEL 2 //ppm 3 //%V/V 4 //Kppm 5 //% 6 //无单位,带小数点 7 //%LEL,带小数点 8 //ppm,带小数点 9 //%V/V,带小数点 10 // Kppm,带小数点 11 //%,带小数点
从 6~10 的单位,表示气体量程和气体浓度带一位小数点。 比如:
4.1 地址表___________________________________________________________ 4 4.2 控制器机型的定义_________________________________________________ 5 4.3 波特率的定义_____________________________________________________ 6 4.4 气体类型的定义___________________________________________________ 6 4.5 气体单位的定义___________________________________________________ 6
5 CRC16 的校验算法 _______________________________________________7
-3-
TON90B-1 与上位机的 MODBUS 协议说明
1 适用范围
本协议适用于 ESC2000, TON80, TON90B-1, TON90B-8。
2 通讯约定
TON90B-1 控制器采用标准的 MODBUS RTU 模式(详细说明请参考标准 MODBUS 协议)。本协议定义了控制器能够认识使用的消息结构,制定了消息 域格局和内容的公共格式。
TON90B-1 与上位机的 MODBUS 协议说明
通道 5 的浓度值 通道 5 的状态 通道 6 的浓度值 通道 6 的状态 通道 7 的浓度值 通道 7 的状态 通道 8 的浓度值 通道 8 的状态 通道 1 的设置 高字节:气体类型,见4.4 气体类型的定义 低字节:气体单位,见4.5 气体单位的定义 通道 1 的设置 量程 通道 1 的设置 高字节:A1 报警点相对量程的百分比 低字节:A2 报警点相对量程的百分比 通道 2 的设置:类型和单位 通道 2 的设置:量程 通道 2 的设置:报警点 通道 3 的设置:类型和单位 通道 3 的设置:量程 通道 3 的设置:报警点 通道 4 的设置:类型和单位 通道 4 的设置:量程 通道 4 的设置:报警点 通道 5 的设置:类型和单位 通道 5 的设置:量程 通道 5 的设置:报警点 通道 6 的设置:类型和单位 通道 6 的设置:量程 通道 6 的设置:报警点 通道 7 的设置:类型和单位 通道 7 的设置:量程 通道 7 的设置:报警点 通道 8 的设置:类型和单位 通道 8 的设置:量程 通道 8 的设置:报警点
3 命令解释
3.1 查询功能码 0X03
此功能用于查询 TON90B-1 的设置信息和各支路的监控状态。
-1-
TON90B-1 与上位机的 MODBUS 协议说明
3.1.1 上位机发送的数据格式
03 命令的主机发送的帧格式:
从机地址 1 字节 说明:
功能码
寄存器开始地址
1 字节(03) 2 字节
寄存器个数 CRC 校验码
相关文档
最新文档