Укажите, что блок 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. В основном, если блок безусловно поддерживает или не поддерживает Для Каждой подсистемы, функция может использоваться в 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);
}