CN107885504B - 一种异构的多平台系统控制逻辑一致性校验的方法 - Google Patents

一种异构的多平台系统控制逻辑一致性校验的方法 Download PDF

Info

Publication number
CN107885504B
CN107885504B CN201711319925.2A CN201711319925A CN107885504B CN 107885504 B CN107885504 B CN 107885504B CN 201711319925 A CN201711319925 A CN 201711319925A CN 107885504 B CN107885504 B CN 107885504B
Authority
CN
China
Prior art keywords
control logic
file
intermediate symbol
binary
logic
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.)
Active
Application number
CN201711319925.2A
Other languages
English (en)
Other versions
CN107885504A (zh
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.)
Beijing Sifang Automation Co Ltd
Original Assignee
Beijing Sifang Automation 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 Beijing Sifang Automation Co Ltd filed Critical Beijing Sifang Automation Co Ltd
Priority to CN201711319925.2A priority Critical patent/CN107885504B/zh
Publication of CN107885504A publication Critical patent/CN107885504A/zh
Application granted granted Critical
Publication of CN107885504B publication Critical patent/CN107885504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种异构的多平台系统控制逻辑一致性校验的方法。本发明主要解决工业控制系统中相同的控制逻辑在不同的控制系统平台上逻辑执行一致性的问题,例如同一控制逻辑在PowerPC架构的CPU下和Arm架构的CPU下实际的控制流程是否一致;本发明包括4个阶段:(1)定义中间符号集;(2)识别不同架构控制器的机器指令;(3)生成控制逻辑对应的中间符号文件;(4)对不同架构下生成的控制逻辑的中间符号文件进行对比。

Description

一种异构的多平台系统控制逻辑一致性校验的方法
技术领域
本发明属于工业自动化控制系统技术领域,更具体地说,涉及一种相同控制逻辑在不同平台下功能一致性校验的方法。
背景技术
现代工业自动化控制系统通常是由分布式控制系统(DCS)或可编程控制器(PLC)组成,无论是DCS系统还是PLC都由以下几个部分组成:逻辑组态软件、控制器、IO插件,其中逻辑组态软件主要用于编写控制逻辑,控制器用来运行控制逻辑,IO插件用来采集工业现场的信号和执行控制器的控制指令。在实际应用中多条相同的生产线的控制逻辑是相同的,但是可以使用不同架构的控制器和IO插件,这就要求逻辑组态软件对同一套控制逻辑针对不同架构的控制器生成不同的二进制指令,但是这些不同的二进制指令实际执行后的结果要完全相同,针对上述情况就需要逻辑组态软件有一种校验机制,保证不同架构下的二进制指令实际执行的结果要保证一致,目前市场上尚无对不同架构下控制逻辑一致性的静态校验方法。
发明内容
本发明的目的是填补现有技术的缺失,提供一种异构的多平台系统控制逻辑一致性校验的方法,使得相同控制逻辑在不同平台下生成的控制逻辑二进制指令,能够在实际应用之前进行一致性的校验。
本发明具体采用以下技术方案。
一种异构的多平台系统控制逻辑一致性校验的方法,首先用户使用基于IEC-61131-3标准的逻辑组态语言编写逻辑页,然后由编写的逻辑页组成完整的控制逻辑,最后控制逻辑经过编译生成不同CPU架构下的逻辑二进制文件;其特征在于,所述控制逻辑一致性校验的方法包括以下步骤:
(1)根据控制逻辑生成部分选择的CPU架构定义中间符号集,中间符号集中的符号应能满足所选的多个CPU架构的二进制指令解析,中间符号集是一组与平台架构无关的符号的集合,中间符号集中的符号对不同CPU架构下的二进制指令提供一种统一的描述方法,控制逻辑二进制文件中的二进制指令最终被中间符号替换,变为统一的可读性更强的文件;
(2)二进制指令识别,读取逻辑二进制文件从文件中读取架构信息,确定文件中的二进制数据属于何种CPU架构,根据不同平台的机器指令的编码规则对控制逻辑二进制文件中的控制逻辑二进制指令进行解码,并根据对应CPU架构下的二进制指令描述方法生成控制逻辑操作码文件;
(3)读取步骤(2)中生成的控制逻辑操作码文件,使用步骤(1)中定义的中间符号集中的符号对文件中的操作码进行等效替换,从而生成中间符号文件;
(4)在经过步骤(3)之后,不同CPU架构下的控制逻辑二进制文件被等效生成了中间符号文件,此时可以通过对比中间符号文件的方法来对控制逻辑一致性进行对比,最终确定不同CPU架构下的控制逻辑是否一致。
本发明进一步包括以下优选方案:
在所述步骤(1)中,中间符号集具有以下特征:
中间符号集中包含解析控制逻辑操作码文件所需要的基本中间符号;中间符号集中的中间符号含义唯一;中间符号集应至少包含如下符号:加、减、乘、除、与、或、非、左移、右移、赋值、入栈、出栈、条件判断、分支跳转、函数调用。
中间符号由一个或一组机器指令操作码组成,同一中间符号在不同的CPU架构下对应不同的操作码。
在所述步骤(2)中,包括以下操作:
2.1根据机器指令的编码规则对逻辑二进制指令进行解码,获取指令的操作码;
2.2针对逻辑二进制文件重复过程2.1,将获取的操作码保存成操作码文件。
逻辑二进制指令解码是指根据CPU架构官方文档中描述的二进制指令组成规则对二进制指令进行解析,最终解析出操作码、源操作数、目标操作等信息。
在所述步骤(3)中,优选采用以下操作:
将步骤(2)中生成的操作码文件中的操作码与中间符号集中的符号对应的操作码进行匹配,将匹配成功的中间符号写入中间符号文件。
中间符号文件是一种文本文件;中间符号文件由一组中间符号组成。
在所述步骤(4)中,优选采用以下操作:
将不同架构CPU下生成的中间符号文件同时打开,逐个字节的进行比较,如其中任意两个字节不同则认为逻辑不一致。
本发明具有以下有益的技术效果:
通过本文提供的方法可以实现不同平台下的逻辑一致性的对比,可以用来验证同一套控制逻辑在不同的控制器(平台不同)下的工作流程是否正确,在静态条件下对控制逻辑一致性进行了校验,避免了相同的控制逻辑在不同的控制器上运行产生结果不一致的问题,进而避免了控制流程出错带来的经济损失。
附图说明
图1为本发明实施例提供的总体流程图;
图2为本发明实施例提供的逻辑二进制机器指令识别流程图;
图3为本发明实施例提供的中间符号匹配流程图。
具体实施方式
下面结合附图对本发明的实现过程做进一步描述。
附图1中分为两个大的部分,上半部分是控制逻辑生成部分,这部分是传统逻辑组态软件的基本功能,主要是使用逻辑组态软件编写生成控制逻辑,控制逻辑经过编译后生成不同架构(本实施案例中分别是PowerPc架构和Arm架构)下的二进制文件;下半部分是本发明要实现的部分,主要包括:
(1)中间符号集的定义,根据本实施案例所选的PowerPc平台和Arm平台,定义的中间符号集包含如下符号:START、END、PUSH、POP、ADD、SUB、DIV、MUL、MOD、AND、OR、NOT、ROL、ROR、SHL、SHR、VAR、CONST具体含义参考表1
Figure BDA0001504562270000031
Figure BDA0001504562270000041
Figure BDA0001504562270000051
表1
(2)Powpc架构和Arm架构下的二进制指令的识别,如附图2所示,在此步骤中首先要打开逻辑二进制文件,定位到二进制机器指令的起始位置,在此位置读取第一条二进制机器指令(4字节),首先判断指令是否合法,如当前指令为非法指令则直接报错,退出检查,如当前指令合法,则进一步根据Powpc架构和Arm架构下机器指令的编码规则识别出当前二进制机器指令的操作码并将该操作码写入操作码文件中保存,为了后续对比工作的简化在本实施案例中只做了操作码的识别,根据实施要求的不同也可将操作码、操作数信息全部识别出来;
(3)中间符号的识别,如附图3所示,将步骤(2)中生成操作码文件打开,读取一个操作与中间符号集中的符号对应的操作码序列进行匹配,如果匹配到唯一的中间符号,就将该符号进行记录,如果匹配到的中间符号不唯一,首先判断当前的操作码是否是最后一个,如果不是最后一个,在读取下一个操作码继续匹配,直到匹配到唯一的中间符号为止,如果当前的操作码已经是最后一个,则要作为异常报告出来,终止匹配过程,在所有操作码都完成与中间符号的匹配后,将记录的中间符号写入中间符号文件;
(4)中间符号文件的对比,在此步骤中可以借助第三方工具进行对比,也可以通过程序逐个字节的读取然后做对比,在本实施中采用自己读取文件逐字节对比的方式进行校验。

Claims (10)

1.一种异构的多平台系统控制逻辑一致性校验的方法,首先用户使用基于IEC-61131-3标准逻辑组态语言编写逻辑页,然后由编写的逻辑页组成完整的控制逻辑,最后控制逻辑经过编译生成不同CPU架构下的控制逻辑二进制文件;其特征在于,所述控制逻辑一致性校验的方法包括以下步骤:
(1)根据控制逻辑生成部分选择的CPU架构定义中间符号集,中间符号集中的符号应能满足所选的多个CPU架构的控制逻辑二进制指令解析,中间符号集是一组与平台架构无关的符号的集合,中间符号集中的符号对不同CPU架构下的控制逻辑二进制指令提供一种统一的描述方法,控制逻辑二进制文件中的控制逻辑二进制指令最终被中间符号替换,变为统一的可读性更强的文件;
(2)控制逻辑二进制指令识别,读取控制逻辑二进制文件获取架构信息,确定文件中的二进制数据属于何种CPU架构,根据不同平台的机器指令的编码规则对控制逻辑二进制文件中的控制逻辑二进制指令进行解码,并根据对应CPU架构下的控制逻辑二进制指令描述方法生成控制逻辑操作码文件;
(3)读取步骤(2)中生成的控制逻辑操作码文件,使用步骤(1)中定义的中间符号集中的符号对文件中的操作码进行等效替换,从而生成中间符号文件;
(4)在经过步骤(3)之后,不同CPU架构下的控制逻辑二进制文件被等效生成了中间符号文件,此时通过对比中间符号文件的方法来对控制逻辑一致性进行对比,最终确定不同CPU架构下的控制逻辑是否一致。
2.根据权利要求1所述的控制逻辑一致性校验的方法,其特征在于:
在所述步骤(1)中,中间符号集具有以下特征:
中间符号集中包含解析控制逻辑操作码文件所需要的基本中间符号;中间符号集中的中间符号含义唯一。
3.根据权利要求1所述的控制逻辑一致性校验的方法,其特征在于:
在所述步骤(1)中,中间符号集应至少包含如下符号:加、减、乘、除、与、或、非、左移、右移、赋值、入栈、出栈、条件判断、分支跳转、函数调用。
4.根据权利要求2所述的控制逻辑一致性校验的方法,其特征在于:
中间符号由一个或一组机器指令操作码组成,同一中间符号在不同的CPU架构下对应不同的操作码。
5.根据权利要求1所述的控制逻辑一致性校验的方法,其特征在于:
在所述步骤(2)中,包括以下操作:
2.1根据机器指令的编码规则对控制逻辑二进制指令进行解码,获取指令的操作码;
2.2针对控制逻辑二进制文件重复过程2.1,将获取的操作码保存成控制逻辑操作码文件。
6.根据权利要求5所述的控制逻辑一致性校验的方法,其特征在于:
控制逻辑二进制指令解码是指根据CPU架构官方文档中描述的控制逻辑二进制指令组成规则对控制逻辑二进制指令进行解析,最终解析出操作码、源操作数、目标操作信息。
7.根据权利要求1所述的控制逻辑一致性校验的方法,其特征在于:
在所述步骤(3)中,采用以下操作:
将步骤(2)中生成的控制逻辑操作码文件中的操作码与中间符号集中的符号对应的操作码进行匹配,将匹配成功的中间符号写入中间符号文件。
8.根据权利要求7所述的控制逻辑一致性校验的方法,其特征在于:
中间符号文件是一种文本文件。
9.根据权利要求8所述的控制逻辑一致性校验的方法,其特征在于:
中间符号文件由一组中间符号组成。
10.根据权利要求1所述的控制逻辑一致性校验的方法,其特征在于:
在所述步骤(4)中,采用以下操作:
将不同架构CPU下生成的中间符号文件同时打开,逐个字节的进行比较,如其中任意两个字节不同则认为逻辑不一致。
CN201711319925.2A 2017-12-12 2017-12-12 一种异构的多平台系统控制逻辑一致性校验的方法 Active CN107885504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711319925.2A CN107885504B (zh) 2017-12-12 2017-12-12 一种异构的多平台系统控制逻辑一致性校验的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711319925.2A CN107885504B (zh) 2017-12-12 2017-12-12 一种异构的多平台系统控制逻辑一致性校验的方法

Publications (2)

Publication Number Publication Date
CN107885504A CN107885504A (zh) 2018-04-06
CN107885504B true CN107885504B (zh) 2021-01-12

Family

ID=61774015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711319925.2A Active CN107885504B (zh) 2017-12-12 2017-12-12 一种异构的多平台系统控制逻辑一致性校验的方法

Country Status (1)

Country Link
CN (1) CN107885504B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112462731B (zh) * 2020-10-16 2022-06-24 北京西南交大盛阳科技股份有限公司 安全监督控制方法、安全监督控制装置、计算机设备及安全监督系统
CN116820488B (zh) * 2023-05-31 2024-02-13 五矿国际信托有限公司 一种DevOps体系下研发部署过程联动的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707926A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 可执行x86指令集及ARM指令集指令的微处理器及其运作方法
CN103345487A (zh) * 2013-06-24 2013-10-09 北京奇虎科技有限公司 一种多平台之间数据一致性校验的方法和系统
CN104516818A (zh) * 2014-12-29 2015-04-15 北京四方继保自动化股份有限公司 一种适用于逻辑组态软件中编译器的自动化测试系统及其方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174318A1 (en) * 2006-01-26 2007-07-26 International Business Machines Corporation Methods and apparatus for constructing declarative componentized applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707926A (zh) * 2011-04-07 2012-10-03 威盛电子股份有限公司 可执行x86指令集及ARM指令集指令的微处理器及其运作方法
CN103345487A (zh) * 2013-06-24 2013-10-09 北京奇虎科技有限公司 一种多平台之间数据一致性校验的方法和系统
CN104516818A (zh) * 2014-12-29 2015-04-15 北京四方继保自动化股份有限公司 一种适用于逻辑组态软件中编译器的自动化测试系统及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEC 61850模型校验工具的研究与实现;樊瑞等;《智能电网》;20150110;第3卷(第1期);第85-90页 *

Also Published As

Publication number Publication date
CN107885504A (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
JP6621204B2 (ja) 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法
US6308323B1 (en) Apparatus and method for compiling a plurality of instruction sets for a processor and a media for recording the compiling method
CN101976187B (zh) 反编译过程中的堆栈跟踪方法、装置及反编译器
US20100180263A1 (en) Apparatus and method for detecting software error
CN107885504B (zh) 一种异构的多平台系统控制逻辑一致性校验的方法
CN109145534B (zh) 针对软件虚拟机保护的反混淆系统及方法
CN100405323C (zh) 一种在指令级随机测试中支持ejtag测试的实现方法
CN111813670B (zh) 一种非侵入式mc/dc覆盖率统计分析方法
US9129137B2 (en) Method, computer program and device for providing security for intermediate programming code for its execution by a virtual machine
US8225286B2 (en) Debugging interpreted input
CN110244939B (zh) 一种基于OpenCL的RS码编解码方法
CN105824750B (zh) 一种在NorFlash程序空间调试的软断点模拟方法
TW201218008A (en) Intelligent architecture creator
CN106126225B (zh) 一种基于程序演进模型的目标代码逆向工程方法
CN112835323A (zh) 可编程逻辑控制语言编译方法及装置
CN108132783A (zh) 一种Web App的配置方法及装置
CN115167868B (zh) 代码编译方法、装置、设备及计算机存储介质
CN111474894B (zh) 可变目标plc仿真调试方法、存储介质及功能模块
CN105607569B (zh) 一种将il语言转换为梯形图的方法及装置
CN102289363B (zh) 控制数据流的方法以及计算机系统
CN111796867B (zh) 着色器的转换方法、装置及电子设备
CN111880803A (zh) 一种应用于多平台的软件构建方法及装置
US20090112568A1 (en) Method for Generating a Simulation Program Which Can Be Executed On a Host Computer
US11550580B2 (en) Systems and methods for emulating a processor
CN113031574B (zh) 一种设备运行过程复现方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant