分享

IEC104协议开发及总结-CSDN博客

 懒人海马 2024-04-24 发布于甘肃

IEC104主要用于电力系统通信,下面总结的协议已经与业界的很多个厂家联调,并投入使用多年。并总结一下这个通信协议在通信时,主要围绕以下的内容进行总结:
(1)简单描述一下自己对IEC104的理解以及自己的一些思考
(2)客户端和服务端是如何进行交互的?
(3)客户端和服务端他们在交互什么内容?
(4)投运前,联调的流程是如何的。

1.对IEC104的理解

1.1 为什么使用IEC104

a.解决一堆厂家协议不统一的问题
b.在底层的计算机网络中,数据是不可靠地分组传送的,可能存在数据的丢失、延迟、重复和乱序。所以IEC104就使用了超时和重传的机制,就是数据包里的控制域里加了发送序号和接收序号,说白了就是客户端和服务端都得记住自己发送过多少个数据,如果中间出现了不匹配,就特殊处理,重新激活链接。
在这里插入图片描述

1.2 IEC104的参考标准有哪些?

a.IEC60870-05-104传输规约(国际电工委员会制定)
b.广东电网DL/T634.5104-2002实施细则
c.国家电网DL/T634.5104-2009实施细则
d.南方电网DL/T634-2002远动协议实施细则
以上均是copy的。本文参考的是,成都交大光芒科技股份有限公司的IEC104协议进行解析,其实都是一样的,需要可以私信,或者在CSDN下载。

2.客户端和服务端是如何进行交互的?

2.1 交互过程使用到的术语

a.超时定义:
在这里插入图片描述
b.S帧,I帧,U帧
S帧:用于确认的帧。比如说,通信过程,我发了一帧给被控对象,它就用这个S帧的对应格式进行应答。
I帧:帧的结果帧带有功能性,比如说,召取具体的数据。
U帧:测试帧,用于测试通信通道是否正常,类似于心跳帧。

c.APCI:应用规约控制信息,就是用于说明这一帧如何进行控制,是定长帧,还是变长帧,这个APCI头是如何防止报文丢失和报文重复传送的。
ASDU:应用服务数据单元,就是说传输帧的具体功能的,比如说是一级遥测,一级遥新,二级遥信,二级遥测,全召,授时等等。
APDU:APCI+ASDU

2.2 通信链路测试

a.使用U帧进行链路的测试,类似是心跳帧,用于测试通信链路是否是正常的。由于协议是平衡式的,也就是通信的双方是对等的,谁发这个U帧都可以,一般是由控制站发送。红色部分就是U帧的部分。
在这里插入图片描述
b.具体的帧格式说明如下图。
在这里插入图片描述
未使用但已建立的连接了TCP链接的通信通道,会通过发送测试 APDU( TESTFR 为激活状态)并得到接收站发回的TESTFR=确认,在两个方向上进行周期性测试。发送站和接收站在某个具体时间段内没有数据传输(超时) 要启动测试过程。每接收一帧( I 帧, S 帧或 U 帧) 重新触发时间为 t3 的定时器。 B
站要独立地监视连接。 只要它接收到从 A 站传来的测试帧,它就不再发送测试帧。

c.可以通过以下实际的交互报文进行理解
在这里插入图片描述
主站发送:
68 04 43 00 00 00
起始字节=68 数据单元长度(APDU)=4 U格式帧 STARTDT:ACT=0 CON=0 STOPDT:ACT=0 CON=0 TESTFR: ACT=1 CON=0

从站发送:
68 04 83 00 00 00
起始字节=68 数据单元长度(APDU)=4 U格式帧 STARTDT:ACT=0 CON=0 STOPDT:ACT=0 CON=0 TESTFR: ACT=0 CON=1

通过第三个字节的第3和第4个字节进行链路的测试,主站(控制站,客户端)发送激活,从站(被控站,服务器)应答确认。

d.APCI的STARTDT和STOPDT的使用。一般用于主站都有双主备或者四主备。(长文本预警)

控制站(例如, A 站)利用 STARTDT(启动数据传输)和 STOPDT(停止数据传输)来控制被控站(B 站)的数据传输。这个方法很有效。例如,当在站间有超过一个以上的连接打开从而可利用时,一次只有一个连接可以用于数据传输。定义 STARTDT 和 STOPDT 的功能在于从一个连接切换到另一个连接时避免数据的丢失。 STARTDT 和 STOPDT 还可与单个连接一起用于控制连接的通信量。

当连接建立后, 连接上的用户数据传输不会从被控站自动激活。 即,当一个连接建立时,STOPDT 处于缺省状态。在这种状态下,被控站并不通过这个连接发送任何数据,除了未编号的控制功能和对这些功能的确认。控制站必须通过这个连接发送一个 STARTDT 指令来激活这个连接中的用户数据传输。被控站用 STARTDT 响应这个命令。如果 STARTDT 没有被确认,这个连接将被控制站关闭。这意味着站初始化之后, STARTDT 必须总是在来自被控站的任何用户数据传输(例如,一般的询问信息)开始前发送。任何被控站的待发用户数据都只有在 STARTDT 被确认后才发送。

STARTDT/STOPDT 是一种控制站激活/解除激活监视方向的机制。 控制站即使没有收到激活确认,也可以发送命令或者设定值。 发送和接收计数器继续运行,它们并不依赖于STARTDT/STOPDT 的使用。

在某种情况下,例如,从一个有效连接切换到另一连接(例如,通过操作员),控制站首先在有效连接上传送一个 STOPDT 指令, 受控站停止这个连接上的用户数据传输并返回一个STOPDT 确认。 挂起的 ACK 可以在被控站收到 STOPDT 生效指令和返回 STOPTD 确认的时刻之间发送。收到 STOPDT 确认后,控制站可以关闭这个连接。另建的连接上需要一个 STARTDT来启动该连接上来自于被控站的数据传送

3 客户端和服务端他们在交互什么内容?

3.1 交互数据的格式

通过I帧(功能帧)以及应答的S帧(确认帧)进行交互。APDU为帧的格式
在这里插入图片描述
a.其中APCI的定义如下:
I帧:
控制域第一个八位位组的第一位比特 = 0 定义了 I 格式, I 格式的 APDU 常常包含一个
ASDU
在这里插入图片描述
S帧:

控制域第一个八位位组的第一位比特 = 1 并且第二位比特 = 0 定义了 S 格式. S 格式的 APDU
只包括 APCI.
在这里插入图片描述
b.ASDU这一部分根据不同的功能有不同的结果,这个后面按章节一个一个进行描述并给与对应的实例。
ASDU部分主要的功能为以下标红框的。

在这里插入图片描述

3.2 交互数据的范围

该部分即为信息体地址,也就是说传协议的时候某些字节最好按这个进行设置
在这里插入图片描述

3.3 交互数据的优先级

在这里插入图片描述

4.投运前的联调报告

目录如下图为某公司的联调报告相关的联调项目。可以搜索CSDN中的《xx系统与xxx装置IEC104测试报告.docx》。有对应的调试模板及范本,供参考
在这里插入图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多