Новый современный инструмент для реализации графического интерфейса на ПЛК с исполнительной системой ISAGRAF

Опубликовано в номере:
PDF версия
В статье рассмотрен новый эффективный современный инструмент для реализации графического интерфейса на программируемых логических контроллерах (ПЛК) с исполнительной системой ISaGRAF ACE 5++ Target. Этот инструмент на основе среды Qt и расширения ISaQt позволяет пользователю иметь графический интерфейс на контроллере, выполнять визуализацию изменений данных реального времени как локально на нем самом, так и удаленно, с другого компьютера. Основные этапы и особенности предлагаемого подхода проиллюстрированы на примере графического интерфейса контроллера Segnetics SMH2Gi компании «Сегнетикс».
Пример устройств с графическим интерфейсом на базе Qt

Рис. 1. Пример устройств с графическим интерфейсом на базе Qt

Как известно, графический интерфейс пользователя, являясь связующим звеном между человеком и компьютером, осуществляет важную функцию представления и ввода информации. От наглядности отображаемых данных могут зависеть принимаемые оператором решения. Если говорить о кроссплатформных инструментах разработки графического интерфейса, то одним из наиболее популярных и эффективных современных инструментов является Qt [1]. По оценке экспертов, эту технологию используют более 500 тысяч разработчиков во всем мире. Qt применяют такие крупные компании, как ABB, Thales, Sennheiser, Navico, при разработке устройств различного назначения (рис. 1).

Qt представляет собой мощный кроссплатформный инструмент разработки графического интерфейса на языках C++ и QML. Проект является свободным и доступен в исходных текстах. Это позволяет рассчитывать на техническую поддержку огромного сообщества программистов. Основная особенность Qt — богатство возможностей и переносимость исходного кода. Программа, использующая Qt, может быть перенесена на другую операционную систему (Linux, Windows, QNX, Android и др.) или аппаратную архитектуру (i386, x64, ARM). Для Qt существует полноценная среда разработки Qt Creator, которая включает в себя редактор кода, графический редактор форм Qt Designer и средства отладки приложений. В качестве компилятора может использоваться GCC или Microsoft VC++. С использованием Qt написано огромное количество открытых и коммерческих проектов. Лицензия LGPL, под которой распространяется библиотека, позволяет осуществлять динамическое связывание с проприетарными приложениями.

 

Расширение ISаQT

Расскажем о возможности связывания графического интерфейса с исполнительной системой ISaGRAF. Технология ISaGRAF компании Rockwell Automation — это один из наиболее известных в мире и мощных инструментов разработки прикладных программ на языках стандарта IEC 61131-3 и IEC 61499 для программируемых логических контроллеров (ПЛК). Технология ISaGRAF включает в себя среду разработки (Workbench) и среду исполнения (Target). На основе вычислительного ядра ISaGRAF компанией «ФИОРД» разработаны расширения, позволяющие существенно расширить функциональные возможности исполнительной системы, например такие, как система архивирования данных IAS [2] и система быстрого доступа к данным реального времени FDA [3].

ISaQt — модуль расширения Qt, необходимый для взаимодействия программы на языке QML или C++ с ISaGRAF ACE 5++ Target [3] посредством протокола FDA (рис. 2). Расширение ISaQt позволяет одновременно устанавливать соединение с несколькими исполнительными системами ISaGRAF, что дает возможность в рамках одного графического интерфейса взаимодействовать с несколькими физическими контроллерами или системами, обобщать информацию от различных систем и принимать комплексные решения как единое действие оператора. Особенностью графического интерфейса с использованием ISaQt также является его независимость от исполнительной системы ISaGRAF. Графический интерфейс может включаться периодически, если это необходимо — например, при дистанционном администрировании. Также, в случае возникновения программной ошибки графического интерфейса, это никак не отразится на работе исполнительной системы.

Схема работы расширения ISaQt

Рис. 2. Схема работы расширения ISaQt

При построении проекта используется список связей переменных ISaGRAF, доступных по протоколу FDA, с графическими элементами интерфейса. Такой подход частично избавляет от необходимости явного кодирования логики его работы.

Выделим два основных этапа создания графического интерфейса на ПЛК:

  • построение графического интерфейса при помощи дизайнера в Qt Creator;
  • написание списка связей для переменных ISaGRAF и графических элементов.
Пример работы среды разработки Qt Creator

Рис. 3. Пример работы среды разработки Qt Creator

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

