Добрый день. Сразу перейду к делу.
Описание проблемы:
Во время изменения значений или перехода из окна в окно в 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 секунды период ожидания ответа? Или там как то по другом работает алгоритм ?