Фильтр по тематике

Панель оператора в качестве терминального устройства

Приведено описание проекта, разработанного автором статьи, позволяющее использовать панель оператора в качестве терминального устройства.

12.09.2025 653 0
Панель оператора в качестве терминального устройства

Введение

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

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

Рассмотрим на конкретном примере готовый пример такого проекта и программы.

Проект

В качестве панели оператора была использована распространённая модель MT8072iP компании Weintek [1]. Данная семидюймовая панель имеет цветной сенсорный графический экран с разрешением 800×480 пикселов и несколько коммуникационных интерфейсов, среди которых присутствует последовательный порт RS-232. Данный порт позволяет подключать панель оператора к микроконтроллерам, компьютерам или к другой панели оператора, имеющей аналогичный порт. Для осуществления такого подключения потребуется всего лишь три провода, соединяющие между собой сигнальные цепи: TxD, RxD и GND. Схема подобного соединения между панелью оператора и компьютером показана на рис. 1.


Аналогичным образом можно подключить панель оператора к другой панели оператора или к микропроцессорному устройству.

Программа

С помощью свободно распространяемой среды разработки EasyBuilder Pro создан рабочий программный проект для панели оператора. Описание среды разработки и способы загрузки приложения в панель оператора приведены в статье [2]. Основой проекта служит заготовка, которая автоматически формируется средой разработки при создании нового проекта.

В системных параметрах проекта необходимо добавить новое устройство в соответствии с окном, приведённым на рис. 2.


Здесь задаётся формат интерфейса RS-232, который будет использоваться в терминальном обмене данными.

Главное и единственное окно программы представлено на рис. 3.


Данное окно содержит один строковый элемент ASCII в поле отправки и четыре строковых элемента ASCII в поле приёма. Каждая из строк имеет максимально допустимый для данных элементов размер в 64 символа.

Инициализация этих строк производится с помощью макроса Init. В этом макросе приведена карта памяти панели оператора. Код макроса Init с подробными комментариями приведён в листинге 1.

Листинг 1. Код макроса Init
// Макрос инициализации
macro_command main()
// Карта памяти панели оператора
// LW0...LW255 – Буфер приёма
// LW2000...LW2255 – Буфер отправки
// LW3000 – Указатель начала строки в памяти x
// LW3001 – Счётчик отправленных символов n
// LW3002 – Количество принятых символов k
unsigned short m[256]={0} // Массив строк
unsigned short d=0 // Переменная данных
FILL(m[0], ' ', 256) // Заполнить весь массив строк символом пробела
SetData(m[0], "Local HMI", LW, 0, 256) // Записать массив строк в память панели оператора
SetData(d, "Local HMI", LW, 3000, 1) // Обнулить указатель начала строки в памяти x
SetData(d, "Local HMI", LW, 3001, 1) // Обнулить счётчик отправленных символов n
SetData(d, "Local HMI", LW, 3002, 1) // Обнулить количество принятых символов k
end macro_command

При нажатии на поле отправки в окне панели автоматически появится виртуальная клавиатура для ввода любых доступных символов. Завершение ввода производится виртуальной кнопкой «Enter», очистка – кнопкой «Clear», а закрытие клавиатуры – кнопкой «Esc».       

Для отправки набранной строки применён элемент «Битовый переключатель» с именем «Отправить», используемый в качестве программной кнопки, который вызывает макрос Send_RS-232. Код этого макроса приведён в листинге 2.

Листинг 2. Код макроса Send_RS-232
// Макрос отправки строки символов в порт RS-232
macro_command main()
unsigned char tx[256]={0} // Массив символов строк
unsigned short n=0 // Счётчик отправленных символов
unsigned short i=0 // Переменная цикла
FILL(tx[0], 0, 256) // Обнулить массив
GetData(tx[0], "Local HMI", LW, 2000, 256) // Читать из памяти символы строк в массив
for i=0 to 255 // Проверка массива
if tx[i] <> 0 then // Если элемент массива не нулевой
OUTPORT(tx[i], "RS-232", 1) // Отправить элемент массива в порт RS-232
n=n+1 // Считать отправленные символы
end if
next i
SetData(n, "Local HMI", LW, 3001, 1) // Записать счётчик в память
// Beep() // Формировать звуковой сигнал окончания отправки
end macro_command

Для очистки поля приёма применён элемент «Битовый переключатель» с именем «Очистить». Он позволяет вызывать макрос Init, который и производит очистку памяти поля приёма.

Последний, третий макрос, который используется в программе, имеет имя Read_RS-232. Он постоянно опрашивает порт RS-232 с периодичностью 100 мс и помещает принятые символы в буфер памяти приёмника. Код макроса Read_RS-232 приведён в листинге 3.

