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

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

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

12.09.2025 721 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 721 0
Комментарии
Рекомендуем
К 130-летию со дня рождения  великого советского физика  Игоря Евгеньевича Тамма.  Часть 5. Как были открыты плазмоны

К 130-летию со дня рождения великого советского физика Игоря Евгеньевича Тамма. Часть 5. Как были открыты плазмоны

Продолжаем серию статей о научном наследии Игоря Тамма. В предыдущих статьях мы рассмотрели, как его идеи, изложенные в статьях 1930–1950-х годов, повлияли на развитие нового научного направления «плазмоники», изучающего взаимодействие света с электронами в металлах и эффекты локализации света в объёмах меньше его длины волны. В частности, мы разобрали некоторые темы: современные быстродействующие электрооптические модуляторы, поверхностные состояния Тамма, запрещённые фотонные зоны, фотонные кристаллы («Современная электроника» № 7–9, 2025), а также экситон-поляритоны и фонон-поляритоны («Современная электроника» № 4, 2026). В этой статье мы расскажем о том, как научное предвидение Игоря Тамма позволило правильно прогнозировать именно те направления исследований, где были открыты объёмные и поверхностные плазмоны.
27.07.2026 СЭ №6/2026 222 0
Примеры измерения импульсной компоненты электромагнитного поля ОНЧ-диапазона на фоне сейсмической активности. Часть 2

Примеры измерения импульсной компоненты электромагнитного поля ОНЧ-диапазона на фоне сейсмической активности. Часть 2

Данная статья является продолжением работы «Примеры измерения импульсной компоненты электромагнитного поля ОНЧ-диапазона на фоне сейсмической активности» (Современная электроника. 2025. № 7. С. 39–43), в которой приведены экспериментальные данные импульсной компоненты естественного электромагнитного поля (И.К. Э-М. П.) ОНЧ-диапазона (600…3600 Гц), синхронно зарегистрированные на двух разнесённых по широте авроральных обсерваториях ПГИ Баренцбург (78,08°, 14,2°; арх. Шпицберген) и Ловозеро (67,97º, 35,08º; Мурманская обл., РФ). Для сопоставления сейсмической активности с АЧХ и АВХ И.К. ОНЧ-сигнала использованы архивные данные норвежской сети NORSAR, а также приведены некоторые характеристики гелиогеофизических факторов, влияющих на состояние нижней ионосферы: вариации магнитного поля Земли (Hx, Hy, Hz) и временны́е периоды освещённости Солнцем нижних слоёв ионосферы (h < 90 км) в пунктах регистрации ОНЧ-сигнала. Приёмно-регистрирующая аппаратура, используемая на обсерваториях, выполнена по идентичной схеме и состоит из приёмника ОНЧ-диапазона со взаимно ортогональным расположением приёмных рамочных антенн [1] и последовательного анализатора спектра импульсных сигналов [2].
24.07.2026 СЭ №6/2026 392 0

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