主要内容

同步测试装置和模型之间的变更

测试工具提供了一个隔离的环境来测试设计更改。您可以同步从测试集束到主要模型的更改,或者从主要模型到测试集束的更改。同步包括这些模型元素:

  • 被测试的组件

  • 块的参数

  • 可选地,模型或测试线束配置集

  • 可选地,模型工作区参数

您不需要同步基本工作区数据,因为它对测试工具和主要模型都是可用的。子系统模型测试总是与它们的底层模型同步。

为一个新的测试工具设置同步

当您创建一个测试套件时,您指定测试套件中的更改何时与主模型同步。同步可以自动进行,也可以手动进行。如果您计划在测试工具中尝试不同的组件设计,请使用手动同步来避免覆盖主模型中的组件。根据测试组件的类型(CUT),可以从不同的同步类型中进行选择。这些选项可在“创建测试工具”对话框中使用,也可使用SynchronizationMode的属性sltest.harness.create

对于所有同步类型,您可以模拟主模型,即使测试工具是打开的。您还可以为模型组件创建控制,而不是当前被测组件及其嵌套子系统。但是,您不能同时打开多个线束,因此新创建的线束不会自动打开。

表中的锁定信息表明当测试束打开时,您是否可以更改模型、束或模型或束中的CUT。

同步类型 描述 可用性 当线束打开时,模型、切割和线束锁定

同步挽具打开和关闭

当测试集束打开时,测试集束组件和参数从模型同步到测试集束。当测试束关闭时,相同的元素从束同步到模型。

可用于:

  • 子系统,包括状态流程图和MATLAB函数块

  • 对于子系统引用块,只有块参数是同步的

  • 模型块

  • 功能块

不适用于:

  • 方框图

  • 银/公益诉讼利用

  • 子系统模型利用

所有类型的cut的主要模型和挽具都是解锁的。

模型中的子系统cut被锁定。挽具中的子系统cut被解锁,

同步线束打开

当线束打开时,线束组件和参数从模型同步到测试线束。

可用于:

  • 方框图

  • 子系统,包括状态流®图表和MATLAB函数块

  • 对于子系统引用块,只有块参数是同步的

  • 模型参考块

  • 功能块

不适用于:

  • 银/公益诉讼利用

  • 子系统模型利用

所有类型的cut的主要模型和挽具都是解锁的。

模型中的子系统cut和线束被锁定。

仅在推送和重建期间同步

单击时同步推动改变重新利用.Push同步从测试工具到模型的更改。重建将同步从模型到测试装置的更改。

可用于:

  • 子系统,包括状态流程图和MATLAB函数块

  • 模型参考块

  • 功能块

  • 子系统模型,总是只在推送和重新构建时同步。

不适用于:

  • 方框图

  • 银/公益诉讼利用

  • 库中的组件

主要模型、集束以及模型和集束中的所有类型的cut(包括子系统)都是解锁的。

仅在重建期间同步

仅当单击时进行同步重新利用.从模型到测试工具的更改是同步的。

可用于:

  • 方框图

  • 模型参考块

  • SIL/PIL验证模式组件

不适用于:

  • 子系统,包括状态流程图和MATLAB函数块

  • 功能块

  • 库中的组件

模型中的主要模型、管束和所有类型的cut都是解锁的。除SIL/PIL验证模式组件被锁定和屏蔽外,挽具中的所有类型的cut都是解锁的。

请注意

如果您在SIL或PIL模式下为模型块时,测试线束中的块模式分别变为SIL或PIL。当您关闭测试装置时,此模式不会更新到主模型。

保持SIL或PIL块保真度

如果在测试集束中使用软件在环(SIL)或处理器在环(PIL)块,请考虑将测试集束设置为每次打开时重新构建。有规律地重新构建测试工具,将SIL/PIL块引用的生成代码作为主要模型的反映。

更改现有测试工具的同步化

更改测试装置同步模式:

  1. 关闭测试装置。

  2. 在主模型中,单击块或Simulink上的线束徽章金宝app®画布。

  3. 在测试工具缩略图预览中,单击利用操作图标并选择属性

  4. 改变同步模式在属性对话框中。

如果使用命令行,请设置SynchronizationMode财产与sltest.harness.set

同步配置集和模型工作区数据

要在测试工具和主要模型之间同步配置集和工作空间参数,请选择在重建时更新配置参数和模型工作区数据在线束创建或线束属性对话框中。

检查未同步的组件差异

如果您的测试套件没有同步更改,您可以检查测试套件和主模型之间未同步的组件差异。检查非同步差异在以下情况下是有用的:

  • 您正在测试工具中进行试探性的设计更改,并希望检查主要模型组件是否被覆盖。

  • 您已经对主模型进行了设计更改,并希望检查必须重新构建哪些测试控制。

从测试工具窗口中,选择检查工具检查差异。如果组件不同,您可以将更改从测试集束推到主模型,或者从主模型重新构建测试集束。另请参阅sltest.harness.check函数。

在检查非同步差异时,请考虑以下条件:

  • sltest.harness.check在测试线束与主模型的比较中,仅包含框图、块参数和掩模参数。端口选项、已编译属性、隐藏参数和模型块数据日志参数不包括在比较中。

  • 如果组件包含Simscape™解算器配置块,检查结果总是显示测试集和主模型之间的组件不同。的解算器配置块会受到组件外部的Simscape块的影响,因此在测试集和主模型之间总是不同的。

重新构建测试工具

重新构建一个测试工具,以反映主模型的最新状态。在测试工具中,选择重新利用.除了更新测试下的组件和块参数之外,此操作还重新构建线束转换子系统。如果测试套件没有转换子系统,那么重新构建会添加它们。

重建可能会断开信号线。例如,如果在主模型中改变了信号名称,那么测试线束中的信号线就可以断开。如果线路断开,请将信号线重新连接到被测组件或转换子系统。如果指定为SIL/PIL子系统使用已生成的代码sltest.harness.createsltest.harness.set,挽具重建使用该代码,而不是重新生成它。

有关更多信息,请参见创建测试装置并选择属性而且sltest.harness.rebuild

将变更从测试装置推向模型

在测试装置中更改系统之后,您可以将更改推入主模型。在测试工具中,选择推动改变.这个过程会覆盖主模型中的组件。

检查组件并将参数推至主模型

这个例子展示了一个基本的工作流:更新测试集中的参数,检查测试集和主模型之间的同步,以及将参数更改从测试集推送到主模型。

此示例还包括编程步骤。

打开模型sltestCar.该模型包括变速器换挡控制器算法和简化的动力系统和车辆动力学。

open_system (“sltestCar”);

更新测试带中的掩码参数

1.打开测试套具。上的徽章shift_logic图表,并选择ShiftLogic_InportHarness测试工具。只有当您推送到主模型或从主模型重新构建时,测试工具才会被设置为同步。

要从命令行打开测试工具,请使用:

sltest.harness.open (“sltestCar / shift_logic”“ShiftLogic_InportHarness”);

2.双击shift_logic子系统。为换挡前延迟(滴答),输入4.点击好吧

要从命令行更改值,使用:

shiftLogicMask = 金宝appSimulink.Mask.get(“ShiftLogic_InportHarness / shift_logic”);maskParamValue = shiftLogicMask.Parameters.Value;shiftLogicMask.Parameters.Value =“4”%设置为新参数值

检查测试套和主模型之间的同步

在命令行上运行sltest.harness.check函数。

[comparison,details] = sltest.harness.check(“sltestCar / shift_logic”...“ShiftLogic_InportHarness”);

结果表明,由于掩模参数的更新,被测组件在测试束中是不同的。

比较
比较=逻辑0
细节
原因:“被控制的组件的内容和主模型中组件的内容是相同的,但它们在块或掩码参数方面有所不同。”

将参数更新到主模型

1.在测试装备上,在利用选项卡上,单击推动改变

2.在主模型中,双击shift_logic子系统。更新参数值。

要使用命令行推送更改,请使用:

sltest.harness.push (“sltestCar / shift_logic”“ShiftLogic_InportHarness”

重新检查测试套和主模型之间的同步

在命令行上,更新主要模型并测试工具。然后,运行sltest.harness.check函数。

set_param (“sltestCar”“SimulationCommand”“更新”);set_param (“ShiftLogic_InportHarness”“SimulationCommand”“更新”);
[comparison,details] = sltest.harness.check(“sltestCar / shift_logic”...“ShiftLogic_InportHarness”);

结果表明,测试线束与主模型的被测部件相同。

比较
比较=逻辑1
细节
details = struct with fields: overall: 1 contents: 1原因:“被控制的组件和主模型中的组件的校验和是相同的。”
close_system (“sltestCar”, 0);

另请参阅

||

相关的话题