[电力通信规约]设备侧IEC104规约简介及协议开发要点

1、基本概念

1.1名词解释

RTU(Remote Terminal Unit):RTU称为远方监控终端,在电力系统中是发电厂、变电所、配网现场实现信息采集和控制操作的装置。

​ SCADA( Supervisory Control And Data Acquisition )系统,即数据采集与监视控制系统。

1.2远动概念

​ 电力系统远动又被称为电力系统远程监控,它是通过调度控制中心对分布于不同地点的发电厂、变电站等进行监视和控制来实现的。电力系统中的调度集采是通过RTU和SCADA来实现这个功能:远动终端设备将电力运行系统状态和各个层级的实时信息采集到调度中心的SCADA系统上来展示运行状态;中心通过SCADA系统将命令发送到RTU上实现对一次设备的控制及调度。

​ 常见的远动信息主要有遥测(YC:被测变量测量值)、遥信(YX:对设备状态信息)、遥控(YK:状态的运行设备的控制)、和遥调(YT:工作状态和参数的调整)。RTU与SCADA之间的通信协议又被称为规约。在实际的应用中对通讯传输要求及时可靠,不误报。对控制要求不误动,不拒动。

​ 常见的工作模式按工作模式分为主站和从站;如果是网络通信则分为客户端和服务端。应答模式可分为轮训问答模式(非平衡),自发传输模式(平衡模式);报文可分类一般报文和突发报文。其它基本信息此处省略。

1.3 能源行业常见的通讯协议:

​ 新能源行业: IEC104;Modbus;ModbusTCP ;IEC61850;MQTT;
​ 电气自动化行业: IEC101;IEC103;IEC104 ;ModbusTCP; IEC61850标准

1.4、IEC104简介

​ 远动IEC104规约全称IEC60870-5-104协议,它是一种基于TCPIP传输的网络协议。我国在2002年颁布了DL/T634.5104-2002:远动设备与系统 第五部分:传输规约 第104篇:采用标准传输协议集的IEC60870-5-101网络访问(idt.IEC60870-5-104:2000)。IEC60870-5-104中规定该协议传输层使用TCP协议。它的标准端口号为2404。它的目的就是为了实现IEC101的网络化,其本质是将IEC60870-5-101与TCP/IP提供的网络传输功能相结合,使得IEC60870-5-101在TCP/IP内的各种网络类型都可使用。

​ 基于TCP的应用程序存在两种工作模式:服务器(子站)和客户(主站)模式。服务器模式和客户机模式之间的区别是:当建立TCP连接时,子站处于侦听状态,当侦听到来主站的连接请求时接受此请求并建立一个TCP连接,此时就可以通过这个虚拟的通讯链路进行数据收发。在正常的IEC60870-5-104开发中调度站作为客户端,而RTU端作为服务器。然而在几次新能源协议对接中发现了反向工作模式不在少数。
目前常用协议所用的TCP端口如下: ftp文件传输协议端口号21; telnet远程登录协议端口号23;​ SMTP简单邮件传送协议端口号25;http超文本传输协议端口号80;modbus-tcp的默认端口号502;IEC61850 MMS端口号102。

2、报文格式

2.1 104报文格式

新手先参阅
IEC104协议详解:

2.1.1 104报文格式简述

APDU(应用规约数据单元)的组成如下图所示:

在这里插入图片描述

APCI(应用规约控制信息) 的具体内容如下:
在这里插入图片描述
APCI定义了保护报文不至丢失和重复传送的控制信息,定义了报文传输启动/停止,以及传输连接的监视功能等。它将104协议栈分为了三种类型:编号的信息传输格式(Information Transmit Format), 简称 I-格式;编号的监视功能格式(Numbered supervisory functions), 简称 S-格式;不编号的控制功能格式(Unnumbered control function), 简称 U-格式。

ASDU(应用服务数据单元)即报文的信息的具体内容其格式如下:
在这里插入图片描述

2.2报文结构总结

