主要内容

外部模式模拟利用XCP沟通

在外部模式模拟,您可以调整参数实时目标应用程序和监控信号。使用定制的硬件上运行应用程序,您可以设置和开发计算机或自定义硬件上运行外部模式模拟使用一个XCP通信通道。

对于一个外部模式模拟,您:

  1. 构建目标应用程序在开发计算机上。

  2. 目标应用程序部署到目标硬件。

  3. 连接模型金宝app®到目标应用程序运行在目标硬件。

  4. 开始执行生成的代码在目标硬件。

开发计算机上运行的XCP外部模式模拟

配置和运行一个外部模式仿真使用XCP通信协议。在仿真:

  • 监控信号通过使用一块范围,仪表板,检查员和仿真数据。

  • 使用仪表板块调整参数。

为的XCP配置信号监控和参数调优

  1. 对于这个例子创建一个文件夹。

    mkdirext_mode_xcp_examplecdext_mode_xcp_example

  2. 开放模型,金宝app并创建一个简单的模型,xcpExample这些模块,其中包含:

    • 正弦波

    • 获得

    • 范围

    • 一半计

    • 旋钮

  3. 双击正弦波块。集样品时间到0.1,然后单击好吧

  4. 双击获得块。集获得2,然后单击好吧

  5. 连接正弦波块的获得例如,块和名称的连接测试信号

  6. 连接获得块的范围例如,块和名称的连接输出信号

  7. 配置测试信号日志记录:

    1. 选择测试信号

    2. 信号选项卡,监控部分中,选择测井信号

    如果你不允许信号记录,不能流测试信号检查员仿真数据。

  8. 配置一半计块来监测的价值测试信号:

    1. 双击一半计块。

    2. 在模型编辑器中金宝app,选择测试信号

    3. 在块参数对话框中:

      • 连接块测试信号

      • 最大字段中,输入一个值,例如,1

    4. 点击好吧

  9. 配置旋钮块调整振幅参数的正弦波布洛克:

    1. 双击旋钮块。

    2. 在模型编辑器中金宝app,选择正弦波块。

    3. 在块参数对话框中:

      • 连接的块振幅参数的正弦波块。

      • 最低最大例如,字段,输入值分别为0.1和1。

    4. 点击好吧

  10. 保存模型xcpExample

指定的硬件和模型做准备

  1. 应用程序选项卡上的仿真软件将来金宝app发布的设置硬件上运行部分中,点击在定制的硬件上运行。在定制的硬件上运行弹出对话框,点击完成

  2. 硬件部分,指定目标文件系统。对于这个示例,使用默认的,grt.tlc。如果你有嵌入式编码器®,您可以指定ert.tlc

  3. 准备画廊,下模型配置,点击硬件设置。配置参数对话框打开时,显示硬件实现设置由系统确定目标文件。

    1. 解算器窗格中,指定固定步类型字段。然后,在解算器的细节指定的0.1固定的大小字段。

    2. 代码生成>优化窗格中,设置默认参数的行为可调

    3. 代码生成>接口窗格中,选择外部模式复选框。然后设置传输层的XCP TCP / IP。选择的XCP TCP / IP自动指定ext_xcpMEX-file名字,选择自动分配静态内存复选框,使最大持续时间。对于这个示例,使用的默认值最大持续时间

    4. 如果系统目标文件ert.tlc,在代码生成>模板窗格中选择主程序生成一个例子复选框,并设置目标操作系统BareBoardExample,代码生成器使用外部模式的记录api抽象层中可用matlabroot\工具箱\编码器\ xcp \ src \ \ ext_mode \ \ ext_mode.h包括目标创建一个示例,展示了如何为裸板提供的XCP外部模式目标连接不运行一个操作系统。

    5. 点击好吧应用更改并关闭对话框。

  4. 保存模型。

构建并运行目标应用程序

在硬件上运行部分:

  1. 指定一个默认值模拟停止时间停止时间例如,字段中,指定你的价值

  2. 点击监视和优化播放图标开始这个过程。软件:

    1. 构建目标应用程序文件,包括可执行文件。信号的调试符号是创建可执行文件的一部分或在一个单独的文件,根据代码生成的配置。了解更多关于不同的配置代码生成,明白了方法从模型生成的代码构建模型金宝app

    2. 部署目标应用程序作为一个单独的开发计算机上的过程。

    3. 连接模型到目标应用金宝app程序。

    4. 开始生成的模型代码。

    单独执行的步骤,点击下面的按钮监视和优化小箭头指向下面>一步一步的命令,在这个顺序:

    1. 构建监测

    2. 部署

    3. 连接

    4. 开始

监控和调优参数的信号

您可以监视测试信号通过:

  • 范围块——双击。

  • 仿真数据检查员检查按钮——点击模拟数据。仿真数据检查器打开时,选择测试信号复选框,显示数据流。

  • Half-Gauge块。

改变正弦波的振幅,旋转的指针旋钮块到所需的值。

此表描述了更优化的方法可调在模拟块参数。

方法 细节

模型数据编辑器

通过模型来优化参数数据编辑器:

  1. 硬件模型编辑器的选项卡,在金宝app准备部分中,点击调整参数打开模型数据编辑器。

  2. 如果你想同时更新多个可调参数,准备上节中,切换保持更新

  3. 参数模型数据编辑器的选项卡,在价值列,指定新值的可调参数。

  4. 切换了保持更新或者点击更新所有参数(Ctrl + D)。金宝app模型同时下载新值到目标应用程序。

    如果保持更新是关闭的,那么之后你指定一个新值,仿真软件下载新值到目标应用程序。金宝app

有关更多信息,请参见模型数据编辑器

块参数对话框

通过块参数调优参数对话框:

  1. 对于每个块,你想更新:

    1. 双击,打开参数对话框。

    2. 在参数字段,指定新的参数值。

    3. 点击应用好吧

  2. 如果保持更新,切换了吗保持更新或者点击更新所有参数(Ctrl + D)。金宝app模型同时下载新值到目标应用程序。

    如果保持更新你点击后,然后立即吗应用好吧、仿金宝app真软件下载新的块值到目标应用程序。

MATLAB®工作空间

如果块参数MATLAB工作空间变量:

  1. 在命令窗口中,将新值分配给变量。

  2. 硬件模型编辑器的选项卡,在金宝app准备部分中,点击更新所有参数(Ctrl + D)。金宝app仿真软件下载新值到目标应用程序。

有关更多信息,请参见创建和编辑变量

有关参数调优的更多信息和生成的代码,看看外部模式模拟与TCP / IP或串行通信在生成的代码创建可调校准参数(嵌入式编码)

如果你的模型包含Stateflow®活动图表,您可以查看状态。有关更多信息,请参见动画Stateflow图表(Stateflow)

停止目标应用程序

停止执行并断开目标应用程序停止时间,在吗在硬件上运行部分的硬件选项卡上,单击停止按钮形状的黑色小广场内部更大的灰色的广场

如果您想断开目标应用程序从没有停止代码执行仿真软件,点击金宝app停止小箭头指向下面>一步一步的命令>断开连接

触发信号监测XCP外部模式模拟

XCP外部模式模拟,您可以配置一个触发器,开始上传信号监测的目标应用程序的数据模型。金宝app

  1. 在本地文件夹中创建一个简单的模型。

  2. 在模型编辑器中金宝app,配置这些信号记录每个信号,然后单击右键选择日志选择信号:

    • test_signal

    • test_carrier

    • test_output

    • cmp_output

  3. 应用程序选项卡上的仿真软件将来金宝app发布的设置硬件上运行部分中,点击在定制的硬件上运行。在定制的硬件上运行弹出对话框,点击完成

  4. 准备画廊,下模型配置,点击硬件设置

  5. 解算器窗格中,在类型字段中,指定固定步

  6. 代码生成>接口窗格中,选择外部模式复选框。

  7. 传输层的XCP TCP / IP,它指定ext_xcpMEX-file名字

  8. 点击好吧。然后保存模型。

  9. 打开外部信号与触发对话框中,从准备画廊,下信号监测与跟踪,点击控制面板

  10. 配置部分中,点击触发信号外部触发信号,打开对话框。

    通过此对话框,您可以选择信号监测和配置触发目标应用程序上传的数据。对于这个示例,使用默认设置。

    • 选择所有复选框被选中时,显示一个对话框X的每一行选择列。您可以监视所有记录信号在模拟。

    • 被设置为手册——外部模式控制面板提供了手动控制的数据上传,例如,手臂触发按钮。

    • 当连接到目标复选框被选中时,仿真软件连接到目标应用程序时,触发器是武装。金宝app

  11. 点击好吧关闭外部信号与触发对话框,然后单击好吧关闭外部模式控制面板。

  12. 在模型编辑器中金宝app去硬件选项卡。

  13. 停止时间场的在硬件上运行节中,指定你的价值,例如,

  14. 保存模型。

  15. 点击监视和优化播放图标开始这个过程。软件:

    1. 构建目标应用程序。

    2. 部署目标应用程序作为独立的开发计算机上的过程。

    3. 连接模型到目标应用金宝app程序。

    4. 开始生成的模型代码。

视图显示范围,双击ScopeAScopeB

监控信号仿真数据检查,审查结果部分中,点击数据检查

从外部模式控制面板,您可以暂停或恢复信号记录和监控。在连接和触发部分中,点击取消触发手臂触发分别。

停止目标应用程序的执行和断开目标环境的仿真软件,点击金宝app停止实时代码

信息信号监测和触发选项,看看控制面板的XCP外部模式对话框的XCP外部触发信号

从命令行运行XCP外部模式模拟

您可以使用命令来运行XCP外部模式模拟。获取并设置模型参数的值,使用get_paramset_param命令。

要运行这些命令,您必须有一个开放和目标应用程序运行仿真软件模型。金宝app

  1. 设置模型模拟模式外部模式。

    set_param (gcs,“SimulationMode”,“外部”);

  2. 动态仿真模块连接金宝app到目标应用程序。

    set_param (gcs,“SimulationCommand”,“连接”)

  3. 运行生成的模型代码。

    set_param (gcs,“SimulationCommand”,“开始”);

  4. 调整参数,改变其工作空间变量值通过一个命令行。例如,如果一个街区值被指定为一个参数金宝appSimulink.Parameter对象,分配的新值价值财产。

    myParamObj。价值= 5.23;

  5. 下载新值到目标应用程序,更新模型。

    set_param (gcs,“SimulationCommand”,“更新”);

  6. 停止目标应用程序,断开目标环境的仿真软件。金宝app

    set_param (gcs,“SimulationCommand”,“停止”);

    断开目标应用程序而不停止执行金宝app的仿真软件生成的代码,使用这个命令:

    set_param (gcs,“SimulationCommand”,“断开”);

set_param使用的命令“SimulationCommand”参数是异步的。如果你从一个脚本运行命令先后,每个命令开始没有等待前面的命令完成。检查每个命令完成时,在脚本中使用get_param命令“SimulationStatus”论点。例如,对于步骤1 - 3,在脚本中指定这些命令:

set_param (gcs,“SimulationMode”,“外部”);set_param (gcs,“SimulationCommand”,“连接”);isExternalSimulationActive = false;~ isExternalSimulationActive simStatus = get_param (gcs,“SimulationStatus”);isExternalSimulationActive = strcmp (simStatus,“外部”);结束set_param (gcs,“SimulationCommand”,“开始”);

有关更多信息,请参见通过编程的方式运行模拟

诊断产生的查看器显示错误消息get_paramset_param命令。

这个表给参数,您可以使用get_paramset_param命令。

的XCP外部模式命令行参数

