Разработки ecoins для дисплея Nextion

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

Разработки ecoins для дисплея Nextion

#61

Сообщение KulibinOrsk » 08.01.2022{, 10:25}

ecoins, благодарю.
Смею предположить, что для работы с более-менее какой то графикой нужно использовать ардуино мега? Или всю графику, элементарную, без излишеств, держать во встраиваемой флешке ?
Делал на основе блоков встроенных в флпрог:
ардуино нано: вывел инфутемпературу с 10 датчиков ds18 + закрасил экран + при превышении порога на одном из датчиков выводим НАГРЕВ слева от значения.
ВСЕ ! память закончилась.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#62

Сообщение ecoins » 08.01.2022{, 12:19}

KulibinOrsk писал(а):
08.01.2022{, 10:25}
Смею предположить, что для работы с более-менее какой то графикой нужно использовать ардуино мега? Или всю графику, элементарную, без излишеств, держать во встраиваемой флешке ?
Для небольших проектов можно использовать и Nano с нашими библиотеками. Работа непосредственно с Nextion занимает немного памяти и процессорного времени.
KulibinOrsk писал(а):
08.01.2022{, 10:25}
Делал на основе блоков встроенных в флпрог:
ардуино нано: вывел инфутемпературу с 10 датчиков ds18 + закрасил экран + при превышении порога на одном из датчиков выводим НАГРЕВ слева от значения.
ВСЕ ! память закончилась
Со встроенными блоками Nextion это так. И еще они сильно "тормозят" проект.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#63

Сообщение ecoins » 14.05.2022{, 23:38}

Основательно доработали библиотеку/блоки для дисплеев Nextion.
Ну очень хорошо и компактно получилось. Учли и замечания пользователей.
Обмен буферированный и потому проект не "тормозит" почти совсем.
Время реакции в обе стороны "мгновенная".
Можно менять не только значения, но и другие свойства - размер шрифтов, цвета, фон, положение на дисплее и т.п.
Очень удобно и просто использовать дисплей с этими блоками.
Чуть позже выложим в новом релизе.

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

Разработки ecoins для дисплея Nextion

#64

Сообщение Siberian » 20.05.2022{, 13:07}

Добрый день!
панель Nextion я уже использую пару лет, но в стандартных блоках flprog от автора программы.
Хочу попробовать Ваш вариант, но не совсем разобрался...
1. Что нужно вставить в "adr" ?
2. Каким образом "получить" / "отправить" тип "string".
Пример в приложении.
Вложения
Тест_1_.HMI
(1.04 МБ) 44 скачивания
Тест_1_.flp
(4.24 МБ) 35 скачиваний

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#65

Сообщение ecoins » 20.05.2022{, 16:28}

Siberian писал(а):
20.05.2022{, 13:07}
Добрый день!
панель Nextion я уже использую пару лет, но в стандартных блоках flprog от автора программы.
Хочу попробовать Ваш вариант, но не совсем разобрался...
1. Что нужно вставить в "adr" ?
2. Каким образом "получить" / "отправить" тип "string".
Пример в приложении.
1.Проект .HMI не открывается, пишет что поврежден. Возможно из-за другой версии.
Мы используем версию 1.63.6.
Версия Nextion.PNG
2.Номера адресов (регистров) создаются непосредственно в Nextion
Системные переменные.PNG
3.В 32-битные регистры in0,in1....собственно и записываются данные из MCU соответственно по адресам 0,1...
Логическая (смысловая) привязка этих регистров для конкретного теста сведена в таблице. 4.Пример экрана именами устройств:
Главный экран.PNG
5.Код скрипта для вывода значения регистра in0(адрес 0 для MCU) приведен ниже:
Код вывода восьми битовых индикаторов.PNG
=================
Возможно на восприятие немного сложно, но с точки зрения новых проектных и эксплуатационных возможностей оно, по нашему мнению, стоит.
Если тема действительно интересует, можете связаться со мной по телефону.
--------
Успехов.

Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07.09.2015{, 10:16}
Репутация: 4
Откуда: Minsk

Разработки ecoins для дисплея Nextion

#66

Сообщение Vint » 28.06.2022{, 09:34}

Добрый день уважаемые ecoins!
В приложении часть проекта. Не сохраняются данные из панели в EEPROM, по модбасу сохраняются без проблем. Есть возможность оценить где накосячил?
Вложения
Y_House_Подвал_v2_1.zip
(2.29 МБ) 78 скачиваний

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#67

Сообщение ecoins » 28.06.2022{, 09:54}

Vint писал(а):
28.06.2022{, 09:34}
Добрый день уважаемые ecoins!
В приложении часть проекта. Не сохраняются данные из панели в EEPROM, по модбасу сохраняются без проблем. Есть возможность оценить где накосячил?
Интересно, Вы редкий пользователь дисплея Nextion - в совокупности с "правильным софтом" отличное устройство.
В течении дня посмотрим и отпишусь.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#68

Сообщение ecoins » 28.06.2022{, 15:01}

Отличный проект и отличное использование панели Nextion.
По Nextion:
В экране Home задача tmIn:
n0.val=out10
prints out10,1 //--Отправка регистра v1 (0xFF)
--------
Код prints out10,1 приемным блоком Nextion в MCU будет просто проигнорирован, он обрабатывает только посылки формата Modbus + три 0xFF в конце.
--------
По записи в EEPROM - не должно это быть связано с Nextion (явных связей нет), вечером посмотрю проект повнимательнее, может что-то увижу.

Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07.09.2015{, 10:16}
Репутация: 4
Откуда: Minsk

Разработки ecoins для дисплея Nextion

#69

Сообщение Vint » 28.06.2022{, 15:42}

Спасибо за оперативный ответ!
n0.val=out10 поставил чтобы посмотреть что приписывается в out10 при нажатии кнопок picValv, буду делать кнопки без фиксации для открытия/закрытия клапана.
на экране "Setup" есть переменные mxTto, mxGaz, mxH2o и TimeValve, отправляются в контроллер таймером tmOut. Три первых раньше отправлялись без проблем, добавил четвёртую и всё сломалось. Экран "Security" игнорируйте, это пережитки прошлого проекта для считывания датчиков 433.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#70

Сообщение ecoins » 28.06.2022{, 20:34}

Vint писал(а):
28.06.2022{, 15:42}
на экране "Setup" есть переменные mxTto, mxGaz, mxH2o и TimeValve, отправляются в контроллер таймером tmOut. Три первых раньше отправлялись без проблем, добавил четвёртую и всё сломалось.
Посмотрел программы, вроде все верно и Вы вроде во все разобрались.
Загрузить программы смогу только через день, два - заняты проектом.
Попробовать можете увеличив кол-во переменных в блоке direct, но вряд ли поможет.
В приемном блоке есть опция Debug(Отладка) - если включите расширенную отладку, то на выходе появится код ошибке.
Если выведите на консоль, например нашим блоком, код ошибки, то это поможет с ориентироваться.
Коды ошибок можно подсмотреть в файле RT_HW_NEXTION.hpp (библиотека RT_HW_BASE.h) getFromNxt() - строки 80-144.
Позднее смогу плотнее разобраться.

Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07.09.2015{, 10:16}
Репутация: 4
Откуда: Minsk

Разработки ecoins для дисплея Nextion

#71

Сообщение Vint » 29.06.2022{, 21:49}

Сделал так:
СпойлерПоказать
1.png
в контроллер приходят нули

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#72

Сообщение ecoins » 29.06.2022{, 22:56}

Vint писал(а):
29.06.2022{, 21:49}
в контроллер приходят нули
Просто в контроллере изначально нули, а входные посылки скорее всего приходят (если TX.nxt->RX.mcu не оборван) и транзакция соответствует требованиям.
Вы писали, что четыре переменные правильно передавались, попробуйте вернутся к этому режиму для того, чтобы убедиться, что канал работает.
Очень хорошо все можно увидеть через логический анализатор, даже самый простой.
ecoins писал(а):
28.06.2022{, 20:34}
В приемном блоке есть опция Debug(Отладка) - если включите расширенную отладку, то на выходе появится код ошибке.
Не получается пока посмотреть - требуется закончить некоторые работы, но если бы Вы посмотрели ошибки через режим Debug, я бы быстрее разобрался.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#73

Сообщение ecoins » 30.06.2022{, 18:59}

Vint писал(а):
29.06.2022{, 21:49}
в контроллер приходят нули
Начал разбираться, до понедельника должен понять проблему.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#74

Сообщение ecoins » 01.07.2022{, 22:33}

Нашел проблему - для длинных посылок неверно считалась контрольная сумма.
Обратите внимание на новую строку при подсчете CRC - crc=crc&0xFF //--Нормализация до байта:
// Реализует механизм повторной отправки (для надежности)
head=0x3A //--Заголовок
func=0x06 //--Отправка нескольких регистров байтовых регистров
adr=1 //--Адрес первого отправляемого регистра
qntReg=6 //--Кол-во отправляемых регистров
qntByte=6 //--Кол-во отправляемых байт
crc=head //--Код заголовка (':') в КС
crc+=func //--Параметр func
crc+=adr //--Параметра adr
crc+=qntReg //-- Параметр qntReg
crc+=qntByte //-- Параметр qntByte
//----Добавление в crc передаваемых регистров
crc+=out10
crc+=out11
crc+=out12
crc+=out13
crc+=out14
crc+=out15
crc=crc&0xFF //--Нормализация до байта:
//-----Вычисление crc с двумя дополнениями---------------------------------------------------
crc=0xFF-crc
crc+=1
crc&=0xFF
//-----Отправка посылки в UART
prints head,1 //--
prints func,1 //--Команда записи нескольких регистров
prints adr,1 //--Адрес записи
prints qntReg,1 //--Кол-во записываемых регистров
prints qntReg,1 //--Кол-во отправляемых байт
prints out10,1 //--Отправка регистра v1 (0xFF)
prints out11,1 //--Отправка регистра v2 (0xFF)
prints out12,1 //--Отправка регистра v3 (0xFF)
prints out13,1 //--Отправка регистра v4 (0xFF)
prints out14,1 //--Отправка регистра v4 (0xFF)
prints out15,1 //--Отправка регистра v4 (0xFF)
prints crc,1 //--Отправка crc (0xFF)
printh FF FF FF //--Отправка кодов завершения посылки
====================================================
Стенд.jpg
--------------------------------------------------------------------------
Next_8048K_v07_010722.zip
(706.63 КБ) 54 скачивания
Test_Nextion_7_v01_010722.zip
(371.96 КБ) 45 скачиваний
---------------------------------------------------------------------------

Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07.09.2015{, 10:16}
Репутация: 4
Откуда: Minsk

Разработки ecoins для дисплея Nextion

#75

Сообщение Vint » 11.07.2022{, 21:20}

Спасибо за помощь, уважаемые ecoins! Извините за задержку с ответом. Всё запустилось, в приложении рабочий проект. в74-ом посте измените строку "prints qntReg,1 //--Кол-во отправляемых байт" на "prints qntByte,1...", на второй странице проекта - отредактированный таймер tmOut.
Вложения
Y_House_Подвал M.zip
(2.02 МБ) 33 скачивания

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#76

Сообщение ecoins » 11.07.2022{, 21:35}

Vint писал(а):
11.07.2022{, 21:20}
Спасибо за помощь, уважаемые ecoins! Извините за задержку с ответом. Всё запустилось, в приложении рабочий проект. в74-ом посте измените строку "prints qntReg,1 //--Кол-во отправляемых байт" на "prints qntByte,1...", на второй странице проекта - отредактированный таймер tmOut.
Очень рад Вашим положительным результатам.
Спасибо и за внимательность - действительно, то на что Вы обратили внимание более правильное - пока переменные с экрана только байтовые это не проявляется, но со временем может проявиться как проблема. Спасибо.
---------
Небольшой опыт по технике.
Работали с 7" дисплеем разрешением 800x400.
Решили попробовать дисплеи на 4.3" - для некоторых применений удобнее, у них разрешение 480x272, конечно пришлось экраны немного масштабировать.
Потом поняли, что если бы взяли бы дисплей 5", то они тоже имеют разрешение 800x400 и масштабировать бы не пришлось.
На будущее будем иметь ввиду это обстоятельство.

Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07.09.2015{, 10:16}
Репутация: 4
Откуда: Minsk

Разработки ecoins для дисплея Nextion

#77

Сообщение Vint » 11.07.2022{, 22:37}

ecoins писал(а):
11.07.2022{, 21:35}
пока переменные с экрана только байтовые это не проявляется, но со временем может проявиться как проблема
У меня вообще не отправлялись данные, пока не исправил на "qntByte"

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#78

Сообщение ecoins » 12.07.2022{, 03:30}

Vint писал(а):
11.07.2022{, 22:37}
У меня вообще не отправлялись данные, пока не исправил на "qntByte"
Не из-за этого, у Вас заработало потому что в библиотеке подправлено расчет контрольной суммы.
Из протокола видно (в режиме debug) 5 и 6 байт равны 6.
Next_ModBus.PNG
Дело в том, что все переменные на экране восьмибитные и потому без разницы кол-во байтов.
Возможно в Вашем примере и немного не так.
В любом случае обстоятельство, которые Вы выявили, очень важен.

o615ye161
Сержант
Сообщения: 198
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 3
Имя: Сергей

Разработки ecoins для дисплея Nextion

#79

Сообщение o615ye161 » 17.08.2022{, 23:27}

Здравствуйте ecoins, ваша тема закрыта поэтому пишу сюда, блок MCP23017 если регистр А использовать как выход, а регистр В как вход и из негоже GPB0 и GPB7 как выход, то GPA0 перестает работать, где то ошибка в блоке! Хотя со старой версией блоков работало все исправно
Вложения
NOv_dOM_7.4.4.ESP32flp.rar
(764.78 КБ) 34 скачивания

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins для дисплея Nextion

#80

Сообщение ecoins » 17.08.2022{, 23:40}

o615ye161 писал(а):
17.08.2022{, 23:27}
Здравствуйте ecoins, ваша тема закрыта поэтому пишу сюда, блок MCP23017 если регистр А использовать как выход, а регистр В как вход и из негоже GPB0 и GPB7 как выход, то GPA0 перестает работать, где то ошибка в блоке! Хотя со старой версией блоков работало все исправно
Новая тема, в которой размещу ответ здесь: viewtopic.php?f=247&t=8064
Завтра попробую посмотреть и ответить.

Ответить

Вернуться в «Команда ecoins»