CN117354208B - 基于ci/cd的codesys总线协议栈自动化测试方法及系统 - Google Patents

基于ci/cd的codesys总线协议栈自动化测试方法及系统 Download PDF

Info

Publication number
CN117354208B
CN117354208B CN202311275153.2A CN202311275153A CN117354208B CN 117354208 B CN117354208 B CN 117354208B CN 202311275153 A CN202311275153 A CN 202311275153A CN 117354208 B CN117354208 B CN 117354208B
Authority
CN
China
Prior art keywords
test
controller
compiling
signal
tested
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.)
Active
Application number
CN202311275153.2A
Other languages
English (en)
Other versions
CN117354208A (zh
Inventor
何炳龙
梁桦圳
王东方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Yihui Information Technology Co ltd
Original Assignee
Guangzhou Yihui Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Yihui Information Technology Co ltd filed Critical Guangzhou Yihui Information Technology Co ltd
Priority to CN202311275153.2A priority Critical patent/CN117354208B/zh
Publication of CN117354208A publication Critical patent/CN117354208A/zh
Application granted granted Critical
Publication of CN117354208B publication Critical patent/CN117354208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种基于CI/CD的CODESYS总线协议栈自动化测试方法及系统,涉及总线测试技术领域。本测试方法包括:研发人员在CI/CD编译部署服务器中部署代码仓库和软件运行环境;研发人员向所述代码仓库提交CODESYS上位机或下位机的相关代码,触发所述CI/CD编译部署服务器开始测试流程;所述测试流程包括:进入准备阶段,进入编译阶段,进入测试阶段和进入打包阶段。本测试系统适用于前述的方法。本申请的一种基于CI/CD的CODESYS总线协议栈自动化测试方法及系统,将CODESYS控制器总线测试与CI/CD流程结合起来,大幅降低了测试工作中,核心问题排查与解决以外的诸如代码编译、程序部署、启动测试等工作的人工操作量,提升测试效率与解决问题的效率。

Description

基于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或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。
最后应说明的是:以上所述仅为本申请的优选实施例而已,并不用于限制本申请,尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (4)

1.一种基于CI/CD的CODESYS总线协议栈自动化测试方法,其特征在于,该方法包括以下步骤:
研发人员在CI/CD编译部署服务器中部署代码仓库和软件运行环境;
研发人员向所述代码仓库提交CODESYS上位机或下位机的相关代码,触发所述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中采集的所述信号输入设备的信号之间的误差在预设的误差阈值范围内。
2.根据权利要求1所述的基于CI/CD的CODESYS总线协议栈自动化测试方法,其特征在于,所述的准备阶段,具体包括:
下位机环境构建的代理程序或工具、上位机工程构建的代理程序或工具从所述代码仓库中拉取最新的代码,并向所述CI/CD编译部署服务器回复操作完成的信号。
3.根据权利要求1所述的基于CI/CD的CODESYS总线协议栈自动化测试方法,其特征在于,所述的打包阶段,具体包括:
所述下位机环境构建的代理程序或工具将根据所述待测控制器回传的命令行测试日志与所述可信控制器回传的测试结果,生成相应的测试报告,并发送至事先设定好的研发人员邮箱中。
4.一种基于CI/CD的CODESYS总线协议栈自动化测试系统,其特征在于,包括总线综合测试模块和CI/CD编译部署服务器;
所述总线综合测试模块配置为:作为提供软硬件测试环境与验证测试结果的物理载体,包括待测设备控制区和可信设备验证区;
所述待测设备控制区以控制器厂商研发的CODESYS控制器为控制中心,通过待测设备支持的通信总线与相应的可信总线设备通信,控制所述可信总线设备的信号输出或采集其信号输入,且该可信总线设备同时接受来自所述CI/CD编译部署服务器的程序部署或测试启动指令;
所述可信设备验证区以第三方可信CODESYS控制器为控制中心,通过某种通信总线与相应的可信总线设备通信,定量控制所述可信总线设备的信号输出及采集其信号输入,且该可信总线设备同时接受来自CI/CD编译部署服务器的程序部署、测试启动指令,并发送测试结果;
所述CI/CD编译部署服务器配置为:负责编译CODESYS控制器的上下位机代码、部署上下位机程序、启动测试以及接收测试结果,并根据所述测试结果生成测试报告;所述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中采集的所述信号输入设备的信号之间的误差在预设的误差阈值范围内。
CN202311275153.2A 2023-09-28 2023-09-28 基于ci/cd的codesys总线协议栈自动化测试方法及系统 Active CN117354208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311275153.2A CN117354208B (zh) 2023-09-28 2023-09-28 基于ci/cd的codesys总线协议栈自动化测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311275153.2A CN117354208B (zh) 2023-09-28 2023-09-28 基于ci/cd的codesys总线协议栈自动化测试方法及系统

Publications (2)

Publication Number Publication Date
CN117354208A CN117354208A (zh) 2024-01-05
CN117354208B true CN117354208B (zh) 2024-04-16

Family

ID=89362340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311275153.2A Active CN117354208B (zh) 2023-09-28 2023-09-28 基于ci/cd的codesys总线协议栈自动化测试方法及系统

Country Status (1)

Country Link
CN (1) CN117354208B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111162972A (zh) * 2019-12-31 2020-05-15 扬州航盛科技有限公司 基于语义分析的车载以太网协议栈自动化测试方法
CN111736572A (zh) * 2020-06-17 2020-10-02 武汉华中数控股份有限公司 一种基于Codesys软件开发系统的数控系统整机硬件测试平台
CN113934640A (zh) * 2021-11-10 2022-01-14 合众新能源汽车有限公司 一种软件自动化测试的方法和系统
US11328065B1 (en) * 2019-07-26 2022-05-10 Stripe Inc. Architectures, systems, and methods for building trusted and secure artifacts
CN114490319A (zh) * 2021-12-21 2022-05-13 博思数采科技发展有限公司 一种分布式持续集成自动化测试方法和系统
CN115757116A (zh) * 2022-11-15 2023-03-07 浪潮云信息技术股份公司 一种DevOps开发模式性能自动化测试方法及系统
CN115858335A (zh) * 2022-10-25 2023-03-28 上海丰蕾信息科技有限公司 一种针对plc程序的回归测试方法、装置及计算机设备
CN115904959A (zh) * 2022-11-11 2023-04-04 大箴(杭州)科技有限公司 软件集成和部署方法以及软件开发管理系统
CN116074397A (zh) * 2022-12-29 2023-05-05 上海新时达机器人有限公司 一种数据共享系统
CN116330263A (zh) * 2021-12-23 2023-06-27 山东新松工业软件研究院股份有限公司 一种基于Codesys的智能工业机器人平台实现方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11328065B1 (en) * 2019-07-26 2022-05-10 Stripe Inc. Architectures, systems, and methods for building trusted and secure artifacts
CN111162972A (zh) * 2019-12-31 2020-05-15 扬州航盛科技有限公司 基于语义分析的车载以太网协议栈自动化测试方法
CN111736572A (zh) * 2020-06-17 2020-10-02 武汉华中数控股份有限公司 一种基于Codesys软件开发系统的数控系统整机硬件测试平台
CN113934640A (zh) * 2021-11-10 2022-01-14 合众新能源汽车有限公司 一种软件自动化测试的方法和系统
CN114490319A (zh) * 2021-12-21 2022-05-13 博思数采科技发展有限公司 一种分布式持续集成自动化测试方法和系统
CN116330263A (zh) * 2021-12-23 2023-06-27 山东新松工业软件研究院股份有限公司 一种基于Codesys的智能工业机器人平台实现方法
CN115858335A (zh) * 2022-10-25 2023-03-28 上海丰蕾信息科技有限公司 一种针对plc程序的回归测试方法、装置及计算机设备
CN115904959A (zh) * 2022-11-11 2023-04-04 大箴(杭州)科技有限公司 软件集成和部署方法以及软件开发管理系统
CN115757116A (zh) * 2022-11-15 2023-03-07 浪潮云信息技术股份公司 一种DevOps开发模式性能自动化测试方法及系统
CN116074397A (zh) * 2022-12-29 2023-05-05 上海新时达机器人有限公司 一种数据共享系统

Also Published As

Publication number Publication date
CN117354208A (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
CN110928556A (zh) 轨道车辆用程序自动烧录方法及装置、测试方法及系统
Yoong et al. Verifying IEC 61499 function blocks using Esterel
CN110689238B (zh) 智能变电站mms信息模拟及对点的实现方法及系统
CN117354208B (zh) 基于ci/cd的codesys总线协议栈自动化测试方法及系统
CN110198222B (zh) 一种配电自动化终端即插即用测试方法及测试主站
CN113742215A (zh) 一种自动配置和调用测试工具进行测试分析的方法及系统
CN110868341A (zh) 就地化保护智能管理单元测试方法及装置
CN115794624A (zh) 智能变电站自动化单装置闭环测试方法及系统
CN111673747B (zh) 机器人代理端的远程测试方法及装置
CN115470141A (zh) 一种故障模拟方法、装置及相关设备
CN115348200A (zh) 一种can通信功能测试方法及测试系统
CN112256554B (zh) 一种基于场景测试用例进行测试的方法及设备
Addouche et al. Combining extended UML models and formal methods to analyze real-time systems
CN114528071A (zh) 一种应用检测方法、装置、设备和存储介质
CN115567422B (zh) 一种基础平台测试方法、测试终端、主机及测试系统
CN113382049B (zh) 一种模块化构建工具mbs的管理系统及装置
CN114116466B (zh) 一种基于操作日志的单元测试方法、装置及介质
CN116700782A (zh) 风机主控程序运行方法、系统、装置、存储介质及处理器
CN115658405A (zh) 一种pfr异常断电循环测试方法、装置、设备、介质及产品
CN117851253A (zh) 基于ecu-test的测试环境搭建方法、系统、介质及装置
CN114510428A (zh) 软件研测自动化测试方法及系统
JP2024524846A (ja) モジュール式の生産設備でアラームを管理するための方法およびシステム
CN117555560A (zh) 一种自动化打包方法、装置、设备和存储介质
CN115481522A (zh) 一种电网智能电子设备在线测试系统及其控制方法
CN114968789A (zh) 基于虚拟环境的整车测试平台

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant