Отладка ошибок в таблице истинности

Когда вы полностью задаете свои таблицы истинности, вы начинаете процесс их отладки. Первым шагом является запуск диагностики для проверки таблиц истинности на синтаксические ошибки, включая сверхспецификацию и недоопределение, как описано в Исправленных переопределенных и Недоопределенных таблицах истинности. Кроме того, можно добавить точки по оси Х непосредственно в таблицу истинности для отладки во время симуляции.

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

Поиск синтаксических ошибок при выполнении диагностики

Чтобы проверить синтаксические ошибки:

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

  2. В таблице истинности щелкните Run Diagnostics.

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

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

Отладка логики при помощи точек по оси Х

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

С помощью таблиц истинности можно задать следующие различные типы точек по оси Х:

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

  • Решение проверено

  • Решение действительно

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

После остановки симуляции в точке останова можно продолжить выполнение графика на панели инструментов Редактор Stateflow, в 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 в качестве языка действий.

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

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

Похожие темы