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

Блок Function-Call Subsystem является условно выполняемой подсистемой, которая запускается каждый раз, когда управляющий сигнал получает событие вызова функции. График Stateflow®, Блок Function-Call Generator или Блок s-function могут обеспечить события вызова функции.

Подсистема вызова функций походит на функцию на языке процедурного программирования. Вызов подсистемы вызова функций выполняет выходные методы блоков в подсистеме в отсортированном порядке. Для объяснения блочных параметров Подсистемы вызова функций смотрите Подсистему, Атомарную подсистему, Невиртуальную Подсистему, Подсистему CodeReuse

Создание подсистемы вызова функций

Создать подсистему вызова функций:

  1. Добавьте блок Function-Call Subsystem к своей модели.

  2. Откройте блок подсистемы. Добавьте блок-схему, задающую алгоритм execuited, когда подсистема получит сигнал вызова функции.

  3. Установите начальные и отключенные значения для блоков Выходного порта. Смотрите Условные Выходные значения Начальной буквы Подсистемы и Условные Выходные значения Подсистемы, Когда Отключено.

  4. Установите, как состояния подсистемы обработаны, когда подсистема выполняется.

    Откройте блок подсистемы, и затем откройте блочное диалоговое окно параметров для блока Trigger. Из Штатов при включении выпадающего списка выберите:

    • held — Состояния поддерживают свои новые значения.

    • сброс Набор состояний к их начальным условиям.

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

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

  5. Присоедините инициатора вызова функции к входному порту вызова функции.

    Если вы присоединяете блок Inport, открываете блок, выберите панель Атрибутов Сигнала, и затем установите флажок вызова Выходной функции.

Распространение частоты дискретизации в подсистеме вызова функций

Сконфигурируйте блок Function-Call Subsystem путем установки типа Частоты дискретизации ее Триггерной блокировки порта к triggered или periodic.

  • Инициированная подсистема вызова функций может выполнить нуль, один, или многократно во время временного шага.

    Если подсистема вызова функций инициирована блоком Inport вызова функции корневого уровня с дискретной частотой дискретизации, несколько вызовов функции во время временного шага не позволены. Чтобы позволить несколько вызовов функции, установите Частоту дискретизации на -1 (наследованный), и установите частоту дискретизации для всех блоков в подсистеме вызова функций к (наследованному) -1.

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

Примечание

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

Предотвратить это обратное распространение:

  1. Добавьте блок Signal Conversion и блок Signal Specification после исходного порта.

  2. Установите Вывод блока Signal Conversion к Signal copy.

  3. Задайте минимальные и максимальные значения для блока Signal Specification вместо того, чтобы задать их на исходном порте.

Образцовые примеры

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

Блоки

Связанные примеры

Больше о

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