文档编号THJS-TXXY-0003
文档名称智能模块通讯规约-Modbus协议
拟制
审核
批准
版本修订历史记录
版本改版日期改版说明拟制审核批准1.0 2009-6-20 创建
智能模块通讯规约-Modbus协议
一、概述
本文描述了电源模块数据上报的Modbus通讯规约标准,应用于电源模块向上级监控设备上报数据时的通讯规约。
二、适用范围
规约适用于电源模块与Modbus协议的监控器之间进行串行通信,是开发、测试Modbus 协议模块通讯软件的依据。
三、物理接口
RS485,波特率9600,字符格式采用奇校验位、8位数据位、1位停止位(N81)的异步串行通讯格式。
四、信息帧格式
1、信息帧结构
8Bit地址8Bit功能码nX8Bit数据16BitCRC校验码说明:采用Modbus规约的RTU(Remote Terminal Unit)方式,每个字节以2个十六进制数,有效的数据范围为0~9,A~F。
2、信息帧注解
1)地址:指电源模块的地址,范围:0~31;
2)功能码:电源模块只支持功能码03(读数据)、06(设置数据),特殊命令功能码:16(读过欠压、校准值)、17(设置校准值);
3)数据:上报或下设的数据,按寄存器(数据地址)进行发送,每一个寄存器由两个字节组成,关于寄存器号的定义,请参阅附录A。
4)CRC校验码:CRC(Cyclical Redundancy Check)对地址、功能码和数据进行校验,由两字节组成,CRC由传输设备生成,附加在数据帧中,如果由接收到数据计算出来的校验和与附加在数据后的校验和不一致,则有错误发生。关于CRC生成函数,请参阅附录B内容。
五、命令格式
1、查询数据,功能码03
上位机发送数据查询命令信息帧,模块接收到正确的查询命令后,对命令进行响应回送数据给上位机。查询命令帧格式如下:
字段值字段说明
01 地址1
03 功能码3
00 起始地址高字节
起始地址低字节,起始地址0
00
00 数据个数高字节
数据个数低字节,读3个数据
03
CRCHi CRC高字节
CRC低字节
CRCLo
模块响应帧格式:
字段值字段说明
01 地址1
03 功能码3
06 应答数据字节数
D0Hi 第1个数据高字节
第1个数据低字节
D0Lo
D1Hi 第2个数据高字节
第2个数据低字节
D1Lo
D2Hi 第3个数据高字节
第3个数据低字节
D2Lo
CRCHi CRC高字节
CRCLo CRC低字节
2、设置数据,功能码06
上位机发送设置数据查询命令和设置数据,模块接收到正确的设置命令后,将指定的数据设置成命令帧中携带的数据,并将数据原样返回进行响应,若设置不成功时,不应答。设置命令帧格式如下
字段值字段说明
01 地址01
06 功能码06
00 设置数据地址高字节
设置数据地址低字节,地址02
02
00 设置数据高字节
设置数据低字节,数据值为03
03
CRCHi CRC高字节
CRC低字节
CRCLo
模块响应帧格式:
字段值字段说明
01 地址01
06 功能码06
00 设置数据地址高字节
设置数据地址低字节,地址2
02
00 设置数据数据高字节
设置数据数据低字节,数据3
03
CRCHi CRC高字节
CRC低字节
CRCLo
六、特殊命令
1、查询过欠压、校准值数据,功能码16
上位机发送过欠压、校准值查询命令信息帧,模块接收到正确的查询命令后,对命令进行响应回送数据给上位机。查询命令帧格式如下:
字段值字段说明
01 地址1
16 功能码16
0A 读取数据长度
CRCHi CRC高字节
CRC低字节
CRCLo
模块响应帧格式:
字段值字段说明
01 地址1
16 功能码16
0A 应答数据字节数
D0Hi 过压告警值高字节
过压告警值低字节
D0Lo
D1Hi 欠压告警值高字节
欠压告警值低字节
D1Lo
D2Hi 电压显示系数
D2Lo 电流显示系数
D3Hi 电压调整系数
D3Lo 电流调整系数
D4Hi 电压调整零点
D4Lo 电流调整零点
CRCHi CRC高字节
CRCLo CRC低字节
2、设置校准值数据,功能码17
上位机发送设置校准值数据命令信息帧,模块接收到正确的查询命令后,将指定的数据设置成命令帧中携带的数据,并返回相应信息帧响应,若设置不成功时,不应答。设置命令帧格式如下:
字段值字段说明
01 地址1
17 功能码17
06 设置数据长度
D0Hi 电压显示系数设置值
D0Lo 电流显示系数设置值
D1Hi 电压调整系数设置值
D1Lo 电流调整系数设置值
D2Hi 电压调整零点设置值
D2Lo 电流调整零点设置值
CRCHi CRC高字节
CRC低字节
CRCLo
模块响应帧格式:
字段值字段说明
01 地址1
17 功能码17
01 应答数据字节数
01 应答数据
CRCHi CRC高字节
CRCLo CRC低字节
关于广播命令:当上位机发送的设置命令数据包中地址字段为0xFF时,表示上位机发送广播命令,所有接收该类型数据包的模块都执行数据包中包含的命令,并且不对上位机应答。
注: 广播命令的定义不同于标准MODBUS协议的广播命令,在标准MODBUS命令中广播地址是0而不是0xFF。
附录A:
1、数据地址定义
数据类型地址范围
模拟量AI 0~4,6~7
信号量DI 5