Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2016, 12:20   #1
av242736
Новичок
 
Регистрация: Dec 2015
Сообщения: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Усредняющий фильтр аналогового сигнала

Здравствуйте!
Помогите пожалуйста начинающему изучать среду разработки SMLogix.
Меня интересует алгоритм работы усредняющего фильтра аналогового сигнала, реализованного на блоке "Spdelay". Запутался в тиках и циклах. Например, если я задам цикл работы системы = 100 мс., а на входе "dt" блока задержки установлю значение = 10, то сигнал со входа "in" на выход "Out0" будет передаваться с временной задержкой примерно равной = 1 секунде (1000 мс), образуя тем самым что-то вроде кольцевого буфера? И значение со входа "in" дойдет до выхода "Out9" примерно за 10 секунд? То есть примерно каждую секунду на выход "Out0" будет передаваться значение со входа блока?
Миниатюры
Нажмите на картинку для увеличения

Название:  median_filter.png
Просмотров: 184
Размер:  4.7 Кбайт  
av242736 вне форума   Ответить с цитированием
Старый 08.08.2016, 12:42   #2
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от av242736 Посмотреть сообщение
Здравствуйте!
Помогите пожалуйста начинающему изучать среду разработки SMLogix.
Меня интересует алгоритм работы усредняющего фильтра аналогового сигнала, реализованного на блоке "Spdelay". Запутался в тиках и циклах. Например, если я задам цикл работы системы = 100 мс., а на входе "dt" блока задержки установлю значение = 10, то сигнал со входа "in" на выход "Out0" будет передаваться с временной задержкой примерно равной = 1 секунде (1000 мс), образуя тем самым что-то вроде кольцевого буфера? И значение со входа "in" дойдет до выхода "Out9" примерно за 10 секунд? То есть примерно каждую секунду на выход "Out0" будет передаваться значение со входа блока?
Обратите внимание на описание к этому блоку. В вашем случае, сигнал будет обновляться раз в 10 секунд. т.к. для обновления одного значения - надо 10 циклов программы по 100 мс. У вас надо обновить 10 значений. таким образом 10*100*10 = 10000мс.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 08.08.2016, 12:47   #3
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Всё правильно.
Но для проектов, такое усреднение, лично я бы не использовал.
RC-фильтр с загрузкой при старте - гораздо лучше будет.


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 08.08.2016, 14:32   #4
av242736
Новичок
 
Регистрация: Dec 2015
Сообщения: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Спасибо большое за помощь!
Я возможно этот фильтр и не буду использовать, в проектах для систем вентиляции, мне просто не совсем понятен алгоритм его работы.
У меня еще вопрос: если в моем случае, сигнал будет обновляться раз в 10 секунд, то с какой задержкой будут производиться математические операции (сложение и деление), как я понимаю это вычисление среднего арифметического числа?
Если я правильно понял, то получается, что если значение на входе "in" не будет изменяться как минимум 10 секунд, и будет равно "25", то на выходе блока "ADD" получится значение суммы = "250" ?
av242736 вне форума   Ответить с цитированием
Старый 08.08.2016, 14:37   #5
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Да, получится, только спустя 10 циклов программы после установления 25 на входе.
То есть, на протяжении 10 секунд после, например, включения и загрузки - значение на выходе add будет увеличиваться с 0 до 250 по 25 в секунду.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 08.08.2016, 15:25   #6
av242736
Новичок
 
Регистрация: Dec 2015
Сообщения: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Спасибо за более подробное объяснение!
Все равно до конца никак не въеду. Получается, что блок "ADD" пока не сложит все свои входные значения, то не выдаст общую сумму? То есть блок будет как бы накапливать (аккумулировать) входные значения в течении 10 секунд, пока все его входные переменные не получат свои значения, и только тогда выдаст общую сумму и блок "DIV" поделит ее на 10 ?
av242736 вне форума   Ответить с цитированием
Старый 08.08.2016, 15:53   #7
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от av242736 Посмотреть сообщение
Спасибо за более подробное объяснение!
Все равно до конца никак не въеду. Получается, что блок "ADD" пока не сложит все свои входные значения, то не выдаст общую сумму? То есть блок будет как бы накапливать (аккумулировать) входные значения в течении 10 секунд, пока все его входные переменные не получат свои значения, и только тогда выдаст общую сумму и блок "DIV" поделит ее на 10 ?
Не. Дело в том, что на выходе блока задержки - нули, до тех пор, пока он не выдаст на каждый выход переменную со входа. Пусть будет 25.
в первом цикле программы - блок задержки имеет все нули, соответственно, блок add складывает 10 нулей. Блок div делит 10 нулей на 10, на выходе - ноль.

Затем, после прошествия задержки dt - подаётся переменная на 1 выход блока delay. теперь блок add складывает 25 и 9 нулей. div поделит и получит 2.5.

И так далее, по времени dt будет добавлять ещё по 25 на выход..

А вообще - вам бы на реальном контроллере потрогать это дело. Сразу вопросы снимутся.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 08.08.2016, 16:40   #8
av242736
Новичок
 
Регистрация: Dec 2015
Сообщения: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Огромное спасибо!!!
Вроде более менее понял. Согласен, что на реальном контроллере проще понять алгоритм. Я так понимаю в режиме отладки? Просто я некоторое время работал в среде CoDeSyS, а там есть режим эмуляции. Контроллер я заказал, будет только через 3-4 недели. Захотел заранее, так сказать теоретически подготовиться.
А может вы посоветуете, какой фильтр обработки аналогового сигнала лучше применить в реальном проекте?
Например: приточная система вентиляции с водяным калорифером, датчики типа PT1000, трехходовой клапан с аналоговым управлением, пид-регулятор.
Может есть готовый макрос фильтра?
av242736 вне форума   Ответить с цитированием
Старый 08.08.2016, 16:58   #9
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от av242736 Посмотреть сообщение
Огромное спасибо!!!
Вроде более менее понял. Согласен, что на реальном контроллере проще понять алгоритм. Я так понимаю в режиме отладки? Просто я некоторое время работал в среде CoDeSyS, а там есть режим эмуляции. Контроллер я заказал, будет только через 3-4 недели. Захотел заранее, так сказать теоретически подготовиться.
А может вы посоветуете, какой фильтр обработки аналогового сигнала лучше применить в реальном проекте?
Например: приточная система вентиляции с водяным калорифером, датчики типа PT1000, трехходовой клапан с аналоговым управлением, пид-регулятор.
Может есть готовый макрос фильтра?
Конечно. Велосипеды уже изобретены. вот они
http://forum.segnetics.com/showthread.php?t=314

А по поводу эмуляции в вышеуказанной программе - почти бесполезная штука. Реальные величины в ней имитировать крайне проблематично.
Индикацию в ней имитировать невозможно.

Сам несколько раз сталкивался с тем, что режим эмуляции работал не так, как работал потом контроллер, приходилось на объекте код переписывать.

На мой взгляд, эмуляция должна быть либо идеальная и 100% честная, либо никакая. Достичь первого варианта почти невозможно, либо очень трудо/финансово затратно

А вообще, что касается разработки ПО для вентиляции - есть прекрасная штука, называется Конструктор. http://segnetics.com/smconstructor_hvac - вот здесь качается. Там же и инструкция к нему.
Это программное решение сократит время разработки программы в сотни раз. Готовую вентиляцию удастся создать минут за 15.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 08.08.2016, 17:05   #10
av242736
Новичок
 
Регистрация: Dec 2015
Сообщения: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Согласен с вами. Просто я не знаком с режимом отладки и не знаю на сколько он хорош или наоборот. Вот придет контроллер, тогда и попробуем. Спасибо еще раз, что потратили на меня свое время.
av242736 вне форума   Ответить с цитированием
Старый 08.08.2016, 19:43   #11
av242736
Новичок
 
Регистрация: Dec 2015
Сообщения: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Кстати это часть макроса который называется "Filter_bypass". Его мне как раз предложил SMConstructor_HVAC. Набросок макроса приложил к сообщению. Рисовал карандашом поэтому не очень хорошо видно.
Миниатюры
Нажмите на картинку для увеличения

Название:  20160808_182654.jpg
Просмотров: 150
Размер:  132.4 Кбайт  

Последний раз редактировалось av242736, 08.08.2016 в 19:58
av242736 вне форума   Ответить с цитированием
Старый 09.08.2016, 11:40   #12
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от av242736 Посмотреть сообщение
Рисовал карандашом поэтому не очень хорошо видно.
А ещё и вверх ногами
SMConstructor_HVAC ставит по умолчанию именно усредняющий фильтр.
Помимо того что он будет выдавать данные с задержкой, так ещё и фильтрация у него плохая. Категорически советую заменить на RC-фильтр.
Вложения
Тип файла: msl Filter RC_v4.msl (11.6 Кбайт, 96 просмотров)
Тип файла: msl Filter RC (Lite).msl (4.6 Кбайт, 57 просмотров)
Тип файла: msl Filter RC (Lite)_v2.msl (4.7 Кбайт, 74 просмотров)


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 09.08.2016, 12:06   #13
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 16 046
Благодарил(а): 9 раз(а)
Поблагодарили: 481 раз(а) в 439 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от serg-el Посмотреть сообщение
А ещё и вверх ногами
SMConstructor_HVAC ставит по умолчанию именно усредняющий фильтр.
Помимо того что он будет выдавать данные с задержкой, так ещё и фильтрация у него плохая. Категорически советую заменить на RC-фильтр.
Наивно думать, что RC-фильтр работает без задержки

Да ладно думать, ещё и вводить в заблуждение других...


PS. По ссылке http://forum.segnetics.com/showthread.php?t=314 есть и RC-фильтр, называется filter-e.


__________________
Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 09.08.2016, 13:12   #14
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата:
Сообщение от Arsie Посмотреть сообщение
Наивно думать, что RC-фильтр работает без задержки

Да ладно думать, ещё и вводить в заблуждение других...
Если сбрасывать в 0 - то да, будет с задержкой.
Если загружать значение входа на выход - то нет.

И данная ссылка была приведена ранее.
И я не писал, что там нет RC фильтра.
Просто скинул свои (и не только ) варианты данных фильтров.


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 09.08.2016, 13:40   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 16 046
Благодарил(а): 9 раз(а)
Поблагодарили: 481 раз(а) в 439 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от serg-el Посмотреть сообщение
Если сбрасывать в 0 - то да, будет с задержкой.
Если загружать значение входа на выход - то нет.

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


__________________
Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 09.08.2016, 15:45   #16
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата:
Сообщение от Arsie Посмотреть сообщение
Публикуйте каждый раз "дисклеймер" (c), говорящий о том, что макросы проверяли только вы и они никакого отношения к Сегнетиксу не имеют и применять человек их будет на свой страх и риск - у меня пропадут к вам претензии.
Filter RC_v4.msl - © - лично мой. Никакого отношения к Сегнетиксу не имеет и применять их на свой страх и риск.
Filter RC (Lite).msl - © - проверен и дополнено описание внутри лично мной. Никакого отношения к Сегнетиксу не имеет и применять их на свой страх и риск.
Filter RC (Lite)_v2.msl - © - проверен и дополнено описание внутри лично мной. Никакого отношения к Сегнетиксу не имеет и применять их на свой страх и риск.

Есть какие-нибудь претензии?

Да и когда они были? Ведь я же не Ваш сотрудник, а альфа, бета и прочая тестер


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 09.08.2016, 16:15   #17
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 16 046
Благодарил(а): 9 раз(а)
Поблагодарили: 481 раз(а) в 439 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от serg-el Посмотреть сообщение
Есть какие-нибудь претензии?

Да и когда они были? Ведь я же не Ваш сотрудник, а альфа, бета и прочая тестер
Я часто сталкиваюсь, когда в ТП приходят претензии к макросам, взятым на форуме. Уходит немало времени, чтобы объяснить человеку, "что почём" (c)

Т.е. "ложечки находятся, но осадочек остаётся" (с)


__________________
Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 09.08.2016, 16:24   #18
serg-el
Senior Member
 
Регистрация: Aug 2013
Адрес: Москва
Сообщения: 600
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата:
Сообщение от Arsie Посмотреть сообщение
претензии к макросам, взятым на форуме
Ссылочки грабелек не подскажете?


