Асинхронные ограничения поддержки

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

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

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

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

Следующее является примером с постепенными инструкциями для преобразования.

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

  2. Чтобы подготовиться к преобразованию новой подсистемы к блоку Model, установите следующие параметры конфигурации в топ-модели. Откройте диалоговое окно Configuration Parameters.

    • Под Диагностикой перейдите к панели Шага расчета. Затем установите Multitask rate transition на error and Multitask conditionally executed subsystem к error.

    • Под Диагностикой перейдите к панели Возможности соединения. Установите Bus signal treated as vector и Invalid function-call connection к error. Также set Context-dependent inputs к Enable All.

    • Под Диагностикой перейдите к панели Валидности Данных и установите опцию Multitask data store на error.

    • Установите Configuration Parameters> Diagnostics> Data Validity> Advanced parameters> параметр Underspecified initialization detection к Simplified.

    • Если ваша модель является большой или комплексной, запуститесь, Model Advisor регистрируется в папке Migrating to Simplified Initialization Mode Overview (Simulink), и внесите предложенные изменения.

  3. Преобразуйте подсистему в атомарную подсистему. Выберите Edit > Subsystem Parameters > 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. В модели - ссылке дважды кликните входной порт, чтобы открыть его диалоговое окно Source Block Parameters. Кликните по вкладке Signal Attributes и выберите опцию Output function call. Нажмите OK.

  9. Сохраните свою модель и затем выполните Simulation> Update Diagram, чтобы проверить ваши настройки.

Похожие темы