李文宏 张修华
(山东科技大学信息与电气工程学院,山东 青岛 266510)
由于煤矿的特殊工作环境,它对供电系统的要求较为严格,因此可靠、高效的电力故障监控系统对煤矿的安全生产极其重要。本文所述的监控系统以支持TCP/IP协议和现场总线接口的工控机为核心部件。作为总线上的主控器和煤矿局域网上的节点,监控系统通过总线与故障检测模块交换信息,通过以太网与上位机监控软件交换信息,使总线通信局限于单个变电所;主体通信通过以太网完成,从而减少外界干扰,扩大检测系统的覆盖面,提高系统的工作效率。
IEC 60870-5-104之前的规约大多在具有永久连接电路的站间传输基本远动信息,而104规约是“采用标准传输文件集的 IEC60870-5-101 的网络访问”[1-5],运行于TCP协议之上,可以在TCP/IP框架内运行在不同结构的网络上[6-9]。本文主要分析了104规约的数据格式、传输规则和机制,并在TCP/IP协议基础上实现了104规约的主要功能。
前期煤矿的供电监控系统大多采用现场总线技术,各个变电所相互独立,信息传输距离较短,易受现场环境的干扰;组成的网络规模小,不能实现真正意义上的远程监控,必须进行现场操作才能获得变电所的供电参数。这使得井下操作效率低下、安全性低。早期监控系统框架如图1所示。
图1 早期监控系统示意图Fig.1 Schematic diagram of the monitoring system of early stage
基于网络技术的检测系统能克服总线型系统的缺点,上位机和所有变电所都挂接到网络上,所有信息参数通过TCP/IP网络传输,可以真正实现远程监控和数据统计。这样的监控系统覆盖面广、组网简单灵活、易于扩展,其系统框图如图2所示。
图2 基于网络的监控系统示意图Fig.2 Schematic diagram of the monitoring system based on network
在基于网络技术的检测系统中,工控机系统支持TCP/IP协议和总线接口,104规约也在工控机上实现。工控机通过总线接口读取各个检测模块采集到的故障信息,并根据信息的类型打包成相应格式的104规约数据包,再通过网络套接口发送到网络上;上位机接收此数据报,在解析出现场信息之后,再进行下一步的用户交互操作。
IEC60870-5-104规约的数据格式[4]定义具体如表1所示。
表1 远动配套标准的APDU定义Tab.1 Definition of APDU for telecontrol supporting standard
表1中,启动字符为68 H,定义了数据流的起点。应用协议数据单元(application protocol data unit,APDU)的长度是指控制域字节到APDU最后一个字节之间的所有字节数。
IEC 60870-5-104规约规定了I格式帧、S格式帧和U格式帧3种帧类型,帧类型由4个控制域字节决定。类型标志用来标志APDU中数据的类型,主要包括遥测、遥信/变化遥信、顺序事件记录SOE、遥控等,每种类型各有1 B的常量值与之对应。
可变结构限定词的各位段取值如表2所示。
表2 结构限定词Tab.2 Structure qualifiers
表2中,SQ和N均表示可变帧长。
传送原因字段用来标志数据传输的原因,主要包括周期、循环、突发、初始化、请求/被请求、激活、激活确认、激活结束、响应总召唤等,每个传送原因都对应1 B的常量值。公共地址一般与链路地址相同。信息体地址分为两类:若是响应总召唤类变长帧,信息体地址为0000;若为转发YC/YX/YM值,则信息体地址为YC/YX/YM。品质描述主要用于命令数据传送,主要包括召唤全数据、召唤组数据、召唤全电度、召唤组电度或YC/YX/YM值。遥控命令限定词的位定义如表3所示。
表3 遥控命令限定词Tab.3 Telecontrol command qualifiers
表3中,S/E为0表示遥控执行,为1表示遥控预置;DCS为0表示不允许,为1表示遥控分闸,为2表示遥控合闸,为3表示不允许。
IEC 60870-5-104规约使用TCP/IP提供的服务在网络上传输。现在的操作系统大都支持TCP/IP协议栈,在无操作系统的情况下,也有许多功能比较完善的TCP/IP 协议模块可以直接使用[10],如 BSD TCP/IP、LwIP、uIP、TinyTcp等,它们提供了充分的用户接口,可以开发网络应用程序而不必关心协议的具体实现细节。本文设计的系统目前运行于Windows系统下,提供了大量Socket API和2个Socket类。这些接口和类封装了网络协议的细节,可以使用户专注于应用层程序(104规约)的开发,提高开发效率,缩短开发周期。
IEC 60870-5-104规约中定义了一些变量,这些变量的状态在数据传输过程中是不断变化的,是数据准确传输的前提。因此,在应用程序开发中要对这些变量特别关注,必须通过相应的编程技术对它们加以保护,避免访问冲突。这些变量主要有:APDU总长度、端口号、发送序列号NS、接收序列号NR等,具体定义如下。
①APDU总长度:IEC 60870-5-104规约规定APDU的总长度限制为255 B,故应用服务数据单元(application service data unit,ASDU)最多包含249 B 的数据。
②端口号:在传输层固定为2404,这已经得到互联网数字分配授权(Internet assigned number authority,IANA)的认可[5]。
③发送序列号NS:发送方每发送一帧数据,发送序列号就自动加1,并记录发送帧的个数,此值在初创建或重新创建TCP连接时初始化为0。
④接收序列号NR:接收方每接收一帧数据,接收序列号就自动加1,当此值被返回给发送站时,表示所有发送序列号小于此值的APDU被认可。
⑤t0:连接建立应在此时间范围内完成,否则连接建立超时,默认值为30 s。
⑥t1:发送方发送一个I格式或U格式报文后,应在此时间范围内得到对方的确认信息,否则将重新建立TCP连接,默认值为15 s。
⑦t2:接收方在接收到I格式报文后,若经此时间后没有新I格式报文送来,则接收方要发送S格式帧对已收到的I格式帧进行确认,默认值为10 s。
⑧t3:在此时间内若没有收到任何格式的数据,则应向对方发送测试链路帧。在接收到任一种格式的数据后,复位此时间值,默认值为20 s。
⑨k:在某一特定时间内,若未被确认的连续编号的I格式帧的个数达到此数值时,发送方停止发送,默认值为12个APDU,取值范围为1~32767个APDU。
⑩w:接收方在收到I格式后应尽快进行确认,104规约规定最晚在接收到w个I格式帧后必须进行确认,默认值为8个APDU,取值范围为1~32767个APDU。
IEC 60870-5-104规约既规定了数据格式,又规定了数据收发规则,保证数据的可靠传输,这些规则和要求是104规约实现的依据。104规约是建立在TCP协议基础上的。TCP协议是面向连接的可靠传输协议,具有完备的编号系统、差错控制、流量控制和拥塞控制等机制,以保证数据传输的可靠性[8]。因此,在规约实现时,可以充分利用这些控制机制来提高信息的传输效率和准确性。104规约定义的功能较多,可根据实际需要在实现时予以裁减。规约的主体功能实现主要包括以下几个方面的内容。
3.2.1 连接初始化
连接初始化步骤如下。
①连接建立。104规约规定发送数据前必须先建立连接,连接由控制站建立。若所有站都是控制站,则选择其中的一个建立。控制站向网络发送主动连接请求,若被控站监听到此请求,则连接建立;否则控制站将反复发送此连接请求,直到被控站返回,被动打开连接请求。监听到控制站连接请求后,建立连接。
②连接重置。在连接建立后,如果出现连接故障,控制站可以重置连接。控制站首先发出重置命令,被控站确认并发出主动关闭连接请求,主控站确认并发送被动关闭连接请求,两站之间连接被释放。经过一段时间(即t0)后,开始建立新连接操作。
③连接关闭。控制站和被控站都可以提出释放连接的请求。控制/被控站发出主动关闭连接请求,被控/控制站确认并发送被动关闭连接请求,控制/被控站对这个被动关闭请求作出确认后,连接被释放。
④传输控制。TCP逻辑链路成功建立后,控制站必须利用U格式帧中的STARTDT和STOPDT位来控制被控站的数据传输,否则被控站不会发送任何数据(未编号的控制功能除外);同时,通信双方要一直监视链路,使得当链路故障时,能够再次发送连接请求重新建立连接。主站发送开始或结束控制报文,当子站正确应答此报文后,即可以开始或结束数据传输过程。
3.2.2 数据上传
数据上传主要包括以下几个方面。
①事件主动上传。104规约采用的是平衡传输方式,当子站检测到突发事件后,应主动上传事件信息,如变位遥信、带时标的变位遥信等。子站主动上传,主站要予以确认。
②循环上传。对于电压、电流等模拟量数据,其值是连续变化的,要在一定的时限内以遥测帧的形式循环上传。子站上传,主站确认。
③召唤上传。当主站需要某类信息时,发送相应的召唤命令,子站根据主站的要求发送相应的数据包。一般在连接建立、时钟同步之后,主站会发送总召唤命令;子站根据总召唤命令发送相应的全部信息。上传完一种类型的数据后,主站要进行确认。
④传输确认。如果数据只在一个方向传输,就要在另一个方向发送S格式帧,认可已经发送的APDU,否则已经传送的数据无效。
3.2.3 主站遥控
遥控命令用于远程控制子站的执行机构,以完成相应操作。主站发出遥控预置命令,由子站进行返校确认;主站在接收到返校帧后,发送遥控执行命令,由子站执行并返回执行确认帧;执行完成后再发送执行完成帧,从而完成一个遥控过程。
3.2.4 时钟同步和链路测试
①时钟同步。在最大网络延迟小于规约要求的时钟精度的情况下,应该进行时钟同步,如果不进行同步,带时钟信息的数据中,时间信息就变得没有意义。首先主站发送时间同步命令,子站在接收后更新时钟,并生成时钟报文发送给主站,用以确认;主站确认后即完成同步。系统初始化时要进行同步,且以后每隔一定的时间要再进行同步操作。
②链路测试。如果连接建立但没有使用,或在规定时间间隔内没有数据传输,就要发送测试帧,并在两个方向上进行周期性测试。
除以上所述功能外,用户还可根据需要,添加文件传输、参数装载、累积量传输等功能,具体细节参考文献[5]。
采用工控机作为104规约网络传输系统中的被控站和现场总线系统中的主控制器。下位机的具体任务流程与104规约的应用场合有关,不同场合有不同的信息关注点,因此其任务内容也会有差异。但总体说来,104规约的实施内容主要包含以下几个步骤。
①建立TCP连接。
②请求数据通信。TCP连接建立后,要启动链路才能够开始I格式的数据传输,否则链路上只能传输U格式的数据。
③对时。若将要传输的数据需时间信息,则应先同步各个站点之间的时钟,否则数据包中的时标信息对控制站来说是无意义的。
④总召唤。一般系统启动后要先收集子站上所有的信息,如各线路的开合状态、电流电压值等,这时控制站就需要进行一次总召唤操作,将子站的全部状态信息收集一次。
⑤一般数据传送。完成以上几步后,控制站开始调度各个被控站点的事件主动上传、一般遥信/遥测数据上传以及遥控数据传输等操作。
需要注意的是:链路测试、计时程序、故障诊断等辅助程序是与以上过程并行执行的,无论哪个环节出现链路中断、计时超时等问题,系统都会调用相应的关闭连接、重置连接、链路测试、单向确认等子程序,以及时处理这些问题,确保系统的正常运行。
⑥断开或重置连接。TCP链路使用完毕后要断开连接,若通信过程中TCP链路出现故障,则要根据实际要求关闭或重置链路。
试验和应用证明,本文所述的基于工业以太网技术、采用IEC 60870-5-104规约的电力监控系统[10-14]灵活高效,能够很好地完成煤矿电力监控系统所要求的全部功能。与传统的采用现场总线技术、Modbus协议[15-16]、CDT规约等半双工或不平衡传输协议的监控系统相比,该监控系统具有很大的效率优势。在当前一定时期内,系统还可与IEC 61850规约系统配合使用,共同构建大型电力监控系统。
[1]张胜,王健,贺春,等.IEC 60870-5系列配套标准应用探讨[J].电力系统保护与控制,2009,37(11):99-105.
[2]冯焕霞,杨俊华,郑俭华,等.IEC 60870-5-104协议的实时性能分析[J].华东电力,2009,37(4):577 -581.
[3]黄金民.IEC60870-5-104协议及其模拟器的研究与实现[D].广州:华南理工大学,2010.
[4]中华人民共和国国家经济贸易委员会.DL/T634·5101-2002/IEC 60870-5-101[S].北京:中国电力出版社,2003.
[5]中华人民共和国国家能源局.DL/T634·5104-2009/IEC 60870-5-104[S].北京:中国电力出版社,2009.
[6]赵渊,沈智键.基于TCP/IP的IEC 60870-5-104远动规约在电力系统中的应用[J].电网技术,2003,27(10):56 -71.
[7]路伟逢,吴峰.矿井电力监控管理系统[J].煤炭技术,2009,28(2):188 -189.
[8]Forouzan B A.TCP/IP协议族[M].王海,张娟,朱晓阳,译.北京:清华大学出版社,2011:368-430.
[9]Scaglia S.嵌入式 Internet TCP/IP基础、实现及应用[M].潘琢金,徐蕾,拱长青,等,译.北京:北京航空航天大学出版社,2008:20-415.
[10]焦海波,刘健康.嵌入式网络系统设计—基于Atmel ARM7系列[M].北京:北京航空航天大学出版社,2008:132-285,355-425.
[11]任泰明.TCP/IP网络编程[M].北京:人民邮电出版社,2009:22-314.
[12]王久鹏,尚春阳.ZigBee和GPRS技术在无线监控系统中的应用[J].电讯技术,2008,48(4):331 -332.
[13]张勇,侯立刚,肖炎良,等.工控组态软件实时数据库系统的开发与设计[J].自动化仪表,2011,32(12):28-31.
[14]李冰.地铁综合监控系统中的数据转发研究[J].自动化与仪表,2011(6):35-37.
[15]王成多,方祥,武素莲.基于Modbus-RTU协议的现场总线局域网在智能电器中的应用[J].电气制造,2007(12):72-75.
[16]董立君,刘书伟,侯逸青.VB基于Modbus规约的串口通信[J].工业控制计算机,2006,19(8):8 -10.