实时灵活记录模型中Data Store Memory的信号

在基于模型的测试过程中,处理包含 Data Store Memory(DSM)模块(特别是在 Stateflow Chart 子系统中)的模型时,工程师常面临以下挑战:

  • 测试时难以灵活调整 DSM变量的值,尤其是stateflow chart中的此类型变量
  • 测试对象中孤立元素处理繁琐

针对以上问题,MQTester新增了可以记录测试对象中使用的Data Store Memory变量的功能

该功能可以记录、修改和分析模型运行中的关键DSM信号,显著提升复杂系统测试与调试效率。

灵活功能配置

通过设置 MQTester_GUIcommonProper 文件中的参数 PropGUIDefault.testbed.DSMemoryLog,可选择不同的模式,满足多样化测试需求:

0: 禁用 Data Store Memory 记录功能;

1: 记录全部 —— 记录测试对象中所有Data Store Memory 信号(全选);

2: 聚焦 Chart —— 记录测试对象中位于 Stateflow Chart 内部的所有 Data Store Memory 信号;

3: 自定义选择 —— 弹出选择窗口,供用户自由勾选需要记录的特定 Data Store Memory信号。

图1 功能具体设置

具体操作说明

记录与生成变量 (Data Store Memory或变量)

MQTester自动计算测试对象(所选子系统)中可以记录信号的Data Store Memory模块或者变量。

在生成测试环境过程中,系统将自动弹出“设置记录信号”窗口,可以选择需要记录的信号,MQTester将为所选信号设置相应属性或者根据需要在Base Workspace自动生成对应Simulink.Signal变量并设置其属性,便于后续在测试中进行修改和参数化。

注意:若Data Store Write模块关联的是Bus信号,则无法被记录。

图2 “信号记录设置”窗口

设置了信号记录属性的Data Store Memory 模块及变量所使用的信号名称直接体现在测试用例中,支持直接进行期望值赋值或者对测试对象中没有Data Store Write模块的信号直接赋值,解决DSM信号难调试及评估的问题。

注意(信号名称):

  • 对于矢量信号,所使用的信号名与Data Store Memory 有所不同,需要为矢量中的每个元素分配信号名
  • 需要增加Simulink.Signal变量的Data Store模块,如果同名的变量已经存在,则会将所需的Simulink.Signal变量及其对应的Data Store模块的名字修改为新名字

图3 信号直接显示在测试用例中

示例说明:此演示模型中DSM10模块是二维Vector变量,在测试用例中用DSM10_1、DSM10_2表示。

图4 DSM10模块参数说明

记录在Base Workspace 中的 Simulink.Signal 变量,若其属性值(如数据类型、值等)与原始模型中的定义不一致,可能在重新生成测试环境时引发冲突报错

图5 引发冲突报错

为此,MQTester增加了帮助菜单栏下的“删除BsWs中冗余变量” 命令,此命令会删除记录在Base Workspace 中的与SLDD所包含的同名变量,解决冲突问题。

图6 “删除BsWs中冗余变量” 命令

智能处理信号 (针对 Data Store Read)

当测试对象(所选子系统)中仅存在 Data Store Read 模块,且其对应的 Data Store Memory 模块位于父级(上层)系统时:

MQTester会在测试环境目录

(…/MQTTestData/additionalDataStoreMW)下自动生成相应的Data Store Write模块,此时Data Store Read被视为输入信号,可以任意改变其值,无需进行额外记录

图7 测试环境中自动生成对应模块

选择整个模型作为测试对象时:

作为输入信号的Data Store Read模块所对应的Data Store Memory模块会被删除,避免与产生的作为全局变量的Simulink.signal变量的属性冲突。

图8 红圈标识对应被删除的DSM模块

深度支持 Stateflow Chart

Stateflow 中的变量会按照相同的方法进行处理,MQT会自动分析chart中是否包含DSM变量的赋值语句,从而决定是添加输入信号还是将DSM列入可记录的信号列表中。

在测试对象Chart中,MQTester自动分析其包含的DSM 变量赋值语句,智能判定信号方向:

  • DSM3、DSM7、DSM_Sig3、DSM11自动作为输入信号添加。
  • DSM8、DSM9、DSM_Sig4由MQT自动将其列入可记录的信号列表中,其中DSM8是Bus信号,无法被记录。

图9 Stateflow中自动记录DSM信号

MQT通过直接记录 Stateflow 内部的中间变量,可以实时监控修改关键变量,无需追溯至上层系统的输出信号,从而加速故障定位,提高测试效率。

借助MQTester记录测试对象中使用的Data Store Memory变量的功能旨在高效记录和分析模型在运行过程中的信号数据,简化了数据收集和修改的过程,尤其适用于复杂系统的仿真测试,能有效辅助工程师:

  • 深入理解模型行为逻辑
  • 快速定位并排查运行故障
  • 全面提升模型调试效率与性能分析能力

联系我们

浙江求索软件科技有限公司

手机: +86 150 108 23652

微信: yuyongke1797448900

E-mail: yuyongke@model-soft.com 

URL: www.model-soft.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注