УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

Частотный фильтр в системе OpenScada


Автор Сообщение
Сообщение создано: 15. 03. 2011 [15:30]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
И снова здравствуйте, товарищи!...я сейчас занимаюсь внедрением OpenScada на нашем предприятии, и вот сейчас столкнулся с такой ситуацией: в сети присутствуют наводки, которые влияют на получаемые с внешних источников данные, а конкретнее - вместо относительно постоянного значения датчика получаю 50 Гц синусоиду вокруг этого значения. И вот вопрос, возможно уже кем-то из вас решенный, - каким образом реализовать частотный фильтр, дабы получать и сохранять "чистые" данные?
Сообщение создано: 15. 03. 2011 [15:50]
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
В первую очередь нужно попытаться физически устранить наводки. Поманипулировать с землёй :D. Или, например, провести сигнал цифрой, а не аналоговым сигналом. Было такое, что даже RS-485 не удавалось избавить от помех - помог Ethernet.

Если же хотите программно, то нужна математическая модель фильтра электрического в виде блока (ява-проги). Литература по электротехнике Вам в помощь. Или курсовая студентов :D:
http://revolution.allbest.ru/radio/00329998_0.html

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Сообщение создано: 15. 03. 2011 [16:21]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
"В первую очередь нужно попытаться физически устранить наводки" - так и сделали! Именно по причине того, что устранить не удалось и пишу сей пост :) плюс можно считать, что вопрос замены линии сбора данных закрыт - что имеем, то и имеем, а именно - модули I-7000 по интерфейсу RS-485 и конвертер на RS-232. Алгоритмы фильтров я достану. Меня больше интересует именно вопрос реализации этого механизма в OpenScada. То есть, для фильтра ведь нужно не текущее значение, а некоторая история значений, и только после обработки этого участка мы можем посылать данные на сохранение/обработку/визуализацию. Как это реализовать? не кидайтесь камнями, если я что-то пропустил в документации :)
Сообщение создано: 15. 03. 2011 [16:49]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
Обнаружил путаницу в собственном изложении: данные с модулей собираются с частотой 1 Гц, поэтому говорить о 50 Гц синусоиде, наверно, совсем не корректно. Но, тем не менее, помехи есть, и сути вопроса это не меняет :)
Сообщение создано: 15. 03. 2011 [16:57]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
Демпфер секунд на пять поставьте и всё.

Learn, learn and learn better than work, work and work.
Сообщение создано: 15. 03. 2011 [17:48]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
А если реализовать такое решение: создать программную очередь, куда собирать приходящие значения, образующие выборку. По приходу очередного значения, выкидывать из очереди самое старое, записывать новое и, путем вычислений (работа фильтра), получать актуальное и с ним уже работать. Остается только вопрос, какие значения использовать, пока не заполнилась очередь. Верно ли?

Роман, скажите, где почитать про демпфер? поиск по форуму не срабатывает (по-моему из-за кодировки).
Сообщение создано: 16. 03. 2011 [05:09]
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
Модули I-7000 максимум позволяют 10 измерений в секунду. Откуда же синусоида в данных? Скорее всего просто прыгает показание, а синусоида в аналоговом сигнале. Какой аналоговый сигнал используется? 4-20 ма, который наиболее устойчив к помехам, или вольты?

Вроде в некоторых блоках есть внутренняя настройка фильтра.

Программно можно, например, суммировать 10 значений и делить сумму на десять, то есть просто находить среднее.

PS Указали бы сразу точную модель устройства I-7000, тип аналогового сигнала, датчика, примерную длину аналоговой линии, наличие экрана в кабеле, а то гадаем тут... По RS-485 помех нет? Может быть блок разместить в непосредственной близости от датчика? Аналоговый кабель в большинстве случаев позволяет передачу и цифрового сигнала... Устранение помех физически - наиболее действенная мера. Программное устранение может в некоторых условиях плохо работать в дальнейшем. Например, при изменившихся условиях в силовых линиях и др.

[Сообщение редактировалось 3 раз(а), в последний раз 16.03.2011 в 06:59.]

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Сообщение создано: 16. 03. 2011 [07:19]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
Модули I-7015 (как я понял из мануала, менять настройки фильтра возможности нет), сигнал снимается с термометров сопротивления Pt100, трехпроводная схема включения. Кабель трехжильный, экранированный. Для линии RS-485 использую витую пару без экрана. Однако, синусоида присутствует даже если все собрать на столе с минимальной длиной всех проводов. Согласен, что разобраться с помехами на физическом уровне было бы гораздо лучше и эффективнее.
Сообщение создано: 16. 03. 2011 [07:56]
Nika
Николай Емакаев
Зарегистрирован(а) с: 10.03.2011
Сообщения: 18
Алмаз прав. Совреиенные каналы преобразования сигналов имеют на входе АЦП дифференциальные усилители, которые великолепно давят синфазную помеху от 60 до 120 децибел. Но правила технической эксплуатации электротроустановок требуют заземления одного конца датчика, превращая синфазную помеху в парафазную, которая усиливается операционником. Проверте тестером чтобы сигнальные концы датчика не имели связи с землёй. Линии связи между датчиком и преобразователем желательно проводить кабелем предназначенным для европейского рынка (на частоту 50 а не 60 Гц).
Ацп бывают интегральные и поразрядного уравновешенья. Интегральные АЦП Накапривают сигнал на канденсаторе на периоде равном длинне волны питающей сети. Фирмой NiDam (Изготовителей серии 7000 ) применяют интегральные АЦП толька в модулях 7011 но изготовленные по американской лицензии и предназначены для подавления частоты помех частотой 60 Гц. Фильтрация в данном случае сомнительна.Все остальные АЦП, данной фирмы, порозрядного уравновешенья, с частотой не ниже 100 кГц и временем выборки не более 5 мсек. Естествеено реализуется эффект стробоскопа. и огибающая видна. Но на каком рериоде периоде час, сутки месяц - неизвестно. Естествеенно эргодичность процесса ( неизменность параметра ) будет нарушена. Цифровые фильтры работают только на эргодичныэ процессах. Но варианты есть. В вашем случае вначале надо указать тип измеряемого параметра (температура, давление, ...) Затем определит период обработки, исходя из условия максимального изменения параметра (а не оценки выдаваемой компом) не более половины погрешности канала (а не погрешности датчика или модуля I-7000) Как только сообщите эти данные - напишу как оброботать сигнал в OpenSCADA.
Сообщение создано: 16. 03. 2011 [08:11]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
Да, забыл добавить - кабель от модуля к датчику заземлен со стороны модуля.

Измеряется температура.

"Затем определит период обработки, исходя из условия максимального изменения параметра (а не оценки выдаваемой компом) не более половины погрешности канала (а не погрешности датчика или модуля I-7000)" - совсем не понял, что за величина?



2708