Разделение вызова функции

Обеспечьте соединение для разделения строки вызова функции

  • Библиотека:
  • Simulink / Ports & Subsystems

Описание

Блок Function-Call Split позволяет строке вызова функции переходить и соединяться с несколькими подсистемами вызова функций или моделями вызова функции.

Подсистема вызова функций или модель вызова функции, соединенная с выходным портом блока Function-Call Split, который отмечен точкой, выполняются перед подсистемами или моделями, соединенными с другими выходными портами. Если зависимости по данным между подсистемами или моделями не поддерживают заданный порядок выполнения, блок Function-Call Split возвращает ошибку. Чтобы устранить эту ошибку, считайте выбор параметра Latch input for feedback signals of function-call subsystem outputs на одном или нескольких блоках Inport моделей подсистем вызова функций вовлеченным в цикл зависимости по данным. Выбор этой опции задерживает соответствующий вызов функции, таким образом, устраняя цикл зависимости по данным.

Для модели, чтобы содержать блоки Разделения Вызова функции, необходимо установить следующую диагностику на error: Model Configuration Parameters > Diagnostics > Connectivity > Invalid function-call connection.

Если вы выбираете образцовый пункт меню Display > Blocks > Sorted Execution Order, то порядок выполнения подсистем вызова функций, соединенных с ответвлениями данного сигнала вызова функции, появляется на блоках. Каждая подсистема имеет порядок выполнения формы s:[B#], где # является номером, который колеблется от 0 до меньше, чем общее количество подсистем или моделей, соединенных с ответвлениями данного сигнала. Подсистемы выполняются в порядке возрастания на основе этого номера.

Сигнал поддержек блока Function-Call Split Маркирует Propagation.

Следующая модель показывает, как применить параметр Latch input for feedback signals of function-call subsystem outputs, чтобы работать вокруг ошибки зависимости по данным, вызванной при помощи блока Function-Call Split. Путем включения этого параметра в f1 блоке Inport подсистемы блок Function-Call Split игнорирует зависимость по данным сигнала b. Блок повреждает цикл зависимостей по данным между подсистемами f1 и g1. Модель достигает поведения сопоставимого вызова f1, чтобы выполниться прежде g1. Для данного шага выполнения подсистема f1 использует g1 вывод, вычисленный на предыдущем шаге выполнения.

Ограничения

Блок Function-Call Split имеет эти ограничения:

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

  • Вы не можете соединить перешедшие подсистемы вызова функций или модели и их дочерние элементы непосредственно назад инициатору вызова функции.

  • Подсистемы вызова функций и модели, соединенные с ответвлениями сигнала вызова функции, не могут иметь нескольких (мультиплексированных) инициаторов.

  • Блок Function-Call Split не может иметь своего входа от сигнала с несколькими элементами вызова функции.

Порты

Входной параметр

развернуть все

Блок Function-Call Generator или Stateflow®chart могут обеспечить события вызова функции.

Вывод

развернуть все

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

Параметры

развернуть все

Выберите форму значка блока.

Настройки

distinctive

Прямоугольный значок блока.

round

Круговой значок блока.

Программируемое использование

Параметры блоков: IconShape
Ввод: символьный вектор
Значения: 'distinctive' | 'round'
Значение по умолчанию: 'distinctive'

Задайте количество выходных портов сигнала вызова функции.

Настройки

2

Два выходных порта вызова функции.

целое число

Целое число

Программируемое использование

Параметры блоков: NumOutputPorts
Ввод: символьный вектор
Значения: '2' | '<integer>'
Значение по умолчанию: '2'

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

Настройки

default

Верхний порт обеспечивает вызов функции сначала.

reverse

Нижний порт обеспечивает вызов функции сначала.

Программируемое использование

Параметры блоков: OutputPortLayout
Ввод: символьный вектор
Значения: 'default' | 'reverse'
Значение по умолчанию: 'default'

Характеристики блока

Типы данных

double

Прямое сквозное соединение

no

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представленный в R2010a