CN105677528A - 通过逆波兰表达式对五防逻辑表达式进行校验的方法 - Google Patents

通过逆波兰表达式对五防逻辑表达式进行校验的方法 Download PDF

Info

Publication number
CN105677528A
CN105677528A CN201610012671.9A CN201610012671A CN105677528A CN 105677528 A CN105677528 A CN 105677528A CN 201610012671 A CN201610012671 A CN 201610012671A CN 105677528 A CN105677528 A CN 105677528A
Authority
CN
China
Prior art keywords
stack
operator
prevention logic
character
expression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610012671.9A
Other languages
English (en)
Inventor
王中
叶文林
刘翔
张林颢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changyuan Contron Power Security Technology Co Ltd
Original Assignee
Changyuan Contron Power Security Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changyuan Contron Power Security Technology Co Ltd filed Critical Changyuan Contron Power Security Technology Co Ltd
Priority to CN201610012671.9A priority Critical patent/CN105677528A/zh
Publication of CN105677528A publication Critical patent/CN105677528A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种通过逆波兰表达式对五防逻辑表达式进行校验的方法,该方法主要是通过构造一个运算符栈S1和逆波兰栈S2,然后读入需要操作设备对应状态的五防逻辑,判断是否存在没有转换的情况条件,并读入没有转换的情况条件下对应的五防逻辑表达式,并从左至右扫描该情况条件下对应的五防逻辑表达式;最后根据逆波兰表达式将传统的五防逻辑表达式进行转换,剔除表达式中复杂的算术符号“()”,只留下最简单的运算,能够保证方法的正确性的同时,减少程序员出现BUG的可能性,提高五防软件对于五防校验的准确性,同时能减少测试部门的测试压力。

Description

