DLMS/COSEM:架构、分层与历史
DLMS/COSEM 是公用事业计量设备的应用层数据交换协议族,标准号为 IEC 62056(欧洲为 EN 62056)。名字由两部分组成:
- DLMS:最初是 Distribution Line Message Specification(配电线报文规范),现在是 Device Language Message Specification(设备语言报文规范),定义如何访问数据。
- COSEM:Companion Specification for Energy Metering(能源计量配套规范),定义数据长什么样。
核心思路:把三个问题分开
电表协议要回答三个问题。DLMS/COSEM 让它们彼此独立,它的大部分设计都由此而来。
| 问题 | 由谁回答 | 什么时候会变 |
|---|---|---|
| 电表里有什么数据,叫什么名字? | COSEM 接口类 + OBIS 编码 | 计量功能变化时 |
| 客户端如何安全地读、写、操作这些数据? | DLMS/COSEM 应用层 | 很少变化 |
| 字节怎么传过去? | 通信配置(communication profile) | 通信技术变化时 |
实际效果是:同一条"读总正向有功电量"的请求,在光口、RS-485、GPRS、以太网或电力线载波上都一样,变的只是协议栈底部。
协议栈
DLMS/COSEM 并没有用满 OSI 七层。每种通信配置都是一段很短的下层协议栈,上面共用同一个应用层。
+---------------------------------------------------------------+
| OBIS 命名:1-0:1.8.0.255 = 总正向有功电量 |
| COSEM 模型 类型:Register、Profile generic、Clock ... |
+---------------------------------------------------------------+
| 应用层 |
| ACSE 建立 / 释放应用连接(AARQ、AARE、RLRQ) |
| xDLMS GET、SET、ACTION、事件通知 |
| 安全 认证、加密、密钥处理 |
| 编码 ACSE 用 BER,xDLMS 用 A-XDR |
+-------------------+-----------------------+-------------------+
| 三层串行配置 | IP 配置 | PLC 配置 |
| | | |
| HDLC 数据链路 | Wrapper 或 HDLC | LLC + MAC |
| (LLC + MAC) | TCP 或 UDP | S-FSK、G3、 |
| RS-232、RS-485、 | IPv4 或 IPv6 | PRIME ... |
| 光口 | GPRS、LTE、以太网 | 电力线 |
+-------------------+-----------------------+-------------------+
每层解决什么问题,定义在哪里
下面的部分号于 2026 年 11 月对照各国标准目录和 DLMS UA 页面核对。在合同中引用具体版本前,请到 IEC 官网再次确认。
标识:OBIS
问题: 过去每个厂商都按自己的方式给寄存器命名,头端系统要为每种表型维护一张映射表。
方案: 用六组编码 A-B:C.D.E.F 命名物理量,与厂商和传输方式无关。
| 组 | 示例值 | 在 1-0:1.8.0.255 中的含义 |
|---|---|---|
| A | 1 | 能源类型:电 |
| B | 0 | 通道 |
| C | 1 | 物理量:正向有功功率 |
| D | 8 | 处理方式:时间积分 |
| E | 0 | 费率:总 |
| F | 255 | 结算周期:不使用 |
标准: IEC 62056-6-1。DLMS UA 文档: 蓝皮书。
对象模型:COSEM 接口类
问题: 只有名字,还不知道怎么用这个值,还需要知道它的类型、缩放系数和支持的操作。
方案: 面向对象的接口类(Interface Class,IC)。每个类有编号的属性和方法,一块电表就是一组对象实例。例如 Register(IC 3)有 logical_name(属性 1)、value(属性 2)、scaler_unit(属性 3);负荷曲线使用 Profile generic(IC 7)。
因此一次读取的地址是 类 ID + OBIS 编码 + 属性序号,例如 3 / 1-0:1.8.0.255 / 2。
标准: IEC 62056-6-2。DLMS UA 文档: 蓝皮书。
应用层:ACSE 与 xDLMS
问题: 权限不同的客户端需要和电表建立会话,还需要在低速链路上用紧凑的方式操作对象。
| 子层 | 作用 |
|---|---|
| ACSE | 通过 AARQ、AARE 建立应用连接(Application Association),协商上下文、认证方式和能力 |
| xDLMS | 提供对象的 GET、SET、ACTION,以及主动事件通知和数据推送 |
| 分块传输 | 把负荷曲线等长响应拆到多个 APDU 中 |
| 安全 | 对 APDU 施加和解除密码保护 |
| 编码 | ACSE 用 BER,xDLMS 用更紧凑的 A-XDR(IEC 61334-6) |
应用连接同时也定义了访问视图:同一块电表上,公共客户端和管理客户端能看到的对象和权限不同。
标准: IEC 62056-5-3。DLMS UA 文档: 绿皮书。
安全
问题: 电表装在公共场所、接在共享网络上,运行可长达二十年,其中一些还能切断用户供电。
安全要分开看两件事:
- 谁能连上电表:在建立连接时决定,分为无认证、LLS(口令)和 HLS(挑战应答,常用 HLS-GMAC)。
- 每条报文是否受保护:逐个 APDU 决定,可以认证、加密或两者兼有,使用 AES-GCM-128 等安全套件。
定义在 IEC 62056-5-3 和绿皮书中。后续文章会逐字节拆解。
通信配置:下层协议
问题: 电表的部署介质差异极大,从现场手持光口到一条低压馈线上的数千个节点都有。
方案: 每种技术一套配套协议栈,向应用层提供相同的服务。
| 配置 | 解决的问题 | 标准 |
|---|---|---|
| 光口 / 本地口 | 现场人员就地抄表 | IEC 62056-21(原 IEC 61107) |
| 三层 HDLC | 串口或多点链路上的寻址、成帧和差错检测 | IEC 62056-7-6(数据链路最初为 IEC 62056-46) |
| Wrapper、TCP/UDP | 在 IP 上承载 APDU,并提供客户端和服务端寻址 | IEC 62056-4-7,配置见 IEC 62056-9-7 |
| M-Bus | 有线或无线分表 | IEC 62056-7-3 |
| S-FSK PLC | 台区电力线网络 | IEC 62056-8-3 |
| PRIME PLC | 窄带 OFDM 电力线网络 | IEC 62056-8-4 |
| G3-PLC | 窄带 OFDM 电力线网络 | IEC 62056-8-5 |
| 高速 PLC | ISO/IEC 12139-1 台区网络 | IEC 62056-8-6 |
框架与规范地图
IEC 62056-1-0 描述了整个标准族的智能计量标准化框架。
DLMS UA 发布实际使用的规范,之后再由 IEC 采纳:
| 文档 | 内容 | 2026 年 11 月在 dlms.com 看到的版本 |
|---|---|---|
| 蓝皮书(DLMS UA 1000-1) | COSEM 对象模型和 OBIS | 第 18 版,2026 年 2 月 |
| 绿皮书(DLMS UA 1000-2) | 架构与协议 | 第 12 版,2025 年 5 月 |
| 黄皮书 | 一致性测试与资格认证流程 | 页面未注明 |
| 白皮书(DLMS UA 1002) | 术语表 | 第 2 版,2026 年 4 月 |
这些文档通常领先于 IEC 文本,所以蓝皮书里的新特性可能还没有进入已发布的标准。
历史
| 时间 | 事件 |
|---|---|
| 1990 年代中期 | DLMS 以 Distribution Line Message Specification 之名出现,与配电线载波绑定。IEC 61334-4-41:1996 承载了它,其短名(short name)语法至今仍被绿皮书引用 |
| 1997 年 | 电力公司和制造商成立 DLMS 用户协会。Itron 称自己是三家创始成员之一 |
| 1998 年 | IEC 62056 首批以技术规范形式发布(TS 62056-41、-51、-52) |
| 2002 年 | IEC 62056 正式版发布,包括 -21、-42、-46 和 OBIS(-61) |
| 2006 年 | 增加 IPv4 传输(IEC 62056-47) |
| 2009 年 | 欧盟 M/441 指令要求 CEN、CENELEC、ETSI 制定开放、可互操作的公用事业计量架构 |
| 约 2010 年 | Landis+Gyr、Iskraemeco、Itron 在瑞士楚格成立 IDIS 协会 |
| 2013 年起 | 标准族重组为现行编号(5-3、6-1、6-2、7-x、8-x、9-x) |
| 2023–2024 年 | 核心部分的最新一代:IEC 62056-5-3:2023、EN IEC 62056-6-2:2023、EN IEC 62056-6-1:2024 |
| 2026 年 | DLMS UA 公布:会员 200 多家,认证产品 1700 多款,覆盖 45 个以上国家 |
有两处需要说明:UIA 年鉴记载协会成立于 1999 年,但 1997 年的佐证更多;另外,本文未能从可查阅的来源确认规范最初由谁起草。
名字的变化本身就说明了它的演进:从一种介质上的报文格式(distribution line),变成设备的通用语言(device language)。
欧洲为何向它收敛
本节是作者的分析。其中的事件有据可查,但没有哪一份资料把结果归因于这些因素。
1. 时机。 当欧盟政策让大规模部署成为定局时,DLMS/COSEM 已经是有现成产品的国际标准。第三能源一揽子计划(2009/72/EC 指令)提出,在成本效益评估结果为正的前提下,到 2020 年实现 80% 的智能电表覆盖。电力公司需要一个已经存在的方案。
2. 回应了碎片化问题。 电力公司担心被单一厂商锁定 15 到 20 年,厂商中立的对象模型正好解决这个问题。
3. 不绑定介质,适合网络条件各异的欧洲。 有些国家以电力线为主,有些以蜂窝网络为主。COSEM 位于传输层之上,欧洲不必先统一网络,就能在数据模型上达成一致,这让共识在政治上可行。
4. 标准化组织的背书。 M/441 的相关工作围绕 IEC/EN 62056 COSEM 模型形成了电力智能表的广泛共识,OPEN meter 项目也把 DLMS/COSEM 作为核心标准。
5. 中立协会治理。 DLMS UA 持续推进规范,通过与 TC13 WG14 的联络关系将其输入 IEC,且不属于任何一家厂商。
6. 一致性测试让"标准"有了约束力。 测试工具、认可实验室和认证计划,让电力公司可以要求拿出证据,而不只是看产品手册上的声明。
7. 配套规范收窄了选项。 DLMS/COSEM 是一个工具箱,两块都合规的电表如果实现了不同的对象,仍然可能无法协同。IDIS 这样的配套规范固定了具体的对象集和行为,多厂商招标才真正可行。
为什么是"事实"标准,以及它的边界
DLMS/COSEM 从未通过法律强制成为通用标准。意大利早期的大规模部署使用 Meters and More,德国围绕其他协议发展了自己的智能电表网关架构,水气热表则常用 M-Bus 和 EN 13757。即便采用 DLMS/COSEM,各国或各电力公司通常也会加上自己的配置要求,核心部分通过认证并不等于即插即用。
称它为"事实"标准,是因为它成了新电表招标的默认选择,这是市场结果,而不是法律结果。