Ограничения асинхронной поддержки

Асинхронный Приоритет задач

Simulink® продукт не моделирует асинхронное поведение задачи. Несмотря на то, что вы можете задать приоритет задачи для асинхронной задачи, представленной в модели с блоком Task Sync, установка приоритета предназначена только для целей генерации кода и не соблюдается во время симуляции.

Преобразуйте асинхронную подсистему в модель-ссылку

Можно использовать блок Asynchronous Task Specification, чтобы задать асинхронный вызов функции для модели-ссылки. Однако необходимо преобразовать блоки Async Seprupt и Function-Call в подсистему, а затем преобразовать подсистему в модель-ссылку .

Ниже приведен пример с пошаговыми инструкциями для преобразования.

  1. Преобразуйте блоки Async Conrupt и Count в подсистему. Выберите оба блока и щелкните правой кнопкой мыши Счетчик. В меню выберите Subsystem & Model Reference > Create Subsystem from Selection.

  2. Чтобы подготовиться к преобразованию новой подсистемы в блок 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 и вносит предлагаемые изменения.

  3. Преобразуйте подсистему в атомарную подсистему. Выберите параметры блоков подсистемы Treat as atomic unit.

  4. Преобразуйте подсистему в блок Model. Щелкните подсистему правой кнопкой мыши и выберите Subsystem & Model Reference > Convert Subsystem to > Referenced Model. Откроется окно с моделью-ссылкой блоком внутри него.

  5. Замените подсистему в модели верхней части новым блоком модели-ссылки.

  6. Переместите Async Interrupt блок из модели-ссылки в модель верхней части, перед блоком модели-ссылки.

  7. Вставьте Asynchronous Task Specification блок в модель-ссылку. Установите приоритет блока Asynchronous Task Specification. (Для получения дополнительной информации об установке приоритета см. раздел «Спецификация асинхронных задач».)

  8. В модель-ссылку дважды кликните порт входа, чтобы открыть диалоговое окно Исходного блока Параметров. На вкладке Signal Attributes выберите параметр Output function call. Нажмите OK.

  9. Сохраните модель, а затем обновите схему, чтобы проверить настройки.

Похожие темы