在基于模型的测试过程中,处理包含 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