主要内容

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

对于原子子系统,您可以在当前版本中使用SIL/PIL模拟来验证在前一个版本中为该子系统生成的代码。您不必重新生成代码,这节省了测试工具生成时间。您不能为整个模型的测试利用重用生成的代码模型块。

请注意

你必须有一个嵌入式编码器®许可重用从较早版本生成的代码。

重用生成的代码

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

  1. 右键单击模型中的原子子系统并选择测试工具>为“”创建

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

    • 设置选择验证方式Software-in-the-Loop(银)Processor-in-the-Loop(公益诉讼)

    • 选择使用生成的代码创建SIL/PIL块

    • 建立文件夹文本框中,输入包含前面生成的代码的文件夹的完整路径。

  3. 单击OK以使用生成的代码创建测试工具。

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

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

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

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

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

这个例子展示了如何使用在前一个版本中生成的代码来验证当前版本中的模型继续按照预期工作。在当前版本中,您可以使用之前生成的代码创建测试工具,而不必重新生成它。

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

打开燃油控制系统模型

sldemo_fuelsys_ex

创建普通测试线束并选择要记录的信号

1.右键单击fuel_rate_control子系统并选择测试工具>创建“燃料速率控制”.打开“创建测试套件”对话框。

2.改变的名字马具sldemo_fuelsys_harness_normal并点击好吧创建普通模式线束。

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

4.关闭sldemo_fuelsys_harness_normal利用。您不需要显式地保存挽具。

创建SIL测试线束并选择要记录的信号

1.再次右键单击fuel_rate_control子系统并选择测试工具>创建“燃料速率控制”打开“创建测试套件”对话框。

2.改变的名字马具sldemo_fuelsys_harness_sil

3.在高级属性选项卡,将该工具设置为一个SIL工具,用于验证在较早版本中生成的代码。

  1. 改变验证方式Software-in-the-Loop(银)

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

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

4.单击OK创建SIL束。

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

创建一个等价测试用例

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

2.点击>测试文件.右键单击测试文件并将其名称更改为SIL重用

3.删除新的测试用例1

4.突出新测试套件1并点击>等效性测试

5.更改名称新的测试用例1SIL等效测试用例

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(基线)而且fuel_rate_control1 (Sim输出)是零。这个差异意味着两个结果图完全匹配。这种匹配表明使用早期版本中的SIL验证的代码和当前版本中生成的代码产生相同的结果。

另请参阅

||(嵌入式编码)

相关的话题

Baidu
map