Автор: Роман Савоченко
Если Вы строго следуете руководству по быстрому старту то Вы не встретите никаких проблем, однако если Вы делаете что-то своё тогда Вам может понадобиться некоторая отладка. OpenSCADA предоставляет широкие возможности отладки и обнаружения проблем программирования в общем пользовательском пространстве OpenSCADA и проблем самой OpenSCADA и её частей.
Основные подходы пользовательской отладки предусматривают:
- Создание внешних атрибутов для обзора за промежуточными значениями и наблюдения за текущим контекстом исполнения.
- Создание отладочных сообщений, также для обзора за промежуточными значениями и наблюдения за последовательностью исполнения.
Основные механизмы отладки расширены в последних версиях OpenSCADA на предмет:
- Пользовательского контроля за отладкой, посредством категории отладочного сообщения для частей OpenSCADA и сообщений пространства пользователя.
- Специфическая отладка и окружение диагностики некоторых частей OpenSCADA, таких как: источники данных (объекты контроллеров) и интерфейсы СВУ (проекты СВУ).
1 Отладка текущего контекста исполнения
Данный метод отладки предусматривает наблюдение за контекстом исполнения по значениям переменных, включая добавление промежуточных значений, для детализации.
Текущий контекст исполнения процедур Сбора Данных Вы можете наблюдать на соответствующей странице объекта исполняющегося контекста вроде: вкладка "Атрибуты" логического уровня параметров (Рис. 1), вкладка "Вычисления" вычислителя основанного на Java (Рис. 2) и подобное. Для добавления некоторых промежуточных значений Вы можете временно добавить (или установить режим атрибута "Только для чтения") и подключить некоторые атрибуты к шаблону или добавить и привязать некоторые ВВ к функции.
Текущий контекст исполнения СВУ процедур (процедуры виджетов) Вы можете наблюдать на вкладке "Атрибуты" соответствующей страницы или виджета сеанса выполняемого проекта (Рис. 3). Для добавления некоторых промежуточных значений Вы можете временно добавить и подключить ряд атрибутов к виджету/странице.
2 Отладка последовательности исполнения
Данный метод отладки предусматривает размещение и/или включение отладочных сообщений и последующее наблюдение за ними в общем интерфейсе архивации и наблюдения сообщений (Рис. 4) или в соответствующем интерфейсе части OpenSCADA:
- Вкладка "Диагностика" объекта контроллера источника данных (Рис. 5).
- Вкладка "Диагностика" объекта проекта СВУ в конфигураторе (Рис. 6) или свойствах проекта режима разработки UI.Vision (Рис. 7).
Для добавления сообщений уровня отладки, или других уровней, к своей процедуре Вы можете использовать следующие функции:
- Общее: SYS.message(), SYS.mess{Debug,Info,Note,Warning,Err,Crit,Alert,Emerg}() — для формирования общих сообщений с произвольной категорией, которые в основном доступны для наблюдения из общего интерфейса архивации и наблюдения сообщений (Рис. 4).
- Общее: SYS.*.messSys() — для формирования системных сообщений программы с путём узла в качестве категории и с читабельным путём перед сообщением. Сообщения будут доступны для наблюдения в соответствующем интерфейсе диагностики части OpenSCADA (Рис. 5, 6, 7).
- СВУ: this.mess{Debug,Info,Note,Warning,Err,Crit,Alert,Emerg}() — для формирования системных сообщений программы с категорией, как путь виджета. Сообщения будут доступны для наблюдения из интерфейса диагностики СВУ (Рис. 6, 7).
Отладочные сообщения (суффикс "Debug" или уровень 0), на последних версиях OpenSCADA, будут доступны для наблюдения только после включения отладки: установки поля "Наименьший уровень" в "Отладка (0)" (Рис. 8) и выбора категории сообщений (Рис. 9), детальнее читайте тут! Включение и выключение отладочных сообщений позволяет вставлять отладочные сообщения в процедуры на постоянной основе, с соответствующей категорией расположения. Все остальные, неотладочные, сообщения будут отображаться всегда, для уровней выше или равным указанным глобально (Рис. 8).
Внутренние или системные части объекта контроллера источника данных включаются для диагностики независимо, установкой свойства "Уровень" в "Отладка (0)" на собственном интерфейсе диагностики (Рис. 5).