您可以在您的类似应用环境测试系统。你开始用在开发计算机上仿真模型,然后用软件在环(SIL)和处理器在环(PIL)模拟。实时测试执行独立的目标计算机上的应用程序,可以连接到物理系统。实时测试可包括时序,信号接口,系统响应,和生产硬件的影响。
实时测试包括:
快速原型,在与工厂硬件相连的独立目标上测试系统。您根据需求和模型结果验证实时测试。使用快速原型结果,您可以更改您的模型和更新您的需求,之后您可以在独立的目标上重新测试。
使用硬件在环(HIL)金宝app®实时™,它测试一个通过了几个验证阶段的系统,通常是SIL和PIL模拟。
这个示例工作流描述了创建和执行实时测试的主要步骤:
根据需求创建验证模型的测试用例。运行模型模拟测试并保存基线数据。
设置实时目标计算机。
为实时测试创建测试工具,或者重用模型模拟测试工具。在测试序列或测试评估块,验证
语句评估实时执行。在测试工具中,使用目标和宿主作用域在执行过程中显示信号。
在测试管理器中,创建实时测试用例。
对于实时测试用例,配置目标设置、输入、回调和迭代。添加基线或等效标准。
执行实时测试。
在测试管理器中分析结果。报告结果。
基线或等价比较可能失败,因为从实时目标计算机丢失数据或时移数据。当调查实时测试失败时,寻找时间偏移或丢失的数据点。
您不能覆盖从包含测试序列块。生成的代码测试序列块包含硬编码的示例时间。超过目标计算机的采样时间会产生意想不到的结果。
您不能记录输出端口或状态。
您的目标计算机必须具有要使用的文件系统验证
语句和测试用例日志记录。
你的目标计算机必须运行金宝app实时仿真软件.
实时测试往往需要更长的时间比比较模型的测试,特别是如果你执行了一套涵盖几种情况的实时测试。执行实时测试之前,完全基于需求使用桌面仿真测试。使用桌面仿真结果:
调试您的模型或进行满足需求的设计更改。
调试测试序列。使用测试序列编辑器的调试功能。看到调试测试序列.
更新您的需求并添加相应的测试用例。
实时测试需要一台独立的目标计算机。金宝appSimulink Test™仅支持目标金宝app计算机运行金宝app实时仿真软件.欲了解更多信息,请参见:
目标计算机设置(金宝appSimulink的实时)
Simulink Real-Time中金宝app的故障排除(金宝appSimulink的实时)
实时应用程序需要特定的配置参数和信号性能。
实时测试用例需要一个实时系统的目标文件。在该模型中或线束的配置参数,对应用程序选项卡下的代码生成,单击金宝appSimulink的编码器.在C代码选项卡,确认系统目标文件为slrealtime.tlc
.如果按钮输出部分是自定义目标,点击该按钮并确认自定义的目标是slrealtime.tlc
.如果不是,请选择选择系统目标文件并选择slrealtime.tlc
生成系统目标代码。
如果您的模型需要不同的系统目标文件,您可以使用测试用例或测试套件回调来设置参数。在执行实时测试之后,使用一个cleanup回调将参数设置为其原始设置。例如,这个回调打开sltestProjectorController
模型,并设置系统目标文件参数为slrealtime.tlc
.
open_system(“sltestProjectorController”);set_param (“sltestProjectorController”,...'SystemTargetFile',“slrealtime.tlc”);
模型必须使用非数据集
.设置数据格式。
打开配置参数。
选择数据导入/导出窗格。
选择格式.
为实时测试配置感兴趣的信号:
在“数据导入/导出”窗格的“配置参数”中启用信号记录。
连接信号范围块的金宝app实时仿真软件块库。设定范围类型财产文件
.
使用信号属性来命名每个感兴趣的信号。未命名信号可以被分配一个默认名称,这个默认名称与基线或等价信号的名称不匹配。
在这个示例测试中,记录的信号:
有明确的名称。
使用文件范围来的信号数据返回给测试管理器。
使用目标范围在目标计算机上显示数据。
要在实时执行期间在目标计算机上显示信号,请将目标范围添加到您的测试工具中。中显示信号金宝app实时仿真软件资源管理器,添加主机作用域。这个测试装置包括目标和宿主范围,用于信号可视化。看到范围.
使用测试管理器来创建实时测试用例。
在Simuli金宝appnk工具条中,在应用程序选项卡下的模型验证、验证和测试,选择金宝app仿真软件测试.
点击金宝app仿真软件测试经理.
在Test Manager中,选择新>实时测试.
您可以选择基线、等效或模拟实时测试。对于模拟测试类型,验证
语句作为测试结果中的通过/失败标准。对于等价和基线测试类型,等价或基线标准也可作为通过/不通过标准。
基线-将目标计算机返回的信号数据与测试用例中的基线进行比较。为了将实时执行结果与模型仿真结果进行比较,将模型基线结果添加到实时测试用例中,并对信号应用可选的公差。
等价- 从一个模拟和实时测试,或两个实时测试比较信号数据。要运行目标计算机上的实时测试,然后比较结果到模型模拟:
选择目标模拟1.
清晰的目标模拟2.
测试用例显示两个模拟部分,模拟1和模拟2.
比较两个实时测试是相似的,除了选择目标上的两个模拟。在等价的标准部分中,您可以从模拟中捕获记录的信号,并为通过/失败分析应用公差。
模拟:评估仅使用所述测试结果验证
语句和实时执行。如果没有验证
声明失败,并且实时测试执行,测试的情况下通过。
使用此选项,指定要如何加载实时应用。实时应用程序从您的模型或测试工具构建的。您可以从加载应用程序:
模型- 选择模型
如果您是第一次运行实时测试,或者您的模型在上次实时执行后发生了更改。模型
通常需要花费最长的时间,因为它包括模型构建和下载。模型
从模型加载应用程序,构建实时应用程序,将其下载到目标计算机,并在目标计算机上执行。
目标应用程序- 选择目标应用程序
将目标应用程序从主机发送到目标计算机,并执行该应用程序。目标应用程序
如果您想在多个目标上加载已经构建的应用程序,则可以使用。
目标计算机- 此选项执行已加载的实时目标计算机上的应用程序。您可以更新测试用例的参数和使用执行目标计算机
.
这其中的步骤和回调表总结了执行每个选项。
测试用例执行步骤(从开始到结束) | 加载应用程序 | ||
---|---|---|---|
模型 | 目标应用程序 | 目标计算机 | |
执行预先加载回调 | 是的 | 是的 | 是的 |
加载Simu金宝applink模型 | 是的 | 没有 | 没有 |
执行post-load回调 | 是的 | 没有 | 没有 |
两组信号的场景编辑器 | 是的 | 没有 | 没有 |
从模型构建实时应用程序 | 是的 | 没有 | 没有 |
下载实时应用程序到目标计算机 | 是的 | 是的 | 没有 |
设置运行时参数 | 是的 | 是的 | 是的 |
运行测试序列场景 | 是的 | 没有 | 没有 |
执行预启动实时回调 | 是的 | 是的 | 是的 |
执行实时应用 | 是的 | 是的 | 是的 |
执行清理回调 | 是的 | 是的 | 是的 |
选择要从哪个模型来生成实时应用。
如果您使用的测试工具来生成实时应用程序,选择测试工具。
对于实时测试,可以覆盖模拟停止时间,这在调试实时测试失败时很有用。考虑一个60秒的测试,它返回一个验证
由于模型中的错误,语句在15秒内失败。在调试模型之后,执行实时测试以验证修复。您可以覆盖停止时间,以20秒的速度终止执行,这减少了验证修复程序所需的时间。
实时测试提供了开始实时应用在应用程序在目标计算机上执行之前执行命令的回调。实时测试回调与模型加载、构建、下载和执行步骤一起按顺序执行。回调和步骤执行取决于测试用例如何加载应用程序。
序列 | 加载应用程序: 模型 |
加载应用程序: 目标应用程序 |
加载应用程序: 目标计算机 |
---|---|---|---|
第一次执行 | 预加载回调 |
预加载回调 |
预加载回调 |
Post-load回调 |
- - - - - - | - - - - - - | |
预启动实时回调 |
预启动实时回调 |
预启动实时回调 |
|
执行最后一个 | 清理回调 |
清理回调 |
清理回调 |
您可以在实时测试中执行迭代。迭代对于执行遍历参数值或信号编辑器场景的实时测试很方便。结果按迭代分组出现。有关设置迭代的更多信息,请参见测试迭代.您可以创建:
属性中定义多个参数集的表式迭代参数覆盖测试用例的一部分。下迭代>表迭代,点击自动生成并选择参数设置.
从信号编辑器的情况提出的迭代 - 如果你的模型或测试工具使用的信号输入编辑,下方迭代表迭代表,点击自动生成并选择信号编辑场景.如果使用Signal Editor场景,请从模型加载应用程序。
来自测试序列场景的表式迭代——如果您的测试工具使用测试序列块场景,您可以在测试管理器中为每个场景创建一个迭代。以下迭代表,点击自动生成并选择测试序列情形.如果您使用Test Sequence场景,请从模型加载应用程序。
脚本化迭代——使用脚本来迭代模型变量或参数。例如,在模型中sltestRealTimeOscillatorTestExample
,SettlingTest
线束使用测试序列块来用于使用所述参数的振荡器系统产生的方波测试信号频率
.
在测试文件中SettlingTestCases
中,实时测试脚本迭代覆盖从5赫兹的频率扫描到35赫兹。该脚本迭代的值频率
当测试序列块。
%%遍历频率以确定最佳振荡器设置创建参数集频率= 5.0:1.0:35.0;为i_iter = 1:长度(频率)创建迭代对象testItr = sltestiteration ();%设定参数setVariable(testItr,“名字”,“频率”,“源”,...“测试序列”,“价值”频率(i_iter));%注册迭代addIteration(sltest_testCase,testItr);结束
验证
语句除了基线和等价的信号进行比较,则可以使用评价实时测试执行验证
语句。一个验证
语句评估逻辑表达式并将结果返回给Test Manager。使用验证
在一个测试序列或测试评估块,或者如果你有一个statflow®许可证,在状态流程图中。看到评估模型仿真验证使用语句.