3相电表Modbus通讯地址表帮助文档

i=1 时的寄存器地址详情 | Modbus RTU/TCP 功能码说明 | 数据格式参考

Modbus通讯协议概述

协议说明:本3相电表同时支持 Modbus RTU(串行总线)和 Modbus TCP(以太网/IP)两种协议,共用寄存器地址表,仅通讯层和部分配置不同

通用功能码(RTU/TCP 均支持):

03 - 读取保持寄存器(常用)
04 - 读取输入寄存器
0x10 - 写入多个寄存器(修改参数)
0x06 - 写入单个寄存器(ATS专用)

默认通讯配置提示:

Modbus RTU 默认配置

  • 默认Modbus通讯地址:1
  • 默认通讯波特率:9600
  • 数据格式:N.8.1(无校验,8位数据位,1位停止位)
  • 传输介质:RS485串行总线

Modbus TCP 默认配置

  • 默认IP地址:192.168.1.88(静态,可修改)
  • 默认端口号:1502(自定义Modbus TCP 端口,不可修改)
  • 默认Unit ID(从站地址):1(对应RTU通讯地址,范围1-247)
  • 传输介质:以太网(TCP/IP v4)
  • 数据格式:无需串口参数(由TCP/IP保证传输可靠性)

地址计算规则(i=1时)

当i=1时,地址偏移量为 121*(1-1) = 0,因此实际寄存器地址 = 基础地址 + 0 = 基础地址

注意:Modbus TCP 与 RTU 共用一套寄存器地址表(十六进制),无需额外转换

数据格式说明

数据格式 说明 字节长度 适用协议
Int 16位有符号整数 2字节 RTU / TCP
long 32位有符号整数(高位在前) 4字节 RTU / TCP
XXXX 16位无符号整数(用于拉合闸操作) 2字节 RTU / TCP

Modbus RTU 与 Modbus TCP 核心区别

对比项 Modbus RTU Modbus TCP
传输层 串行总线(RS485/RS232) 以太网(TCP/IP v4)
通讯标识 从站地址(1-247,帧头) Unit ID(1-247,应用层字段)+ IP地址
端口/波特率 需配置波特率、校验位、停止位 固定端口1502,无需串口参数
传输可靠性 无内置校验,依赖CRC16校验码 依赖TCP/IP内置的重传、校验机制,额外带MBAP头
传输距离 RS485 最大约1200米(需中继) 遵循以太网传输规则,最大约100米(有线),无线无距离限制
并发能力 单总线最多32个从站,无并发 支持多客户端同时连接,并发通讯能力强
适用场景 现场设备、近距离、少节点 远程监控、多节点、网络化部署

Modbus TCP 额外注意事项

MBAP 报文头说明:

Modbus TCP 报文包含6字节MBAP头,结构如下(无需用户手动配置,通讯库自动处理):

  • 字节0-1:事务标识符(Transaction ID),用于匹配请求与响应
  • 字节2-3:协议标识符(Protocol ID),固定为0x0000(标识Modbus TCP)
  • 字节4-5:长度字段(Length),后续数据的字节数(包括Unit ID和功能码数据)
  • 字节6:Unit ID(从站地址,对应RTU的从站地址,默认1)
  • 字节7及以后:与Modbus RTU 相同的功能码和数据域

重要提示(含TCP补充):

  • 所有寄存器地址均为十六进制(Hex)格式,RTU与TCP共用
  • 写操作需谨慎,错误的参数设置可能导致设备异常
  • 拉合闸操作仅支持指定数据域值:0x5555(合闸)、0xAAAA(拉闸)
  • 通讯地址(Unit ID)范围:1-247,不可设置超出范围的值
  • Modbus TCP 修改IP地址后,需重新连接以太网才能生效,且确保与上位机在同一网段
  • 禁止修改Modbus TCP 端口1502,否则将无法与配套Modbus客户端通讯
  • TCP通讯时,确保设备以太网口无物理故障,防火墙未屏蔽1502端口

电压与电流参数寄存器(i=1)

寄存器地址(Hex) 数据内容 数据格式 数据长度(word) 单位 读写属性 说明
0x015C AB线电压 Int 1 0.1V R Uab
0x015D BC线电压 Int 1 0.1V R Ubc
0x015E CA线电压 Int 1 0.1V R Uca
0x015F A相电压 Int 1 0.1V R Ua
0x0160 B相电压 Int 1 0.1V R Ub
0x0161 C相电压 Int 1 0.1V R Uc
0x0162 A相电流 Int 1 0.01A R Ia
0x0163 B相电流 Int 1 0.01A R Ib
0x0164 C相电流 Int 1 0.01A R Ic
0x0165 N相电流 Int 1 0.01A R In
0x0176 A相电压频率 Int 1 0.01Hz R FRa
0x0177 B相电压频率 Int 1 0.01Hz R FRb
0x0178 C相电压频率 Int 1 0.01Hz R FRc

