IEC104协议与示例解析以及模拟工具的使用

一、IEC 104协议概述

1. 什么是IEC 104协议

  • IEC 60870-5-104,简称IEC 104,是国际电工委员会(IEC)制定的用于电力系统远程控制和监视的通信协议,继承了IEC 60870-5-101协议的应用层,适用于广域网环境。
  • 从IEC 101到IEC 104的演进 :
    • IEC 60870-5-101(IEC 101):基于串行通信,适用于点对点或多点的远动通信。
    • IEC 60870-5-104(IEC 104):基于TCP/IP的网络通信,适应了现代网络的发展需求。

2. IEC 104的定位

  • 应用层协议:定义了应用数据的格式和传输方式。
  • 传输层协议:利用TCP/IP协议栈,实现可靠的数据传输。
  • 面向广域网的远动通信:适用于电力系统中主站与子站之间的远程数据交换。

3.IEC 104协议的技术特点

  • 长连接机制:维持客户端和服务器之间的持续连接,提高了通信效率。
  • 数据优化:采用ASDU(应用服务数据单元)结构,支持批量数据传输,减少了通信开销。
  • 支持遥测 、遥信 、遥控 、遥调等多种功能,满足电力系统的多样化需求。

二、IEC 104协议的主要功能

1.遥信(状态信息的传输)

遥信是指将远程设备的状态信息(如开关状态、告警信号)通过通信网络传送到控制中心,以便监视和记录。

  • 应用场景:
    • 开关状态监视:实时监测断路器、隔离开关等设备的合分状态。
    • 故障报警:当设备出现故障或异常时,立即上报告警信息。
  • 特点:
    • 及时性:状态变化需要及时上报,便于控制中心快速做出响应。
    • 可靠性:信息传输必须准确无误,避免误报和漏报。
  • 信息类型:
    • 单点信息(SPS):表示单个状态量,如开/关。
    • 双点信息(DPS):表示设备具有两种互斥的状态,如合位、分位、异常。

2. 遥测(测量值的传输)

遥测是指将远程设备的运行数据(如电压、电流、功率等测量值)通过通信网络传送到控制中心,用于监测和分析。

  • 应用场景:
    • 电参量监测:实时获取电压、电流、有功功率、无功功率、频率等关键参数。
    • 环境参数监测:获取设备环境的温度、湿度、压力等数据。
  • 特点:
    • 连续性:需要持续、定期地传输数据,形成时间序列。
    • 准确性:测量数据需满足一定的精度要求,以保证分析的可靠性。
  • 数据类型:
    • 模拟量(测量值):连续变化的物理量,通常以浮点数或定点数形式传输。
    • 计数器值:如电能表读数,用于计量和结算。

3. 遥调(远方参数的调整)

遥调是指控制中心对远程设备的运行参数进行调整,如改变设定值、调节运行模式等。

  • 应用场景:
    • 电压调节:调整变压器的分接头位置,改变输出电压。
    • 无功功率补偿:调节电容器组的投入或切除,优化电网功率因数。
    • 频率控制:通过调整发电机的出力,维持电网频率稳定。
  • 特点:
    • 精确性:参数调整需要精确到一定的数值范围。
    • 安全性:参数调整可能影响电网运行,需要严格的审批和确认流程。
  • 实现方式:
    • 设定值下发:控制中心下发新的参数设定值,设备接收后进行调整。
    • 参数查询:可以远程读取设备当前的参数设定,以便做出合理调整。

4. 遥控(控制命令的下发)

遥控是指从控制中心(如调度中心或主站)通过通信网络向远程设备(如变电站的开关设备)发送控制命令,以实现对设备的远程操作。

  • 应用场景:
    • 断路器合闸/分闸:远程控制断路器的开启或关闭,调节电力线路的通断。
    • 设备启停:远程启动或停止发电机、变压器等大型设备。
  • 特点:
    • 安全性高:为了防止误操作,通常采用选择-执行(Select-Before-Operate)的两步控制方式。
    • 实时性要求高:需要及时响应控制命令,以保障电网的安全稳定运行。
  • 实现方式:
    • 选择命令:先发送选择命令,确认目标设备和操作类型。
    • 执行命令:收到设备确认后,再发送执行命令,完成实际操作。
    • 确认机制:设备执行后反馈执行结果,供控制中心确认。

