Панель Nextion

Использование дисплеев и обсуждение пользовательских блоков к ним
Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Панель Nextion

#361

Сообщение Max » 20.01.2019{, 20:58}

Alias писал(а):
20.01.2019{, 20:53}
Сохранять ее состояние при изменении в ПЗУ, а при включении отправлять обратно на панель ее атрибут.
Вы имеете ввиду атрибут isbr?

Аватара пользователя
Alias
Лейтенант
Сообщения: 468
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Панель Nextion

#362

Сообщение Alias » 21.01.2019{, 08:26}

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

Аватара пользователя
Sancho
Полковник
Сообщения: 3833
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 533
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Панель Nextion

#363

Сообщение Sancho » 21.01.2019{, 10:37}

Max писал(а):
20.01.2019{, 20:58}
Alias писал(а):
20.01.2019{, 20:53}
Сохранять ее состояние при изменении в ПЗУ, а при включении отправлять обратно на панель ее атрибут.
Вы имеете ввиду атрибут isbr?
Нет.
Думаю, val надо.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Панель Nextion

#364

Сообщение Max » 27.01.2019{, 19:49}

Вопрос.
Создал на главной странице, где собираются все данные-переменные и состояния с других страниц, такую конструкцию для экономии трафика с Ардуино:
n0.val=va3.val
page0.va3.val=page4.va2.val
n1.val=va4.val
page0.va4.val=page4.va1.val
n2.val=va5.val
page0.va5.val=page4.va6.val
n3.val=va6.val
page0.va6.val=page4.va4.val
page0.t2.txt=page1.t11.txt
page0.t2.bco=page1.t11.bco
page0.t3.txt=page1.t13.txt
page0.t3.bco=page1.t13.bco
page0.t7.txt=page3.t11.txt
page0.t7.bco=page3.t11.bco
page0.t8.txt=page3.t13.txt
page0.t8.bco=page3.t13.bco
Т.е. некоторые переменные повторяют значения перемененных с других страниц.
Так же должно дублироваться состояние bco (заливка) некоторых текстовых полей.
И вот проблема.
При включении данные переменных нормально записываются на главную страницу, а вот состояние заливки не передаются. И элементы все глобальные, и сигналы на вывод Send модулей Nextion Set Atr FlProg на передачу срабатывают, но поля так и остаются без изменений. Но, стоит перейти на страницу установок, откуда считываются состояния полей, то все срабатывает. Заливки передаются внутри панели.... Может что-то не знаю?

Аватара пользователя
Sancho
Полковник
Сообщения: 3833
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 533
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Панель Nextion

#365

Сообщение Sancho » 28.01.2019{, 10:00}

Max, Страница, с которой запрашиваете данные - глобальная? Может из-за этого. Локальные вещи обрабатываются только в момент "появления перед глазами"

Отправлено спустя 1 минуту 41 секунду:
И вопрос- где создали такую конструкцию? в каком месте размещён сей код?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Панель Nextion

#366

Сообщение Max » 28.01.2019{, 12:09}

Sancho писал(а):
28.01.2019{, 10:01}
Max, Страница, с которой запрашиваете данные - глобальная? Может из-за этого. Локальные вещи обрабатываются только в момент "появления перед глазами"

Отправлено спустя 1 минуту 41 секунду:
И вопрос- где создали такую конструкцию? в каком месте размещён сей код?
Все страницы глобальные, так же все переменные в том числе текстовые - глобальные. Весь код находится в единственном таймере на главной странице.
Наверное буду переделывать проект. Слишком много переменных. Попробую сделать передачу при помощи нескольких переменных и разбором на панели...
Вообще, надо бы в шапку темы выставить, так сказать, основные заповеди для работы с панелью NEXTION. Минимизация кода, решения уменьшающие трафик между панелью и контроллером...

Аватара пользователя
Sancho
Полковник
Сообщения: 3833
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 533
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Панель Nextion

#367

Сообщение Sancho » 28.01.2019{, 12:17}

Max, Какие диапазоны значений у переменных?
Помните, что переменные в некстион - 32 битные, 31 значащий плюс знак! Вставить можно немерянно!

