CN103246596A - 一种对基于时间控制的plc程序自动测试的方法 - Google Patents
一种对基于时间控制的plc程序自动测试的方法 Download PDFInfo
- Publication number
- CN103246596A CN103246596A CN2012100244670A CN201210024467A CN103246596A CN 103246596 A CN103246596 A CN 103246596A CN 2012100244670 A CN2012100244670 A CN 2012100244670A CN 201210024467 A CN201210024467 A CN 201210024467A CN 103246596 A CN103246596 A CN 103246596A
- Authority
- CN
- China
- Prior art keywords
- test
- plc program
- variate
- testing
- value
- 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.)
- Pending
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明提出一种对基于时间控制的PLC程序自动测试的方法。基于时间控制的PLC程序需要经过大量的测试排除错误之后才能投入正式运行,目前的测试方法效率低,本发明提出的测试方法是通过使用针对该被测试的基于时间控制的PLC程序的测试数据文件对此程序进行自动测试,一次完成一批测试数据的测试,大大提高了测试效率,在测试过程中如果显示程序出错后,程序经修改,可以继续使用该测试数据文件对该程序重新启动测试,直至所有的测试数据都通过,本发明的优点是大幅度提高了测试效率、提高了PLC程序的可靠性以及方便了PLC的教学,更好地满足了当今工作的需求。
Description
技术领域
本发明涉及一种对基于时间控制的PLC程序自动测试的方法,特别涉及使用测试数据文件对基于时间控制的PLC程序自动测试的方法。
背景技术
专利号为201010591420.3提出了一种对PLC程序进行自动测试的方法,该方法能够有效的帮助检查PLC程序的运行是否正确,但是该测试方法有一个局限:在基于时间控制的PLC程序中,输入的变量值有时仅在某些指定时刻才发生变化,在两个时刻之间,虽然此PLC程序运行了几千到几万个周期,各输入的变量值保持不变,但是输出结果却在变化,对于这种情况,本发明发明了一种针对基于时间控制的PLC程序自动测试的方法。
发明内容
一种对基于时间控制的PLC程序自动测试的方法,包括如下步骤:
输入步骤:输入被测试的PLC程序和针对所述PLC程序的测试数据文件;
语法分析步骤:从被测试的PLC程序中分析出各输出变量、各输出变量与触发时间点之间的逻辑关系;从测试数据文件中分析出触发时间点以及其相应的延时时间、各输入的变量值、以及与该触发时间点相应的预期输出的变量值;所述的输入的变量值是指启动按钮和停止按钮所在的状态;
定时器设置步骤;根据语法分析步骤中分析出的触发时间点以及其相应的延时时间对定时器进行设置;
测试步骤:启动测试,根据已设置好的定时器触发对测试数据文件进行测试,通过所述逻辑关系得到实际输出结果,将此实际输出结果代入到相应的输出变量中;
比较步骤:将输出变量中的实际输出结果与预期输出的变量值进行比较,如果相同,该被测试程序正确,如果不同,该被测试程序出错;
显示步骤:显示测试结果。
在所述的输入步骤中,所述的测试输入文件是一个包含标题行和测试数据记录集合的文件。
测试数据文件的第一行为:周期标题、启动按钮、停止按钮和各输出变量,其中启动按钮和停止按钮与各输出变量之间通过某种符号分开,比如符号“│”。测试数据文件第二行以后都是测试数据,它们是测试数据记录的集合,测试数据记录之间通过某种符号间隔开,典型的做法是每一行表示一条测试数据,每条测试数据的启动按钮、停止按钮和预期输出的变量值分别与第一行的同列启动按钮、停止按钮和输出变量对应,每一条测试数据的第一类列的数据的格式是一个字母后紧跟一个数字,该数字表示该该触发时间点需要延时的时间。
使用测试数据文件对被测试的PLC程序进行测试时,由于测试数据文件为普通的文本文件,因此能对其中的测试数据使用常规的手段进行复制和修改,用户在准备测试数据文件时只需通过对测试数据复制和修改的方式即可快速形成。
在比较步骤中如果输出变量单元中实际输出结果与预期输出的变量值不同,停止测试,显示测试结果,所述测试结果包含:通过测试的测试数据以及出错的测试数据所在的触发时间、输入的变量值、预期输出的变量值和实际输出结果。
本发明发明的一种对基于时间控制的PLC程序自动测试的方法能够有效帮助检查基于时间控制的PLC程序的运行是否正确,提高了基于时间控制的PLC程序的可靠性以及方便了PLC的教学,更好地满足了当今工作的需求。
附图说明
下面结合附图对本发明的具体实施方式做进一步详细的说明。
图1是对基于时间控制的PLC程序自动测试的方法的原理图。
图2是实施例中被测试的基于时间控制的PLC程序的梯形图。
具体实施方式
该实施例是本发明所述的优选实施例,采用一个音乐喷泉PLC程序的测试过程说明本发明的具体实施过程。
该音乐喷泉PLC程序的梯形图如图2所示,这个程序控制A、B、C三个喷头,为了进行测试工作,设计了下述测试数据文件:
上述,X000和X001分别表示启动按钮和停止按钮,Y000,Y001,Y002分别表示喷头A,B,C。第一列中T10表示该触发时间点需要延时运行10秒;测试文件的前两行表示在启动按钮按下之后,喷头A开始喷水,在第10秒,喷头A停止喷水,同时喷头B和C分别开始喷水。第三行表示,再过10秒之后,喷头B停止喷水,喷头C继续喷水;第四行表示,再过10秒之后,A,B开始喷水,C停止喷水。
测试该音乐喷泉PLC程序的运行是否正确,测试的原理图如图1所示:
第一步,输入步骤:输入此音乐喷泉的PLC程序,该程序图如图2所示;输入上述已设计好的针对此PLC程序的测试数据文件;
第二步,语法分析步骤:从此音乐喷泉的PLC程序中分析出各输出变量、各输出变量与各触发时间点之间的逻辑关系;从测试数据文件中分析出各触发时间点、与各触发时间点相应的延时时间、各输入的变量值、以及与各触发时间点相应的预期输出的变量值;所述的输入的变量值是指启动按钮和停止按钮所在的状态;
第三步,定时器设置步骤;根据上次分析出的各触发时间点以及与各触发时间点相应的延时时间对定时器进行设置;
第四步,测试步骤:启动测试,根据已设置好的定时器触发对测试数据文件进行测试,通过所述逻辑关系得到实际输出结果,将此实际输出结果代入到相应的输出变量中;
第五步,比较步骤:将输出变量中的实际输出结果与预期输出的变量值进行比较,如果相同,该被测试程序正确,如果不同,该被测试程序出错;
第六步,显示步骤:显示测试结果。
该音乐喷泉PLC程序的测试结果如下:
为了加速测试过程,这里把时间压缩了十倍,用1秒代替10秒,上述测试结果表明,该音乐喷泉PLC程序在第3秒(即相当于原来要求的第30秒)时运行出现错误,程序的运行结果中Y002=1,按照要求此时Y002应该为0,这一测试发现了喷头并没有在指定时刻按要求停止,因此这个程序需要修改,修改之后可以继续使用这个测试数据文件重新启动测试,看是否能够通过。这一过程显示,测试数据可以重复使用,在调试过程中,不需要每次到现场去测试,提高了调试的效率,也方便了PLC的教学,更好地满足了当今工作的需求。
Claims (8)
1.一种对基于时间控制的PLC程序自动测试的方法,其特征在于,包括以下步骤:
输入步骤:输入被测试的PLC程序和针对所述PLC程序的测试数据文件;
语法分析步骤:从被测试的PLC程序中分析出各输出变量、各输出变量与触发时间点之间的逻辑关系;从测试数据文件中分析出触发时间点以及其相应的延时时间、各输入的变量值、以及与该触发时间点相应的预期输出的变量值;所述的输入的变量值是指启动按钮和停止按钮所在的状态;
定时器设置步骤;根据语法分析步骤中分析出的触发时间点以及其相应的延时时间对定时器进行设置;
测试步骤:启动测试,根据已设置好的定时器触发对测试数据文件进行测试,通过所述逻辑关系得到实际输出结果,将此实际输出结果代入到相应的输出变量中;
比较步骤:将输出变量中的实际输出结果与预期输出的变量值进行比较,如果相同,该被测试程序正确,如果不同,该被测试程序出错;
显示步骤:显示测试结果。
2.如权利要求1所述的一种对基于时间控制的PLC程序自动测试的方法,其特征在于,所述的测试数据文件中包含多条测试数据。
3.如权利要求2所述的一种对基于时间控制的PLC程序自动测试的方法,其特征在于,在所述比较步骤中如果实际输出结果与预期输出的变量值不同,停止测试,显示测试结果,所述测试结果包含:通过测试的测试数据以及出错的测试数据所在的触发时间、各输入的变量值、预期输出的变量值和实际输出结果。
4.如权利要求3所述的一种对基于时间控制的PLC程序自动测试的方法,其特征在于,用户根据显示的测试结果对被测试程序进行修改,修改后继续使用测试数据文件对测试程序重新启动测试,直到所有测试数据都通过测试。
5.一种对基于时间控制的PLC程序自动测试的装置,其特征在于,包括以下模块:
输入模块:用以输入被测试的PLC程序和针对所述PLC程序的测试数据文件;
语法分析模块:用以从被测试的PLC程序中分析出各输出变量、各输出变量与触发时间点之间的逻辑关系;用以从测试数据文件中分析出触发时间点以及其相应的延时时间、各输入的变量值、以及与该触发时间点相应的预期输出的变量值;所述的输入的变量值是指启动测试的按钮和停止测试的按钮所在的状态;
测试模块:启动测试,用以根据已设置好的定时器触发对测试数据文件进行测试,通过所述逻辑关系得到实际输出结果,将此实际输出结果代入到相应的输出变量中;
比较模块:用以将输出变量中的实际输出结果与预期输出的变量进行比较,如果相同,该被测试程序正确,如果不同,该被测试程序出错;
显示模块:用以显示测试结果。
6.如权利要求5所述的一种对基于时间控制的PLC程序自动测试的装置,其特征在于,在所述的输入模块中,所述测试数据文件中包含多条测试数据。
7.如权利要求6所述的一种对基于时间控制的PLC程序自动测试的装置,其特征在于,在所述比较模块中如果实际输出结果与预期输出的变量值不同,停止测试,显示测试结果,所述测试结果包含:通过测试的测试数据以及出错的测试数据所在的触发时间、各输入的变量值、预期输出的变量值和实际输出结果。
8.如权利要求7所述的一种对基于时间控制的PLC程序自动测试的装置,其特征在于,用户根据显示的测试结果对被测试程序进行修改,修改后继续使用测试数据文件对测试程序重新启动测试,直到所有测试数据都通过测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100244670A CN103246596A (zh) | 2012-02-06 | 2012-02-06 | 一种对基于时间控制的plc程序自动测试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100244670A CN103246596A (zh) | 2012-02-06 | 2012-02-06 | 一种对基于时间控制的plc程序自动测试的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103246596A true CN103246596A (zh) | 2013-08-14 |
Family
ID=48926126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100244670A Pending CN103246596A (zh) | 2012-02-06 | 2012-02-06 | 一种对基于时间控制的plc程序自动测试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103246596A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019930A (zh) * | 2012-11-15 | 2013-04-03 | 陈钢 | 一种针对含有时间控制的plc程序自动测试的方法 |
CN107357735A (zh) * | 2017-07-20 | 2017-11-17 | 万帮充电设备有限公司 | 折扣测试方法及装置 |
CN110597705A (zh) * | 2019-07-30 | 2019-12-20 | 广东工业大学 | 一种可重复获取测试数据的程序调试方法及装置 |
CN116710858A (zh) * | 2021-02-17 | 2023-09-05 | 三菱电机株式会社 | 数据核对装置、数据核对***以及数据核对方法 |
-
2012
- 2012-02-06 CN CN2012100244670A patent/CN103246596A/zh active Pending
Non-Patent Citations (2)
Title |
---|
王达等: ""基于OPC的PLC程序自动化测试"", 《实验技术与管理》 * |
陈钢: ""一组PLC程序的逻辑错误分析"", 《可编程控制器与工厂自动化》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019930A (zh) * | 2012-11-15 | 2013-04-03 | 陈钢 | 一种针对含有时间控制的plc程序自动测试的方法 |
CN107357735A (zh) * | 2017-07-20 | 2017-11-17 | 万帮充电设备有限公司 | 折扣测试方法及装置 |
CN110597705A (zh) * | 2019-07-30 | 2019-12-20 | 广东工业大学 | 一种可重复获取测试数据的程序调试方法及装置 |
CN110597705B (zh) * | 2019-07-30 | 2023-01-20 | 广东工业大学 | 一种可重复获取测试数据的程序调试方法及装置 |
CN116710858A (zh) * | 2021-02-17 | 2023-09-05 | 三菱电机株式会社 | 数据核对装置、数据核对***以及数据核对方法 |
CN116710858B (zh) * | 2021-02-17 | 2024-05-03 | 三菱电机株式会社 | 数据核对装置、数据核对***以及数据核对方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102156784B (zh) | 验证环境图形化的芯片验证方法与装置 | |
CN107038280B (zh) | 一种软硬件协同仿真的验证***及其方法 | |
US20070094541A1 (en) | Method and apparatus for generating test execution sequences automatically for a software testing process | |
CN105512023B (zh) | 一种Monkey测试方法及装置 | |
CN103838654B (zh) | 一种多线程和并发测试模拟器及其测试方法 | |
CN104123219A (zh) | 测试软件的方法和设备 | |
CN103246596A (zh) | 一种对基于时间控制的plc程序自动测试的方法 | |
CN111352826B (zh) | 一种界面测试用例自动生成方法及工具 | |
US9582620B1 (en) | Method and system for automated refined exclusion of entities from a metric driven verification analysis score | |
CN104064134B (zh) | 一种显示屏效果调试方法 | |
TW201312340A (zh) | 手持式電子裝置的測試系統及方法 | |
CN103399815A (zh) | 自动化测试方法和装置 | |
CN104780407A (zh) | 一种机顶盒自动测试方法及*** | |
EP3839671A1 (en) | Program generating device, program generating method, and program | |
CN104317719B (zh) | 一种控制软件测试质量的方法 | |
CN103455672B (zh) | 一种fpga仿真测试用例自动化回归方法 | |
CN101866373B (zh) | 用于电子设计自动化的执行监视器 | |
TWI486804B (zh) | 電子設計自動化之執行監視 | |
JP2012159868A (ja) | プログラマブルロジックコントローラのプログラミング装置 | |
CN103279618B (zh) | 一种数字电路自动设计与实验仿真方法 | |
CN105095093A (zh) | 一种智能终端性能测试方法及*** | |
CN108171013A (zh) | 一种可视化生物信息分析流程的调试方法及*** | |
CN103019930A (zh) | 一种针对含有时间控制的plc程序自动测试的方法 | |
CN106843863A (zh) | 一种空调控制参数可视化代码修改方法及代码修改器 | |
CN112231062A (zh) | 一种用于可编程工业控制器的安全测试***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130814 |