exponenta event banner

Создание кода C или C++ из блоков потока состояний

Чтобы создать код C или C++ из моделей Simulink ®, включающих диаграмму Stateflow ®, необходимо использовать Coder™ Simulink. В дополнение к Simulink Coder вы можете использовать Embedded Coder ® для дальнейшего расширения созданного кода. Усовершенствования встроенного кодера делают код более читаемым, компактным и более быстрым в выполнении.

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

Создание кода с помощью кодера Simulink

Simulink Coder позволяет генерировать код C и C++ из моделей, содержащих диаграммы Stateflow. Затем созданный код можно использовать для приложений в реальном времени и не в реальном времени, включая:

  • Ускорение моделирования

  • Быстрое создание прототипов

  • Тестирование аппаратных средств в контуре (HIL)

Использование Simulink Coder также позволяет получить доступ к режимам Classic Accelerator и Rapid Accelerator. Режимы ускорителя работают путем формирования целевого кода, который затем используется для выполнения. Дополнительные сведения об этих режимах см. в разделе Работа режимов ускорения (Simulink).

Тестирование HIL позволяет проверить конструкцию контроллера и определить, действительна ли ваша физическая модель системы (установки). Дополнительные сведения о тестировании HIL см. в разделе Основы моделирования аппаратного обеспечения в цикле (Simscape).

Для начала настройки модели для создания кода с помощью Simulink Coder см. раздел Настройка модели и создание кода (Simulink Coder).

Создание кода с помощью встроенного кодера

С добавлением Embedded Coder можно создать код C или C++, который будет более компактным, удобным для чтения и более быстрым в работе. Embedded Coder дополнительно расширяет возможности Simulink Coder, позволяя управлять сгенерированными функциями, файлами и данными. Кроме того, Embedded Coder позволяет легко интегрировать устаревший код, типы данных и параметры калибровки. Embedded Coder поддерживает стандарты программного обеспечения для:

  • AUTOSAR

  • MISRA C

  • ASAP2

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

Чтобы начать настройку модели для создания кода с помощью встроенного кодера, см. раздел Создание кода с помощью средства быстрого запуска (Embedded Coder).

Советы по проектированию для оптимизации сгенерированного кода для объектов Stateflow

Не получать доступ к данным, связанным с компьютером

Это ограничение предотвращает появление длинных списков параметров в коде, сгенерированном для графической функции. Можно получить доступ к локальным данным, находящимся в той же диаграмме, что и графическая функция. Дополнительные сведения см. в разделе Повторное использование логических шаблонов путем определения графических функций.

Кроме того, Embedded Coder не поддерживает использование библиотек замены кода для машинных данных. Дополнительные сведения см. в разделе Код, который можно заменить из моделей Simulink (встроенный кодер).

Явная информация о встроенной опции графической функции

При использовании графической функции в диаграмме Stateflow выберите Inline или Function для свойства Function Inline Option. В противном случае код, сгенерированный для графической функции, может отображаться не так, как требуется. Дополнительные сведения см. в разделе Задание свойств графических функций.

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

При использовании нескольких триггеров создается несколько инструкций кода для обработки обнаружений растущих или падающих краев. Если требуется несколько триггеров, используйте события function-call. Дополнительные сведения см. в разделе Активация диаграммы потока состояний путем отправки входных событий.

Объединение входных сигналов диаграммы в один объект шины

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

Использовать время дискретной выборки

Код, генерируемый для дискретных диаграмм, которые не находятся внутри запущенной или включенной подсистемы, использует целочисленные счетчики для отслеживания времени вместо предоставленного Simulink времени. Созданный код использует меньше памяти и позволяет использовать код в режимах моделирования Software-in-the-Loop (SIL) и Processor-in-the-Loop (PIL).

Создание кода для быстрого создания прототипов и производственного развертывания

В этой таблице содержится информация о создании кода на основе поставленных целей.

Цель

Документация по кодировщику Simulink

Документация по встроенному кодеру

Создать исходный код C/C + +

Основы создания кода (Simulink Coder)

Основы создания кода (встроенный кодер)

Создание исходного кода C/C + + и исполняемого файла сборки

Процесс построения (Simulink Coder)

Процесс сборки (встроенный кодер)

Интеграция внешнего кода

Интеграция внешнего кода (кодер Simulink)

Интеграция кода (встроенный кодер)

Включение внешнего кода только для библиотечных диаграмм в переносной автономной библиотеке для использования в нескольких моделях

Интеграция внешнего кода для библиотечных диаграмм (Simulink Coder)

Интеграция внешнего кода для библиотечных диаграмм (встроенный кодер)

Оптимизация сгенерированного кода

Сокращение использования памяти для логических переменных и переменных конфигурации состояния (Simulink Coder)

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

Прослеживаемость объектов Stateflow в сгенерированном коде

Комментарии по отслеживанию позволяют:

  • Проверьте созданный код. Можно определить, какой объект Stateflow соответствует строке кода и коду отслеживания из различных объектов, которые вы просмотрели или не просмотрели.

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

Чтобы включить комментарии по отслеживанию, необходимо иметь ПО Embedded Coder или HDL Coder™. При формировании кода C/C + + в создаваемом коде появляются комментарии для встроенного реального времени (ert) только основанные цели. Дополнительные сведения см. в разделах Элементы Trace Stateflow в сгенерированном коде (встроенный кодер) и Навигация между моделью Simulink и кодом HDL с помощью отслеживания (HDL Coder).

Связанные темы