参数和值 对话框相同 描述
ExtModeArmWhenConnect
,
外部触发信号:当连接到目标复选框 手臂触发器一旦金宝app仿真软件编码器™软件连接到目标。
ExtModeBatchMode
,
外部模式控制面板:批量下载复选框 启用或禁用下载参数以批处理模式。
ExtModeConnected
,
外部模式控制面板:连接/断开连接按钮 显示的状态与目标应用程序的连接。
ExtModeEnableFloating
,
外部模式控制面板:支持数据上传复选框 启用或禁用触发器的武装并取消当建立连接与浮动范围。
ExtModeLogAll
,
外部触发信号:选择所有复选框 上传可用信号从目标主机。
ExtModeSendContiguousSamples
,
外部触发信号:发送多个连续的样本相同的数据包复选框 指定XCP采集模式为流媒体信号仿真软件。金宝app目标应用程序从多个步骤在数据包发送样品。ExtModeTrigDuration确定样品发送的数据包的数量。
ExtModeTrigDelay
整数(0)
外部触发信号:延迟文本字段 指定的时间(表示在基准利率的步骤),过后一个触发器之间发生和数据收集的开始。
ExtModeTrigDirection
特征向量- - - - - -不断上升的,下降,要么
外部触发信号:方向菜单 指定的方向信号必须旅行穿过阈值。
ExtModeTrigDuration
整数(1000年)
外部触发信号:持续时间文本字段

指定的基准利率步骤外部触发事件后模式日志数据。

如果ExtModeSendContiguousSamples,样品的数量发送数据包的目标应用仿真软件等于:金宝app

ExtModeTrigDuration / n
在哪里n=(基准利率)/(采样率)

n= 1,样品发送的数据包数量ExtModeTrigDuration价值。subrates的多重速率的模型,在数据包发送的样品数量是四舍五入到最近的整数。目标应用程序丢弃缓冲样品没有送到仿真软件。金宝app

ExtModeTrigHoldOff
整数(0)
外部触发信号:不接近文本字段 指定基准利率之间的步骤终止和触发事件时触发重新武装。
ExtModeTrigLevel
整数(0)
外部触发信号:水平文本字段 指定阈值触发信号必须交叉火触发器。
ExtModeTrigMode
特征向量- - - - - -正常的,一次通过
外部触发信号:模式菜单 指定每个触发器事件触发后自动重新武装,还是只有一个缓冲的数据收集每次触发装备。
ExtModeTrigSignalBlockPath
特征向量
外部触发信号:在信号的选择然后单击视图,选择信号触发信号按钮。 指定的路径块包含输出端口提供触发信号。
ExtModeTrigSignalOutputPortIndex
整数
外部触发信号:在信号的选择然后单击视图,选择信号触发信号按钮。 指定的索引指定的块触发信号输出端口ExtModeTrigSignalBlockPath
ExtModeTrigType
特征向量- - - - - -手册,信号
外部触发信号:菜单 指定是否开始记录数据时触发武装或者指定触发信号满足触发条件。

内存分配通信缓冲区在XCP外部模式模拟

你不需要手动确定XCP-based外部内存需求模式与模型模拟,例如,大量的数据流模型或内存目标设备上运行。金宝app

设置传输层的XCP TCP / IP在连续的XCP使这些配置参数:

  • 自动分配静态内存(ExtModeAutomaticAllocSize)

  • 最大持续时间(ExtModeMaxTrigDuration),默认是10基础概率的步骤。

软件使用模型信息,包括最大持续时间值,分配内存:

  • 内部数据结构使用的XCP堆栈

  • 存储的XCP包

如果你清楚自动分配静态内存复选框:

  • 内存分配给内部数据结构是一个默认值。

  • 您可以使用静态内存缓冲区大小(ExtModeStaticAllocSize)字段指定分配的内存XCP包。默认值是1000000个字节。

如果分配足够的内存,那么外部模式模拟问题的内存不足错误当试图保留内存内部数据结构或信号流。在这种情况下,重新选择自动分配静态内存复选框来启用软件来计算所需的内存。

目标应用程序的参数

