Показать сообщение отдельно
Старый 02.04.2018, 11:32   #3
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Защита от "дребезга" данных, получаемых по RS485?

Цитата:
Сообщение от ailcat Посмотреть сообщение
Добрый день!
Простейшим решением видится фильтр "дребезга" на переменные (например, трижды пришли одни и те же данные - защелкиваем это значение для следующего уровня управления).
Но хоть убей, не могу привязать это "трижды" так, чтобы оно отсчитывалось не по тикам контроллера, а именно по успешным опросам оборудования...
Может кто знает, как?
Переходите на управляемые запросы - переменные с нулевым временем опроса. На выходе каждой переменной есть флаг "запрос успешно выполнен". Не забудьте только, что ответ может быть получен раньше начала следующего цикла, т.е. если вы сказали переменной "отправься", флаг готовности не обязательно упадёт в ноль. Нужно контролировать и количество запросов и количество ответов.

Вариант с блоком Device(link) не годится.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием