Архив рубрики: CTRL_Debugger

Выбор менеджера

Сценарии Control являются программами, которые позволяют выполнять широчайший спектр задач в системе «КАСКАД Цифра». Они используются в самых разных ситуациях для выполнения разнообразных задач:

  • Графическая анимация, манипуляции с точками данных и многое другое в сценариях событий графических объектов (в Менеджере пользовательского интерфейса времени выполнения: UI)
  • Для сценариев времени выполнения и инициализации предусмотрен Менеджер сценариев Control(CTRL)

В этом случае некоторые такие менеджеры могут одновременно существовать в системе «КАСКАД Цифра», поэтому важной задачей является выбор менеджера, в котором выполняется отлаживаемый сценарий. Так как некоторые сценарии могут выполняться в каждом менеджере, также необходимо выбрать соответствующий сценарий (см. Выбор сценария).

Откройте панель CTRLdbg-sel.pnl (<путь_КАСКАД>/panels/vision), которую вы будете использовать для выбора отлаживаемого менеджера.

Рисунок. Панель для выбора менеджера

  • Which manager do you want to debug (Какой менеджер вы хотите отладить): в выпадающем списке представлен перечень менеджеров, из числа которых необходимо сделать выбор.
  • Cancel (Отмена) Закрывает панель.

IconПРИМЕЧАНИЕ

То, что вы на самом деле здесь делаете — это выбор «коммуникационной точки данных» (см. Подробная информация об отладчике CTRL Debugger). Отладчик управляет выполнением программы в выбранном менеджере через коммуникационную точку данных. Поэтому необходимый менеджер может быть исследован только в том случае, если для него была создана коммуникационная точка данных. Как только точка данных будет создана, связанный с ней менеджер будет включен в список для выбора.

После выбора необходимого менеджера (или точнее точки данных), немедленно откроется реальная Панель отладчика.

Содержимое окна Info (Информация)

В окне Info (Информация) отображается информация о сценариях, потоках, и прочие сведения о выбранном менеджере. Содержимое окна не обновляется до тех пор, пока не будет выполнен щелчок кнопкой мыши на соответствующей команде.    

 После выбора менеджера на панели CTRLdbg-sel.pnl отладчик CTRL Debugger запустится автоматически. В зависимости от выбранного менеджера, в окне Info (Информация) может отображаться следующая информация.
IconСОДЕРЖИМОЕ ОКНА INFO (ИНФОРМАЦИЯ) ДЛЯ МЕНЕДЖЕРА СЦЕНАРИЕВ CTRL
Например, если производится отладка менеджера сценариев CTRL под номером 1, в окне Info (Информация) отладчика после запуска будет отображаться следующая информация.
ScriptId: 0;archiv_client.ctl
Данная информация указывает, что в интерпретаторе CTRL Interpreter имеется только один сценарий, и этот сценарий имеет номер 0. Исходный код был считан из файла «archiv_client.ctl».
IconСОДЕРЖИМОЕ ОКНА INFO (ИНФОРМАЦИЯ) ДЛЯ UI (ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА)
Если производится отладка пользовательского интерфейса, на дисплей выводится информация следующего вида:
ScriptId: 1;
  Panel: CTRLdebugger.pnl []
Grafikobject: 1 [result]
Script: Сообщение
После номера сценария снова выдается справочная информация об источнике сценария. Она включает номер сценария, панель, в которой работает сценарий, графические объекты и информацию о том, какое действие (событие) вызвало выполнение сценария.  
Об источнике выводится такая же информация, как и в средство просмотра журналов Log viewer при возникновении ошибки в сценариях менеджера CTRL (см. Обработка ошибок)
IconСОДЕРЖИМОЕ ОКНА INFO (ИНФОРМАЦИЯ) ДЛЯ UI (ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА)
Если в выбранном менеджере в сценарии в настоящее время активен поток, то около номера сценария отображается номер потока. В примере после номера потока следуют функции main() и work(), которые имеются в сценарии.
ScriptId: 1; current thread: 1;
  Panel: examples/trend []
Grafikobjekt 21 []
Script: EventClick
ThreadId: 1
function: work
function: main

Выбор сценария, библиотеки или потока

Менеджер может сразу выполнить несколько сценариев CTRL, и в активном сценарии может быть несколько потоков. В отладчике возможно определить только один сценарий для исследования, и в выбранном сценарии возможно иметь дело только с одним потоком.
Для того, чтобы просмотреть, какие сценарии обнаружены отлаживаемым менеджером, щелкните кнопкой мыши на «Scripts» (Сценарии).
Рисунок. Отладчик CTRL Debugger со списком сценариев менеджера UI_1.
IconКАК ВЫБРАТЬ СЦЕНАРИЙ:
Щелкните кнопкой мыши на «Scripts» (Сценарии) на панели с кнопками — все сценарии текущего менеджера отобразятся в окне Info (Информация) справа.Для выбора сценария выполните двойной щелчок кнопкой мыши на строке, начинающейся «ScriptId:…» — в окне Source (Источник) будет отображен исходный код сценария.  

IconПРИМЕЧАНИЕ

Если в выбранной строке также содержится информация о текущем потоке, то данный поток также будет выбран автоматически.
IconКАК ВЫБРАТЬ ПОТОК:
Чтобы просмотреть, какие потоки содержатся в выбранном сценарии, щелкните кнопкой мыши на «Info Script» (Информация о сценарии).В окне Info (Информация) будут выведены следующие сведения:
ScriptId: 0; current thread: 0;test.ctl
ThreadId: 0
function: main
В данном примере в настоящее время выполняется поток с номером 0.
Дважды щелкните кнопкой мыши на строке «ThreadId: 0″, чтобы выбрать этот поток.

IconПРИМЕЧАНИЕ

Для того, чтобы просмотреть, какой сценарий и какой поток выбраны в настоящее время, щелкните кнопкой мыши на экранной кнопке Current» (Текущий).
IconКАК ВЫБРАТЬ БИБЛИОТЕКИ CTRL: 
1. Щелкните кнопкой мыши на «Other Info» (Дополнительная информация) и выберите Libs (Библиотеки).
2. Для отображения исходного кода библиотеки CTRL дважды щелкните кнопкой мыши на соответствующей строке в окне Info (Информация).

Выводы и полезные ссылки

Отладчик CTRL Debugger помогает отлаживать сценарии CTRL. Вы можете отлаживать сценарии для менеджеров CTRL и менеджеров пользовательского интерфейса. У вас есть возможность устанавливать точки останова, изменять значения переменных или отлаживать отдельные потоки.

 
Разделы справочной системы содержат дополнительную информацию:

РазделОписание
Управление Debug()DebugN()Функции для отображения информации в средстве просмотра журналов
Управление setTrace()Функции для анализа сценариев в средстве просмотра журналов
Язык ControlОбщие функции CTRL
МенеджерДиагностические сообщения
Модуль PARAТипы точек данных, точки данных, конфигурация
Модуль VISIONПользовательский интерфейс
Диагностика «КАСКАД Цифра»Конфигурация средств диагностики
Менеджер «КАСКАД Цифра»Возможности командной строки менеджеров
Управление системойРазличные панели диагностики

Подробная информация об отладчике CTRL Debugger

Коммуникационные точки данных

Так как отладчик во время отладки воздействует на действующий менеджер (см. также Пример), между менеджерами должна быть установлена соответствующая связь. Это является функцией коммуникационных точек данных.

Эти точки данных используются для передачи отладочных команд CTRL и откликов на них между отладчиком CTRL Debugger и отлаживаемым менеджером.

Диаграмма: Связи между сценариями, библиотеками и потоками

Точки данных имеют всего 2 элемента: один для команды (command: string), и второй для результата (result: dyn_string).  

Для точек данных действует следующее соглашение о присвоении имен (<x> обозначает номер менеджера):

Имя

Менеджер

_CtrlDebug_CTRL_<x>

Для менеджеров CTRL

_CtrlDebug_UI_<x>

Для менеджеров пользовательского интерфейса UI

Для каждого менеджера, который может быть выбран в панели CTRLdbg-sel.pnl, существует точка данных. Для ряда менеджеров коммуникационные точки данных уже установлены по умолчанию. Если вам необходимы дополнительные менеджеры, то для них необходимо установить точки данных вручную.

Отладка сценария

Обычно сценарии выполняются в течение долей секунды, и поэтому после запуска сценария щелчком кнопки мыши часто невозможно достаточно быстро остановить выполнение сценария. Однако имеется возможность устанавливать точки останова. Если затем снова запустить сценарий, он будет выполняться до первой установленной точки останова. С помощью кнопки Step (Шаг) имеется возможность продолжить выполнение сценария в пошаговом режиме.

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

IconКАК РАБОТАТЬ С ПОТОКАМИ ИЛИ СЦЕНАРИЯМИ

В следующем примере будет использоваться циклический сценарий панели examples/trend, используемой в качестве образца для примера. Скопируйте панель в директорию вашего проекта. Откройте панель в модуле Vision и щелкните кнопкой мыши на Start (Пуск). В точку данных ExampleDP_Trend1 отправляются случайные числа, и выводятся на диаграмме тренда.

1. Откройте отладчик CTRL Debugger для менеджера UI_1 (если ваш менеджер пользовательского интерфейса UI имеет номер 1).

2. Щелкните кнопкой мыши на ScriptID или на номере потока панели тренда.

3. Чтобы приостановить выполнение сценария/потока, щелкните кнопкой мыши на кнопке Break (Пауза). В окне Info (Информация) отобразится номер строки, на которой было приостановлено выполнение сценария. Выполнение сценария остановлено. Тренд продолжает выводиться как прямая линия.  

4. Для возобновления выполнения щелкните кнопкой мыши на Continue (Продолжить) . Сразу после этого тренд снова начнет получать случайные значения и выдавать соответствующий график.

5. Чтобы продолжить выполнение сценария в пошаговом режиме от инструкции к инструкции, снова щелкните кнопкой мыши на Break (Пауза), и затем на кнопку Step (Шаг). В окне Info (Информация) снова будет отображаться номер строки. Сценарии содержат цикл с предусловием, который теперь будет выполняться в пошаговом режиме: первый шаг — строка 28, следующий шаг — строка 29, строка 30 и так далее.

IconКАК УСТАНОВИТЬ/УДАЛИТЬ ТОЧКУ ОСТАНОВА

Чтобы прервать выполнение сценария в определенных точках имеется возможность устанавливать точки останова:

1. Для того, чтобы установить точку останова на определенную позицию, щелкните кнопкой мыши в левой колонке окна Source (Источник) на необходимой строке.

2. Установленная точка останова обозначается красной звездочкой.  

3. Выполнение сценария прекращается ПЕРЕД выполнением первой инструкции выбранной строки.

4. Для удаления точки останова необходимо просто снова щелкнуть кнопкой мыши на точке останова в окне Source (Источник).   

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

В функциях, возвращающих значения, установка точек останова не работает.

Для просмотра информации о всех установленных точках останова выберите «Other Info/Breakpoints» (Дополнительная информация/Точки останова).

IconИНФОРМАЦИЯ О ПОТОКЕ

1. Для отображения информации о текущих локальных переменных и другой информации по выбранному потоку щелкните кнопкой мыши на «Info Thread» (Информация о потоке).

2. Отображаемая информация будет иметь примерно следующий вид:

ThreadId: 1
next work 1970.01.01 01:00:00.000
local variables:
int n = 0
string userBit = «»
dyn_string names = <…> 3 items

