主要内容

通过具有存储类的函数访问数据GetSet

要将生成的代码与使用专门函数读取和写入数据的遗留代码集成,可以使用存储类GetSet.信号、块参数和使用的状态GetSet作为访问器函数的调用出现在生成的代码中。您提供函数定义。

您也可以在Embedded Coder中创建自己的存储类®字典通过函数访问数据。在Embedded Coder Dictionary中创建自己的存储类,可以灵活地自定义函数名和返回类型。有关更多信息,请参见使用嵌入式编码器字典中的存储类通过函数访问数据

通过访问数据来生成符合AUTOSAR标准的代码Rte函数调用时,使用AUTOSAR代码透视图。看到AUTOSAR组件配置(AUTOSAR Blockset)

使用访问遗留数据得到而且功能

这个例子展示了如何通过使用专门的方法生成与遗留代码接口的代码得到而且函数来访问数据。

查看示例遗留头文件ComponentDataHdr.h.该文件定义了一个大型结构类型ComponentData

rtwdemodbtype (“ComponentDataHdr.h”'/* ComponentData */'“}ComponentData;”, 1, 1)
/* ComponentData */ typedef struct {ScalarData的标量;VectorData向量;StructData结构;MatricesData矩阵;} ComponentData;

这个领域标量是否使用该结构类型的子结构ScalarData.结构类型ScalarData定义三个标量字段:inSigscalarParam,outSig

rtwdemodbtype (“ComponentDataHdr.h”'/* ScalarData */'“}ScalarData;”, 1, 1)
/* ScalarData */ typedef struct {double insg;双scalarParam;双outSig;} ScalarData;

查看示例遗留源文件getsetSrc.c.该文件定义并初始化一个全局变量ex_getset_data它使用结构类型ComponentData.初始化包含子结构的值标量

rtwdemodbtype (“getsetSrc.c”'/*字段"标量" */''/* "标量"结束*/', 1, 1)
/ *字段“标量”* /{3.9,12.3,0.0},/ * * /“标量”的结束

该文件还定义了读写子结构字段的函数标量.这些函数通过取消对全局结构变量的叶字段的引用来简化数据访问ex_getset_data

rtwdemodbtype (“getsetSrc.c”...'/*标量get()和set()函数*/''/*标量函数的结束*/', 1, 1)
/*标量get()和set()函数*/ double get_inSig(void) {return ex_getset_data.scala . insig;{ex_getset_data.scalars}无效set_inSig(双值)。insg =价值;} double get_scalarParam(void){返回ex_getset_data.scalars.scalarParam;} void set_scalarParam(double value) {ex_getset_data.scalars. scalars. xmlscalarParam = value;} double get_outSig(void){返回ex_getset_data.scala . outsig;} void set_outSig(double value) {ex_getset_data.scalars. xmloutSig = value;}

查看示例遗留头文件getsetHdrScalar.h.该文件包含走读生原型得到而且定义的函数getsetSrc.c

打开示例模型rtwdemo_getset_scalar.模型创建数据对象inSigoutSig,scalarParam在基本工作区中。对象对应于模型中的信号和参数。

open_system (“rtwdemo_getset_scalar”

在基本工作区中,双击该对象inSig查看其属性。对象使用存储类GetSet.的GetFunction而且SetFunction属性设置为默认值,get_ $ N而且set_ $ N.生成的代码使用中指定的函数名GetFunction而且SetFunction读取和写入数据。代码替换令牌$ N数据对象的名称。例如,对于数据对象inSig,生成的代码使用对遗留函数的调用get_inSig而且set_inSig

对于数据对象inSig,HeaderFile属性设置为getsetHdrScalar.h.此遗留头文件包含得到而且函数原型。数据对象outSig而且scalarParam也可以使用存储类GetSet头文件getsetHdrScalar.h

在“模型配置参数”对话框中,在代码生成>自定义代码窗格中,在其他构建信息中,选择源文件.的源文件框标识源文件getsetSrc.c用于在构建过程中包含。此遗留源文件包含得到而且函数定义和全局结构变量的定义ex_getset_data

使用示例模型生成代码。

slbuild (“rtwdemo_getset_scalar”);
rtwdemo_getset_scalar的构建过程已成功完成构建摘要构建的顶级模型目标:模型动作重建原因====================================================================================================== rtwdemo_getset_scalar生成和编译的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 34.998秒

在代码生成报告中,查看该文件rtwdemo_getset_scalar.c.该模型一步函数使用遗留的得到而且函数来执行算法。生成的代码通过调用自定义的手写代码来访问遗留信号和参数数据得到而且功能。

rtwdemodbtype (fullfile (“rtwdemo_getset_scalar_ert_rtw”“rtwdemo_getset_scalar.c”),...'/*模型阶跃函数*/'“}”, 1, 1)
/*模型步函数*/ void rtwdemo_getset_scalar_step(void){/*增益:'<根>/增益'合并:*输入:'<根>/In1' */ set_outSig(get_scalarParam() * get_inSig());}

