ZHUHAI PILOT ELECTRONICS Co.,Ltd Doc.No.0809-01
`
PMAC503M1智能漏电火灾报警器 MODBUS串行通信协议
V3.0
ZHUHAI PILOT ELECTRONICS Co.,Ltd Doc.No.0809-01
珠海派诺电子有限公司
目 录
第 1 章 简介 3
1.1 串行通讯协议的目的 3
1.2 MODBUS 通讯协议的版本 3
第 2 章 PMAC®503M1-MODBUS 串行通信协议详细说明 3
2.1 PMAC®503M1-MODBUS 协议基本规则 3
2.2 传送模式 3
2.3 MODBUS 包裹结构描述 3
2.4 网络时间考虑 4
2.5 异常响应 5
2.6 广播命令 5
第 3 章 通讯包裹 5
3.1 继电器控制(功能码 05) 5
3.2 读寄存器(功能码 03) 6
3.3 写寄存器(功能码 16) 6
第 4 章 计算 CRC-16 6
第 5 章 PMAC®503M1 寄存器说明 8
5.1 实时数据寄存器 8
5.2 设备参数寄存器 11
5.3 事件记录寄存器 12
第1章 简介
通信协议详细地描述了PMAC®503M1 在 MODBUS 通讯模式下的输入和输出命令、信息和数据,以便第三方使用和开发。
1.1 串行通讯协议的目的
通信协议的作用使信息和数据在上位机(主站)和PMAC®503M1 之间有效地传递,它包括:
(1)允许主站访问和设定所接PMAC®503M1 的全部设置参数;
(2)允许访问PMAC®503M1 的所有测量数据和事件纪录。
1.2 MODBUS通讯协议的版本
该通讯协议适用于本公司已经出厂的所有各种版本的PMAC®503M1 仪表,对于日后的系列若有改动会加以特别说明。
第2章 PMAC®503M1-MODBUS 串行通信协议详细说明
2.1 PMAC®503M1-MODBUS协议基本规则
以下规则确定在 RS485(或者 RS232C)回路控制器和其他 RS485 串行通信回路中设备的通信规则:
(1)所有 RS485 回路通信应遵照主/从方式。在这种方式下,信息和数据在单个主站和最多 32 个从站(监控设备)之间传递;
(2)主站将初始化和控制所有在 RS485 通信回路上传递的信息;
(3)无论如何都不能从一个从站开始通信;
(4)所有 RS485 环路上的通信都以“打包”方式发生。一个包裹就是一个简单的字符串
(每个字符串 8 位),一个包裹中最多可含 255 个字节。组成这个包裹的字节构成标准异步串行数据,并按 8 位数据位,1 位停止位,无校验位的方式传递。串行数据流由类似于RS232C 中使用的设备产生;
(5)主站发送包裹称为请求,从站发送包裹称为响应;
(6)任何情况从站只能响应主站一个请求。
2.2 传送模式
MODBUS 协议可以采用ASCII 或者 RTU 模式传送数据。PMAC®503M1 仅仅支持RTU
模式,8 位数据位,无校验位,1 位停止位。
2.3 MODBUS包裹结构描述
每个 MODBUS 包裹都由以下几个部分组成:
(1)地址域
(2)功能码域
(3)数据域
(4)校验域
2.3.1 地址域
MODBUS 的从站地址域长度为一个字节,包含包裹传送的从站地址。有效的从站地址范围从 1~247。从站如果接收到一帧从站地址域信息与自身地址相符合的包裹时,应当执行包裹中所包含的命令。从站所响应的包裹中该域为自身地址。
2.3.2 功能码域
功能码 | 含义 | 功能 |
0x03 | 读取寄存器 | 获得当前PMAC®503M1 内部一个或多个当前寄存器值 |
0x10 | 设置寄存器 | 将指定数值写入PMAC®503 内部一个或多个寄存器内 |
0x05 | 继电器控制 | 控制当前PMAC®503M1 内部一个继电器 |
MODBUS 包裹中功能域长度为一个字节,用以通知从站应当执行何操作。从站响应包裹中应当包含主站所请求操作的相同功能域字节。有关PMAC®503M1 的功能码参照下表。
2.3.3 数据域
MODBUS 数据域长度不定,依据其具体功能而定。MODBUS 数据域采用”BIG INDIAN”
模式,即是高位字节在前,低位字节在后。举例如下:
1 个 16 位寄存器包含数值为 0x12AB,寄存器数值发送顺序为:高位字节 = 0x12
低位字节 = 0xAB
2.3.4 校验域
MODBUS-RTU 模式采用 16 位CRC 校验。发送设备应当对包裹中的每一个数据都进行 CRC16 计算,最后结果存放入检验域中。接收设备也应当对包裹中的每一个数据(除校验域以外)进行 CRC16 计算,将结果域校验域进行比较。只有相同的包裹才可以被接受。具体的CRC 校验算法参照附录。
2.4 网络时间考虑
在 RS485 网络上传送包裹需要遵循以下有关时间的规定:
(1)主站请求包裹结束到从站响应包裹开始之间的时间最小为 20 毫秒,最大为 250
毫秒,典型值为 60 毫秒;
(2)从站响应包裹结束到主站下一请求包裹开始之间的时间典型值为 100 毫秒;
(3)包裹中相邻两个字节之间的最大时间依据通讯xx率不同而不同,一般来说最大字节时间为 3 倍的字节发送时间(例如 9600 xx率下,字节间隔为 3 毫秒;4800
xx率时,字节间隔为 6 毫秒。
2.5 异常响应
如果主站发送了一个非法的包裹给 PMAC®503M1 或者是主站请求一个无效的数据寄存器时,异常的数据响应就会产生。这个异常数据响应由从站地址、功能码、故障码和校验域组成。当功能码域的高比特位置为 1 时,说明此时的数据帧为异常响应。
下表说明异常功能码的含义:
功能码名称 | 说明 | |
01 | 非法功能码 | PMAC®503M1-MODBUS 只支持 03H、10H 和 05H 功能码,该码表 示从站接收到非法的功能码 |
02 | 非法数据地址 | 说明PMAC®503M1 接收到无效的数据地址,或者是请求寄存器不在 有效的寄存器范围内;或者是 PMAC®503M1 接收到一个错误的操作密码。 |
03 | 非法数据 | 说明PMAC®503M1 接收到非法的校时数据,或者在升级程序时所提 交的密码错误。 |
05 | 非法继电器命令 | 说明PMAC®503M1 接收到非法的继电器操作命令。 |
2.6 广播命令
PMAC®503M1-MODBUS 协议不支持广播命令。
第3章 通讯包裹
PMAC®503M1-MODBUS 支持三种功能码,标准的MODBUS 协议仅支持 16 位数据模式,也就说传输任何测量值最大为 65535。
3.1 节将描述继电器控制的命令;
3.2 节将说明PMAC®503M1 的读数据包裹和响应包裹的格式;
3.3 节将说明PMAC®503M1 写数据包裹和响应包裹的格式。
3.1 继电器控制(功能码05)
控制继电器格式(主机→PMAC®503M1) | 响应格式(PMAC®503M1 → 主机) | ||
从站地址 | 1 字节 | 从站地址 | 1 字节 |
功能码 05H | 1 字节 | 功能码 05H | 1 字节 |
通道地址 | 2 字节 | 通道地址 | 2 字节 |
在此模式下只能对单个继电器进行控制,继电器的状态可以通过读继电器状态寄存器来获得。继电器1的地址为0,继电器2的地址为1。发送十六进制FF 00闭合一个继电器,发送十六进制00 00释放一个继电器,除此之外的所有值都是无效的。
控制指令 | 2 字节 | 控制指令 | 2 字节 |
CRC 校验码 | 2 字节 | CRC 校验码 | 2 字节 |
3.2 读寄存器(功能码03)
由主站机发送的包裹请求PMAC®503M1 响应所有有效的寄存器,保留寄存器内容为 0。
读寄存器包裹格式(主机→PMAC®503M1) | 响应格式(PMAC®503M1→主机) | ||
从站地址 | 1 字节 | 从站地址 | 1 字节 |
功能码 03H | 1 字节 | 功能码 03H | 1 字节 |
开始地址 | 2 字节 | 字节数(2*寄存器数目) | 1 字节 |
寄存器个数 | 2 字节 | 第一个寄存器数据 | 2 字节 |
CRC 校验码 | 2 字节 | 第二个寄存器数据 | 2 字节 |
…… | |||
CRC 校验码 | 2 字节 |
3.3 写寄存器(功能码16)
该命令允许主站配置PMAC®503M1 工作参数,以下为数据格式:
写寄存器包裹格式(主机→PMAC®503M1) | 响应格式(PMAC®503M1→主机) | ||
从站地址 | 1 字节 | 从站地址 | 1 字节 |
功能码 10H | 1 字节 | 功能码 10H | 1 字节 |
开始地址 | 2 字节 | 开始地址 | 2 字节 |
寄存器个数 | 2 字节 | 寄存器个数 | 2 字节 |
字节个数(2*寄存器个数) | 1 字节 | CRC 校验码 | 2 字节 |
第一个寄存器数据 | |||
第二个寄存器数据 | |||
…… | |||
CRC 校验码 | 2 字节 |
注意:PMAC®503假定写入的寄存器从第一个寄存器开始是连续的;
第4章 计算CRC-16
该部分将描述计算 CRC-16 的过程。在帧中的有关的字节被义为是一串2进制数据
(0,1)。第 16 位校验和是这样得到的:该串数据流被 216 乘,然后除以发生器多项式(X1
6+X15+X2+1),该式以 2 进制表示为 1100000000000101。商被忽略,16 位的余数就是
CRC 的值,在计算CRC-16 值时,全部算术运算用modulo two 或者异或(X0R)算法。按照下列步骤产生CRC-16 的校验和:
(1)省略发生器最有意义的位,并且把位的顺序颠倒过来。形成一个新的多项式,结果是 1010000000000001 或者 16 进制的A001。
(2)将全部 1 或者 16 进制 FFFF 装入 16 位寄存器。
(3)用 16 位寄存器中低阶字节对第一个数据字节进行 XOR 运算,把结果存入 16 位寄存器。
(4)把 16 位寄存器向右移一位。如果溢出位为 1,则转向第 5 步骤,否则转向第 6 步骤。
(5)用新的发生器多项式对 16 位寄存器执行MOR 运算,并且把结果存入 16 步骤。
(6)重复步骤 4,直到移位 8 次为止。
(7)用 16 位寄存器的第阶字节对下一个数据字节进行 XOR 运算,将结果存入 16 位寄存器。
(8)重复步骤 4-7,直到小包的所有字节都已经用 16 位寄存器执行了XOR 运算为止。
(9)16 位寄存器的内容就是CRC-16。
下面的例子是对 16 进制的 6403 这个字节进行 CRC 计算:
步骤 | 字节 | 动作 | 寄存器 | 位# | 移位 |
2 | 初值 | 1111 1111 1111 1111 | |||
1 | 装入第一字节 | 0000 0000 0110 0100 | |||
3 | 异或 | 1111 1111 1001 1011 | |||
4 | 右移一位 | 0111 1111 1100 1101 | 1 | 1 | |
5a | 异或多项式 | 1101 1111 1100 1100 | |||
4 | 右移一位 | 0110 1111 1110 0110 | 2 | 0 | |
4 | 右移一位 | 0011 0111 1111 0011 | 3 | 0 | |
4 | 右移一位 | 0001 1011 1111 1001 | 4 | 1 | |
5a | 异或多项式 | 1011 1011 1111 1000 | |||
4 | 右移一位 | 0101 1101 1111 1100 | 5 | 0 | |
4 | 右移一位 | 0010 1110 1111 1110 | 6 | 0 | |
4 | 右移一位 | 0001 0111 0111 1111 | 7 | 0 | |
4 | 右移一位 | 0000 1011 1011 1111 | 8 | 1 | |
5a | 异或多项式 | 1010 1011 1011 1110 | |||
2 | 装入第二字节 | 0000 0000 0000 0011 | |||
7 | 异或 | 1010 1011 1011 1101 | |||
4 | 右移一位 | 0101 0101 1101 1110 | 1 | 1 | |
5a | 异或多项式 | 1111 0101 1101 1111 | |||
4 | 右移一位 | 0111 1010 1110 1111 | 2 | 1 |
5a | 异或多项式 | 1101 1010 1110 1110 | |||
4 | 右移一位 | 0110 1101 0111 0111 | 3 | 0 | |
4 | 右移一位 | 0011 0110 1011 1011 | 4 | 1 | |
5a | 异或多项式 | 1001 0110 1011 1010 | |||
4 | 右移一位 | 0100 1011 0101 1101 | 5 | 0 | |
4 | 右移一位 | 0010 0101 1010 1110 | 6 | 1 | |
5a | 异或多项式 | 1000 0101 1010 1111 | |||
4 | 右移一位 | 0100 0010 1101 0111 | 7 | 1 | |
5a | 异或多项式 | 1110 0010 1101 0110 | |||
4 | 右移一位 | 0111 0001 0110 1011 | 8 | 0 | |
CRC-16 | 0111 0001 0110 1011 |
第5章 PMAC®503M1寄存器说明
所有的 PMAC®503M1 寄存器(包括实时寄存器和设置寄存器),在 MODBUS 通讯协议时都具有4XXXX 的基址。根据MODBUS 协议,请求PMAC®503M1 中一个地址为4XXXX的寄存器时,主站实际读取为XXXX-1。例如,请求PMAC®503M1 中 40011 寄存器,主站实际寄存器号为 10。
5.1 实时数据寄存器
寄存器号 | 寄存器类型 | 定义 | 备注 |
40001 | RO | 漏电电流 | 基本 |
40002 | RO | 温度 | 基本 |
40003 | RO | 开关量状态 | 基本 |
40004 | RO | 继电器状态 | 基本 |
40005 | RO | 探测器状态 | 基本 |
40006 | RO | A 相电流 | 基本 |
40007 | RO | B 相电流 | 基本 |
40008 | RO | C 相电流 | 基本 |
40009 | RO | A 相电压 | 基本 |
40010 | RO | B 相电压 | 基本 |
40011 | RO | C 相电压 | 基本 |
40012 | RO | A 相有功功率 | 基本 |
40013 | RO | B 相有功功率 | 基本 |
40014 | RO | C 相有功功率 | 基本 |
40015 | RO | 电度低位 | 基本 |
40016 | RO | 电度高位 | 基本 |
40017 | RO | A 相无功功率 | 基本 |
40018 | RO | B 相无功功率 | 基本 |
40019 | RO | C 相无功功率 | 基本 |
40020 | RO | A 相功率因数 | 基本 |
40021 | RO | B 相功率因数 | 基本 |
40022 | RO | C 相功率因数 | 基本 |
40023 | RO | 频率 | 基本 |
1、漏电电流
改寄存器反映测量漏电电流数值,单位为 mA。
例如:当前寄存器数据为 200,那么实际漏电电流为 200mA。
2、温度
该寄存器反映当前温度传感器测量到的环境温度值。例如:当前数值为100,则环境温度为:100℃
3、开关量状态
该寄存器反映保护器本体开关量状态,比特位为0表示打开,1表示闭合。
Bit 位 | 开关量 |
0 | S1 |
1 | S2 |
S1表示断路器的状态,S2表示消防联动信号监测。
4、继电器状态
该寄存器反映保护其本体继电器的状态,比特位为0表示打开,1表示闭合。
Bit 位 | 开关量 |
0 | XX0 |
0 | XX0 |
XX0:xx报警继电器的状态,RL2为跳闸继电器的状态。
5、探测器状态
该寄存器反映当前探测器发生事件的类型及保护方式,各位对应如下:
Bit 位 | 开关量 |
0 | 跳闸 |
1 | 报警 |
2 | 漏电 |
3 | 过热 |
4 | 消防联动 |
5 | 漏电预警 |
6 | 过压 |
7 | 欠压 |
8 | 缺相 |
9 | 过流 |
例如:当前寄存器的值为5,对应BIT位为BIT0和BIT2,代表事件为漏电,动作方式为跳闸。
6、电流
二次测量电流,计算因子0.001,单位安培,如果外部采用CT,需要乘上CT比值。例如:当前寄存器数据为2253,那么二次侧电流值为2.253A,外部电流互感器变比为40,则一次侧电流值为90.12A。
7、电压
该寄存器反映测量电压数值,与实际值放大了100倍,即带了两位小数点:实际电压 = 数值 / 100(伏特)
例如:当前寄存器数据为22027,那么实际测量电压为220.27V
8、有功功率
二次测量有功功率,计算因子 0.1,单位瓦,最高位为符号位如果外部采用CT,需要乘上 CT 的比值。
例如:当前寄存器数据为6623,那么二次侧有功功率为662.3W,外部电流互感器变比为40,则一次侧有功功率为26.492kW。
9、电度
低位字在前,高位字在后,数值范围0-99,999,999.9
该寄存器反映一次侧测量电度数值,与实际值放大了10倍,即带了一位小数点:实际电度 = 数值 / 10(千瓦时)
例如:当前寄存器数据为 63,那么实际测量电流为 6.3kWH
10、无功功率
二次测量无功功率,计算因子 0.1,单位乏,最高位为符号位如果外部采用CT,需要乘上 CT 的比值。
例如:当前寄存器数据为623,那么二次侧有功功率为62.3Var,外部电流互感器变比为40,则一次侧有功功率为2.492kVar。
11、功率因数
计算因子 0.001,最高位为符号位,负数表示超前。
12、频率
计算因子 0.01,单位赫兹(Hz)。
5.2 设备参数寄存器
寄存器号 | 寄存器类型 | 定义 | 数值范围 |
40101 | R/W | 电流互感器 CT 变比 | 1~2000 |
40102 | R/W | 控制器通讯地址 | 1 ~ 247 |
40103 | R/W | 通讯xx率 | 0:4800 1:9600 |
40104 | R/W | 漏电流动作值 | 100~1000 |
40105 | R/W | 漏电流动作时间 | 0.0~60.0S |
40106 | R/W | 漏电流动作模式 | 0:取消 1:报警 2:跳闸 |
40107 | R/W | 温度保护动作值 | 55~140℃ |
40108 | R/W | 温度保护动作时间 | 0~999S |
40109 | R/W | 温度保护动作模式 | 0:取消 1:报警 2:跳闸 |
40110 | R/W | 过压保护动作值 | 105~150% |
40111 | R/W | 过压保护动作时间 | 0~999S |
40112 | R/W | 过压保护动作模式 | 0:取消 1:报警 2:跳闸 |
40113 | R/W | 欠压保护动作值 | 60~95% |
40114 | R/W | 欠压保护动作时间 | 0~999S |
40115 | R/W | 欠压保护动作模式 | 0:取消 1:报警 2:跳闸 |
40116 | R/W | 缺相保护动作值 | 20%(固定) |
40117 | R/W | 缺相保护动作时间 | 0~999S |
40118 | R/W | 缺相保护动作模式 | 0:取消 1:报警 2:跳闸 |
40119 | R/W | 额定电流值 | 1~9999 |
40120 | R/W | 过流保护动作值 | 105~150% |
40121 | R/W | 过流保护动作时间 | 0~999S |
40122 | R/W | 过流保护动作模式 | 0:取消 1:报警 2:跳闸 |
40123 | R/W | 消防联动设置 | 0:遥信 1:消防联动 |
40253 | WO | 清除电度数 | 密码 503 |
40254 | WO | 设置电度数 | 密码 503 |
40258 | WO | 清除 SOE | 密码 503 |
注:在电度、最大功率及SOE事件清零的操作中,写设置数据503表示对该数据清除。
5.3 事件记录寄存器
寄存器号 | 寄存器类型 | 描述 | 备注 |
41201 | RW | 系统时间年和月 | 转换为 16 进制, 高字节为年,低字节为月 |
41202 | RW | 系统时间日和时 | 转换为 16 进制, 高字节为日,低字节为时 |
41203 | RW | 系统时间分和秒 | 转换为 16 进制,(注一) 高字节为分,低字节为秒 |
41204 | RO | 1#SOE 事件第一字 | 故障代码 (注二) |
41205 | RO | 1#SOE 事件第二字 | 故障值 |
41206 | RO | 1#SOE 事件第三字 | 年月 |
41207 | RO | 1#SOE 事件第四字 | 日时 |
41208 | RO | 1#SOE 事件第五字 | 分秒 |
41209~41213 | RO | 2#SOE 事件 | |
41214~41218 | RO | 3#SOE 事件 | |
41219~41223 | RO | 4#SOE 事件 | |
41224~41228 | RO | 5#SOE 事件 | |
41229~41233 | RO | 6#SOE 事件 | |
41234~41238 | RO | 7#SOE 事件 | |
41239~41243 | RO | 8#SOE 事件 | |
…… | …… | …… | …… |
41299~41303 | RO | 20#SOE 事件 |
注一:
系统时间分析:
系统时间读取后,个各寄存器数值如下:
41201:2050;
41202:1044;
41203:5633。
对应十六进制数如下:
41201:802 高位为年,低位为月,即为 08 年 02 月;
41202:414 高位为日,低位为时,即为 04 日 20 时;
41203:1601 高位为分,低位为秒,即为 22 分 01 秒。
注二:
故障代码对应故障类型如下:
故障代码 | 故障类型 | 故障代码 | 故障类型 |
01 | 漏电 | 11 | C 相过压 |
02 | 过热 | 12 | A 相欠压 |
03 | 消防联动 | 13 | B 相欠压 |
06 | 缺A 相 | 14 | C 相欠压 |
07 | 缺 B 相 | 15 | A 相过载 |
08 | 缺 C 相 | 16 | B 相过载 |
09 | A 相过压 | 17 | C 相过载 |
10 | B 相过压 |
注三:
故障记录中故障值与《5.1 实时数据寄存器》中说明的各数据类型相同,过流故障值记录为二次侧值,需乘以相应的CT 变比。
声 明:
⚫ 本手册中所提供信息可不经事先通知进行修改。
⚫ 珠海派诺电子有限公司对所述信息保留解释权。技术咨询:15916202620
xxxxxxxxxx
xx:xxxxxxxxxxxxxxxxx X0 xxx:000000
电话:0000-0000000 0000000
传真:0756-3629600 3629700