首页 > 其他分享 >PiL测试实战 下篇:PiL阶段的闭环测试

PiL测试实战 下篇:PiL阶段的闭环测试

时间:2022-12-15 15:47:58浏览次数:65  
标签:Plant 下篇 Controller TPT 测试 PiL Model 节点

 


前言

 


上篇我们介绍了单元级软件的PiL测试,对于集成级的PiL测试,其流程和单元阶段基本一致。然而,对于一些带有反馈控制逻辑的集成测试(如电机控制器MCU),PiL阶段会将控制算法(Controller Model)刷入目标板,那如何带着位于PC端的Plant Model一起进行闭环测试呢?

 

图1 PiL阶段的闭环测试流程


下面我会为以一个座舱温度控制(ClimateControl)软件为例,为大家展示基于TPT Fusion-Platform的PiL阶段闭环测试解决方案。

 


ClimateControl软件功能介绍

 


ClimateControl软件可以通过设定温度和当前座舱温度自动的控制汽车座舱的空调、暖风开启/关闭以及风机的转速,从而实现自动调节座舱温度的功能。其中Controller Model为主要控制逻辑的实现。


为了对Controller Model的功能在仿真条件下进行验证,我们搭建了模拟座舱环境的Plant Model,Plant Model通过一些预设条件以及Controller Model的控制来模拟座舱温度的变化。其中Plant Model输出的座舱温度信号会反馈到Controller Model实现反馈控制。

 

 

GIF动图 图2 ClimateControl控制逻辑示意图

 

在进行PiL测试时,我们会将Controller Model进行代码生成、编译并刷入目标板,而Plant Model依然在PC端运行。那么如何实现不同环境下的Controller Model和Plant Model之间的通讯呢?

 


TPT Fusion-Platform

 


Fusion-Platform是TPT提供的控制软件的软件集成平台。它允许将多个软件模块(称为“节点”)相互连接,并将它们作为单个系统执行。Fusion节点一个接一个地处理,共享Fusion平台内存,进行数据交换。


这些节点可以支持dll、UDE、Trace32、XiL API、CAN等类型的平台,因此可以很方便的实现不同环境下的软件间的通讯。

 

  

图3 TPT Fusion-Platform

 


基于TPT Fusion-Platform的强大功能,我们可以很方便的实现ClimateControl软件的闭环测试,即:位于目标板的Controller Model(PLS UDE节点)+位于PC端的Plant Model(dll节点)。

 


测试环境配置

 


首先我们需要在TPT中新建一个Fusion-Platform。并对运行步长、最大运行时间进行简单的配置。

 


Custom Node dll节点配置

 


对于Plant Model,由于需要在PC端运行,我们可以将其转成dll的格式(TPT提供了把模型生成dll的tlc文件,并且可以在TPT端实现从模型到dll的一键生成)。在Fusion-Platform新建一个Custom Node dll节点,并加载dll文件,导入接口信号。

 

 

图4 Custom Node dll节点配置

 

 

图5 Plant Model的接口信息

 


PLS UDE节点配置

 


Controller Model我们需要将其进行代码生成、编译后刷入目标板。TPT可以通过UAD与目标板进行通讯,因此我们需要在Fusion-Platform中再新建一个PLS UDE节点。PLS UDE节点中的接口信号可以通过c文件导入,其他配置过程和我们上篇中的PLS UDE Platform的配置过程完全一致。

 

 

图6 PLS UDE节点配置

 


不同环境间的信号Mapping

 


在我们配置好Fusion-Platform的节点之后,便可以实现不同节点之间的信号交互。但是由于不同节点之间的信号接口数量、接口名称存在不一致的情况,因此我们需要做一些简单的信号Mapping工作:
①仅在一个节点中存在的信号(例如发动机转速信号,仅存在于Plant Model):需在另一个节点中对该信号进行Hidden;
②两个节点中均存在但名称不同的信号(例如反馈信号,Controller Model中为“IntTemp_K”,Plant Model中为“IntTemp_K_”):需要在“External_Name”中设置其外部名称进行Rename。

 

 

图7 信号Mapping

 


闭环测试的实现

 


做好这些配置工作之后,我们便可以在TPT中搭建测试用例,来进行闭环测试了。TPT会同时调起两个不同环境下的节点,实现PiL阶段的闭环测试。


这里我在TPT中搭建了一个简单的测试场景:外界温度-5摄氏度,座舱设定温度18摄氏度。我们可以运行测试用例在TPT中观测各信号的变化情况。

 

 

图8 “-5到18摄氏度”升温测试

 

 

图9 信号变化情况


通过信号窗口可以看出,当座舱温度低于设定温度时,Controller Model会控制暖风机使能信号使能,打开暖风机。与此同时,Plant Model会通过发动机转速、扭矩等信息计算出座舱温度变化并反馈至Controller Model,实现闭环反馈控制。
so...这个方案是不是很完美?感兴趣的小伙伴快来试一试吧。

翻译

搜索

复制

<iframe height="240" width="320"></iframe>

标签:Plant,下篇,Controller,TPT,测试,PiL,Model,节点
From: https://www.cnblogs.com/polelink/p/16985143.html

相关文章

  • [Java SE/Junit] 基于Java的单元测试框架Mockito[转载]
    Mockito是一个模拟测试框架,主要功能是在单元测试中模拟类/对象的行为。1为什么要使用Mockito?Mock可以理解为创建一个虚假的对象,或者说模拟出一个对象.在测试环境中用......
  • 接口测试技巧小结
    参数出入:参数输入错误:账号为空:提示输入xx不准确或当前账号不存在,报错401必要参数缺失:如密码为空:提示输入密码为空,或password密码必须是6~18位字符或者数字组成账号为......
  • 测试基础二之用例设计方法
    等价类划分法定义:在所有测试数据中,具有某种共同特征的数据集合进行划分而又分为:有效等价类:满足需求的数据集合无效等价类不满足需求的数据集合  等......
  • 写给刚入行的测试工程师朋友
    如果你是一名刚刚入行的男性测试工程师,在你的职业生涯可能会经历以下几个阶段: 刚刚进入公司(0-1年):不被认可提升自身能力:业务能力、技术能力、测试能力积累工作经验(2-3年......
  • Pytest测试框架(一):Pytest介绍与安装,Pytest编写规则及pytest.main()的参数
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • Rabbitmq 配置开发 测试不同环境
    1.vhost介绍每一个RabbitMQ服务器都能创建虚拟消息服务器,我们称之为虚拟主机。每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的交换机、队列、绑定等,拥有自己......
  • 电动自行车上架美国站亚马逊UL安全测试
    电动自行车办理UL2849测试亚马逊审核申诉标准,亚马逊要求电动自行车办理UL2849要符合ISO17025资质实验室出具的报告才能成功的上架亚马逊平台进行申诉。电动自行车UL2849流程......
  • 从零入门项目集成Karate和Jacoco,配置测试代码覆盖率
    解决问题在SpringBoot项目中,如何集成Karate测试框架和Jacoco插件。以及编写了feature测试文件,怎么样配置才能看到被测试接口代码的覆盖率。演示版本及说明本次讲解,基于S......
  • 浅析静态应用安全测试
    摘要:根据Forrester的TheStateOfApplicationSecurity,2022一文的预测,应用安全性的缺失将仍然是最常见的外部攻击方式,因此SAST将会在可预见的未来一直被重视。本文分......
  • 程序插桩法是什么?-软件测试知识
    软件测试中经常会提及插桩,程序插桩法是一种被广泛使用的软件测试技术,由J.C.Huang教授提出。简单来说,程序插桩就是往被测试程序中插入测试代码以达到测试目的的方法,插入......