Отладьте ошибки времени выполнения в таблице истинности

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

Проверьте таблицы истинности на наличие ошибок

Если вы полностью задаете свои таблицы истинности, вы начинаете процесс отладки их. Первый шаг должен запустить диагностику, чтобы проверять таблицы истинности на синтаксические ошибки включая сверхспецификацию и underspecification, как описано в Правильных Чрезмерно определенных и Таблицах истинности Underspecified.

Проверять на синтаксические ошибки:

  1. Дважды кликните таблицу истинности.

  2. В таблице истинности выберите Run Diagnostics .

    Например, если вы изменяете действие для столбца решения D4 к действию, которое не существует, вы получаете сообщение об ошибке в Диагностическом Средстве просмотра.

Диагностика таблицы истинности запускается автоматически, когда вы запускаете симуляцию модели с новой или модифицированной таблицей истинности. Если никакие ошибки не существуют, диагностическое окно не появляется, и симуляция сразу запускается.

Отладьте таблицу истинности в процессе моделирования

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

С таблицами истинности можно установить эти различные типы точки останова:

  • Условие протестировано

  • Решение протестировано

  • Допустимое решение

  • Действие выполняется

После того, как симуляция останавливается в точке останова, можно продолжить выполнение графика на панели инструментов Stateflow Editor в командной строке MATLAB®, или путем выбора горячей клавиши.

Значок панели инструментовОпцияКомандаОписаниеГорячая клавиша

Продолжениеdbcont

Продолжите симуляцию к следующей точке останова.

Ctrl+T

Переступитьdbstep

Перейдите к следующему шагу в выполнении таблицы истинности.

F10

Вступитьdbstep in

От состояния или действия перехода, которое вызывает функцию, усовершенствование к первому исполняемому оператору в функции.

От оператора в функции, содержащей другой вызов функции, перейдите к первому исполняемому оператору во второй функции.

В противном случае перейдите к следующему шагу в выполнении таблицы истинности. (См., Переступают.)

F11

Выйтиdbstep out

От вызова функции возвратитесь к оператору, вызывающему функцию.

В противном случае продолжите симуляцию к следующей точке останова. (См., Продолжаются.)

Shift+F11

Шаг вперед  

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

 

Остановка dbquit

Выйдите из режима отладки и симуляции остановки.

Ctrl+Shift+T

Точки останова условия

Чтобы установить точку останова, когда условие будет протестировано, щелкните правой кнопкой по ячейке условия и выберите Set Breakpoint (Condition Tested). Красный значок появляется на крайне левой из таблицы рядом с количеством условия. Когда вы запускаете модель, симуляция делает паузу, когда условие тестируется. Stateflow подсвечивает протестированную строку условия. Установите свой курсор на данные в таблице истинности, чтобы видеть ее текущее значение.

Точки останова решения

Чтобы установить точку останова, когда решение будет протестировано, щелкните правой кнопкой по верхней части столбца решения и выберите Set Breakpoint (Decision Tested). Красный значок появляется на верхней части столбца решения рядом с количеством решения. Когда вы запускаете модель, симуляция делает паузу, когда решение тестируется. Stateflow подсвечивает протестированный столбец решения. Установите свой курсор на данные в таблице истинности, чтобы видеть ее текущее значение.

Чтобы установить точку останова, когда решение будет допустимо, щелкните правой кнопкой по ячейке действия в нижней части столбца решения и выберите Set Breakpoint (Decision Valid). Красный значок появляется на верхней части ячейки рядом с номером действия. Когда вы запускаете модель, симуляция делает паузу, когда действие допустимо. Stateflow подсвечивает допустимое решение. Установите свой курсор на данные в таблице истинности, чтобы видеть ее текущее значение.

Если существует больше чем одно действие, чтобы взять, когда решение допустимо, точка останова установлена для первого исполняемого файла. По правде говоря, таблицы, которые используют MATLAB в качестве языка действия, можно установить точку останова на любой линии исполняемого кода путем установки точек останова в сгенерированном содержимом. Смотрите Отладку Сгенерированного Содержимого Таблицы истинности.

Точки останова действия

Чтобы установить точку останова, когда действие будет выполняться, щелкните правой кнопкой по ячейке действия и выберите Set Breakpoint (Action Executed). Красный значок появляется на крайне левой из таблицы рядом с количеством действия. Когда вы запускаете модель, симуляция делает паузу, когда действие выполняется. Stateflow подсвечивает протестированную строку действия. Установите свой курсор на данные в таблице истинности, чтобы видеть ее текущее значение.

Если существует больше чем одно действие в ячейке действия, точка останова установлена для первого действия. По правде говоря, таблицы, которые используют MATLAB в качестве языка действия, можно установить точку останова на любой линии исполняемого кода путем установки точек останова в сгенерированном содержимом. Смотрите Отладку Сгенерированного Содержимого Таблицы истинности.

Отредактируйте точки останова

Кликните по точке останова, чтобы открыть диалоговое окно Edit Breakpoint. Из этого окна можно отключить точку останова путем снятия флажка Enable Breakpoint.

Когда вы добавляете условие в точку останова, точка останова приостанавливает симуляцию только, когда ее связанным условием является true.

Отладка сгенерированного содержимого таблицы истинности

Можно использовать точки останова на сгенерированном содержимом для таблиц истинности, которые используют MATLAB или C как язык действия. Для получения дополнительной информации о том, как сгенерировать содержимое для таблиц истинности, вид на море Сгенерированное Содержимое для Таблиц истинности Stateflow.

Для таблиц истинности, которые используют MATLAB в качестве языка действия, содержимое сгенерировано как код MATLAB. Чтобы установить точку останова в коде, кликните по области точки останова рядом с исполняемой линией, где вы хотите, чтобы симуляция сделала паузу. Смотрите Отладку программа MATLAB (MATLAB). Когда вы добавляете элемент в свою таблицу истинности, которая изменяет сгенерированное содержимое, все точки останова регенерированы.

Для таблиц истинности, которые используют C в качестве языка действия, содержимое сгенерировано как графическая функция. Чтобы установить точку останова в графической функции, щелкните правой кнопкой по переходу, где вы хотите установить точку останова и выбрать Set Breakpoint. Когда вы добавляете элемент в свою таблицу истинности, которая изменяет сгенерированное содержимое, все точки останова регенерированы, если вы перекомпилировали свою таблицу истинности.

Похожие темы