Страница 1 из 1

NEXTION+ArduinoMEGA+MODBURS-RTU->ПЛК

Добавлено: 30.08.2017{, 19:29}
kondratyuk91
Добрый день. Сразу перейду к делу.
Описание проблемы:
Во время изменения значений или перехода из окна в окно в Nextion начинают плавать значения передаваемые на arduino. Например есть переменная дискретная 0 или 1 которая сигнализирует нажатие кнопки на панели, эта переменная время от времени может перейти с задания 1 на 0 на несколько секунд а потом опять принять задаваемое значение. Когда панель не выполняет никаких действий значения не плавают, но стоит начать что то менять и начинаются глюки.
В тоже время значения показаний температур с ПЛК на панель происходят нормально без глюков.
Этот же глюк был замечен при отладке работы с OPC сервером. Тогда я увеличил время с которым arduino запрашивает дискретные значения с 1 на 3 секунды и изменил сгенерированный код, а именно изменил скорость UART общения Arduino-Nextion с 9600 на 115200. На стенде проблема устранилась но видимо не до конца.
В программе NEXTION запущены часы реального времени RTC, сохранение и запись показаний в EEPROM. В Arduino передача данных по Modbus снимание данных с Nextion с передачей их на ПЛК, суточные таймера на работу котлов.
С радостью приму все замечания по программе, и послушаю варианты как можно оптимизировать и устранить проблему.
Линк на программы https://1drv.ms/f/s!AqeKgoesWZRHqBZCJ1aJEf_kIB4l
оновил ссилку, немножко окультурил fbd програму
Добавлено (29.08.2017, 19:16)
---------------------------------------------
Добавлю что делал еще один подобный проект, правда в 2 раза меньше, без RTC, таймеров и EEPROM и там все работает как часики уже месяца 4.

Добавлено (30.08.2017, 19:29)
---------------------------------------------
Еще хочу спросить, когда в блоке опроса переменной nextion задать цикличный опрос например раз в 5 секунд, эти 5 секунд разбиваются пополам ? Как бы 2,5 секунды период запроса, 2,5 секунды период ожидания ответа? Или там как то по другом работает алгоритм ?

NEXTION+ArduinoMEGA+MODBURS-RTU->ПЛК

Добавлено: 11.07.2019{, 13:26}
stigmat1996
Нашли решение проблемы? У меня такая же ситуация. Когда много информации на экране выводится и считывается, то при нажатие кнопки (дуал-стейт батон) реле то включается, то выключается. Причем рандомно.

NEXTION+ArduinoMEGA+MODBURS-RTU->ПЛК

Добавлено: 11.07.2019{, 15:05}
grin-mpx
Тут много раз подымались вопросы обмена с панелью и оптимизации, информации тьма. Что мешает вместо опроса кнопки напрямую сделать в панели переменную значение которой меняется в зависимости от состояния вкл/выкл и опрашивать именно ее. И не делать вкл= 1, выкл=0, а сделать к примеру вкл= 1, выкл=2, тогда никогда не будет проблем с кнопкой, даже при обрыве связи, как у автора топика.