Осциллограф Simulink® функция задана в контексте модели. Если вы помещаете блок Simulink Function в модель на корневом уровне, функция ограничена по объему к модели по умолчанию. Блок Trigger параметр Function visibility установлен в scoped
. Доступ к функции с функциональной расположенной вызывающей стороной:
В иерархии модели, содержащей функцию. Вызовите функцию, не квалифицируя имя функции.
Вне модели. Вызовите функцию путем квалификации имени функции с именем экземпляра блока модели, не имени файла модели.
Установка Function visibility для блока Simulink Function к global
позволяет вам получать доступ к функции отовсюду в модели или родительской модели. В результате модели с набором блока Simulink Function к глобальной переменной не могут быть мультиинстанцированы, потому что имена функций должны быть уникальными.
Размещение ограниченного по объему блока Simulink Function в модели на корневом уровне ограничивает доступ к функции и удаляет имя функции из глобального пространства имен.
Функциональная вызывающая сторона расположена в текущей модели.
Вы не можете разместить функциональную вызывающую сторону в блоке Model и блоке Simulink Function в родительской модели,
Если вы размещаете функциональную вызывающую сторону в блоке Model, Simulink отображает ошибку. Эта ошибка происходит, потому что модель, содержащая вызывающую сторону, не знает имя функции. Вызовы функции не могут пересечь контуры модели - ссылки.
Когда вы помещаете блок Simulink Function в блок Model, имя функции не доступно вне модели. Однако можно вызвать функцию путем квалификации имени функции с именем блока Model. Когда функциональная вызывающая сторона решает к квалифицированной функции иерархически, она ищет блок Model, содержащий функцию, использующую следующие правила:
Правило 1 разрешения: блок Model в текущей модели с функциональной вызывающей стороной?
Правило 2 разрешения: Если блок Model не находится в текущей модели или подсистеме, блок Model в родительском элементе или модели прародителя один или несколько уровней выше функциональной вызывающей стороны?
Если функциональная вызывающая сторона решает с блоком Model с ограниченной по объему функцией, можно вызвать функцию путем квалификации имени функции:
Функциональная вызывающая сторона, расположенная за пределами блока Model один иерархический уровень выше функции. В этом случае функциональная вызывающая сторона находит блок Model с ограниченной по объему функцией в текущей модели (Правило 1 Разрешения).
Функциональная вызывающая сторона в подсистеме на том же иерархическом уровне как функция. В этом случае функциональная вызывающая сторона не нашла блок Model в текущей подсистеме, но это нашло блок Model в родительской модели (Правило 2 Разрешения).
Вы не можете поместить Функциональный блок Simulink в один блок Model и функциональную вызывающую сторону в другом блоке Model.
Если вы помещаете блок Simulink Function в модель, на которую ссылаются, и функциональную вызывающую сторону в другой модели, на которую ссылаются, Simulink отображает ошибку. Эта ошибка происходит, потому что квалифицированное имя функции с помощью имени блока Model не отображается к модели, содержащей вызывающую сторону.
Если вы хотите получить доступ к функции с помощью этого шаблона моделирования, смотрите раздел Function Caller Block in Referenced Model и Function и раздел Function Caller in Separate Models в теме Функциональные блоки Simulink в Моделях, на которые Ссылаются.
Установка Function visibility для блока Simulink Function к scoped
инкапсулирует функцию в модели, позволяя вам мультиинстанцировать модель. Добавление имени экземпляра модели к имени функции создает квалифицированное имя функции, которое уникально в родительской модели.
Создайте модель, содержащую блоки Simulink Function.
По умолчанию параметр Function visibility для блока Trigger в блоке Simulink Function устанавливается на scoped
.
Сошлитесь на модель с функциями Simulink от нескольких блоков Model. Добавьте блок Function-Call Subsystem, чтобы запланировать вызовы функций.
Добавьте блоки Function Caller в блок Function-Call Subsystem. Доступ к функции в отдельных экземплярах модели путем квалификации имени функции с именем блока.
На вкладке Debug выберите Information Overlays . От выпадающего поля выберите Function Connectors .
Прослеживающие линии проведены, чтобы помочь вам перейти от функциональной вызывающей стороны к функции.
Для модели с помощью Функциональных блоков Simulink с несколькими экземплярами смотрите, что Моделирующие Допускающие повторное использование Компоненты Использовать Умножают Инстанцированные Функции Simulink.