您可以运行你的目标应用程序可选参数。你可以通过你的目标应用程序的可选参数通过定制发射器实现。

论点 描述
- w

指定目标应用程序进入和保持在等待状态,直到接收一条消息从仿真软件。金宝app

如果你不指定- w立即,目标应用程序执行模型代码。模型代码运行参数值与您建立模型的时候。

- tf时间

覆盖模型参数StopTime

指定时间:

  • 秒,如果PurelyIntegerCode被设置为“关闭”

  • 如果基准利率步骤PurelyIntegerCode被设置为“上”

- tf正指定无限期模型运行时执行代码模型。

基于主机的外部模式模拟,您可以指定额外的rtiostream(嵌入式编码)参数。

论点 描述

- verbose水平

指定冗长水平:

  • 0,没有信息

  • 1——详细信息

- port数量

的XCP TCP / IP传输层,指定TCP / IP服务器的端口号。利用256年和65535年之间的一个整数值。默认是17725。

在连续的XCP传输层,指定串行端口ID。例如:

在Windows上®,“COM1”或1COM1,“COM2”或2COM2,等等。

在Linux上®,“/ dev / ttyS0”,等等。

波特价值

在连续的XCP传输层,指定波特值:1200,2400,4800,9600,14400,19200,38400,57600(默认),或115200。

的XCP外部模式的局限性

这个表描述的限制适用于外部模式模拟使用XCP沟通。

功能 细节

改变模型结构参数更新

你不能改变:

  • 的状态数、输入或输出的一块

  • 样品时间和样本的数量乘以

  • 连续系统的集成算法

  • 模型的名称或一个街区

如果你改变模型结构参数的更新,您必须重建目标应用程序。

你可以改变分子和分母多项式的参数转移Fcn,离散传递Fcn,离散滤波器如果州的数量并没有改变。

你不能改变零中的条目状态方程,Zero-Pole,离散Zero-Pole块中指定的或计算参数,,A, B, C和D矩阵得到zero-pole状态转换。

状态方程块,如果指定的矩阵规范化实现可控,然后改变A, B, C, D矩阵保存这个实现和矩阵的尺寸是允许的。

如果模型框图目金宝app标应用程序不匹配,Simulink建立一个错误说明校验和不匹配。校验和考虑上面的模型,而不是引用的模型。重建目标应用程序,使用更新后的框图。

信号值显示

信号值的图形显示在模拟不支持。金宝app例如,您不能使用数据显示在模拟菜单项悬停时显示值标签,当点击切换值标签,显示值的选定的端口。有关更多信息,请参见显示信号值在模型图

数据归档

数据归档特性的外部模式控制面板不受支持。金宝app您可以使用模拟数据检查员来收集和导出数据。

信号覆盖日志设置

如果你使用信号记录选择器覆盖信号日志设置,控制来覆盖大量毁灭限制数据点不支持设置。金宝app

子系统信号记录

外部模式模拟、信号记录发生在回应事件在目标硬件。目前,仅支持日志事件是一个新的样品时间。金宝app有些子系统启用或禁用控制信号。对于这些子系统,软件记录信号值即使子系统的控制信号不启用。

例如,如果在一个信号启用子系统块配置日志,日志的软件信号值即使子系统的控制信号是不大于0。在这种情况下,记录值控制信号是信号时的值大于零。

更多信息关于这个限制适用的子系统,明白了金宝app仿真软件子系统的语义

编译器调试符号格式

你的工具链必须在其中一个生成调试信息格式:

  • PDB

全局变量

信号、参数和状态必须指定为全局变量。目标存储位置变量的内存必须躺在0 - 4294967295范围。

参数结构

你不能调整参数结构。

纯整数代码

支持纯整数代码。金宝app对于代码生成,如果PurelyIntegerCode“上”,指定FixedStep的分辨率大于或等于1微秒。例如,指定1.000001,而不是1.0000001。

如果你不指定- tffinalTime在执行命令,目标应用程序运行生成的模型代码无限期,忽略StopTime

