Подходы к разработке человеко-машинного интерфейса контроля и управления прикладными программами для ВК с микропроцессорами Sparc и "Эльбрус" в области АСУТП
Подходы к созданию человеко-машинного интерфейса в среде разработки Beremiz для управления прикладными программами для программируемых логических контроллерах с отечественными микропроцессорами SPARC и "Эльбрус". Обзор библиотечных функциональных блоков.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | статья |
Язык | русский |
Дата добавления | 27.11.2018 |
Размер файла | 3,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Подходы к разработке человеко-машинного интерфейса контроля и управления прикладными программами для ВК с микропроцессорами Sparc и "Эльбрус" в области АСУТП
И.А. Баранов (ОАО "ИНЭУМ им. И.С. Брука")
Аннотации
Рассматриваются подходы к созданию человеко-машинного интерфейса в среде разработки Beremiz для управления прикладными программами, исполняемыми на программируемых логических контроллерах с отечественными микропроцессорами SPARC и "Эльбрус" в области АСУТП. Приведен обзор существующих библиотечных функциональных блоков для элементов HMI и пример их использования. Рассматриваются вопросы расширения элементов HMI с помощью создания соответствующих функциональных блоков.
Ключевые слова: ЧМИ, ПЛК, SVG, SPARC, Эльбрус
This article covers the approaches of creation human-machine interface in Beremiz IDE for control of applied programs running at PLC based on Russian SPARC and Elbrus microprocessors in industrial automation. It contains the overview of existing function blocks of Beremiz standard library, examples of using theirs and creation function block for new HMI element.
Keywords: HMI, PLC, SVG, SPARC, Elbrus
Основное содержание исследования
Одним из важных аспектов в автоматизированных системах управления технологическими процессами является организация взаимодействия между человеком и программно-аппаратным комплексом. Обеспечение такого взаимодействия задача человеко-машинного интерфейса (далее HMI, Human Machine Interface), пример которого приведен на рис.1:
Рис.1 - Пример HMI для контроля и управления технологическим процессом
Тенденции современного мира предполагают широкое использование различных мобильных средств (планшетов, смартфонов) и, как следствие, применение веб-технологий. Они дают преимущество в платформо-независимости решений и предоставляют набор динамично развивающихся возможностей (SVG, HTML5 и т.д.) для построения HMI.
На рис.2 приведена схема одного из вариантов организации управления и контроля исполняемых прикладных программ на ПЛК (Программируемых логических контроллерах) с помощью HMI, реализованного с помощью веб-технологий:
микропроцессор интерфейс человеческий машинный прикладная программа
Рис.2 - Пример организации HMI, построенного на веб-технологиях
Передача данных с ПЛК для отображения необходимой информации в HMI реализована через локальную сеть Ethernet (по протоколу TCP/IP). Вся информация выводится в веб-браузер. Такая структура контроля и управления носит распределённый характер. Вычислительные комплексы, на которых расположены средства отображения HMI, могут находиться на любом расстоянии от ПЛК. В соответствии с клиент-серверной архитектурой, веб-совместимый ПЛК содержит не только прикладную программу управления и обработки данных, а также часть для предоставления данных для веб-интерфейса. [3]
Как следствие, важно обеспечить для ПЛК на микропроцессорах SPARC и "Эльбрус" возможность разработки человеко-машинного интерфейса для контроля и управления прикладными программами с учётом современных требований, перечисленных ранее.
Создание HMI в среде разработки Beremiz
Свободно-распространяемая среда разработки Beremiz с открытым исходным кодом, позволяет создавать прикладные программы для вычислительных комплексов с микропроцессорами на архитектуре SPARC (МЦСТ R500S, МЦСТ-4R) из операционной системы Windows, используя соответствующие кросс-компиляторы. [1] Так же имеется возможность использовать инструмент Beremiz на вычислительных комплексах с микропроцессорами "Эльбрус" для создания прикладных программ для ПЛК, построенных на этой же архитектуре.
Помимо создания прикладных программ, в соответствии со стандартом IEC 61131-3, среда разработки Beremiz позволяет быстро создать человеко-машинный интерфейс для управления ими. Данная возможность достигается использованием плагинов SVGUI или wxGlade GUI и библиотеки py_ext, входящих в состав Beremiz.
Плагин wxGlade GUI позволяет создавать HMI с помощью кросс-платформенной библиотеки пользовательских интерфейсов wxPython. Данная библиотека, благодаря своей открытости, может быть адаптирована и для вычислительных комплексов с архитектурой SPARC, и с архитектурой "Эльбрус". Но в данном случае управление и контроль прикладной программой будет осуществляться с того вычислительного комплекса на котором она выполняется.
Более перспективным и предоставляющим больше возможностей является использование плагина SVGUI, позволяющего реализовать HMI с помощью веб-приложения, построенного на SVG графике. Язык SVG предназначен для описания двумерной векторной и смешанной векторно/растровой графики в формате XML. Благодаря формату XML можно быстро и просто изменять параметры и атрибуты элементов SVG. [2]
Плагин SVGUI позволяет добавить в проект файл формата svg, в котором определен каркас HMI для создаваемой прикладной программы. Библиотека py_ext, написанная на языке C и Python, в свою очередь, позволяет с помощью языка Python производить взаимодействие серверной стороны (ПЛК) и клиентской (например, браузер на одном из вычислительных комплексов).
Для интеграции логики и алгоритмов программ на языках IEC 61131-3 с поведением человеко-машинного интерфейса, построенного на SVG графике, в стандартной библиотеке Beremiz имеется набор соответствующих функциональных блоков (см. рис.3).
Далее приводится кратное их описание.
Рис.3 - Функциональный блоки для построения HMI на SVG графики
Функциональный блок TextCtrl позволяет связать текстовый элемент SVG графики, имя которого определено во входном параметре back_id типа STRING (данный тип и далее все остальные соответствуют типам стандарта IEC 61131-3), для отображения входного текстового значения text.
Функциональный блок Button позволяет связать два графических примитива SVG графики, для реализации логики работы элемента "кнопка" в HMI. Данный функциональный блок имеет выходной параметр state_out типа BOOL. Для возможности использования данной кнопки в режиме переключателя ("тумблера") входной параметр toggle типа BOOL должен быть равен TRUE.
Функциональный блок Led позволяет связать два графических примитива SVG графики, для реализации логики работы светодиода в HMI. В зависимости от входного параметра state_in (типа BOOL), будет отображаться SVG элемент, либо с идентификатором, определённом во входном параметре back_id (типа STRING), если state_in равно FALSE, либо с идентификатором в параметре sele_id, если state_in равно TRUE.
Рассмотрим пример создания HMI в Beremiz, построенного с помощью существующих библиотечных элементов. В проект добавлен плагин SVGUI и импортирован файл формата svg (созданный, например, в редакторе Inkscape, запустить который можно прямо из добавленного в проект плагина SVGUI), содержащий следующие элементы:
- текстовое поле с идентификатором text_tempr для отображения температуры котла;
- два объекта с идентификаторами mdo_pin1_on и mdo_pin1_off для отображения двух состояний кнопки;
- два объекта с идентификаторами led1_on и led1_off для отображения двух состояний светодиода.
На рис.4 приведен пример программы, алгоритм которой написан на языке FBD с использованием функциональных блоков SVGUI.
Рис.4 - Программа на языке FBD с использованием функциональных блоков SVGUI
Идентификаторы SVG элементов, описанные выше, соединены с соответствующими функциональными блоками. Значение переменной temp_pin1 (соответствующее первому каналу с термопарой модуля аналогово ввода) будет выводиться в текстовый элемент SVG графики с идентификатором text_tempr. Так же показано, как состояние нажатой кнопки (выходное значение state_out) влияет на то, в каком состоянии светодиод Led1 и какой из элементов SVG графики (led1_on или led1_off) он отображает. После компиляции, передачи и запуска созданной прикладной программы на ПЛК, с помощью браузера (см. рис.5) можно управлять и наблюдать состояние частей FBD программы, интегрированной с визуальными элементами SVG графики, через функциональные блоки SVGUI.
Добавление в библиотеку собственного элемента HMI
В сфере промышленной автоматизации часто приходится решать узко-специализированные задачи, для которых не хватает стандартных средств. За счёт открытости Beremiz есть возможность добавления новых элементов человеко-машинного интерфейса. Добавление нового элемента HMI осуществляется расширением библиотеки функциональных блоков, используемых вместе с плагинами SVGUI. Далее следует краткий обзор реализации взаимодействия SVG элементов, отображаемых в браузере, с прикладными программами, исполняемыми на ПЛК.
Как уже упоминалось ранее, для того, чтобы была возможность отображать различные данные о выполнении прикладной программы на ПЛК с помощью веб-технологий (в частности вывод в браузер) необходимо иметь некоторую серверную часть, исполняемую на контроллере. В данном случае эта задача решается с помощью библиотеки Nevow, написанной на языке Python и позволяющей создавать серверную часть веб-приложений. В папке плагина SVGUI находится файл svgui_server. py, который содержит все необходимые импортируемые модули данной библиотеки для запуска серверной части, а так же следующие классы и методы:
- метод createSVGUIControl создания нового SVG элемента;
- методы setAttr, updateAttr, getAttr для установки, обновления и получения значения определённого атрибута SVG элемента;
- класс SVGUI_HMI представляющий "контейнер" для SVG элементов;
- класс SvguiWidget представляющий определённый SVG элемент.
Вызов перечисленных выше методов, осуществляться прямо из программ, написанных на языках IEC 61131-3 с помощью функционального блока python_eval библиотеки py_ext, позволяющего исполнять на языке Python любые команды и скрипты.
Описание поведения SVG элементов, отображаемых браузером, в зависимости от манипуляций пользователя или изменения каких-либо параметров на серверной стороне, осуществляется с помощью языка JavaScript. Для упрощения процесса добавления поведения нового элемента, его логику можно описать на языке Python. Код для уже имеющихся функциональных блоков определен в файле svguilib. py. В процессе компиляции прикладной программы логика каждого элемента будет преобразована, с помощью компилятора PyJS, в эквивалентный код на языке JavaScript.
Соответственно, решение задачи добавления нового HMI элемента предполагает:
- добавление описания нового функционального блока ("серверная" часть) на одном из языков стандарта IEC 61131-3;
- добавление логики поведения данного добавляемого элемента в SVG графике, отображаемой в графике, на языке Python ("клиентская" часть).
Далее рассмотрен пример добавления элемента Progress Bar (индикатор процесса), который отсутствует в библиотеке функциональных блоков Beremiz. Функциональный блок для данного элемента должен содержать следующие входные аргументы:
- идентификаторы SVG элементов (типа STRING), отображающие в целом ProgressBar и его текущее значение;
- минимальное, максимальное и текущее значение (тип UINT) для отображения на Progress Bar'е;
- цена минимального и максимального деления на шкале (тип UINT);
- ориентация ProgressBar'а (0 - вертикальная, любое другое число - горизонтальная), по умолчанию вертикальная.
Создан функциональный блок и реализовано его тело на языке ST стандарта IEC 61131-3. Часть исходного кода приведена ниже:
(* Формирование строки кода вызова метода createSVGUIControl для создания SVG *) (* элемента Progress Bar путём конкатенации всех входных параметров *) (* функционального блока *)
initCode: = CONCAT ('createSVGUIControl ("progressBar",pb_id="', pb_id, '", scale_id="', scale_id, '", orient="', orient, '",minv="', minv,'",maxv="', maxv, '",minor_sc="', minor_sc, '",major_sc="', major_sc,'", curv="',curv,'") ');
(* Вызов функционального блока initWidget типа python_eval для исполнения *)
(* кода, сформированного выше в строке initCode *)
initWidget (BOOL#1, initCode);
(* Получение из initWidget идентификатора созданного Progress Bar'а *)
ID: = initWidget. RESULT;
(* получение значения trig зависящего от флага flag и выходного параметра *)
(* ACK функционального блока initWidget, подтверждающего его выполнение *)
flag: = NOT flag;
trig: = AND (initWidget. ACK, flag);
(* установка текущего значения Progress Bar'а (метод setAttr) вызовом *)
(* функционального блока setValue типа python_eval *)
setValue (trig, CONCAT ('setAttr (', ID, ',"curv", ', curv, ') '));
Далее, в файле svguilib. py реализована логика работы SVG элемента на "стороне клиента", т.е. то, что отображается в браузере:
class progressBar:
def __init__ (self, parent, id, args): # метод вызываемый при создании
self. parent = parent # Progress Bar'а
self. id = id # идентификатор данного Progress Bar'а
self. pb = getSVGElementById (args. pb_id) # получение ID элемента SVG,
# отображ. в целом Progress Bar
self. scale = getSVGElementById (args. scale_id) # получение ID элемента SVG,
# отображ. индикатор
# код инициализации основных параметров: значение, мин. и макс значение,
# ориентация, цена минимального и максимального деления по шкале
self. createScale () # вызов метода создания шкалы для Progress Bar'а
self. updateElements () # вызов метода обновления графических атрибутов
def updateValues (self, values): # метод обновления отображаемого значения
if values. curv! = self. curv: # если значение изменилось
self. curv = values. curv
if self. orientation == 0: # если ориентация вертикальная
updateAttr (self. id, 'height', self. curv) # обновить высоту Progress Bar
else: # если ориентация горизонтальная
updateAttr (self. id, 'width', self. curv) # обновить ширину Progress Bar
self. updateElements () # вызов метода обновления графических атрибутов
def updateElements (self): # метод обновления графических атрибутов
if self. orientation == 0: # вертикальная ориентация
y = self. pb. getAttribute ("y") # получение положения Progress Bar'а по оси y
y_pos = self. max_value - self. curv + Number (y) # расчёт положения по оси y
# для индикатора
self. scale. setAttribute ("y", y_pos) # перемещение индикатора
self. scale. setAttribute ("height", self. curv) # изменение высоты индикатора
.
else: # горизонтальная ориентация
.
В результате реализован функциональный блок progressBar, который может быть использован для интеграции алгоритмов и логики программных модулей, написанных на языках стандарта IEC 61131-3, и человеко-машинного интерфейса, основанного на SVG графике.
Пример использования созданного функционального блока
Ниже представлен пример, демонстрирующий контроль и управление технологическим процессом, связанным с заполнением резервуара с водой. Имеются кнопки запуска/остановки наполнения резервуара, дополнительного насоса и ручной вызов аварийной сигнализации. С помощью созданного элемента Progress Bar отображается уровень воды в резервуаре. Часть описания реализации алгоритма и логики данного технологического процесса, в котором используется созданный элемент, на языке FBD, представлена на рис.5:
Рис.5 - Часть реализации управлением технологическим процессом на языке FBD
Человеко-машинный интерфейс прикладной программы отображается в браузере (см. рис.6), через который можно отслеживать выполнение технологического процесса и управлять им.
Рис.6 - Реализованный HMI с созданным элементом Progress Bar
Созданный элемент может быть использован аналогично стандартным элементам для реализации человеко-машинного интерфейса с помощью SVG графики в среде разработки Beremiz для любой задачи управления и контроля исполняемой прикладной программы.
Заключение
В статье были рассмотрены вопросы создания человеко-машинного интерфейса для прикладных программ, написанных с помощью среды разработки Beremiz для ПЛК на микропроцессорах с архитектурой SPARC и "Эльбрус". Сделан обзор существующих возможностей по созданию HMI в инструменте Beremiz. Представлен пример расширения элементов человеко-машинного интерфейса, посредством добавления соответствующего функционального блока: реализации его серверной и клиентской частей. Данный подход может быть использован для создания и расширения библиотеки элементов человеко-машинного интерфейса для более сложных и специфичных задач, где будут применяться ПЛК с отечественными процессорами.
Библиографический справочник
1. Баранов И.А., Глухов А.В. Языки стандарта IEC-61131 для вычислительных комплексов на базе отечественных микропроцессоров с архитектурой SPARC. Вопросы радиоэлектроники, сер. ЭВТ, 2012, вып.3
2. Building Web Applications with SVG, David Dailey, Jon Frost, Domenico Strazzullo; Microsoft Press, 2012, 294 pages
3. Web technology in automation Peter M. Steib, Saia-Burgess Controls, whitepaper
Размещено на Allbest.ru
...Подобные документы
Функции микропроцессоров в измерительных приборах. Цифровые вольтметры постоянного тока с время - импульсным преобразованием. Назначение, принцип действия и устройство цифровых частотомера, спидометра, термометра электронного весового оборудования.
реферат [608,5 K], добавлен 10.06.2014Модель нереверсивного трехфазного управляемого тиристорного преобразователя как совокупность функциональных блоков и схем на основе логических элементов в программном пакете MatLab+Simulink: регулировочные и внешние характеристики, выбор силовых ключей.
курсовая работа [1,4 M], добавлен 19.06.2013Процесс разработки структуры устройства управления узлом ЭВМ. Синтез функций возбуждения, входного и выходного алфавита на базе мультиплексора. Синтез интерфейса с пользователем с использованием мультиплексоров. Отладка синтезируемого автомата в EWB.
курсовая работа [1,6 M], добавлен 26.01.2013Понятие и функции блоков управления пропорциональной электрогидравлической системы, порядок их разработки: выбор и обоснование элементной базы, структурной и принципиальной схемы, расчет узлов и блоков, а также потребляемой устройством мощности.
дипломная работа [665,9 K], добавлен 05.12.2012Светофор как устройство для подачи световых сигналов, регулирующих движение на улицах и автомобильных дорогах, подвижного состава на железной дороге. Знакомство с этапами разработки устройства управления трехцветным светофором на логических элементах.
курсовая работа [373,5 K], добавлен 22.12.2016Характеристика и сущность UART - полнодуплексного интерфейса, когда приемник и передатчик работают одновременно, независимо друг от друга. Принципы работы интерфейса RS-232C и интерфейса RS-485. Основные особенности принципа передачи данных в RS-485.
реферат [111,6 K], добавлен 15.08.2011Направления развития бортовой электроники портативных беспилотных летательных аппаратов. Технические характеристики разрабатываемого контроллера. Схема, устройство и принципы реализации основных функциональных блоков системы управления квадрокоптера.
дипломная работа [1,6 M], добавлен 25.06.2019Общие понятия и базовые аспекты построения беспроводных локальных сетей, особенности их структуры, интерфейса и точек доступа. Описание стандартом IEEE 802.11 и HyperLAN/2 протокола управления доступом к передающей среде. Основные цели альянса Wi-Fi.
курсовая работа [507,2 K], добавлен 29.11.2011Разработка блока управления, позволяющего включить блок питания Bertan 210-30 в систему управления установкой. Выбор микроконвертера AduC, интерфейса RS-232 и протокола Modbus. Программное обеспечение. Функции программы. Создание библиотеки Modbus slave.
контрольная работа [443,3 K], добавлен 25.01.2013Синтез комбинационных схем. Построение логической схемы комбинационного типа с заданным функциональным назначением в среде MAX+Plus II, моделирование ее работы с помощью эмулятора работы логических схем. Минимизация логических функций методом Квайна.
лабораторная работа [341,9 K], добавлен 23.11.2014Подходы к выполнению коммутации каналов, пакетов и сообщений. Алгоритм Флойда для выбора кратчайшего пути между всеми узлами сети. Описание интерфейса и работы программы. Проектирование региональных вертикальных и межрегиональной горизонтальной сетей.
курсовая работа [2,7 M], добавлен 19.02.2013Разработка общей структуры промышленной сети программируемых контроллеров в рамках автоматизированной системы расчета технологии измерения размеров образца металла с использованием компьютерных сетей связи. Проведение технического контроля аппарата.
дипломная работа [96,3 K], добавлен 06.03.2010Классификация систем управления (СУ) машиностроительным оборудованием. Архитектура СУ на базе микропроцессорных комплектов фирм DEC и Motorola. Программное обеспечение СУ и программируемых контроллеров. Графический язык программирования Ladder Diagram.
курс лекций [374,5 K], добавлен 22.11.2013Конструкция и проектные параметры микромеханического акселерометра. Технологический процесс его производства. Расчет чувствительного элемента, пружин, коэффициента демпфирования, компенсирующего градиента, емкостного интерфейса, параметров датчика.
дипломная работа [3,1 M], добавлен 27.07.2013Назначение базы данных и ее основные функции. Категории пользователей, инфологическое и даталогическое проектирование базы данных "Интернет-магазин". Учет специфики предметной области, ограничения и бизнес-правила. Описание пользовательского интерфейса.
курсовая работа [3,3 M], добавлен 30.09.2011Элементы автоматического управления. Проектирование цикловой дискретной системы автоматического управления с путевым контроллером. Исходный граф, схема механизмов и граф функционирования устройства. Синтез логических функций управления выходами.
контрольная работа [783,3 K], добавлен 17.08.2013Методы контроля сварных соединений. Структурная схема информационно-измерительной системы. Математические преобразования для получения математической модели датчика. Метод определения возможной погрешности измерений. Выбор и обоснование интерфейса.
курсовая работа [505,0 K], добавлен 19.03.2015Главные требования к современным операционным системам. Выполнение основных функций эффективного управления ресурсами. Обеспечение удобного интерфейса для пользователя и прикладных программ. Расширяемость, переносимость или многоплатформенность.
презентация [29,4 K], добавлен 18.02.2010Функциональное назначение заданного комплекса технологического оборудования: электронной системы программного управления-электропривод-станок. Разработка тест-программы для проверки работы оборудования. Расчет трудоемкости капитального ремонта станка.
дипломная работа [2,8 M], добавлен 11.07.2016Расчет и проектирование системы управления антенной радиолокационной станции. Построение структурной схемы по функциональной cхеме, техническим характеристикам функциональных элементов и требованиям к системе управления. Синтез вычислительного алгоритма.
курсовая работа [721,1 K], добавлен 11.02.2016