exponenta event banner

Элементы Trace Stateflow в сгенерированном коде

Чтобы проверить сгенерированный код для элементов Stateflow ®, можно отследить элементы Stateflow в модели по сгенерированному коду с помощью следующих типов навигации:

  • Код к модели: трассировка сгенерированного кода к модели путем щелчка гиперссылок в комментариях или номеров линий гиперссылок, что выделяет соответствующий элемент модели в редакторе Simulink Editor.

  • Модель-код: трассировка элементов модели в редакторе Simulink по соответствующим строкам в сгенерированном коде путем щелчка правой кнопкой мыши на элементе модели и перехода к сгенерированному коду. Эта возможность отслеживания не поддерживается для некоторых элементов Stateflow в представлении «Код».

Эти примеры иллюстрируют трассировку различных элементов Stateflow.

Встроенное отслеживание для элементов потока состояний

Встроенное отслеживание - это отслеживание на уровне строки, доступное в созданном коде. Можно щелкнуть гиперсвязанные номера линий для одновременной трассировки одного или нескольких элементов Stateflow.

  1. Открытие модели old_sf_car.

  2. Сконфигурируйте модель как цель ERT.

  3. На панели «Создание кода» > «Отчет» выберите следующие параметры конфигурации модели:

  4. Выберите пункт Создание кода > Комментарии > Параметр конфигурации комментариев объекта Stateflow. Этот параметр включает комментарии отслеживания для элементов Stateflow.

  5. Перейдите на панель «Создание кода» > «Интерфейс». В разделе Программная среда выберите непрерывное время. Нажмите кнопку «Применить». Перед созданием кода необходимо выполнить этот шаг, поскольку эта модель содержит блок с непрерывным временем выборки.

  6. На вкладке C Code нажмите кнопку Build.

    После завершения процесса создания кода появляется отчет о создании кода.

  7. В отчете на левой панели навигации щелкните значок old_sf_car.c гиперссылка.

  8. Для просмотра встроенных гиперссылок отслеживания прокрутите код. Эти номера строк могут отличаться от номеров, отображаемых в отчете о создании кода.

  9. Щелкните гиперссылку на номер строки 190. Соответствующий элемент подсвечивается.

Двунаправленная прослеживаемость состояний и переходов

  1. Открытие модели old_sf_car .

  2. Выполните шаги 2-5 в разделе Встроенное отслеживание для элементов потока состояний.

  3. Нажмите Ctrl + B, чтобы создать исходный код и заголовочные файлы для old_sf_car модель, которая содержит shift_logic диаграмма. После завершения процесса создания кода появляется отчет о создании кода.

  4. В отчете щелкните значок old_sf_car.c гиперссылка.

Посмотреть Результаты

  1. Чтобы просмотреть комментарии отслеживания, прокрутите код. Эти номера строк могут отличаться от номеров, отображаемых в отчете о создании кода.

  2. Щелкните значок <S5>:2 гиперссылка в этом комментарии об отслеживании:

    /* During 'gear_state': '<S5>:2' */

    Соответствующее состояние выделяется на диаграмме.

  3. Щелкните значок <S5>:12 гиперссылка в этом комментарии об отслеживании:

    /* Transition: '<S5>:12' */

    Соответствующий переход будет выделен на диаграмме. Для удаления выделения из элемента диаграммы нажмите клавишу Esc.

  4. В модели можно также использовать микроэлементы в строках сгенерированного кода. На диаграмме щелкните правой кнопкой мыши элемент. gear_state и выберите C/C + + Code > Перейти к C/C + + Code.

    Код для этого состояния выделен в old_sf_car.c.

  5. На диаграмме щелкните правой кнопкой мыши переход с условием [speed > up_th] и выберите C/C + + Code > Перейти к C/C + + Code.

    Код для этого перехода выделен в old_sf_car.c.

    Примечание

    Чтобы просмотреть список отслеживаемых элементов Stateflow в модели, щелкните гиперссылку Отчет об отслеживании (Traceability Report) в отчете о создании кода.

Двунаправленная прослеживаемость для таблиц перехода состояний

В этом примере показано, как осуществлять двунаправленную навигацию между элементами в таблице перехода состояния и сгенерированным кодом C/C + + и HDL для отслеживания.

  1. Открытие модели sf_cdplayer_STT. Эта модель уже настроена для отслеживания.

  2. Нажмите Ctrl + B, чтобы создать исходный код и заголовочные файлы для sf_cdplayer_STT модель. После завершения процесса создания кода появляется отчет о создании кода.

  3. Щелкните значок sf_cdplayer_STT.c гиперссылка в отчете.

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

  5. Щелкните значок <S2>:58 гиперссылка в этом комментарии об отслеживании:

    /* Entry Internal 'ON': '<S2>:58' */

    Соответствующее состояние'ON' отображается в таблице переходов состояний.

  6. Можно отслеживать состояние или переход из таблицы перехода состояния в сгенерированный код. Щелкните правой кнопкой мыши состояние Standby и выберите C/C + + Code > Перейти к C/C + + Code.

    Код записи для состояния Standby выделяется в созданном коде.

Двунаправленное отслеживание блоков таблицы истинности

  1. Открытие модели sf_climate_control.

  2. Выполните шаги 2-5 в разделе Встроенное отслеживание для элементов потока состояний.

  3. Для построения модели нажмите клавиши Ctrl + B.

  4. В отчете о создании кода нажмите кнопку sf_climate_control.c гиперссылка.

  5. Чтобы просмотреть комментарии отслеживания, прокрутите код. Эти номера строк могут отличаться от номеров, отображаемых в коде.

  6. Щелкните значок <S1>:1:47 гиперссылка в этом комментарии об отслеживании:

    /* Action '3': '<S1>:1:47' */

    В редакторе таблиц истинности строка 3 таблицы действий отображается подсвеченной.

  7. Можно также отследить условие, решение или действие в таблице по строке созданного кода. Например, щелкните правой кнопкой мыши ячейку в столбце D2 и выберите C/C + + Code > Перейти к C/C + + Code.

    Код для этого решения выделен в sf_climate_control.c.

    Совет

    Чтобы выбрать C/C + + Code > Перейти к C/C + + Code для условия, решения или действия, щелкните правой кнопкой мыши ячейку в строке или столбце, которая соответствует этому элементу таблицы истинности.

Двунаправленное отслеживание графических функций

  1. Открытие модели sf_clutch_enabled_subsystems.

  2. Выполните шаги 2-5 в разделе Встроенное отслеживание для элементов потока состояний.

  3. В диалоговом окне Параметры конфигурации (Configuration Parameters) перейдите на панель Решатель (Solver). В разделе Выбор решателя выберите Fixed-step в поле Тип. Нажмите кнопку «Применить». Перед созданием кода необходимо выполнить этот шаг, поскольку модель не работает с решателями с переменными шагами.

  4. Для построения модели нажмите клавиши Ctrl + B.

  5. В отчете о создании кода нажмите кнопку sf_clutch_enabled_subsystems.c гиперссылка.

  6. Чтобы просмотреть комментарии отслеживания, прокрутите код. Эти номера строк могут отличаться от номеров, отображаемых в отчете о создании кода.

  7. Щелкните значок <S1>:3 гиперссылка в этом комментарии об отслеживании:

    /* Graphical Function 'getSlipTorque': '<S1>:3' */

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

  8. Можно отслеживать графическую функцию на диаграмме по строке сгенерированного кода. Например, щелкните правой кнопкой мыши графическую функцию. detectSlip и выберите C/C + + Code > Перейти к C/C + + Code.

    Код для этой графической функции выделен в sf_clutch_enabled_subsystems.c.

Прослеживаемость «код-модель» для событий

  1. Открытие модели sf_security.

  2. Выполните шаги 2-5 в разделе Встроенное отслеживание для элементов потока состояний.

  3. Для построения модели нажмите клавиши Ctrl + B.

  4. В отчете о создании кода нажмите кнопку sf_security.c гиперссылка.

  5. Чтобы просмотреть этот комментарий отслеживания, прокрутите код. Эти номера могут отличаться от номеров, отображаемых в отчете о создании кода.

  6. Щелкните значок <S3>:56 гиперссылка в этом комментарии об отслеживании:

    /* Event: '<S3>:56' */

    На панели Содержимое (Contents) Обозревателя моделей (Model Explorer) событие Sound отображается подсвеченным.

Прослеживаемость модели к коду для соединений

  1. Открытие модели ex_if_else_SF.

  2. Выполните шаги 2-5 в разделе Встроенное отслеживание для элементов потока состояний.

  3. Для построения модели нажмите клавиши Ctrl + B.

  4. В отчете о создании кода откройте диаграмму Stateflow с именем Chart.

  5. Щелкните правой кнопкой мыши по верхнему левому соединению и выберите «Код C/C + +» > «Перейти к коду C/C + +».

    Код для первого исходящего перехода этого соединения выделяется в ex_if_else_SF.c.

Формат комментариев по отслеживанию для элементов потока состояний

Формат комментария отслеживания зависит от типа элемента Stateflow.

Государство

Синтаксис

/* <ActionType> '<StateName>': '<elementHyperlink>' */

Пример

/* During 'gear_state': '<S5>:2' */

Этот комментарий относится к during действие государства gear_state, которая имеет гиперссылку <S5>:2.

Переход

Синтаксис

/* Transition: '<elementHyperlink>' */

Пример

/* Transition: '<S5>:12' */

Этот комментарий относится к переходу, который имеет гиперссылку <S5>:12.

Функция MATLAB

Синтаксис

/* MATLAB Function '<Name>': '<elementHyperlink>' */

В встроенном коде для функции MATLAB ® комментарии, связанные с отдельными строками функции, имеют следующий синтаксис:

/* '<elementHyperlink>' */

Примеры

/* MATLAB Function 'test_function': '<S50>:99' */
/* '<S50>:99:20' */

Первый комментарий относится к функции MATLAB с именем test_function, которая имеет гиперссылку <S50>:99.

Второй комментарий относится к строке 20 функции MATLAB на диаграмме.

Блок таблицы истинности

Синтаксис

/* Truth Table Function '<Name>': '<elementHyperlink>' */

В встроенном коде для блока таблицы истинности комментарии к условиям, решениям и действиям имеют следующий синтаксис:

/* Condition '#<Num>': '<elementHyperlink>' */
/* Decision 'D<Num>': '<elementHyperlink>' */
/* Action '<Num>': '<elementHyperlink>' */

<Num> - номер строки или столбца, отображаемый в редакторе таблицы истинности.

Примеры

/* Truth Table Function 'truth_table_default': '<S10>:100' */
/* Condition '#1': '<S10>:100:8' */
/* Decision 'D1': '<S10>:100:16' */
/* Action '1': '<S10>:100:31' */

Первый комментарий относится к блоку таблицы истинности с именем truth_table_default, которая имеет гиперссылку <S10>:100.

Остальные три комментария относятся к элементам этого блока таблицы истинности. Каждое условие, решение и действие в блоке таблицы истинности имеет уникальную гиперссылку.

Функция таблицы истинности

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

Графическая функция

Синтаксис

/* Graphical Function '<Name>': '<elementHyperlink>' */

Пример

/* Graphical Function 'hello': '<S1>:123' */

Этот комментарий относится к графической функции с именем hello, которая имеет гиперссылку <S1>:123.

Функция симулятора

Синтаксис

/* Simulink Function '<Name>': '<elementHyperlink>' */

Пример

/* Simulink Function 'simfcn': '<S4>:10' */

Этот комментарий относится к функции Simulink ® с именемsimfcn, которая имеет гиперссылку <S4>:10.

Событие

Синтаксис

/* Event: '<elementHyperlink>' */

Пример

/* Event: '<S3>:33' */

Этот комментарий относится к событию, имеющему гиперссылку <S3>:33.

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