Шаблоны моделирования для RUNNABLES AUTOSAR

Используйте модели Simulink ®, подсистемы и функции для моделирования компонентов атомарного программного обеспечения AUTOSAR и их выполняемых сущностей (runnables).

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

Откройте пример модели autosar_swc.slx.

open_system('autosar_swc')

Модель показывает реализацию атомарного программного компонента AUTOSAR (ASWC). Два периодических выполнения, Runnable_1s и Runnable_2s, моделируются с несколькими скоростями дискретизации: 1 секунду (In1_1s) и 2 секунды (In2_2s). Чтобы максимизировать эффективность выполнения, модель сконфигурирована для многозадачности.

Модель включает блок Initialize Function, который инициализирует интегратора в Runnable_2s к значению 1.

Чтобы отобразить кодированные цветом частоты дискретизации с аннотациями и легендой, на вкладке Debug, выберите Diagnostics > Information Overlays > Colors.

Соответствующие настройки параметра конфигурации модели

  • Решатель > Набрать Fixed-step.

  • Решатель > Решатель, установленный на discrete (no continuous states).

  • Решатель > Размер фиксированного шага (основной шаг расчета), установленный на auto.

  • Решатель > Обрабатывайте каждую дискретную скорость как отдельную выбранную задачу.

Планирование

В окне модели включите шаг расчета кодирование путем выбора вкладки Отладки и выбора Diagnostics > Information Overlays > Colors. Шаг расчета показывает неявную группировку скорости. Красный цвет представляет самую быструю дискретную скорость. Green представляет вторую самую быструю дискретную скорость. Желтый цвет представляет собой смесь двух скоростей.

Поскольку модель имеет несколько скоростей и выбран параметр Solver Обработать каждую дискретную скорость как отдельную задачу, модель моделирует в многозадачном режиме. Модель обрабатывает переход скорости для In2_2s явным образом с блоком Rate Transition.

Переход скорости параметров блоков Убедитесь, что детерминированная передача данных очищена, чтобы облегчить интегрирование во время выполнения AUTOSAR окружения.

Сгенерированный код для модели расписывает субрейты в модели. В этом примере скорость для блока Inport In2_2s, зеленая скорость, является субрейтом. Сгенерированный код правильно переносит данные между задачами, которые выполняются с различными скоростями.

Сгенерируйте код и отчет (Embedded Coder)

Если у вас есть программное обеспечение Simulink Coder и Embedded Coder, сгенерируйте код и отчет о генерации кода. Пример модели генерирует отчет.

Сгенерированный код соответствует AUTOSAR, так что вы можете планировать код со окружением времени выполнения AUTOSAR.

Просмотр сгенерированного кода

В отчете генерации кода проверьте сгенерированный код.

  • autosar_swc.c содержит точки входа для кода, который реализует алгоритм модели. Этот файл включает код планирования скорости.

  • autosar_swc.h объявляет структуры данных моделей и открытый интерфейс для точек входа модели и структур данных.

  • autosar_swc_private.h содержит локальные define константы и локальные данные, требуемые моделью и подсистемами.

  • autosar_swc_types.h предоставляет прямое объявление для структуры данных модели реального времени и структуры данных параметров.

  • rtwtypes.h определяет типы данных, структуры и макросы, которые требуются сгенерированному коду.

  • autosar_swc_component.arxml, autosar_swc_datatype.arxml, autosar_swc_implementation.arxml, и autosar_swc_interface.arxml содержат элементы и объекты, которые представляют компоненты программного обеспечения AUTOSAR, порты, интерфейсы, типы данных и пакеты. Файлы ARXML интегрируются в окружение выполнения AUTOSAR. Можно импортировать файлы ARXML в окружение Simulink с помощью инструмента AUTOSAR ARXML importer.

  • Compiler.h, Platform_Types.h, Rte_ASWC.h, Rte_Type.h, и Std_Types.h содержат реализации заглушек функций окружения выполнения AUTOSAR. Используйте эти файлы, чтобы протестировать сгенерированный код в Simulink, например, в симуляциях «цикл» (SIL) или «цикл» (PIL) тестируемого компонента.

Интерфейс кода

Откройте и проверьте отчет по интерфейсам кода. Эти сведения содержатся в файлах ARXML. Генератор окружения во время выполнения использует описания ARXML для взаимодействия кода с окружением во время выполнения AUTOSAR.

Входные порты:

  • Требуется порт, интерфейс: отправитель-получатель типа real-T от 1 размерности

  • Требуется порт, интерфейс: отправитель-получатель типа real-T от 1 размерности

Функции точки входа:

  • Инициализация функции точки входа, void Runnable_Initialize(void). При запуске вызовите эту функцию один раз.

  • Выход и обновление функции точки входа, void Runnable_1s(void). Периодически вызывайте эту функцию с самой быстрой скоростью в модели. Для этой модели вызывайте функцию каждую секунду. Чтобы добиться выполнения в реальном времени, присоедините эту функцию к таймеру.

  • Выход и обновление функции точки входа, void Runnable_2s(void). Периодически вызывайте эту функцию на второй самой быстрой скорости в модели. Для этой модели вызывайте функцию каждые 2 секунды. Чтобы добиться выполнения в реальном времени, присоедините эту функцию к таймеру.

Выходные порты:

  • Обеспечивайте порт, интерфейс: отправитель-получатель типа real-T от 1 размерности

  • Обеспечивайте порт, интерфейс: отправитель-получатель типа real-T от 1 размерности

Несколько выполняемых функций, настроенных как выполняемые с периодической частотой и асинхронные вызовы функций

Откройте пример модели autosar_swc_fcncalls.slx.

open_system('autosar_swc_fcncalls')

Модель показывает реализацию атомарного программного компонента AUTOSAR (ASWC). Модель использует асинхронный вызов функции, выполняемый, Runnable_Trigger, который запускается внешним событием. Модель также включает периодическое выполнение на основе скорости, Runnable_1s. Блоки Rate Transition представляют промежуточные переменные (IRV).

Используйте этот подход для моделирования архитектуры комплексной модели управления JMAAB. В моделировании бета-типа JMAAB, на верхнем уровне модели управления, вы помещаете слои функций выше слоев планирования.

Модель включает блок Initialize Function, который инициализирует модуль задержку в Runnable_1s в значение 0.

Чтобы отобразить кодированные цветом частоты дискретизации с аннотациями и легендой, на вкладке Debug, выберите Diagnostics > Information Overlays > Colors.

Соответствующие настройки параметра конфигурации модели

  • Решатель > Набрать Fixed-step.

  • Решатель > Решатель, установленный на discrete (no continuous states).

  • Решатель > Размер фиксированного шага (основной шаг расчета), установленный на 1.

  • Решатель > Обработайте каждую дискретную скорость как отдельную задачу, удаленную.

Планирование

В окне модели включите шаг расчета кодирование путем выбора вкладки Отладки и выбора Diagnostics > Information Overlays > Colors. Шаг расчета показывает неявную группировку скорости. Красный цвет представляет дискретную скорость. Magenta представляет триггер асинхронной функции. Желтый цвет представляет собой смесь двух скоростей.

Асинхронный триггер, запускаемый с асинхронными скоростями (параметр Sample time type подсистемы вызова функции Trigger block установлен в |triggered]), в то время как периодический запуск скорости запускается с заданной дискретной скоростью. Сгенерированный код управляет скоростями с помощью однозадачных допущений. Для моделей с одной дискретной скоростью генератор кода не производит код планирования, потому что существует только одна скорость для выполнения. Используйте этот метод для односкоростного приложения, когда у вас есть один периодический запуск.

