配置并运行SIL仿真
有三种运行SIL和PIL模拟的方法。你可以使用:
顶级模特。
块模型。
您从子系统创建的SIL和PIL块。
顶模仿真
要配置和运行顶级模型SIL或PIL模拟:
在Simulink中®编辑器,打开您的模型。
在应用程序选项卡上,单击银/公益诉讼经理。
在模式部分中,选择SIL/PIL模拟。
在准备节中,设置测试中的系统来
顶级模特
。在银/公益诉讼模式字段,选择其中之一
Software-in-the-Loop(银)
或Processor-in-the-Loop(公益诉讼)
。该选项仅支持ERT、GRT或AUTOSAR系统目标文件。看到模型配置参数:代码生成而且配置AUTOSAR代码生成(AUTOSAR Blockset)用于配置信息。要监视组件信号和状态数据,并比较来自模型和SIL或PIL模拟的值:
对于您想要记录的每个信号:
在Simulink编辑器中,选择信号。
在银/公益诉讼选项卡上,单击监控信号。从图库中选择这些选项:
日志选择信号
选择信号测试点
信号记录
要记录状态数据,请从监控信号画廊,选择状态日志。
如果语言配置参数为
c++
,在代码的映射编辑器,设置数据的可见性为信号、状态和内部数据模型元素分类公共
。
如果正在配置SIL模拟,请指定可移植单词大小选项。然后,您可以在SIL和PIL模式之间无缝切换。在“配置参数”对话框中,选择启用可移植的单词大小复选框。
如需配置:
在运行部分,在停止时间字段,指定模拟时间。
点击运行银/公益诉讼。
在模拟的最后,在结果部分中,点击数据检查查看仿真结果。
请注意
Windows操作系统®操作系统,Windows防火墙可能会阻止SIL或PIL模拟。要允许模拟,请使用Windows安全警报对话框。例如,在Windows 7,点击允许访问。
你不能:
在运行仿真时关闭模型。中断模拟,在命令窗口,按Ctrl + C。
在模拟过程中改变模型。只要不改变模型的行为,您就可以移动块和行。
您可以使用该命令运行顶级模型SIL或PIL模拟sim卡(
。软件支持模型
)sim卡
命令选项SrcWorkspace
对于值“基地”
。
对于PIL模拟,您可以通过连接配置控制代码在目标环境中编译和执行的方式。
使用模型块进行仿真
配置模型block for一个SIL或PIL模拟:
例如,打开你的模型,
SILModelBlock
:openExample (“是/ SILPILVerificationExample”,...supportingFile =“SILModelBlock.slx”)
右击你的模型比如Block,
对抗
。在上下文菜单中,选择块参数(ModelReference),打开“功能块参数”对话框。从模拟模式下拉列表,选择需要的模式,例如:
Software-in-the-loop(银)
。从代码接口下拉列表,指定要测试的代码,例如
模型参考
。点击好吧。软件将模拟模式显示为块标签。
如果您选择
顶级模特
时,软件显示块标签(SIL:顶部)
。如果正在配置SIL模拟,请指定可移植单词大小选项。然后,您可以在SIL和PIL模式之间无缝切换。在“配置参数”对话框中,选择启用可移植的单词大小复选框。
在应用程序选项卡上,单击银/公益诉讼经理。
在模式部分中,选择SIL/PIL模拟。
在准备节中,设置测试中的系统来
模型块在SIL/PIL模式
。在超模模式字段,选择其中之一
正常的
或加速器
。如需配置:
代码执行分析为你的模型块,通过为顶级模型配置执行概要。
在运行部分:
在停止时间字段,指定模拟时间。
如果希望避免在初始构建之后重新构建代码,请单击快速启动。看到防止在多个模拟中更改代码。
点击运行银/公益诉讼。
在模拟的最后,在结果节,单击“数据检查器”可查看仿真结果。
请注意
在Windows操作系统上,Windows防火墙可能会阻止SIL或PIL模拟。要允许模拟,请使用Windows安全警报对话框。例如,在Windows 7,点击允许访问。
对于PIL模拟,您可以通过连接配置控制代码在目标环境中编译和执行的方式。
子系统块仿真
您可以使用以下工作流之一:
仿真软件测试™利用SIL/PIL管理器—如果您有一个包含子系统的模型,您可以使用仿真软件测试和SIL/PIL Manager对子系统生成的代码执行单元测试。该工作流将生成的子系统代码作为从父模型生成的代码的一部分进行测试。工作流的详细信息,请参见单元测试子系统代码与SIL/PIL经理。
如果此工作流不支持子系统,则使用SIL或PIL块工作流作为替代。
SIL或PIL块——从子系统创建SIL或PIL块,然后在提供测试向量或刺激输入的环境或测试线束模型中运行该块。这个工作流从子系统生成并测试新的独立代码。有关更多信息,请参见SIL或PIL块模拟。
对于PIL模拟,您可以通过连接配置控制代码在目标环境中编译和执行的方式。
SIL或PIL块模拟
要从子系统创建SIL或PIL块,并使用该块测试从子系统生成的代码:
从配置参数>代码生成>验证>先进的参数>创建块下拉列表,任选其一
银
或公益诉讼
。如果需要,配置代码执行概要。
点击好吧。
在模型窗口中,右键单击要模拟的子系统。
选择C / c++代码>构建这个子系统,它启动子系统构建过程,为生成的子系统代码创建SIL或PIL块。
将生成的块添加到提供测试向量或刺激输入的环境或测试线束模型中。
使用环境或测试线束模型运行模拟。
请注意
在Windows操作系统上,Windows防火墙可能会阻止SIL或PIL模拟。要允许模拟,请使用Windows安全警报对话框。例如,在Windows 7,点击允许访问。
如果您执行以下操作之一,则不能创建SIL或PIL块:
禁用
CreateSILPILBlock
财产。选择一个代码覆盖工具。
创建块似乎暗了下来。
配置硬件实现设置
对于SIL模拟,必须配置硬件实现设置,以便为开发计算机启用生成的代码编译。这些设置可能与您在为生产硬件构建模型时使用的硬件实现设置不同。使用其中一种方法。
方法 | 细节 |
---|---|
便携式字大小 | 在SIL和PIL模式之间切换,不重新生成代码。对于开发计算机上的SIL模拟和目标平台上的生产部署,使用相同的生成源代码文件。 要配置一个模型以使用可移植的单词大小,请设置:
|
为指定了可移植单词大小的模型生成代码时,代码生成器将在 #endif /* PORTABLE_WORDSIZES */定义PORTABLE_WORDSIZES */ 用于为目标生成代码的模板生成文件不能包含 对于构建代码的模板生成文件和工具链方法,软件指定 有关构建代码的模板makefile和工具链方法的信息,请参见配置工具链(ToolchainInfo)或模板制作文件生成过程。 |
|
考虑目标使用开发计算机无法编译的代码的情况。当您从PIL模式切换到SIL模式并尝试模拟模型时,您会看到编译错误。方法中添加源代码文件,可以尝试解决此问题 |
|
在下列条件之一下,在SIL模拟中执行的生成代码和在生产硬件上执行的生成代码之间的数值结果可能不同:
|
|
测试硬件 | 仅当您希望解决可移植单词大小的限制时,才使用此方法。 设置:
|
生产硬件 | 只有在生产硬件设置与开发计算机体系结构匹配时才使用此方法。 设置:
|
有关测试和生产目标的信息,请参见配置运行时环境选项。
部件的日志信号
SIL和PIL组件输出可与其他模拟模式输出进行观察和比较。如果您想检查内部信号,可以启用顶级模型或内部信号记录模型阻拦SIL或PIL。使用信号日志,您可以:
在SIL/PIL模拟期间收集信号测井输出,例如:
logsout
。记录SIL/PIL组件的内部信号和根级输出。
使用Simulink信号记录选择器管理SIL/PIL信号记录设置。
使用模拟数据检查器来:
在正常、SIL和PIL模拟期间观察流信号。
比较来自正常、SIL和PIL模拟的记录信号。
在SIL或PIL模拟期间,要使信号记录到MATLAB工作空间并将信号流传输到仿真数据检查器:
对于要监控的每个信号:
在Simulink编辑器中,选择信号。
在银/公益诉讼选项卡上,单击监控信号。从图库中选择这些选项:
日志选择信号
选择信号测试点
信号记录
如果语言配置参数为
c++
,在代码的映射编辑器,设置数据的可见性为信号、状态和内部数据模型元素分类公共
。
您可以使用其他方法来检查SIL或PIL组件的内部信号:
手动将信号路由到顶层。
使用全局数据存储访问内部信号:
在组件内部,连接一个数据存储写块到所需的信号。
在组件之外,使用数据存储读取块来访问信号值。
使用mat文件日志。注意:
mat文件日志不支持信号日志。如果启用了信号记录功能,
logsout
生成但不存储在mat文件中。对于PIL,目标环境必须支持mat文件日志记录。
有关更多信息,请参见:
防止在多个模拟中更改代码
使用模型block SIL/PIL或SIL/PIL块与快速重启当你想运行多个SIL或PIL模拟:
改变测试向量(参数集和输入数据)。
未更改生成的代码,也就是说,在初始构建之后没有任何模拟重新生成或重新构建代码。例如,您希望避免初始值更改可能触发的增量代码生成。
为模型block SIL/PIL,你也可以使用这些方法之一:
在测试装备模型中,在“配置参数”对话框中,设置重建来
从来没有
。如果模型块代码接口参数是模型参考
时,软件不重新构建引用的模型代码。(如果代码接口参数是顶级模特
时,软件会忽略重建设置)。创建一个受保护的模型并生成源代码或二进制代码。然后,将受保护的模型插入到您的测试束模型中。使用此方法,您可以验证顶级模型代码(使用独立代码接口)或模型参考代码。
可供选择的跑步方式模型块SIL/PIL,下表总结了初始构建后的代码生成行为。
SIL和PIL进路 | 初始构建后的代码生成行为 | |
---|---|---|
模型块 | 重建测试线束模型的配置参数设置为从来没有 。 |
|
模型块(受保护模型) | 来自受保护模型的源代码。 | 除了特性2之外,您观察到相同的行为。在这种情况下,运行组件代码makefile。组件代码被重新编译并链接以生成新的目标代码。 |
来自受保护模型的二进制代码。 | 观察特征1-4。 |
有关更多信息,请参见:
加快测试
如果您的模型有SIL/PIL块或模型block在SIL/PIL模式,你可以加快SIL/PIL测试:
请注意
SIL和PIL仿真模式并不是为了减少模型仿真时间而设计的。如果您想加快模型的模拟速度,请使用快速加速模式。有关更多信息,请参见什么是加速度?。
函数调用模拟
生成对外部代码(例如驱动程序或遗留代码)进行函数调用的代码。
提供一个行为类似于正常、SIL或PIL模拟中的外部代码的子系统。
例子是配置对AUTOSAR NVRAM管理服务的调用(AUTOSAR Blockset)说明如何从AUTOSAR软件组件配置客户端对基本软件(BSW) NVRAM管理器(NvM)服务接口的调用。在仿真中,Simulink实现了BSW NvM调用仿真软件的功能和预配置函数调用者块。对于最终的系统,您将函数调用存根与运行在AUTOSAR运行时环境(RTE)中的外部BSW函数代码链接起来。
有关更多信息,请参见Simulink函数块和代码生成。