.. _ref_debug_windows: Отладочный экран ================ Отладочный экран упрощает проведение отладки программы, так как вместо ручного ввода значений на входах блоков можно использовать привычные элементы управления: переключатели, ручки, ползунки и т.д. В качестве примера работы отладочного экрана, создадим проект, в котором на поле FBD-программы вынесем переменные устройства Uin в режиме сопротивления и дискретный выход. .. figure:: image/debug/debug1.png :align: center Также разместим блок **Сравнение** из раздела **Математика** и зададим значение константы – 0. В свойствах блока выберем операцию сравнения **>** (больше). .. figure:: image/debug/debug2.png :align: center Далее аналогично разместим блок **Blink** (генератор прямоугольных импульсов) из раздела **Таймеры**. Зададим период константами по 1000 мсек. .. figure:: image/debug/debug3.png :align: center Таким образом, при подаче на Uin1 сопротивления более 0, на выходе блока **Сравнение** будет сформирована логическая 1. Логическая единица, поступающая на вход **en** блока **Blink**, будет работать как условие для включения этого блока и на выходе **out** будет формироваться логическая единица с периодом 1 сек. Включаться и выключаться. К выходу **out** блока **Blink** подключим дискретный выход: .. figure:: image/debug/debug4.png :align: center Выделим необходимые выходы на блоках **Uin1**, **CMP** и **Blink**. Для включения точек отладки необходимо выделить необходимые выходы fbd-блоков (ножек) а затем нажать клавишу **F9**. .. figure:: image/debug/debug5.png :align: center Далее приступим к настройке экрана отладки. #. Выделить FBD-программу и кликнуть правой кнопкой мышки. #. В контекстном меню выбрать пункт **Добавить объект**. #. В открывшемся окне выбрать пункт **Отладочный экран**. #. Нажать кнопку **Добавить**. .. figure:: image/debug/debug6.png :align: center После добавления среди элементов FBD-программы появится **Отладочный экран**. Дважды кликнув на нём, открываем поле отладочного экрана с панелью инструментов. Работа с элементами отладочного экрана происходит аналогично работе с экранами ПЛК. .. figure:: image/debug/debug7.png :align: center По центру расположено поле отладочного экрана, на котором можно размещать различные инструменты (ползунки, поля ввода, лампы и т.д). Справа расположена панель, содержащая различные инструменты. Так как мы не будем размещать много элементов, то для оптимизации размера поля отладочного экрана, можно изменить его размер. Для этого необходимо: #. Нажать правой кнопкой мышки на свободном (пустом) месте поля. #. В открывшемся контекстном меню выбрать пункт **Свойства**. #. Изменить размеры ширины (width) и высоты (Height). #. Нажать **ОК** .. figure:: image/debug/debug8.png :align: center Перенесём элемент управления **Ручка** из панели инструментов на поле отладочного экрана. .. figure:: image/debug/debug9.png :align: center Для того чтобы управлять значением на входе Uin1 с помощью ручки, необходимо **Добавить подключение**. #. Нажать правой кнопкой мышки на инструменте **Ручка** на поле отладочного экрана. #. В открывшемся контекстном меню выбрать пункт **Добавить подключение**. #. В открывшемся окне «Редактирования подключения» выбрать вкладку **Управление**. #. Т.к. необходимо управлять именно значением на входе, то в окне свойств выбрать пункт **Значение**. #. Выбрать (ассоциировать) элемент **Ручка** с входом **Uin1:Сопротивление**. Для этого выбрать **Uin1:Сопротивление** на вкладке **Переменные устройства**. #. Нажать **ОК**. .. figure:: image/debug/debug10.png :align: center Для того чтобы задать интервал значений при повороте ручки, необходимо изменить его свойства. Для этого необходимо дважды нажать правой кнопкой мышки на инструменте **Ручка** и в окне свойств изменить минимальное и максимальное значение. Таким образом можно более точно управлять значением Uin1, поворачивая ручку. Для того чтобы знать можно было увидеть значение, которое будем регулировать, установим параметры как на рисунке ниже: Ширина – 180, Высота – 180, Мин.значение – 0, Макс.значение – 10, Отрисовка шкалы – True, Количество интервалов – 10, Количество подинтервалов - 1. Таким образом поворот ручки на одно деление будет соответствовать 1 значению на входе Uin1. .. figure:: image/debug/debug11.png :align: center По аналогии перенесём из раздела **Кнопки и индикаторы** панели инструментов на поле отладочного экрана инструмент **Лампа**. Разместим по центру и растянем для удобства отображения. .. figure:: image/debug/debug12.png :align: center Для того чтобы привязать значение дискретного выхода к работе лампы необходимо добавить подключение состояния выхода к элементу лампа: #. Нажать правой кнопкой мыши на элементе **Лампа** размещённом на поле отладочного экрана. #. В открывшемся контекстном меню выбрать пункт **Добавить подключение**. #. В открывшемся окне **Редактирование подключения** выбрать вкладку **Отображение**. #. В списке свойств выбрать **Состояние**. #. В секции **Возможные подключения** выбрать вкладку **Переменные устройства**. #. В списке выходов схем выбрать **Дискретный выход 1**. .. figure:: image/debug/debug13.png :align: center Все подключения отладочного экрана будут отображены в секции **Подключения** нижней части экрана. Для редактирования существующего подключения необходимо дважды нажать кнопкой мышки на необходимое подключение. .. figure:: image/debug/debug14.png :align: center Подготовка отладочного экрана завершена. Далее необходимо запустить симуляцию. Для этого возвращаемся к FBD-программе и запускаем выполнение программы нажатием на кнопку **Запуск** в панели инструментов. .. figure:: image/debug/debug15.png :align: center Для вызова окна отладки необходимо нажать на кнопку **Окно отладки** на панели инструментов. .. figure:: image/debug/debug16.png :align: center Для того чтобы можно было одновременно отследить значения в FBD-программе и на отладочном экране, можно расположить отладочный экран в **Оконном режиме**. Для этого необходимо нажать правой кнопкой мышки на вкладке **Отладочный экран** и в открывшемся контекстном меню выбрать **Оконный режим** и разместить необходимым образом окно отладки поверх FBD-программы. .. figure:: image/debug/debug17.png :align: center .. figure:: image/debug/debug18.png :align: center Далее необходимо запустить выполнение симуляции нажатием на кнопку **Запустить** .. figure:: image/debug/debug19.png :align: center Как мы видим, на входе Uin1 в установленной отладочной точке значение – 0, которое соответствует значению инструмента **Ручка**. .. figure:: image/debug/debug20.png :align: center Если повернуть ручку на несколько делений, то значение на входе Uin будет соответствовать значению на индикаторе ручки. В этом случае будет выполняться условие и в итоге элемент **Лампа** начнёт загораться и гаснуть с интервалом в 1 сек. .. figure:: image/debug/debug21.png :align: center