使用TCP/IP或串行通信的外部模式模拟
设置并运行使用TCP/IP或串行(RS-232)通信通道的外部模式模拟。
创建并配置一个简单的模型。
构建目标可执行文件。
运行目标应用程序。
调优参数。
本例使用GRT目标,不需要外部硬件。生成的可执行文件运行如下:
在承载Simulink的开发计算机上金宝app®而且金宝app仿真软件编码器™.
作为一个独立于MATLAB的过程®和仿真软金宝app件。
创建和配置模型
在本部分示例中,您将创建一个简单的模型,ex_extModeExample
.您还可以创建一个名为ext_mode_example
来存储模型和生成的可执行文件。
创建文件夹和模型:
在MATLAB命令行中输入:
mkdir ext_mode_example
使
ext_mode_example
您的工作文件夹:cd ext_mode_example
在Simulink中创建一个模型金宝app正弦波块为输入信号,二获得方块平行,两个范围块。一定要贴上标签获得而且范围如图所示。
定义并分配两个MATLAB工作空间变量,
一个
而且B
:A = 2;B = 3;
打开增益块A并设置其获得变量的参数。
一个
.打开增益块B并设置其获得变量的参数。
B
.当构建目标应用程序并以外部模式连接到Simulink时,您可以将新的增益值下载到正在执行的目标应用程序。金宝app为此,您可以为工作区变量分配新值
一个
而且B
,或在块参数对话框中编辑该值。有关更多信息,请参见调整参数.验证模型的操作。打开Scope块并运行模型。当
A = 2
而且B = 3
,输出如下所示。将模型另存为
ex_extModeExample
.
构建目标可执行文件
设置外部模式目标应用程序所需的模型和代码生成参数。然后,生成代码并构建目标应用程序。
从应用程序选项卡中的Simuli金宝appnk工具条中的在硬件上运行的设置部分中,点击在自定义硬件上运行.
在硬件节,从系统目标文件说明列表中,选择
通用实时目标(grt.tlc)
.在准备部分中,点击硬件设置.打开“配置参数”对话框,显示硬件实现由系统目标文件确定的设置。
在解算器面板:
在类型字段中,选择
固定步
.在解算器字段中,选择
离散(无连续状态)
.点击解算器的细节.在固定的大小字段中,指定
0.1
.(否则,在生成代码时金宝app仿真软件编码器构建过程产生一个警告并提供一个值。)点击应用.
在数据导入/导出窗格中,清除时间而且输出复选框。在本例中,数据没有记录到工作区或mat文件。点击应用.
在代码生成>优化窗格,检查一下默认参数行为设置为
可调
.如果要更改,请单击应用.在代码生成>接口窗格,在数据交换接口部分中,选择外部模式.
在外部模式配置节,确保为默认值
tcpip
为传输层参数。外部模式支持通过TCP/IP金宝app、串行和自定义传输协议进行通信。的MEX-file名字指定实现主机-目标通信的mex文件的名称。TCP/IP的默认值是
ext_comm
方法提供的一个mex文件金宝app仿真软件编码器软件您可以通过提供其他文件来覆盖这个默认值。如果需要支持其他传输层,请参见金宝app为TCP/IP或串行外部模式通信创建传输层.的MEX-file参数字段允许您指定参数,例如TCP/IP服务器端口号,以传递给外部接口程序。这些参数特定于您正在使用的外部接口。有关设置这些参数的信息,请参见mexo - file TCP/IP传输可选参数而且mexo - file串行传输可选参数.
本例使用默认参数。离开MEX-file参数字段空白。
的静态内存分配复选框控制如何为目标中的外部模式通信缓冲区分配内存。对于本例,不要选中复选框。有关更多信息,请参见控制目标中通信缓冲区的内存分配.
点击应用保存外部模式设置。
保存模型。
选择代码生成窗格。确保只生成代码清除。
要生成代码并创建目标应用程序,请在模型窗口中按一下Ctrl + B.或者,在硬件选项卡,在在硬件上运行部分中,点击监视和调优.然后,在分步命令,点击为监控而构建.
软件创建
ex_extModeExample
工作文件夹中的可执行文件。
运行目标应用程序
现在运行ex_extModeExample
目标可执行文件,并使用Simulink作为运行的目标金宝app应用程序的交互式前端。可执行文件在工作文件夹中。运行目标应用程序并在Simulink和目标之间建立通信。金宝app
请注意
一个外部模式程序ex_extModeExample
是基于主机的可执行文件。它的执行与实时操作系统(RTOS)或定时计时器中断无关,也不是实时运行的。程序只是尽可能快地运行,它计算的时间单位是模拟的时间单位,与程序外部的时间不对应。
运行目标应用程序:
在硬件选项卡,在在硬件上运行部分:
在停止时间字段中,指定
正
,这将使模型运行,直到目标应用程序接收到来自Simulink的停止消息金宝app点击监视和调优.然后,在分步命令,点击部署.
目标应用程序开始执行,并进入等待状态。
打开模型中的Scope块。在开始模型执行之前,信号在作用域上是不可见的。
在硬件选项卡,在在硬件上运行部分中,点击监视和调优.然后,在分步命令,点击连接.此操作在Simulink和目标应用程序之间发起握手。金宝app当Simu金宝applink与目标连接时,将连接按钮更改为断开连接.
在在硬件上运行部分中,点击,它开始执行生成的模型代码。模型中的两个作用域显示增益块A和B的输出。
您已经在Simulink和正在运行的目标应用程序之间建立了通信。金宝app您现在可以在Simulink中优化块参数,并观察参数变化的影响。金宝app
调整参数
下表描述了如何进行调优可调模拟过程中的块参数。
方法 | 细节 |
---|---|
模型数据编辑器 |
要通过模型数据编辑器调优参数:
有关更多信息,请参见模型数据编辑器. |
块参数对话框 |
通过块参数对话框调优参数:
|
MATLAB的工作区 |
如果块参数为MATLAB工作空间变量:
有关更多信息,请参见创建和编辑变量. |
的采样时间不能更改正弦波在模拟过程中阻塞。块采样时间是模型结构定义的一部分,也是生成代码的一部分。因此,如果要更改块的采样时间,必须停止外部模式模拟,重置块的采样时间,并重新构建可执行文件。
外部模式模拟期间的块参数可调性取决于生成的代码表示块参数的方式。
例如,在获得一个块对话框中,无法更改表达式一个
在获得参数。相反,您必须更改变量的值一个
在基本工作区中。表达式不能更改,因为生成的代码不会在内存中为获得参数。相反,代码创建了一个字段一个
在结构中:
/*参数(自动存储)*/ struct P_ex_extModeExample_T_ {real_T A;/*变量:A */ real_T B;/*变量:B */ real_T SineWave_Amp;/*表达式:1 */ real_T SineWave_Bias;/*表达式:0 */ real_T SineWave_Freq;/*表达式:1 */ real_T SineWave_Phase;/*表达式:0 */};
生成的代码算法在表示块的代码中使用该字段获得一个.在本例中,是全局结构变量ex_extModeExample_P
使用类型P_ex_extModeExample_T_
:
ex_extModeExample_B。获得一个= ex_extModeExample_P.A * rtb_SineWave;
当你改变的值一个
在基本工作空间中,模拟将新值下载到字段一个
在目标应用程序。
中的表达式可以更改正弦波在模拟过程中阻塞参数,因为生成的代码在全局结构中创建一个字段ex_extModeExample_P
表示块中的每个参数。在块对话框中更改表达式时,模拟首先计算新表达式。然后模拟将结果数值下载到目标应用程序中的相应结构字段。
停止目标应用程序
要同时断开Simulink与主机/目标通信并结束目标应用程金宝app序的执行,请在硬件选项卡,在在硬件上运行部分中,点击停止.
控制目标中通信缓冲区的内存分配
如果您选择代码生成>接口>静态内存分配复选框(对于GRT和ERT目标),代码生成器为仅使用静态内存分配的外部模式生成代码(“无malloc”代码)。选择静态内存分配使静态内存缓冲区大小参数。使用此参数指定外部模式静态内存缓冲区的大小。缺省值是1,000,000字节。如果为程序输入的值太小,则外部模式模拟在尝试分配比指定的内存更多的内存时将发出内存不足错误。的值静态内存缓冲区大小字段并重新生成代码。
要确定要分配多少内存,请在目标上启用详细模式(通过包含选择= " -DVERBOSE "
在使
命令行)。当它执行时,外部模式显示它尝试分配的内存量,以及每次尝试分配时可用的内存量。如果分配失败,则可以使用此控制台日志确定所需的值静态内存缓冲区大小字段。
TCP/IP或串行外部模式控制面板
外部模式控制面板为TCP/IP或串行外部模式操作提供控制,包括:
要打开“外部模式控制面板”对话框,请在硬件选项卡,在准备部分中,点击控制面板.
连接、启动和停止
外部模式控制面板执行与上相同的连接/断开和启动/停止功能硬件选项卡上的Simuli金宝appnk工具条(参见TCP/IP或串行外部模式仿真的图形控件摘要).
单击连接按钮将模型连接到等待或运行的目标应用程序。当您连接时,按钮更改为断开连接按钮。断开连接断开模型与目标环境的连接,但不会停止在目标环境中运行的实时代码。
单击开始实时代码按钮命令目标开始运行实时代码。当实时代码在目标环境中运行时,按钮更改为停止实时代码按钮。停止实时代码停止目标应用程序执行,并断开模型与目标环境的连接。
将目标应用信号数据上传到主机
通过外部模式控制面板,可以触发和取消数据上传到主机。上载数据的目标可以是作用域块、显示块、到工作区块或中列出的另一个块或子系统与外部模式兼容的块和子系统.
的手臂触发而且取消触发按钮提供手动控制数据上传到兼容的块或子系统,浮动作用域除外。(对于浮动作用域,使用浮动范围部分的外部模式控制面板。)
要触发数据上传到兼容的块或子系统,请单击手臂触发按钮。按钮变为取消触发.
如需取消数据上传,请单击取消触发按钮。按钮返回手臂触发.
可手动触发数据上传或自动触发数据上传。若要配置数据上传的信号和触发器,请参见配置目标应用程序信号数据的主机监控.
外部模式兼容块的子集,包括Scope、Time Scope和To Workspace,允许您将上传的数据记录到磁盘。若要配置数据归档,请参见配置目标应用程序信号数据的主机存档.
的浮动范围部分的外部模式控制面板控制数据何时上传到浮动作用域块以及上传多长时间。当在外部模式下使用时,浮动作用域:
不会出现在“外部信号和触发”对话框中。
不要将数据记录到外部模式存档。
金宝app仅支持手动触发。
的浮动范围节包含以下参数:
启用数据上传选项,其功能为手臂触发浮动作用域按钮。当目标断开连接时,该选项控制在连接浮动作用域时是否武装触发器。当连接目标时,该选项作为一个切换按钮来武装或取消触发器。
若要触发数据上传到浮动作用域,请选择启用数据上传.
取消向浮动作用域上传数据,清除启用数据上传.
持续时间编辑字段,该字段指定外部模式在触发事件后记录浮动作用域数据的基本速率步骤数。缺省情况下,为
汽车
,这将导致使用“外部信号和触发”对话框中设置的持续时间值。默认的持续时间值是1000个基本速率步骤。
下载参数到目标应用程序
的批量下载外部模式控制面板上的选项启用或禁用批量参数更改。
缺省情况下,批量下载功能处于关闭状态。如果禁用批量下载,当单击好吧或应用,通过编辑块参数对话框直接对块参数所做的更改被发送到目标。当你执行更新图,发送对MATLAB工作区变量的更改。
如果您选择批量下载,下载按钮已启用。直到你点击下载,对块参数的更改存储在本地。当你点击下载时,更改将在一次传输中发送。
当参数更改等待批量下载时,外部模式控制面板将显示消息参数更改挂起…
在右边下载按钮。在Simulink引擎接收到新参数已安装到目标系统的参数向量的通知之前,此消息金宝app一直可见。
控件显示了外部模式控制面板批量下载选项激活,参数更改挂起。
配置目标应用程序信号数据的主机监控
触发器在信号数据上传中的作用
在外部模式下,将目标应用信号数据上传到主机依赖于a触发.触发器是开始上传数据时必须满足的一组条件。触发器可以武装,也可以不武装。
当触发器被武装时,软件检查允许数据上传开始的触发条件。
如果触发器未武装,则软件不会检查触发器条件,数据上传无法开始。
触发器可以在主机连接到目标时自动启动,也可以通过单击按钮手动启动手臂触发按钮在外部模式控制面板上。
当触发器处于武装状态且满足触发条件时,触发器触发并开始上传数据。
当数据收集完成后,触发器事件将完成,数据上传将停止。然后扳机可以重新武装,或保持非武装,直到你点击手臂触发按钮。
若要选择要上传的目标应用程序信号并配置触发上传的方式,请参见配置信号数据上传.
配置信号数据上传
单击信号与触发“外部模式控制面板”按钮将打开“外部信号与触发”对话框。
“外部信号和触发”对话框显示了模型中支持外部模式信号上传的块和子系统的列表。金宝app有关哪些类型的块是外部模式兼容的信息,请参见与外部模式兼容的块和子系统.
在“外部信号及触发”对话框中,您可以选择从目标系统收集并以外部模式查看的信号。您也可以选择触发信号,在满足一定信号条件的情况下触发数据上传,并定义触发条件。
默认触发选项
上图为“外部信号与触发”对话框的默认设置。外部信号和触发对话框的默认操作简化了对目标应用程序的监视。如果使用默认设置,则不需要预配置信号和触发器。启动目标应用程序并将Simulink引擎连接到它。金宝app选择外部模式兼容的块,并武装触发器。信号上传在连接到目标应用程序时立即开始。
触发器选项的默认配置为:
选择所有
:在源
:手动模式
:正常持续时间
: 1000延迟
: 0手臂连接到目标时
:在
选择要上传的信号
模型中的外部模式兼容块将出现在信号的选择外部信号和触发对话框列表。您可以使用此列表选择要查看的信号。在选择列,一个X
为每个选定的块显示。
的选择所有复选框选中所有信号。默认情况下,选择所有被选中。
如果选择所有已清除时,您可以使用在而且从选项。若要选择一个信号,请单击其列表项并选择在选择。若要清除信号,请单击其列表项并选择从选择。
的清除所有按钮清除所有信号。
配置触发选项
如在触发器在信号数据上传中的作用,信号数据上传依赖于触发器。触发器定义了开始上传时必须满足的条件。此外,必须启动触发器才能开始上传数据。当触发器被武装并且满足触发条件时,触发器触发并开始上传。当数据收集完成后,触发器事件将完成,数据上传将停止。
若要控制何时以及如何从目标系统收集(上传)信号数据,请配置以下内容触发选项在“外部信号与触发”对话框中。
源:
手册
或信号
.控制是否有按钮或信号触发数据上传。选择
手册
对象的外部模式手臂触发按钮作为开始上传数据的触发器。当你点击手臂触发,开始上传数据。选择
信号
指示外部模式使用触发信号作为开始上传数据的触发器。当触发信号满足触发条件(即信号在指定方向上越过触发电平)时,a触发事件发生。中指定触发条件触发信号部分。)如果触发点是武装,外部模式监视触发事件的发生。当触发事件发生时,数据开始上传。模式:
正常的
或只有一次的
.控制触发器在触发器事件完成后是否重新启动。在
正常的
模式,外部模式在每个触发事件后自动重新武装触发器。触发器触发时开始下一次数据上传。在
只有一次的
模式,外部模式只收集一个缓冲区的数据每次你武装触发器。有关的更多信息模式设置,请参阅配置目标应用程序信号数据的主机存档.
持续时间:指定外部模式在触发事件后上传数据的基本速率步数(默认为1000)。例如,如果持续时间设置为1000,模型的基础(最快)速率为1秒:
对于以基本速率(1秒(1.0 Hz))采样的信号,外部模式在触发事件期间收集1000个连续样本。
对于2秒采样的信号(0.5 Hz),外部模式在触发事件期间收集500个样本。
延迟:数据采集的延迟时间。延迟表示从触发事件到开始数据收集之间所经过的时间。延迟用基本速率步长表示。它可以为正或负(默认为0)。负延迟对应于预触发。当延迟为负时,将收集并上传触发事件之前的数据。
手臂连接到目标时:选中或清除。按钮或信号是否触发数据上传(定义为源),则必须激活触发器,才能开始上载资料。
如果您选择此选项,则连接到目标臂上的触发器。
如果触发源是
手册
,数据立即开始上传。如果触发源是
信号
,立即开始监测触发信号。当触发信号满足触发条件(定义在触发信号部分)。
如果你清除了手臂连接到目标时,手动按下扳机手臂触发按钮在外部模式控制面板上。
在外部模式下进行模拟时,模型中的每个速率都会在目标上创建缓冲区。缓冲区中的每个条目都足够大,可以容纳该速率下每个信号在一个时间步长的所有数据(时间+数据+标识信号的外部模式索引)。循环缓冲区中的条目数量由外部模式触发器决定持续时间参数(ExtModeTrigDuration
).分配在目标上用于缓冲信号的内存与持续时间以及信号上传的数量。的持续时间还提供在外部模式下触发事件后使用日志数据的基准速率步数的指示。
的持续时间Value指定在每个数据缓冲区中要收集的连续数据点的数量。你应输入持续时间值等于需要收集的连续采样点的数量,而不是依赖于一系列缓冲区来实现连续。如果输入的值小于采样点总数,则在将值从数据缓冲区传输到MATLAB工作空间所花费的时间内可能会丢失采样点。Simu金宝applink软件仅在一个缓冲区内保持点连续性。在缓冲区之间,由于传输时间的原因,一些样本可能会被省略。
的持续时间价值会影响最后限制数据点的价值范围而且到工作空间块。块保存到MATLAB工作空间的样本点的数量是两个值中较小的。若要设置块保存的样本点数量,请清除最后限制数据点.然后,用持续时间指定保存的样本点的数量。
选择触发信号
你可以指定一个信号作为触发信号。要选择触发信号,请从源菜单中的触发选项部分中,选择信号
.属性中的参数触发信号部分。然后,选择一个信号信号的选择列表,并单击触发信号按钮。
当你选择一个信号作为触发器时,一个T
出现在触发的列信号的选择列表。在下一个图中,是一个范围
信号就是导火索。B范围
也已选择以供查看,如X
在选择列。
选择触发信号后,可以使用触发信号节定义触发条件并设置触发信号港口而且元素参数。
设置触发条件
使用触发信号部分的“外部信号和触发”对话框中设置触发条件和属性。触发信号参数仅当触发参数时启用源设置为信号
在触发选项部分。
默认情况下,指定触发器块的第一个输入端口的任何元素都可以触发触发器(即端口1,任何元素)。属性可以修改此行为港口而且元素中的值触发信号部分。的港口字段接受一个数字或关键字最后的
.的元素字段接受一个数字或关键字任何
或最后的
.
在触发信号节中,还定义触发事件发生的条件。
方向:
不断上升的
,下降
,或要么
.当信号超过阈值时,信号必须传播的方向。默认为不断上升的
.水平:表示信号在指定方向上必须通过的阈值,以触发触发器。缺省情况下,级别为0。
不接近:只适用于
正常的
模式。用基准速率步长表示,不接近是终止一个触发事件和重新武装触发器之间的时间。
在连接时修改信号和触发选项
在配置信号数据上传并将Simulink连接到正在运行的目标可执行文件之后,您可以在不断开目标连接的情况下修改信金宝app号和触发选项。
如果触发器是武装的(例如,如果触发器选项手臂连接到目标时),则“外部信号及触发”对话框不可修改。修改信号和触发选项:
打开外部模式控制面板。
点击取消触发.触发和显示上传的数据停止。
打开外部信号和触发对话框,根据需要修改信号和触发选项。例如,在信号的选择部分中,可以启用或禁用范围,并且在触发选项科,换扳机模式,例如,从
正常的
来只有一次的
.点击手臂触发.触发和显示上传的数据简历,与您的修改。
配置目标应用程序信号数据的主机存档
在外部模式下,可以使用Simulink作用域和To Workspac金宝appe块将数据归档到磁盘。
要理解归档特性是如何工作的,请考虑在未启用归档时对数据的处理。有两种情况,一次射击模式和正常模式。
在一次性模式下,触发器事件发生后,每个所选块将其数据写入工作空间,就像在模拟结束时一样。如果触发了另一个一次性操作,则会覆盖现有的工作区数据。
在正常模式下,外部模式在每次触发事件后自动重新武装触发器。因此,您可以将普通模式视为一系列一次性镜头。在这个系列中,除了最后一个外,每一个都被称为一个中间结果.因为触发器可以在任何时候触发,所以将中间结果写入工作空间可能导致不可预知的工作空间变量覆盖。因此,默认的行为是只将最后一次测试的结果写入工作区。中间结果被丢弃。类型的触发器之间存在足够的时间来检查中间结果,则可以覆盖默认行为将中间结果写入工作区选择。此选项不能保护工作区数据不被后续触发器覆盖。
如果使用Simulink作金宝app用域块将数据归档到磁盘,请打开作用域参数对话框并选择该选项将数据记录到工作空间.需要该选项的原因如下:
数据首先从作用域数据缓冲区传输到MATLAB工作空间,然后再写入mat文件。
的变量名在作用域参数对话框中输入的参数与MATLAB工作区和mat文件中的相同。启用要保存的数据将启用名称为变量名参数被保存到一个mat文件。
请注意
如果不选择作用域块选项将数据记录到工作空间时,创建了用于数据记录的mat文件,但它们为空。
“启用数据归档”对话框支持:金宝app
文件夹的笔记
文件记录
自动数据归档
在“外部模式控制面板”上,单击数据归档按钮,打开“启用数据归档”对话框。如果您的模型连接到目标环境,那么在配置数据归档时断开它。若要启用对话框中的其他控件,请选择启用归档.
“启用数据归档”对话框支持上述操作。金宝app
文件夹的笔记
若要为文件夹中的相关数据文件集合添加注释,请在“启用数据归档”对话框中单击编辑目录说明.打开MATLAB编辑器。将要保存到此窗口中指定文件夹中的文件中的注释放置。默认情况下,注释保存到数据归档最后写入的文件夹中。
文件记录
若要为单个数据文件添加注释,请在“启用数据归档”对话框中单击编辑文件.打开一个文件查找器窗口,该窗口默认设置为您写入的最后一个文件。选择mat文件将打开一个编辑窗口。在此窗口中,添加或编辑要保存在单个mat文件中的注释。
自动数据存档
若要配置将日志记录结果自动写入磁盘(可选地包括中间结果),请使用启用归档选项及其启用的控件。对话框提供如下相关控件:
目录:数据存放的文件夹。如果您选择触发时增加目录,外部模式附加后缀。
文件:保存数据的文件名。如果您选择在一次拍摄后增加文件,外部模式附加后缀。
触发时增加目录:每次单击手臂触发按钮,外部模式使用不同的文件夹写入日志文件。文件夹的命名是递增的,例如,
dirname1
,dirname2
等等。在一次拍摄后增加文件:新的数据缓冲区以增量文件形式保存:
filename1
,filename2
等等。文件增量在正常模式下自动发生。将文件后缀附加到变量名:每当外部模式增加文件名时,每个文件都包含同名的变量。选择将文件后缀附加到变量名结果在每个文件中包含唯一的变量名。例如,外部模式保存名为
xdata
在增量文件中(file_1
,file_2
,等等)xdata_1
,xdata_2
等等。这种方法支持将mat文件加载金宝app到工作区中,并在MATLAB命令提示符下比较变量。的每个实例如果没有唯一的名称xdata
将覆盖MATLAB工作区中的前一个。将中间结果写入工作区:如果你想要金宝app仿真软件编码器将中间结果写入工作区的软件,请选择此选项。
TCP/IP或串行外部模式仿真的图形控件摘要
您可以通过以下方式控制TCP/IP或串行外部模式模拟:
的硬件选项卡上的Simuli金宝appnk工具条。显示硬件Tab,从应用程序2 .在“Simuli金宝appnk”工具条上,单击在自定义硬件上运行.
外部模式控制面板。要打开此对话框,请在Simulink编辑器中金宝app硬件选项卡,在准备部分中,点击.然后下信号监测与跟踪,点击控制面板.
控件中可用的控件可执行的外部模式操作硬件选项卡和外部模式控制面板。
外部模式动作 | 硬件选项卡 | 外部模式控制面板 |
---|---|---|
构建目标应用程序。 |
在硬件上运行>为监控而构建 |
N/A |
在目标硬件上运行应用程序。 |
在硬件上运行>部署 |
N/A |
将Simulin金宝appk连接到正在等待或运行的目标应用程序。 |
在硬件上运行>连接 当Simu金宝applink连接到目标应用程序时,连接看起来暗淡无光断开连接是活跃的。 |
连接 当Simu金宝applink连接到目标应用程序时,连接更改断开连接. |
在目标环境中开始实时执行生成的代码。 |
在硬件上运行>开始 |
开始实时代码 当生成的代码开始执行时,按钮更改为停止实时代码. |
断开Simulink与金宝app目标环境的连接,但不要停止代码的实时执行。 |
在硬件上运行>断开连接 当Simu金宝applink与目标应用程序断开连接时,断开连接看起来暗淡无光连接是活跃的。 |
断开连接 |
停止目标应用程序执行并断开Simulink与目标环境的连接。金宝app |
在在硬件上运行节中,停止按钮. |
停止实时代码 |
调优批块参数。 |
在准备节中,保持更新而且更新所有参数按钮。 |
批量下载而且下载 |
与外部模式兼容的块和子系统
兼容的块
在外部模式下,您可以使用以下类型的块来接收和查看从目标应用程序上传的信号:
浮动范围和范围块
来自DSP系统工具箱™产品的频谱分析仪和时间范围块
显示模块
到工作区块
用户编写的S-Function块
s函数API中内置了一个外部模式方法。该方法允许用户编写的块支持外部模式。金宝app看到
.matlabroot
/金宝app模型/ include /simstruc.h
您可以将某些子系统指定为信号查看子系统,并使用它们来接收和查看从目标应用程序上传的信号。看到信号观察子系统获取更多信息。
您可以选择外部模式兼容的块和子系统,并通过使用外部信号和触发对话框来武装触发器。默认情况下,模型中的这些块被选中,并且当连接到目标应用程序时,手动触发器被设置为武装。
信号观察子系统
信号查看子系统是一个原子子系统,它封装了从目标系统接收到的信号的处理和查看。信号查看子系统只在主机上运行,不会在目标系统中生成代码。信号观察子系统有正常模式、加速模式、快速加速模式和外部仿真模式。
请注意
如果将信号观察子系统置于SIL或PIL组件中,例如处于SIL或PIL模式的顶模,则信号观察子系统是不活动的模型SIL或PIL模式块,或SIL或PIL块。然而,SIL或PIL组件可以为运行在受支持模式下的信号查看子系统提供支持。金宝app
如果您希望在查看或记录信号之前处理或调整信号,但不想在目标系统上执行这些任务,则信号查看子系统非常有用。通过使用信号查看子系统,您可以在目标系统上生成更小、更高效的代码。
像其他外部模式兼容块一样,信号查看子系统显示在“外部信号和触发”对话框中。
声明一个子系统为信号查看子系统:
在“块参数”对话框中,选择将其视为原子单位选择。
有关原子子系统的更多信息,请参见子系统函数的控制生成.
要打开SimViewingDevice属性,请使用
set_param
命令:set_param(“blockname”、“SimViewingDevice”,“上”)
“blockname”
子系统的名称。确保子系统满足以下要求:
它必须是一个纯Sink块。也就是说,它不能包含Outport块或数据存储块。它可以包含转到仅当对应时阻塞从块包含在子系统边界内。
它不能有连续的状态。
下面这个模型,sink_examp
,包含一个原子子系统,theSink
.
子系统theSink
对其输入信号应用增益和偏移量,并在作用域块上显示。
如果theSink
被声明为信号查看子系统时,生成的目标应用程序只包括正弦波块的代码。如果theSink
在“外部信号和触发”对话框中选择并武装,目标应用程序将正弦波信号上传到theSink
在模拟。然后,您可以修改其中块的参数theSink
观察上传信号。
如果theSink
如果没有声明为信号观察子系统,则其增益、常量和和块将作为子系统代码在目标系统上运行。正弦波信号将被这些模块处理后上传到Simulink引擎,并在上面进行查看金宝appsink_examp / theSink / Scope2
.对目标系统的处理要求会由于额外的信号处理和从主机下载块参数的变化而增加。
金宝app支持的数据归档块
在外部模式下,可以使用以下类型的块将数据归档到磁盘:
范围块
到工作区块
您可以使用“启用数据存档”对话框配置数据存档,如中所示配置目标应用程序信号数据的主机存档.
下载可调参数的外部模式机制
的设置默认参数行为选项时,处理参数更新的方式会有所不同。下载机制描述了与外部模式通信的操作默认参数行为设置为可调
.内联和可调参数描述了外部模式下的操作默认参数行为设置为内联
.
下载机制
在外部模式下,Simulink引擎不模拟框图金宝app所表示的系统。缺省情况下,当启用外部模式时,Simulink引擎将参数下载到目标系统。金宝app在初始下载之后,引擎将保持等待模式,直到您更改框图中的参数,或者直到引擎从目标接收到数据。
当您更改框图中的参数时,Simulink引擎将调用外部接口mexo文件,将新的参数值(以及其他信息)作为参数金宝app传递。外部接口MEX-file包含实现进程间通信(IPC)通道一侧的代码。该通道将Simulink进程(墨西哥文件在此执行)连金宝app接到正在执行外部程序的进程。mexico文件通过使用此通道将新的参数值传输到外部程序。
通信信道的另一端是在外部程序内实现的。这一端将新的参数值写入目标的参数结构(
).模型
_P
Simu金宝applink端通过向外部程序发送包含参数信息的消息来启动参数下载操作。在客户机/服务器计算的术语中,Simulink端是客户机,外部程序是服务器。金宝app这两个进程可以是远程的,也可以是本地的。如果客户端和服务器是远程的,则使用TCP/IP等协议来传输数据。在客户端和服务器是本地的情况下,可以使用串行连接或共享内存来传输数据。
下一张图显示了这种关系。每当您更金宝app改框图中的参数时,Simulink引擎都会调用外部接口mexo文件。然后,墨西哥文件通过使用通信通道将参数下载到外部程序。
内联和可调参数
默认情况下,参数(除了在TCP/IP和串行外部模式限制)在外部模式程序中是可调的;也就是说,您可以通过使用本节中描述的下载机制来更改它们。
如果你设置默认参数行为来内联
(在优化窗格中的“配置参数”对话框),则金宝app仿真软件编码器代码生成器在生成的代码中嵌入模型参数(常量)的数值,而不是符号参数名。内联参数生成更小、更高效的代码。但是,由于内联参数实际上变成了常数,所以它们是不可调的。
的金宝app仿真软件编码器软件允许您通过内联大多数参数来提高总体效率,同时保留对应用程序重要的选定参数进行运行时调优的灵活性。当您内联参数时,可以使用金宝app仿真软件。参数
对象从内联中删除个别参数并将它们声明为可调的。此外,您可以使用这些对象来控制参数在生成的代码中的表示方式。
有关可调参数的更多信息,请参见在生成的代码中创建可调校准参数.
主机/目标器连接时自动上传参数。每次Simulink引擎连接金宝app到生成的目标应用程序时默认参数行为设置为内联
,目标应用程序将其可调参数的当前值上传到主机。这些值被分配给相应的MATLAB工作空间变量。这个过程根据参数值同步主机和目标。如果可调参数存储在模型工作区或数据字典中,则这些值不会上传,并且Simulink会产生警告。金宝app
模型所需的工作区变量必须在主机/目标连接时初始化。否则上传将无法进行,并导致错误。一旦建立连接,这些变量将被更新以反映目标系统上的当前参数值。
只有当目标应用程序是用默认参数行为设置为内联
.下载机制描述了与外部模式通信的操作默认参数行为设置为可调
.
选择客户端和服务器的通信协议
简介
的金宝app仿真软件编码器product提供了使用TCP/IP或串行协议实现外部模式通信的客户端和服务器端的代码。类提供的基于套接字的外部模式实现金宝app仿真软件编码器如果您的目标系统支持TCP/IP,则使用生成的代码生成产品。金宝app如果不是,请使用或自定义提供的串行传输层选项。
一个低级传输层处理消息的物理传输。Simulink引金宝app擎和模型代码都独立于这一层。传输层和直接连接到传输层的代码都被隔离在单独的模块中,这些模块格式化、传输和接收消息和数据包。
使用TCP/IP实现
可以在Open Group UNIX上使用基于TCP/ ip的客户端/服务器实现外部模式的实时程序®或PC系统。有关自定义外部模式传输层的帮助,请参见为TCP/IP或串行外部模式通信创建传输层.
在TCP/IP金宝app上使用Simulink外部模式:
确保指定了目标TCP/IP传输的外部接口mexo文件。
由MathWorks提供的目标®中指定外部接口mexo文件的名称
.控件中的接口名称显示为不可编辑的文本外部模式配置部份接口窗格中的“配置参数”对话框。TCP/IP默认为matlabroot
/工具/模型/模型金宝app/ extmode_transports.mext_comm
.要为自定义目标指定TCP/IP传输,必须将以下表单的项添加到
sl_customization.m
MATLAB路径下的文件:函数sl_customization(cm) cm. extmodetransport .add('月31.tlc”、“运输”、“mexfile”、“使”);%结束功能
要为其注册传输的系统目标文件的名称(例如,月31
.tlc“mytarget.tlc”
)
传输名称是否显示在传输层菜单上的接口窗格的“配置参数”对话框(例如,运输
“tcpip”
)
是传输相关的外部接口mexo文件的名称(例如,mexfile
“ext_comm”
)
您可以指定多个目标和/或附加传输
cm.ExtModeTransports.add
行,例如:函数sl_customization(cm) cm. extmodetransport .add('mytarget. txt ')tlc', 'tcpip', 'ext_comm', 'Level1');cm.ExtModeTransports.add(“mytarget。Tlc ', 'serial',…“ext_serial_win32_comm”、“使”);%结束功能
确保模板makefile配置为链接TCP/IP服务器代码的源文件,并在构建生成的代码时定义编译器标志。
构建外部程序。
运行外部程序。
将Simulin金宝appk模型设置为外部模式并连接到目标。
下一个图显示了基于TCP/ ip的实现的结构。
基于TCP/ ip的客户端/服务器外部模式实现
mexo - file TCP/IP传输可选参数。在“外部目标接口”对话框中,可以指定传递给外部模式接口mexo文件的可选参数,用于与正在执行的目标通信。
目标网络名称:运行外部程序的计算机的网络名称。默认情况下,这是运行Simulink产品的计算机,例如,金宝app
“myComputer”
.您也可以使用IP地址,例如:“148.27.151.12”
.详细级别:控制在数据传输过程中显示的信息的详细级别。取值为
0
或1
并具有以下含义:0
-没有资料
-详细信息
1TCP/IP服务器端口号:默认为
17725
.您可以将端口号更改为之间的值256
而且65535
避免端口冲突。
参数是位置的,必须按照以下顺序指定:
例如,如果希望指定详细级别(第二个参数),那么还必须指定目标网络名称(第一个参数)。参数可以用空格或逗号分隔。例如:
'148.27.151.12' 1 30000
您可以在启动外部程序时指定命令行选项。看到运行外部程序.
使用串行实现
在串行通道上控制主机/目标器通信类似于在TCP/IP通道上控制主机/目标器通信。
要通过串行通道金宝app使用Simulink外部模式,您必须:
确保指定了目标串行传输的外部接口mexo文件。
MathWorks提供的目标指定外部接口mexo文件的名称
.控件中的接口名称显示为不可编辑的文本外部模式配置部份接口窗格中的“配置参数”对话框。默认序列号为matlabroot
/工具/模型/模型金宝app/ extmode_transports.m串行
.若要为自定义目标指定串行传输,必须将以下表单的项添加到
sl_customization.m
MATLAB路径下的文件:函数sl_customization(cm) cm. extmodetransport .add('月31.tlc”、“运输”、“mexfile”、“使”);%结束功能
要为其注册传输的系统目标文件的名称(例如,月31
.tlc“mytarget.tlc”
)
传输名称是否显示在传输层菜单上的接口窗格的“配置参数”对话框(例如,运输
“串行”
)
是传输相关的外部接口mexo文件的名称(例如,mexfile
“ext_serial_win32_comm”
)
您可以指定多个目标和/或附加传输
cm.ExtModeTransports.add
行,例如:函数sl_customization(cm) cm. extmodetransport .add('mytarget. txt ')tlc', 'tcpip', 'ext_comm', 'Level1');cm.ExtModeTransports.add(“mytarget。Tlc ', 'serial',…“ext_serial_win32_comm”、“使”);%结束功能
确保模板makefile配置为链接串行服务器代码的源文件,并在构建生成的代码时定义编译器标志。
构建外部程序。
运行外部程序。
将Simulin金宝appk模型设置为外部模式并连接到目标。
mexo - file串行传输可选参数。在MEX-file参数字段接口窗格的配置参数对话框,您可以指定参数传递给外部模式接口墨文件,以与执行目标通信。对于串行传输,可选参数为ext_serial_win32_comm
分别如下:
详细级别:此参数控制在数据传输期间显示的信息的详细级别。这个参数的值是:
0
(没有信息),或者1
(详细信息)
串口ID:主机的端口ID,以整数或字符向量指定。例如,指定USB到串口转换器的端口号为
“/ dev / ttyusb0”
.金宝app仿真软件编码器前缀整数端口id\ \ \ COM
在Windows上®并通过/dev/ttyS
在Unix。当您使用串行连接启动目标应用程序时,必须指定用于将其连接到主机的端口ID。通过包含
- port
命令行选项。例如:Mytarget.exe -port 2 -w
波特率:输入整数值。默认值为
57600
.
mexico -file options参数是位置参数,必须按照以下顺序指定:
例如,如果要指定串行端口ID(第二个参数),那么还必须指定详细级别(第一个参数)。参数可以用空格或逗号分隔。例如:
1 '/dev/ttyusb0' 57600
当启动外部程序时,可以指定命令行选项。
运行外部程序
在以外部模式使用Simulink产品之前,外部金宝app程序必须正在运行。
如果目标应用程序与主机在同一台机器上执行,并且通过环回串口电缆进行通信,则目标端口号必须与主机端口号不同(如中所述)MEX-file参数编辑字段)。
要运行外部程序,键入如下表单的命令:
模型-opt1...-
optN
外部程序的名称和模型
是选择。(见外部程序的命令行选项)。在本节的示例中,外部程序的名称为-opt1
...-optN
ext_example
.
中运行外部程序窗户环境。在Windows环境下,可以通过以下两种方式运行外部程序:
打开命令提示符窗口。在命令提示符下,输入目标可执行文件的名称,后面跟着可能的选项,例如:
Ext_example -tf inf -w
或者,您可以从MATLAB命令窗口启动目标可执行文件。命令前必须加一个感叹号(
!
),然后跟一个&号(&
),如下例所示:ext_example -tf inf -w &
&号(
&
)导致操作系统产生另一个进程来运行目标可执行文件。如果不包含&号,程序仍将运行,但不能在MATLAB命令提示符下输入命令或手动终止可执行文件。
中运行外部程序UNIX环境。在UNIX环境下,可以通过以下两种方式运行外部程序:
打开一个
Xterm
窗口。在命令提示符下,输入目标可执行文件的名称,后面跟着可能的选项,例如:./ext_example -tf inf -w
或者,您可以从MATLAB命令窗口启动目标可执行文件。您必须在后台运行它,以便仍然可以访问Simulink环境。金宝app命令前必须加一个感叹号(
!
),点/(。/表示当前目录),后面跟着一个&号(&
),如下例所示:!./ext_example -tf inf -w &
&号(
&
)导致操作系统产生另一个进程来运行目标可执行文件。
外部程序的命令行选项。类生成的外部模式目标可执行文件金宝app仿真软件编码器代码生成器支持以下命令行选项:金宝app
- tf n
的
- tf
选项将覆盖Simulink模型中设置的停止时间。金宝app这个论点n
指定程序运行的秒数。的值正
指示模型无限期地运行。在这种情况下,模型代码将一直运行,直到目标应用程序接收到来自Simulink引擎的停止消息。金宝app下面的示例将停止时间设置为10秒。
Ext_example -tf
在外部模式下构建并执行纯整数ERT目标时,停止时间参数(- tf
)被目标解释为基本速度步数,而不是执行的秒数。
- w
指示目标应用程序进入等待状态,直到它接收到来自主机的消息。此时,目标正在运行,但没有执行模型代码。当您选择时,将发送开始消息开始实时代码从模拟菜单或按开始实时代码按钮在外部模式控制面板。
使用
- w
选项,如果您希望查看从时间步骤0开始的目标应用程序执行数据,或者希望在目标应用程序开始执行模型代码之前修改参数。n - port
TCP/IP端口号或串口ID,
n
,用于目标应用程序。目标应用程序的端口号必须与用于TCP/IP传输的主机的端口号匹配。端口号取决于传输的类型。TCP/IP传输:端口号为之间的整数
256
而且65535
,默认值为17725
.所选端口不能被运行在目标硬件上的另一个TCP/IP服务使用。串行传输时:端口号为整数或字符向量。例如,指定USB到串口转换器的端口号为
“/ dev / ttyusb0”
波特r
指定为整数时,此选项仅可用于串行传输。
实现一个外部模式协议层
类所提供的某些代码模块,如果要实现自己的传输层进行外部模式通信,则必须修改金宝app仿真软件编码器并创建一个新的外部接口mexo文件。看到为TCP/IP或串行外部模式通信创建传输层.
以编程方式使用外部模式
您可以从MATLAB命令行或在脚本中以编程方式运行外部模式模拟。使用get_param
而且set_param
检索和设置模型仿真命令行参数值的命令,例如SimulationMode
而且SimulationCommand
,以及外部模式命令行参数,例如ExtModeCommand
而且ExtModeTrigType
.
下面的模型仿真命令假设一个Simulink模型是打开的,并且您已经加载了一个目标应用程序,该模型将使用外部模金宝app式连接到该应用程序。
将Simulink模型金宝app更改为外部模式:
set_param (gcs、“SimulationMode”,“外部”)
将开放模型连接到加载的目标应用程序:
set_param (gcs、“SimulationCommand”,“连接”)
开始运行目标应用程序:
set_param (gcs,‘SimulationCommand’,‘开始’)
停止运行目标应用程序:
set_param (gcs、“SimulationCommand”,“停止”)
断开目标应用程序与模型的连接:
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_param
而且set_param
命令。
要调优工作空间参数,请在命令提示符处更改其值。如果workspace参数为a金宝app仿真软件。参数
对象时,将新值赋给价值
财产。
myVariable = 5.23;myParamObj。价值= 5.23;
要在外部模式下下载工作区参数,您需要更新模型图。下面的模型仿真命令启动一个模型更新:
set_param (gcs、“SimulationCommand”,“更新”)
要触发或取消向作用域上传数据,请使用ExtModeCommand
值armFloating
而且cancelFloating
,或armWired
而且cancelWired
.例如,触发然后取消数据上传到有线(非浮动)作用域:
set_param (gcs ExtModeCommand, armWired) set_param (gcs,‘ExtModeCommand’,‘cancelWired’)
下一个表列出了可以使用的外部模式命令行参数get_param
而且set_param
命令。该表提供了简短的描述、有效值(粗体突出显示默认值)以及到外部模式对话框等值的映射。对于外部模式参数,等效于接口窗格选项,请参见型号配置参数:代码生成接口.
外部模式命令行参数
参数和值 | 对话框等效 | 描述 |
---|---|---|
ExtModeAddSuffixToVar 从 ,在 |
启用数据存档:将文件后缀附加到变量名复选框 | 为每个递增的文件名递增变量名。 |
ExtModeArchiveDirName 特征向量 |
启用数据存档:目录文本字段 | 将数据保存到指定文件夹。 |
ExtModeArchiveFileName 特征向量 |
启用数据存档:文件文本字段 | 将数据保存在指定文件中。 |
ExtModeArchiveMode 特征向量 -从 ,汽车 ,手册 |
启用数据存档:启用归档复选框 | 激活自动数据归档功能。 指定 注意,如果您指定 |
ExtModeArmWhenConnect 从 ,在 |
外部信号及触发:手臂连接到目标时复选框 | 马上扣上扳机金宝app仿真软件编码器软件连接到目标。 |
ExtModeAutoIncOneShot 从 ,在 |
启用数据存档:在一次拍摄后增加文件复选框 | 在增量文件中保存新的数据缓冲区。 |
ExtModeAutoUpdateStatusClock (只适用于Windows平台)从 ,在 |
不可用 | 在模型窗口状态栏上连续上传并显示目标时间。 |
ExtModeBatchMode 从 ,在 |
外部模式控制面板:批量下载复选框 | 启用或禁用批处理模式下的参数下载。 |
ExtModeChangesPending 从 ,在 |
不可用 | 当ExtModeBatchMode 启用时,指示参数是否保留在要下载到目标的参数队列中。 |
ExtModeCommand 特征向量 -armFloating ,armWired ,cancelFloating ,cancelWired |
|
向目标应用程序发出一个外部模式命令。 |
ExtModeConnected 从 ,在 |
外部模式控制面板:连接/断开连接按钮 | 指示与目标应用程序的连接状态。 |
ExtModeEnableFloating 从 ,在 |
外部模式控制面板:启用数据上传复选框 | 当使用浮动作用域建立连接时,启用或禁用激活和取消触发器。 |
ExtModeIncDirWhenArm 从 ,在 |
启用数据存档:触发时增加目录复选框 | 每次触发时,将日志文件写入增量文件夹。 |
ExtModeLogAll 从 ,在 |
外部信号及触发:选择所有复选框 | 从目标器上传可用信号到主机。 |
ExtModeParamChangesPending 从 ,在 |
不可用 | 当金宝app仿真软件编码器软件连接到目标和ExtModeBatchMode 启用时,指示参数是否保留在要下载到目标的参数队列中。更有效率ExtModeChangesPending ,因为它检查到目标的连接。 |
ExtModeSkipDownloadWhenConnect 从 ,在 |
不可用 | 连接到目标应用程序而不需要下载参数。 |
ExtModeTrigDelay 整数 (0 ) |
外部信号及触发:延迟文本字段 | 指定从触发器发生到开始数据收集之间所经过的时间量(以基本速率步长表示)。 |
ExtModeTrigDirection 特征向量 -不断上升的 ,下降 ,要么 |
外部信号及触发:方向菜单 | 指定信号在超过阈值时必须传播的方向。 |
ExtModeTrigDuration 整数 (1000 ) |
外部信号及触发:持续时间文本字段 | 指定外部模式在触发事件后记录数据的基本速率步数。 |
ExtModeTrigDurationFloating 特征向量 -整数 (汽车 ) |
外部模式控制面板:持续时间文本字段 | 指定浮动作用域的持续时间。如果汽车 时,ExtModeTrigDuration 使用。 |
ExtModeTrigElement 特征向量 -整数 ,任何 ,最后的 |
外部信号及触发:元素文本字段 | 指定可以触发触发器的指定触发器块的输入端口的元素。 |
ExtModeTrigHoldOff 整数 (0 ) |
外部信号及触发:不接近文本字段 | 指定触发器事件终止到触发器重新武装之间的基本速率步长。 |
ExtModeTrigLevel 整数 (0 ) |
外部信号及触发:水平文本字段 | 指定触发信号必须通过的阈值以触发触发器。 |
ExtModeTrigMode 特征向量 -正常的 ,一次通过 |
外部信号及触发:模式菜单 | 指定触发器是在每次触发事件后自动重新武装,还是每次武装触发器时只收集一个数据缓冲区。 |
ExtModeTrigPort 特征向量 -整数 (1 ),最后的 |
外部信号及触发:港口文本字段 | 指定指定触发器块的输入端口,其中的元素可以触发触发器。 |
ExtModeTrigType 特征向量 -手册 ,信号 |
外部信号及触发:源菜单 | 指定是在触发器启动时开始记录数据,还是当指定的触发器信号满足触发条件时开始记录数据。 |
ExtModeUploadStatus 特征向量 -不活跃的 ,武装 ,上传 |
不可用 | 返回外部模式上传机制的状态—非激活、武装或上传。 |
ExtModeWriteAllDataToWs 从 ,在 |
启用数据存档:将中间结果写入工作区复选框 | 将中间结果写入工作区。 |
动画Stateflow外部模式图表
如果你有状态流®,您可以在外部模式下使图表动画化。在外部模式下,您可以将图表中的状态动画化,并在浮动范围或信号查看器中查看测试点信号。
在外部模式模拟时的动画状态
在外部模式下使图表中的状态动画化:
将要制作动画的图表加载到目标机器。
在“配置参数”对话框中,选择外部模式复选框。
打开外部模式控制面板对话框。
点击信号与触发.
在“外部信号与触发”对话框中设置这些参数。
: 选择: 信号的选择窗格 你想要动画的图表 触发选项窗格 手臂连接到目标时复选框 触发选项窗格 正常的
从下拉菜单模式场构建模型以生成可执行文件。
部署目标应用程序。
将Simulin金宝appk连接到目标应用程序。
开始执行生成的模型代码。图表突出显示了它们执行时的状态。
在浮动范围和信号查看器中查看测试点数据
在外部模式下模拟图表时,可以将局部作用域的图表数据指定为测试点,并在浮动作用域和信号查看器中查看测试点数据。
在外部模式下查看模拟过程中的测试点数据:
打开模型资源管理器,对于您想要查看的每个数据,按照以下步骤执行:
在中间内容窗格中,选择感兴趣的州或本地数据。
在右边对话框窗格中,选择日志记录选项卡,选择测试点复选框。
在浮动范围或信号查看器中,单击信号选择按钮:
打开“信号选择器”对话框。
在信号选择器中模型层次结构窗格中,选择图表。
在信号选择器中列表内容菜单中,选择仅测试/记录信号然后选择你想看的信号。
在外部模式下模拟模型,如在外部模式模拟时的动画状态.
作用域或查看器在模拟运行时显示测试点信号的值。
有关更多信息,请参见使用快速加速模式的瞄准镜和查看器的行为.
TCP/IP和串行外部模式限制
功能 | 细节 |
---|---|
更改参数 | 通常,如果更改参数会导致模型结构的更改,则不能更改参数。例如,你不能改变
如果您对框图进行了这些更改,那么您必须使用新生成的代码重新构建程序。 你可以用特定的方式改变传递函数和状态空间表示块中的参数:
如果Simul金宝appink框图与外部程序不匹配,Simulink将产生一个错误,说明校验和不匹配。校验和考虑顶级模型,但不考虑引用模型。使用更新后的框图重新构建目标应用程序。 |
上传数据 | 对于具有定点值的参数,不支持从目标应用程序上传参数值。金宝app |
上传可变大小信号 | 以下目标不支持上传可变大小的信号:金宝app
|
仿真信号值显示 | 模型中信号值的图形显示(描述于在模型图中显示信号值)不支持。金宝app例如,不能使用仿真中的数据显示菜单选择悬停时显示值标签,单击时切换值标签,显示所选端口的值标签. |
结构参数可调 | 不支持上传或下载可调结构参数。金宝app |
纯整数码 | 支持纯整数代码。金宝app 如果您没有指定 如果你指定
|
半精密 | 不支持半精度数据类型。金宝app |
归档数据 | 对于将数据归档到磁盘,支持范围和工作区块。金宝app但是,数据归档不支持其他作用域。金宝app例如,不能使用浮动作用域块或viewer和Generators Manager查看器对象来归档数据。 |
引用模型中的作用域 | 在模型层次结构中,如果顶部模型在外部模式下模拟,而引用模型在正常或加速模式下模拟,则引用模型中的作用域不会显示。 但是,如果将顶部模型更改为在正常模式下模拟,则参考模型中的作用域的行为在正常模式和加速模式之间是不同的。在正常模式下进行模拟的参考模型的作用域将显示出来,而在加速模式下进行模拟的参考模型的作用域不显示出来。 |
模拟开始时间 | 不支持非零模拟启动时间。金宝app在“配置参数”对话框中,解算器窗格中,离开开始时间设置为的默认值 |
中间步长值 | 一些Sim金宝appulink块可以在一个仿真时间步长中生成多个值。例如:
对于外部模式模拟中的每个时间步骤,Simulink仅从目标应用程序上传这些块的最终值。金宝app金宝appSimulink不会上传在该步骤中生成的中间值。 |
File-scoped数据 | 不支持文件范围的数据,例如,应用内置自定义存储类的金宝app数据项, |
带有自定义存储类的信号 | 不支持使用自定义存储类(CSC)上传信号。金宝app |
使用printf 语句 |
要在目标硬件上显示目标应用程序错误和信息消息,可以使用 |
命令行参数 | 您可以使用命令行参数来运行目标应用程序。这些限制适用于:
如果目标硬件不支持解析命令行参数,请指定预处理器宏定义金宝app 要替换 set_param (modelName, 'OnTargetWaitForStart', 'on'); -DON_TARGET_WAIT_FOR_START = 1 )给编译器。 |
行主代码生成 | 不支持使用行主行格式生成的代码。金宝app |