Отправлено спустя 47 минут 42 секунды:
Попробуйте такой эксперимент:
Тест приёма трёх уставок_v1.flp
Тест один таймер уставки v04.HMI
Не забудьте выполнить рекомендации отсюда
Для скачивания вложений Вы должны быть зарегистрированы.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Панель Nextion

#368

Сообщение Max » 28.01.2019{, 13:10}

Sancho писал(а):
28.01.2019{, 13:05}
Max, Какие диапазоны значений у переменных?
Помните, что переменные в некстион - 32 битные, 31 значащий плюс знак! Вставить можно немерянно!

Отправлено спустя 47 минут 42 секунды:
Попробуйте такой эксперимент:Тест приёма трёх уставок_v1.flpТест один таймер уставки v04.HMI
Не забудьте выполнить рекомендации отсюда
Переменные как раз передаются! Я же писал, что не передается значения заливки bco.

Аватара пользователя
Sancho
Полковник
Сообщения: 3833
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 533
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Панель Nextion

#369

Сообщение Sancho » 28.01.2019{, 14:18}

Max писал(а):
28.01.2019{, 12:09}
Слишком много переменных. Попробую сделать передачу при помощи нескольких переменных и разбором на панели...
Я об этом говорил.

Отправлено спустя 6 минут 34 секунды:
Таймер не привязан к странице.
Измените порядок передачи, из ардуино - сначала на главную/стартовую, потом дальше.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Панель Nextion

#370

Сообщение Max » 28.01.2019{, 14:49}

Sancho писал(а):
28.01.2019{, 14:25}
Max писал(а):
28.01.2019{, 12:09}
Слишком много переменных. Попробую сделать передачу при помощи нескольких переменных и разбором на панели...
Я об этом говорил.

Отправлено спустя 6 минут 34 секунды:
Таймер не привязан к странице.
Измените порядок передачи, из ардуино - сначала на главную/стартовую, потом дальше.
А если нужно отслеживать состояние bco не на главной странице? У меня состояние переменных меняется на второстепенной странице и так же состояние bco, а главная, как сборщик состояний переменных и bco должна дублировать эти данные. Т.е. изменяешь состояние на второстепенной, изменяется так же битовая переменная, или int и эта информация должна продублироваться на главной странице.

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

Аватара пользователя
Sancho
Полковник
Сообщения: 3833
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 533
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Панель Nextion

#371

Сообщение Sancho » 28.01.2019{, 15:05}

Max писал(а):
28.01.2019{, 14:49}
У меня состояние переменных меняется на второстепенной странице и так же состояние bco, а главная, как сборщик состояний переменных и bco должна дублировать эти данные. Т.е. изменяешь состояние на второстепенной, изменяется так же битовая переменная, или int и эта информация должна продублироваться на главной странице.
Вот и получается - состояние переменных не определено после старта, а Вы пытаетесь считать. После перехода на страницу, их вычислений, они уже передаются на главную.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

Панель Nextion

#372

Сообщение Siberian » 19.04.2019{, 07:03}

Здравствуйте, Коллеги!
Я плотно занимался несколько месяцев разными тестовыми проектами в связке Arduino + Nextion, много получил ответов на свои вопросы от программистов на форуме,
очень благодарен откликнувшимся, тем самым я получил первичные навыки программирования панели Nextion.
Но, к сожалению не всё так радужно, как хотелось бы, основной ужасный функционал, это прием-передача по RX-TX между Arduino и Nextion.

Не буду огорчать форумчан у которых не большой проект Arduino + Nextion, если у вас пару кнопок и пару выводов информации на дисплей, например температура и влажность с одного датчика.
Всё будет хорошо!

Но! Если у Вас не малый проект, несколько страниц в панели, на страницах более 50 кнопок, и более 40 данных (получить-задать параметр), то время передачи-отклика займет не меньше
20-30 секунд.

Если не лень, создайте проект в панели, создайте штук 50 кнопок, и просто передавайте нажатие-отпускание кнопки в Arduino (FLProg) для включения-выключения светодиода.
Подключите в проекте FLProg кнопки к базовому элементу "OR", а выход на пин светодиода, типа, как на примере картинки, только штук 50 входов.
СпойлерПоказать
Изображение
При нажатии (удерживании) кнопки, Вы будете ожидать секунд 15-30 до того момента, пока светодиод зажжется, затем, после отпускания кнопки, светодиод будет светиться еще секунд 15-20.
Если в FLProg (при большом проекте) использовать "Получить ID страницы", то если Вы в Nextion создадите кнопку перехода между страницами (например page page2),
и перейдете со страницы 1 на страницу 2, в ардуинке еще секунд 15-20 будет висеть страница 1.