ИнформацияЗначение
ThreadIdотображает номер текущего потока
next workуказывает, когда интерпретатор CTRL Interpreter должен будет снова обработать этот поток (дата, указанная выше, означает, что поток должен быть обработан немедленно)
local variablesсписок локальный переменных приведен ниже с указанием типа данных и значения
int n = 0переменная типа «integer»
string userbit = «»строковая переменная, переменная содержит данные типа «string», которые всегда заключаются в кавычки.
dyn_string names = <..> 3 itemsДля данных типов «dyn_» отображается только количество элементов. Чтобы отобразить содержимое этих переменных, необходимо выполнить двойной щелчок кнопкой мыши на строке, содержащей переменную типа «dyn_». Например, информация, отображаемая в окне Info (Информация) для переменной типа «dyn_string» может иметь следующий вид:1: «Start»
2: «Stop»
3: «Filter»

IconКАК УСТАНАВЛИВАТЬ ЗНАЧЕНИЯ ПЕРЕМЕННЫХ

Во время отладки для проведения корректировок или тестового прогона в пошаговом режиме имеется возможность устанавливать различные значения переменных.

ВНИМАНИЕ

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

1. В командной строке введите команду со следующим синтаксисом:

set <variable_name> <value>

2. Для примера введите «set n 5», чтобы установить переменной «n» значение 5.

ПРИМЕЧАНИЕ

Значения элементов с полями или массивами данных типа (dyn/dyn_dyn) не могут быть заданы вручную в отладчике.

IconКАК ПОЛУЧИТЬ ДОПОЛНИТЕЛЬНУЮ ИНФОРМАЦИЮ

Щелкните кнопкой мыши на кнопку Other Info (Дополнительная информация) и выберите один из пунктов.

Будет выведен список доступной информации. Отклик на каждый запрос будет появляться в окне Info (Информация). Некоторые из пунктов также могут быть выбраны с помощью кнопок (См. панель отладчика CTRL Debugger ).

ИнформацияЗначение
LibsОтображаются все библиотеки CTRL, которые загружены
GlobalsОтображаются все глобальные переменные менеджера
BreakpointsОтображаются все установленные точки останова
Script ModulesОтображается информация об активных моделях сценариев, таких как timedFunc(), operatingHours(), и т.п. Модули сценариев работают в фоновом режиме как модули CTRL, скорее как «скомпилированный поток». Это функции, которые запускаются из менеджера CTRL.   
Connections (Подключения)Отображается информация об dpConnect(), alertConnect() или queryConnect() для текущего сценария.

Панель отладчика CTRL Debugger

Панель состоит из двух основных областей:

  • Окно исходного кода Source (Источник)(с левой стороны)
  • Окно информации Info (Информация)(с правой стороны)

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

При запуске отладчик CTRL Debugger сообщает пользователю информацию о том, какие существуют сценарии в выбранном менеджере (например, менеджер CTRL_1). Вы можете повторно вывести эту информацию когда пожелаете, щелкнув мышкой на кнопку «Scripts» (Сценарии).

Рисунок. Корневая панель отладчика CTRL Debugger

  • Поле для ввода под кнопкой Break (Пауза) (в самом верху слева) отображает выбранный менеджер. Сразу за ним — номер файла и источник для менеджеров сценариев. Для менеджеров UI (пользовательского интерфейса) появится только <internal> в качестве источника, и -1 в качестве номера файла.
  • Информационное окно Info (Информация) используется для отображения широкого спектра информации, в частности содержимого переменных и т.п.
  • Затемненная полоса указывает либо выбранную строку, либо текущую позицию (например, при использовании кнопок Step или Line)
  • Поле для ввода над информационным окном Info (Информация) используется для ручного ввода команд отладчика, отклик на которые отображается в информационном окне Info (см. Отладка сценария).

Icon ВНИМАНИЕ

В Пользовательском Интерфейсе, некоторые сценарии отображаются только после первого выполнения. Это касается всех сценариев, которые не запускаются на выполнение при открытии панели. Интерпретатор CTRL Interpreter обнаруживает сценарии и отображает их как «присутствующие» только после того, как они начинают работать. Сценарии также могут исчезнуть из списка программных источников, доступных для отладки (например, при закрытии панели).

