一种继电保护装置显示画面的仿真实现方法

文档序号:6509780阅读:165来源:国知局
一种继电保护装置显示画面的仿真实现方法
【专利摘要】本发明公开了一种继电保护装置显示画面的仿真实现方法,包括如下步骤:利用自定义脚本,初始化显示画面的显示结构;初始化显示画面的数据显示区及系统参数;解释执行自定义脚本并生成显示内容;检测并处理鼠标操作事件或键盘操作事件。本发明通过自定义脚本对显示画面的显示结构和功能进行定义,能够实现各种类型继电保护装置显示画面的仿真,具有很好的灵活性和通用性。
【专利说明】—种继电保护装置显示画面的仿真实现方法
【技术领域】
[0001]本发明涉及一种用于继电保护装置显示画面的仿真实现方法,属于电力系统仿真【技术领域】。
【背景技术】
[0002]随着仿真技术在电力系统的广泛应用,通过计算机进行仿真培训能够为学员提供更多的培训机会,便于学员熟练掌握电力系统的运行维护规范和流程。在电力系统中,继电保护装置是保证电力系统安全稳定运行的关键设备。因此,针对继电保护装置的仿真是电网仿真、变电站仿真的重要组成部分。它可以模拟故障情况下继电保护装置的动作情况,培训电网运行人员对异常事故的处理能力,对于保证电网的安全稳定运行有着非常重要的意义。
[0003]在继电保护装置中,普遍设置有显示屏。当前,继电保护装置的显示屏已经由数码管、字符式液晶,逐步向图形式液晶发展。随着继电保护装置的功能不断扩展,通过显示屏实现的人机交互操作也日益复杂,显示内容也变得多种多样。这些都对继电保护装置显示画面的仿真技术提出了新的挑战。
[0004]针对上述的技术需求,人们进行了多方面的研究,并已取得了一定的成果。例如,通过菜单类定义,解决了显示画面的菜单结构和层次的功能仿真问题;通过脚本语言,解决显示画面菜单的运转、闪烁、动态刷新等功能的仿真问题;通过图形切换,解决图形式液晶显示和变换的仿真问题;通过按键操作、时钟刷新、模拟遥信量输入、模拟遥测量输入、定值下方等各种不同的操作,实现激发显示画面的菜单和图形功能,模拟出显示画面在各种工况下的外观显示和内部功能等。但是,现有继电保护装置所使用的显示屏日益复杂多样。如果针对每一种显示屏的特点研究相应的仿真技术,将会给技术人员带来沉重的工作负担。

【发明内容】

