Українська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
Повідомлення: 3743
Демпфер секунд на пять поставьте и всё.

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)" - совсем не понял, что за величина?



0109