Укажите, что блок For Each Subsystem поддерживает работу S-функции в подсистеме.
void ssSupportsMultipleExecInstances(SimStruct *S, boolean_T val)
SSimStruct, представляющий Блок s-function.
valВектор символа имеет значение или true или false. Если true, то Для Каждой Подсистемы поддержит наличие S-функции, действует в нем.
Позволяет Блоку s-function действовать из блока For Each Subsystem. Лучше вызывать этот макрос от функции mdlSetWorkWidths.
C, C++
В этом примере функция ssSupportsMultipleExecInstances находится в mdlInitializeSize. В основном, если блок безусловно поддерживает или не поддерживает Для Каждой подсистемы, функция может использоваться в 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);
}