通过逆波兰表达式对五防逻辑表达式进行校验的方法
技术领域
本发明涉及电子信息及数据处理技术领域,具体涉及一种通过逆波兰表达式对五防逻辑表达式进行校验的方法。
背景技术
变电站的倒闸操作需要使用操作票,而操作票中的操作步骤的合法性,需要由五防软件进行判断,目前五防软件的判断依据只有两种方法:(1)五防逻辑校核表达式;(2)电网拓朴分析。但是由于电网拓朴分析不具备可视性,一般的变电站要求必须采用五防逻辑校核表达式判断操作步骤的合法性。综上,一般变电站进行倒闸操作必须得使用五防逻辑校核表达式。
一种五防逻辑校核表达式的结构,例如:
“1115-3L:{}|1|1115=10,(1115-1=01+1115-2=01)!”解释如下:
1115-3L:此为操作设备与状态,表示该条逻辑表达式是对1115-3编号的设备进行分操作(L为分操作,H为合操作);
{}|1|:此为情况条件,表示该逻辑表达式是单一情况操作。如果有多种情况条件,那么会表达成“{...}|2|...;{}|1|...!”,且没有个数限制。多种情况条件下,情况条件1中“{}”中不能有语句,其他情况条件的“{}”必须都存在语句,同时必须为高条件在前,低条件在后。例如:1115H:{1115=00}|2|...;{}|1|...!;
1115=10,(1115-1=01+1115-2=01)!:此为第一种情况条件对应的逻辑表达式,表示满足当前设备操作需要的其他设备状态。其中“=”左侧表示当前需要判断的设备,右侧第二位表示当前设备需要判断的设备需要的状态,右侧第一位表示如果当前设备需要判断的设备需要的状态与其实际状态不符的错误原因序号;“,”表示“且”的意思;“()”表示括号内的是一个整体,优先判断;“+”表示或的意思。
那么当前这条表达式解释为1115-3设备需要分开的条件为:1115当前状态为分(如果不为分,提示为1号错误),而且1115-1或者1115-2当前状态为合(如果都不满足,提示0号错误)。
五防逻辑校核表达式直接关系到电网的人身与财产安全,但是五防逻辑校核表达式中存在校核优先级顺序,导致表达式中存在“()”等来表明优先级的符号。
如此,存在一个明显缺陷:程序员在编写代码时,判断当前设备是否满足五防逻辑表达式的语句,进行表达式字符串拆分时,会对含有多重“()”的表达式进行拆分,难免会出现拆分错误或者考虑不全面的情况,引起变电站现场倒闸操作的错误,严重时,会影响操作人员的人生安全。
波兰逻辑学家J.Lukasiewicz于1929年提出了逆波兰表达式,逆波兰表达式又叫做后缀表达式,下面是一些例子:
正常的表达式逆波兰表达式
a+b--->a,b,+
a+(b-c)--->a,b,c,-,+
a+(b-c)*d--->a,b,c,-,d,*,+
a+d*(b-c)--->a,d,b,c,-,*,+
a=1+3--->a=1,3+
它将复杂表达式转换为可以依靠简单的操作得到计算结果的表达式。例如(a+b)*(c+d)转换为ab+cd+*。它的优势在于只用两种简单操作,入栈和出栈就可以搞定任何普通表达式的运算。其运算方式如下:
如果当前字符为变量或者为数字,则压栈,如果是运算符,则将栈顶两个元素弹出作相应运算,结果再入栈,最后当表达式扫描完后,栈里的就是结果。
发明内容
本发明提供一种通过逆波兰表达式对五防逻辑表达式进行校验的方法,能够在五防逻辑校核表达式转换成逆波兰表达式的过程中,把最明显的缺陷——“()”全部转换掉,从而完全避免在判断当前设备是否满足五防逻辑表达式的语句时,可能出现的问题。本发明的目的由以下技术方案实现:
一种通过逆波兰表达式对五防逻辑表达式进行校验的方法,如下:
(1)首先构造一个运算符栈S1和逆波兰栈S2,运算符在运算符栈S1内遵循越往栈顶优先级越高的原则;
(2)读入需要操作设备对应状态的五防逻辑;
(3)判断是否存在没有转换的情况条件,存在则进入步骤(4),否则逻辑校验不通过并结束;
(4)读入该情况条件下对应的五防逻辑表达式,并从左至右扫描该情况条件下对应的五防逻辑表达式;
(5)如果当前字符是数字,则分析到该数字串的结束并将该数字串直接输出并压入逆波兰栈S2;如果不是数字,该字符则是运算符,此时需比较优先关系后再将该字符压入逆波兰栈S2;
(6)重复步骤(5)直至扫描完该情况条件下对应的五防逻辑表达式,确定所有字符都得到处理,便将该情况条件下对应的五防逻辑表达式转化为逆波兰表示的简单算术表达式;
(7)将逆波兰栈S2中所有元素出栈,组成字符串,各个元素之间以“|”分割,并对转换完成的逆波兰表达式进行求值运算;
(8)判断求值结果是否通过,通过则提示校验通过可以操作,否则返回步骤(3)。
作为具体的技术方案,所述步骤(5)中比较优先关系的做法如下:将该字符与运算符栈S1栈顶的运算符的优先关系相比较,如果该字符优先关系高于此运算符栈顶的运算符,则将该字符压入逆波兰栈S2,否则将栈顶的运算符从运算符栈S1中弹出,如此比较,直到运算符栈S1栈顶运算符的优先级低于当前运算符,将该字符压入逆波兰栈S2。
本发明的有益效果在于,根据逆波兰表达式将传统的五防逻辑表达式进行转换,剔除表达式中复杂的算术符号“()”,只留下最简单的运算,能够保证方法的正确性的同时,减少程序员出现BUG的可能性,提高五防软件对于五防校验的准确性,同时能减少测试部门的测试压力。
附图说明
图1为逆波兰表达式转换流程图。
图2为本发明提供的通过逆波兰表达式对五防逻辑表达式进行校验的方法的流程图。
具体实施方式
如图1所示,将一个普通的中序表达式转换为逆波兰表达式的一般算法是:
(1)首先构造一个运算符栈S1和逆波兰栈S2,运算符在运算符栈S1内遵循越往栈顶优先级越高的原则。
(2)读入一个用中缀表示的简单算术表达式,并从左至右扫描该算术表达式。
(3)如果当前字符是数字,则分析到该数字串的结束并将该数字串直接输出并压入逆波兰栈S2;如果不是数字,该字符则是运算符,此时需比较优先关系,做法如下:将该字符与运算符栈S1栈顶的运算符的优先关系相比较,如果该字符优先关系高于此运算符栈顶的运算符,则将该字符压入逆波兰栈S2,否则将栈顶的运算符从运算符栈S1中弹出,如此比较,直到运算符栈S1栈顶运算符的优先级低于当前运算符,将该字符压入逆波兰栈S2。
(4)重复上述操作(3)-(4)直至扫描完整个简单算术表达式,确定所有字符都得到正确处理,便可以将中缀式表示的简单算术表达式转化为逆波兰表示的简单算术表达式。
本实施例通过将常规的五防逻辑校核表达式进行分析转换,得到一种逆波兰表达式,从而进行逆波兰表达式的算术运算,得出当前操作是否满足逆波兰表达式的算术运算,最终得出当前操作是否可以操作。
结合图2所示,本实施例提供的通过逆波兰表达式对五防逻辑表达式进行校验的方法,包括如下步骤:
(1)首先构造一个运算符栈S1和逆波兰栈S2,运算符在运算符栈S1内遵循越往栈顶优先级越高的原则。
(2)读入需要操作设备对应状态的五防逻辑。
(3)判断是否存在没有转换的情况条件,存在则进入步骤(4),否则逻辑校验不通过并结束。
(4)读入该情况条件下对应的五防逻辑表达式,并从左至右扫描该情况条件下对应的五防逻辑表达式。
(5)如果当前字符是数字,则分析到该数字串的结束并将该数字串直接输出并压入逆波兰栈S2;如果不是数字,该字符则是运算符,此时需比较优先关系,做法如下:将该字符与运算符栈S1栈顶的运算符的优先关系相比较,如果该字符优先关系高于此运算符栈顶的运算符,则将该字符压入逆波兰栈S2,否则将栈顶的运算符从运算符栈S1中弹出,如此比较,直到运算符栈S1栈顶运算符的优先级低于当前运算符,将该字符压入逆波兰栈S2。
(6)重复步骤(5)直至扫描完该情况条件下对应的五防逻辑表达式,确定所有字符都得到处理,便将该情况条件下对应的五防逻辑表达式转化为逆波兰表示的简单算术表达式。
(7)将逆波兰栈S2中所有元素出栈,组成字符串,各个元素之间以“|”分割,并对转换完成的逆波兰表达式进行求值运算。
(8)判断求值结果是否通过,通过则提示校验通过可以操作,否则返回步骤(3)。
下面通过一个实例帮助理解上述方法及过程:
如果要操作1115-3设备由合到分状态,获取到“1115-3L:{}|1|1115=10,(1115-1=01+1115-2=01)!”的逻辑表达式,“1115=10,(1115-1=01+1115-2=01)”转换成:“1115|10|=|1115-1|01|=|1115-2|01|=|+|,|”。“|”表示分割符号,方便对此字符串拆解。
出栈及运算的过程如下:
读到1115,压栈;读到10,压栈;读到“=”,将栈顶的两个元素“1115”“10”弹出,判断1115与10是否相等,将结果入栈。
继续读取到1115-1,压栈;读到01,压栈;读到“=”,将栈顶的两个元素“1115-1”“01”弹出,判断1115-1与01是否相等,将结果入栈。
如此循环,最后读取到“+”,则将栈顶两个元素(即之前运算的结果)弹出,出作相应运算,结果再入栈。最终栈里只剩下一个值,即为表达式的结果。
上述实施例仅为充分公开而非限制本发明,凡是依据本发明创新主旨且未经创造性劳动即可获得的等效技术特征替换及增减,均应属于本发明涵盖范围。