Листинг 3. Код макроса Read_RS-232
// Макрос регулярного чтения порта RS-232
macro_command main()
unsigned char rx[256]={0} // Массив 8-разрядных символов строк
unsigned short rxu[256]={0} // Массив 16-разрядных символов строк
unsigned short k=0 // Количество принятых символов
unsigned short x=0 // Указатель начала строки в памяти
unsigned short i=0 // Переменная цикла
FILL(rx[0], 0, 256) // Обнулить массив 8-разрядных символов строк
INPORT2(rx[0], "RS-232", k, 1) // Читать порт RS-232
// TRACE("k=%u", k) // Отладочная информация
if k>0 then // Если приняты символы из порта RS-232
SetData(k,"Local HMI", LW, 3002, 1) // Записать количество принятых символов в память
for i=0 to 255
rxu[i]=rx[i] // Копировать массив
next i
GetData(x,"Local HMI", LW, 3000, 1) // Читать указатель начала строки в памяти
SetData(rxu[0],"Local HMI", LW, x, k) // Записать массив 16-разрядных символов строк в память
x=x+k // Вычислить смещение указателя
if x>255 then // Если указатель превысил границу
x=0 // Обнулить указатель
end if
SetData(x,"Local HMI", LW, 3000, 1) // Записать указатель в память
Beep() // Формировать звуковой сигнал окончания приёма символов
end if
end macro_command

Протестировать программу можно с помощью любого компьютера с установленной на нём терминальной программой или с помощью двух панелей оператора, подключив их между собой.

Заключение

Рабочий проект можно загрузить с сайта журнала и модернизировать его под конкретные задачи.

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

Кроме того, можно подключить к панели оператора физическую клавиатуру через интерфейс USB и использовать её для ввода символов. Для этого нужно изменить в атрибутах строкового элемента ASCII из поля отправки свойство ввода данных путём снятия отметки «Использовать всплывающую клавиатуру».

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

Проект можно перенастроить и компилировать для загрузки в любой другой тип панели Weintek с необходимым размером экрана.

Литература

  1. URL: https://www.weintek.net/MT8072iP.html.
  2. Вальпа О. Интеллектуальное освещение // СТА. 2025. № 2. С. 52.

© СТА-ПРЕСС, 2025


Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

12.09.2025 653 0
Комментарии
Рекомендуем
Современные системы управления электроприводов: структура и конструкция. Часть 2

Современные системы управления электроприводов: структура и конструкция. Часть 2

Статья посвящена системам управления электроприводов, которые в настоящее время являются основным средством приведения в движение рабочих машин и других технических устройств. Излагаются основные сведения об электроприводах и их системах управления, предназначенных для управления преобразователем электрической энергии и электродвигателем – главными составными частями электропривода. Рассматриваются различные варианты структуры и конструкции систем управления электроприводов. Приводится описание универсального микроконтроллерного блока управления БУПЧ, который является основой систем управления преобразователями частоты для электроприводов большой и сверхбольшой мощности концерна «Русэлпром».
09.06.2026 СЭ №5/2026 491 0
Эффективное количество бит цифровых осциллографов: влияние на результаты измерений и экспериментальное определение для приборов VESNA

Эффективное количество бит цифровых осциллографов: влияние на результаты измерений и экспериментальное определение для приборов VESNA

В статье рассмотрены особенности измерения эффективного числа бит (ENOB) для цифровых осциллографов. Представлен анализ ENOB как характеристики аналого-цифрового преобразования, отмечены ключевые причины искажений сигналов при аналого-цифровом преобразовании. Проанализированы особенности определения эффективного количества бит цифровых осциллографов на основе прямых измерений, обоснован наиболее простой способ определения ENOB на базе сопоставления среднеквадратичного напряжения на выходе генератора синусоидального сигнала и аналогичного значения, измеренного осциллографом. Для осциллографов серий OVA3, OVS3, OVU2 нового для российского рынка бренда VESNA проведены экспериментальные оценки эффективного количества бит.
05.06.2026 СЭ №5/2026 444 0
Параллельное соединение однотипных модулей электропитания для резервирования с активным принудительным распределением тока нагрузки

Параллельное соединение однотипных модулей электропитания для резервирования с активным принудительным распределением тока нагрузки

В статье кратко рассмотрены основные проблемы, возникающие при параллельном соединении модулей электропитания для увеличения мощности и резервирования в современных распределённых системах электропитания для сложных радиотехнических, компьютеризированных и телекоммуникационных комплексов. Рассмотрен метод равномерного распределения тока нагрузки и синхронизации высокой частоты преобразования включённых параллельно однотипных модулей DC/DC-преобразователей напряжения Brick (2-го поколения) компании Wibbow c применением двунаправленного цифрового интерфейса между модулями, обеспечивающий несложное надёжное параллельное соединение для повышения выходной мощности и резервирования.
04.06.2026 СЭ №5/2026 385 0

  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться