Осциллограф

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

Щупы

Для начала работы необходимо на выбранном выходе установить щуп.

_images/add_probe.png

Выход блока, на котором установлен щуп, будет выделен утолщенной линией синего цвета.

_images/probe.png

Список всех щупов можно увидеть в плавающей панели Осциллограф.

_images/probe_pane.png

Удалить щуп можно с помощью команды Удалить щуп в контекстном меню выхода или в списке щупов в панели.

Внимание: Необходимо иметь ввиду, что щупы не копируются вместе с блоками, после их удаления невозможно выполнить отмену.

Щуп можно устанавливать на выход блока любой FBD-схемы, за исключением схемы, принадлежащей экрану.

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

При повторном запуске симуляции или отладки создается новая сессия, старые сессии доступны для просмотра.

Для просмотра сессий необходимо открыть главное окно осциллографа, нажав на кнопку в панели инструментов:

_images/osc_1.png

Главное окно осциллографа состоит из двух частей: список сессий (слева) и графическое отображение (справа) выбранной сессии:

_images/osc_2.png

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

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

Внимание: Сессии и данные в них не сохраняются при закрытии проекта!!!

Графическое отображение данных

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

Горизонтальная ось отображает такты работы FBD программы, начинается всегда с 0, она одна для всех графиков. Вертикальная ось отображает значения выхода, к которому подключен щуп. Начальный диапазон вертикальной оси от 0 до 1. По мере поступления данных диапазон шкалы будет расширяться в нужную сторону.

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

_images/osc_3.png

Контекстное меню вертикальной оси графика:

  • Свойства - вызов диспетчера свойств. То же выполняется при двойном клике на вертикальной оси.

  • Удалить график - удаление графика, команда доступна только в завершенной сессии.

  • Перейти - переход к FBD-программе, на которой расположен щуп. При переходе в рабочем режиме будет открыт соответствующий макрос, к которому относиться этот экземпляр графика.

  • Переместить вверх - перемещает выделенный график вверх на одну строку.

  • Объединить с верхним - объединяет выделенный график с соседним верхним.

  • Объединить с нижним - объединяет выделенный график с соседним нижним.

  • Переместить вниз - перемещает выделенный график вниз на одну строку.

Внимание: Объединение графиков с логическим (булевым) типом данных и других (числовых) типов данных не поддерживается.

В свойствах графика можно установить имя и цвет. Первоначально имя графика соответствует имени щупа, цвет генерируется автоматически.

_images/osc_series_property.png

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

Кнопки << и >> перемещают в начало и в конец оси. Кнопки < и > прокручивают на одну страницу влево или вправо.

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

_images/osc_4.png

Установить его можно кликнув в нужное место горизонтальной оси. Также можно ввести номер такта в контекстном меню Номер такта маркера горизонтальной оси.

_images/osc_5.png

Контекстное меню горизонтальной оси тактов:

  • Показать/Спрятать маркер позволяет включить/отключить отображение маркера

  • Номер такта маркера установка значения такта для маркера

  • Автопрокрутка - включает режим автопрокрутки графиков до последнего известного значения

Табличное отображение данных

Нажатие на кнопку Таблица откроет окно с табличными данными. Первые две колонки - Такт и Время, далее идут колонки данных. Такты, в которых нет изменений ни на одном графике, в табличном виде отсутствуют.

_images/osc_6.png

Для экспорта таблицы в текстовый формат CSV нажмите кнопку Экспорт… и укажите имя файла.

Отладка в устройстве

Работа осциллографа в режиме отладки в устройстве практически ничем не отличается от режима симуляции. Единственное отличие состоит в том, что, в случае медленного канала связи, физически невозможно читать все имеющиеся данные из устройства. В этом случае на графике будут появляться области, выделенные красным цветом. В этих областях значения на выходах не достоверны, поэтому отобразить их невозможно. Для ускорения связи в настройке последовательного порта можно увеличить скорость передачи (baud rate), а также уменьшить задержки (таймауты).

_images/osc_7.png

Внимание: Работа устройства при отладке с включенным осциллографом немного отличается от работы при выключенном осциллографе - для уменьшения потерь данных при чтении из устройства выполняется снижение частоты (скорости) выполнения программы. Однако, логика работы программы и скорость обработки данных в таком случае, как правило, не меняется, за некоторыми редкими исключениями (см. ниже). При выключенном осциллографе скорость выполнения программы ограничена только аппаратными возможностями устройства, а при включенном - ограничена максимум 3 тактами за 1 интервал времени базового таймера (см. соотв. настройку FBD-программы). Следует понимать, что при отсутствии такого ограничения контроллеры не имеют достаточного объема ОЗУ для накопления данных, а используемые каналы связи не способны передать все имеющиеся данные, даже в самом лучшем случае.

Замедление скорости работы программы может влиять на логику работы только в случае, если в проекте измерение времени специально сделано от счетчика тактов, т.е. реальное время перепутано со скоростью выполнения программы. В любом случае, использование счетчика тактов - грубая ошибка проектирования! Всю логику работы нужно делать основанной только на объективные события, например срабатывание таймера!