Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.04.2018, 17:23   #1
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
Question Защита от "дребезга" данных, получаемых по RS485? (проблема решена)

Добрый день!
Столкнулся с вроде несложной задачей, но туплю уже не первый день. Помогите, кто сталкивался, пожалуйста.

Исходные данные:
Опрос удаленного оборудования с максимально возможной частотой (опрос с малым периодом). На основании вычитанных данных (29 запросов) рассчитываются 102 переменых, нужных на следующем уровне АСУ ТП.

Проблема в том, что больше трети точек опроса имеют непредсказуемый ответ (могут кинуть "случайные" - точнее, промежуточные - данные). При этом известно, что если несколько опросов дали одинаковые данные - на выходе будеь установившаяся величина.

Простейшим решением видится фильтр "дребезга" на переменные (например, трижды пришли одни и те же данные - защелкиваем это значение для следующего уровня управления).
Но хоть убей, не могу привязать это "трижды" так, чтобы оно отсчитывалось не по тикам контроллера, а именно по успешным опросам оборудования...
Может кто знает, как?
ailcat вне форума   Ответить с цитированием
Старый 02.04.2018, 10:44   #2
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Защита от "дребезга" данных, получаемых по RS485?

Есть блок Device(Link) в блоках диагностики. У него есть выходы кверис и трмпакет. На первом увеличивается счётчик отосланных запросов, на втором - счётчик принятных успешных пакетов.

Дальше придумаете, или ещё подсказать?


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

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

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


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.04.2018, 12:05   #4
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
Question Ответ: Защита от "дребезга" данных, получаемых по RS485?

Цитата
Сообщение от Gromov Посмотреть сообщение
Есть блок Device(Link) в блоках диагностики.
Дальше придумаете, или ещё подсказать?
Оптимистично. Но не работает (первым делом попробовал).



Цитата:
Сообщение от Arsie Посмотреть сообщение
Переходите на управляемые запросы
Вопрос: как получить минимальный период опроса (это критичный параметр) всех 29 устройств? Таймером дергать сразу все и ждать флагов для всех запросов? или как?
REM: расчетный цикл опроса 29 устройств - немногим больше секунды (если не будет сбоев по связи, что не исключено). Тик установлен на 250 мс (реалтик 192), в автоопросе выставлен период 1000 мс и тайм-аут 60 мс. Всей установки в наличии нет, только 2 имитатора...

Цитата:
Сообщение от Arsie Посмотреть сообщение
Не забудьте только, что <...> флаг готовности не обязательно упадёт в ноль. Нужно контролировать и количество запросов и количество ответов.
А вот это не совсем понял. Можно чутку разжевать, как определить, что ответ на запрос таки получен? Когда количество ответов равно количеству запросов и больше чем до команды "вычитать"?
ailcat вне форума   Ответить с цитированием
Старый 02.04.2018, 12:39   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Защита от "дребезга" данных, получаемых по RS485?

Цитата:
Сообщение от ailcat Посмотреть сообщение
А вот это не совсем понял. Можно чутку разжевать, как определить, что ответ на запрос таки получен? Когда количество ответов равно количеству запросов и больше чем до команды "вычитать"?
Синие блоки - это то, о чём я говорил.




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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.04.2018, 15:38   #6
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Защита от "дребезга" данных, получаемых по RS485?

Цитата:
Сообщение от Arsie Посмотреть сообщение
Синие блоки - это то, о чём я говорил
Спасибо, теперь понял.

Но остался вопрос о минимизации цикла опроса всех 29 установок. Как правильнее сделать?
ailcat вне форума   Ответить с цитированием
Старый 02.04.2018, 16:14   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Защита от "дребезга" данных, получаемых по RS485?

Цитата:
Сообщение от ailcat Посмотреть сообщение
Спасибо, теперь понял.

Но остался вопрос о минимизации цикла опроса всех 29 установок. Как правильнее сделать?
Максимально часто дёргать "отправить". Ну и немного чтения справки на переменные.


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

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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с дискретным входом на новом 2Gi (решена) Yogurt Вопросы о SMH-2G(i) 36 20.05.2016 18:35
Правильная разводка сетей RS-485 Arsie Библиотека 30 28.02.2014 13:52
Проблема связи по RS485 AVK Связь с внешним миром 62 23.12.2009 19:41


Часовой пояс GMT +4, время: 22:39.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023