Simulink® продукт не моделирует асинхронное поведение задачи. Несмотря на то, что вы можете задать приоритет задачи для асинхронной задачи, представленной в модели с блоком Task Sync, установка приоритета предназначена только для целей генерации кода и не соблюдается во время симуляции.
Можно использовать блок Asynchronous Task Specification, чтобы задать асинхронный вызов функции для модели-ссылки. Однако необходимо преобразовать блоки Async Seprupt и Function-Call в подсистему, а затем преобразовать подсистему в модель-ссылку .
Ниже приведен пример с пошаговыми инструкциями для преобразования.
Преобразуйте блоки Async Conrupt и Count в подсистему. Выберите оба блока и щелкните правой кнопкой мыши Счетчик. В меню выберите Subsystem & Model Reference > Create Subsystem from Selection.
Чтобы подготовиться к преобразованию новой подсистемы в блок Model, установите следующие параметры конфигурации в верхней модели. Откройте диалоговое окно Параметры конфигурации.
В разделе Диагностика перейдите к панели Шагу расчета. Затем установите параметр конфигурации модели Multitask rate transition равным error
и Multitask conditionally executed subsystem к error
.
В разделе Diagnostics перейдите к панели Connectivity. Установите Bus signal treated as vector параметра равным error
. Также установите Context-dependent inputs равным Enable All
.
В разделе Diagnostics перейдите к панели Data Validity и установите Multitask data store параметра равным error
.
Установите Underspecified initialization detection параметра конфигурации модели в Simplified
.
Если ваша модель большая или сложная, запустите Model Advisor, проверяет папку Migrating to Simplified Initialization Mode Overview и вносит предлагаемые изменения.
Преобразуйте подсистему в атомарную подсистему. Выберите параметры блоков подсистемы Treat as atomic unit.
Преобразуйте подсистему в блок Model. Щелкните подсистему правой кнопкой мыши и выберите Subsystem & Model Reference > Convert Subsystem to > Referenced Model. Откроется окно с моделью-ссылкой блоком внутри него.
Замените подсистему в модели верхней части новым блоком модели-ссылки.
Переместите Async Interrupt блок из модели-ссылки в модель верхней части, перед блоком модели-ссылки.
Вставьте Asynchronous Task Specification блок в модель-ссылку. Установите приоритет блока Asynchronous Task Specification. (Для получения дополнительной информации об установке приоритета см. раздел «Спецификация асинхронных задач».)
В модель-ссылку дважды кликните порт входа, чтобы открыть диалоговое окно Исходного блока Параметров. На вкладке Signal Attributes выберите параметр Output function call. Нажмите OK.
Сохраните модель, а затем обновите схему, чтобы проверить настройки.