​ IEC60870-5是一个协议簇,基本上由104 101 103组成。IEC101与IEC103区别不大,而IEC104是IEC101的网络访问,规定了IEC101的应用层与TCP/IP提供的传输功能的结合。如果将IEC101和IEC104结合,其报文的基本结构可以看做 APDU=APCI+ASDU。但区别就在于IEC104规约APCI与IEC101的LPCI控制机制差异大;而IEC104规约基本采用IEC101的ASDU,这部分差异最小差异小;在这些协议中对于开发者可变的部分主要为公共地址字节数,链路地址字节数和传送原因字节数的变化,现场三遥点表的变化。

3.开发要点

IEC104开发关键点
虽然这个通信协议简单明了,但大多数人的编码不能实现IEC104协议的所有细节。若从事的行业存产品入网需求及测试,很难一次性通过测试。刚入行的小白,很多名词解释就得理解半天。按照开发习惯,很多新手接到任务后,都会先去网站上搜索已经完成的代码。但这些源码也是根据特有产品的硬件及产品需求而开发,它仅能完成基本功能。一些细节规范完全没有考虑清楚。如果将代码直接用到现场将会出现各式各样的对接问题。

目前全网仅能搜到的远动开源协议栈只有lib60870-2.3.1。该开源库能完整地实现了104协议的各个细节,但是跟国内主站对接匹配的标准还存在一定的差异。104协议作为一个简单的电力通信协议,我们完全有能力自己"手撕"。开发人员在协议的开发过程中如果遇到一些问题可以借鉴其中的思路。
上述图片只把最关键的几个大类简单列举出来,具体分为四大类型现在逐一说明一下:
1.灵活配置:
公共地址,链路地址和传送原因的字节数要做到单双字节可选,公共地址和链路地址数值可单独设置。前一个要求是为了与主站对接。后者则是为了特殊场合区分设备(目前大多数应用都是公共地址即是链路地址);
三遥或者四遥点表可灵活配置,扩展代码的适应性。要达到一套代码可满足多个现场的要求。对于新能源工业场景(特别是充电桩)只做到第一个即可,因为大部分点表都是设备厂家自己提供。
2.链路安全:
最基本的就是接收帧计数,发送帧计数机制,这个是在ACPI部分实现的;
t0 、t1、t2、t3、k、w的实现,特别是对接时一定要先要与主站确定一下这部分功能是否要实现。否则开发的104协议会不停地断链。
3.协议帧处理:
这块的重点就是I帧的交互流程和I帧的详细判断。例如:遥控时,报文的信息体地址是否是0x6001开始;目前是分的情况下是否还要执行动令分操作;是直接控制还是需要预令。其它功能以此类推。
4.测试:
104的测试软件较少,很多都是公司根据自身产品开发的测试工具。很多新手接触这个开发任务时,都是选择的是PMA这个软件。该软件有个bug就是不能长时间通讯测试,它只能测试104报文完整性及通讯流程。对于长时间通讯测试则需要根据自身环境自己解决。

总之,开发过程中大家可以按照这个思路,按照自己从事行业特点进行对以上几点进行拓展及细化。在这里先推荐一下开源协议栈:lib60870-c,具体的下载地址在下文中标出。最后再重点强调一句:目前开源的协议库跟国内的标准有一定差距,完全移植最常见的问题就是通信断链问题。开发者只能参考其思路,尽量自己“手撕”协议,遇到解决不了的问题,仔细参考该开源协议。最终的目的是参考协议栈的思路,结合已有的软件架构去解决问题

上干货:

IEC60870-5 104 101/103开源协议栈

https://libiec61850.com/new-version-2-1-0-of-lib60870-c-library-for-iec-60870-5-101-104/

IEC104规约实施细则,这篇侧重了解一下链路安全概念
https://download.csdn.net/download/neillan/88020436?spm=1001.2014.3001.5503

配电网自动化 DLT634.5104-2002规约实施细则,这篇侧重了解I帧的交互过程
https://download.csdn.net/download/neillan/88122785?spm=1001.2014.3001.5503

  • 16
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值