当前位置: 首页 > 专利查询>陈钢专利>正文

一种针对含有时间控制的PLC程序自动测试的方法技术

技术编号:8532761 阅读:185 留言:0更新日期:2013-04-04 15:44
本发明专利技术公开了一种针对含有时间控制的PLC程序的自动测试方法。通过先分析出各条测试数据记录的类别,然后根据测试数据记录的类别驱动与该条测试数据记录相关的测试,从而将含有时间控制的PLC程序中的一个扫描周期的测试数据记录及指定时刻处理的测试数据记录进行区别测试,进而能有效帮助检查基于时间控制的PLC程序的运行是否正确,提高了基于时间控制的PLC程序的可靠性及方便了PLC的教学,更好地满足了当今工作的需求。同时还公开了一种针对含有时间控制的PLC程序自动测试的装置,该装置基于分析出的各条测试数据记录的类别驱动对该条测试数据记录进行测试,从而提高了基于时间控制的PLC程序的可靠性及方便了PLC的教学。

【技术实现步骤摘要】

本专利技术涉及程序测试
,尤其涉及一种针对含有时间控制的PLC程序自动测试的方法及装置。
技术介绍
PLC是一种工业自动控制中使用的计算装置。它广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、航天、环保及文化娱乐等各个行业, 小到家用设备,大到航天工业,都有PLC的应用。典型的PLC包含一个专用的CPU,一个存储器和一组输入输出端口及其他装置。它通过输入端口接收来自传感器的信号,并通过输出端口发出控制信号驱动同它连接的外部设备。存储器中安放PLC控制程序,系统的活动由PLC控制程序所驱动。PLC程序开发出来之后,必须通过大量的测试,排除错误之后才能投入正式运行。目前采用的测试方法有如下几种 I)现场测试把编写好的程序直接安装到现场的PLC机器中,通过现场运行检验程序的正确性。比如把控制电梯的PLC程序安装到电梯中的PLC机器中,通过操纵电梯按钮,观察电梯的运行是否符合要求。这种方法虽然是必不可少的环节,但是它们消耗时间很长,测试的覆盖面有限,而且在学校教学也不便使用。2)离线测试在PLC软件模拟器中运行PLC程序,测试员点击屏幕按钮产生PLC的输入信号,然后观察指示灯是否按照预期的次序和组合方式显示预期输出信号。这种方式不需要使用工作现场的机器,有助于尽早排除PLC程序的错误。但是,手工输入信号的方式效率低,而且测试过程无法重用。假设测试过程需要I千个测试输入,程序调试修改20次,那么总共就需要2万次测试输入。3)手工测试输入按钮装置这种装置可以直接同PLC机器连接,装置上有手工按钮,按钮的输入可以直接送入PLC机器。操作员通过手工产生输入信号,测试PLC的运行是否符合预期要求。这种测试方法同离线测试类似,只是把电脑内部的虚拟按钮改成了实际按钮。它同前一种方法具有相同的缺点,就是测试效率低。为了解决上述测试方法存在的各种缺陷,申请号为“201010591420. 3”、名称为“一种对PLC程序自动测试的方法”的中国专利申请提出了一种对PLC程序进行自动测试的方法,该方法能够有效的帮助检查不含定时器控制的PLC程序的运行是否正确。然而,上述专利申请中的测试方法虽然能够对不含定时器控制的PLC程序进行有效测试,但是对于某些含有时间控制的PLC程序,其输入的变量值有时仅在某些指定时刻才发生变化,而在两个时刻之间,虽然此PLC程序可能执行了数量可观的周期数,但是各输入的变量值却保持不变。因而,上述专利申请中的测试方法对含有时间控制的PLC程序并不适用。因此,有必要提出一种针对含有时间控制的PLC程序进行测试的方法。
技术实现思路
本专利技术的目的在于提供一种针对含有时间控制的PLC程序自动测试的方法及装置,以解决现有的针对PLC程序自动测试的方法及装置无法准确地对含有时间控制的PLC程序进行测试的问题。为了解决上述问题,本专利技术提出一种针对含有时间控制的PLC程序自动测试的方法,其中,所述PLC程序中包含有定时器,该方法包括以下步骤 输入步骤输入待测试的PLC程序和针对所述待测试的PLC程序的测试数据文件,其中,所述测试数据文件中包含若干条测试数据记录; 语法分析步骤从所述待测试的PLC程序中分析出各输入变量、各输出变量、定时器变量以及逻辑运算结构;并从所述测试数据文件中分析出各条测试数据记录中的输入的变量值、与该输入的变量值相应的预期输出的变量值、以及各条测试数据记录的类别;其中,每条测试数据记录的类别包括在指定时刻处理的测试数据记录,以及一个扫描周期中的测试数据记录; 测试步骤启动测试,根据从所述测试数据文件中分析出的各条测试数据记录的类别驱动对该条测试数据记录进行测试,将该条测试数据记录中的输入的变量值代入到所述待测试的PLC程序中对应的输入变量中,通过所述逻辑运算结构得到实际输出结果,该实际输出结果保存在所述待测试的PLC程序的输出变量中; 比较步骤将保存在所述待测试的PLC程序的输出变量中的实际输出结果与所述测试数据文件中对应测试数据记录中的预期输出的变量值进行比较,如果相同,该所述待测试的PLC程序正确,如果不同,该所述待测试的PLC程序出错; 显示步骤将所述比较步骤的结果作为测试结果进行显示。较佳地,当对所述一个扫描周期中的测试数据记录进行测试时,在读入输入变量值之后立即测试;当对所述指定时刻处理的测试数据记录进行测试时,在指定时刻未到达之前,重复使用上一条测试数据记录进行测试,并在指定时刻到达时启动对该条测试记录的测试。较佳地,所述的测试数据文件的第一行的格式为周期标题、各输入变量、各输出变量,其中所述各输入变量和所述各输出变量之间通过一符号隔开,所述测试数据文件自第一行后为所述测试数据记录,并且每一行代表一条测试数据记录,每条测试数据记录的输入的变量值和预期输出的变量值分别与第一行的同列各输入变量和各输出变量相对应。较佳地,所述在指定时刻处理的测试数据记录的第一列用一个字母紧跟一个数字表示,该数字表示从对该条测试数据记录进行测试开始到对下条测试数据记录进行测试需要经历的时间;所述一个扫描周期中的测试数据记录用一个整数表示。较佳地,在所述比较步骤中,如果实际输出结果与预期输出的变量值不同,则停止测试,显示测试结果;其中,所述测试结果包含通过测试的测试数据、出错的测试数据所在的触发时间或所在行、各输入的变量值、预期输出的变量值和实际输出结果。较佳地,该方法在所述显示步骤之后进一步包括用户根据显示的测试结果对所述待测试的PLC程序进行修改,并在修改后继续使用所述测试数据文件对修改后的待测试的PLC程序重新启动测试;如此循环,直到所有测试数据都通过测试。同时,为了解决上述问题,本专利技术还提出一种针对含有时间控制的PLC程序自动测试的装置,该装置包括 输入模块用于输入待测试的PLC程序和针对所述待测试的PLC程序的测试数据文件,其中,所述测试数据文件中包含若干条测试数据记录; 语法分析模块用于对所述输入模块输入的所述待测试的PLC程序和所述测试数据文件进行语法分析,从所述待测试的PLC程序中分析出各输入变量、各输出变量、定时器变量以及逻辑运算结构;从所述测试数据文件中分析出输入的变量值、与该输入的变量值相应的预期输出的变量值、以及各条测试数据记录的类别;其中,每条测试数据记录的类别包括在指定时刻处理的测试数据记录,以及一个扫描周期中的测试数据记录; 测试模块用于启动测试,根据从所述测试数据文件中分析出的各条测试数据记录的类别驱动对该条测试数据记录进行测试,将该条测试数据记录中的输入的变量值代入到所述待测试的PLC程序中对应的输入变量中,通过所述逻辑运算结构得到实际输出结果,并将该实际输出结果保存在所述待测试的PLC程序的输出变量中; 比较模块用于将保存在所述待测试的PLC程序的输出变量中的实际输出结果与所述测试数据文件中对应测试数据记录中的预期输出的变量值进行比较,如果相同,该所述待测试的PLC程序正确,如果不同,该所述待测试的PLC程序出错; 显示模块用于将所述比较模块得到的结果作为测试结果进行显示。较佳地,当所述测试模块对所述一个扫描周期中的测试数据记录进行测试时,在读入输入变量值之后立即测试;当所述测试模块对所述指定时刻处理的测试数据记录进行测本文档来自技高网
...

【技术保护点】
一种针对含有时间控制的PLC程序自动测试的方法,其中,所述PLC程序中包含有定时器,其特征在于,该方法包括以下步骤:输入步骤:输入待测试的PLC程序和针对所述待测试的PLC程序的测试数据文件,其中,所述测试数据文件中包含若干条测试数据记录;语法分析步骤:从所述待测试的PLC程序中分析出各输入变量、各输出变量、定时器变量以及逻辑运算结构;并从所述测试数据文件中分析出各条测试数据记录中的输入的变量值、与该输入的变量值相应的预期输出的变量值、以及各条测试数据记录的类别;其中,每条测试数据记录的类别包括:在指定时刻处理的测试数据记录,以及一个扫描周期中的测试数据记录;测试步骤:启动测试,根据从所述测试数据文件中分析出的各条测试数据记录的类别驱动对该条测试数据记录相关的测试,将该条测试数据记录中的输入变量值代入到所述待测试的PLC程序中对应的输入变量中,通过所述逻辑运算结构得到实际输出结果,该实际输出结果保存在所述待测试的PLC程序的输出变量中;比较步骤:将保存在所述待测试的PLC程序的输出变量中的实际输出结果与所述测试数据文件中对应测试数据记录中的预期输出的变量值进行比较,如果相同,该所述待测试的PLC程序正确,如果不同,该所述待测试的PLC程序出错;显示步骤:将所述比较步骤的结果作为测试结果进行显示。...