[0005]针对现有技术的不足,本发明所要解决的技术问题在于提供一种继电保护装置显示画面的仿真实现方法。
[0006]为实现上述的发明目的,本发明采用下述的技术方案:
[0007]一种继电保护装置显示画面的仿真实现方法,包括如下步骤:
[0008]利用自定义脚本,初始化显示画面的显示结构;
[0009]初始化显示画面的数据显示区及系统参数;
[0010]解释执行所述自定义脚本并生成显示内容;
[0011]检测并处理鼠标操作事件或键盘操作事件。
[0012]其中较优地,所述初始化显示画面的显示结构包括初始化显示画面的显示格式,每一屏之间的层次关系和每一屏的显示结构。
[0013]其中较优地,所述显示画面的显示格式为显示画面的类型、每屏显示行数以及每屏显示列数。[0014]其中较优地,所述数据显示区为显示画面到内存的映射,用于存储待显示的仿真数据。
[0015]其中较优地,所述解释执行自定义脚本并生成显示内容的步骤进一步包括:
[0016]S301:根据显示屏指示器,在显示画面的数据显示区定位当前显示的节点;
[0017]S302:根据起始行号指示器,定位当前显示的节点中第一行显示的自定义脚本;
[0018]S303:判断当前行数在显示画面中是否可见;如果不可见,则直接结束;
[0019]S304:解释执行当前行的自定义脚本,转换为显示画面的显示内容;
[0020]S305:将当前行数加1,跳转至S303。
[0021]其中较优地,所述解释执行当前行的自定义脚本,转换为显示画面的显示内容的步骤进一步包括:
[0022]扫描脚本行中的字符,如果没有则结束,如果有则取出后的字符串作为脚本关键字,由此确定脚本关键字的功能;根据脚本关键字的定义对字符串进行解析。
[0023]其中较优地,检测并处理鼠标操作事件的步骤进一步包括:
[0024]步骤S401:获取鼠标点击操作的坐标;
[0025]步骤S402:根据当前的显示屏指示器、起始行号指示器确定当前显示的节点中第一行显示的自定义脚本;
[0026]步骤S403:判断当前行数在显示画面是否可见;如果不可见,则直接结束;
[0027]步骤S404:在当前行的自定义脚本中查找鼠标操作事件的脚本关键字;如果没有,当前行数加I并跳转至步骤S403 ;
[0028]步骤S405:判断鼠标点击操作的坐标是否在鼠标操作事件的脚本关键字的热区坐标内:如果不在则跳转至S404 ;
[0029]S406:取出并解释执行脚本关键字。
[0030]其中较优地,所述取出并解释执行脚本关键字的步骤进一步包括:
[0031]取出脚本关键字,并提取其中的切换方向标志和节点号;根据切换方向标志和节点号切换至相应的显示节点;初始化起始行号指示器和光标位置指示器。
[0032]其中较优地,检测并处理键盘操作事件的步骤进一步包括:
[0033]接收键盘操作事件,提取按键名称参数;根据当前显示屏指示器在数据显示区找到显示画面的显示节点;根据起始行号指示器找到显示画面的显示节点中第一行显示的自定义脚本;根据光标位置指示器确定被操作的当前行的自定义脚本;按照按键名称对键盘操作事件进行处理。
[0034]本发明所提供的继电保护装置显示画面的仿真实现方法,通过自定义脚本对显示画面的显示结构和功能进行定义,能够实现各种类型继电保护装置显示画面的仿真,具有很好的灵活性和通用性。
【专利附图】

【附图说明】
[0035]图1为本发明所提供的继电保护装置显示画面的仿真实现方法流程图;
[0036]图2为显示画面中的显示结构层次关系图;
[0037]图3为线路保护装置的显示画面中,滚动一行前、后的显示结果示意图;
[0038]图4为数据显示区的数据结构示意图;[0039]图5为鼠标操作事件中,热区坐标的判断示意图;
[0040]图6 (a)为鼠标对脚本关键字执行操作前的画面;
[0041]图6 (b)为鼠标对脚本关键字执行操作后的画面。
【具体实施方式】
[0042]下面结合附图和【具体实施方式】对本发明做进一步的详细说明。
[0043]本发明所提供的继电保护装置显示画面的仿真实现方法主要应用在变电站三维场景仿真中。需要强调的是,本发明所说的显示屏可以包括CRT显示屏、液晶显示屏以及触摸屏等。由于液晶显示屏的使用范围最广,在本发明的具体实施例中,主要结合液晶显示屏的特点进行详细说明。
[0044]在本发明中,首先通过自定义脚本定义显示画面的显示结构和功能,将从变电站三维场景仿真软件中获取的仿真数据按照显示画面的显示结构和功能转换成显示数据,并保存在显示画面的数据显示区中。在进行仿真时,解释执行自定义脚本并调用显示画面的数据显示区中的仿真数据进行显示。参见图1,本发明所提供仿真实现方法包括如下的具体步骤:利用自定义脚本,初始化显示画面的显示结构;初始化显示画面的数据显示区及系统参数;解释执行自定义脚本并生成显示内容;检测并处理鼠标操作事件或键盘操作事件。下面对此展开详细具体的说明。
[0045]首先介绍利用自定义脚本,初始化显示画面的显示结构的步骤。在本发明中,显示画面显示结构的初始化包括显示画面显示格式的初始化和每屏之间层次关系的初始化,其具体过程如下:
[0046]步骤S101,利用自定`义脚本,初始化显示画面的显示格式。这里的显示格式具体包括显示画面的类型、每屏显示行数以及每屏显示列数。
[0047]前已述及,现有继电保护装置所使用的显示屏日益复杂多样。对于每一种继电保护装置,在进行显示画面的仿真时,需要显示的基本信息以及格式是不同的。本发明中通过脚本语句对显示画面的显示格式进行自定义,可以实现多种类型继电保护装置的显示画面仿真。例如一条典型的显示画面配置信息的自定义脚本语句为:
[0048]LFP901A420 线路保护
[0049]该脚本语句表示当前显示的继电保护装置型号为线路保护装置LFP901A,显示画面的显示格式为4行数据、20列数据。
[0050]步骤S102,利用自定义脚本,初始化显示画面中每一屏之间的层次关系。上述自定义脚本也定义了显示画面中每一屏之间的层次关系。如图2所示,下面以显示画面为三层显示结构为例对每一屏之间的层次关系进行说明。在图2中,第一层只有一屏显示数据,为显示结构的主屏幕,用序号“I”表示。第一层向下为显示结构的第二层。第二层包含多屏显示数据,各显示画面序号分别用“101”、“102”……“10η”表示。第二层中的每一屏都可能包括下级结构,为显示结构的第三层。图2中只显示了第二层第一屏下的第三层结构,该层中每一屏分别用序号“10101”、“10102”...“1010m”表示。从图2中可以得知,第二层开始的每一层可以包括多屏显示数据,具体屏数可以由用户根据实际需求进行设置。当显示画面的层数或者屏数更多时,显示结构依此推之,不再一一赘述。
[0051]步骤S103,利用自定义脚本,初始化显示画面中每一屏的显示结构。[0052]在每一屏中包含多行数据,本发明通过自定义脚本对每一屏的每一行显示数据的内容进行了定义。下面结合具体实施例进行详细说明。例如在自定义脚本中,对于线路保护装置LFP901A的显示画面第一层第一屏的定义:第一行脚本中“~1203”中“12”表示特殊按键,“03”表示down键。“~04”表示本行不显示光标。“~06-~07~08:~09:~10”为显示时间,后文中有详细介绍。脚本的第二行定义了带遥测的电流,以及电流参数位置以及数字格式。在显示时,当前显示画面的第一行表示通过down键,可以进行入下级菜单,同时显示当前的时间;第二行显示的是带遥测的电流值。第三行与第四行脚本与第二行类似,用于显示各个参数值。
[0053]"~1203~04~06-~07~08:~09:~10"
[0054]"1:'28002000.0~28A"
[0055]"U: ~ 28006000.0 ~ 28V"
[0056]"Φ:~2801205~28° CD: ~3200110~321~32〃
[0057]下面所示为自定义脚本对于线路保护装置LFP901A的显示画面第二层第一屏的定义。当前显示画面的第二层第一屏显示10行数据,自定义脚本对每行数据进行了定义。由于在初始化显示画面的显示格式时,对于每屏显示行数进行了限定。当自定义脚本行数大于显示画面的显示格式限定的行数时,可以通过滚动方式依次对各行数据进行显示。例如对于线路保护装置LFP901A而言,当前显示格式为每屏显示4行数据。图3为显示画面滚动一行前、后的显示结果。其中,自定义脚本的第一行“MENU~ 131”的131”表示显示本屏数据时,如果上下滚动显示内容,本行一直显示。
[0058]"MENU" 131"
[0059]"1.SETTING"
[0060]"2.PRINT REPORT"
[0061]"3.RELAY STATUS"
[0062]"4.CLOCK"
[0063]"5.RELAY ON"
[0064]"6.CLEAR DATA"
[0065]"7.REPORT DISPLAY"
[0066]"8.CRC CHECK"
[0067]"0.EXIT"
[0068]其次,介绍初始化显示画面的数据显示区及系统参数的步骤。
[0069]在本发明中,显示画面的数据显示区为显示画面到内存的映射。该数据显示区为一个线性数组,用于存储待显示的仿真数据。在该线性数组中定义了多个节点,节点之间的关系与显示画面中每屏之间的层次关系一一对应。每个节点对应当前显示画面中待显示的仿真数据。每个节点附有指针,用于实现各显示画面之间的切换:父节点附有down指针,指向第一子节点;子节点附有up指针,指向父节点。图3为该数据显示区的示意图,图中节点
号表示当前显示画面的序列号。其中,父节点I的子节点分别为101、102......1On,其down
指针指向其第一子节点101,而子节点101、102……IOn中的up指针分别指向节点I。
[0070]在进行继电保护装置的仿真时,仿真数据根据显示画面的显示结构以及功能,依次保存在显示画面的数据显示区中。在对当前屏的自定义脚本进行解析执行时,根据脚本关键字中定义的数据位置指针调用显示画面的数据显示区中对应位置的仿真数据并进行显示,从而完成显示画面的仿真过程。
[0071]在显示画面中,系统参数包括显示屏指示器和起始行号指示器。其中,显示屏指示器用于在显示画面的数据显示区中定位当前显示的节点。在显示画面初始化的过程中,显示屏指示器初始化为1,表示当前的显示画面为第一层第一屏。起始行号指示器用于定位当前显示画面显示第一行脚本的位置。在初始化时,起始行号指示器初始化为1,表示当前的显示画面从第一行开始显示。
[0072]接下来,介绍解释执行自定义脚本并生成显示画面显示内容的步骤。显示画面的显示结构和功能初始化完成后,解释执行将要显示画面的自定义脚本,并生成显示内容。对于自定义脚本的解释执行过程,包括如下几个步骤:
[0073]S301:根据显示屏指示器,在显示画面的数据显示区定位当前显示的节点;
[0074]S302:根据起始行号指示器,定位当前显示的节点中第一行显示的自定义脚本;
[0075]S303:判断当前行数在显示画面中是否可见;如果不可见,则直接结束;
[0076]S304:解释执行当前行的自定义脚本,转换为显示画面的显示内容;
[0077]S305:将当前行数加1,并跳转至S303。
[0078]在步骤S304中,进一步包括如下步骤:扫描脚本行中的‘”字符,如果没有字符则结束处理;取出后的字符串,表示为脚本关键字,并由此确定脚本关键字的功能:如果脚本关键字为功能描述类的,解释并执行;如果脚本关键字是用户操作事件类,则丢弃;根据脚本关键字的定义对字符串进行解析。
[0079]在本发明中,脚本关键字有多种,包括时间、遥测、遥信、液晶报告等功能描述类的,还包括用户操作事件类,如键盘操作事件、鼠标操作事件等。在解释执行自定义脚本时,对于用户操作事件类的脚本关键字,暂时不做任何处理,直接舍弃。待显示画面的画面显示完成后,才允许用户的交互操作。但对于功能描述类的脚本关键字,处理过程有所不同。下面结合具体实施例对此进行详细说明。
[0080]脚本关键字为字符后的字符串。通过对脚本关键字的第1、2两个字符的解析,可以确定脚本的功能。例如,上文中对于线路保护装置LFP901A的显示画面第一层第一屏的定义为:
[0081]"~1203~04~06-~07~08:~09:~10"
[0082]"1:'28002000.0~28A"
[0083]"U: ~ 28006000.0 ~ 28V"
[0084]〃Φ:~2801205~28° CD: ~3200110~321~32〃
[0085]第一行脚本语句“~06-~07~08:~09:~10”,字符后的两个字符分别为‘06’、‘07’、‘08’、‘09’、‘10’,表示为时间脚本。解释执行时,取出当前计算机时间,分别转换成月、日、时、分、秒后在显示画面中显示。其长度取缺省值,为2个字符。在解释执行后,显示画面显示当前时间为06-0520:12:14。第二行脚本“'28002000.0~28”,‘”字符后为遥测关键字。“'28002000.0~28”表示显示遥测;“002”是遥测数据位置指针,表示在遥测表中的第2个数据;遥测的显示格式为“000.0”,表示显示3位整数,I位小数。遥信、液晶报告的脚本关键字与遥测关键字的解释执行过程是类似的,在此不在一一赘述。
[0086]最后介绍检测并处理鼠标操作事件和键盘操作事件的步骤。首先对处理鼠标操作事件的具体过程进行说明,其包括如下步骤:
[0087]步骤S401:获取鼠标点击操作的坐标。
[0088]在建立直角坐标系时,优选显示画面的左上角为坐标原点,水平向右为X轴正方向,垂直向下为Y轴正方向。在此坐标系中确定鼠标点击操作的坐标值。如图5所示,本发明中显示画面是以顶点(0,0)~顶点(M,N)的矩形区域。
[0089]步骤S402:根据当前的显示屏指示器、起始行号指示器确定当前显示的节点中第一行显示的自定义脚本。
[0090]根据显示屏指示器在数据显示区查找当前显示的节点;根据起始行号指示器查找当前显示的节点中第一行显示的自定义脚本。
[0091]步骤S403:判断当前行数在显示画面是否可见;如果不可见,则直接结束。
[0092]步骤S404:在当前行的自定义脚本中查找鼠标操作事件的脚本关键字;如果没有,当前行数加I并跳转至步骤S403。
[0093]步骤S405:判断鼠标点击操作的坐标是否在鼠标操作事件的脚本关键字的热区坐标内:如果不在则跳转至S404。
[0094]需要说明的是,热区坐标为鼠标点击操作的有效范围。在图5所示的显示画面中,热区由A坐标(Xa,Ya)和B坐标(Xb,Yb)构成。当鼠标点击操作的坐标满足下列条件,表示鼠标点击操作(Xe,Yc)在该热区内:Xc≥Xa且Yc≥Ya且Xe≤Xb且Yc≤Yb。
[0095]S406:取出并解释执行脚本关键字。
[0096]取出并解释执行脚本关键字包括三个方面:一是取出脚本关键字,并提取其中的切换方向标志和节点号;二是根据切换方向标志和节点号切换至相应的显示节点;三是初始化起始行号指示器、光标位置指示器,即起始行号指示器设置到第I行,光标位置指示器设置到第I行第I列。
[0097]需要说明的是,切换方向标志用于父节点与子节点之间的切换。该切换方向标志分别用01和02表示。当切换方向标志为01时,调用当前显示的节点的up指针。显示屏指示器的值修改为父节点的值,新的显示画面切换到当前显示节点的父节点。当切换方向标志为02时,用于父节点向子节点的切换。由于父节点包括多个子节点,则从操作事件脚本关键字提取子节点序号。显示屏指示器的值为当前显示的节点的down指针加上子节点序号的值,新的显示画面切换到当前显示节点的对应子节点。
[0098]下面对处理鼠标操作事件进行进一步说明。前已述及,鼠标点击操作时的坐标为(Xe,Yc)。假设查找到的鼠标操作事件脚本为“~66050635360203”,其中“~66”为鼠标操作事件的脚本关键字;“05063536”表示热区坐标为(05,06)、( 35,36) ;“02”为切换方向标志,表示显示画面切换到子节点显示;“03”为子节号,表示切换到第三子节点。在显示画面中,“参数设置”对应这一热区坐标,并且鼠标点击操作的坐标满足条件:Xc > 5且Yc≥ 6且Xe <35且Yc <36,所以鼠标点击操作在此热区内。如图6 (a)所示,鼠标点击“参数设置”操作后,解释执行此脚本;由主画面切换至主画面的第三子节点,即参数设置的画面,参见图6 (b)所示。
[0099]对于键盘操作事件的检测与处理过程,包括以下几个步骤:接收键盘操作事件,提取按键名称参数;根据当前显示屏指示器在数据显示区找到显示画面的显示节点;根据起始行号指示器找到显示画面的显示节点中第一行显示的自定义脚本;根据光标位置指示器确定被操作的当前行的自定义脚本;按照按键名称对键盘操作事件进行处理。
[0100]下面以“up”按键和“回车键”为例,对处理键盘操作事件的过程进行说明。其他按键的处理方法与“up”按键和“回车键”的处理过程类似,不再一一进行说明。
[0101]对于“up”按键,首先判断光标位置指示器行号的值:若大于I并且可见,则光标位置指示器的行号减1,即光标上移I行;若等于I,则光标位置指示器的行号不变;若光标位置指示器所在的行在显示画面中不可见,则将起始行号指示器设置为光标位置指示器的行号。
[0102]对于“回车键”,首先在当前行的自定义脚本中查找回车键脚本关键字,取出找到的脚本关键字;从回车键脚本关键字中提取切换方向标志并切换至相应的显不节点;最后将起始行号指示器设置到第I行,光标位置指示器设置到第I行第I列。需要说明的是,回车键脚本关键字中对于切换方向标志的处理方式与鼠标点击操作脚本关键字中的处理方式相同,在此不予赘述。
[0103]在本发明的一个实施例中,典型的回车键脚本关键字为“ ~ 11000000000203”,其中“~11”确定是回车键脚本关键字,“00000000”8个字符无意义,“02”表示显示画面显示切换到子节点显示,“03”表示显示画面显示切换到第3个子节点。当按下回车键时,显示画面由当前显示节点切换至显示节点的第3个子节点。
[0104]上面对本发明所提出的继电保护装置显示画面的仿真实现方法进行了详细的说明。对一般领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
【权利要求】
1.一种继电保护装置显示画面的仿真实现方法,其特征在于包括如下步骤: 利用自定义脚本,初始化显示画面的显示结构; 初始化显示画面的数据显示区及系统参数; 解释执行所述自定义脚本并生成显示内容; 检测并处理鼠标操作事件或键盘操作事件。
2.如权利要求1所述的仿真实现方法,其特征在于: 所述初始化显示画面的显示结构包括初始化显示画面的显示格式,每一屏之间的层次关系和每一屏的显示结构。
3.如权利要求2所述的仿真实现方法,其特征在于: 所述显示画面的显示格式为显示画面的类型、每屏显示行数以及每屏显示列数。
4.如权利要求1所述的仿真实现方法,其特征在于: 所述数据显示区为显示画面到内存的映射,用于存储待显示的仿真数据。
5.如权利要求1所述的仿真实现方法,其特征在于所述解释执行自定义脚本并生成显示内容的步骤进一步包括: 5301:根据显示屏指示器,在显示画面的数据显示区定位当前显示的节点; 5302:根据起始行号指示器`,定位当前显示的节点中第一行显示的自定义脚本; 5303:判断当前行数在显示画面中是否可见;如果不可见,则直接结束; 5304:解释执行当前行的自定义脚本,转换为显示画面的显示内容; 5305:将当前行数加1,跳转至S303。
6.如权利要求5所述的仿真实现方法,其特征在于所述解释执行当前行的自定义脚本,转换为显示画面的显示内容的步骤进一步包括: 扫描脚本行中的字符,如果没有则结束,如果有则取出后的字符串作为脚本关键字,由此确定脚本关键字的功能;根据脚本关键字的定义对字符串进行解析。
7.如权利要求1所述的仿真实现方法,其特征在于检测并处理鼠标操作事件的步骤进一步包括: 步骤S401:获取鼠标点击操作的坐标; 步骤S402:根据当前的显示屏指示器、起始行号指示器确定当前显示的节点中第一行显示的自定义脚本; 步骤S403:判断当前行数在显示画面是否可见;如果不可见,则直接结束; 步骤S404:在当前行的自定义脚本中查找鼠标操作事件的脚本关键字;如果没有,当前行数加I并跳转至步骤S403 ; 步骤S405:判断鼠标点击操作的坐标是否在鼠标操作事件的脚本关键字的热区坐标内:如果不在则跳转至S404 ; S406:取出并解释执行脚本关键字。
8.如权利要求7所述的仿真实现方法,其特征在于所述取出并解释执行脚本关键字的步骤进一步包括: 取出脚本关键字,并提取其中的切换方向标志和节点号;根据切换方向标志和节点号切换至相应的显示节点;初始化起始行号指示器和光标位置指示器。
9.如权利要求1所述的仿真实现方法,其特征在于检测并处理键盘操作事件的步骤进一步包括: 接收键盘操作事件,提取按键名称参数;根据当前显示屏指示器在数据显示区找到显示画面的显示节点;根据起始行号指示器找到显示画面的显示节点中第一行显示的自定义脚本;根据光标位置指示器确定被操作的当前行的自定义脚本;按照按键名称对键盘操作事件进行处 理。
【文档编号】G06F9/44GK103530112SQ201310390928
【公开日】2014年1月22日 申请日期:2013年8月31日 优先权日:2013年8月31日
【发明者】武娟, 吕学思, 杨选怀, 吴海宏, 李宏伟, 杜远远, 王邦局, 郭晓敏, 乔焕伟, 王红燕 申请人:国家电网公司, 山西电力职业技术学院, 北京科东电力控制系统有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1