一种自动测试可编程逻辑控制器程序的方法技术

技术编号:7530301 阅读:208 留言:0更新日期:2012-07-12 17:09
一种自动测试可编程逻辑控制器程序的方法。可编程逻辑控制器程序开发出来,必须通过大量的测试,排除错误之后才能投入正式运行,传统测试可编程逻辑控制器程序的方法的效率很低。本发明专利技术提出的自动测试可编程逻辑控制器程序的方法,它模拟执行待测的可编程逻辑控制器程序,读入测试数据进行测试,测试数据包含至少一个测试数据记录,测试数据是文本文件,通过文本编辑的方式修改能快速形成并重复使用。该测试方法便于快速发现可编程逻辑控制器程序存在的问题,大大加快了测试效率,方便可编程逻辑控制器教学,加快可编程逻辑控制器程序开发进程。

【技术实现步骤摘要】

本专利涉及一种测试可编程逻辑控制器程序的方法。特别涉及一种使用批量测试数据记录自动测试可编程逻辑控制器程序的方法
技术介绍
可编程逻辑控制器是一种工业自动控制中使用的计算装置。它广泛应用于钢铁、 石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、航天、环保及文化娱乐等各个行业。小到家用设备,大到航天器材,都有可编程逻辑控制器的应用。可编程逻辑控制器程序开发出来之后,必须通过大量的测试,排除错误之后才能投入正式运行。目前采用的测试方法都相当原始,大体上有三种1)现场测试。把编写好的可编程逻辑控制器程序直接安装到现场的可编程逻辑控制器机器中,通过现场运行检验可编程逻辑控制器程序的正确性。比如把控制电梯的可编程逻辑控制器程序安装到电梯中的可编程逻辑控制器机器中,通过操纵电梯按钮,观察电梯的运行是否符合要求。这种方法虽然是必不可少的环节,但是它们消耗时间很长,测试的覆盖面有限,而且在学校教学中也不便使用。2)离线测试。将可编程逻辑控制器连接到PC机,通过PC控制可编程逻辑控制器程序的运行,或者在可编程逻辑控制器软件模拟器中运行可编程逻辑控制器程序,测试员点击屏幕按钮产生可编程逻辑控制器的输入信号,然后观察指示灯是否按照预期的次序和组合方式发光,或者产生一个输出波形图。这种方式不需要使用工作现场的机器,可以及时部分排除可编程逻辑控制器程序的错误。但是,手工一个一个输入信号的方式的效率很低, 而且测试过程无法重用,测试中依然需要大量重复性测试操作。假设测试过程需要1千个测试输入,程序调试修改20次,那么总共就需要2万次测试输入。3)手工测试输入按钮装置。这种装置直接同可编程逻辑控制器机器连接,装置上有手工按钮,按钮的输入信号可以直接送入可编程逻辑控制器机器。操作员通过手工产生输入信号,测试可编程逻辑控制器的运行是否符合预期要求。这种测试方法同离线测试类似,只是把电脑内部的虚拟按钮改成了实际按钮。它同前一种方法具有相同的缺点,就是测试效率很低。
技术实现思路
基于以上现有技术的不足,本专利技术采用的自动测试方法能大大提高测试的效率。 本专利技术的,一方面读入一个待测试的可编程逻辑控制器程序,另一方面读入预先准备好的测试数据,模拟执行可编程逻辑控制器程序产生输出,然后自动检查这些输出是否符合预期要求。为了达到以上目的,本专利技术使用的由下面几个步骤构成程序读取步骤——读入待测试的可编程逻辑控制器程序和测试数据程序分析步骤——将被测试的可编程逻辑控制器程序进行程序分析并对测试数据进行分析从可编程逻辑控制器程序中分析出输入变量、中间变量,输出变量和逻辑运算结构,从所述测试数据中分析出输入变量值、预期输出变量值。模拟执行步骤一在测试数据的基础上模拟运行可编程逻辑控制器程序将测试数据中分析出的输入变量值存放到所述的输入变量中,根据所述的中间变量并按照所述的逻辑运算结构模拟执行可编程逻辑控制器程序,得到实际输出变量值并放入到所述输出变量中;比较步骤——将实际输出变量值同预期输出变量值进行比较和评判将可编程逻辑控制器程序模拟运行所得到的实际输出变量值与预期输出变量值进行比较,如果相同,代表测试成功,如果不同,代表程序出错。显示步骤——将测试结果在显示器上显示出来读入的可编程逻辑控制器程序是关于梯形图的一个描述,在程序读取步骤之后, 通过梯形图生成步骤和显示步骤,生成并显示对应的梯形图。本专利技术使用的一种自动测试可编程逻辑控制器程序的装置包括以下模块程序读取模块——用以读入待测试的可编程逻辑控制器程序和测试数据程序分析模块——用以将被测试的可编程逻辑控制器程序进行程序分析并对测试数据进行分析用以从可编程逻辑控制器程序中分析出输入变量、中间变量,输出变量和逻辑运算结构,从所述测试数据中分析出输入变量值、预期输出变量值。模拟执行模块——用以在测试数据的基础上模拟运行可编程逻辑控制器程序用以将测试数据中分析出的输入变量值代入到输入变量中,根据所述的中间变量并按照所述的逻辑运算结构执行可编程逻辑控制器程序,得到实际输出变量值并放入到所述输出变量中;比较模块——用以将实际输出变量值同预期输出变量值进行比较和评判用以将可编程逻辑控制器程序模拟运行所得到的实际输出变量值与预期输出变量值进行比较,如果相同,代表测试成功,如果不同,代表程序出错。显示模块——用以将测试结果在显示器上显示出来读入的可编程逻辑控制器程序是关于梯形图的一个描述,在所述的程序读取模块运行之后,通过梯形图生成模块和显示模块,生成并显示对应的梯形图。测试时,将可编程逻辑控制器程序模拟运行产生的实际输出变量值同测试数据中的预期输出变量值做比较,在不一致时会进行报错,就会停止测试下一个测试数据记录,此时,测试强制结束,显示测试结果,包括出错的信息。测试数据按扫描周期测试,处理完一个测试数据记录将自动继续处理下一个测试数据记录,直至处理完毕。所述的测试数据为文本文件,每个测试数据包含至少一个测试数据记录,因此能对测试数据记录使用常规的文件编辑手段进行复制和修改以形成测试数据,复制和修改后可以重复使用测试数据。所述的测试数据中有一行是显示周期标题和所有输入变量和预期输出变量名字,所述的测试数据记录中包括至少一个输入变量值和至少一个预期输出变量值。由此可见,本专利技术提出的同传统的测试可编程逻辑控制器程序的方法相比有下述优点1)大幅度地提高测试效率。自动测试时可以一次完成包含多个测试数据记录的测试数据的测试,不需要逐个按动按钮。一些测试数据记录可以通过文本复制和修改的方式做成,快速做出大批测试数据记录集,以形成测试数据。测试数据做成之后可以反复使用, 每次程序修改之后,均可以重新进行自动测试,而人工测试方式则需要按动按钮把测试过程再重复一遍。两者相比,本专利技术的测试效果提高率大约在几倍到几十倍之间,即缩短测试时间几倍到几十倍。2)提高可编程逻辑控制器程序的可靠性。传统测试方法由于耗费时间太长,受开发时间的限制,所做的测试往往不够,而本专利技术的自动测试方法提高了测试效率,在同样的测试时间内,多进行几倍到几十倍的测试工作,进而提高了可编程逻辑控制器程序的可靠性。3)方便可编程逻辑控制器教学。在学校教学过程中,老师和学生均缺乏现场调试条件可编程逻辑控制器有几十个生产厂家,不同厂家的编程模式互不兼容,同一厂家不同型号的可编程逻辑控制器在多数情况下不兼容,学校教学难以全面兼顾,此外,学生在学习期间程序错误比较多,更需要对可编程逻辑控制器程序进行反复调试和修改。本专利技术的自动测试方法将为学校的可编程逻辑控制器教学提供方便。附图说明下面结合附图对本专利技术做进一步的说明图1、图2是本专利技术的一种自动测试可编程逻辑控制器程序方法的原理3是实施例中抢答器可编程逻辑控制器程序所对应的梯形图具体实施例方式本节以一个对抢答器的可编程逻辑控制器程序的测试过程为优选实施例说明本方法的实施过程。抢答器共有四个按钮,其中开始按钮由主持人操作,3个抢答按钮由3位抢答者操作。当主持人按了开始按钮后进入抢答状态,此时3个报警器均处于断电状态, 此后如果某位抢答者按了自己的按钮,将使自身的报警器得电,同时互锁其他抢答者输入信号的有效性。抢答器可编程逻辑控制器程序使用四个输入变量10. 0代表主持人按钮, 10. 1,10. 2,10. 本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈钢
申请(专利权)人:镇江灵芯软件实验室有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术