Добрый день. Сразу перейду к делу.
Описание проблемы:
Во время изменения значений или перехода из окна в окно в 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->ПЛК
-
- Рядовой
- Сообщения: 6
- Зарегистрирован: 24 фев 2017, 13:29
NEXTION+ArduinoMEGA+MODBURS-RTU->ПЛК
Последний раз редактировалось kondratyuk91 30 авг 2017, 13:50, всего редактировалось 1 раз.
-
- Рядовой
- Сообщения: 45
- Зарегистрирован: 02 май 2019, 20:37
- Имя: Юрий
NEXTION+ArduinoMEGA+MODBURS-RTU->ПЛК
Нашли решение проблемы? У меня такая же ситуация. Когда много информации на экране выводится и считывается, то при нажатие кнопки (дуал-стейт батон) реле то включается, то выключается. Причем рандомно.
- grin-mpx
- Лейтенант
- Сообщения: 477
- Зарегистрирован: 17 июл 2017, 18:39
- Откуда: Днепр. UA
- Имя: Григорий
NEXTION+ArduinoMEGA+MODBURS-RTU->ПЛК
Тут много раз подымались вопросы обмена с панелью и оптимизации, информации тьма. Что мешает вместо опроса кнопки напрямую сделать в панели переменную значение которой меняется в зависимости от состояния вкл/выкл и опрашивать именно ее. И не делать вкл= 1, выкл=0, а сделать к примеру вкл= 1, выкл=2, тогда никогда не будет проблем с кнопкой, даже при обрыве связи, как у автора топика.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей