Задайте, что блок For Each Subsystem поддерживает S-функцию, работающую внутри подсистемы.
void ssSupportsMultipleExecInstances(SimStruct *S, boolean_T val)
SSimStruct, представляющий блок S-Function.
valВектор символов имеет значение любой из true или false. Если trueтогда For Each Subsystem будет поддерживать, чтобы S-функция работала внутри него.
Позволяет блоку S-function работать из блока For Each Subsystem. Лучше всего вызвать этот макрос из mdlSetWorkWidths функция.
C, C++
В этом примере ssSupportsMultipleExecInstances функция находится внутри mdlInitializeSize. В основном, если блок безоговорочно поддерживает или не поддерживает подсистему For Each, функция может использоваться внутри mdlInitializeSize. Если же решение опирается на скомпилированную информацию, то эта функция должна использоваться внутри mdlSetWorkWidths.
static void mdlInitializeSizes(SimStruct *S)
{
ssSetNumDiscStates(S, 0); /* no default dstate */
if (!ssSetNumInputPorts(S, 1)) return;
ssSetInputPortWidth(S, 0, 1);
if (!ssSetNumOutputPorts(S, 1)) return;
ssSetOutputPortWidth(S, 0, 1);
ssSetNumRWork(S, 0);
ssSetNumDWork(S, 1);
ssSetNumIWork(S, 0);
ssSetNumPWork(S, 0);
ssSetNumModes(S, 0);
ssSetDWorkWidth(S, 0, 1);
ssSetDWorkUsedAsDState(S, 0, SS_DWORK_USED_AS_DSTATE);
ssSetDWorkName(S, 0, "State");
ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE |
SS_OPTION_WORKS_WITH_CODE_REUSE |
SS_OPTION_USE_TLC_WITH_ACCELERATOR);
ssSupportsMultipleExecInstances(S, true);
}