Модель обрабатывает переходы между асинхронной и дискретной скоростями связанных runnables с двумя блоками Rate Transition. Переход скорости параметров блоков Убедитесь, что детерминированная передача данных очищена, чтобы облегчить интегрирование во время выполнения AUTOSAR окружения.

Сгенерируйте код и отчет (Embedded Coder)

Если у вас есть программное обеспечение Simulink Coder и Embedded Coder, сгенерируйте код и отчет о генерации кода. Пример модели генерирует отчет.

Сгенерированный код соответствует AUTOSAR, так что вы можете планировать код со окружением времени выполнения AUTOSAR.

Просмотр сгенерированного кода

В отчете генерации кода проверьте сгенерированный код.

  • autosar_swc_fcncalls.c содержит точки входа для кода, который реализует алгоритм модели. Этот файл включает код планирования скорости.

  • autosar_swc_fcncalls.h объявляет структуры данных моделей и открытый интерфейс для точек входа модели и структур данных.

  • autosar_swc_fcncalls_private.h содержит локальные define константы и локальные данные, требуемые моделью и подсистемами.

  • autosar_swc_fcncalls_types.h предоставляет прямое объявление для структуры данных модели реального времени и структуры данных параметров.

  • rtwtypes.h определяет типы данных, структуры и макросы, которые требуются сгенерированному коду.

  • autosar_swc_fcncalls_component.arxml, autosar_swc_fcncalls_datatype.arxml, autosar_swc_fcncalls_implementation.arxml, и autosar_swc_fcncalls_interface.arxml содержат элементы и объекты, которые представляют компоненты программного обеспечения AUTOSAR, порты, интерфейсы, типы данных и пакеты. Файлы ARXML интегрируются в окружение выполнения AUTOSAR. Можно импортировать файлы ARXML в окружение Simulink с помощью инструмента AUTOSAR ARXML importer.

  • Compiler.h, Platform_Types.h, Rte_ASWC.h, Rte_Type.h, и Std_Types.h содержат реализации заглушек функций окружения выполнения AUTOSAR. Используйте эти файлы, чтобы протестировать сгенерированный код в Simulink, например, в симуляциях «цикл» (SIL) или «цикл» (PIL) тестируемого компонента.

Интерфейс кода

Откройте и проверьте отчет по интерфейсам кода. Эти сведения содержатся в файлах ARXML. Генератор окружения во время выполнения использует описания ARXML для взаимодействия кода с окружением во время выполнения AUTOSAR.

Input port:

  • Требуется порт, интерфейс: отправитель-получатель типа real-T от 1 размерности

Функции точки входа:

  • Инициализация функции точки входа, void Runnable_Initialize(void). При запуске вызовите эту функцию один раз.

  • Функция Simulink, void Runnable_1s(void). Периодически вызывайте эту функцию с самой быстрой скоростью в модели. Для этой модели вызывайте функцию каждую секунду. Чтобы добиться выполнения в реальном времени, присоедините эту функцию к таймеру.

  • Экспортированная функция, void Runnable_Trigger(void). Вызовите эту функцию в любое время из внешнего триггера.

Выходной порт:

  • Обеспечивайте порт, интерфейс: отправитель-получатель типа real-T от 1 размерности

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

Откройте пример модели autosar_swc_slfcns.slx.

open_system('autosar_swc_slfcns')

Модель показывает реализацию атомарного программного компонента AUTOSAR (ASWC). Модель включает один периодический запуск скорости, Runnable_1s, который использует подсистему вызова функций, SS1. Модель также включает функцию Simulink, readData, для предоставления значения (CurVal) к клиентам, которые запрашивают его.

Модель включает блок Initialize Function, который инициализирует модуль задержку в подсистеме RollingCounter в значение 0.

Чтобы отобразить кодированные цветом частоты дискретизации с аннотациями и легендой, на вкладке Debug, выберите Diagnostics > Information Overlays > Colors.

Используйте подсистемы вызова функций:

  • Когда трудно или невозможно задать системные события в модели Simulink.

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

