掌桥专利:专业的专利平台
掌桥专利
首页

基于CI/CD的CODESYS总线协议栈自动化测试方法及系统

文献发布时间:2024-04-18 20:01:55


基于CI/CD的CODESYS总线协议栈自动化测试方法及系统

技术领域

本申请涉及总线测试技术领域,具体是一种基于CI/CD的CODESYS总线协议栈自动化测试方法及系统。

背景技术

CODESYS是工控行业著名的软PLC方案,自1994年发布V1.0版本至今已发展20余年,目前在全球工控行业内已经得到了极为广泛的应用,国外品牌如倍福、万可、费斯托等,国内品牌如汇川、雷赛、禾川、翼辉等,均已推出以CODESYS为核心的工业控制器。

CODESYS从架构上可分为三层:应用开发层,通信层和设备层。其中应用开发层和通信层在业内常称为“上位机”,是行业中终端用户(具体工艺的实现者)所接触的部分,包括IEC 61131-3编辑器、编译器、硬件/现场总线配置器等部分内容,为终端用户提供了一套完善的工业应用开发环境;设备层常称为“下位机”,是行业中控制器制造商所接触的部分,包含CODESYS运行时系统(Runtime,或称实时核系统)与上位机下载而来的IEC 61131-3应用程序。

CODESYS在其上位机系统实现了多种工业现场总线协议栈,如EtherCAT Master,PROFINET Controller/Device,Modbus TCP Client/Server,Modbus RTU Clinet/Server等等。CODESYS控制器厂商向CODESYS官方购买相应的总线授权后,其控制器产品即可支持相应总线协议栈。而相对应的,CODESYS控制器厂商在其控制器产品研发过程中,需要对每一种总线协议栈分别进行稳定性测试,以保证产品质量。

而现有的测试技术中主要分为两种:

1、厂商根据公司现有的总线设备编写IEC测试程序,后手动部署至待测设备并启动测试,并以待测设备本身是否报告错误信息、总线被控设备是否错误停机作为测试是否通过的依据。这种测试方法存在多种问题:

①人工操作量大且重复劳动多,需要在“部署测试→出现问题→定位问题→修改代码→重新编译下位机代码→重新编译上位机代码→部署上下位机程序→开启测试”的工作循环中,花费大量的工作量与时间在代码编译、程序部署等非核心技术的流程中,测试效率与解决问题的效率较低。

②测试结果的可信度存疑,在此种测试方案中,待测设备既负责对总线设备进行控制,又负责向开发者反馈测试结果是否通过,“既当裁判又当运动员”,而第三方被控设备仅以是否是出现总线通讯错误作为报错依据,不校检具体的通信数据,测试结果评判维度单一,存在测试结果误报的可能。

2、而更加先进的一种方式,则是将CODESYS Runtime编译过程融入了现今广泛的使用CI/CD(Continuous Integrate/Continuous Deploy,即持续部署/持续集成)系统,将CODESYS下位机代码编译、代码部署交由程序自动化系统完成,减少了问题①中CODESYS下位机相关的人工操作量,但仍无法完全解决其它问题。

发明内容

本申请的目的在于提供一种基于CI/CD的CODESYS总线协议栈自动化测试方法及系统,以解决上述背景技术中提出的现有技术中存在的技术问题。

为实现上述目的,本申请公开了以下技术方案:

第一方面,本申请公开了一种基于CI/CD的CODESYS总线协议栈自动化测试方法,该方法包括以下步骤:

研发人员在CI/CD编译部署服务器中部署代码仓库和软件运行环境;

研发人员向所述代码仓库提交CODESYS上位机或下位机的相关代码,触发所述CI/CD编译部署服务器开始测试流程;

所述测试流程包括:

进入准备阶段,所述准备阶段包括:更新代理程序或工具的代码环境;

进入编译阶段,所述编译阶段包括:上位机测试工程构建的代理程序或工具与下位机运行环境构建的代理程序或工具分别编译待测控制器与可信控制器的上下位机相关的代码,并生成对应的部署文件;

进入测试阶段,所述测试阶段包括:部署待测控制器与可信控制器的测试环境,并开启控制器测试;

进入打包阶段,所述打包阶段包括:根据所述测试阶段的测试结果,生成相应的测试报告,发送到研发人员的邮箱中。

作为优选,所述的准备阶段,具体包括:

下位机环境构建的代理程序或工具、上位机工程构建的代理程序或工具从所述代码仓库中拉取最新的代码,并向所述CI/CD编译部署服务器回复操作完成的信号。

作为优选,所述的编译阶段,具体包括:

下位机环境构建的代理程序或工具进行CODESYS下位机运行环境的相关代码编译,编译出下位机运行环境部署文件,操作完成后,向所述CI/CD编译部署服务器回复操作完成信号;

上位机测试工程构建的代理程序或工具接收到所述CI/CD编译部署服务器的触发信号后,根据其附带的测试总线参数,利用CODESYS的脚本引擎提供的iron Python接口,从所述准备阶段拉取的完整测试工程中,构建一个仅有参数中存在的总线测试工程;

进行待测控制器与可信控制器的CODESYS上位机测试工程代码编译,分别编译出所述待测控制器与所述可信控制器的CODESYS工程部署文件,并将所述待测控制器的工程部署文件回传至所述下位机运行环境构建的代理程序或工具,操作完成后,向所述CI/CD编译部署服务器回复操作完成信号;

所述CI/CD编译部署服务器接收到所述下位机环境构建的代理程序或工具和所述上位机测试工程构建的代理程序或工具的完成信号后,进入下一个阶段。

作为优选,所述的测试阶段,具体包括:

所述下位机运行环境构建的代理程序或工具将所述编译阶段生成的下位机运行环境部署文件部署至所述待测控制器中,并重启该待测控制器;

该待测控制器重启完成后,所述待测控制器将发送表示重启完成的信号至所述下位机运行环境构建的代理程序或工具;

所述CI/CD编译部署服务器接收到该表示重启完成的信号后,触发所述上位机测试工程构建的代理程序或工具将所述编译阶段生成的上位机测试工程部署文件分别部署至所述待测控制器与所述可信控制器,并开启总线设备数据验证测试。

作为优选,所述总线设备数据验证测试,具体包括:

S1:所述可信控制器控制可信设备验证区中的信号输出设备定量的输出信号数值,该输出信号传递至待测设备控制区中对应的信号输入设备;

S2:所述待测控制器通过测试总线采集该信号输入设备的信号后,将所述输出信号的数值定量输出至所述待测设备控制区中的信号输出设备;

S3:所述输出信号的数值传递至所述可信设备验证区的输入信号后,所述可信控制器采集所述信号输入设备的信号,以形成信号的整体闭环;

S4:所述可信控制器将所述输出信号与所述S3中采集的所述信号输入设备的信号进行对比,若对比结果满足预设的测试条件时,定义测试通过,否则,定义所述待测控制器中该总线的测试出错;

在所述S1-S4进行时,所述待测控制器向所述下位机运行环境构建的代理程序或工具实时回传命令行测试日志;所述待测控制器与所述可信控制器循环所述S1-S4的步骤后完成所述待测控制器中所有总线类型的测试后,所述可信控制器向所述下位机运行环境构建的代理程序或工具回传测试结果;所述测试结果包括:总线测试是否出错、错误的总线类型、报错的设备编号、报错时间戳、总体测试时长;所述CI/CD编译部署服务器接收到测试完成信号后,进入下一个阶段。

作为优选,所述预设的测试条件包括:所述输出信号与所述S3中采集的所述信号输入设备的信号相同或所述输出信号与所述S3中采集的所述信号输入设备的信号之间的误差在预设的误差阈值范围内。

作为优选,所述的打包阶段,具体包括:

所述下位机环境构建的代理程序或工具将根据所述待测控制器回传的命令行测试日志与所述可信控制器回传的测试结果,生成相应的测试报告,并发送至事先设定好的研发人员邮箱中。

第二方面,本申请公开了一种基于CI/CD的CODESYS总线协议栈自动化测试系统,包括总线综合测试模块、CI/CD编译部署服务器;

所述总线综合测试模块配置为:作为提供软硬件测试环境与验证测试结果的物理载体,包括待测设备控制区和可信设备验证区;

所述待测设备控制区以控制器厂商研发的CODESYS控制器为控制中心,通过待测设备支持的通信总线与相应的可信总线设备通信,控制所述可信总线设备的信号输出或采集其信号输入,且该可信总线设备同时接受来自所述CI/CD编译部署服务器的程序部署或测试启动指令;

所述可信设备验证区以第三方可信CODESYS控制器为控制中心,通过某种通信总线与相应的可信总线设备通信,定量控制所述可信总线设备的信号输出及采集其信号输入,且该可信总线设备同时接受来自CI/CD编译部署服务器的程序部署、测试启动指令,并发送测试结果;

所述CI/CD编译部署服务器配置为:负责编译CODESYS控制器的上下位机代码、部署上下位机程序、启动测试以及接收测试结果,并根据所述测试结果生成测试报告。

作为优选,所述CI/CD编译部署服务器的测试流程包括:

进入准备阶段,所述准备阶段包括:更新代理程序或工具的代码环境;

进入编译阶段,所述编译阶段包括:上位机测试工程构建的代理程序或工具与下位机运行环境构建的代理程序或工具分别编译待测控制器与可信控制器的上下位机相关的代码,并生成对应的部署文件;

进入测试阶段,所述测试阶段包括:部署待测控制器与可信控制器的测试环境,并开启控制器测试;

进入打包阶段,所述打包阶段包括:根据所述测试阶段的测试结果,生成相应的测试报告,发送到研发人员的邮箱中。

有益效果:本申请的基于CI/CD的CODESYS总线协议栈自动化测试方法及系统,实现了:

1、将CODESYS控制器总线测试与CI/CD流程结合起来,大幅降低了测试工作中,核心问题排查与解决以外的诸如代码编译、程序部署、启动测试等工作的人工操作量,提升测试效率与解决问题的效率。

2、利用第三方可信设备校检待测设备的输出控制信号,形成信号闭环,避免了待测设备同时进行设备控制、数据校检、结果生成等工作,避免测试结果评判维度单一,保证测试结果可信。

3、利用CI/CD测试流程,使测试过程中的记录有留档并发送测试报告给研发人员,帮助研发人员更快速地定位与解决问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例中基于CI/CD的CODESYS总线协议栈自动化测试方法的流程示意图;

图2为本申请实施例中总线设备数据验证流程示意图;

图3为本申请实施例中基于CI/CD的CODESYS总线协议栈自动化测试系统的拓扑图。

具体实施方式

下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本文中,术语“包括”意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本实施例公开了如图1所示的一种基于CI/CD的CODESYS总线协议栈自动化测试方法,该方法包括以下步骤:

研发人员在CI/CD编译部署服务器中部署代码仓库和软件运行环境;

研发人员向所述代码仓库提交CODESYS上位机或下位机的相关代码,触发所述CI/CD编译部署服务器开始测试流程;

所述测试流程包括:

进入准备阶段,所述准备阶段包括:更新代理程序或工具的代码环境;

进入编译阶段,所述编译阶段包括:上位机测试工程构建的代理程序或工具与下位机运行环境构建的代理程序或工具分别编译待测控制器与可信控制器的上下位机相关的代码,并生成对应的部署文件;

进入测试阶段,所述测试阶段包括:部署待测控制器与可信控制器的测试环境,并开启控制器测试;

进入打包阶段,所述打包阶段包括:根据所述测试阶段的测试结果,生成相应的测试报告,发送到研发人员的邮箱中。

请参阅图2

具体来说,所述的准备阶段,具体包括:

下位机环境构建的代理程序或工具、上位机工程构建的代理程序或工具从所述代码仓库中拉取最新的代码,并向所述CI/CD编译部署服务器回复操作完成的信号。

具体来说,所述的编译阶段,具体包括:

下位机环境构建的代理程序或工具进行CODESYS下位机运行环境的相关代码编译,编译出下位机运行环境部署文件,操作完成后,向所述CI/CD编译部署服务器回复操作完成信号;

上位机测试工程构建的代理程序或工具接收到所述CI/CD编译部署服务器的触发信号后,根据其附带的测试总线参数,利用CODESYS的脚本引擎提供的iron Python接口,从所述准备阶段拉取的完整测试工程中,构建一个仅有参数中存在的总线测试工程;

进行待测控制器与可信控制器的CODESYS上位机测试工程代码编译,分别编译出所述待测控制器与所述可信控制器的CODESYS工程部署文件,并将所述待测控制器的工程部署文件回传至所述下位机运行环境构建的代理程序或工具,操作完成后,向所述CI/CD编译部署服务器回复操作完成信号;

所述CI/CD编译部署服务器接收到所述下位机环境构建的代理程序或工具和所述上位机测试工程构建的代理程序或工具的完成信号后,进入下一个阶段。

具体来说,所述的测试阶段,具体包括:

所述下位机运行环境构建的代理程序或工具将所述编译阶段生成的下位机运行环境部署文件部署至所述待测控制器中,并重启该待测控制器;

该待测控制器重启完成后,所述待测控制器将发送表示重启完成的信号至所述下位机运行环境构建的代理程序或工具;

所述CI/CD编译部署服务器接收到该表示重启完成的信号后,触发所述上位机测试工程构建的代理程序或工具将所述编译阶段生成的上位机测试工程部署文件分别部署至所述待测控制器与所述可信控制器,并开启总线设备数据验证测试。

进一步地,所述总线设备数据验证测试,具体包括:

S1:所述可信控制器控制可信设备验证区中的信号输出设备定量的输出信号数值,该输出信号传递至待测设备控制区中对应的信号输入设备;

S2:所述待测控制器通过测试总线采集该信号输入设备的信号后,将所述输出信号的数值定量输出至所述待测设备控制区中的信号输出设备;

