正泰DDSU666 单相电能表 RS485-MODBUS RTU通讯说明

freefree技术Resources

这篇内容可直接阅读,适合用于基础学习和Search引流。

正泰DDSU666 单相电能表 RS485-MODBUS RTU通讯说明缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 通讯Function
  2. 2. 通讯示例
  3. 3. function code 03H:读register
  4. 4. function code 10H:写多路register
  5. 5. 16 位CRC check码
  6. 6. 出错处理
  7. 7. Modbus技术交流QQ群

通讯Function

仪表采用 RS485 通信方式,Baud rate可设为 1200、2400bps、4800bps、9600bps。
同一条通讯线路上最多可以同时connect 32 个仪表,每个仪表均可设定其通讯address,通讯connect应使用带有铜网的屏蔽双绞线,线径不小于 0.5mm2 。布线时应使通讯线远离强电电缆或其他强电场环境,最大传输距离为 1200m,典型的网络connect方式如图,用户可根据具体情况选用其他合适的connect方式。

正泰DDSU666 单相电能表 RS485-MODBUS RTU通讯说明插图

DL/T 645-2007 协议Switch到 ModBus-RTU 通讯协议的data帧如下:

FE FE FE FE 68 xx xx xx xx xx xx 68 14 0E 33 33 35 3D 35 33 33 33 33 33 33 33 33 33 CS 16

注意:xx xx xx xx xx xx 即为屏显address,如编号为 21 02 25 02 15 21 则填入 21 15 02 25 02 21,填入的是仪表侧边条形码标号的倒写.

正泰DDSU666 单相电能表 RS485-MODBUS RTU通讯说明插图1

CS为68 xx xx 至 33 33 33的checksum后两位,不包括前面4个FE;

更改后modbus address,Baud rate,data bit,check digit,stop bit以仪表屏幕显示。

默认DL/T645connect参数为(8n2,2400bps),send上述指令,观察电表屏显,当“DLT645”变成“Modbus”即为Switch成功,观察屏显“Modbus”后一屏的数字,该数字为电表的modbus从机address,以decimal显示,注意,modbus的默认Baud rate为9600。

仪表设置为 ModBus-RTU 传输模式时,ModBus-RTU 通讯协议在一根通讯线上采用主从应答方式的通讯connect方式。首先,主计算机的信号寻址到一台唯一address的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机,即半双工的工作模式。该协议只允许在主机(PC,PLC 等)和终端设备之间通讯,而不允许独立的终端设备之间的data交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于Response到达本机的查询信号。
仪表提供 ModBus-RTU 通讯协议(见附录 A),通讯可读取或修改的参数信息,见下表。

参数address参数代号参数说明data typedataLengthWord读写属性
0000HUcodE编程密码 codEint1R
0001HREV.软件版本int1R/W
0002HCLrE电能清零 CLr.Eint1R/W
0003HRESERVED保留int1R/W
0004HRESERVED保留int1R/W
0005HChangeProtocol协议Switch设置int1R/W
0006HAddr此address只有 Modbus-RTU 时effectiveint1R/W
0007HRESERVED保留int1R/W
0008HRESERVED保留int1R/W
0009HRESERVED保留int1R/W
000AHRESERVED保留int1R/W
000BHRESERVED保留int1R/W
000CHBAudBaud rateint1R/W
000DHRESERVED保留int1R/W
000EHRESERVED保留int1R/W
000FHRESERVED保留int1R/W
0010HRESERVED保留int1R/W
2000HUA 相电压float2R/W
2002HIA 相电流float2R/W
2004HP瞬时总有功功率float2R/W
2006HQ瞬时总无功功率float2R/W
2008HS瞬时总视在功率float2R/W
200AHPF总功功率因数float2R/W
200CHRESERVED保留float2R/W
200EHFreq电网频率float2R/W
2010HRESERVED保留float2R/W
4000HEp有功总电能float2R/W
通讯参数信息

ChangeProtocol 协议Switch模式字,data为 2 为 Modbus-RTU 协议,data为 1 时为 DL/T 645-2007协议;

CLr.E 电能清零写 1 Clear总电能;

BAud Baud rate: 0:1200bps; 1:2400bps; 2:4800bps; 3:9600bps;

通讯示例

function code 03H:读register

主机要读取从机address为 01H,Starting register address为 0CH 的 2 个register data,主机send:

address码function codeStarting register addressnumber of registersCRC verification码
010300 0C00 0204 08

如果从机register 0CH、0DH 的data为 0000H、1388H,从机返回:

address码function codebyte countregister 0CH dataregister 0DH dataCRC verification码
01030400 0013 88F7 65

function code 10H:写多路register

例如:主机要把data 0002H、1388H、000AH 保存到从机address为 01H,Starting register address为 00H的 3 个register中。

主机send:

address码function codeStarting register addressnumber of registers写入byte count00H register待写入data01H register待写入data02H register待写入dataCRC verification码
011000 0000 030600 0213 88 00 0A9B E9

从机返回:

address码function codeStarting register addressnumber of registersCRC verification码
011000 0000 0380 08

16 位CRC check码

主机或从机可用校验码判别receive信息是否正确。由于电子噪声或一些其它干扰,信息在传

输过程中可能会发生Error,校验码可以检验主机或从机通讯信息是否有误。

16 位 CRC verification码由主机计算,放置于send信息帧的尾部。从机再重新计算receive到的信息的CRC,比较计算得到的 CRC 与receive到的 CRC 是否一致,如果不一致,则表明出错。在进行 CRC 计算时只用到 8 个data bit,start位及stop bit都不参与 CRC 计算。

CRC verification码计算方法如下:

1) 预置 1 个 16 位的register为hexadecimal FFFF(即全为 1),称此register为 CRC register;

2) 把第一个 8 位binarydata(通讯信息帧的第 1 个byte)与 16 位 CRC register的低 8 位相异或,结果放于 CRC register;

3) 把 CRC register的内容右移一位(朝低位)并用 0 填补最高位,检查右移后的移出位;

4) 如果移出位为 0:重复第 3)步(再次右移一位);

如果移出位为 1:CRC register与多项式 A001(1010 0000 0000 0001)进行异或;

5) 重复步骤 3)和 4),直到右移 8 次,这样整个 8 位dataAll进行了处理;

6) 重复步骤 2)到步骤 5),进行通讯信息帧下一个byte的处理;

7) 将该通讯信息帧所有byte(不包括 CRC verification码)按上述步骤计算Complete后,得到的 CRC register内容即为:16 位 CRC verification码。

出错处理

当仪表检测到了除 CRC verification码出错以外的其它Error时,将向主机回送信息,function code的最高位置为 1,即从机返送给主机的function code是在主机send的function code的基础上加 128。从机返回的Error信息帧format如下:

address码function code(最高位为 1)Error码CRC verification码
1 byte1 byte1 byte2byte

Error码如下:

01H非法的function codereceive到的function code仪表不支持
02H非法的register addressreceive到的register address超出仪表的register address范围
03H非法的data值receive到的data值超出相应address的data范围

Modbus技术交流QQ群

正泰DDSU666 单相电能表 RS485-MODBUS RTU通讯说明插图2
技术术语(共 6 个)—— 点击展开
RS485工业常用的差分串行通信标准,支持多点通信
function codeModbusfunction code指定读/写OperationType,如01读线圈、03读保持register
registerModbus register存储data单元,分线圈/离散输入/保持/输入register四类
CRC check循环冗余校验,用于检测data传输中的Error
PLC可编程逻辑控制器,Automation控制的核心设备
Baud rate串行通信每秒传输符号数,Modbus RTU常用9600/19200
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbus通信协议技术社区 Category 设备register手册 字数 2766 字 · 阅读约 7 分钟 更新 2026-07-01 永久链接 https://www.modbus.cn/10181.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时通信debug、register读写、线圈控制、data监控和message分析。 无需安装,微信Search「Modbus DebuggingAssistant」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
把这篇Resources用于真实项目?

进入Tools中心进行messageParse、CRC verification和设备debug,或Submit requirements获取选型与接入建议。

工程师member

把这篇文章变成可执行的debugResources

开通后可使用高级messageParse、Resources包Download、Code Example、工程案例和优先Technical Support,适合真实项目交付。

高级Tools不限次
Resources包与代码包
Complete Engineering Case Library
优先Technical Support入口

发表回复

您的邮箱address不会被公开。 必填项已用 * 标注