Соответствующие настройки параметра конфигурации модели

  • Решатель > Набрать Fixed-step.

  • Решатель > Решатель, установленный на discrete (no continuous states).

  • Решатель > Размер фиксированного шага (основной шаг расчета), установленный на 1.

  • Решатель > Обрабатывайте каждую дискретную скорость как отдельную выбранную задачу.

Планирование

В окне модели включите шаг расчета кодирование путем выбора вкладки Отладки и выбора Diagnostics > Information Overlays > Colors. Шаг расчета показывает неявную группировку скорости. Красный цвет определяет дискретную скорость. Magenta определяет скорости, унаследованные от экспортированных функций, указывая, что их выполнение находится вне контекста планирования Simulink.

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

Сгенерируйте код и отчет (Embedded Coder)

Если у вас есть программное обеспечение Simulink Coder и Embedded Coder, сгенерируйте код и отчет о генерации кода. Пример модели генерирует отчет.

Генератор кода:

  • Создает AUTOSAR, выполняемый для подсистемы вызова функций на корневом уровне модели.

  • Реализует сигнальные соединения между runnables как межпрограммные переменные (IRV) AUTOSAR.

Сгенерированный код соответствует AUTOSAR, так что вы можете планировать код со окружением времени выполнения AUTOSAR.

Просмотр сгенерированного кода

В отчете генерации кода проверьте сгенерированный код.

  • autosar_swc_slfcns.c содержит точки входа для кода, который реализует алгоритм модели. Этот файл включает код планирования скорости.

  • autosar_swc_slfcns.h объявляет структуры данных моделей и открытый интерфейс для точек входа модели и структур данных.

  • autosar_swc_slfcns_private.h содержит локальные define константы и локальные данные, требуемые моделью и подсистемами.

  • autosar_swc_slfcns_types.h предоставляет прямое объявление для структуры данных модели реального времени и структуры данных параметров.

  • readData_private.h содержит локальные define константы и локальные данные, требуемые функцией Simulink.

  • rtwtypes.h определяет типы данных, структуры и макросы, которые требуются сгенерированному коду.

  • autosar_swc_slfcns_component.arxml, autosar_swc_slfcns_datatype.arxml, autosar_swc_slfcns_implementation.arxml, и autosar_swc_slfcns_interface.arxml содержат элементы и объекты, которые представляют компоненты программного обеспечения AUTOSAR, порты, интерфейсы, типы данных и пакеты. Файлы ARXML интегрируются в окружение выполнения AUTOSAR. Можно импортировать файлы ARXML в окружение Simulink с помощью инструмента AUTOSAR ARXML importer.

  • Compiler.h, Platform_Types.h, Rte_ASWC.h, Rte_Type.h, и Std_Types.h содержат реализации заглушек функций окружения выполнения AUTOSAR. Используйте эти файлы, чтобы протестировать сгенерированный код в Simulink, например, в симуляциях «цикл» (SIL) или «цикл» (PIL) тестируемого компонента.

Интерфейс кода

Откройте и проверьте отчет по интерфейсам кода. Эти сведения содержатся в файлах ARXML. Генератор окружения во время выполнения использует описания ARXML для взаимодействия кода с окружением во время выполнения AUTOSAR.

Входные порты:

  • Требуется порт, интерфейс: отправитель-получатель типа uint16-T от 1 размерности

  • Требуется порт, интерфейс: отправитель-получатель типа real-T от 1 размерности

Функции точки входа:

  • Инициализация функции точки входа, void Runnable_Init(void). При запуске вызовите эту функцию один раз.

  • Экспортированная функция, void Runnable_1s(void). Вызывайте эту функцию периодически, каждую секунду.

  • Функция Simulink, Std_ReturnType readData(real_T Data[2]). Вызовите эту функцию в любое время.

Выходные порты:

  • Обеспечивайте порт, интерфейс: отправитель-получатель типа uint16-T от 1 размерности

Связанные ссылки