exponenta event banner

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

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

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

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

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

  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

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

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

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

Чтобы задать точку останова при тестировании решения, щелкните правой кнопкой мыши в верхней части столбца решения и выберите Задать точку останова (тестирование решения). В верхней части столбца принятия решения рядом с номером решения появляется красный значок. При запуске модели моделирование приостанавливается при проверке решения. Stateflow выделяет тестируемый столбец принятия решений. Наведите курсор на данные в таблице истинности, чтобы увидеть их текущее значение.

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

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

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

Чтобы задать точку останова при выполнении действия, щелкните правой кнопкой мыши ячейку действия и выберите Задать точку останова (действие выполнено). Красный значок появляется в левой части таблицы рядом с номером действия. При запуске модели моделирование приостанавливается при выполнении действия. Stateflow выделяет тестируемую строку действия. Наведите курсор на данные в таблице истинности, чтобы увидеть их текущее значение.

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

Изменить точки останова

Щелкните точку останова, чтобы открыть диалоговое окно «Редактировать точку останова». В этом окне можно отключить точку останова, сняв флажок Включить точку останова.

При добавлении условия к точке останова точка останова приостанавливает моделирование только в том случае, если связанное с ней условие true.

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

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

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

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

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