__________________
Всё, что нельзя выразить в цифрах — это не наука, это — мнение.
serg-el вне форума   Ответить с цитированием
Старый 09.08.2016, 17:09   #19
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 16 046
Благодарил(а): 9 раз(а)
Поблагодарили: 481 раз(а) в 439 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от serg-el Посмотреть сообщение
Ссылочки грабелек не подскажете?
В плане? Какие именно макросы? Я их в любом случае удаляю с форума, если проверка показывает, что они неработоспособны.

Если чужой макрос не удалён, значит я его либо не проверял, либо с ним всё ок.


__________________
Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 10.08.2016, 23:04   #20
av242736
Новичок
 
Регистрация: Dec 2015
Сообщения: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Добрый вечер всем!
Если я правильно понял, то в моем случае обрабатывать аналоговый сигнал лучше RC-фильтром, чем усредняющим, значит буду копать в сторону RC-фильтров. Непонятно только почему SMConstructor по умолчанию предлагает использовать усредняющий, более медленный фильтр? За рисунок простите, я его как только не крутил, а он все равно вверх ногами встал, не получается перевернуть. Ну да ладно.
av242736 вне форума   Ответить с цитированием
Старый 11.08.2016, 09:22   #21
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от av242736 Посмотреть сообщение
Добрый вечер всем!
Если я правильно понял, то в моем случае обрабатывать аналоговый сигнал лучше RC-фильтром, чем усредняющим, значит буду копать в сторону RC-фильтров. Непонятно только почему SMConstructor по умолчанию предлагает использовать усредняющий, более медленный фильтр? За рисунок простите, я его как только не крутил, а он все равно вверх ногами встал, не получается перевернуть. Ну да ладно.
Тут есть несколько мнений разных людей. Ваша задача - решить, которому из мнений вы доверяете. Так же, не стоит забывать, что в конечном итоге, только вы знаете характеристики настраиваемой системы. Возможно, в вашем случае подойдёт любой фильтр.
У каждого из предложенных решений есть свои недостатки.
А что касается конструктора - он разрабатывался для управления обычной вентиляцией. И он с этим отлично справляется. Можете использовать конструкторские решения - они подкреплены огромным опытом внедрения на разных объектах.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 11.08.2016, 10:59   #22
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 16 046
Благодарил(а): 9 раз(а)
Поблагодарили: 481 раз(а) в 439 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Цитата
Сообщение от av242736 Посмотреть сообщение
Добрый вечер всем!
Если я правильно понял, то в моем случае обрабатывать аналоговый сигнал лучше RC-фильтром, чем усредняющим, значит буду копать в сторону RC-фильтров. Непонятно только почему SMConstructor по умолчанию предлагает использовать усредняющий, более медленный фильтр? За рисунок простите, я его как только не крутил, а он все равно вверх ногами встал, не получается перевернуть. Ну да ладно.
Фильтры все замедляют сигнал, кроме предиктивных. Что усредняюший, что экспоненциальный (он же RC) фильтр - это фильтры первого порядка. Сигнал при одинаковом уровне фильтрации задерживают идентично.

Если перейти к конкретным реализациям, то "заводской" фильтр имеет возможность ускориться при сильном изменении измеряемой величины. Этого свойства лишены RC-фильтры.

Другими словами, используйте то, что я вам показал и не забивайте себе голову всякой чепухой


__________________
Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 18.08.2016, 23:50   #23
av242736
Новичок
 
Регистрация: Dec 2015
Сообщения: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Усредняющий фильтр аналогового сигнала

Доброй ночи!
Спасибо за помощь. Рассмотрел все варианты фильтров по вашим ссылкам. Пока остановился на "заводском" варианте.
av242736 вне форума   Ответить с цитированием
Ответ

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блокировка аналогового сигнала (решено) 4ertjaga_88 Вопросы о программировании 5 25.07.2018 12:18
Двойной фильтр перед регулятором Norton Вопросы о программировании 4 14.05.2018 13:55
Режим Местный -Дистанция, автозапуск после сигнала Пожар Amat SMConstructor (вентиляция) 3 10.10.2016 15:11
Фильтрация аналогового сигнала СВМ Вопросы о программировании 15 02.12.2015 20:28
Преобразование аналогового входного сигнала 4...20 mA в выходной 0...10 V OTA Вопросы о программировании 3 25.02.2015 13:15


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


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