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

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

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

#1

Сообщение kondratyuk91 » 30.08.2017{, 19:29}

Добрый день. Сразу перейду к делу.
Описание проблемы:
Во время изменения значений или перехода из окна в окно в 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.08.2017{, 13:50}, всего редактировалось 1 раз.

stigmat1996
Рядовой
Сообщения: 45
Зарегистрирован: 02.05.2019{, 20:37}
Репутация: 2
Имя: Юрий

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

#2

Сообщение stigmat1996 » 11.07.2019{, 13:26}

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

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

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

#3

Сообщение grin-mpx » 11.07.2019{, 15:05}

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

Ответить

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