Панель оператора в качестве терминального устройства — АСУ ТП: сообщество инженеров

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

Коротко о статье

Описание проекта, позволяющего использовать панель оператора Weintek MT8072iP как терминальное устройство через RS-232. Приведены схема подключения, программа на EasyBuilder Pro и три макроса для отправки, приёма и инициализации строк.

Главное
  • Панель оператора MT8072iP компании Weintek имеет сенсорный экран 800×480 и порт RS-232 для подключения к микроконтроллерам или компьютерам.
  • Для соединения по RS-232 достаточно трёх проводов: TxD, RxD и GND.
  • Программный проект создан в среде EasyBuilder Pro; в системных параметрах задаётся формат интерфейса RS-232.
  • Главное окно содержит один строковый элемент ASCII для отправки и четыре для приёма, каждый размером до 64 символов.
  • Макрос Init инициализирует карту памяти панели, Send_RS-232 отправляет строку, Read_RS-232 опрашивает порт каждые 100 мс.
  • Проект можно модернизировать: заменить клавиатуру, подключить физическую USB-клавиатуру, изменить дизайн или скомпилировать для другой панели Weintek.
Термины и технологии
  • панель оператора
  • MT8072iP
  • Weintek
  • RS-232
  • EasyBuilder Pro
  • макрос
  • ASCII
  • USB

Кому полезно: Инженеры АСУ ТП, занимающиеся программированием панелей оператора и терминальным обменом данными.

По теме на сайте

Первоисточник: cta.ru

Выжимка составлена редакцией сайта с помощью ИИ по тексту статьи.

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

Введение

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

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

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

Проект

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

Рис. 1. Схема подключения панели оператора

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

Программа

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

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

Рис. 2. Окно параметров устройства RS-232

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

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

Рис. 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.

Источник: https://www.cta.ru/articles/soel/2025/se-2025-7/182222

Источник: статья в сообществе ВКонтакте

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.

Прокрутить вверх