您可以生成调用自定义的代码得到而且函数,只要您编写的函数接受并返回期望的值。对于标量数据,函数必须具有以下特征:

  • 得到函数必须返回适当数据类型的单个标量数值,并且不能接受任何参数(无效).

  • 函数必须不返回任何内容(无效),并且必须接受适当数据类型的单个标量数值。

使用GetSet矢量数据

这个例子展示了如何应用存储类GetSet信号和参数是向量。

查看示例遗留头文件ComponentDataHdr.h.该文件定义了一个大型结构类型ComponentData

rtwdemodbtype (“ComponentDataHdr.h”'/* ComponentData */'“}ComponentData;”, 1, 1)
/* ComponentData */ typedef struct {ScalarData的标量;VectorData向量;StructData结构;MatricesData矩阵;} ComponentData;

这个领域向量是否使用该结构类型的子结构VectorData.结构类型VectorData定义三个向量字段:inVectorvectorParam,outVector.每个向量有5个元素。

rtwdemodbtype (“ComponentDataHdr.h”'/* VectorData */'“}VectorData;”, 1, 1)
/* VectorData */ typedef struct{双vector [5];双vectorParam [5];双outVector [5];} VectorData;

查看示例遗留源文件getsetSrc.c.该文件定义并初始化一个全局变量ex_getset_data它使用结构类型ComponentData.初始化包含子结构的值向量