如果您指定- tffinalTime在执行命令:

  • finalTime价值代表了基准利率的步骤,而不是秒。

  • 的最大价值finalTime在蜱虫,MAX_int32_T

适应信号

不支持上传适应信号。金宝app

编译器支持金宝app

lcc-win64不支持。金宝app

地址的粒度

目标硬件不支持使用字地址。金宝app

便携式文字大小

word-addressable生产目标硬件时,生成一个基于主机的目标应用程序通过使用便携式字大小不支持。金宝app生产目标硬件必须支持8位、16位和32位的本地数据类型。金宝app

范围

如果你的模型使用范围块和记录在一个外部模式模拟的数据量非常大,模型可能慢下来。金宝app而不是范围块,您可以使用模拟数据检查员或等效块从仪表板图书馆。有关更多信息,请参见决定如何可视化仿真数据

范围浮动范围块,和范围查看器

一些信号不支持的数据类型。金宝app模拟产生一个警告。

浮动范围块和范围查看器 你不能使用浮动范围块和观众范围监控信号在外部引用的模型模拟模式。监控模型引用信号,使信号记录和使用模拟数据检查员。

作用域引用模型

在模型层次结构,如果模型运行在顶部外部模式,范围在被引用的模型不显示。监控信号在一个参考模型,使信号记录和使用模拟数据检查员。

范围显示块连接到仿真软件的信息块金宝app

在外部模式模拟,范围显示块连接到仿真软件不提供显示消息块。金宝app

可视化信息,使用模拟数据检查员或仪表板块。

非零仿真开始时间

不支持非零仿真开始时间。金宝app使用默认值解算器>开始时间,0.0

中间步骤的价值观

一些仿真软金宝app件模块可以生成多个值模拟时间步。例如:

为每个时间步在外部模式模拟,仿真软件上传等目标应用程序只有最后一个值的街区。金宝app金宝app仿真软件不上传步骤中生成的中间值。

服务代码接口

使用的XCP通信为生成的代码执行调优参数和监测信号在目标环境中不支持代码生成的组件模型配置一个ERT-based系统目标文件和服务代码接口。金宝app

File-scoped数据

File-scoped数据不支持。金宝app例如,数据项的应用内置的自定义存储类FileScope。模拟产生一个警告。

更多的信息FileScope存储类,看选择存储类数据表示控制生成的代码(嵌入式编码)

行代码生成

生成的代码行格式不受支持。金宝app

并发执行

在Windows和Linux电脑,并发执行是支持金宝app的。

Mac电脑,使用原生线程并发执行的例子是不受支持的。金宝app如果外部模式允许任务并发执行的目标复选框被选中,您不能构建目标应用程序,除非你使用一个支持并发执行的目标硬件支持包外部模式模拟。金宝app

在Windows电脑,在运行时,目标应用程序是量子化的基础样本时间最近的多个系统的定时器中断间隔(通常是15.625毫秒)。抽样subrates预期基本采样率的倍数。在仿真数据记录时间戳检查员(SDI)对应于模拟倍而不是墙上时钟倍。作为一个例子,这个表展示了仿真软件模型的时间步,一个基本示例10 ms和subrate样本时间20毫秒。金宝app

基准利率 Subrate
一步 墙上时钟时间(女士) 记录时间戳(女士) 一步 墙上时钟时间(女士) 记录时间戳(女士)
0 0 0 0 0 0
1 15.625 10
2 31.250 20. 1 31.250 20.
3 46.875 30.
4 62.500 40 2 62.500 40
模拟数据导出

您可以导出记录信号和顶级模特输出数据到MATLAB工作区:

  • 记录信号数据,选择信号记录复选框。

  • 顶级模特输出数据,选择输出复选框,从格式列表中,选择数据集

如果你想导出数据到垫文件而不是MATLAB工作区,也选择日志数据集的数据文件复选框。

不支持出口的模拟状态数据。金宝app

保存不支持仿真输出作为一个单一的对象。金宝app模拟产生一个警告。

相关的话题

外部网站