Также на панели имеются следующие кнопки:

  • Break (Пауза): прерывает поток, исполняемый в текущий момент (ветку программы)
  • Continue (Продолжить): продолжает выполнение потока, исполнение которого было прервано
  • Step (Шаг): выполняет следующую инструкцию в текущем потоке.

ПРИМЕЧАНИЕ

Функции, возвращаемое значение которых используется в выражениях, выполняются за один шаг, например, строковые функции, возвращаемое значение которых подвергается дальнейшей обработке. (Это может означать, что за один «Шаг» выполняется более одной инструкции).

  • Line (Линия): считывает и отображает текущую позицию строки выбранного потока, окно Source (Источник) обновляется таким образом, чтобы отобразить текущую строку (выделенную черной полосой). Данная функция также может использоваться без остановки сценария.
  • Scripts (Сценарии): отображаются все возможные сценарии в менеджере (сценарии событий, связанные со щелчком мыши (Click-Event), и которые еще не запущены на выполнение, в списке не отображаются)
  • Current (Текущий): Отображается, какой сценарий и какой поток выбраны в настоящее время.
  • Info Script (Информация о сценарии): отображается вся доступная информация о текущем сценарии
  • Info Thread (Информация о потоке): отображается вся доступная информация о текущем потоке
  • Other Info (Дополнительная информация): предоставляет информацию о Libs, GlobalsBreakpointsScript Modules и Connections  (библиотеках, глобальных переменных, точках останова, модулях сценариев, подключениях, см. Отладка сценария)
  • Help: открывается страница справочной системы. Краткая справка по командам появляется при наведении курсора на кнопку в отладчике (см. Отладка сценария)
  • «Close» («Закрыть»): удаляются все точки останова, и перед закрытием окна отладчика менеджеру выдается команда «Continue (Продолжить)«.

ПРИМЕЧАНИЕ

Если работа отладчика CTRL Debugger будет просто прервана, то отлаживаемые менеджеры останутся в состоянии отладки, например в состоянии останова или в режиме пошагового выполнения. Однако если эти менеджеры перезапустить, они вернутся в состояние нормальной работы.

ПримерОписание
Выбор сценария или потокаКакой сценарий или какой поток необходимо отладить?
Отладка сценарияСоветы по приостановке сценария, установке переменной и т.п.

Отладчик сценариев CTRL Debugger, общие сведения

Отладчик CTRL Debugger является средством отладки для языка программирования Control системы «КАСКАД Цифра». Вы имеете возможность:

  • Использовать отладчик CTRL Debugger для просмотра сценариев CTRL, которые выполняются на средствах пользовательского интерфейса или на средствах менеджера сценариев CTRL.
  • Определять точки останова, которые сообщают работающему менеджеру, что при достижении определенной строки необходимо произвести останов.
  • Выполнять инструкции в пошаговом режиме, и устанавливать значения переменных.
  • Просматривать и устанавливать значения переменных во время выполнения.
  • Производить отладку сценариев, независимо от того, где в системе «КАСКАД Цифра» запущен менеджер и сценарий, даже в распределенной системе.

ВНИМАНИЕ

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

РазделОписание
Панель выбора менеджераПодробное описание того, как выбрать менеджер, в котором выполняется сценарий.
Панель отладчика CTRL DebuggerОписание корневой панели и ее функций
Содержимое окна Info (Информация)Подробное описание окна Info
Выбор сценария или потокаКакой сценарий или какой поток необходимо отладить?
Отладка сценария или потокаСоветы по приостановке сценария, установке переменной и т.п.
Подробная информация об отладчике CTRL DebuggerКоммуникационные точки данных для отладчика CTRL Debugger и менеджеров
Выводы и разделы с дополнительной информациейСсылки на другие разделы, касающиеся данной темы.  

IconПРИМЕЧАНИЕ

Очевидно, что для наилучшего использования отладчика будет полезно познакомиться с основами языка программирования Control .