[发明专利]一种控制程序的验证和测试方法及系统有效
申请号: | 201110332600.4 | 申请日: | 2011-10-27 |
公开(公告)号: | CN103092747A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 龙飞;介鸣;潘莉 | 申请(专利权)人: | 西门子公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 李慧 |
地址: | 德国*** | 国省代码: | 德国;DE |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 控制程序 验证 测试 方法 系统 | ||
1.一种控制程序的验证和测试方法,其特征在于,包括:
分析步骤,对采用工程语言编写的第一控制程序进行语义分析,构建程序依赖图;
转换步骤,根据所述程序依赖图,将所述第一控制程序转换为仿真模块所支持的采用通用的中间级语言表示的第二控制程序;以及
仿真步骤,基于所述仿真模块对所述第二控制程序进行仿真,以验证和测试所述第二控制程序的性能。
2.如权利要求1所述的方法,其中,所述分析步骤包括:
逐行分析所述第一控制程序中的操作码和操作数,得到符号表、语法树、控制流图以及基本程序块的集合;
根据所述符号表、语法树和控制流图识别所述基本程序块之间的数据依赖关系和控制依赖关系;以及
根据所述数据依赖关系和控制依赖关系构建所述程序依赖图。
3.如权利要求2所述的方法,其中,所述转换步骤包括:
复制预定义的中间级语言的源文件和头文件;
根据所述基本程序块的集合进行中间级语言函数的转换;
根据所述程序依赖图生成条件控制语句或流控制语句;以及
将所述第一控制程序逐条语句转换为中间级语言代码。
4.如权利要求3所述的方法,其中,将所述第一控制程序逐条语句转换为中间级语言代码后,将转换后的中间级语言代码组织为具有标准接口的软件模块。
5.如权利要求1所述的方法,其中,所述中间级语言为C语言、C++语言或Java语言中任一。
6.如权利要求1-5任一项所述的方法,其中,所述工程语言符合国际电工委员会IEC制定的工业控制编程语言标准IEC61131-3。
7.如权利要求1所述的方法,其中,所述仿真模块为Matlab、Trnsys或Mathematica中任一。
8.一种控制程序的验证和测试系统,其特征在于,包括:
分析模块,用于对采用工程语言编写的第一控制程序进行语义分析,构建程序依赖图;
转换模块,用于根据所述程序依赖图,将所述第一控制程序转换为仿真模块所支持的采用通用的中间级语言表示的第二控制程序;以及
仿真模块,用于对所述第二控制程序进行仿真,以验证和测试所述第二控制程序的性能。
9.如权利要求8所述的系统,其中,所述分析模块具体用于逐行分析所述第一控制程序中的操作码和操作数,得到符号表、语法树、控制流图以及基本程序块的集合,根据所述符号表、语法树和控制流图识别所述基本程序块之间的数据依赖关系和控制依赖关系,并根据所述数据依赖关系和控制依赖关系构建所述程序依赖图。
10.如权利要求9所述的系统,其中,所述转换模块具体用于:复制预定义的中间级语言的源文件和头文件,根据所述基本程序块的集合进行中间级语言函数的转换,根据所述程序依赖图生成条件控制语句或流控制语句,以及将所述第一控制程序逐条语句转换为中间级语言代码。
11.如权利要求10所述的系统,其中,所述转换模块还用于在转换后的中间级语言代码组织为具有标准接口的软件模块。
12.如权利要求8所述的系统,其中,所述中间级语言为C语言、C++语言或Java语言中任一。
13.如权利要求8-12任一项所述的系统,其中,所述工程语言符合国际电工委员会IEC制定的工业控制编程语言标准IEC61131-3。
14.如权利要求8所述的系统,其中,所述仿真模块为Matlab、Trnsys或Mathematica中任一。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西门子公司,未经西门子公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110332600.4/1.html,转载请声明来源钻瓜专利网。