一种高压直流输电快速总线通信故障检测与处理的方法
★中国电工技术学会出品★
致力于产业界与学术界融合创新的品牌会议
①浏览会议通知,请戳下面标题 ☟
☞第二轮通知︱2018第十二届中国电工装备创新与发展论坛暨第八届电工技术前沿问题学术论坛
②参会注册,请长按识别下方二维码 ☟(先注册网站会员,然后提交报名信息)
许继电气股份有限公司、国网浙江省电力公司检修分公司的研究人员刘威鹏、曾丽丽等,在2018年第6期《电气技术》杂志上撰文,针对特高压直流输电工程中快速总线通信存在的故障检测功能不完善的问题,基于HCM3000系统进行设计,通过在用户层数据中增加用户故障检测协议域并在底层增加相应的处理策略,实现链路初始状态分析、链路故障告警、故障及故障恢复防抖功能、报文握手及报文确认、用户CRC故障处理与告警等功能;并将其封装成功能块的形式为用户提供灵活配置的接口和状态与数据的输出。
该方法遵循了可靠性、易用性和灵活性的设计原则,工程应用表明,其故障检测和处理机制完善、高效、快速。
随着我国经济的高速发展,电力需求日益增多;同时环境问题日益突出,清洁能源的使用和电能替代工作已势在必行。但目前资源分布的情况是能源供地、清洁能源基地远离负荷中心,因而特高压直流输电成为了国家的战略选择。特高压直流输电可实现远距离、大容量的电能传输,适合大区电网之间的非同步连接,具有损耗小、线路造价低、调节灵活快速等优点[1-4]。
目前,国家电网公司提出了构建亚欧洲际特高压能源通道的战略构想,计划实现从中亚及中国西北地区向欧洲进行超远距离大规模输电[5]。如何实现和保障直流输电系统的可靠稳定运行成为了目前的研究热点。
直流输电控制保护系统是直流输电系统的重要组成部分和大脑[6],其配置复杂,使用多种总线实现外部和内部设备之间的连接,其中使用最多的是快速总线通信,在要求数据尽可能高速传输的情况下,更对数据的正确性和可靠性有苛刻的要求,需要完善的故障检测与处理机制。
本论文针对特高压直流输电控制保护应用提出了一种快速总线通信故障检测与处理的方法,在实现数据高速传输的同时,又兼顾了可靠性和灵活性,工程应用效果好。
1 快速总线通信技术介绍
快速总线是直流输电控制保护通信系统的重要组成部分,本设计基于HCM3000系统进行实现。
1.1 特高压直流输电控制保护系统
控制保护是特高压直流输电系统的核心,其对直流工程的稳定运行起着至关重要的作用,因而要求相应的平台、设备要有极快的处理和响应速度;要求相应的通信方案稳定、可靠性强、具备完善可靠的故障诊断机制。
HCM3000是许继自主研发的高端直流输电控制保护通用平台,基于并行总线架构;通过CFC图形化的方式为工程人员提供二次编程和在线调试的功能,功能强大,层次清晰[7]。多种硬件、外设和算法以功能块的形式提供给用户使用,使得工程应用人员可以把主要精力放在控制保护的具体逻辑设计上,而不用关注底层实现。
1.2 快速总线通信
直流输电控制保护系统由极控系统、阀控系统、直流站控、交流站控、极保护、阀保护、交流滤波器保护、换流变保护系统等组成,其中控制主机采用双重化冗余配置,保护主机采用三取二的冗余方案,这些子系统除与外部设备进行接口外,自身内部、子系统之间还需要一些快速信号的传递[8]。
直流输电控制保护系统对数据传输的实时性和可靠性有很高的要求,尤其是两个主处理器板卡或者子系统之间进行传输时,要求能实现关键数据和信号的高速传输,这种点对点的通信方式就是快速总线。
快速总线一般是通过子板的形式安装在主处理器板卡上实现功能的,一个完整的快速总线通信链路由一收一发两个节点组成。HCM3000中快速总线通信子板由FPGA+桥片构成,如图1所示。FPGA主要完成数据的高速收发和处理,桥片负责处理器和FPGA的接口。但在具体的使用中存在以下问题。
图1 快速总线子板结构图
1)已有的快速总线通信只有基于硬件本身的数据链路层故障检测机制,这种方法在断开通信介质情况下,能准确检测到链路的故障,但在发送方状态机跑死或者发送任务中断而通信物理链路未断开的情况下则不能及时发现故障。
2)在特殊状态下,链路通信会出现短时间内频繁的故障与恢复,常规快速总线故障检测机制在此期间会显示链路状态正确与故障的频繁切换,这显然会增加系统的不稳定性。
3)快速总线通信子板是扣在主处理器板卡上使用,其故障判断的信息一般来自于插件本身的处理器或FPGA,并未将处理器板卡和通信插件之间传输的故障考虑进去,这是不够完整和严谨的。
4)有些应用中需要使用握手机制,如云广工程的极保护与极控之间,发送方只有在接收到接收方回复的确认信号之后才会组织发送新的报文。而这些机制在应用层实现会增加应用程序的复杂度,因此,该功能更应该直接封装在底层程序中实现。
基于这些问题,本文提出了一种低成本、易实现的解决方案,即通过在用户层增加用户故障检测协议域(以下简称XHUEC域),并在底层程序中增加相关的处理策略,实现了快速总线通信的故障检测与处理功能,包括链路初始状态分析、链路故障告警、链路故障及状态恢复防抖、报文握手与报文确认机制等功能、用户CRC数据校验与CRC故障处理等功能。
2 快速总线通信故障检测与处理的方法
通信协议的设计需要结合HCM3000系统相关的特性和工程具体使用需求来进行开发,具体原则如下。
1)可靠性。
可靠性既要考虑包括故障诊断的快速性,又要考虑工程使用中的稳定性。具体的工程使用中,最终故障诊断结果除由协议判断产生,还应综合考虑硬件本身的故障检测结果,对两者的信息进行综合,可以保证故障诊断的快速产生,以使工程应用程序能据此快速的进行相关动作,如切换冗余系统、跳闸保护等。
稳定性是指故障处理应考虑通信的单次误码、链路故障产生和消除时的抖动问题,在严格的故障诊断要求下还要考虑一定程度的容错性,以避免系统出现不必要和频繁的动作。
2)易用性。
将应实现的功能封装在底层程序中,并通过功能块的形式提供给用户使用,工程人员只需在功能块上进行相应的配置和使能,即可使用相应的功能,同时只需在功能块的输出接口读取最终故障诊断结果,就能获取链路实时情况并用于控制保护的判断逻辑。这样就将复杂的协议和故障处理机制变为了清晰而简单的输入输出接口。
3)灵活性。
在具体的工程应用中,有些要求高可靠性,因此需要报文握手和确认机制;有些需要对数据进行二次校验,因此需要用户CRC校验机制。此外,通信双方可能使用不同的发送接收周期,故需要据此对链路故障防抖时间进行灵活设置。因此需要针对各个子功能设计使能接口,用户根据具体使用情况选择使用或不使用某项功能,同时提供接口供应用人员配置相关参数。
快速总线通信提供了原始的数据通道和基于数据链路层的故障诊断功能,本论文的设计方案需要在用户层数据帧中增加XHUEC域,该域包含了报文信息子域、活动报文子域、报文握手子域、报文确认子域和报文CRC自校验子域。如图2所示。
报文信息子域含有报文基本信息,包括发送周期、报文长度、报文状态等信息。活动报文子域可用于实现链路初始状态分析和链路状态实时检测等功能。报文握手子域和报文确认子域配合使用,用于实现报文接收确认和重发功能。报文CRC自校验子域在报文的最后,用于实现用户CRC自校验功能[9]。
图2 增加XHUEC域的快速总线用户报文结构图
2.1 报文故障检测与防抖功能
报文故障检测和防抖功能由接收方配置并实现。接收方对接收到报文XHUEC域中的活动报文子域进行检测,若数值不在规定的范围内(0~127),则认为发送方未与接收方建立有效连接或发送方从未发送过有效数据,此时属于链路初始化状态故障。若活动报文子域数值正常,则转入图3所示流程进行处理。方法如下。
1)若活动报文更新,且链路状态指示正确,则转入报文送出流程。
2)若活动报文不更新,而此时链路指示正确,则启动故障告警防抖计数器,时间到时则认为链路真正故障,置位链路故障指示位。在计时期间若出现1次活动报文更新的情况,则复位计数器初始值进行重新计时。为保证链路故障告警的快速性,此故障告警信息一般与硬件本身提供的告警信息进行相或,此功能由用户编程设置。
3)若活动报文不更新,而链路状态指示错误,则直接置位链路故障指示位。
4)若活动报文更新,而链路状态指示错误,则启动故障恢复防抖计数器,时间到则认为链路故障真正恢复,清零链路故障指示。在计时期间若出现1次活动报文不更新的情况,则复位计数器初始值进行重新计时。
图3 报文故障检测与防抖功能流程图
2.2 通信握手与报文确认功能
发送方和接收方同时维护报文握手和确认子域,并据此实现报文接收确认和重发功能。用户可以通过编程接口配置是否使用该机制。如图4所示,在使用该机制的情况下,发送方只有在接收到对方的确认标记之后,才组织发送新的报文,新的报文内容包括新报文的标记、对接收到对方报文的确认回复标记和有效数据。
若接收不到对方的确认回复报文,则重发上次的报文。该功能要求通信双方都配置了发送和接收功能,即使发送有效数据为空的情况也可以。为兼顾数据的重发和实时更新功能,发送方需要使用双缓存区的内存结构,保证一个缓存区存放上次发送但未收到确认信号的数据,另一缓存区存放最新待发送的数据。
图4 报文握手与报文确认机制流程图
2.3 用户CRC校验功能
用户CRC自校验子域位于整个报文的最后,用户通过编程接口选择使用该功能,在发送前计算发送数据的CRC值,之后再进行发送,接收端在也使能了接收校验的情况下对接收到的数据进行CRC计算并将结果与接收到报文的最后一个数据(即发送端计算的CRC)进行比较,若一致,则报CRC计算正确;反之,则报CRC错误。
当出现CRC错误时,单次CRC故障指示位置1,内部计数器自加2,当CRC正确时,单次CRC故障指示位清零,内部计数器自减1。内部计数器最小值为0,最大值用户可配置(默认为200),若计数器值大于阈值(默认为5),则认为CRC频繁出错,链路故障指示位置1,故障状态下,若计数器值小于阈值,则清除CRC频繁出错标志,并清零链路故障指示位,如图5所示。
图5 CRC故障处理机制流程图
3 设计的应用
设计遵循可靠性、易用性和灵活性的设计准则,将通信协议和处理策略封装在快速总线通信数据帧和相应的功能块中,子功能的使能选择、参数配置、故障诊断结果以功能块输入输出的形式为工程应用人员提供接口。
从传输效率、处理器计算性能方面综合考虑,将链路故障检测与报文防抖功能作为默认功能使用,不可取消,防抖时间参数可设置;通信握手与报文确认功能、用户CRC校验功能作为可选功能由用户根据需求设置。
具体应用中,快速总线通信由一收一发两节点组成,由于通信子板支持双工通信,所以发送方也可以是另一通信链路的接收方。每一个通信子板需要配置初始化功能块以初始化PCI设备、开辟发送、接收缓存区,产生初始化地址。
如图6所示,在发送侧,发送功能块根据初始化地址组织待发送的有效数据,并在每一包数据的活动报文子域填写新的标记;在使用报文确认功能情况下,发送程序根据上次接收到的报文比较报文握手和确认子域,以确定对方是否有效接收了数据,进而判断是重发还是发送新的报文,重发时活动报文依然需要更新;用户CRC发送端使能时,发送程序会根据发送数据的长度计算报文CRC并将其写在有效数据的尾部。发送程序最终通过PCI将全部数据帧写入FPGA的FIFO并启动发送。
图6 发送侧配置图
如图7所示,接收侧,接收程序根据初始化地址读出接收到的有效数据。接收侧可根据具体需求和应用程序配置情况灵活设置链路故障确认防抖时间和链路故障恢复防抖时间,以实现稳定可靠地检测链路故障和故障恢复,并实时指示链路工作状态;用户CRC接收端使能置位的情况下,接收程序将对接收到的有效数据根据长度进行CRC计算,并与发送方的计算值进行比较,比较的结果和硬件本身的CRC校验情况相或,任何一种CRC校验故障均会触发CRC的故障指示。
图7 接收侧配置图
4 结论
本文介绍了基于特高压直流输电系统的快速总线通信的使用场合、工作特性和硬件形式,并遵循可靠性、易用性、灵活性的设计原则,基于HCM3000系统设计了一种快速总线通信故障检测与处理方法,即在用户层数据帧中增加用户故障检测协议域,并将故障处理策略封装在功能块中,从而为用户提供了功能完善、快速灵活的故障检测和处理功能。
该方法易于编程实现,易于移植,实现成本低,造成的系统开销小,目前已在多个特高压直流输电工程中得到成功应用[10]。本设计也适用于对数据传输有高速、高可靠性要求的工业点对点通信应用场合。