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