Фильтрация значения

Ответить
vovsenet
Сообщения: 95
Зарегистрирован: 25 дек 2012, 13:43

Фильтрация значения

Сообщение vovsenet »

Подкиньте идею как проще, правильнее, рациональнее сделать алгоритм усреднения показания температуры (давления).
Имеется ПЛК DVP-20SX2, панель weintek mt8071, пид-регулятор elhart ecd2-m c термодатчиком Pt100, датчик давления 4-20 мА.
Показания температуры передаются в плк по 485 интерфейсу, из плк отображается на панели. Показания давления воздуха через аналоговый вход AD0 (D1110) отображается на панели.
Значения корректные, но иногда "проскакивает" резкое изменение температуры и постоянно скачет число после запятой (десятая часть) показания давления. Логично отображать не мгновенные значения, а какое-то среднее за какое-то измеренное время. По аналоговому входу в мануале написано, что D1110 это и есть "Среднее число аналоговых сигналов на входе канала 0 (AD0) для EX2/SX2. Когда среднее в D1062 установлено как 1, D1110 показывает текущее значение." Как я понял в D1110 отображается то значение, которое отображается на панели, а в D1062 устанавливается количество опросов аналогового входа за определённое время. По умолчанию значение К10. Я его не менял. Какое значение поставить в D1062, чтоб не плавала цифра после запятой?
А по значению температуры по 485 интерфейсу какое решение будет оптимальным? Прописать в программе посылку из D1073 каждые, например, 10 секунд, а не напрямую?

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Фильтрация значения

Сообщение tvent »

Для температуры.
Простейшее скользящее среднее (MA) вида MA = (МАО + P)/2
MAO - предыдущее значение MA
P - текущее значение температуры

and909
Сообщения: 858
Зарегистрирован: 28 май 2013, 13:20

Re: Фильтрация значения

Сообщение and909 »

Есть API 45 MEAN, я для удобства сделал ФБ, время в 0,1 сек, усредняется 10 значений
Как показала практика, для температуры оптимально время усреднения 2-3 сек.
Снимок экрана 2021-07-26 081650.png
Снимок экрана 2021-07-26 081650.png (7.1 КБ) 3476 просмотров
Вложения
FB_Mean.zip
(1016 байт) 147 скачиваний

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Фильтрация значения

Сообщение bayk »

Друзья, а разве модуль аналогового входа не умеет сам заниматься усреднением? или температурный не умеет?

and909
Сообщения: 858
Зарегистрирован: 28 май 2013, 13:20

Re: Фильтрация значения

Сообщение and909 »

Так автор писал, что есть
в D1062 устанавливается количество опросов аналогового входа за определённое время. По умолчанию значение К10. Я его не менял. Какое значение поставить в D1062, чтоб не плавала цифра после запятой?
По умолчанию стоит 10, чем больше, тем меньше плавания, но и медленней реакция, надо подбирать по месту. Например, для модулей ПТ время опроса 200мс на канал, соответственно, х10 = 2сек, можно прибавлять десятками и наблюдать. Для медленных процессов, можно усреднять окном в десятки секунд.

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Фильтрация значения

Сообщение tvent »

bayk писал(а):
26 июл 2021, 08:19
Друзья, а разве модуль аналогового входа не умеет сам заниматься усреднением? или температурный не умеет?
Пид-регулятор, обычно, не умеет. Скользящее среднее проще в вычислении, чем среднее из 100 измерений.

vovsenet
Сообщения: 95
Зарегистрирован: 25 дек 2012, 13:43

Re: Фильтрация значения

Сообщение vovsenet »

and909 писал(а):
26 июл 2021, 08:48
По умолчанию стоит 10, чем больше, тем меньше плавания, но и медленней реакция, надо подбирать по месту. Например, для модулей ПТ время опроса 200мс на канал, соответственно, х10 = 2сек, можно прибавлять десятками и наблюдать. Для медленных процессов, можно усреднять окном в десятки секунд.
Именно вот это я и хотел узнать. Спасибо.
А вот
and909 писал(а):
26 июл 2021, 06:07
Есть API 45 MEAN
В каких случаях будет не достаточно одной команды MEAN? Обязательно такой ФБ применять?

and909
Сообщения: 858
Зарегистрирован: 28 май 2013, 13:20

Re: Фильтрация значения

Сообщение and909 »

vovsenet писал(а):
26 июл 2021, 14:28
В каких случаях будет не достаточно одной команды MEAN? Обязательно такой ФБ применять?
ФБ это обвязка API я ее сделал для удобства и как мне надо, можно использовать отдельно, надо только организовать окно усреднения (создать массив из данных, соответствующий количеству усредняемых значений и сдвигать эти данные).

Олег
Сообщения: 795
Зарегистрирован: 18 янв 2011, 23:06

Re: Фильтрация значения

Сообщение Олег »

тоже этой функцией балуюсь.
Вложения
SCL_4_20.rar
(7.58 КБ) 170 скачиваний

Ответить