Ограниченные по объему функциональные блоки Simulink в подсистемах

Осциллограф функции Simulink® задан в ее родительской подсистеме в контексте модели. Если вы помещаете функцию в какой-либо блок Subsystem, доступ к функции снаружи модели запрещается по умолчанию. В обоих случаях параметр видимости Функции блока Trigger устанавливается на scoped. Функциональный блок Simulink может быть расположен:

  • В виртуальной подсистеме — Вызывают функцию из содержания иерархии блока Subsystem, не квалифицируя имя функции или вызывают функцию снаружи подсистемы путем квалификации имени функции с именем блока подсистемы.

  • В атомарной или невиртуальной подсистеме — Вызывают функцию из содержания иерархии блока Subsystem, не квалифицируя имя функции. Доступ к функции от за пределами подсистемы запрещается.

Решите к функции иерархически

Размещение ограниченного по объему Функционального блока Simulink в любом блоке Subsystem (виртуальный или атомарный) ограничивает доступ к функции и удаляет имя функции из глобального пространства имен. Когда функциональная вызывающая сторона решает к функции иерархически, она ищет функцию, использующую следующие правила:

  • Правило 1 разрешения: ограниченный по объему Функциональный блок Simulink в текущем блоке Subsystem с функциональной вызывающей стороной?

  • Правило 2 разрешения. Если ограниченная по объему функция не находится в текущей подсистеме, ограниченный по объему Функциональный блок Simulink в родительском элементе или блоке Subsystem прародителя один или несколько уровней выше функциональной вызывающей стороны?

Если функциональная вызывающая сторона решает к функции иерархически, можно вызвать функцию, не квалифицируя имя функции:

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

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

  • Можно также вызвать Функциональный блок Simulink в блоке Subsystem без проверки от блока MATLAB function или графика Stateflow® в блоке.

Решите к функции проверкой

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

  • Правило 1 разрешения: виртуальный блок Subsystem в текущем компоненте с функциональной вызывающей стороной? Компонент может быть блоком Subsystem или Моделью.

  • Правило 2 разрешения. Если виртуальный блок Subsystem не находится в текущем компоненте, виртуальный блок Subsystem в родительском элементе или компоненте прародителя один или несколько уровней выше функциональной вызывающей стороны?

Если функциональная вызывающая сторона решает к виртуальному блоку Subsystem с ограниченной по объему функцией, можно вызвать функцию путем квалификации имени функции:

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

  • Вызывание функции от диаграммы Stateflow вне подсистемы один иерархический уровень выше функции. В этом случае функциональная вызывающая сторона находит блок Subsystem с ограниченной по объему функцией в текущей модели (Правило 1 Разрешения).

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

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

    Функциональная иерархия вызывающей стороны не может включать Блок модели, поскольку функциональная вызывающая сторона не может пересечь контуры модели - ссылки.

Смотрите также

Блоки

Похожие темы

Была ли эта тема полезной?