Вход

Просмотр полной версии : Фильтрация сингналов



sirntpu
07.08.2012, 10:18
Здравствуйте!
Я начал учиться программировать в среде CoDeSys v2.3 несколько дней назад.Мне дали задачу "фильтрация сигналов".Но я не знаю с чего начать.
Помогите пожалуйста!

S.A.D.
07.08.2012, 10:23
постановка задачи из разряда иди туда незнаю куда, найди то незнаю что и чем бы ты не занимался лишь бы к отбою "устал"? Выглядит с ваших слов так)))

Николаев Андрей
07.08.2012, 10:52
постановка задачи из разряда иди туда незнаю куда, найди то незнаю что и чем бы ты не занимался лишь бы к отбою "устал"? Выглядит с ваших слов так)))

Ну ладно уж. Все мы через это проходили.

Описывайте какой сигнал и зачем фильтровать? Что с этими данными делать?

IVM
07.08.2012, 10:55
Здравствуйте!
Я начал учиться программировать в среде CoDeSys v2.3 несколько дней назад.Мне дали задачу "фильтрация сигналов".Но я не знаю с чего начать.
Помогите пожалуйста!
Для начала прочтите книгу И.В.Петрова "Программируемые контроллеры". Она есть в Internet.

sirntpu
07.08.2012, 11:50
Ну ладно уж. Все мы через это проходили.

Описывайте какой сигнал и зачем фильтровать? Что с этими данными делать?

сигнал аналоговый.например x = [2 80 6 3]
и после протекания через фильтр( например медианный фильтр),получится такой сигнал y = [2 6 6 3]

sirntpu
07.08.2012, 11:58
Для начала прочтите книгу И.В.Петрова "Программируемые контроллеры". Она есть в Internet.

спасибо.я буду читать

Mal
30.05.2014, 23:08
видимо, помогло. почитаю и я, а то аналоговые входы мерцают, например, скорость (4-20 мА, от 0 до 1470 об/мин) при нулевой реальной скорости AI выдает ток на примерно 2 об/мин. Как с этим бороться?

ferret_maybe
31.05.2014, 10:51
видимо, помогло. почитаю и я, а то аналоговые входы мерцают, например, скорость (4-20 мА, от 0 до 1470 об/мин) при нулевой реальной скорости AI выдает ток на примерно 2 об/мин. Как с этим бороться?
Думаю, что 2 об/мин - это в пределах погрешности входа и датчика. Можете сами обработку написать вычесть 2 об/мин от получаемого значения, коэффициент наклона и т.д.))) Только на другом датчике уже погрешность может быть другой и там будет допустим 1 об/мин и т.д.
Или еще вариант обнулять значение при отключенной установке по условию.

Вольд
01.06.2014, 10:58
видимо, помогло. почитаю и я, а то аналоговые входы мерцают, например, скорость (4-20 мА, от 0 до 1470 об/мин) при нулевой реальной скорости AI выдает ток на примерно 2 об/мин. Как с этим бороться?
А ты про погрешность измерений что-нибудь знаешь ? Вот здесь почитай: http://www.gumer.info/bibliotek_Buks/Science/biruk/04.php

Чёкнутый Рысь
02.06.2014, 11:27
Есть там блок LIMIT называется. Используй его.

AVF
02.06.2014, 13:14
Мёртвую зону задать что-то мешает?
Порог оборотов остановки привода?

ferret_maybe
02.06.2014, 14:13
Есть там блок LIMIT называется. Используй его.
Интересно, как Limit использовать? Он вроде бы в диапазон рабочий попадает)?

Чёкнутый Рысь
02.06.2014, 15:23
Ограничитель

OUT := LIMIT(Min, IN, Max) означает:

OUT := MIN (MAX (IN, Min), Max)

Max задает верхнюю и Min нижнюю границы ограничителя. Если IN больше верхнего или меньше нижнего пределов, результат 'обрезается' соответственно до Max или Min.

IN и OUT могут быть любого типа.

Пример IL:

LD 90

LIMIT 30,80

ST Var1 (* Результат 80 *)

Пример ST:

Var1:=LIMIT(30,90,80); (* Результат 80 *);

capzap
02.06.2014, 15:26
Ограничитель

OUT := LIMIT(Min, IN, Max) означает:

OUT := MIN (MAX (IN, Min), Max)

Max задает верхнюю и Min нижнюю границы ограничителя. Если IN больше верхнего или меньше нижнего пределов, результат 'обрезается' соответственно до Max или Min.

IN и OUT могут быть любого типа.

Пример IL:

LD 90

LIMIT 30,80

ST Var1 (* Результат 80 *)

Пример ST:

Var1:=LIMIT(30,90,80); (* Результат 80 *);

Вам намекают, чтоб внимательнее условие задачи прочитали, чему будет равна переменная, которая предполагается должна быть равна нулю, если LIMIT(0, X, 1470); , где Х равно двум

ferret_maybe
02.06.2014, 15:48
Вам намекают, чтоб внимательнее условие задачи прочитали, чему будет равна переменная, которая предполагается должна быть равна нулю, если LIMIT(0, X, 1470); , где Х равно двум
Совершенно, верно именно намекаю), хотя было предположение, что я может быть чего-то не знаю и услышать свежую мысль...

capzap
02.06.2014, 15:58
Совершенно, верно именно намекаю), хотя было предположение, что я может быть чего-то не знаю и услышать свежую мысль...

как один из вариантов, фильтрацию можно и таким способом организовать http://www.owen.ru/forum/showthread.php?t=10588&p=61379&viewfull=1#post61379

AVF
03.06.2014, 08:09
.... может быть чего-то не знаю и услышать свежую мысль...
--- читайте пост #11 ещё раз ;)

Ренат)
25.06.2014, 13:57
есть такая задача у меня на столе лежит: тензодатчик , модуль icp-con 7016,плк 110-32 . я хочу получить что то вроде электронных весов на первом этапе а в дальнейшим дозатор .с плк только знакомлюсь опыта нет не какого . и вот только начал писать программу сразу же появились сложности . тензодатчик подключил к i7016 , а i7016 к плк через 485 порт настроил и вижу значения меняющиеся от нагрузки на датчик и вроде все хорошо но эта переменная постоянно находится в колебательном режиме так сказать.Вопрос, как грамотно произвести фильтрацию ??? блок DIG_FLTR не работает .

AVF
26.06.2014, 10:40
А нагрузка сама-то не колеблется?
Экранирование и защита от наводок выполнены?

Ренат)
26.06.2014, 11:19
да все рекомендации учтены ... вопрос только как это программно обработать ....

Ренат)
26.06.2014, 11:20
может есть какие то готовые блоки для таких случаев ?

AVF
26.06.2014, 13:47
Если имеются в виду программные модули, то не знаю.
Эксплуатируем несколько комплектов весов на трёх бетонных заводах - озвученной проблемы не наблюдается.
Если сигнал начинает колебаться, то это либо воздействие внешних вибраций от неисправного оборудования, либо кончина самого тензодатчика.