摘 要 :根据国际电工委员会制定的IEC-60870-5-101和IEC-60870-5-104远动规约,我国已经制定了相应的配套标准 DL/T634-1997和 DL/T634.5104-2002。IEC-60870-5-101远动规约已经在我国电力系统中得到了较为广泛的应用,而IEC- 60870-5-104作为采用标准传输协议子集的IEC60870-5-101的网络访问,由于涉及到网络编程以及颁布时间较短,在电力系统中应用很 少。作者详细介绍了IEC-60870-5-104的网络参考模型﹑帧格式结构和TCP连接建立过程,并根据工程实践,分析了IEC- 60870-5-104的实现方法以及应注意的要点,最后提出了拓展IEC-60870-5-104使用范畴的一些设想。
关键词:IEC60870-5-104;IEC60870-5-101;远动规约;网络访问
1 概述
远动规约是站端RTU和调度系统进行信息交互的接口,随着软硬件技术的发展,远动规约也在不断地变化和发展。国际和国内使用的远动规约多种多样,即使对于 同一种规约,其传输格式也会因不同国家﹑不同生产厂家而不同;为了统一这种混乱局面,实现远动规约的标准化,国际电工委员会TC-57技术委员会制定了一 系列远动规约的基本标准[1-5],并在此基础上制定了IEC60870-5-101远动规约,我国在非等效采用此规约的基础上制定了相应的配套标准 DL/T634-1997[6]。IEC60870-5-101为了提高通信的实时性,采用了只有物理层、数据链路层、应用层3层的增强性规约结构 (EPA)[6],应用层直接映射到数据链路层,加强了信息的实时性。在点对点和多个点对点的全双工配置下,此配套标准可以采用平衡式传输以发挥其内在潜 力,此情况下由主站启动的链路传输服务有[7]:
(1)由主站向子站循环询问越限的测量值的二级用户数据;
(2)由主站定期召唤和询问全数据(包括状态量、测量值、变压器分接头位置、水位、频率);
(3)由主站定期召唤电度量;
(4)由主站向子站定期进行时钟同步;
(5)由主站向子站发送控制断路器命令、调节步命令、设点命令、装载命令等;
(6)当事故发生后,由主站向子站召唤事故顺序记录,包括状态量和继电保护信号的事故顺序记录;
(7)支持文件传输,主站可以召唤故障录波装置记录扰动数据的数据文件。
由从站触发启动的链路传输服务主要是:
(1)子站发生状态变位时主动传送的一级用户数据;
(2)定时向主站传送子站的全数据,传送周期由子站的参数确定。如果子站长时间没有接受到主站的信息,子站将缩短向主站传送全数据的周期,并变为向主站循环传送全数据。
采用子站主动向主站传送状态变位和全数据有两个优点;
(1)子站发生状态变位后向主站传送的时间大大缩短;
(2)如果由主站向子站传输的下行通道质量不好或中断情况下,上行信息的全数据和状态变位尚能保证向主站传送。
IEC60870-5-101提供了在主站和远动RTU之间发送基本远动报文的通信文件集,它适用的网络拓扑结构为点对点﹑多个点对点﹑多点共线﹑多点环 形和多点星形网络配置的远动系统中,但它要求在主站和每个远动子站之间采用固定连接的数据电路,这意味着必须使用固定的专用远动通道。随着欧美一些国家调 度主站与变电站RTU的通信已逐步采用以太数据网,远动报文可能通过一些可以进行报文存贮和转发的数据网络进行传输,这些数据网络仅仅在主站和远动子站之 间提供虚拟的数据电路,因此这种网络类型将使得报文传输出现延时,其延时可在相当大的时间范围内变化并和网络的通信负荷有关。一般而言,可变的报文延时时 间意味着不可能采用在IEC60870-5-101中所定义的主站和远动子站之间的链路层,为此,国际电工委员会(IEC)第57技术委员会(TC57) 的第3工作组(WG03)于1998年8月制定了IEC60870-5-104标准(CDV),我国也制定了相应的配套标准 DL/T634.5104-2002。IEC60870-5-104协议的名称为“采用标准传输协议子集的IEC60870-5-101的网络访问 ”(Network access for IEC 60870-5-101 using standard transport profiles)。此协议是将IEC60870-5-101标准用于TCP/IP网络,当调度主站与变电站连接到以太数据网,变电站RTU与调度主站通 信时,通信规约则应采用IEC60870-5-104标准。
2 IEC60870-5-104远动规约详述
2.1 IEC-60870-5-104的规约结构
IEC-60870-5-104远动规约使用的参考模型源出于开放式系统互联的ISO-OSI参考模型,但它只采用其中的5层,其结构如图1所示,图2为TCP/IP规约组(RFC2200)选用的标准结构[8,9]。
由图1可见,IEC60870-5-104实际上是将IEC60870-5-101与TCP/IP(Transmission Control Protocol/Internet Protocol)提供的网络传输功能相组合,使得IEC60870-5-101在TCP/IP内各种网络类型都可使用,包括X.25、FR(帧中继 Frame Relay)、ATM(异步转移模式Asynchronous Transfer Mode)和ISDN(综合业务数据网Integrated Service Data Network)。在图1的5层参考模型中,IEC60870-5-104实际上处于应用层协议的位置;基于TCP/IP的应用层协议很多,每一种应用层 协议都对应着一个网络端口号,根据其在传输层上使用的是TCP协议(传输控制协议)还是UDP协议(用户数据报文协议),端口号又分为TCP端口号和 UDP端口号,其中TCP协议是一种面向连接的协议,为用户提供可靠的、全双工的字节流服务,具有确认、流控制、多路复用和同步等功能,适用于数据传输, 而UDP协议则是无连接的,每个分组都携带完整的目的地址,各分组在系统中独立地从数据源走到终点,它不保证数据的可靠传输,也不提供重新排列次序或重新 请求功能,为了保证可靠地传输远动数据,IEC60870-5-104规定传输层使用的是TCP协议,因此其对应的端口号是TCP端口。常用的TCP端口 有:ftp文件传输协议,使用21号端口;telnet远程登录协议,使用23号端口;SMTP简单邮件传送协议,使用25号端口;http超文本传送协 议,使用80号端口;IEC60870-5-104规定本标准使用的端口号为2404,并且此端口号已经得到IANA(互联网地址分配机 构,Internet Assigned Numbers Authority)的确认。对于基于TCP的应用程序来说,存在两种工作模式,即服务器模式和客户机模式。服务器模式和客户机模式的区别是,在建立 TCP连接时,服务器从不主动发起连接请求,它一直处于侦听状态,当侦听到来自客户机的连接请求后,则接受此请求,由此建立一个TCP连接 ,服务器和客户机就可以通过这个虚拟的通信链路进行数据的收发。IEC60870-5-104规定控制站(即调度系统)作为客户机,而被控站(即站端 RTU)作为服务器;因此无论是调度端软件还是RTU端软件都必然涉及到基于TCP/IP的网络编程。可喜的是,Microsoft已经提供了一个 WINDOWS下的TCP/IP网络通信的API(应用编程接口),这个API就是Socket接口(套接字);不但如此,Microsoft还提供了两 个MFC类,即CAsyncSocket类和派生于CAsyncSocket 的CSocket类,它们完全封装了TCP/IP协议,传输层、网络层、链路层的工作都由它自动完成。当使用Windows的socket套接字进行网络 编程时,发送方将每一个APDU都作为一个TCP包发送出去,接收方的socket套接字接收到一个完整的TCP包并将其中的APDU解析出来后,将调用 socket的OnReceive ( ) 函数,在应用程序中通过重载此函数,应用程序就能接收到一个完整的APDU,这将显著简化编程工作。
2.2 IEC-60870-5-104的应用规约数据单元的结构
IEC-60870-5-104的应用规约数据单元(APDU)的结构如图3所示[8,9],它由应用规约控制信息(APCI)和应用服务数据单元 (ASDU)组成,和IEC-60870-5-101的帧结构相比,其中应用服务数据单元是相同的,相异之处在于,IEC-60870-5-104使用应 用规约控制信息(APCI),而IEC-60870-5-101使用链路规约控制信息(LPCI)。在APDU中,启动字符68H定义了数据流内的起始 点,应用规约数据单元的长度定义了APDU主体的长度;需要注意的是,IEC 60870-5-104规定一个APDU报文(包括启动字符和长度标识)不能超过255个字节,因此APDU最大长度为253(等于255减去启动和长度 标识共两个8位位组),ASDU的最大长度为249,这个要求限制了一个APDU报文最多能发送121个不带品质描述的归一化测量值或243个不带时标的 单点遥信信息,若RTU采集的信息量超过此数目,则必须分成多个APDU进行发送。
APDU控制域包括4个8位位组,根据其定义,可以将APDU分成3种报文格式,即I格式、S格式和U格式,详见图4所示。控制域的第一个8位位组的第1 比特=0定义了I格式,它表明APDU中包含应用服务数据单元ASDU;控制域的第一个8位位组的第1比特为1,第2比特为0定义了S格式,此种格式的 APDU不包含ASDU,当报文接收方收到发送方的I格式报文后,如果没有I格式报文需要发送给对方,可以向对方发送S格式报文以对所接收到的报文进行确 认;控制域的第一个8位位组的第1比特=1,第2比特=1定义了U格式,此种格式的APDU也不含ASDU,其作用主要在于实现3种控制功能,即启动子站 进行数据传输(STARTDT)、停止子站的数据传输(STOPDT)和TCP链路测试(TESTFR)。
2.3 应用规约数据单元(APDU)的发送和接收序号的维护
IEC 60870-5-104采用RFC 793/RFC791(即TCP/IP)协议。IP协议负责将数据从一处传往另一处,TCP负责控制数据流量,并保证传输的正确性。由于在最底层的计算机 通信网络提供的服务是不可靠的分组传送,所以当传送过程中出现错误以及在网络硬件失效或网络负荷太重时,数据包有可能丢失、延迟、重复和乱序,因此应用层 协议必须使用超时和重传机构。为了防止I格式报文在传送过程中丢失或重复传送 ,IEC 60870-5-104的I格式报文的控制域定义了发送序号N(S)和接收序号R(S),发送方每发送一个I格式报文,其发送序号应加1,接收方每接收到 一个与其接收序号相等的I格式报文后,其接收序号也应加1。需要注意的是,每次重新建立TCP连接后,调度主站和子站RTU的接收序号和发送序号都应清 零,因此在双方开始数据传送后,接收方若收到一个I格式报文,应判断此I格式报文的发送序号是否等于自己的接收序号。若相等则应将自己接收序号加1,若此 I格式报文的发送序号大于自己的接收序号,这说明发送方发送的一些报文出现了丢失;若此I格式报文的发送序号小于自己的接收序号,这意味着发送方出现了重 复传送。此外,I格式和S格式报文的接收序号表明了发送该报文的一方对已接收到的I格式报文的确认,若发送方发送的某一I格式报文后长时间无法在对方的接 收序号中得到确认,这就意味着发生了报文丢失。当出现上述这些报文丢失、错序的情况时,通常意味着TCP连接出现了问题,发送方或接收方应关闭现在的 TCP连接然后再重新建立新的TCP连接,并在新的TCP连接上重新开始会话过程。
在主站端和子站RTU端进行通信时,接收方可以使用S格式报文(当有应用服务单元需要发送给对方时,可使用I格式报文)对已接收到的I格式报文进行确认, 以免发送方超时收不到确认信息而重新建立TCP连接。这就存在一个接收方收到多少个I格式报文进行一次确认的问题,以及发送方应在多少个I格式报文未得到 确认时停止发送数据。IEC 60870-5-104规定了两个参数k和w,其取值范围为1到32767,其中k表示发送方在有k个I格式报文未得到对方的确认时,将停止数据传送,w 表示接收方最迟在接收了w个I格式报文后应发出认可;IEC 60870-5-104规定k和w的默认值分别为12个APDU和8个APDU。在实际中,k和w的具体取值可以根据TCP连接双方的数据通信量来加以确 定,对于子站RTU端来说,每收到一个调度端的I格式报文都应立即进行响应,其w的取值实际上为1,由于RTU端可以循环向调度端发送遥信、遥测等信息, 因此k的取值与其循环发送的定时周期有关,通常12到20个APDU就足够了;对于主站端,由于不停接收到RTU的数据,因此应及时地给以确认,通常w取 小于8个APDU的值。
2.4 关于超时时间的理解
为了能对TCP连接进行检查和维护,IEC 60870-5-104规定了几个超时时间,即t0、t1、t2、t3,它们的取值范围为1~255s,准确度为1s,其缺省定义如表1所示。
t0规定了主站端和子站RTU端建立一次TCP连接的最大允许时间,主站端和子站RTU端之间的TCP连接在实际运行中可能经常进行关闭和重建,这发生在 4种情况下: ① 主站端和子站RTU端之间的I格式报文传送出现丢失、错序或者发送U格式报文得不到应答时,双方均可主动关闭TCP连接,然后进行重建; ② 主站系统重新启动后将与各个子站重新建立TCP连接; ③ 子站RTU合上电源或由于自恢复而重新启动后,将重建连接; ④ 子站RTU收到主站端的RESET_PROCESS(复位远方终端)信号后,将关闭连接并重新初始化,然后重建连接。每次建立连接时,RTU都调用 socket的listen( )函数进行侦听,主站端调用socket的connect( )函数进行连接,如果在t0时间内未能成功建立连接,可能网络发生了故障,主站端应该向运行人员给出警告信息。
t1规定发送方发送一个I格式报文或U格式 报文后,必须在t1的时间内得到接收方的认可,否则发送方认为TCP连接出现问题并应重新建立连接。
t2规定接收方在接收到I格式报文后,若经过t2时间 未再收到新的I格式报文,则必须向发送方发送S格式帧对已经接收到的I格式报文进行认可,显然t2必须小于t1。
t3规定调度端或子站RTU端每接收一帧 I帧、S帧或者U帧将重新触发计时器t3,若在t3内未接收到任何报文,将向对方发送测试链路帧TESTFR。
2.5 IEC-60870-5-104的实施过程
IEC 60870-5-104包括非常丰富的应用服务数据单元(ASDU),它不但选取了绝大部分IEC 60870-5-101规约的ASDU,而且还扩展了类型标识为58到64,以及类型标识为107的新的ASDU。但在实际使用中,能够用到的仅仅是其中 一小部分。
其实施过程为:
(1)TCP连接的建立过程。站端RTU作为服务器,在建立TCP连接前,应一直处于侦听状态并等待调度端的连接请求,当TCP连接已经建立,则应持续地 监测TCP连接的状态,以便TCP连接被关闭后能重新进入侦听状态并初始化一些与TCP连接状态有关的程序变量;调度端作为客户机,在建立TCP连接前, 应不断地向站端RTU发出连接请求,一旦连接请求被接收,则应监测TCP连接的状态,以便TCP连接被关闭后重新发出连接请求。需要注意的是,每次连接被 建立后,调度端和站端RTU应将发送和接收序号清零,并且子站只有在收到了调度系统的STARTDT后,才能响应数据召唤以及循环上送数据,但在收到 STARTDT之前,子站对于遥控、设点等命令仍然应进行响应。
(2)循环遥测数据传送。对于遥测量,可以使用类型标识为9(归一化值)、11(标度化值)和13(短浮点数)的ASDU定时循环向调度端发送。
(3)总召唤过程。调度主站向子站发送总召唤命令帧(类型标识为100,传输原因为6),子站向主站发送总召唤命令确认帧(类型标识为100,传输原因为 7),然后子站向主站发送单点遥信帧(类型标识为1)和双点遥信帧(类型标识为3),最后向主站发送总召唤命令结束帧(类型标识为100,传输原因为 10)。
(4)校时过程。调度主站向子站发送时间同步帧(类型标识为104,传输原因6),子站收到后立即更新系统时钟并向主站发送时间同步确认帧(类型标识为 104,传输原因7)。需要注意的是,在以太网上进行时钟同步,要求最大的网络延时小于接收站时钟所要求的准确度,即如果网络提供者保证在网络中的延时不 会超过400ms(典型的X.25 WAN值),在子站所要求的准确度为1s,这样时钟同步才有效。使用这个校时过程可以避免成百上千地在子站安装GPS卫星定位系统,但如果网络延时很大或 者子站所要求的准确度很高(例如1ms),则变电站综合自动化系统必须安装精确度很高的全球定位系统(GPS),而以上的时钟同步过程实际上就没有意义 了。
(5)子站事件主动上传。以太网对于调度端和子站端都是一个全双工高速网络,因此IEC6080-5-104必然使用平衡式传输。当子站发生了突发事件, 子站将根据具体情况主动向主站发送下述报文:遥信变位帧(单点遥信类型标识为1, 双点遥信类型标识为3,传输原因为3)、遥信SOE帧(单点遥信类型标识为30, 双点遥信类型标识为31,传输原因为3)、调压变分接头状态变化帧(类型标识为32,传输原因为3)、继电保护装置事件(类型标识为38)、继电保护装置 成组启动事件(类型标识为39)、继电保护装置成组输出电路信息(类型标识为40)。
(6)遥控/遥调过程。主站发送遥控/遥调选择命令(类型标识为46/47,传输原因为6,S/E=1),子站返回遥控/遥调返校(类型标识为46 /47,传输原因为7,S/E=1),主站下发遥控/遥调执行命令(类型标识为46/47,传输原因为6,S/E=0),子站返回遥控/遥调执行确认(类 型标识为46/47,传输原因为7,S/E=0),当遥控/遥调操作执行完毕后,子站返回遥控/遥调操作结束命令(类型标识为46/47,传输原因为 10,S/E=0)。
(7)召唤电度过程。主站发送电度量冻结命令(类型标识为101,传输原因为6),子站返回电度量冻结确认(类型标识为101,传输原因为7),然后子站 发送电度量数据(类型标识为15,传输原因为37),最后子站发送电度量召唤结束命令(类型标识为101,传输原因为10)。
3 结语
IEC60870-5-101和IEC60870-5-104的使用及相关伴随标准的颁布,标志着我国积极向国际标准靠拢,但由于 IEC60870-5-101和IEC60870-5-104毕竟是引进的标准,尚存在一些工程实践上的问题,例如国内电力企业常常要求能够远方修改保护 定值和对保护动作信号进行远方复位以及要求子站端能够主动上送保护动作的详细信息(包括动作时间、动作类型、动作值)[10]。以前在使用部颁CDT91 规约时,为了实现这个功能,通常扩展了一些与保护有关的帧类型或者制定了与
CDT91规约极其类似但内容更丰富的规约,例如9702规约。如今如何利用IEC60870-5-101和IEC60870-5-104实现这些 功能,如何拓展其应用范畴则是值得探讨的问题。本文详细介绍了IEC60870-5-104规约的基本内容,并根据工程实践分析了 IEC60870-5-104实现的过程以及需要注意的问题,希望能为有关工程和研究人员理解和使用IEC60870-5-104提供一定的帮助。