三、IEC 104协议的结构

在104协议中ADPU是核心概念,APDU(Application Protocol Data Unit,应用协议数据单元)是用于在电力系统和工业自动化系统中的远程终端设备(RTU)与控制中心(SCADA 系统)之间传输数据的基本单元。APDU 由两部分组成:APCI(Application Protocol Control Information,应用协议控制信息)和 ASDU(Application Service Data Unit,应用服务数据单元)。APDU 的结构和功能确保了数据传输的可靠性和有效性。

104协议根据控制字段的不同,可以分为三种类型的数据帧:

I 帧(信息帧,Information Frame):

  • 用于传输实际的数据。
  • 包含发送序列号(N(S))和接收序列号(N(R))。

S 帧(监视帧,Supervisory Frame):

  • 用于控制流量和确认数据接收。
  • 仅包含接收序列号(N(R))。

U 帧(无编号帧,Unnumbered Frame):

  • 用于控制和管理命令,如连接建立和释放。
  • 包含具体的控制命令码。

1. ACPI(应用协议控制信息)

包含控制数据传输的控制信息,包括启动字符、APDU 长度和控制字段等,具体结构如下:

启动字符(Start Character) :固定值 0x68,表示 APCI 的开始。

APDU 长度(APDU Length):表示整个 APDU(包括 APCI 的控制字段 和 ASDU)的长度,最大为253字节。

控制字段(Control Field):由四个字节组成,包含不同类型的控制信息,具体格式取决于帧的类型(I 帧、S 帧、U 帧)。

I 帧的控制字段如下图所示:

I 帧控制字段分为发送序列号和接收序列号,序列号有15位,其中低字节的最低位为0,可表示的最大序列号为65535。

S 帧的控制字段如下图所示:

S 帧没有发送序列号,只有接收序列号,但是 S 帧的第一个字节最低位为1。S 帧只有 ACPI,没有 ASDU。

U 帧的控制字段如下图所示:

U 帧只有第一个字节的高6位有效,用来表示对应的控制指令。一般都是先发生效,然后回复确认,U 帧也是只有 ACPI,没有 ASDU。

2. ASDU(应用服务数据单元)

包含实际的应用层数据和相关的控制信息,包括类型标识符、可变结构限定符、传输原因、公共地址和信息对象等,具体结构如下:

类型标识符(Type Identifier, TI):标识 ASDU 的类型,指示所传输的数据或命令的种类。一个字节,类型有单点信息、标度化测量值等,每种类型其信息对象所占用的字节个数不一样。

可变结构限定符(Variable Structure Qualifier, VSQ):指示 ASDU 中信息对象的数量以及相关的属性。一个字节,其中最高位表示位为1表示信息对象的地址连续,只有第一个信息对象有地址,其他对象的地址就是累加1。最高位为0,就表示每个信息对象地址不连续,需要表示出来,除去最高位后剩下的就是信息对象的个数

传输原因(Cause of Transmission, COT):描述数据传输的原因,如周期性传输、背景扫描、响应命令等。一个字节。

原始地址(Originator Address, ORG): 可选,一般默认为0。一个字节。

公共地址(Common Address of ASDU):表示发送或接收设备的地址。两个字节。

信息对象(Information Object):包含实际的数据或命令,包括信息对象地址和数据元素等。信息对象的个数根据可变结构限定符的低7位来决定,每个信息对象都有地址,3个字节。如果是信息对象地址是连续的,只需要表示第一个信息对象地址即可,不连续则每个信息对象地址都需要表示,具体看后面的示例解析。

四、IEC 104协议示例解析

需要说明一下104一般是小端模式,也就是低位字节放在低地址,也就是前面。

S 帧:

这是一个 S 帧的具体内容以十六进制表示。

0x68是起始符号,0x04表示整个 S 帧的长度是4个字节。