В качестве формата списка связей выбран протокол JSON (JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми. Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 г.), формат может использоваться практически с любым языком программирования. Один из вариантов JSON-формата — набор пар «ключ: значение».

В нашем случае используется следующее представление:

{ // Элемент списка связей
id: text1, / / Уникальный идентификатор графического объекта
type: «text», // Тип графического объекта
data: {}, // Дополнительные данные
fda: «c1» // Имя переменный ISaGRAF, доступной по протоколу FDA
}

Существуют реализации расширения ISaQt как для персональных компьютеров, так и для встраиваемых систем, к примеру, контроллеров Segnetics SMH2Gi (рис. 4), ICP DAS LinPAC-8000.

ПЛК Segnetics SMH2Gi с графическим интерфейсом ISaQt

Рис. 4. ПЛК Segnetics SMH2Gi с графическим интерфейсом ISaQt

Рассмотрим реализацию графического интерфейса на примере свободно программируемого панельного контроллера c ОС Linux SMH2Gi компании «Сегнетикс» (Санкт-Петербург). По внутренней шине подключены модули дискретного ввода MR120, вывода MR504 и MR61. Поддержка функционирования модулей осуществляется исполнительной системой ISaGRAF. Каналы ввода/вывода и состояние модулей (вкл/выкл) доступны как отдельные переменные по протоколу FDA — например, in1_mr120, out3_mr504_1, IDErr_mr504_2. Требуется обеспечить переключение состояния канала модуля дискретного вывода встроенными средствами ввода контроллера (клавиатура) и отображение на графическом дисплее состояния модулей и каналов дискретного ввода/вывода. Графический интерфейс должен содержать поля информации о состоянии модулей, каналов ввода/вывода и осуществлять взаимодействие с оператором через встроенную клавиатуру контроллера. SMH2Gi имеет достаточно малый графический дисплей, что необходимо было учесть при проектировании интерфейса и предусмотреть несколько экранов для отображения информации.

Решением вопроса с переключением между несколькими экранами является подход к формированию интерфейса на языке QML. QML (Qt Meta-Object Language) — декларативный язык программирования, основанный на JavaScript и предназначенный для дизайна графических приложений. Экран представляется набором состояний (State), характеризуемых изменением свойств графических элементов (Property Changes) относительно базового состояния.

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

Когда проект готов к предварительному тестированию, он может быть запущен на персональном компьютере разработчика, установив связь с контроллером через сеть TCP/IP. По окончании тестирования и отладки файл проекта может быть перенесен с компьютера разработчика на целевую систему ISaGRAF. Файл интерфейса является интерпретируемым текстовым файлом и ему не требуется компиляция под целевую архитектуру.

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

 

Заключение

Отметим ключевые достоинства разработки графического интерфейса с использованием расширения ISaQt:

  • Основой является открытый мощный кроссплатформный инструмент Qt, доступный в исходных кодах.
  • Среда Qt является бесплатной, и поэтому при использовании Qt не требуется платить за лицензии.
  • Графический дизайнер QML Designer предоставляет широкие возможности формирования пользовательского интерфейса без необходимости программирования.
  • Описание пользовательского интерфейса является текстовым файлом и может быть изменено без компиляции.
  • Пользовательский интерфейс является независимым процессом, ошибка в интерфейсе или даже его завершение не влияют на работу исполнительной системы. Для загрузки нового интерфейса также не требуется остановка целевой системы.
  • Графический интерфейс осуществляет взаимодействие с целевой системой ISaGRAF по протоколу семейства TCP/IP, что позволяет взаимодействовать как с локальной средой исполнения ISaGRAF, так и с другими исполнительными системами внутри сети в рамках одного интерфейса пользователя.

Из вышесказанного можно сделать вывод, что расширение ISaQt обеспечивает эффективную разработку кроссплатформного графического интерфейса на ПЛК для программ на языках стандарта IEC 61131-3 и IEC 61499 для широчайшего спектра аппаратных платформ.

Литература
  1. Blanchette J., Summerfield M. C++ GUI Programming with QT 4. США: Prentice Hall PTR. 2006.
  2. Липовец А. В. Система архивирования данных на основе технологии ISaGRAF // Автоматизация в промышленности. 2006. № 9.
  3. Липовец А. В. ISaGRAF 5++ ACE Target — новая целевая система высокой производительности // Промышленные АСУ и контроллеры. 2007. № 3.

Добавить комментарий

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