第1章:IEC 60870-5-101协议概述
大家好,我是老张。在电力系统通信这行摸爬滚打十几年了。今天咱们聊聊101协议——这个在变电站自动化里绕不开的老伙计。
说实话,我刚入行那会儿,第一次接触101协议,看着那一堆帧格式、链路层规则,头都大了。后来在项目里被它折腾过几回,才慢慢摸透了它的脾气。今天我把这些经验整理出来,希望能帮你少走些弯路。
1.1 101协议是什么?
IEC 60870-5-101,简称101协议。它是国际电工委员会制定的远动通信协议标准。说白了,就是变电站里的智能设备(比如RTU、保护装置、测控装置)跟调度中心之间怎么说话的一套规矩。
你想想看,一个变电站里可能有几十台设备,每台设备都要跟调度中心通信。如果没有统一的标准,那不乱套了?101协议就是解决这个问题的。
核心特点:
- 串行通信方式(RS-232/RS-485)
- 主从问答模式(调度中心是主站,现场设备是从站)
- 支持点对点、多点共线等多种拓扑结构
- 帧格式采用FT1.2
我记得2015年在西北某变电站调试时,遇到一个老款保护装置,只支持101协议。当时调度中心要求用104协议,没办法,只能加装协议转换器。所以你看,虽然101协议年代久远,但在很多老旧站里,它依然是主力。
1.2 帧格式(FT1.2)
101协议用的帧格式叫FT1.2。这个FT1.2是啥意思?FT是Frame Type的缩写,1.2是版本号。它定义了数据在串行线路上怎么打包、怎么传输。
FT1.2帧格式分两种:
| 帧类型 | 长度 | 用途 |
|---|---|---|
| 固定帧长 | 6个字节 | 用于确认、查询等简单命令 |
| 可变帧长 | 最大255字节 | 用于传输遥测、遥信等数据 |
固定帧长格式:
起始字符(0x10) | 控制域(C) | 链路地址域(A) | 帧校验和(CS) | 结束字符(0x16)
可变帧长格式:
起始字符(0x68) | 长度(L) | 长度(L) | 起始字符(0x68) | 控制域(C) | 链路地址域(A) | 链路用户数据(ASDU) | 帧校验和(CS) | 结束字符(0x16)
实战小技巧:
我在调试时,习惯先用串口助手抓一下原始报文。看到0x68开头,就知道是可变帧长;看到0x10开头,就是固定帧长。这个习惯帮我快速定位过不少通信问题。
1.3 链路层规则
链路层,说白了就是数据链路层,负责把数据可靠地从A点传到B点。101协议的链路层有几个关键规则:
1. 主从问答机制
主站发命令,从站应答。主站不发,从站不能主动说话。这个规则很简单,但我在项目里见过不少从站设备违规主动发数据,结果把总线搞乱了。
2. 超时重发机制
主站发完命令后,会启动一个定时器。如果在规定时间内没收到应答,就重发。一般超时时间设1-3秒。我曾经遇到一个项目,因为通信线路干扰大,重发了6次才成功。后来换了屏蔽双绞线,问题就解决了。
3. 链路状态管理
链路层定义了四种状态:
- 复位状态:刚上电或通信中断后
- 未建立状态:等待建立连接
- 已建立状态:正常通信中
- 暂停状态:暂时停止通信
注意:
链路地址域(A)在多点共线模式下特别重要。每个从站必须有唯一的地址,范围一般是1-255。地址冲突是我见过最多的通信故障原因之一。曾经有个项目,两个装置都设成了地址1,结果调度中心收到的数据全是乱的。
1.4 应用层ASDU
ASDU是Application Service Data Unit的缩写,应用服务数据单元。它承载了真正的业务数据,比如遥测值、遥信状态、遥控命令等。
ASDU的结构如下:
ASDU = 数据单元标识 + 信息体集合
数据单元标识:
- 类型标识(1字节):告诉接收方这是什么类型的数据
- 可变结构限定词(1字节):描述信息体的数量和组织方式
- 传送原因(1-2字节):说明数据为什么被传送
- 公共地址(1-2字节):设备地址
信息体集合:
- 信息体地址(2-3字节):具体数据点的地址
- 信息体元素(N字节):实际的数据值
- 信息体时标(可选,7字节):带时标的数据
举个例子,遥测的ASDU类型标识是0x09(归一化值),遥信是0x01(单点信息)。这些类型标识我建议你记一下,调试时经常要用到。
常见ASDU类型:
| 类型标识 | 含义 | 典型应用 |
|---|---|---|
| 0x01 | 单点遥信 | 断路器位置 |
| 0x03 | 双点遥信 | 刀闸位置 |
| 0x09 | 归一化遥测 | 电流、电压 |
| 0x0D | 浮点遥测 | 功率、频率 |
| 0x2D | 单点遥控 | 分合闸命令 |
我个人习惯,在解析ASDU时,先看类型标识,确定数据性质;再看传送原因,判断是主动上报还是查询应答;最后看信息体地址,找到具体的数据点。这个三步法,在调试时特别管用。
1.5 知识体系总览
下面这张图,是我根据多年经验总结的101协议知识体系。你可以把它当作学习地图:
这张图把101协议的核心内容串起来了。从上往下看,帧格式是基础,链路层保证传输可靠性,应用层承载业务数据,通信方式决定物理连接。四者缺一不可。
学习建议:
我建议你先从帧格式入手,用串口工具抓几组报文,对照着格式说明逐字节解析。等把帧格式搞明白了,再研究链路层规则和应用层ASDU。这样循序渐进,比死记硬背效果好得多。
好了,101协议的基本框架就讲到这里。下一节我们会深入链路层的具体实现,包括怎么组帧、怎么校验、怎么处理异常情况。这些内容在调试时特别实用,到时候我会多分享一些实战案例。
公众号:蓝海资料掘金营,微信deep3321