专利名称:一种风电机组控制软件异常行为检测与导向安全方法
技术领域:
本发明涉及风力发电机组安全与保护技术领域,尤其涉及风电机组控制软件运行时安全性检测与处理。
背景技术:
随着风能开发利用的不断深入,我国风电场建设朝高海拔、海上等风速变化剧烈、强雷电地区拓展。剧烈变化的风速使风电机组发电系统辐射强度更大的电磁波;强雷电直接形成强大的电磁干扰。尽管风电机组控制计算机系统进行了抗电磁干扰方面的处理,但是由于电场耦合、磁场耦合、公共阻抗耦合难于消除,强电磁干扰将使控制计算机程序跑飞的概率增加,控制程序跑飞后,将引起控制行为的混乱。同时,由于监控、调度的需要,风电机组控制计算机系统普遍接入网络,出于竞争、利益、好事、情绪发泄等原因,风电机组控制器面临各种在线攻击。尽管可以通过通信与数据安全手段进行一定强度的防御,但由于系统安全缺陷与软件漏洞总会存在,在计算机领域,目前尚不能有效防范攻击者利用这类安 全脆弱点取得系统控制权。一旦攻击者成功入侵机组控制系统,将可能运行恶意代码,干扰机组的控制,使机组的控制陷入紊乱。无论是机组控制计算机程序跑飞,还是运行恶意指令,均是偏离控制源程序意图,是异常行为。现有风电机组应对软件异常行为主要依赖看门狗技术,程序如果不能在规定的时间内输出信号使看门狗复位,看门狗输出信号触发机组安全链,通过紧急停机对机组进行保护。但大型机组紧急停机,将会对机组的制动系统、齿轮箱、主轴和叶片以及塔架产生强烈的冲击,增加部件的载荷和疲劳,影响部件寿命,需要尽量避免。更为严峻的是,看门狗只能检测出控制软件执行周期异常,粒度过粗,检出蓄意破坏的能力薄弱。因而需要考虑引入新的机制检测并应对软件异常行为,为机组安全提供保障。从理论上说,可以在风电机组控制计算机中部署检测软件进行异常行为检测与处理。但实际上,一方面,出于可靠性考虑,机组控制普遍采用PLC控制系统,其计算资源有限,难于实现自身安全的检测软件平台,当控制程序被破坏时,检测程序本身有可能已被破坏,失去功能;另一方面,需要控制软件配合(如函数签名,插装)才能实现检测功能,须要对已有的机组控制软件进行改写,而风电机组对安全的苛求,控制软件更改后需要经过严格的测试与验证才能应用,代价十分高昂,需要尽量避免。随着技术的发展与进步,目前越来越多的PLC主控制器都能输出本身所执行的指令流,这为本发明提供了契机。
发明内容
本发明的目的在于提出一种风电机组控制软件异常行为检测与导向安全方法,该方法可以检测风电机组主控制器软件跑飞或执行计划外代码的异常行为,并在这类异常发生时将机组导向安全。为达此目的,本发明采用以下技术方案构建独立于机组控制器的软件异常行为检测与应对系统,与机组控制器并行运行。首先由异常检测模块检出控制软件运行期的异常行为,其检测方法是,将主控制器交付运行的指令逐条与机组控制软件二进制源代码进行比对,如果主控制器输出的指令违背控制流图或者不符合基本块内部指令顺序关系,则是发生异常行为。然后导向安全模块收到异常检出信号,由通信通路管理模块切断主控制器与通信模块的通信,建立导向安全模块与通信模块的通信,采用导向安全方法将风电机组按正常停机模式停机。整个过程和各个模块独立于机组主控制器自治运行,控制软件正常运行时装置对主控系统无干扰。本发明的有益效果是,首先软件异常行为检测的各个模块独立于机组控制软件,这样不需要对机组控制软件做任何改动。然后软件异常行为检测方法能有效地检测出软件的异常行为。最后导向安全方法能够在检测出机组控制软件行为异常时,实时地将机组导向安全。
图I是本发明具体实施方式
中软件异常行为检测与应对系统的体系结构。图I中, ①表示指令流;②表示异常检出信号;③表示主机关机信号;④表示传感器信号表示通路切换信号表示机组控制信号。图2是本发明具体实施方式
中软件异常行为检测原理。图3是本发明具体实施方式
中通信通路切换原理图。
具体实施例方式下面结合附图并通过具体实施方式
来进一步说明本发明的技术方案。图I是本发明具体实施方式
中软件异常行为检测与应对系统的体系结构。如图I所示,该结构包括机组主控制器101,异常行为检测与应对系统102,通信模块103,其中异常行为检测与应对系统进一步包括异常检测模块121,通信通路管理模块122,导向安全模块 123。通信模块103对应PLC的通信板卡,通信功能自治;机组主控制器101和异常行为检测与应对系统102是PLC主机板卡的核心部件;异常行为检测与应对系统102独立于机组主控制器101,与之并行运行。异常行为检测与应对系统102在主机控制器运行期实时检测机组控制软件是否发生行为异常,检测具体表现为机组主控制器101在控制软件运行期间时刻向异常检测模块121发出指令流①。未检出异常时,异常检测模块121不发出任何指令,这样达到异常行为检测与应对系统102对系统控制不进行任何干预的目的。如果检测出异常,异常检测模块121向导向安全模块123发送异常检出信号②;导向安全模块123在收到异常检出信号②后,按照事先定义的异常应对方法,向机组各执行器件发送控制指令,向主控制器101发送主机关机信号③,向通信通路管理模块122发送通路切换信号⑤和机组控制指令⑥;这时通信通路管理模块122向机组主控制器101和通信模块103发出机组控制指令⑥,屏蔽机组主控制器101对机组的控制,由异常行为检测与应对系统102接管机组控制,同时接收机组主控制器101、通信模块103收集的传感器信号④,再将传感器信号④发送给导向安全模块123,由导向安全模块123根据传感器信号④的实时信息制定相应的停机策略,将机组导向安全。
实现异常行为检测与应对系统102对控制的接管。在正常情况下,机组主控制器101与通信模块103之间的通信保持畅通,而切断异常行为检测与应对系统102与通信模块103之间的通信,机组主控制器101控制机组;在软件发生异常行为的情况下,切断主控制器101与通信模块103之间的通信,而导向安全模块123与通信模块103之间的通信保持畅通,异常行为检测与应对系统102控制机组。图2是本发明具体实施方式
中软件异常行为检测原理。如图所示,该原理图包括二进制源代码201,静态分析202,基本块与控制流图文件203,文件格式化204,异常检测模块205,机组控制计算机206,导向安全模块207。其中异常检测模块进一步包括动态指令侦听模块251,指令格式化252,参照文件253,比对逻辑254。预处理离线进行,对控制软件的二进制代码201进行静态分析202,生成控制流图文件203,同时给出每个节点(基本块)的具体内容;为配合检测系统的实现,使检测系统能兼容各种系统,将基本块与控制流图文件203进行文件格式化204转换,无论系统采取何种指令集,转换后用统一的格式表达基本块之间的转移关系,用统一的格式表达基本块内的指令,形成比对参照文件253。文件格式化模块204对基本块与控制流图文件203进行 格式转换与封装,使比对逻辑254能理解程序控制流图,同时抑制比对逻辑的复杂性。由于异常检测模块基于FPGA实现,如果直接将主控制器输出的32位长的指令与源代码对比,异常检测模块的逻辑将十分复杂。异常检测的本质是获知控制器执行的指令顺序是否符合预期,对指令的具体内容不敏感,只要能区分指令顺序就能满足检测需要,可以替代表达。用X=hash_4 (instruction)表示对指令instruction进行哈希值位长为4的哈希运算,其结果是X,那么用X置换对应的指令是一种等效置换,置换后的基本块称为等效基本块。异常检测模块205是独立于机组控制计算机206的装置,与机组控制计算机206并行运行,在线进行机组控制计算机206非预期行为检测。动态指令侦听模块251实时获取机组控制计算机处理器输出的指令流,并实现与后继处理过程的同步。指令格式化252实现将来自机组控制计算机的每条指令instruction进行hash_4 (instruction)运算,将得到的4位组数据流送往比对逻辑254。比对逻辑254以参照文件253为模板,对指令格式化252交付的指令逐条进行合法性判断,如果发现不符合控制流图或基本块内容,异常检测模块254向导向安全模块207输出异常检出信号,由导向安全进行后继处理。为了确保异常检测模块205能捕获机组控制计算机206运行的首条指令,在异常检测模块205就绪后向机组控制计算机206发送“允许启动信号”,允许机组控制计算机206启动。在检出机组软件行为异常时,通过正常停机将机组导向安全。为了避免紧急停机给风电机组造成巨大冲击,在异常检测模块检出机组控制软件行为发生异常时,实现机组按正常停机模式停机。当异常检测模块输出“异常检出信号”时,导向安全模块按以下步骤将机组导向安全。第一步,向通信通路管理模块发出通信通路切换信号,以屏蔽主控制器与通信模块的通信,建立异常应对模块与通信模块的双向通信;与此同时,向机组主控制器发主机控制信号,使主控制器停机;第二步,异常应对模块向机组传感器取当前节距角、主轴转速(发电机转速)、刹车位置传感数据,为正常停机提供必要参数;第三步,执行机组正常停机流程。针对具体机型,异常应对模块实现具体的正常停机流程;第四步,异常行为检测与应对模块复位,主机控制器与通信模块通信链路接通,使主机控制器下一次启动时能正确控制机组。通过这些步骤的操作,机组按正常停机模式停机,并为下次开机做好准备。整个过程,不需要主控制器干预,独立于机组主控制器及其软件。图3是本发明具体实施方式
中通信通路切换原理图。如图3所示,该结构主要包括机组主控制器301,异常行为检测与应对系统302,通信卡板303,开关逻辑1304和开关逻辑2305开关逻辑,异常行为检测与应对系统还包括异常检测模块321,导向安全模块322和通信通路管理模块323。系统运行中,机组的控制需要在机组主控制器301和异常行为检测与应对系统302间切换。为使切换过程与机组主控制器301无关,以保证机组控制软件无须更改,通过对通信通路管理模块323的调用来实现控制切换。机组主控制器中软件运行正常的情况下,导向安全模块322静默,通信通路管理模块323输出开关控制信号使开关逻辑1304中的“开关”闭合,开关逻辑2305中的“开关”断开,机组主控制器301与通信板卡303的通信链路畅通,异常行为检测与应对系统302与通信板卡303通信链路断开,由机组主控制器301控制机组;机组主控制器中的软件行为异常时,在导向安全模块322输出的通信通路切换信号激励下,通信通路管理模块323输出控制信号使开关逻辑1304中的“开 关”断开,开关逻辑2305中的“开关”闭合,机组主控制器301与通信板卡303的通信链路断开,异常行为检测与应对系统302与通信板卡303通信链路畅通,由异常行为检测与应对系统302控制机组;系统复位时,等效于机组主控制器中软件运行正常的情况,通信通路配置为机组主控制器控制机组。
权利要求
1.一种风电机组控制软件异常行为检测与导向安全方法,其特征在于,包括以下步骤A、取机组主控制器实时输出的自身所执行的指令流到异常行为检测与应对系统,该系统通过指令路径分析而检出软件异常行为;B、异常行为检出后,异常行为检测与应对系统进行通信通路切換,实现对机组控制的接管;C、异常行为检测与应对系统接管机组控制后,通过安全停机方法,将机组导向安全。
2.根据权利要求I步骤A、B、C所述的异常行为检测与应对系统,其特征在于,异常行为检测与应对系统是硬件上独立于风电机组主控制器的计算机系统,与风电机组主控制器并行运行。
3.根据权利要求I步骤A所述的指令路径分析,其特征在干,将风电机组主控制器执行的指令逐条与机组控制器软件ニ进制源代码按顺序进行指令比对,如果发现主控制器执行的指令不是机组控制软件ニ进制源码给出的可能的程序执行路径之一,判断为软件异常行为。
4.根据权利要求I步骤B所述的通信通路切換,其特征在干,由异常行为检测与应对系统切断机组主控制器与机组控制执行机构的通信,并建立异常行为检测与应对系统与机组控制执行机构的通信。
5.根据权利要求I步骤C所述的安全停机方法,其特征在于,首先由异常行为检测与应对系统令风电机组主控制器停机,然后由异常行为检测与应对系统令风电机组按正常停机模式停机。
全文摘要
本发明公开了一种风电机组控制软件异常行为检测与导向安全方法,用于机组主控制器软件运行时安全性检测与处理。该方法要点是1)首先,取机组主控制器实时输出的自身所执行的指令流到独立于风电机组主控制器的异常行为检测与应对系统,该系统通过发现机组主控制器执行的指令偏离控制软件二进制源码而检出软件异常行为;2)异常行为检出后,异常行为检测与应对系统通过对通信通路的切换实现对机组控制的接管;3)异常行为检测与应对系统接管机组控制后,首先令机组主控制器停机,然后令风电机组按正常停机模式停机。采用本发明的技术方案,能实时检出机组主控制器软件跑飞或执行计划外代码的异常行为,并将机组导向安全。
文档编号G06F11/36GK102831050SQ201110158128
公开日2012年12月19日 申请日期2011年6月14日 优先权日2011年6月14日
发明者苏永新, 罗培屿, 段斌 申请人:湘潭大学