Задайте возможность многократного использования памяти, выделенной выходному порту S-функции
void ssSetOutputPortOptimOpts(SimStruct *S, int_T port, uint_T val)
S
SimStruct, представляющий Блок s-function.
port
Индекс выходного порта S
.
val
Возможность многократного использования port
. Допустимые значения
SS_NOT_REUSABLE_AND_GLOBAL
(значение по умолчанию)
SS_REUSABLE_AND_LOCAL
SS_REUSABLE_AND_GLOBAL
SS_NOT_REUSABLE_AND_LOCAL
Используйте этот макрос, чтобы задать возможность многократного использования и осциллограф памяти, выделенной выходному порту S-функции. Возможность многократного использования указывает, может ли память, сопоставленная с выходным портом, быть перезаписана. Необходимо указать, что выходной порт является допускающим повторное использование, если выходной порт соединяется с блоком Merge. Осциллограф указывает, хранятся ли переменные модели локально или глобально.
Вы не можете использовать ssGetOutputPortSignal
или ssGetOutputPortRealSignal
где угодно кроме mdlOutputs
стандартная программа, если вы указали, что выходные порты являются допускающими повторное использование.
Продукт Simulink® только использует возможность многократного использования, устанавливающую в процессе моделирования. Это игнорирует установку memory scope, т.е. локальный или глобальный, вместо этого обрабатывая все порты S-функции как глобальную переменную в процессе моделирования.
Продукт Simulink Coder™ использует установку memory scope, которую вы задали при генерации кода из модели. Если ваша S-функция получает доступ к выходным параметрам только в mdlOutputs
, продукт Simulink Coder пытается объявить локальные переменные для любых выходных параметров с локальным осциллографом. Если ваша S-функция использует выходные параметры способом, который устраняет использовать локальный осциллограф, сгенерированный код использует глобальные переменные в выходных параметрах. Смотрите S-функции для Многоскоростных Многозадачных Сред (Simulink Coder) для получения дополнительной информации.
C, C++
Смотрите S-функцию sdotproduct.c
используемый в sfcndemo_sdotproduct
и S-функция sfun_multirate.c
используемый в sfcndemo_sfun_multirate
.