设计数据接口的配置运行轨迹和出口框

模型的数据接口是手段通过与其他外部模型或系统,其中模型交换数据(例如,信号的值)。自定义模型的数据接口:

  • 允许用自己的代码生成的代码的整合。

  • 提高代码的可跟踪性和可读性。

在一个模型的顶层,INPORT和出口框表示该模型的输入和输出信号。要自定义数据接口中生成的代码,配置这些块。早在设计过程中,当一个模型可以包含未连接INPORT和出口框,使用这种技术开发内部算法之前指定的接口。

当应用了存储类INPORT和出口框,每个块出现在所生成的代码作为全局结构的一个字段或直接将所生成的算法的引用作为一个单独的全局变量。如果您有嵌入式编码,您可以用函数原型的控制,而不是存储类数据传入和传出模型功能形式参数。看到自定义生成的C函数接口(嵌入式编码)。

设计数据接口

打开示例模型rtwdemo_basicsc

open_system('rtwdemo_basicsc'

配置模型显示块的生成的名称。

set_param('rtwdemo_basicsc''HideAutomaticNames'“关”

造型选项卡,单击模型数据编辑器

模型中的数据编辑器,选择Inports / Outports标签。表中的每一行代表一个OUTPORT块或离开一个INPORT块的信号。

命名的信号数据,所述外港块输出1代表。组信号名称output_sig

对于每个信号的该出口的INPORT块,组数据类型或不同的数据类型。由于数据类型继承设置了默认模型使用其它的块,在模型中的其余部分的下游信号使用相同或类似的数据类型。

任选地,配置其它设计属性,例如马克斯(最小值和最大值)。

设置更改视图下拉列表

对于外港块和INPORT块,组存储类ExportedGlobal。配置一步到位块,请在表中的行。

要配置块和信号,你可以在命令提示符下使用这些命令。

portHandles = get_param('rtwdemo_basicsc /输入1''portHandles');outPortHandle = portHandles.Outport;set_param(outPortHandle,'StorageClass''ExportedGlobal');portHandles = get_param('rtwdemo_basicsc /英寸2''portHandles');outPortHandle = portHandles.Outport;set_param(outPortHandle,'StorageClass''ExportedGlobal');portHandles = get_param('rtwdemo_basicsc / IN3''portHandles');outPortHandle = portHandles.Outport;set_param(outPortHandle,'StorageClass''ExportedGlobal');portHandles = get_param('rtwdemo_basicsc / IN4''portHandles');outPortHandle = portHandles.Outport;set_param(outPortHandle,'StorageClass''ExportedGlobal');set_param('rtwdemo_basicsc /输出1''SignalName''output_sig'...'StorageClass''ExportedGlobal'

从模型中生成代码。

rtwbuild('rtwdemo_basicsc');
###启动构建过程:rtwdemo_basicsc ###的构建过程的顺利完成:rtwdemo_basicsc

查看生成的文件rtwdemo_basicsc.c。因为你应用的存储类ExportedGlobal到INPORT和出口框,该代码创建表示输入和输出分开的全局变量。

文件=完整文件('rtwdemo_basicsc_grt_rtw''rtwdemo_basicsc.c');rtwdemodbtype(文件,'/ *导出块信号* /''real32_T output_sig;',1,1)
/ *导出块信号* / real32_T INPUT1;/ * '<根> /输入1' * / real32_T输入2;/ * '<根> /英寸2' * / real32_T输入3;/ * '<根> / IN3' * / real32_T INPUT4;/ * '<根> / IN4' * / real32_T output_sig;/ * '<根> /输出1' * /

在模型中所产生的算法功能直接引用这些全局变量来计算和存储的输出信号值,output_sig

而使用模型数据编辑器来配置一个系统的接口,可以考虑使用界面显示,以查看在高水平的系统输入和输出(INPORT和出口框)。看到配置数据接口组件(万博1manbetxSIMULINK)。

通过配置默认的存储类别减少手动输入数据(嵌入式编码)

如果您有嵌入式编码器,可以配置运行轨迹块和出口框默认的存储类。当您添加这样的块到模型,他们获得您指定的存储类。

在模型中,集配置参数>代码生成>系统目标文件ert.tlc

在应用程序库中,点击嵌入式编码

下方的框图,在代码映射>数据缺省, 为了InportsOutports行集存储类ExportedGlobal

下方的框图,通过点击打开模型数据编辑器模型数据编辑器标签。

使用模型数据编辑器来存储类的运行轨迹和出口框的设置汽车。使用此设置,块获得您在指定的默认存储类代码映射>数据缺省

汽车,全局变量对应的运行轨迹和出口框受到您在模型配置参数指定命名规则。默认情况下,命名规则增加了模型各变量的名称的名称。要删除的型号名称,改变的价值配置参数>代码生成>标识符>全局变量$ R $ N $ M$ N $ M。令牌$ R代表型号名称。

可替换地,配置数据和默认配置参数,在命令提示,使用这些命令:

set_param('rtwdemo_basicsc''SystemTargetFile''ert.tlc')coder.mapping.create('rtwdemo_basicsc')coder.mapping.defaults.set('rtwdemo_basicsc''Inports'...'StorageClass''ExportedGlobal')coder.mapping.defaults.set('rtwdemo_basicsc''Outports'...'StorageClass''ExportedGlobal')portHandles = get_param('rtwdemo_basicsc /输入1''portHandles');outPortHandle = portHandles.Outport;set_param(outPortHandle,'StorageClass''汽车');portHandles = get_param('rtwdemo_basicsc /英寸2''portHandles');outPortHandle = portHandles.Outport;set_param(outPortHandle,'StorageClass''汽车');portHandles = get_param('rtwdemo_basicsc / IN3''portHandles');outPortHandle = portHandles.Outport;set_param(outPortHandle,'StorageClass''汽车');portHandles = get_param('rtwdemo_basicsc / IN4''portHandles');outPortHandle = portHandles.Outport;set_param(outPortHandle,'StorageClass''汽车');set_param('rtwdemo_basicsc /输出1''SignalName''output_sig'...'StorageClass''汽车')set_param('rtwdemo_basicsc''CustomSymbolStrGlobalVar''$ N $ M'

路由信号数据到多个输出

您可以路由一个信号到多个出口框和应用不同的存储类每个外港。例如,使用此技术的信号数据发送到一个自定义功能(如设备驱动器)和到全局变量自定义算法代码可以使用:

  1. 分支目标信号线到每个外港块。

  2. 为更有效的代码,存储类的目标信号线设置为汽车(默认值)。然后优化可以消除从所生成的码的信号线。

  3. 使用模型数据编辑器应用存储类GETSET一个外港块和ExportToFile其他外港块。施加信号名称给每个块。

open_system('ex_route_sig'

限制

你不能存储类应用到外港块如果输入到块具有可变大小。相反,应用存储类的信号线。

相关话题