Claims (2)

1.一种通过逆波兰表达式对五防逻辑表达式进行校验的方法,其特征在于,包括如下步骤:
(1)首先构造一个运算符栈S1和逆波兰栈S2,运算符在运算符栈S1内遵循越往栈顶优先级越高的原则;
(2)读入需要操作设备对应状态的五防逻辑;
(3)判断是否存在没有转换的情况条件,存在则进入步骤(4),否则逻辑校验不通过并结束;
(4)读入该情况条件下对应的五防逻辑表达式,并从左至右扫描该情况条件下对应的五防逻辑表达式;
(5)如果当前字符是数字,则分析到该数字串的结束并将该数字串直接输出并压入逆波兰栈S2;如果不是数字,该字符则是运算符,此时需比较优先关系后再将该字符压入逆波兰栈S2;
(6)重复步骤(5)直至扫描完该情况条件下对应的五防逻辑表达式,确定所有字符都得到处理,便将该情况条件下对应的五防逻辑表达式转化为逆波兰表示的简单算术表达式;
(7)将逆波兰栈S2中所有元素出栈,组成字符串,各个元素之间以“|”分割,并对转换完成的逆波兰表达式进行求值运算;
(8)判断求值结果是否通过,通过则提示校验通过可以操作,否则返回步骤(3)。
2.根据权利要求1所述的通过逆波兰表达式对五防逻辑表达式进行校验的方法,其特征在于,所述步骤(5)中比较优先关系的做法如下:将该字符与运算符栈S1栈顶的运算符的优先关系相比较,如果该字符优先关系高于此运算符栈顶的运算符,则将该字符压入逆波兰栈S2,否则将栈顶的运算符从运算符栈S1中弹出,如此比较,直到运算符栈S1栈顶运算符的优先级低于当前运算符,将该字符压入逆波兰栈S2。
CN201610012671.9A 2016-01-06 2016-01-06 通过逆波兰表达式对五防逻辑表达式进行校验的方法 Pending CN105677528A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610012671.9A CN105677528A (zh) 2016-01-06 2016-01-06 通过逆波兰表达式对五防逻辑表达式进行校验的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610012671.9A CN105677528A (zh) 2016-01-06 2016-01-06 通过逆波兰表达式对五防逻辑表达式进行校验的方法

Publications (1)

Publication Number Publication Date
CN105677528A true CN105677528A (zh) 2016-06-15

Family

