文档

通过配置输入和输出块设计数据接口

模型的数据接口是模型与其他外部模型或系统交换数据(例如信号值)的方法。自定义模型的数据接口:

  • 允许将生成的代码与您自己的代码集成。

  • 改进代码的可追溯性和可读性。

在模型的顶层,import和Outport块表示模型的输入和输出信号。要在生成的代码中定制数据接口,请配置这些块。在设计过程的早期,当模型可以包含未连接的import和Outport块时,在开发内部算法之前使用此技术指定接口。

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

设计数据接口

打开示例模型rtwdemo_basicsc

open_system (“rtwdemo_basicsc”

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

set_param (“rtwdemo_basicsc”“HideAutomaticNames”“关闭”

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

在模型数据编辑器中,选择港口/外港选项卡。表中的每一行表示一个Outport块或一个退出Inport块的信号。

命名输出端口块的信号数据着干活代表。集信号的名字output_sig

对于每个退出import块的信号,设置数据类型或者转换为不同的数据类型。由于模型中的其他块默认使用的数据类型继承设置,模型其余部分中的下行信号使用相同或类似的数据类型。

可选地,配置其他设计属性,例如最小值而且马克斯(最小值和最大值)。

设置改变观点下拉列表代码

对于“输出”块和“导入”块,设置存储类ExportedGlobal.要在一个步骤中配置块,请选择表中的行。

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

portandles = get_param(“rtwdemo_basicsc /三机一体”“portHandles”);outportandle = portthandles . outport;set_param (outPortHandle“StorageClass”“ExportedGlobal”);portandles = get_param(“rtwdemo_basicsc / In2”“portHandles”);outportandle = portthandles . outport;set_param (outPortHandle“StorageClass”“ExportedGlobal”);portandles = get_param(“rtwdemo_basicsc / In3”“portHandles”);outportandle = portthandles . outport;set_param (outPortHandle“StorageClass”“ExportedGlobal”);portandles = get_param(“rtwdemo_basicsc / In4”“portHandles”);outportandle = portthandles . outport;set_param (outPortHandle“StorageClass”“ExportedGlobal”);set_param (“rtwdemo_basicsc /着干活”“SignalName”“output_sig”...“StorageClass”“ExportedGlobal”

从模型生成代码。

rtwbuild (“rtwdemo_basicsc”);
开始模型的构建过程:rtwdemo_basicsc成功完成模型的构建过程:rtwdemo_basicsc

查看生成的文件rtwdemo_basicsc.c.因为您应用了存储类ExportedGlobal到import和Outport块,代码创建了表示输入和输出的单独全局变量。

文件= fullfile(“rtwdemo_basicsc_grt_rtw”“rtwdemo_basicsc.c”);rtwdemodbtype(文件,'/*输出块信号*/'“real32_T output_sig;”, 1, 1)
/*输出块信号*/ real32_T input1;/* '/In1' */ real32_T input2;/* '/In2' */ real32_T input3;/* '/In3' */ real32_T input4;/* '/In4' */ real32_T output_sig;/* '<根>/Out1' */

在模型中生成的算法一步函数直接引用这些全局变量来计算和存储输出信号值,output_sig

当您使用Model Data Editor来配置系统的接口时,请考虑使用接口显示在较高的级别上查看系统输入和输出(import和Outport块)。看到为组件配置数据接口(金宝app模型)。

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

如果您有嵌入式编码器,您可以为导入块和出端口块配置默认存储类。当您将这些块添加到模型中时,它们将获得您指定的存储类。

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

在“应用程序”库中,单击嵌入式编码器

在方框图下面代码映射>数据默认值,用于港口而且外港行,设置存储类ExportedGlobal

在方框图下面,通过单击模型数据编辑器选项卡。

使用Model Data Editor将import和Outport块的存储类设置为汽车.通过此设置,块将获得您在代码映射>数据默认值

汽车,与import和Outport块对应的全局变量服从于您在模型配置参数中指定的命名规则。默认情况下,命名规则将模型的名称添加到每个变量的名称中。要删除模型名称,请更改的值配置参数>代码生成>符号>全局变量R N美元美元N M美元.令牌$ R表示模型名称。

或者,要配置数据默认值和配置参数,在命令提示符处,使用以下命令:

set_param (“rtwdemo_basicsc”“SystemTargetFile”“ert.tlc”) coder.mapping.create (“rtwdemo_basicsc”) coder.mapping.defaults.set (“rtwdemo_basicsc”“港口”...“StorageClass”“ExportedGlobal”) coder.mapping.defaults.set (“rtwdemo_basicsc”“输出港”...“StorageClass”“ExportedGlobal”portandles = get_param(“rtwdemo_basicsc /三机一体”“portHandles”);outportandle = portthandles . outport;set_param (outPortHandle“StorageClass”“汽车”);portandles = get_param(“rtwdemo_basicsc / In2”“portHandles”);outportandle = portthandles . outport;set_param (outPortHandle“StorageClass”“汽车”);portandles = get_param(“rtwdemo_basicsc / In3”“portHandles”);outportandle = portthandles . outport;set_param (outPortHandle“StorageClass”“汽车”);portandles = get_param(“rtwdemo_basicsc / In4”“portHandles”);outportandle = portthandles . outport;set_param (outPortHandle“StorageClass”“汽车”);set_param (“rtwdemo_basicsc /着干活”“SignalName”“output_sig”...“StorageClass”“汽车”) set_param (“rtwdemo_basicsc”“CustomSymbolStrGlobalVar”“N M美元”

将信号数据路由到多个输出

您可以将单个信号路由到多个Outport块,并对每个Outport应用不同的存储类。例如,使用此技术将信号数据发送到自定义函数(如设备驱动程序)和自定义算法代码可以使用的全局变量:

  1. 将目标信号线分支到每个输出端口块。

  2. 要获得更高效的代码,请将目标信号线的存储类设置为汽车(默认)。然后优化可以从生成的代码中消除信号线。

  3. 使用模型数据编辑器来应用存储类GetSet到一个Outport块和ExportToFile到另一个Outport块。为每个块应用一个信号名称。

open_system (“ex_route_sig”

限制

如果输出端口块的输入大小可变,则不能将存储类应用到该块。相反,将存储类应用于信号线。

相关的话题