0x0001是 S 帧固定格式,0x0060表示接收序列号,是96但是需要除2,因为最低位固定为0,所以是接收到了48个帧。

U 帧:

U 帧有三种,分别为启动、停止和测试。

这是一个启动命令 U 帧的具体内容。

0x68是起始符号,0x04表示整个 U 帧的长度是4个字节。

0x07使用二进制表示是0 0 0 0 0 1 1 1,低二位固定为1不用管,第三位置1表示一个启动命令。

发送了启动 U 帧,需要应答一个确认 U 帧。

0x68是起始符号,0x04表示整个 U 帧的长度是4个字节。

0x0B使用二进制表示是0 0 0 0 1 0 1 1,低二位固定为1不用管,第四位置1表示一个确认启动命令。

I 帧:

这是一个单点信息类型 I 帧的具体内容。

0x68是起始符号,0x1E表示整个 I 帧的长度是30个字节。

0x0010是发送序列号,表示发送了8个 I 帧,0x0002是接收序列号,表示接收到了1个 I 帧。

0x01是类型标识符,表示为单点信息。

0x91是可变结构限定符使用二进制表示为1 0 0 1 0 0 0 1,最高位为1表示信息对象的地址是连续的,剩下的7位为信息对象的个数,也就是有17个信息对象。

0x03是传输原因,具体意思为突发,传输原因有很多,具体看文章末尾的参考链接。

0x00是原始地址,一般默认为0。0x0001是公共地址,按照自己的需求设置。

0x0000001是信息对象地址,表示第一个信息对象的地址为1,后面的信息对象地址依次连续递增,第二信息对象地址为2等等。

0x00是第一个信息对象的具体内容,也就是传输的数据,0x01的第二个信息对象的具体内容,......,0x01是最后一个信息对象的内容,也是第十七个信息对象。

这个 I 帧也是单点信息类型,其他的字段就不解释,来解释一下不一样的。

可变结构限定符是第八个字节0x02使用二进制表示0 0 0 0 0 0 1 0,最高位为0表示信息对象的地址不连续,剩下7位表示有2个信息对象。

0x000015是第一个信息对象0x00的地址,0x000016是第二个信息对象0x00的地址,这里由于特殊原因两个信息对象的地址还是连续递增,但是实际上这两个信息对象的地址是可以随便设置的,没有关系,所以每个信息对象的地址需要写在 I 帧中。

这个 I 帧是标度化测量值类型,主要区别是第7个字节类型标识符是0x0B,在0x004013信息对象地址后,每个信息对象的内容使用3个字节,不像单点信息是1个字节。例如,0x007C+0x00这三个字节其中前两个字节是信息对象的具体值,后面这个字节是信息对象标度化值的质量描述(QDS)。

质量描述(QDS)位分配:

QDS 是一个 8 位(1 字节)数据结构,各位的含义如下:

位 名称 含义
7 IV(无效位) 1 表示数据无效,0 表示数据有效
6 NT(非当前位) 1 表示数据不是当前值,0 表示数据是当前值
5 SB(替代位) 1 表示数据为替代值,0 表示数据为实际测量值
4 BL(阻塞位) 1 表示数据被阻塞,0 表示数据正常
3-0 RES(保留位) 通常填充 0 或其他定义的状态位

常见的填充值:

  • 所有质量描述位为 0 :即 0x00,表示数据是有效的、当前的、正常的实际测量值,没有替代或阻塞状态。这个值通常用于没有特殊质量状态的正常数据。

  • 设置无效位(IV) :0x80 表示数据无效。常用于传输数据时表示该数据当前不可用或不可信。

  • 设置阻塞位(BL) :0x10 表示数据被阻塞。常用于表示该数据由于某种原因被锁定或不可更改。

  • 设置替代位(SB) :0x20 表示数据是替代值而非实际测量值。用于系统维护或测试阶段时的数据替代。

这里还需要补充的就是每种类型信息对象所占的字节个数不一样,且传输原因也不相同。

