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

Использование дисплеев и обсуждение пользовательских блоков к ним
Ответить
kondratyuk91
Рядовой
Сообщения: 6
Зарегистрирован: 24 фев 2017, 13:29

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

Сообщение 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 секунды период ожидания ответа? Или там как то по другом работает алгоритм ?
Последний раз редактировалось kondratyuk91 30 авг 2017, 13:50, всего редактировалось 1 раз.
stigmat1996
Рядовой
Сообщения: 45
Зарегистрирован: 02 май 2019, 20:37
Имя: Юрий

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

Сообщение stigmat1996 »

Нашли решение проблемы? У меня такая же ситуация. Когда много информации на экране выводится и считывается, то при нажатие кнопки (дуал-стейт батон) реле то включается, то выключается. Причем рандомно.
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

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

Сообщение grin-mpx »

Тут много раз подымались вопросы обмена с панелью и оптимизации, информации тьма. Что мешает вместо опроса кнопки напрямую сделать в панели переменную значение которой меняется в зависимости от состояния вкл/выкл и опрашивать именно ее. И не делать вкл= 1, выкл=0, а сделать к примеру вкл= 1, выкл=2, тогда никогда не будет проблем с кнопкой, даже при обрыве связи, как у автора топика.
Ответить

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

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

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