S3:所述输出信号的数值传递至所述可信设备验证区的输入信号后,所述可信控制器采集所述信号输入设备的信号,以形成信号的整体闭环;

S4:所述可信控制器将所述输出信号与所述S3中采集的所述信号输入设备的信号进行对比,若对比结果满足预设的测试条件时,定义测试通过,否则,定义所述待测控制器中该总线的测试出错;

在所述S1-S4的流程中,所述待测控制器向所述下位机运行环境构建的代理程序或工具实时回传命令行测试日志;所述待测控制器与所述可信控制器循环所述S1-S4的步骤后完成所述待测控制器中所有总线类型的测试后,所述可信控制器向所述下位机运行环境构建的代理程序或工具回传测试结果;所述测试结果包括:总线测试是否出错、错误的总线类型、报错的设备编号、报错时间戳、总体测试时长;所述CI/CD编译部署服务器接收到测试完成信号后,进入下一个阶段。

其中,所述预设的测试条件包括:所述输出信号与所述S3中采集的所述信号输入设备的信号相同或所述输出信号与所述S3中采集的所述信号输入设备的信号之间的误差在预设的误差阈值范围内。

具体来说,所述的打包阶段,具体包括:

所述下位机环境构建的代理程序或工具将根据所述待测控制器回传的命令行测试日志与所述可信控制器回传的测试结果,生成相应的测试报告,并发送至事先设定好的研发人员邮箱中。

本实施例还公开了一种如图3所示的基于CI/CD的CODESYS总线协议栈自动化测试系统,本测试系统适用于上述的基于CI/CD的CODESYS总线协议栈自动化测试方法。本测试系统包括总线综合测试模块、CI/CD编译部署服务器。

所述总线综合测试模块配置为:作为提供软硬件测试环境与验证测试结果的物理载体,包括待测设备控制区和可信设备验证区。所述待测设备控制区以控制器厂商研发的CODESYS控制器为控制中心,通过待测设备支持的通信总线与相应的可信总线设备通信,控制所述可信总线设备的信号输出或采集其信号输入,且该可信总线设备同时接受来自所述CI/CD编译部署服务器的程序部署或测试启动指令。所述可信设备验证区以第三方可信CODESYS控制器为控制中心,通过某种通信总线与相应的可信总线设备通信,定量控制所述可信总线设备的信号输出及采集其信号输入,且该可信总线设备同时接受来自CI/CD编译部署服务器的程序部署、测试启动指令,并发送测试结果。

所述CI/CD编译部署服务器配置为:负责编译CODESYS控制器的上下位机代码、部署上下位机程序、启动测试以及接收测试结果,并根据所述测试结果生成测试报告。

特别地,所述CI/CD编译部署服务器的测试流程包括:

进入准备阶段,所述准备阶段包括:更新代理程序或工具的代码环境;

进入编译阶段,所述编译阶段包括:上位机测试工程构建的代理程序或工具与下位机运行环境构建的代理程序或工具分别编译待测控制器与可信控制器的上下位机相关的代码,并生成对应的部署文件;

进入测试阶段,所述测试阶段包括:部署待测控制器与可信控制器的测试环境,并开启控制器测试;

进入打包阶段,所述打包阶段包括:根据所述测试阶段的测试结果,生成相应的测试报告,发送到研发人员的邮箱中。

需要说明的是,借由前述的本测试系统适用于上述的基于CI/CD的CODESYS总线协议栈自动化测试方法,因此,本测试系统中的具体测试流程内容可以对应参考本文本在前述的基于CI/CD的CODESYS总线协议栈自动化测试方法中的描述,在此不做赘述。

在本申请所提供的实施例中,应该理解到,可以以硬件、软件、固件、中间件、代码或其任何恰当组合来实现这里描述的实施例。对于硬件实现,处理器可以在一个或多个下列单元中实现:专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、设计用于实现这里所描述功能的其他电子单元或其组合。对于软件实现,实施例的部分或全部流程可以通过计算机程序来指令相关的硬件来完成。实现时,可以将上述程序存储在计算机可读存储介质中或作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。计算机可读存储介质可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。

最后应说明的是:以上所述仅为本申请的优选实施例而已,并不用于限制本申请,尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种洗干一体机的控制方法及洗干一体机
  • 一种衣物洗干一体机及其控制方法
  • 一种组合式洗干一体机及控制方法
  • 一种衣物洗干一体机及其控制方法
  • 一种衣物洗干一体机及其控制方法
  • 一种洗烘一体设备的控制方法及洗烘一体设备
  • 一种洗烘一体设备的控制方法及洗烘一体设备
技术分类

06120116571459