|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
01.04.2018, 17:23 | #1 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Защита от "дребезга" данных, получаемых по RS485? (проблема решена)
Добрый день!
Столкнулся с вроде несложной задачей, но туплю уже не первый день. Помогите, кто сталкивался, пожалуйста. Исходные данные: Опрос удаленного оборудования с максимально возможной частотой (опрос с малым периодом). На основании вычитанных данных (29 запросов) рассчитываются 102 переменых, нужных на следующем уровне АСУ ТП. Проблема в том, что больше трети точек опроса имеют непредсказуемый ответ (могут кинуть "случайные" - точнее, промежуточные - данные). При этом известно, что если несколько опросов дали одинаковые данные - на выходе будеь установившаяся величина. Простейшим решением видится фильтр "дребезга" на переменные (например, трижды пришли одни и те же данные - защелкиваем это значение для следующего уровня управления). Но хоть убей, не могу привязать это "трижды" так, чтобы оно отсчитывалось не по тикам контроллера, а именно по успешным опросам оборудования... Может кто знает, как? |
02.04.2018, 10:44 | #2 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Защита от "дребезга" данных, получаемых по RS485?
Есть блок Device(Link) в блоках диагностики. У него есть выходы кверис и трмпакет. На первом увеличивается счётчик отосланных запросов, на втором - счётчик принятных успешных пакетов.
Дальше придумаете, или ещё подсказать? __________________ В сегнетиксе не работаю с самого начала 2019 года. |
02.04.2018, 11:32 | #3 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Защита от "дребезга" данных, получаемых по RS485?
Цитата:
Вариант с блоком Device(link) не годится. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.04.2018, 12:05 | #4 | |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Защита от "дребезга" данных, получаемых по RS485?
Цитата:
Вопрос: как получить минимальный период опроса (это критичный параметр) всех 29 устройств? Таймером дергать сразу все и ждать флагов для всех запросов? или как? REM: расчетный цикл опроса 29 устройств - немногим больше секунды (если не будет сбоев по связи, что не исключено). Тик установлен на 250 мс (реалтик 192), в автоопросе выставлен период 1000 мс и тайм-аут 60 мс. Всей установки в наличии нет, только 2 имитатора... А вот это не совсем понял. Можно чутку разжевать, как определить, что ответ на запрос таки получен? Когда количество ответов равно количеству запросов и больше чем до команды "вычитать"? |
|
02.04.2018, 12:39 | #5 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Защита от "дребезга" данных, получаемых по RS485?
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.04.2018, 15:38 | #6 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Защита от "дребезга" данных, получаемых по RS485?
|
02.04.2018, 16:14 | #7 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Защита от "дребезга" данных, получаемых по RS485?
Максимально часто дёргать "отправить". Ну и немного чтения справки на переменные.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |