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