rtwdemodbtype (“getsetSrc.c”/*字段“向量”*/''/* "向量"结束*/', 1, 1)
/ *字段“向量”* /{{5.7,6.8,1.2,3.5,10.1},{12.3,18.7,21.2,28日,32.9},{0.0,0.0,0.0,0.0,0.0}},/ * * /“向量”的结束

该文件还定义了读写子结构字段的函数向量.这些函数通过取消对全局结构变量的叶字段的引用来简化数据访问ex_getset_data.为了访问向量数据,函数接受一个整数索引参数。的得到函数返回输入下标处的向量值。的函数为输入赋值价值到输入索引。

rtwdemodbtype (“getsetSrc.c”...'/*向量get()和set()函数*/''/*向量函数结束*/', 1, 1)
/* Vector get()和set()函数*/ double get_inVector(int index) {return ex_getset_data.vectors.inVector[index];} void set_vector (int索引,double值){ex_getset_data.vectors. vector . ex_getset_data.vector .vector . ex_getset_data.vector .vector . ex_getset_data.vector .vector。index = value;} double get_vectorParam(int index){返回ex_getset_data.vectors.vectorParam[index];} void set_vectorParam(int索引,double值){ex_getset_data.vectors. vector . xmlvectorParam[index] = value;} double get_outVector(int index){返回ex_getset_data.vectors.outVector[index];} void set_outVector(int索引,double值){ex_getset_data.vectors. xmloutVector[index] = value;}

查看示例遗留头文件getsetHdrVector.h.该文件包含走读生原型得到而且定义的函数getsetSrc.c

打开示例模型rtwdemo_getset_vector.模型创建数据对象inVectoroutVector,vectorParam在基本工作区中。对象对应于模型中的信号和参数。

open_system (“rtwdemo_getset_vector”

在基本工作区中,双击该对象inVector查看其属性。对象使用存储类GetSet.房地产HeaderFile指定为getsetHdrVector.h.此遗留头文件包含得到而且函数原型。

在“配置参数”对话框中,在代码生成>自定义代码窗格中的示例遗留源文件getsetSrc.c在构建过程中被标识为包含。此遗留源文件包含得到而且函数定义和全局结构变量的定义ex_getset_data

使用示例模型生成代码。

slbuild (“rtwdemo_getset_vector”);
###开始构建过程:rtwdemo_getset_vector成功完成构建过程:rtwdemo_getset_vector构建摘要顶级模型目标构建:模型动作重建原因====================================================================================================== rtwdemo_getset_vector生成和编译的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 34.459s

在代码生成报告中,查看该文件rtwdemo_getset_vector.c.该模型一步函数使用遗留的得到而且函数来执行算法。

rtwdemodbtype (fullfile (“rtwdemo_getset_vector_ert_rtw”“rtwdemo_getset_vector.c”),...'/*模型阶跃函数*/'“}”, 1, 1)
/*模型步长函数*/ void rtwdemo_getset_vector_step(void) {int32_T i;For (i = 0;I < 5;i++){/*增益:'<根>/增益'合并:*输入:'<根>/In1' */ set_outVector(i, get_vectorParam(i) * get_inVector(i));}

当您使用存储类时GetSet对于向量数据,得到而且您提供的函数必须接受索引输入。的得到函数必须返回向量的单个元素。的函数必须写入向量的单个元素。

使用GetSet使用结构化数据

这个例子展示了如何应用存储类GetSet模型中的非虚拟总线信号和结构参数。

查看示例遗留头文件ComponentDataHdr.h.该文件定义了一个大型结构类型ComponentData

rtwdemodbtype (“ComponentDataHdr.h”...'/* ComponentData */'“}ComponentData;”, 1, 1)
/* ComponentData */ typedef struct {ScalarData的标量;VectorData向量;StructData结构;MatricesData矩阵;} ComponentData;

这个领域结构体是否使用该结构类型的子结构StructData.结构类型StructData定义三个字段:指导structParam,outStruct

rtwdemodbtype (“ComponentDataHdr.h”/* StructData */'“}StructData;”, 1, 1)
/* StructData */ typedef struct {SigBus指令;ParamBus structParam;rt_signal_lease outStruct;} StructData;

的字段指导structParam,outStruct子结构是否也使用结构类型rt_signal_lease而且ParamBus.这两种结构类型都定义了三个标量字段。

rtwdemodbtype (“ComponentDataHdr.h”'/* SigBus */''} ParamBus ', 1, 1)
/* SigBus */ typedef struct {double cmd;双sensor1;双sensor2;} rt_signal_lease;/* ParamBus */ typedef struct {double offset;双gain1;双gain2;} ParamBus;

查看示例遗留源文件getsetSrc.c.该文件定义并初始化一个全局变量ex_getset_data它使用结构类型ComponentData.初始化包含子结构的值结构体

rtwdemodbtype (“getsetSrc.c”...'/*字段"structs" */''/* "structs"结束*/', 1, 1)
/ *字段“结构”* /{{1.3,5.7,9.2},{12.3,9.6,1.76},{0.0,0.0,0.0}},/ * "结构" * /结束

该文件还定义了读写子结构字段的函数结构体.这些函数通过取消对全局结构变量字段的引用来简化数据访问ex_getset_data.函数访问字段中的数据指导structParam,outStruct通过接受并返回类型的完整结构rt_signal_lease而且ParamBus

rtwdemodbtype (“getsetSrc.c”...'/*构造get()和set()函数*/'...'/*结构函数结束*/', 1, 1)
/*结构get()和set()函数*/ SigBus get_directive (void){返回ex_getset_data.structs. directive;{ex_getset_data.structs}无效set_inStruct (rt_signal_lease值)。指令=值;} ParamBus get_structParam(void){返回ex_getset_data.structs.structParam;{ex_getset_data.structs}无效set_structParam (ParamBus值)。structParam = value;} SigBus get_outStruct(void){返回ex_getset_data.structs.outStruct;{ex_getset_data.structs}无效set_outStruct (rt_signal_lease值)。outStruct = value;}

查看示例遗留头文件getsetHdrStruct.h.该文件包含走读生原型得到而且定义的函数getsetSrc.c

打开示例模型rtwdemo_getset_struct.模型创建数据对象指导structParam,outStruct在基本工作区中。对象对应于模型中的信号和参数。

open_system (“rtwdemo_getset_struct”

在基本工作区中,双击该对象指导查看其属性。对象使用存储类GetSet.房地产HeaderFile指定为getsetHdrStruct.h.此遗留头文件包含得到而且函数原型。

该模型还创建了总线对象ParamBus而且rt_signal_lease在基本工作区中。模型中的信号和参数使用这些对象定义的总线类型。房地产DataScope每个总线对象的进口.房地产HeaderFile设置为ComponentDataHdr.h.生成的代码从遗留头文件导入这些结构类型ComponentDataHdr.h

在“模型配置参数”对话框中,在代码生成>自定义代码窗格中的示例遗留源文件getsetSrc.c在构建过程中被标识为包含。此遗留源文件包含得到而且函数定义和全局结构变量的定义ex_getset_data

使用示例模型生成代码。

slbuild (“rtwdemo_getset_struct”);
rtwdemo_getset_struct的构建过程成功完成:rtwdemo_getset_struct构建摘要构建的顶级模型目标:模型动作重建原因====================================================================================================== rtwdemo_getset_struct生成和编译的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建时间:0h 0m 16.575s

在代码生成报告中,查看该文件rtwdemo_getset_struct.c.该模型一步函数使用遗留的得到而且函数来执行算法。

rtwdemodbtype (fullfile (“rtwdemo_getset_struct_ert_rtw”...“rtwdemo_getset_struct.c”),...'/*模型阶跃函数*/'“}”, 1, 1)
/*模型步函数*/ void rtwdemo_getset_struct_step(void){/*偏差:'<根>/偏差'合并:*输入:'<根>/In1' */ rtdww . buscreator .cmd = (get_instruction()))。cmd + (get_structParam()).offset;/*增益:'<根>/增益'合并:*输入:'<根>/In1' */ rtdww . buscreator。sensor1 = (get_structParam())。gain1 * (get_instruction ()).sensor1;/*增益:'<根>/Gain1'合并:*输入:'<根>/In1' */ rtdww . buscreator。sensor2 = (get_structParam())。gain2 * (get_instruction ()).sensor2;/* SignalConversion: '<根>/信号转换' */ set_outStruct(rtdww . buscreator);}

当您使用存储类时GetSet对于结构化数据,可以使用得到而且您提供的函数必须返回并接受完整的结构。所生成的代码对结构的各个字段进行解引用得到函数返回。

总线创建器块的输出信号是一个测试点。这个信号是信号转换块的输入。测试点和Signal Conversion块存在,因此生成的代码为总线创建器块的输出定义了一个变量。为函数提供完整的结构参数set_outStruct,则必须配置模型以创建此变量。

使用GetSet矩阵数据

这个例子展示了如何应用存储类GetSet信号和参数是矩阵。

查看示例遗留头文件ComponentDataHdr.h.该文件定义了一个大型结构类型ComponentData

rtwdemodbtype (“ComponentDataHdr.h”...'/* ComponentData */'“}ComponentData;”, 1, 1)
/* ComponentData */ typedef struct {ScalarData的标量;VectorData向量;StructData结构;MatricesData矩阵;} ComponentData;

