【发布时间】:2013-12-09 11:26:13
【问题描述】:
我的 SIMULINK 模型中有一个旧版 C 函数,它在其函数中使用了一些静态变量。静态变量是全局可用的。当我引用我的模型的多个实例时,我收到错误,因为我的 S-Function 没有为此配置。我收到此错误消息是因为代码生成不允许这样做。
我得到的错误信息如下:
在多实例正常模式下不支持 S-Function 块“ECDCTRL/PULDESC/S-Function Builder”,因为它没有声明它支持多个执行实例。如果 S-Function 满足多个执行实例的要求,您可以在 'mdlSetWorkWidths' 方法中使用 SimStruct 函数 'ssSupportsMultipleExecInstances' 进行声明。
我使用自动生成的代码构建(MYSFUNC)_Outputs_Wrapper.c 文件。在使用模型的多个引用时,如何确保可以使用旧的 C 函数? SIMULINK 网站建议使用ssSupportsMultipleExecInstances(SimStruct *S, bool flag) 方法,但这是不正确的,因为我没有使用SimStruct 头文件。周围的方法是什么?
【问题讨论】:
-
您对静态变量和多个实例有一个普遍的问题。请考虑在您的 SFunction 中使用 DWork 向量。
-
你能再澄清一点吗?我不熟悉它。
标签: code-generation simulink s-function