Main Content

本页采用了机器翻译。点击此处可查看英文原文。

使用 SIL/PIL 验证早期版本生成的代码

对于原子子系统,您可以使用当前版本中的 SIL/PIL 仿真来验证以前版本中为该子系统生成的代码。您不必重新生成代码,从而节省了测试框架生成时间。您不能重复使用为整个模型或 Model 模块的测试框架生成的代码。

注意

您必须拥有 Embedded Coder® 许可证才能重用早期版本生成的代码。

重复使用生成的代码

在早期版本中,如果您创建了生成代码的测试框架并使用 SIL/PIL 对其进行了验证,则可以在当前版本中重用该代码,而不是重新生成它。要重用生成的代码,您必须知道包含该代码的文件夹的位置。重用生成的代码并使用 SIL/PIL 进行验证的步骤如下:

  1. 右键单击模型中的原子子系统并选择 测试框架 > 为 '<subsystem_name>' 创建

  2. 在“创建测试框架”对话框的“高级属性”选项卡中:

    • 将选择验证模式设置为软件在环(SIL)处理器在环(PIL)

    • 选择使用现有生成代码创建 SIL/PIL 模块

    • 编译文件夹文本框中,输入包含之前生成的代码的文件夹的完整路径。

  3. 单击“确定”以使用生成的代码创建测试框架。

  4. 为不使用生成代码的模型创建另一个普通或 SIL/PIL 模式测试框架。

  5. 创建测试用例并运行测试。

  6. 分析测试结果并验证结果是否与早期版本中相同代码产生的结果相匹配。

要以编程方式使用通过 SIL/PIL 子系统验证的先前生成的代码,请使用 sltest.harness.createsltest.harness.setExistingBuildFolder 属性来指定生成代码的位置。

使用早期版本生成的代码对子系统进行 SIL 验证

此示例显示如何使用以前版本中生成的代码来验证当前版本中的模型是否继续按预期工作。在当前版本中,您可以使用以前生成的代码创建测试框架,而不必重新生成它。

本例中的模型是 sldemo_fuelsys_ex,它代表汽油发动机的燃料控制系统。在测系统是 fuel_rate_control 子系统。当前版本中的普通模式仿真与早期版本中的 SIL 模式仿真进行了比较。

打开燃料控制系统模型

sldemo_fuelsys_ex

创建正常测试框架并选择要记录的信号

1.右键单击 fuel_rate_control 子系统并选择测试框架 > 为 'fuel_rate_control' 创建。将打开“创建测试框架”对话框。

2.将框架的名称更改为 sldemo_fuelsys_harness_normal,然后点击确定以创建普通模式框架。

3.选择测试框架中退出子系统的信号。暂停在省略号上以打开操作栏并选择启用数据日志记录

4.关闭 sldemo_fuelsys_harness_normal 框架。您不需要明确保存框架。

创建 SIL 测试框架并选择要记录的信号

1.再次右键单击 fuel_rate_control 子系统,然后选择测试框架 > 为 'fuel_rate_control' 创建,打开“创建测试框架”对话框。

2.将框架的名称更改为 sldemo_fuelsys_harness_sil

3.在高级属性选项卡上,将框架设置为已验证早期版本中生成的代码的 SIL 框架。

  1. 验证模式更改为 Software-in-the-Loop (SIL)

  2. 选择使用现有生成的代码创建 SIL/PIL 模块

  3. Build folder 中,输入 fuel_rate_control_ert_rtw,这是包含使用早期版本中的 SIL 子系统验证的代码的文件夹的名称。

4.单击“确定”以创建 SIL 框架。

5.选择测试框架中退出子系统的信号。暂停在省略号上以打开操作栏并选择启用数据日志记录

创建等效性测试用例

1.使用 sltestmgr 打开测试管理器。

2.单击新建 > 测试文件。右键单击测试文件并将其名称更改为 SIL reuse

3.删除 New Test Case 1

4.突出显示 New Test Suite 1 并点击新建 > 测试用例 > 等效性测试

5.将 New Test Case 1 的名称更改为 SIL equivalence test case

6.在仿真 1在测系统部分中,

  1. 模型设置为 sldemo_fuelsys

  2. 测试框架 > 框架下,选择 sldemo_fuelsys_harness_normal

  3. 仿真设置覆盖下,选择停止时间并将其设置为 10。

7.对于仿真 2

  1. 模型设置为 sldemo_fuelsys

  2. 测试框架 > 框架下,选择 sldemo_fuelsys_harness_sil

  3. 仿真设置覆盖下,将发布保留为当前。设置停止时间并将其设置为 10。

指定框架输入

对于这两个仿真,在输入部分中,点击添加,然后在添加输入对话框的文件字段中输入 harnessInputs.mat。点击地图输入,然后点击添加来设置输入。

运行测试并查看输出和结果

单击运行以运行等效性检验。在结果和工件窗格中,展开等效性准则结果以查看输出。

上图显示了两个测试框架的输出。下图显示 fuel_rate_control:1 (Baseline)fuel_rate_control:1 (Sim Output)之间的差异为零。这个差异意味着两个结果图完全匹配。这种匹配表明使用早期版本的 SIL 验证的代码和当前版本中生成的代码产生相同的结果。

另请参阅

| | (Embedded Coder)

相关主题