Обзор масштабных и глобальных функциональных блоков Simulink

Определение видимости функций может помочь вам избежать конфликтов пространства имен при интеграции ссылочных моделей. Блок Simulink Function определяет видимость своей функции в связи с подсистемой или моделью, содержащей блок, как ограниченный или глобальный. По умолчанию Simulink Function блоки просматриваются.

  • Видимость функции. Функция scoped видна в ее иерархии. Вызывающий функцию абонент, расположенный на том же уровне, что и функция, или один или несколько уровней ниже, может ссылаться на функцию. Глобальная функция видна в иерархии модели. Это означает, что вызывающий функцию абонент, расположенный в любом месте текущей модели или в иерархии родительской модели, может ссылаться на функцию.

  • Доступность функции определяется видимостью функции и местоположением вызывающего абонента функции относительно блока Simulink Function. Для вызывающих функций на одном иерархическом уровне выше функции укажите имя функции с именем блока виртуальной подсистемы или именем блока модели.

  • Экспорт функций относится к функциям, экспортированным из моделей. Функция с глобальной видимостью, размещенная где угодно в модели экспорта функций, экспортируется на верхний уровень иерархии модели в дополнение к интерфейсу модели. Функция с масштабированной видимостью на корневом уровне модели экспорта функций экспортируется в интерфейс модели. В обоих случаях можно получить доступ к экспортированной функции за пределами модели.

Используйте параметр Function visibility для блока Trigger в блоке Simulink Function, чтобы задать видимость функции на scoped или global.

Сводные данные видимости и доступа функциональных блоков Simulink

 Видимость функцииДоступность функцийЭкспорт функций
Виртуальная подсистема

scoped

Имя функции не должно быть уникальным

вызывающий функцию абонент внутри иерархии или на родительском уровне.

вызывающий функцию абонент внутри иерархии блоков Subsystem - неквалифицированный, fcn(). Смотрите Разрешение на функцию иерархически в Scoped Simulink Function Blocks in Subsystems.

вызывающий функцию на родительском уровне - квалифицированный с именем блока подсистемы, subsystem.fcn(). Смотрите Разрешение на функцию по проверке в Scoped Simulink Function Blocks in Subsystems.

Не применяется

global

Имя функции должно быть уникальным

вызывающий функцию на любом уровне иерархии вниз или вверх.

вызывающий функцию на любом уровне иерархии - неквалифицированный, fcn()

Функция на любом уровне модели, экспортированная в глобальное пространство имен модели верхнего уровня

Атомарная подсистема

scoped

Имя функции не должно быть уникальным

вызывающий функцию только внутри иерархии

вызывающий функцию абонент внутри иерархии блоков Subsystem - неквалифицированный, fcn(). Смотрите Разрешение на функцию иерархически в Scoped Simulink Function Blocks in Subsystems.

вызывающий функцию на родительском уровне - не допускается

Не применяется

global видимость не допускается

вызов функции не разрешен

Не применяется

Модель

scoped

Имя функции не должно быть уникальным

вызывающий функцию абонент внутри иерархии или на родительском уровне.

вызывающий функцию абонент внутри иерархии блоков Subsystem - неквалифицированный, fcn(). Смотрите Разрешение на функцию иерархически в Scoped Simulink Function Blocks in Models.

вызывающий функцию на родительском уровне - определяется именем блока Model, model_block.fcn(). Смотрите Разрешение на функцию по проверке в Scoped Simulink Function Blocks in Models.

Функция на корневом уровне модели, экспортированной в интерфейс модели

global

Имя функции должно быть уникальным

вызывающий функцию на любом уровне иерархии вниз или вверх.

вызывающий функцию на любом уровне иерархии - неквалифицированный, fcn()

Функция на любом уровне модели, экспортированная в глобальное пространство имен модели верхнего уровня

См. также

Блоки

Похожие темы