Определение видимости функций позволяет избежать конфликтов пространства имен при интеграции ссылочных моделей. Функциональный блок Simulink определяет видимость своей функции по отношению к подсистеме или модели, содержащей блок, как имеющий область действия или глобальный. По умолчанию объем функциональных блоков Simulink определен.
Видимость функции. Функция с областью видимости видна в ее иерархии. Вызывающая функция, расположенная на том же уровне, что и функция, или один или несколько уровней ниже могут ссылаться на функцию. Глобальная функция видна в иерархии модели. Это означает, что вызывающая функция, расположенная в любом месте текущей модели или иерархии родительской модели, может ссылаться на функцию.
Доступность функции определяется видимостью функции и расположением вызывающего абонента функции относительно блока функции Simulink. Для вызывающих функций на одном иерархическом уровне выше функции следует квалифицировать имя функции как имя блока виртуальной подсистемы или имя блока модели.
Экспорт функций относится к функциям, экспортированным из моделей. Функция с глобальной видимостью, размещенная в любом месте модели функции экспорта, экспортируется на верхний уровень иерархии модели в дополнение к интерфейсу модели. Функция с видимостью в области на корневом уровне модели функции экспорта экспортируется в интерфейс модели. В обоих случаях можно получить доступ к экспортированной функции вне модели.
Используйте параметр видимости функции для блока триггера в блоке функции Simulink, чтобы установить видимость функции на scoped или global.
Обзор видимости и доступа к функциональным блокам Simulink
| Видимость функции | Доступность функции | Экспорт функции | |
|---|---|---|---|
| Виртуальная подсистема |
Имя функции не обязательно должно быть уникальным | вызывающая функция внутри иерархии или на родительском уровне. вызывающая функция внутри иерархии блоков подсистемы - без квалификации, вызывающая функция на родительском уровне - с указанием имени блока подсистемы, | Не применяется |
Имя функции должно быть уникальным | вызывающая функция на любом уровне иерархии вниз или вверх. вызывающая функция на любом уровне иерархии - неквалифицированная, | Функция на любом уровне модели, экспортируемая в глобальное пространство имен модели верхнего уровня | |
| Атомная подсистема |
Имя функции не обязательно должно быть уникальным | функция, вызывающая только внутри иерархии вызывающая функция внутри иерархии блоков подсистемы - без квалификации, вызов функции на родительском уровне - не допускается | Не применяется |
| вызов функции не разрешен | Не применяется | |
| Модель |
Имя функции не обязательно должно быть уникальным | вызывающая функция внутри иерархии или на родительском уровне. вызывающая функция внутри иерархии блоков подсистемы - без квалификации, вызывающая функция на родительском уровне - с указанием имени блока модели, | Функция на корневом уровне модели, экспортируемая в интерфейс модели |
Имя функции должно быть уникальным | вызывающая функция на любом уровне иерархии вниз или вверх. вызывающая функция на любом уровне иерархии - неквалифицированная, | Функция на любом уровне модели, экспортируемая в глобальное пространство имен модели верхнего уровня |