Задайте переиспользуемость памяти, выделенной выходному порту 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® продукт использует только настройку переиспользуемости во время симуляции. Он игнорирует настройку возможностей памяти, то есть локальную или глобальную, вместо этого обрабатывая все порты S-функции как глобальные во время симуляции.
Примечание
Продукт Simulink Coder™ использует настройку возможностей памяти, заданную вами при генерации кода из модели. Если ваша S-функция обращается к выходам только в mdlOutputs
Продукт Simulink Coder пытается объявить локальные переменные для любых выходов с локальными возможностями. Если ваша S-функция использует выходы таким образом, чтобы исключить использование локальных возможностей, сгенерированный код использует глобальные переменные для выходов. Для получения дополнительной информации см. S-Functions for Multitasking Environments (Simulink Coder).
C, C++
Смотрите S-функцию sdotproduct.c
используется в sfcndemo_sdotproduct
и S-функции sfun_multirate.c
используется в sfcndemo_sfun_multirate
.