这个领域矩阵是否使用该结构类型的子结构MatricesData.结构类型MatricesData定义三个字段:matrixInputmatrixParam,matrixOutput.字段以串行数组的形式存储矩阵数据。在本例中,输入和参数字段各有15个元素。输出字段有9个元素。

rtwdemodbtype (“ComponentDataHdr.h”...'/* MatricesData */'“}MatricesData;”, 1, 1)
/* MatricesData */ typedef struct {double matrixInput[15];双matrixParam [15];双matrixOutput [9];} MatricesData;

查看示例遗留源文件getsetSrc.c.该文件定义并初始化一个全局变量ex_getset_data它使用结构类型ComponentData.初始化包含子结构的值矩阵

rtwdemodbtype (“getsetSrc.c”.../*字段“矩阵”*//*“矩阵”的结尾*/', 1, 1)
/ *字段“矩阵”* /{{12.0,13.9,7.4,0.5,11.8,6.4,4.7,5.3,13.0,0.7,16.1,13.5,1.6,0.5,3.1},{8.3,12.0,11.5,2.0,5.7,7.5,12.8,11.1,8.4,9.9,10.9,4.6,2.7,16.3,3.8},{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}}/ * * /“矩阵”的结束

输入矩阵有五行三列。矩阵参数有三行五列。矩阵输出有三行三列。该文件定义了指示这些维度的宏。

rtwdemodbtype (“getsetSrc.c”...'/*矩阵维度*/''/*矩阵维数结束*/', 1, 1)
/*矩阵维数*/ #定义矩阵维数5 #定义矩阵维数3 #定义矩阵维数5 #定义矩阵维数5 #定义矩阵维数

该文件还定义了读写子结构字段的函数矩阵

rtwdemodbtype (“getsetSrc.c”...'/*矩阵get()和set()函数*/''/*矩阵函数结束*/', 1, 1)
/*矩阵get()和set()函数*/ double get_matrixInput(int colIndex) {int rowIndexGetInput = MATRIXINPUT_NCOLS * (colIndex % MATRIXINPUT_NROWS) + colIndex/MATRIXINPUT_NROWS;返回ex_getset_data.matrices.matrixInput [rowIndexGetInput];} void set_matrixInput(int colIndex, double value) {int rowIndexSetInput = MATRIXINPUT_NCOLS * (colIndex % MATRIXINPUT_NROWS) + colIndex/MATRIXINPUT_NROWS;ex_getset_data.matrices。matrixInput[rowIndexSetInput] = value; } double get_matrixParam(int colIndex) { int rowIndexGetParam = MATRIXPARAM_NCOLS * (colIndex % MATRIXPARAM_NROWS) + colIndex/MATRIXPARAM_NROWS; return ex_getset_data.matrices.matrixParam[rowIndexGetParam]; } void set_matrixParam(int colIndex, double value) { int rowIndexSetParam = MATRIXPARAM_NCOLS * (colIndex % MATRIXPARAM_NROWS) + colIndex/MATRIXPARAM_NROWS; ex_getset_data.matrices.matrixParam[rowIndexSetParam] = value; } double get_matrixOutput(int colIndex) { int rowIndexGetOut = MATRIXOUTPUT_NCOLS * (colIndex % MATRIXOUTPUT_NROWS) + colIndex/MATRIXOUTPUT_NROWS; return ex_getset_data.matrices.matrixOutput[rowIndexGetOut]; } void set_matrixOutput(int colIndex, double value) { int rowIndexSetOut = MATRIXOUTPUT_NCOLS * (colIndex % MATRIXOUTPUT_NROWS) + colIndex/MATRIXOUTPUT_NROWS; ex_getset_data.matrices.matrixOutput[rowIndexSetOut] = value; }

从模型生成的代码将矩阵表示为串行数组。因此,每一个得到而且函数接受单个标量索引参数。

生成的代码使用列主格式存储和访问矩阵数据。然而,许多C应用程序使用行主索引。将生成的代码与存储矩阵的示例遗留代码集成matrixInput而且matrixParam使用行主格式,自定义得到函数使用列主索引输入计算等效的行主索引。生成的代码算法默认情况下使用列-主格式解释矩阵数据,执行正确的矩阵数学,因为得到函数有效地将遗留矩阵转换为列主格式。的函数的输出,matrixOutput,也计算行主索引,因此代码将算法输出写入matrixOutput使用行主行格式。或者,要将列主格式生成的代码与行主格式遗留代码集成,可以通过转换矩阵数据和算法手动将遗留代码转换为列主格式。

查看示例遗留头文件getsetHdrMatrix.h.该文件包含走读生原型得到而且定义的函数getsetSrc.c

打开示例模型rtwdemo_getset_matrix.模型创建数据对象matrixInputmatrixParam,matrixOutput在基本工作区中。对象对应于模型中的信号和参数。

load_system (“rtwdemo_getset_matrix”) set_param (“rtwdemo_getset_matrix”“SimulationCommand”“更新”) open_system (“rtwdemo_getset_matrix”

在基本工作区中,双击该对象matrixInput查看其属性。对象使用存储类GetSet.房地产HeaderFile指定为getsetHdrMatrix.h.此遗留头文件包含得到而且函数原型。

在“配置参数”对话框中,在代码生成>自定义代码窗格中的示例遗留源文件getsetSrc.c在构建过程中被标识为包含。此遗留源文件包含得到而且函数定义和全局结构变量的定义ex_getset_data

使用示例模型生成代码。

slbuild (“rtwdemo_getset_matrix”);
###开始构建过程:rtwdemo_getset_matrix成功完成构建过程:rtwdemo_getset_matrix构建摘要顶层模型目标构建:模型动作重建原因====================================================================================================== rtwdemo_getset_matrix生成和编译的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 14.472s

在代码生成报告中,查看该文件rtwdemo_getset_matrix.c.该模型一步函数使用遗留的得到而且函数来执行算法。

rtwdemodbtype (fullfile (“rtwdemo_getset_matrix_ert_rtw”...“rtwdemo_getset_matrix.c”),'/*模型阶跃函数*/'“}”, 1, 1)
/*模型步长函数*/ void rtwdemo_getset_matrix_step(void) {int32_T i;int32_T i_0;int32_T i_1;int32_T matrixOutput_tmp;For (i_0 = 0;I_0 < 3;I_0 ++) {for (i = 0;I < 3;i++) {/* Product: '<根>/Product'合并:* Constant: '<根>/Constant' * Inport: '<根>/In1' */ matrixOutput_tmp = 3 * i_0 + i;set_matrixOutput (matrixOutput_tmp, 0.0); for (i_1 = 0; i_1 < 5; i_1++) { set_matrixOutput(matrixOutput_tmp, get_matrixParam(3 * i_1 + i) * get_matrixInput(5 * i_0 + i_1) + get_matrixOutput (matrixOutput_tmp)); }

为数据项指定头文件或函数命名方案

默认情况下,指定头文件名,得到函数名,和使用存储类的每个数据项(如信号或参数)的函数名GetSet

要配置单个头文件,得到函数命名方案,或函数命名方案用于每个数据项,则可以使用自定义存储类设计器创建自己的副本GetSet.您可以在单个位置指定头文件或函数名。

按照以下步骤创建您自己的存储类:创建您自己的数据类包,创建一个副本GetSet,并将新的存储类应用于模型中的数据项。

  1. 创建自己的数据类包,myPackage,通过复制示例包文件夹+金宝app SimulinkDemos并将复制的文件夹重命名为+ myPackage.修改参数而且信号类定义,以便它们使用来自的存储类定义myPackage.有关示例,请参见创建数据类包

  2. 将当前文件夹设置为包含包文件夹的文件夹。或者,将包含包文件夹的文件夹添加到MATLAB中®路径。

  3. 打开自定义存储类设计器。

    cscdesigner (“myPackage”
  4. 选择存储类GetSet.点击复制创建一个名为GetSet_1

  5. 选择新的存储类GetSet_1.在一般选项卡,设置的名字myGetSet

  6. 设置下拉列表头文件指定.在新的文本框中,设置头文件myFcnHdr.h.点击应用

  7. Access功能属性选项卡,设置下拉列表获取函数而且集函数指定

  8. 在新的盒子里,设置获取函数myGetFcn_ $ N而且集函数mySetFcn_ $ N.点击好吧.点击是的响应关于保存更改的消息。

    生成代码时,令牌$ N展开为使用此存储类的数据项的名称。

  9. 应用存储类myGetSet从您的包到数据项。例如,创建一个myPackage。参数基本工作区中的对象。

    myParam = myPackage.Parameter(15.23);myParam.CoderInfo.StorageClass =“自定义”;myParam.CoderInfo.CustomStorageClass =“myGetSet”

  10. 使用对象在模型中设置参数值。生成代码时,代码算法通过指定的函数访问参数。该代码使用# include指令来包含您指定的头文件。

通过宏而不是函数调用访问标量和数组数据

如果您实现得到将标量或数组数据作为宏而不是函数的机制,可以生成在读取数据时省略括号的代码。

  • 对于标量数据,宏必须生成标量值。

  • 对于数组数据,宏必须提供起始内存地址。

创建自己的AccessFunction使用自定义存储类设计器,如中所述为数据项指定头文件或函数命名方案.在“设计器”中,在Access功能属性选项卡上,选择通过宏获取数据(省略括号)

GetSet存储类别限制

  • GetSet不支持复杂信号。金宝app

  • 同一模型中的多个数据不能使用相同的数据GetFunctionSetFunction

  • 有些块不直接支持金宝appGetSet

  • 自定义s函数不直接支持金宝appGetSet

使用GetSet使用不支持的块或自定金宝app义s函数:

  1. 插入一个信号转换块或函数的输出。

  2. 信号转换对话框中,选择从“减少块”优化中排除此块

  3. 分配存储类GetSet的输出信号转换块。

相关的话题