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

KulibinOrsk
Лейтенант
Сообщения: 516
Зарегистрирован: 25 фев 2018, 08:48
Откуда: Оренбург
Имя: Александр

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

Сообщение KulibinOrsk »

[ref]ecoins[/ref], благодарю.
Смею предположить, что для работы с более-менее какой то графикой нужно использовать ардуино мега? Или всю графику, элементарную, без излишеств, держать во встраиваемой флешке ?
Делал на основе блоков встроенных в флпрог:
ардуино нано: вывел инфутемпературу с 10 датчиков ds18 + закрасил экран + при превышении порога на одном из датчиков выводим НАГРЕВ слева от значения.
ВСЕ ! память закончилась.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

KulibinOrsk писал(а): 08 янв 2022, 10:25 Смею предположить, что для работы с более-менее какой то графикой нужно использовать ардуино мега? Или всю графику, элементарную, без излишеств, держать во встраиваемой флешке ?
Для небольших проектов можно использовать и Nano с нашими библиотеками. Работа непосредственно с Nextion занимает немного памяти и процессорного времени.
KulibinOrsk писал(а): 08 янв 2022, 10:25 Делал на основе блоков встроенных в флпрог:
ардуино нано: вывел инфутемпературу с 10 датчиков ds18 + закрасил экран + при превышении порога на одном из датчиков выводим НАГРЕВ слева от значения.
ВСЕ ! память закончилась
Со встроенными блоками Nextion это так. И еще они сильно "тормозят" проект.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

Основательно доработали библиотеку/блоки для дисплеев Nextion.
Ну очень хорошо и компактно получилось. Учли и замечания пользователей.
Обмен буферированный и потому проект не "тормозит" почти совсем.
Время реакции в обе стороны "мгновенная".
Можно менять не только значения, но и другие свойства - размер шрифтов, цвета, фон, положение на дисплее и т.п.
Очень удобно и просто использовать дисплей с этими блоками.
Чуть позже выложим в новом релизе.
Аватара пользователя
Siberian
Лейтенант
Сообщения: 633
Зарегистрирован: 07 сен 2015, 11:51
Откуда: СССР
Имя: Александр
Благодарил (а): 34 раза
Поблагодарили: 5 раз

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

Сообщение Siberian »

Добрый день!
панель Nextion я уже использую пару лет, но в стандартных блоках flprog от автора программы.
Хочу попробовать Ваш вариант, но не совсем разобрался...
1. Что нужно вставить в "adr" ?
2. Каким образом "получить" / "отправить" тип "string".
Пример в приложении.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

Siberian писал(а): 20 май 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...
Логическая (смысловая) привязка этих регистров для конкретного теста сведена в таблице.
Регистры для тестовой программы Nextion.pdf
4.Пример экрана именами устройств:
Главный экран.PNG
5.Код скрипта для вывода значения регистра in0(адрес 0 для MCU) приведен ниже:
Код вывода восьми битовых индикаторов.PNG
=================
Возможно на восприятие немного сложно, но с точки зрения новых проектных и эксплуатационных возможностей оно, по нашему мнению, стоит.
Если тема действительно интересует, можете связаться со мной по телефону.
--------
Успехов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07 сен 2015, 10:16
Откуда: Minsk
Благодарил (а): 1 раз

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

Сообщение Vint »

Добрый день уважаемые ecoins!
В приложении часть проекта. Не сохраняются данные из панели в EEPROM, по модбасу сохраняются без проблем. Есть возможность оценить где накосячил?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

Vint писал(а): 28 июн 2022, 09:34 Добрый день уважаемые ecoins!
В приложении часть проекта. Не сохраняются данные из панели в EEPROM, по модбасу сохраняются без проблем. Есть возможность оценить где накосячил?
Интересно, Вы редкий пользователь дисплея Nextion - в совокупности с "правильным софтом" отличное устройство.
В течении дня посмотрим и отпишусь.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

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

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

Сообщение Vint »

Спасибо за оперативный ответ!
n0.val=out10 поставил чтобы посмотреть что приписывается в out10 при нажатии кнопок picValv, буду делать кнопки без фиксации для открытия/закрытия клапана.
на экране "Setup" есть переменные mxTto, mxGaz, mxH2o и TimeValve, отправляются в контроллер таймером tmOut. Три первых раньше отправлялись без проблем, добавил четвёртую и всё сломалось. Экран "Security" игнорируйте, это пережитки прошлого проекта для считывания датчиков 433.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

Vint писал(а): 28 июн 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 сен 2015, 10:16
Откуда: Minsk
Благодарил (а): 1 раз

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

Сообщение Vint »

Сделал так:[spoiler]
1.png
[/spoiler] в контроллер приходят нули
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

Vint писал(а): 29 июн 2022, 21:49 в контроллер приходят нули
Просто в контроллере изначально нули, а входные посылки скорее всего приходят (если TX.nxt->RX.mcu не оборван) и транзакция соответствует требованиям.
Вы писали, что четыре переменные правильно передавались, попробуйте вернутся к этому режиму для того, чтобы убедиться, что канал работает.
Очень хорошо все можно увидеть через логический анализатор, даже самый простой.
ecoins писал(а): 28 июн 2022, 20:34 В приемном блоке есть опция Debug(Отладка) - если включите расширенную отладку, то на выходе появится код ошибке.
Не получается пока посмотреть - требуется закончить некоторые работы, но если бы Вы посмотрели ошибки через режим Debug, я бы быстрее разобрался.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

Vint писал(а): 29 июн 2022, 21:49 в контроллер приходят нули
Начал разбираться, до понедельника должен понять проблему.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

Нашел проблему - для длинных посылок неверно считалась контрольная сумма.
Обратите внимание на новую строку при подсчете 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
Test_Nextion_7_v01_010722.zip
---------------------------------------------------------------------------
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07 сен 2015, 10:16
Откуда: Minsk
Благодарил (а): 1 раз

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

Сообщение Vint »

Спасибо за помощь, уважаемые ecoins! Извините за задержку с ответом. Всё запустилось, в приложении рабочий проект. в74-ом посте измените строку "prints qntReg,1 //--Кол-во отправляемых байт" на "prints qntByte,1...", на второй странице проекта - отредактированный таймер tmOut.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

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

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

Сообщение Vint »

ecoins писал(а): 11 июл 2022, 21:35 пока переменные с экрана только байтовые это не проявляется, но со временем может проявиться как проблема
У меня вообще не отправлялись данные, пока не исправил на "qntByte"
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

Vint писал(а): 11 июл 2022, 22:37 У меня вообще не отправлялись данные, пока не исправил на "qntByte"
Не из-за этого, у Вас заработало потому что в библиотеке подправлено расчет контрольной суммы.
Из протокола видно (в режиме debug) 5 и 6 байт равны 6.
Next_ModBus.PNG
Дело в том, что все переменные на экране восьмибитные и потому без разницы кол-во байтов.
Возможно в Вашем примере и немного не так.
В любом случае обстоятельство, которые Вы выявили, очень важен.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

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

Сообщение o615ye161 »

Здравствуйте ecoins, ваша тема закрыта поэтому пишу сюда, блок MCP23017 если регистр А использовать как выход, а регистр В как вход и из негоже GPB0 и GPB7 как выход, то GPA0 перестает работать, где то ошибка в блоке! Хотя со старой версией блоков работало все исправно
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

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

Сообщение ecoins »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей