Если вы полностью задаете свои таблицы истинности, вы начинаете процесс отладки их. Первый шаг должен запустить диагностику, чтобы проверять таблицы истинности на синтаксические ошибки включая сверхспецификацию и underspecification, как описано в Правильных Чрезмерно определенных и Таблицах истинности Underspecified. Кроме того, можно добавить точки останова непосредственно в таблицу истинности, чтобы отладить в процессе моделирования.
Таблицы истинности поддерживаются только в Simulink®. Для получения дополнительной информации см. Таблицы истинности Использования к Комбинаторной логике Модели.
Проверять на синтаксические ошибки:
Дважды кликните таблицу истинности.
В таблице истинности нажмите 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 как язык действия.
Для таблиц истинности, которые используют MATLAB в качестве языка действия, содержимое сгенерировано как код MATLAB. Чтобы установить точку останова в коде, кликните по области точки останова рядом с исполняемой линией, где вы хотите, чтобы симуляция сделала паузу. Смотрите Отладку программа MATLAB. Когда вы добавляете элемент в свою таблицу истинности, которая изменяет сгенерированное содержимое, все точки останова регенерированы.
Для таблиц истинности, которые используют C в качестве языка действия, содержимое сгенерировано как графическая функция. Чтобы установить точку останова в графической функции, щелкните правой кнопкой по переходу, где вы хотите установить точку останова и выбрать Set Breakpoint. Когда вы добавляете элемент в свою таблицу истинности, которая изменяет сгенерированное содержимое, все точки останова регенерированы, если вы перекомпилировали свою таблицу истинности.