数据解析示例:

若A相电压寄存器(0x015F)读取值为2200,则实际电压 = 2200 × 0.1V = 220.0V

若A相电流寄存器(0x0162)读取值为150,则实际电流 = 150 × 0.01A = 1.50A

功率与功率因数参数寄存器(i=1)

寄存器地址(Hex) 数据内容 数据格式 数据长度(word) 单位 读写属性 说明
0x0166 总有功功率 Int 1 0.1W R P
0x0167 A相有功功率 Int 1 0.1W R Pa
0x0168 B相有功功率 Int 1 0.1W R Pb
0x0169 C相有功功率 Int 1 0.1W R Pc
0x016A 总无功功率 Int 1 0.1VAR R Q
0x016B A相无功功率 Int 1 0.1VAR R Qa
0x016C B相无功功率 Int 1 0.1VAR R Qb
0x016D C相无功功率 Int 1 0.1VAR R Qc
0x016E 总视在功率 Int 1 0.1VA R S
0x016F A相视在功率 Int 1 0.1VA R Sa
0x0170 B相视在功率 Int 1 0.1VA R Sb
0x0171 C相视在功率 Int 1 0.1VA R Sc
0x0172 总功率因数 Int 1 % /10 R cosQ S
0x0173 A相功率因数 Int 1 % /10 R cosQ A
0x0174 B相功率因数 Int 1 % /10 R cosQ B
0x0175 C相功率因数 Int 1 % /10 R cosQ C

数据解析示例:

若总有功功率寄存器(0x0166)读取值为5000,则实际功率 = 5000 × 0.1W = 500.0W

若总功率因数寄存器(0x0172)读取值为95,则实际功率因数 = 95 ÷ 10 = 0.95

电能参数寄存器(i=1)

寄存器地址(Hex) 数据内容 数据格式 数据长度(word) 单位 读写属性 说明
0x0180 总有功电能 long 2 0.01Kwh R 占用0x0180和0x0181两个寄存器
0x0182 A相有功电能 long 2 0.01Kwh R 占用0x0182和0x0183两个寄存器
0x0184 B相有功电能 long 2 0.01Kwh R 占用0x0184和0x0185两个寄存器
0x0186 C相有功电能 long 2 0.01Kwh R 占用0x0186和0x0187两个寄存器
0x0188 正向总有功电能 long 2 0.01Kwh R 占用0x0188和0x0189两个寄存器
0x018A 正向A相有功电能 long 2 0.01Kwh R 占用0x018A和0x018B两个寄存器
0x018C 正向B相有功电能 long 2 0.01Kwh R 占用0x018C和0x018D两个寄存器
0x018E 正向C相有功电能 long 2 0.01Kwh R 占用0x018E和0x018F两个寄存器
0x0190 反向总有功电能 long 2 0.01Kwh R 占用0x0190和0x0191两个寄存器
0x0192 反向A相有功电能 long 2 0.01Kwh R 占用0x0192和0x0193两个寄存器
0x0194 反向B相有功电能 long 2 0.01Kwh R 占用0x0194和0x0195两个寄存器
0x0196 反向C相有功电能 long 2 0.01Kwh R 占用0x0196和0x0197两个寄存器
0x0198 总无功电能 long 2 0.01kVARh R 占用0x0198和0x0199两个寄存器
0x019A A相无功电能 long 2 0.01kVARh R 占用0x019A和0x019B两个寄存器
0x019C B相无功电能 long 2 0.01kVARh R 占用0x019C和0x019D两个寄存器
0x019E C相无功电能 long 2 0.01kVARh R 占用0x019E和0x019F两个寄存器
0x01A0 总视在电能 long 2 0.01kVAh R 占用0x01A0和0x01A1两个寄存器
0x01A2 A相视在电能 long 2 0.01kVAh R 占用0x01A2和0x01A3两个寄存器
0x01A4 B相视在电能 long 2 0.01kVAh R 占用0x01A4和0x01A5两个寄存器
0x01A6 C相视在电能 long 2 0.01kVAh R 占用0x01A6和0x01A7两个寄存器

数据解析示例:

若总有功电能寄存器(0x0180-0x0181)读取值为0x0001 0x86A0(即十进制67616),则实际电能 = 67616 × 0.01Kwh = 676.16Kwh

注意:long类型数据占用两个连续寄存器,高位寄存器在前,低位寄存器在后(RTU/TCP 一致)

3相电表设置参数寄存器(i=1)

只读参数

寄存器地址(Hex) 数据内容 数据格式 数据长度(word) 读写属性 说明
0x0179 仪表通讯地址(Unit ID) Int 1 R 范围:1-247(默认值:1,RTU/TCP 共用)
0x017A 通信波特率 Int 1 R 0-600;1-1200;2-2400;3-4800;4-9600(默认值:4,对应9600,仅RTU有效)
0x017B 通信数据格式 Int 1 R 0-N.8.1;1-O.8.1;2-E.8.1(仅RTU有效,TCP无需此参数)
0x017D 设备IP地址 long 2 R 默认:192.168.1.88(仅TCP有效,按字节转换为32位整数)

可写参数

寄存器地址(Hex) 数据内容 数据格式 数据长度(word) 读写属性 说明
0x0179 仪表通讯地址(Unit ID) Int 1 W 范围:1-247,修改后需重启生效(默认值:1,RTU/TCP 共用)
0x017A 通信波特率 Int 1 W 0-600;1-1200;2-2400;3-4800;4-9600,修改后需重启生效(仅RTU有效)
0x017B 通信数据格式 Int 1 W 0-N.8.1;1-O.8.1;2-E.8.1(仅RTU有效,TCP无需此参数)
0x017C 拉合闸操作 XXXX 1 W 0x5555=合闸;0xAAAA=拉闸,仅支持这两个值(RTU/TCP 一致)
0x017D 设备IP地址 long 2 W 仅TCP有效,修改后需重启以太网生效,需确保与上位机同一网段

重要警告(含TCP补充):

  • 修改通讯参数(地址、波特率、数据格式)后,设备可能需要重启才能生效
  • 修改通讯地址(Unit ID)后,后续RTU/TCP通讯需使用新的地址
  • 拉合闸操作可能影响用电设备的正常运行,请确保操作前已做好安全准备
  • 写操作需使用功能码0x10,单次写入多个寄存器时需确保数据长度正确(RTU/TCP 一致)
  • Modbus TCP 修改IP地址时,避免设置为网关地址、广播地址,防止通讯冲突
  • 仅支持静态IP配置,不支持DHCP自动获取IP,修改后请记录新IP地址以备后续连接

ATS寄存器地址表

ATS(自动转换开关)专用寄存器,支持多种功能码操作,适配3相电表 Modbus RTU/TCP 使用

输入地址(Hex) 映射地址(Hex) 功能码0x02(读取输入状态) 功能码0x03(读取保持寄存器) 功能码0x04(读取输入寄存器) 功能码0x06(写入单个寄存器)
0x0100 0x0001 读取A通道输入状态 读取设备型号 - -
0x0101 0x0002 读取B通道输入状态 读取热启动值 - 设置热启动值AABB
0x0102 0x0003 读取A-DC直流供电状态 读取电能清零值 - 清零电能
0x0103 0x0004 读取B-DC直流供电状态 读取A电能清零值 - 清零A通道电能值
0x0104 0x0005 - 读取B电能清零值 - 清零B通道电能值
0x0105 0x0006 - 读取优先通道设置值 - 设置优先通道
0x0106 0x0007 - 读取当前输出通道参数 - -
0x0107 0x0010 - - 读取A通道电压 -
0x0108 0x0011 - - 读取A通道电流 -
0x0109 0x0012 - - 读取A通道功率 -
0x010A 0x0013 - - 读取A通道频率 -
0x010B 0x0014 - - 读取A通道电能 -
0x010D 0x0016 - - 读取B通道电压 -
0x010E 0x0017 - - 读取B通道电流 -
0x010F 0x0018 - - 读取B通道功率 -
0x0110 0x0019 - - 读取B通道频率 -
0x0111 0x001A - - 读取B通道电能 -
0x0112 0x0028 - - 读取A通道电压/10 -
0x0113 0x0029 - - 读取A通道电流/10 -
0x0114 0x002A - - 读取A通道功率/10 -
0x0115 0x002B - - 读取A通道频率/10 -
0x0116 0x002C - - 读取A通道功率因数/10 -
0x0117 0x002D - - 读取A通道电能高2字节/10 -
0x0118 0x002E - - 读取A通道电能低2字节/10 -
0x0119 0x002F - - 读取B通道电压/10 -
0x011A 0x0030 - - 读取B通道电流/10 -
0x011B 0x0031 - - 读取B通道功率/10 -
0x011C 0x0032 - - 读取B通道频率/10 -
0x011D 0x0033 - - 读取B通道功率因数/10 -
0x011E 0x0034 - - 读取B通道电能高2字节/10 -
0x011F 0x0035 - - 读取B通道电能低2字节/10 -

ATS寄存器说明(含TCP补充):

  • 功能码0x02用于读取数字输入状态(如通道状态、供电状态,RTU/TCP 一致)
  • 功能码0x03用于读取设备配置参数和状态信息(RTU/TCP 一致)
  • 功能码0x04用于读取模拟量数据(电压、电流、功率等,RTU/TCP 一致)
  • 功能码0x06用于写入控制命令(如清零电能、设置优先通道等,RTU/TCP 一致)
  • 带"/10"后缀的寄存器表示数据需要除以10才能得到实际值(RTU/TCP 一致)
  • ATS操作的TCP通讯响应速度快于RTU,适合远程批量清零、配置操作