DDS8888-2P 单相2P导轨继电器电能表 接入指南
模型清单
可使用下列名称或 ID 在 ThinkLink 中搜索对应模型。
| 模型类型 | 名称 | id_name | 平台模型 ID |
|---|---|---|---|
| RPC | [DDS8888 ACT] 23115 DEMAND-CLR | dds8888_demand_clear_23115 | 124191561935122435 |
| RPC | [DDS8888 GET] 23115 | dds8888_get_23115 | 124191561935122433 |
| RPC | [DDS8888 ACT] 23115 RELAY | dds8888_relay_action_23115 | 124191561935122434 |
| RPC | [DDS8888 SET] 23115 | dds8888_set_23115 | 124191561935122432 |
| RPC | [DDS8888 ACT] 23115 SET-ALARM | dds8888_set_alarm_23115 | 124191561935122436 |
| Template | DDS8888 | 124193141094772736 | |
| Thing Model | [DDS8888] | dds8888_23115 | 124190219116113920 |
| Parameter Thing Model | [DDS8888-PARA] | dds8888_para_23115 | 124190219116113921 |
| Trigger | [DDS8888] 电压/继电器/功率告警触发规则 | dds8888_alarm_23115 | 124191561935122439 |
1. 传感器简介
| 项目 | 内容 |
|---|---|
| 设备名称 | DDS8888-2P 单相2P导轨式带继电器电能表 |
| 厂商 | 乐清市蓝天高科技有限公司 |
| 通信协议 | Modbus-RTU(RS-485) |
| 接入方式 | EdgeBus DTU(KC11 市电版)/ LoRaWAN Class C |
| 业务代码 | 23115 |
| 模板名称 | DDS8888 |
DDS8888-2P 是单相 SOC 集成电路导轨式电能表,符合 GB/T 17215.321-2008(0.5/1 级有功),计量正/反向有功电量与最大需量,测量电压/电流/功率/功率因数/频率瞬时值,内置继电器支持远程拉/合闸。本指南通过 KC11 DTU 以 Modbus-RTU 接入 ThinkLink。
2. 产品特点
- 单相 2P 导轨式(35mm 标准导轨),配电箱内安装快捷省空间。
- 内置继电器,支持 RS485 远程拉/合闸,适配预付费/远程控停。
- 计量正/反向有功电量 + 最大需量;测量电压/电流/有功无功功率/功率因数/频率。
- 0.5/1 级精度、防潜动,抗高压尖峰/强磁/雷击浪涌。
- RS485 通讯 1200–9600bps 可选,兼容 Modbus-RTU 与 DL/T645。
3. 适用范围
- 出租公寓/商铺分户计费与远程控停:远程抄读、欠费跳闸停电、缴费合闸复电。
- 工业/楼宇支路用电监测:逐回路监测电压/电流/功率/功率因数,发现过载、断电、功率反向。
- 能耗与需量管理:采集最大需量做需量考核,时段统计用电能效分析。
4. 采集器信息
4.1 硬件信息
| 项目 | 内容 |
|---|---|
| DTU 型号 | KC11(市电版) |
| 供电方式 | AC 85–270V(市电常供电) |
| LoRaWAN Class | Class C(常在线) |
| 通讯接口 | RS-485 |
| 串口参数 | 9600 / 8N1(默认) |
| 设备默认地址 | 0x01(可改) |
电能表由被测市电回路自身取电;KC11 DTU 由 AC 85–270V 市电供电。
4.2 接线信息
KC11 (AC 市电供电 DTU) DDS8888-2P 电能表
L / N ── AC 85~270V 市电
RS485-A ─────────────────────── 485 A
RS485-B ─────────────────────── 485 B
(总线末端必要时 120Ω 匹配电阻短接到 485A)5. 数据采集
通过 Modbus-RTU 功能码 0x03 一次读取遥测主块寄存器 0x0018–0x0027(连续 16 寄存器),并单独读取 0x681C 获取继电器状态。字节序为大端 ABCD。
5.1 寄存器定义(Modbus-RTU 附录B)
遥测寄存器:
| 数据项 | 地址 | 寄存器数 | 类型 | 系数 | 单位 |
|---|---|---|---|---|---|
| 正向有功总电量 | 0x0018–0x0019 | 2 | uint32BE | 0.01 | kWh |
| 反向有功总电量 | 0x001A–0x001B | 2 | uint32BE | 0.01 | kWh |
| 最大需量 | 0x001C–0x001D | 2 | uint32BE | 0.0001 | kW |
| 电压 | 0x001E | 1 | uint16BE | 0.1 | V |
| 电流 | 0x001F–0x0020 | 2 | uint32BE | 0.001 | A |
| 有功功率 | 0x0021–0x0022 | 2 | uint32BE | 0.0001 | kW |
| 无功功率 | 0x0023–0x0024 | 2 | uint32BE | 0.0001 | kvar |
| 功率因数 | 0x0025 | 1 | uint16BE | 0.001 | — |
| 频率 | 0x0026 | 1 | uint16BE | 0.01 | Hz |
| 电表状态字1 | 0x0027 | 1 | uint16BE | — | — |
| 继电器控制/状态 | 0x681C | 1 | uint16BE(R/W) | — | — |
配置/控制寄存器:
| 数据项 | 地址 | 属性 | 说明 |
|---|---|---|---|
| Modbus 地址 | 0x000F | R/W | 01~FE |
| 表号(3 寄存器) | 0x0010–0x0012 | R/W | 写操作密码 |
| 波特率 | 0x0013 | R/W | 9600=0x2580 等 |
| 需量清零 | 0x0028 | W | 写 0x22B8 清零 |
| 继电器控制 | 0x681C | R/W | 写 0x001A=跳闸 / 0x001C=合闸 |
5.2 状态位定义(状态字 0x0027)
| Bit | 含义 | 取值 |
|---|---|---|
| Bit5 | 无功功率方向 | 0=正向 / 1=反向 |
| Bit4 | 有功功率方向 | 0=正向 / 1=反向 |
| Bit1 | 需量积算方式 | 0=滑差 / 1=区间 |
⚠️ 现场待核 1 — 继电器读回编码:手册仅定义继电器寄存器 0x681C 的写语义(0x001A 跳闸 / 0x001C 合闸),未明确读回值。本对接假设读回同编码(0x001C=合闸/0x001A=跳闸),部署时请实测核对。
⚠️ 现场待核 2 — 写操作表号密码:继电器控制、改地址等写操作(FC10)需在数据后附 6 字节表号作密码。本对接确认未启用密码,使用全 0 表号;若现场表启用了密码保护,需改为实际表号。
6. EdgeBus 模型
6.1 EB 配置参数
| 参数 | 值 |
|---|---|
| name / port | dds8888 / 22 |
| version / dataType | 0x87 / 0x31 |
| 串口 | 9600 / 8N1 |
| BzType / BzVersion | 23115 / 1 |
| upPeriodIndex / periodIndex | 70 / 70(COV 关闭,共用) |
| Modbus 地址注入 | app_150 → 命令地址字节 |
6.2 说明
EB 含 1 个上行事件、2 个查询:① FC03 读 0x0018–0x0027(遥测主块,32 字节);② FC03 读 0x681C(继电器状态,2 字节,isLast 触发上行)。COV 关闭,采集=上传=300s。上行帧 6 字节 DTU 帧头后接 34 字节数据(dataLen=40)。Modbus 目标地址由 app_150 动态注入。
import { Buffer } from "buffer";
import { buildOtaFile } from "@EBSDK/run";
import {
ActionAfertExpr, CalcData,
CrcMode,
CvtRule,
EBBuffer,
EBModel,
ExprCondition,
LoraUpEvent,
QueryEvent, SetUpCovDataType,
UserConfUPItem, EventInfoItem
} from "@EBSDK/EBCompiler/all_variable";
import { CheckbitEnum, getOtaConfig, HwTypeEnum, UpgrdTypeEnum } from "@EBSDK/otaConfig";
// DDS8888-2P 单相2P导轨继电器电能表 — Modbus-RTU 大端ABCD(见 requirement/requirements.md §5)
// 上行数据顺序 = 下面 quInfo 各 listVal 的拼接顺序:
// Q1(0x0018-0x0027,16 reg=32B): energy_fwd/energy_rev/max_demand/voltage/current/
// active_power/reactive_power/power_factor/frequency/status_word
// Q2(0x681C,1 reg=2B): relay_status(继电器状态,单独读,isLast 触发上行)
// addr_modbus 由 APP 槽位 150 动态注入到命令地址字节(indexAPP:150 → indexCMD:0 copySize:1)
const eventInfo: UserConfUPItem[] = [
{
name: "dds8888",
port: 22,
version: "0x87",
dataType: "0x31",
upPeriodIndex: 70,
quInfo: [
// Q1: 遥测主块 0x0018-0x0027(连续16寄存器,一次读全部遥测)
{
protocol: "modbus", addr: "0x01", code: "0x03", periodIndex: 70,
indexAPP: 150, indexCMD: 0, copySize: 1,
listVal: [{ start: "0x0018", end: "0x0027" }]
},
// Q2: 继电器状态 0x681C(与主块不连续,单独读;isLast 触发上行)
{
protocol: "modbus", addr: "0x01", code: "0x03", periodIndex: 70,
indexAPP: 150, indexCMD: 0, copySize: 1,
isLast: true,
listVal: [{ start: "0x681C", end: "0x681C" }]
}
]
}
]
let otaConfig = getOtaConfig({
BaudRate: 9600,
StopBits: 1,
DataBits: 8,
Checkbit: CheckbitEnum.NONE,
Battery: false, // KC11 市电常供电 → Class C
ConfirmDuty: 60,
BzType: 23115,
BzVersion: 1
})
const MODBUS_TT = (ebModel: EBModel) => {
for (let i = 0; i < eventInfo.length; i++) {
let event = new EventInfoItem(eventInfo[i]);
event.upEventSetup()
event.eventInstall()
}
return JSON.stringify(ebModel, null, 2)
}
buildOtaFile(import.meta.url, otaConfig, MODBUS_TT)7. 物模型
7.1 基本信息
| 类型 | 名称 | id Name |
|---|---|---|
| 遥测物模型 | [DDS8888] | dds8888_23115 |
| 参数物模型 | [DDS8888-PARA] | dds8888_para_23115 |
7.2 上行帧结构
frameInfo:port 22、dataLen 40、battery 索引 4、tagList[0x87, 0x31]。数据从 index 6 起:
| field | byte index | type | 系数 |
|---|---|---|---|
| energy_fwd | 6 | uint32BE | 0.01 |
| energy_rev | 10 | uint32BE | 0.01 |
| max_demand | 14 | uint32BE | 0.0001 |
| voltage | 18 | uint16BE | 0.1 |
| current | 20 | uint32BE | 0.001 |
| active_power | 24 | uint32BE | 0.0001 |
| reactive_power | 28 | uint32BE | 0.0001 |
| power_factor | 32 | uint16BE | 0.001 |
| frequency | 34 | uint16BE | 0.01 |
| status_word | 36 | hexbe2 | — |
| relay_raw | 38 | hexbe2 | — |
状态字解析出 active_power_dir(bit4)/reactive_power_dir(bit5);relay_raw 解析出 relay_status(0x001C=1 合闸 / 0x001A=0 跳闸)。
8. 第三方平台数据订阅
8.1 MQTT Topic
/v32/{组织账号}/tkl/up/telemetry/{eui}
8.2 上报示例数据
{
"eui": "6353012af10a9331",
"active_time": "2026-06-29T08:35:48.000Z",
"thingModelId": "124190219116113920",
"thingModelIdName": "dds8888_23115",
"telemetry_data": {
"snr": 9.5,
"rssi": -65,
"energy_fwd": 876543.21,
"energy_rev": 12.34,
"max_demand": 1.1010,
"voltage": 220.3,
"current": 5.000,
"active_power": 1.1010,
"reactive_power": 0.0500,
"power_factor": 0.998,
"frequency": 50.00,
"active_power_dir": 0,
"reactive_power_dir": 0,
"relay_status": 1,
"status_word": "0000",
"relay_raw": "001c"
}
}9. RPC
9.1 RPC 列表
| 名称 | id Name | 类型 | 说明 |
|---|---|---|---|
| 参数设置 | dds8888_set_23115 | SET | 设上报周期/Modbus地址/心跳/上电延迟,回显校验 |
| 参数读取 | dds8888_get_23115 | GET | 读回上述参数 |
| 继电器控制 | dds8888_relay_action_23115 | ACTION | 远程拉/合闸(close 合闸 / trip 跳闸) |
| 需量清零 | dds8888_demand_clear_23115 | ACTION | 最大需量清零 |
| 告警配置 | dds8888_set_alarm_23115 | ACTION | 设过压/欠压阈值 + 通知组 |
9.2 参数定义
| 参数 | field_name | 槽位 | 类型 | 范围/默认 | 说明 |
|---|---|---|---|---|---|
| 上报周期 | period_up | app_70 | uint32le | 1–3600 / 300 s | DTU 轮询+上报间隔 |
| 心跳周期 | period_heart | app_40 | uint32le | 86400 s | 省电,留空/<1h 自动设 24h |
| 上电延迟 | pwron_delay | app_38 | uint16le | 1000 ms | 串口发送前等待 |
| Modbus 地址 | addr_modbus | app_150 | uint8 | 1–247 / 1 | DTU 查询目标地址 |
9.3 继电器控制说明
下拉选择 close(合闸/通电) 或 trip(跳闸/断电) 后执行。底层透传 FC10 写寄存器 0x681C(合闸=0x001C / 跳闸=0x001A),附全 0 表号密码,带回显校验。继电器实际状态由周期遥测 relay_status 回读核实。
10. 告警触发器
| 名称 | id Name | 监视 |
|---|---|---|
| 电压/继电器/功率告警 | dds8888_alarm_23115 | 过压、欠压、继电器跳闸、有功功率反向 |
启用步骤:① 先执行 dds8888_set_alarm_23115 配置过压/欠压阈值与通知组;② 将本触发器绑定到目标设备/模板。之后每帧自动判定,电压带迟滞死区防抖,阈值缺失时主动消警。
11. 模板选择
在 ThinkLink 平台搜索模板:DDS8888(或按业务代码 23115 / 单相导轨继电器电能表查找)。模板已绑定遥测+参数物模型、全部 RPC 与告警触发器,并预置 KC11 市电 Class C 默认参数(heart_period=300s)。
12. 补充说明
- 写操作(继电器/改地址)需附 6 字节表号密码,本对接用全 0(未启用密码)。
- 设备同时支持 DL/T645-2007/1997,本对接采用 Modbus-RTU。
- 继电器读回编码与表号密码两项请在部署时现场实测核对(见第 5.2 节风险提示)。