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

Подсистема вызова функций аналогична функции на процедурном языке программирования. Вызов подсистемы вызова функции выполняет методы вывода блоков в подсистеме в порядке выполнения. Описание параметров блока Function-Call Subsystem см. в разделе Подсистема.
Для создания подсистемы вызова функций:
Добавьте в модель блок подсистемы Function-Call.
Откройте блок подсистемы. Добавьте блок-схему, определяющую алгоритм, выполняемый при получении подсистемой события вызова функции.
Установка начальных и отключенных значений для блоков Outport. См. Исходные выходные значения условной подсистемы и Выходные значения условной подсистемы при отключении.
Установка способа обработки состояний подсистемы при ее выполнении:
Откройте блок подсистемы, а затем диалоговое окно параметров блока триггера. В раскрывающемся списке Состояния при включении выберите параметр:
held - государства сохраняют свои самые последние ценности.
reset - государства, настроенные на свои первоначальные условия.
inherit - Используйте настройку удержания или сброса из родительской подсистемы, инициирующей вызов функции.
Для вложенных подсистем, у которых блоки Function-Call Subsystem имеют различные настройки параметров, настройки дочерней подсистемы переопределяют настройки, унаследованные от родительской подсистемы. См. раздел Триггер.
Подключите инициатор вызова функции к порту ввода вызова функции.
При подключении блока Inport откройте блок, перейдите на закладку Signal Attributes и установите флажок Output function call.
Конфигурирование блока Function-Call Subsystem путем установки типа времени Sample для его блока Trigger Port в значение triggered или periodic.
Запускаемая (апериодическая) подсистема вызова функции может выполнять ноль, один или несколько раз в течение временного шага.
Если подсистема вызова функции выполняется блоком ввода вызова функции корневого уровня с дискретным временем выборки, то множественные вызовы функции в течение временного шага не допускаются. Чтобы разрешить несколько вызовов функций, установите для параметра Sample time значение -1 (наследуется) и установить время выборки для всех блоков в подсистеме вызова функций на -1 (наследуется).
Подсистема периодических вызовов функций выполняется один раз в течение временного шага и должна принимать периодические вызовы функций. Если вызовы функции являются апериодическими, моделирование прекращается и отображается сообщение об ошибке. Установка времени выборки для всех блоков в подсистеме функционального вызова на -1 (наследуется).
Примечание
При проверке диапазона настройки минимального и максимального параметров передаются обратно в фактический порт источника подсистемы функционального вызова, даже если подсистема функционального вызова не активизирована.
Чтобы предотвратить обратное распространение:
Добавьте блок преобразования сигнала и блок спецификации сигнала после порта источника.
Установите выходной сигнал блока преобразования сигнала в значение Signal copy.
Укажите минимальное и максимальное значения для блока «Спецификация сигнала» вместо их указания в исходном порту.