Настройка LED-контроллеров Lavritech
На этой странице собрана общая информация по настройке светодиодных табло, а также приведён вводный пример для быстрого начало работы. Конкретные примеры применения светодиодных табло c настройками представлены внутри данного раздела.
Начало работы
Настройка Wi-Fi подключения
- отключите питание устройства
- переведите устройство в режим настройки. Для этого переведите переключатель на торце табло в положение "Настройка".
- в сети появится Wi-Fi точка доступа
LavriTech - перейдите по адресу
192.168.4.1в браузере, далее откроется веб-интерфейс табло

- перейдите на вкладку
Main - в разделе WIFI options выберите режим Station mode. Расшифровка режимов:
AP- access point (режим точки доступа)Station- режим подключения к уже имеющемуся роутеру

- выберите Dynamic IP (если хотите использовать динамический IP-адрес), и нажмите на кнопку
Set - далее DHCP-сервер выдаст IP-адрес в поле
IP(например, 192.168.1.120) - выключите питание устройства
- переведите переключатель на торце табло в положение "Работа"
- включите устройство
- теперь устройство подключится к вашей Wi-Fi сети и будет доступно по адресу 192.168.1.120
- во вкладке
Main, в полеHost Nameможно задать удобное имя для устройства, например "ClockDisplay". Для сохранения настроек необходимо нажать на кнопкуSet.
Настройка текущего времени
- для настройки правильного времени перейдите на вкладку
Mainи укажите вашу временную зону в полеGMT zone(например, для Москвы это +3) - время автоматически загрузится из Интернета и установится в шапке на главной странице - см.
Local Time

Вывод времени на светодиодное табло
В качестве простого примера использования рассмотрим часы: выведем на экран текущее время
- перейдите на вкладку
Display, - выберите значение Led Platform из списка
Display Selectedи нажмите кнопкуSet. Через некоторое время на странице появятся дополнительные опции. - далее настроим вывод времени. Для этого в появившемся блоке ниже, в выпадающем списке выберите
Local time - остальные настройки области отображения выставите согласно скриншоту:

- нажмите кнопку
Set, чтобы сохранить настройки области отображения - в итоге на табло в левом верхнем углу экрана будет выведено текущее время синим цветом
- вы можете изменять настройки области и управлять положением, размером и цветом текста на экране

Описание доступных опций
Программное обеспечение поддерживает до 8-ми (или до 16-ти в некоторых версиях) областей отображения. Они определяют местоположение и вид данных.
Для каждой области можно задавать следующие параметры:
- в выпадающем списке выбирается привязка к данным, которые будут отображаться в текущей области (в нашем примере для часов - это
Local time) Zoom- "зум" - увеличивает каждый пиксель кратно значению в поле.1- обычный размер.Font- идентификатор шрифта. Набор шрифтов зависит от версии прошивки для LED GPU. В стандартном наборе поддерживается два шрифта:0- шрифт 6x8, моноширинный1- шрифт 16x16, переменной ширины
Text: x, y- координаты начала строки текста (текст выводится внутри области)color- задаёт цвет текста и цвет фона (RGB, см. примеры значений ниже)Area: x, y, height, width- положение и размер области: координаты верхнего левого угла, высота и ширина в пикселях
Для сохранения параметров нажмите на кнопку Set.
Значения цвета
Цвет указывается тремя цифрами в формате RGB, где каждая цифра соответствует интенсивности цвета по каналам.
Первая цифра - красный канал, вторая цифра - зелёный, третья - синий.
На данный момент поддерживаются 2 уровня интенсивности 0 (канал выключен) и 1 (канал включен). То есть можно выбрать 8 сочетаний цветов.
Примеры:
- 000 - чёрный
- 100 - красный
- 010 - зелёный
- 001 - синий
- 111 - белый
Управление яркостью
Устройство поддерживает несколько уровней яркости (от 1 до 10). Их можно задать в поле Brightness.
Для сохранения уровня яркости нажмите на кнопку Set.
Примеры работы с Interpreter
Базовые функции
Команда printd предназначена для вывода текста в зоны (Display Areas)
Вместо времени можно поставить другие метрики (например _DATE_, значения датчиков, и др.)
Также можно использовать конструктор строк (вкладка Designer_lines) и выводить уже готовые строки оттуда
В новых версиях прошивки появилась удобная возможность интеграции Designer_lines со значениемintval-переменных напрямую:
Чередование данных
Ниже в качестве примера чередования данных приведён скрипт который будет чередовать дату/время раз в 30 секунд. По аналогии можно сделать чередование других метрик или строк из Designer_lines.
Ссылка на полный список метрик: Конструктор строк (Designer lines) - Метрики
valmath(2,secondsperday%30)
if(intval2==0)
if(intval1==0)
intval1=1
else
intval1=0
endif
endif
if(intval1==0)
printd(1,_TIME_)
else
printd(1,_DATE_)
endif
Описание скрипта
Для работы скрипта должны быть включена поддержка глобальных переменных intval (включается при формировании прошивки).
valmath(2,secondsperday%30) - задаёт интервал срабатывания раз в 30 сек.
Устанавливает значение переменной intval2 как остаток от деления на 30. Когда intval2 будет равно нулю, то сработает код ниже после if (invval2==0) ...
intval1 - просто глобальная переменная которая меняется 0 / 1 для чередования данных.
И далее идёт код в котором выводятся разные данные в зависимости от значения intval1.
Пример управления через Modbus
Рассмотрим пример вывода текста на светодиодное табло через Modbus RTU (или TCP).
Задача состоит в том чтобы переключать строки текста, подготовленные в Designer_lines. Пользователь через SCADA-систему (или другой Modbus master) записывает номер строки в регистры, и эта строка выводится в нужную область экрана (номер области определяется в Interpreter).
В контроллере должна быть активна опция Modbus Slave (RTU или TCP вариант) и присутствовать вкладка на главной странице "MobBus_slave". При необходимости обновите прошивку.
Настройка Display
- для начала распределим области отображения
- на вкладке Display - определяем параметры первой области отображения: шрифт, цвет, координаты, размер
- в этом примере нам будет достаточно одной области - именно в ней будем изменять текст
- например, сделаем данную область размером 80x40 пикселей
- Внимание! Размер и положение области нужно выбирать так, чтобы область не выходила за размеры экрана.
- в выпадающем списке оставляем значение "NOT selected"
- после установки параметров - нажимаем на кнопку SET внизу

Настройка Designer_lines
- в этой вкладке формируем и сохраняем варианты строк для вывода
- в строках можно использовать специальные подстановочные значения чтобы выводить значения переменных и метрик (подробнее см. список метрик)
- сделаем для примера 2 строки

Настройка Interpreter
Для того чтобы управлять выводом в области экрана воспользуемся Interpreter.
В данном случае номер строки с нужным вариантом текста из Designer_lines будет хранить переменная Interpreter под названием intval1. 1 - номер этой переменной - нам понадобится позже.
- возвращаемся на главную и открываем вкладку Interpreter
- в поле "Script text" пишем текст:
- в первой строке - настраивается вывод номера строки (выбранного варианта текста) на главной странице. Зто значение будет хранить переменная под названием
intval1.- позже при записи modbus-регистров будет изменяться это значение.
- вывод на главную значений переменных может быть удобен для контроля работы алгоритма
- во второй строке при помощи
printdустанавливается связь для вывода на табло:- (
1,$1) - первый параметр в скобках - указывает номер области из вкладки Display. Параметр определяет в какую область экрана будет выводится текст - (1,
$1) - второй параметр в скобках - указывает из какой переменной будет браться значение строки для вывода. В данном случае этоintval1- поэтому указываем её номер как$1
- (
- нажимаем кнопку SET внизу (во втором блоке)
- перемещаемся наверх - ставим галочку "Enable runing" для активации работы скрипта
- также устанавливаем период, например раз в 3 секунды. Тогда контроллер будет повторять выполнение скрипта и каждые 3 секунды отслеживать изменение значения в регистре modbus.
- нажимаем кнопку SET в первом блоке

Настройка Modbus Slave
- для режима RTU - заходим в веб-интерфейсе контроллера на вкладку "MobBus_slave" и выставляем параметры соединения через "Config RTU"
- задаём адрес устройства и скорость обмена
- другие параметры связи: чётность - None, 2 стоповых бита. Они определяются на этапе компиляции ПО и их значения не изменяются из пользовательского интерфейса.

- возвращаемся обратно в "MobBus_slave"
- формируем часть карты регистров устройства. Нам понадобится как минимум одна переменная для Interpreter чтобы переключать текст на дисплей
- выбираем соответствующий пункт в выпадающем списке, а также указываем номер переменной -
1 - после назначения нажимаем кнопку SET

- таким образом при записи значения в регистры c адресами 0 и 1 - это значение транслируется в переменную
intval1 - значение занимает 2 регистра! Записывать нужно два регистра в одном запросе.
Пример установки значения
- выполняем нужные соединения ПК и контроллера. Например, подключаем переходник USB-RS485, проконтролируем что нужный COM-порт появился в системе. Соединяем линии A/B с контроллером.
- открываем программу, которую можно использовать в качестве Modbus Master. В данном случае покажем на примере утилиты
modpoll. -
запускаем
modpollс такими параметрами (при необходимости скорректируйте параметры связи). Пример команды:-m rtu- режим работы - RTU-a 10- адрес устройства-r 1- адрес регистра (надо указать со смещением +1, пишем в регистр 0)-t 4- тип регистров (4 - Holding)-c 2- количество регистров - значение занимает 2 регистра!-b 9600- скорость-p none- чётность (parity)-s 2- 2 стоп-бита/dev/ttyACM0- наименование порта1 0- значение для записи: 2 регистра. В первом регистре - номер строки. Второй всегда 0.
-
итак, мы записали в регистры значения
1 0- тем самым установили значение переменной
intval1в 1 - при обновлении главной страницы мы увидим что вариант изменился
- Interpreter отрабатывает это и выводим строчку с номером 1 из Designer_lines на экран

- тем самым установили значение переменной
-
аналогично, для вывода второй строки - записываем в регистры значения
2и0
Важные моменты
Количество регистров:
Записывать или читать надо всегда по 2 Holding-регистра!.
В данном примере для записи (или чтения) номера строки используется значение, которое занимает 2 регистра Modbus.
Функции Modbus:
16 (0x10) Write Multiple registers - для записи.
3 (0x03) Read Holding Registers - для чтения.
Порядок байт в значении: "BADC":
Значение в регистрах - хранится младшим регистров вперёд (Swap Word, или Little-Endian для регистров).
В каждом регистре - байты расположены старшим байтом вперёд (Big-Endian).
Разбор команды записи
Номер строки - это небольшое число и находится примерно в диапазоне 1-15, то есть укладывается в 1 байт.
Учтём порядок байт в значении: "BADC".
Таким образом, для установки значения надо записать номер строки во второй байт, а остальные будут нули.
Например, выберем строку с номером 3.
Значение "3" кодируется как: 00 03 00 00
- register 0 = 3 (00 03)
- register 1 = 0 (00 00)
Составим запрос на запись (данные в hex)
- Slave Addr: 0A - адрес устройства
10(указываем свой) - Function Code: 10 - для записи используем функцию Modbus Write Multiple Registers (0x10)
- Starting Address: 00 00 - пишем начиная с нулевого регистра
- Quantity of Registers: 00 02 - количество регистров. Записываем 2 регистра
- Byte Count: 04 - количество байт для записи. Записываем 4 байта
- Values: 00 03 00 00 - так кодируется номер строки 3 в записываемом значении
- CRC: в конце надо будет добавить контрольную сумму (2 байта)
Посылаем запрос: > OA 10 00 00 00 02 04 00 03 00 00 26 8B
Получаем ответ: < OA 10 00 00 00 02 40 B3 (значения записаны корректно)
Краткая справка по API
Lavritech LED PLC позволяет выводить информацию на табло через различные каналы связи. Здесь дана краткая общая информация. Подробнее см. страницу API, там рассматриваются примеры использования API-запросов.
Управление через GET-запросы
Вывод текста
Вывод текста в область с определённым номером.
В запросе вместо параметрах в скобках [] нужно подставить свои данные.
Вместо [ip-addr] - указываем IP-адрес контроллера. (или имя.local если прошивка поддерживает MDNS)
Параметры GET-запроса:
st=[X]- вместо [X] указываем номер зоныtxt=[text]- вместо [text] вводим тест сообщения
Пример GET-запроса:
сообщение
Очистка экрана
Управление через MQTT-топики
Вывод текста
Вывод текста в область с определённым номером осуществляется путём отправки текстового сообщения в топик вида:
Подставляем параметры:
[login]- логин пользователя MQTT[hostname]- название контроллера[X]- номер области
Установка яркости
В топик вида
пишем яркость в диапазоне 0-10.