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