В этом примере показано, как использовать атомарные подчасти для создания кода для отдельных частей диаграммы Stateflow ®. При создании кода для диаграммы в отдельном файле хранится код атомарной вложенной диаграммы. Атомарные подчасти поддерживаются только в диаграммах Stateflow в моделях Simulink ®. Дополнительные сведения см. в разделе Создание повторно используемых подкомпонентов с помощью атомных субчарт.
Эта модель содержит два блока синусоидальной волны (Simulink): один с частотой 1 радиан в секунду, а другой с частотой 2 радиана в секунду.

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

Поскольку в этом примере не используются атомарные подчасти, сгенерированный код для всей модели хранится в одном файле. Чтобы найти код для определенной части диаграммы, необходимо просмотреть весь файл.
Напротив, можно преобразовать состояние A к атомарному подзаголовку и указать, что код подзаголовка отображается в отдельном файле. Этот метод генерации кода позволяет выполнять модульное тестирование для определенной части диаграммы. Вы избегаете поиска по несвязанному коду и фокусируетесь только на интересующем вас коде.
Шаг 1: Преобразование состояния в атомарную подшарту
Щелкните правой кнопкой мыши состояние A и выберите «Группа и подшаблон» > «Атомарный подшаг». Государство A изменяет атомарную вложенную диаграмму и отображает метку Atomic в левом верхнем углу.

Шаг 2: Настройка автономного файла C для атомной подшарницы
Открытие диалогового окна свойств вложенной диаграммы A щелчком правой кнопкой мыши на вложенной диаграмме и выбором «Свойства».
Задайте для свойства упаковки функции генерации кода значение Reusable function.
Задайте для свойства Параметры имени файла генерации кода значение User specified.
В поле Имя файла генерации кода введите saturator в качестве имени файла.
Нажмите кнопку ОК.
Шаг 3: Настройка отчета по созданию кода
На вкладке Моделирование (Modeling) щелкните Свойства диаграммы (Chart Properties) > Настройки модели (Model Settings), чтобы открыть диалоговое окно Параметры конфигурации (Configuration parameters).
На вкладке Code Generation установите для параметра System target file значение ert.tlc.
В разделе Создание кода > Отчет выберите Создать отчет о создании кода.
В разделе Дополнительные параметры (Advanced parameters) выберите Модель в код (Model-to-code).
Нажмите кнопку «Применить».
Шаг 4: Настройка сгенерированных имен функций
В диалоговом окне «Параметры конфигурации» на вкладке «Создание кода» > «Идентификаторы» задайте для параметра «Методы подсистемы» схему форматирования. $R$N$M$F, где:
$R - имя корневой модели.
$N - имя блока.
$M - токен манглов.
$F - тип интерфейсной функции для атомарного подкадра.
Чтобы создать код для модели с помощью Embedded Coder ®, нажмите клавиши Ctrl + B.
Отчет о создании кода содержит ссылки на код, сгенерированный на диаграмме (файлы модели), и атомарную вложенную диаграмму (файлы подсистемы). Для проверки кода вложенной диаграммы нажмите кнопку saturator.c гиперссылка.

Строка 31 показывает, что during функция, сгенерированная для атомарного подграфического элемента, имеет имя ex_reuse_states_A_during. Это имя соответствует схеме форматирования $R$N$M$F для методов подсистемы:
Имя корневой модели: ex_reuse_states.
Имя блока: A.
Маркер управления пуст.
Тип интерфейсной функции атомарного подграфического элемента: during.
Примечание.Номера строк, отображаемые в отчете о создании кода, могут отличаться от показанных.
Синусоидальная волна (Simulink)