【技术特征摘要】
1. 一种针对含有时间控制的PLC程序自动测试的方法,其中,所述PLC程序中包含有定时器,其特征在于,该方法包括以下步骤 输入步骤输入待测试的PLC程序和针对所述待测试的PLC程序的测试数据文件,其中,所述测试数据文件中包含若干条测试数据记录; 语法分析步骤从所述待测试的PLC程序中分析出各输入变量、各输出变量、定时器变量以及逻辑运算结构;并从所述测试数据文件中分析出各条测试数据记录中的输入的变量值、与该输入的变量值相应的预期输出的变量值、以及各条测试数据记录的类别;其中,每条测试数据记录的类别包括在指定时刻处理的测试数据记录,以及一个扫描周期中的测试数据记录; 测试步骤启动测试,根据从所述测试数据文件中分析出的各条测试数据记录的类别驱动对该条测试数据记录相关的测试,将该条测试数据记录中的输入变量值代入到所述待测试的PLC程序中对应的输入变量中,通过所述逻辑运算结构得到实际输出结果,该实际输出结果保存在所述待测试的PLC程序的输出变量中; 比较步骤将保存在所述待测试的PLC程序的输出变量中的实际输出结果与所述测试数据文件中对应测试数据记录中的预期输出的变量值进行比较,如果相同,该所述待测试的PLC程序正确,如果不同,该所述待测试的PLC程序出错; 显示步骤将所述比较步骤的结果作为测试结果进行显示。2.如权利要求1所述的针对含有时间控制的PLC程序自动测试的方法,其特征在于,当对所述一个扫描周期中的测试数据记录进行测试时,在读入输入变量之后立即测试;当对所述指定时刻处理的测试数据记录进行测试时,在指定时刻未到达之前,重复使用上一条测试数据记录进行测试,并在指定时刻到达时启动对该条测试记录的测试。3.如权利要求1所述的针对含有时间控制的PLC程序自动测试的方法,其特征在于,所述的测试数据文件的第一行的格式为周期标题、各输入变量、各输出变量,其中所述各输入变量和所述各输出变量之间通过一符号隔开,所述测试数据文件自第一行后为所述测试数据记录,并且每一行代表一条测试数据记录,每条测试数据记录的输入的变量值和预期输出的变量值分别与第一行的同列各输入变量和各输出变量相对应。4.如权利要求3所述的针对含有时间控制的PLC程序自动测试的方法,其特征在于,所述在指定时刻处理的测试数据记录的第一列用一个字母紧跟一个数字表示,该数字表示从对该条测试数据记录进行测试开始到对下条测试数据记录进行测试需要经历的时间;所述一个扫描周期中的测试数据记录用一个整数表示。5.如权利要求1所述的针对含有时间控制的PLC程序自动测试的方法,其特征在于,在所述比较步骤中,如果实际输出结果与预期输出的变量值不同,则停止测试,显示测试结果;其中,所述测试结果包含通过测试的测试数据、出错...

【专利技术属性】
技术研发人员:陈钢
申请(专利权)人:陈钢
类型:发明
国别省市:

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

1