[发明专利]一种控制程序的验证和测试方法及系统有效
申请号: | 201110332600.4 | 申请日: | 2011-10-27 |
公开(公告)号: | CN103092747A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 龙飞;介鸣;潘莉 | 申请(专利权)人: | 西门子公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 李慧 |
地址: | 德国*** | 国省代码: | 德国;DE |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 控制程序 验证 测试 方法 系统 | ||
技术领域
本发明涉及自动控制领域,尤其涉及一种控制程序的验证和测试方法及系统。
背景技术
随着自动化行业的迅速发展,自动化市场出现了越来越多的大型自动控制系统,以及越来越多的新技术或新设备。同时,随着自动化设备或系统的使用者提出的要求越来越多,控制系统所采用的控制算法的设计面临以下挑战:更多的针对不同方面的性能要求,例如,系统稳定性以及效率;新的技术或设备的引入对控制算法的复杂度要求更高;政府或工业系统指定的标准使得对控制算法的性能要求更高。
目前,大部分自动控制系统的设计者在设计简单的控制算法时,完全凭借经验进行设计,而并不进行仿真验证,并且,对控制算法进行修改也是现场进行的。因此,尽管在开发阶段花费了大量的时间和精力,但是控制算法的性能却无法得到保证。
在另一种设计方案中,控制策略开发者使用仿真工具或仿真平台(例如Matlab中的Simulink仿真平台)设计控制算法,通过仿真对控制算法的性能进行验证和测试。该设计方案中,进行仿真时是由虚拟的控制器模型结合其它的控制对象模型执行控制算法,控制算法是由仿真平台所支持的语言编写。而在实际控制系统(例如楼宇控制器)中所执行的是采用工程语言编写的控制算法,这就需要将仿真后的控制算法转换为工程语言。其中,一种方法是人工转换,即由设计人员基于仿真后的控制算法重新采用工程语言进行编写,该方法浪费时间和精力,且容易出错;另一种方法是采用自动转换模块将控制器模型自动转换为工程语言,例如,Matlab/Simulink中的PLC代码转换模块。但是,现有的自动转换模块并不能将工程语言编写的程序转换为控制器模型,因此,若对采用工程语言编写的控制程序进行修改,则在进行仿真时,还需要人工修改仿真时所需的控制算法,以及对虚拟的控制器模型进行升级,这就降低了仿真效率,且容易出现错误。
发明内容
为改进现有技术中存在的问题,本发明提出一种控制程序的验证和测试方法及系统,用以直接对工程语言编写的控制程序进行验证和测试,从而保证控制算法的性能,提高仿真效率以及准确度。
本发明提出的控制程序的验证和测试方法,包括:
分析步骤,对采用工程语言编写的第一控制程序进行语义分析,构建程序依赖图;
转换步骤,根据所述程序依赖图,将所述第一控制程序转换为仿真模块所支持的采用通用的中间级语言表示的第二控制程序;以及
仿真步骤,基于所述仿真模块对所述第二控制程序进行仿真,以验证和测试所述第二控制程序的性能。
根据本发明实施例提供的上述验证和测试方法,通过将工程语言编写的控制程序转换为仿真模块支持的通用中间级语言,再由仿真模块基于该中间级语言表示的控制程序进行验证和测试,从而能够对工程语言编写的程序进行仿真,在仿真通过后,可直接将该工程语言编写的控制程序下载至硬件设备,且在仿真过程中,可直接对工程语言编写的控制程序进修改,在保证控制算法性能的同时提高了仿真效率以及准确度。
其中,所述分析步骤包括:逐行分析所述第一控制程序中的操作码和操作数,得到符号表、语法树、控制流图以及基本程序块的集合;根据所述符号表、语法树和控制流图识别所述基本程序块之间的数据依赖关系和控制依赖关系;以及根据所述数据依赖关系和控制依赖关系构建所述程序依赖图。
其中,所述转换步骤包括:复制预定义的中间级语言的源文件和头文件;根据所述基本程序块的集合进行中间级语言函数的转换;根据所述程序依赖图生成条件控制语句或流控制语句;以及将所述第一控制程序逐条语句转换为中间级语言代码。
其中,将所述第一控制程序逐条语句转换为中间级语言代码后,将转换后的中间级语言代码组织为具有标准接口的软件模块。
其中,所述中间级语言为C语言、C++语言或Java语言中任一。
其中,所述工程语言符合国际电工委员会IEC制定的工业控制编程语言标准IEC61131-3。
其中,所述仿真模块为Matlab、Trnsys或Mathematica中任一。
本发明提出的控制程序的验证和测试系统,包括:
分析模块,用于对采用工程语言编写的第一控制程序进行语义分析,构建程序依赖图;
转换模块,用于根据所述程序依赖图,将所述第一控制程序转换为仿真模块所支持的采用通用的中间级语言表示的第二控制程序;以及
仿真模块,用于对所述第二控制程序进行仿真,以验证和测试所述第二控制程序的性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西门子公司,未经西门子公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110332600.4/2.html,转载请声明来源钻瓜专利网。