При большом проекте, например "Получить параметр" > "Период опроса" не имеет значения, какой период опроса Вы зададите, хоть 100 мс, хоть 1 сек, результат по отклику будет одинаковый.
СпойлерПоказать
Изображение
Если есть страница, которая используется только для настроек, то в FLProg можно создать переменную и функцию "Выполнять при условии:".
Но если на этой странице постоянное отслеживание "Получить параметр", и этих параметров порядка 50 штук, то такой вариант не пройдет...

Так-же есть самое не Приятное.
Если в большом проекте у Вас есть датчик температуры, с управлением заданной температуры через ПИД, допуск составляет (+),(-) 0,1 градуса, контроль ПИД будет через 20-30 секунд,
а это разброс не менее 0,9 - 1,5 градуса.

Отправлено спустя 33 минуты 35 секунд:
Сама по себе панель работает довольно шустро.
Можно сделать весь проект в панели, а ардуино использовать только как исполнительное устройство.
Но здесь перед нами новые грабли, если нужно использовать EEPROM, то в панели всего 1024 BYTE.

Аватара пользователя
Sancho
Полковник
Сообщения: 3833
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 533
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Панель Nextion

#373

Сообщение Sancho » 19.04.2019{, 07:42}

Siberian, Александр, а Вы пробовали поднять скорость связи с 9600 до, например, 57600?
50 кнопок, простых, - это две переменных.
Можно посмотреть Ваши тестовые проекты, проблемные, медленные?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

Панель Nextion

#374

Сообщение Siberian » 19.04.2019{, 07:47}

Sancho писал(а):
19.04.2019{, 07:42}
Siberian, Александр, а Вы пробовали поднять скорость связи с 9600 до, например, 57600?
50 кнопок, простых, - это две переменных.
Можно посмотреть Ваши тестовые проекты, проблемные, медленные?
Здравствуйте, Александр!
Скорость поднимал, разницы нет.
Я удалил все тесты, их накопилось очень много, а толку нет. Поэтому сижу и чешу репу, что делать дальше... Покупал две панели 7.0 дюймов, удовольствие не дешевое, думаю, куда теперь их применить.

Отправлено спустя 5 минут 20 секунд:
PS.
50 кнопок двумя перемененными не обойтись, т.к. каждая пара кнопок привязана к дополнительным переменным, а таких переменных не один десяток...

Отправлено спустя 7 минут 5 секунд:
Проблема ардуино в том, что самостоятельно не может определять изменение по RX, только нужно периодически делать опрос через определенное время.

Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 475
Зарегистрирован: 17.07.2017{, 18:39}
Репутация: 55
Откуда: Днепр.UA
Имя: Григорий
Контактная информация:

Панель Nextion

#375

Сообщение grin-mpx » 19.04.2019{, 08:38}

Как-то очень грустно Вы все написали. У меня в проекте около 40 страниц, более 50 параметров, кнопок правда мало. Все работает нормально.
Главное получать и отправлять информацию на дисплей когда это необходимо и не постоянно, а в момент ее изменения или перехода по страницам.

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

Панель Nextion

#376

Сообщение Siberian » 19.04.2019{, 09:25}

grin-mpx писал(а):
19.04.2019{, 08:38}
Как-то очень грустно Вы все написали. У меня в проекте около 40 страниц, более 50 параметров, кнопок правда мало. Все работает нормально.
Главное получать и отправлять информацию на дисплей когда это необходимо и не постоянно, а в момент ее изменения или перехода по страницам.
Дело в том, что получить параметр из панели можно только по заданному периоду времени, от этого и происходят задержки, пока ардуинка не прочитает всё. С отправкой параметра нет проблем, можно отправлять при определенном условии.

Отправлено спустя 27 минут 42 секунды:
Если Вы выбираете получить параметр кнопки из панели Button, то в программе FLProg автором уже заложен период опроса по умолчанию 100 мс.
СпойлерПоказать
Изображение
Если выбрать получить параметр кнопки Dual-state button, то сами задаете период опроса, тоже самое будет и с периодом опроса, например параметра Number/
СпойлерПоказать
Изображение
Изображение
Происходит чтение в ардуино с заданным периодом времени опроса по порядку. От этого и весь тормоз получается, если у Вас большое количество опроса переменных из панели.

Аватара пользователя
Sancho
Полковник
Сообщения: 3833
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 533
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Панель Nextion

#377

Сообщение Sancho » 19.04.2019{, 10:28}

Siberian, Позволю себе с Вами поспорить, хотя многое зависит от проекта. Назначение Вашего нам не ведомо. Как нет и проекта для того, что-бы убедится в таких огромных задержках.
Есть такой термин оптимизация.
Как я помню, вы пытаетесь задавать много параметров кнопками больше/меньше, и их у Вас тьма.
Не проще ли сделать две, и выбрать кнопки выбора изменяемого параметра - возможно, получится сделать всего один экран!
Кнопки с фиксацией укладываются в одну переменную 31 штука. Итого - немалая, очень, экономия трафика.
То-же возможно сделать и с параметрами - вопрос разрядности.
Неужели и вправду всё удалили???

Отправлено спустя 1 минуту 33 секунды:
Всё остальное - гадание на кофейной гуще (кофе не пью) и разговор не о чём.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

Панель Nextion

#378

Сообщение Siberian » 19.04.2019{, 10:32}

Так-же, если передавать из панели значение переменной Button в "Отслеживание нажатий" (FLProg), то при частом нажатии (3-5 раз в секунду) Кнопки Button, напрочь происходит зависание (в нажатом состоянии) именно в ардуино. Об этом уже писалось многими пользователями и на форуме, и в багтрекере.

Отправлено спустя 1 минуту 41 секунду:
Sancho писал(а):
19.04.2019{, 10:29}
Siberian, Позволю себе с Вами поспорить, хотя многое зависит от проекта. Назначение Вашего нам не ведомо. Как нет и проекта для того, что-бы убедится в таких огромных задержках.
Есть такой термин оптимизация.
Как я помню, вы пытаетесь задавать много параметров кнопками больше/меньше, и их у Вас тьма.
Не проще ли сделать две, и выбрать кнопки выбора изменяемого параметра - возможно, получится сделать всего один экран!
Кнопки с фиксацией укладываются в одну переменную 31 штука. Итого - немалая, очень, экономия трафика.
То-же возможно сделать и с параметрами - вопрос разрядности.
Неужели и вправду всё удалили???

Отправлено спустя 1 минуту 33 секунды:
Всё остальное - гадание на кофейной гуще (кофе не пью) и разговор не о чём.
К сожалению удалил.

Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 475
Зарегистрирован: 17.07.2017{, 18:39}
Репутация: 55
Откуда: Днепр.UA
Имя: Григорий
Контактная информация:

Панель Nextion

#379

Сообщение grin-mpx » 19.04.2019{, 12:34}

Siberian писал(а):
19.04.2019{, 10:33}
то при частом нажатии (3-5 раз в секунду) Кнопки Button, напрочь происходит зависание (в нажатом состоянии) именно в ардуино.
Вот именно по этому у меня в проектах нет ни одного непосредственного опроса кнопок.На стороне дисплея реализована упаковка/распаковка состояния кнопок, значений и пр. которые опрашиваются при определенных условиях.
Вот скрин одной из страниц дисплея, данные на него выводятся за пару сек., а то и меньше. около 40 значений! Естественно я не отправляю с ардуины
каждое значение отдельно.
СпойлерПоказать
неделя.jpg
Отправлено спустя 4 минуты 1 секунду:
На этом видео показана работа с этой страницей, примерно с 3 минуты.
СпойлерПоказать
Для скачивания вложений Вы должны быть зарегистрированы.

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

Панель Nextion

#380

Сообщение Siberian » 20.04.2019{, 07:08}

grin-mpx, можно посмотреть Ваш проект .HMI, или коммерческая тайна? :)

Ответить

Вернуться в «Дисплеи и индикаторы»