IEC104主要用于电力系统通信,下面总结的协议已经与业界的很多个厂家联调,并投入使用多年。并总结一下这个通信协议在通信时,主要围绕以下的内容进行总结: 1.对IEC104的理解1.1 为什么使用IEC104a.解决一堆厂家协议不统一的问题 1.2 IEC104的参考标准有哪些?a.IEC60870-05-104传输规约(国际电工委员会制定) 2.客户端和服务端是如何进行交互的?2.1 交互过程使用到的术语a.超时定义: c.APCI:应用规约控制信息,就是用于说明这一帧如何进行控制,是定长帧,还是变长帧,这个APCI头是如何防止报文丢失和报文重复传送的。 2.2 通信链路测试a.使用U帧进行链路的测试,类似是心跳帧,用于测试通信链路是否是正常的。由于协议是平衡式的,也就是通信的双方是对等的,谁发这个U帧都可以,一般是由控制站发送。红色部分就是U帧的部分。 c.可以通过以下实际的交互报文进行理解 从站发送: 通过第三个字节的第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为帧的格式 控制域第一个八位位组的第一位比特 = 1 并且第二位比特 = 0 定义了 S 格式. S 格式的 APDU 3.2 交互数据的范围该部分即为信息体地址,也就是说传协议的时候某些字节最好按这个进行设置 3.3 交互数据的优先级4.投运前的联调报告目录如下图为某公司的联调报告相关的联调项目。可以搜索CSDN中的《xx系统与xxx装置IEC104测试报告.docx》。有对应的调试模板及范本,供参考 |
|