Найти тему
Владимир Радченко

DWIN DGUS. Страница защищённая паролем.Пакетное считывание и запись. Интерфейс RS485

Оглавление

В прошлых статьях подключение к дисплею осуществлялось через интерфейс UART TTL, однако кроме данного интерфейса на дисплеях, в зависимости от исполнения, присутствуют интерфейсы RS232, RS485 и CAN. Так как в промышленном оборудовании в подавляющем большинстве используются более помехоустойчивые интерфейсы связи, то нельзя не обратить внимание них. В данной статье будет рассмотрена возможность использования интерфейса RS485.

Прошлые статьи:

DWIN. Подготовка дисплея к работе и загрузка демо-проекта

DWIN. Знакомство с программным обеспечением DWIN Graphic Utilized Software. Hello World

DWIN. Протокол Modbus. Slave и Master режимы.

DWIN. Связываем STM32 Nucleo и дисплей.

DWIN. Элемент Real-Time Curves, чертим графики.

DWIN DGUS. Элемент Artistic Variables. Отображаем цифры иконками.

Дисплей

Для реализации проекта будет использован промышленный дисплей DMG10600T070_A5WTC. Рассмотрим характеристики дисплея:
Диапазон рабочих напряжений:
7В - 36В.
Потребляемый ток:
150-300мА.
Разрешение:
1024х600.
Тип матрицы:
IPS 16.7M цветов.
Тип сенсорной панели:
Емкостная.
Яркость подсветки:
250нит.
Flash память:
16 Мб.
Встроенный
RTC.
Стандарт защиты от воздействия окружающей среды:
IP65 на лицевой панели.
Интерфейсы: UART2 (
RS232),UART4 (RS485), UART5(RS232) , CAN.

DMG10600T070_A5WTC
DMG10600T070_A5WTC

Дисплей относится к промышленной линейке продуктов, поэтому к встроенной подсветке предъявляются более серьёзные требования и она разрабатывается с ресурсом 30000ч при максимальной яркости.

Проект

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

DRAW.IO - формируем изображения

На первой странице разместим 18 полей для пакетной записи, а также кнопку "настройки" в виде шестеренки, при нажатии на кнопку будет отображаться клавиатура для ввода пароля. Введенное в поле число будет отображаться "*".

Первая страница
Первая страница

На странице настроек разместим 5 редактируемых полей и слайдер установки яркости дисплея.

Страница настроек
Страница настроек

Последней страницей в данном демо-проекте будет страница с размещенной клавиатурой

Страница с клавиатурой
Страница с клавиатурой

Также формируем иконку слайдера для отображения яркости дисплея:

Слайдер
Слайдер

На этом формирование страниц закончено, приступаем к формированию интерфейса в ПО DGUS.

DGUS

Открываем программу, создаём проект с разрешением 1024х600, формируем *.ICL файлы с подготовленными выше изображениями, в демо-проекте номера будут следующие: фоновое изображение 32.ICL, изображение иконок 35.ICL. После чего добавляем изображения в рабочую область

Стартовая страница
Стартовая страница

Формируем 18 полей с последовательными адресами для пакетной записи:

Добавление элемента Data variables
Добавление элемента Data variables

Адрес первой ячейки 1000, последней 1011 в шестнадцатеричной системе счисления.

Следующим элементом добавляем "Data Input", задаем адрес записи 1100, а также указываем область клавиатуры на странице 04.

Добавление элемента Data Input
Добавление элемента Data Input

Рассмотрим настройки поближе:

Описание элемента Data Input
Описание элемента Data Input

Variable type - указываем int, так как пароль будет состоять из 4 цифр, если цифр необходимо больше, то выбираем большую размерность.
Integer digits выбираем 4 из тех же соображений.

Display method - "show \*\" позволяет отображать введенные данные в виде звездочек. В меню настроек будет использована эта же клавиатура, но данная настройка будет другая и цифры будут отображаться.

Раз в данном дисплее реализован встроенный RTC то проверим его работу на главном экране. Размещаем одноименный элемент:

Финальный вид стартовой страницы
Финальный вид стартовой страницы

Страница настроек:

Страница настроек
Страница настроек

Добавляем кнопку "Basic Touch" с функцией перехода на стартовую страницу:

Страница настроек добавление Basic Touch
Страница настроек добавление Basic Touch

Добавим элементы позволяющие управлять яркостью дисплея:

Далее необходимо добавить элементы ввода данных и отображения для 5 полей:

Поля размещены последовательно по адресам 2000-2004 для пакетного считывания данных.

Сохраняем проект и генерируем файлы. Также в папку DWIN_SET необходимо будет добавить файл который заменяет UART2 предназначенный для работы с DWIN_OS, на UART4 на котором находится RS485. После загрузки данного файла все команды будут отправляться и приниматься именно через этот интерфейс.

Docklight - формируем команды для взаимодействия с дисплеем

Рассмотрим протокол общения из документации, нам необходимо пакетное считывание и пакетная запись, работа с RTC и полученные данных после ввода с клавиатуры.

RTC:

Из документации отображение 1 октября 2050 года, 11:12:13

5A A5 0B 82 00 9C 5A A5 32 0A 01 0B 0C 0D где:
5A A5 -
заголовок
0B -
длинна данных
82 -
команда на запись
00 9C -
постоянный адрес RTC
5A A5 -
запуск настройки RTC
32 -
год, 0A - месяц, 01 - день, 0B - часы, 0C - минуты, 0D - секунды.

Нам необходима сегодняшняя дата
9 мая 2022 года, 15:30:45
Пакет будет иметь следующий вид:
5A A5 0B 82 00 9C 5A A5 16 05 09 0F 1E 2D

Пакетное считывание 5 переменных:
5A A5 04 83 20 00 05
5A A5 -
заголовок
04 -
длинна данных
83 -
команда на чтение
20 00 -
адрес данных
05 -
количество считанных данных из памяти (5 = 10 byte)

Ответ на запрос пакетного считывания:
5A A5 - заголовок
0E -
длинна данных
83 -
команда на чтение
20 00 -
адрес данных
05 -
количество считанных данных из памяти (5 = 10 byte)
00 6F -
Считанное значение из памяти по адресу 2000 (111)
00 DE -
Считанное значение из памяти по адресу 2001 (222)
00 40 -
Считанное значение из памяти по адресу 2002 (64)
00 80 -
Считанное значение из памяти по адресу 2003 (128)
01 00 -
Считанное значение из памяти по адресу 2004 (256)

Пакетная запись в 18 переменных:
5A A5 27 82 10 00 00 64 00 68 00 DC 00 F0 00 AA 00 BB 00 01 00 02 00 01 00 03 00 05 00 08 00 64 00 D0 00 DC 02 D0 03 52 05 D8
5A A5 -
заголовок
27 -
длинна данных
82 -
команда на запись
10 00-
адрес данных
00 64 -
поле Voltage 1 (значение 100)
00 68 -
поле Voltage 2 (значение 104)
00 DC -
поле Voltage 3 (значение 220)
00 F0 -
поле Voltage 4 (значение 240)
00 AA -
поле Voltage 5 (значение 170)
00 BB -
поле Voltage 6 (значение 187)
00 01 -
поле Current 1 (значение 1)
00 02 -
поле Current 2 (значение 2)
00 01 -
поле Current 3 (значение 1)
00 03 -
поле Current 4 (значение 3)
00 05 -
поле Current 5 (значение 5)
00 08 -
поле Current 6 (значение 8)
00 64 -
поле Power 1 (значение 100)
00 D0 -
поле Power 2 (значение 208)
00 DC -
поле Power 3 (значение 220)
02 D0 -
поле Power 4 (значение 720)
03 52 -
поле Power 5 (значение 850)
05 D8 -
поле Power 6 (значение 1496)

Считывание введенного пароля:
5A A5 06 83 11 00 01 0E 46
5A A5 -
заголовок
06 -
длинна данных
83 -
команда на чтение
11 00 -
адрес данных
01 -
количество передаваемых данных (1 = 2 byte)
0E 46 -
введенный пароль "3654" в HEX формате

Команда перехода на страницу при совпадении пароля:
5A A5 07 82 00 84 5A 01 00 02
5A A5 -
заголовок
07 -
длинна данных
82 -
команда на запись
00 84 -
постоянный адрес перехода по страницам
5A 01 -
запуск настройки перехода по страницам
00 02 -
номер страницы

Добавим команды в программу Docklight

Подключение дисплея:

Видео работы:

Результат работы Docklight из видео:

Результат работы Docklight
Результат работы Docklight

Заключение

В данной статье был создан демо-проект с пакетной записью и считыванием данных, переходом на страницу с парольной защитой. Также показано как легко перевести дисплей в работу на другой асинхронный порт, в нашем случае UART4 - RS485.

Ссылка на GitHub: https://github.com/VB-Radchenko/DWIN-Project/
По вопросам оптовых закупок, персональных скидок, технической поддержки и общим вопросам обращайтесь:
Email: Info_dwin@mail.ru
VK:
https://vk.com/radchenko_vb
Telegram:
https://t.me/Radchenko_VB
Сообщество VK
https://vk.com/public208909284
Скидочный купон на 5$ для официального магазина
AliExpress - DWVLPRO

Пишите в комментарии, разбор какого функционала хотелось бы увидеть.