ID=56299601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610012671.9A Pending CN105677528A (zh) 2016-01-06 2016-01-06 通过逆波兰表达式对五防逻辑表达式进行校验的方法

Country Status (1)

Country Link
CN (1) CN105677528A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492383A (zh) * 2018-11-09 2019-03-19 四川长虹电器股份有限公司 一种数据权限的解析方法
CN111460815A (zh) * 2020-03-16 2020-07-28 平安科技(深圳)有限公司 规则处理方法、装置、介质及电子设备
CN111767004A (zh) * 2020-06-30 2020-10-13 电子科技大学 基于逆波兰算法的数字示波器数学运算处理方法
CN112765969A (zh) * 2021-01-11 2021-05-07 成都深思科技有限公司 一种高效实时的表达式语法验证方法及系统
CN113807975A (zh) * 2021-09-16 2021-12-17 平安健康保险股份有限公司 一种校验信息的方法、装置、计算机设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201199639Y (zh) * 2008-04-17 2009-02-25 国电南瑞科技股份有限公司 可实现防误闭锁功能的变电站测控装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201199639Y (zh) * 2008-04-17 2009-02-25 国电南瑞科技股份有限公司 可实现防误闭锁功能的变电站测控装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
殷垚,梅德冬: "基于IEC61850 在线式防误测控装置设计与实现", 《电气自动化2013 年》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492383A (zh) * 2018-11-09 2019-03-19 四川长虹电器股份有限公司 一种数据权限的解析方法
CN109492383B (zh) * 2018-11-09 2022-02-01 四川长虹电器股份有限公司 一种数据权限的解析方法
CN111460815A (zh) * 2020-03-16 2020-07-28 平安科技(深圳)有限公司 规则处理方法、装置、介质及电子设备
WO2021184765A1 (zh) * 2020-03-16 2021-09-23 平安科技(深圳)有限公司 规则处理方法、装置、介质及电子设备
CN111460815B (zh) * 2020-03-16 2022-04-01 平安科技(深圳)有限公司 规则处理方法、装置、介质及电子设备
CN111767004A (zh) * 2020-06-30 2020-10-13 电子科技大学 基于逆波兰算法的数字示波器数学运算处理方法
CN111767004B (zh) * 2020-06-30 2022-02-11 电子科技大学 基于逆波兰算法的数字示波器数学运算处理方法
CN112765969A (zh) * 2021-01-11 2021-05-07 成都深思科技有限公司 一种高效实时的表达式语法验证方法及系统
CN113807975A (zh) * 2021-09-16 2021-12-17 平安健康保险股份有限公司 一种校验信息的方法、装置、计算机设备及存储介质
CN113807975B (zh) * 2021-09-16 2024-06-04 平安健康保险股份有限公司 一种校验信息的方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN105677528A (zh) 通过逆波兰表达式对五防逻辑表达式进行校验的方法
Sinnamon et al. Improved efficiency in qualitative fault tree analysis
CN107632590B (zh) 一种基于优先级的底事件排序方法
US20160063395A1 (en) Method and apparatus for labeling training samples
CN104991863A (zh) 一种基于功能块图测试模型自动生成测试用例的方法
US20200134046A1 (en) Compression of Log Data Using Field Types
CN109743311A (zh) 一种WebShell检测方法、装置及存储介质
JP3825572B2 (ja) 半導体集積回路の設計検証装置、方法及び記憶媒体
CN108763064A (zh) 一种基于黑盒函数与机器学习的代码测试生成方法和装置
CN110908758B (zh) 一种防误闭锁逻辑表达式图形化配置方法及系统
US8489537B2 (en) Segmenting sequential data with a finite state machine
CN105356449A (zh) 一种基于故障树的变电站监控故障信号的自主分析方法
CN112083275A (zh) 一种配网故障类型识别方法及系统
CN115687108A (zh) 基于uvm与fpv相结合的验证方法、平台、终端及存储介质
CN107526851A (zh) 两状态系统的go法中可靠度计算方法
US20200019654A1 (en) Verification algorithm engine selection
CN112783775B (zh) 特殊字符输入测试方法及装置
CN102043710A (zh) 可视化软件测试系统
CN114238107A (zh) 一种跟踪调试方法、系统及计算机可读存储介质
CN103729289B (zh) 一种利用图式标明hpd逻辑可靠性的方法
CN114491973A (zh) 一种虚端子回路校核方法、装置和终端设备
CN112347723A (zh) 基于版图的rom代码提取验证方法及装置
CN109918129B (zh) 一种基于g核分解的软件关键函数识别方法
CN101751494A (zh) 一种基于倒序树扫描线算法的边投影优化方法
KR102595430B1 (ko) 원자력 안전등급용 정규형 도면 생성 장치 및 그 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160615

RJ01 Rejection of invention patent application after publication