在上面两张图中可以看到,单点信息的信息对象格式是 SIQ,而 SIQ 的长度就是一个字节。

表量化测量值的信息对象格式是 SVA + QDS,而 SVA 的长度是二哥字节,QDS 的长度是一个字节,加上一共就3个字节了。这些信息可以在文章末尾的参考连接中找到。

这个 I 帧是一个时间同步类型,其类型标识符为0x67。信息对象格式是 CP56Time2a 表示7个二进制时间,所以在0x000000信息对象地址后面7个字节就是信息对象的内容。

0x63:毫秒的低8位

0x7C:毫秒的高8位(表示总共毫秒数)

0x15:分钟

0x10:小时

0x1E:日期

0x0A:月份

0x18:年份(从2000年开始的偏移)

五、IEC 104模拟工具的使用

通过百度网盘分享的文件:104.zip

链接:https://pan.baidu.com/s/1-IZZhC76OmCj4kTnEMFfPw?pwd=4yft

提取码:4yft

这个压缩包中有104模拟工具的安装包和一些104的资料,希望能帮助到大家学习和运行好 IEC 104协议。

通过连接下载压缩包,解压后在104主站模拟工具里查看使用说明,然后就能正确安装软件了。

软件安装完打开是这样,通过在右上方配置通讯方式既能当客户端也能当服务端,然后把相应的 IP 地址填写好,需要注意的是端口只能是2404。

左上方菜单栏中,有启动、停止和暂停命令,还能保存报文和打开保存过的报文。

打开左上方工具里的选项,还能设置遥信、遥测等起始地址和个数。

下方会显示设置过的遥信,遥测等地址的值。之前说的单点信息就是遥信,而标度化值就是遥测。

可以选中一个报文,点击右键,选择报文解析,软件就能自动解析这个报文的每个字段。

如果大家需要编写代码实现 IEC 104协议,有很多的开源库可以选择,不需要从头开始造轮子,推荐一个使用 C 语言编写很经典的 IEC 104开源库:lib60870。

以上就是 IEC 104协议与示例解析以及模拟工具的使用的全部内容了,如果有什么建议或者疑问欢迎在评论区中讨论嗷~~。

参考连接1:详解IEC104 规约【最详细版】

参考连接2:IEC104协议详解

参考连接3: 从零开始理解IEC104协议之一------104规约帧格式

参考文献:

《远动设备及系统第5-104部分:传输规约-采用标准传输协议集的 IEC 60870-5-101网络访问》

《远动设备及系统第5部分:传输规约-第101篇 基本远动任务配套标准》

相关推荐
必须得开心呀4 小时前
载噪比科普
信息与通信
花月mmc10 小时前
FPGA数字信号处理与深度学习
嵌入式硬件·深度学习·fpga开发·信号处理
进击的荆棘1 天前
Linux系统——进程信号之保存和捕捉信号
linux·运维·服务器·信号处理·信号
数字新视界2 天前
模块化机房的设计与实施原理剖析
大数据·物联网·信息可视化·信息与通信·一体化机柜
萌动的小火苗2 天前
MQTT的QoS0、QoS1、QoS2有什么区别?
开发语言·网络·python·php·信息与通信
爱研究的小梁2 天前
从无人车配送走向集群联动作业,通信如何扛住协同压力?
网络·网络协议·机器人·信息与通信
阿尔泰科技官方4 天前
多机箱异地采集—如何实现数据对齐?阿尔泰科技授时同步实战方案!
科技·数据采集·信号处理·工业自动化·仪器仪表·工控机·机箱
数字新视界4 天前
动环监控可视化在机房管理中的创新应用与发展趋势
大数据·物联网·信息可视化·信息与通信·一体化机柜
qq_429432305 天前
叫班系统对接 IP-PBX/SIP 与排班系统:接口方式与部署选型要点
网络·网络协议·tcp/ip·信息与通信·ip·1024程序员节·voip通信协议
这张生成的图像能检测吗5 天前
(论文速读)ClassBD:让盲反卷积与故障分类器协同学习的抗噪轴承诊断方法
分类·信号处理·故障诊断·去噪