协议接入

IEC 61850 与 IEC 104 采集的区别与选择

这两个规约常被放在同一份需求里,但解决的问题不同:104 是站控层往调度传数据的通道,61850 是站内设备之间的建模与通信标准。选错了会做很多无用功。

两个规约各管什么

IEC 60870-5-104(简称 104)是电力系统的远动规约, 解决的是「站控层 → 调度主站」这条纵向通道的数据传输, 承载遥信、遥测、遥控、遥调四类信息。它的串口版本是 IEC 60870-5-101。 这个规约设计得很务实:地址是扁平的编号,报文紧凑,配置简单, 在带宽有限的通道上工作良好。

IEC 61850 是变电站自动化的整套标准, 核心贡献是设备建模——用逻辑设备、逻辑节点、数据对象、 数据属性这套层级把 IED(保护装置、测控装置、合并单元)的功能描述出来, 并规定了 MMS(站内客户端服务器通信)、GOOSE(快速跳闸信号)、 SV(采样值传输)三种通信服务。工厂侧一般只涉及 MMS。

敏洽 SCADA 数采软件提供 iec104、iec101 与 iec61850_mms 三个驱动。

实际会遇到的几个坑

1. 需求里写 61850,实际只需要 104

这是最花钱的一个坑。招标文件里写「支持 IEC 61850」, 但实际要的只是读电压电流功率和开关位置往上传。 这种需求用 104 甚至 Modbus TCP 读多功能电表就完全够了, 上 61850 需要处理 SCL 配置文件(ICD/CID)、逻辑节点建模、 数据集与报告控制块配置,调试周期与成本都上一个台阶。 澄清需求比技术实现更能省钱—— 问清对方要读的具体数据项和最终用途,多数情况能把方案降级。

2. 61850 的数据集与报告控制块要现场配

61850 的 MMS 采集不是简单「读点」。流程是: 先从 IED 或 SCL 文件里获得数据模型,确定要采集的数据引用路径 (形如 IEDName/LDevice.LLN0$Dataset$Item); 定义或使用已有的数据集(Dataset); 再通过报告控制块配置上报条件—— 数据变化(dchg)、品质变化(qchg)、数值更新(dupd), 以及周期完整性上报的间隔。BRCB(缓存型)在链路断开期间会缓存变化, 恢复后补发;URCB(非缓存型)不缓存。 需要历史完整性的场景必须用 BRCB。

3. IED 的报告控制块实例数是有限的

每个 IED 提供的 BRCB/URCB 实例数量有限(常见每个逻辑设备几个到十几个), 而且可能已经被站内既有的监控系统占用了。 新加一路采集时如果没有空闲实例,要么和现有系统共用(有风险, 配置改动会互相影响),要么就只能退回到轮询式读取 (MMS Read 服务),失去主动上报的优势。 这一点必须在方案阶段向站端确认,不能想当然。

4. 104 的 IOA 编号规划各家不同

104 的寻址是「公共地址(ASDU 地址)+ 信息体地址(IOA)」。 公共地址标识逻辑设备,IOA 标识具体的点。 问题在于 IOA 的编号规划没有强制标准,各厂家习惯不同: 有的按 1-1000 遥信、1001-2000 遥测、2001- 遥控分段, 有的按间隔编号分块。必须拿到站端提供的点表, 不要靠试错去猜——猜错了读到的是别的点的值, 而且遥测值看起来都是合理的数字,不会报错。

5. 104 的总召唤与时钟同步

104 链路建立后要先做总召唤(Interrogation Command) 获取所有点的当前值,之后靠变化上报维持。 如果软件跳过总召唤直接等上报,会出现「链路正常但很多点一直没数据」 的情况(那些点恰好没变化)。另外时钟同步命令要不要发、 由哪一侧作时钟源,需要与站端约定——两边都发同步命令会互相打架。 测试计数器(TestFR)与 t0~t3 超时参数同样要与站端一致。

6. 品质位不能忽略

104 与 61850 的每个数据点都带品质标志(无效、非当前值、溢出、 被取代、试验、强制等)。工厂侧的采集程序经常只取数值不看品质位, 结果把一个标记为「无效」的遥测值当正常数据存进数据库, 画出来的曲线突然掉到零然后又回来。 正确做法是品质位与数值一起入库, 看板与报表逻辑里按品质过滤,异常品质单独标记而不是当正常值处理。

怎么选

场景建议方案
工厂配电房监测(进线、变压器、馈线的电压电流功率、开关位置)Modbus TCP 读多功能电表,或 IEC 104 对接既有站控系统。不需要 61850
数据要上传给调度主站或集控中心IEC 104(以太网)或 IEC 101(串口老站)
需要读保护装置的详细信息、定值、动作报告IEC 61850 MMS
要与站内既有 61850 系统集成,共用数据模型IEC 61850 MMS,需拿到 SCL 配置文件
能耗计量与单件能耗核算DL/T 645 电表采集,比 61850 简单得多
老站只有串口通道IEC 101,或串口服务器转以太网后走 104

硬件方面两者都只需要网线接入对应网段(101 需要串口服务器)。 真正的准备工作是拿到点表:104 要 ASDU 与 IOA 映射表, 61850 要 SCL 文件(ICD 或 CID)与数据引用路径清单。 这两份东西拿不到,方案就没法定,工作量也估不准。

相关交付情况

工厂侧的配用电项目里,敏洽遇到的多数需求最终落在 104 与 Modbus 上, 61850 的实际使用场合集中在需要与既有变电站自动化系统对接的项目。 交付时的关键动作不是写协议代码,而是把点表核对清楚—— 站端给的表往往有历史遗留的错漏,逐点核对一遍比事后返工便宜。 核对方式是现场分合一次开关、投切一次负荷,看采集侧对应点位有没有变, 这一步做完数据才敢往上给。

更多交付情况见 案例中心。

常见问题

看数据从哪到哪。如果是把变电站的数据往上传给调度主站或者集控中心,用 IEC 104(或 101 的串口版),它就是为这条纵向通道设计的,配置简单。如果要读站内 IED(保护装置、测控装置)的详细信息、做设备建模、订阅数据变化上报,那是 61850 MMS 的领域。工厂配电监测这类场景,绝大多数只需要 104。
简单说是「订阅」机制。你先定义一个数据集(Dataset)列出关心的数据点,然后通过报告控制块(BRCB 缓存型 / URCB 非缓存型)配置在什么条件下上报——数据变化、品质变化、周期完整性上报。配好之后 IED 主动推送,不需要客户端一直轮询。缓存型的好处是链路断开期间的变化会存下来,恢复后补发。
104 的寻址是「公共地址 ASDU + 信息体地址 IOA」。公共地址标识一个逻辑设备(通常一个站或一个间隔),IOA 标识具体的点。这份映射表由站端提供,采集侧照着配。要注意 IOA 的编号规划各厂家习惯不同,遥信、遥测、遥控通常分段编号,配表时不要跨段猜。
多数不需要。如果只是读进线柜、变压器、馈线的电压电流功率和开关状态,用 IEC 104 或者直接 Modbus TCP 读多功能电表就够了,61850 带来的建模能力在这种场合用不上,反而增加配置复杂度与调试成本。只有涉及继电保护装置的详细信息、需要与既有 61850 系统集成时才值得上。

有具体设备清单或工件样品,可以直接给判断

提供设备型号、PLC 品牌与需要采集的数据项,或提供被检工件照片与精度要求,敏洽可先给出可行性判断与硬件前置条件,再谈软件工作量与报价。