Протокол обмена с COM-портом
Re: Протокол обмена с COM-портом
здесь сигнал прошедший через фильтр Mean
- Вложения
-
- Без фильтра.txt
- (92.92 КБ) 124 скачивания
-
- С фильтром.txt
- (97.39 КБ) 136 скачиваний
-
- assistant
- Сообщения: 119
- Зарегистрирован: 10 янв 2011, 11:01
- Версия LabVIEW: 8.6, 2009, 2010
- Откуда: Таганрог
- Контактная информация:
Re: Протокол обмена с COM-портом
Может нужно реализовать проверку на достоверность, помимо фильтрации естественно? Ну проще говоря, насколько я помню, в общем случае берется паспортная погрешность датчика умножается на 3. Отклонение вниз - обрыв, вверх - КЗ. Причем, собственно, не особо важно где произошел сбой: в питании, канале связи и пр. Если нужно заводишь счетчик отклонений. А если значение выходит за диапазон, то заменяешь последним достоверным значением. Если измерение начинается с отклонения, то нужно, конечно, инициализировать "как бы" достоверное значение.
Естественно, это можно делать как угодно, т.е. можно и не брать в учет датчик, а просто какие-то константы. Ну а счетчик по превышению какого-то значения(обычно 3 раза) может выдать событие о неисправности или нештатной ситуации.
Естественно, это можно делать как угодно, т.е. можно и не брать в учет датчик, а просто какие-то константы. Ну а счетчик по превышению какого-то значения(обычно 3 раза) может выдать событие о неисправности или нештатной ситуации.
Re: Протокол обмена с COM-портом
не совсем пойму как этот метод может помочь компенсировать постоянную или НЧ составляющую. Ведь подмена последним достоверным значением это явно искажение сигнала. Раз выйдет за диапазон, другой... так он будет рисовать постоянно прямую.
-
- assistant
- Сообщения: 119
- Зарегистрирован: 10 янв 2011, 11:01
- Версия LabVIEW: 8.6, 2009, 2010
- Откуда: Таганрог
- Контактная информация:
Re: Протокол обмена с COM-портом
Ну можно,например, попробовать "вычислить", так сказать, тенденцию изменения сигнала и, таким образом, держать не последнее достоверное значение, а скажем "умный" динамический отрезок. Просто в сигнале какие-то пульсации большой амплитуды и цифровым фильтром может не получится их отфильтровать.
Re: Протокол обмена с COM-портом
если можно поподробнее каким образом это можно реализоватьShpik писал(а):Ну можно,например, попробовать "вычислить", так сказать, тенденцию изменения сигнала и, таким образом, держать не последнее достоверное значение, а скажем "умный" динамический отрезок.
если вы про своеобразные вслески, то не обращайте внимание, это происходит из-за использования разъема Express card в качестве com порта, соединяя на прямую, без переходника таких всплесков нетShpik писал(а):Просто в сигнале какие-то пульсации большой амплитуды и цифровым фильтром может не получится их отфильтровать.
-
- assistant
- Сообщения: 119
- Зарегистрирован: 10 янв 2011, 11:01
- Версия LabVIEW: 8.6, 2009, 2010
- Откуда: Таганрог
- Контактная информация:
Re: Протокол обмена с COM-портом
Ну сигнал, так сказать, повторяется потому можно брать отрезок, к примеру, последний и анализируя "нормальность" сигнала, брать элементы из массива-отрезка до тех пор пока имеет место быть отклонение.
Ну а если этих всплесков не будет, то тогда может и не нужно этого делать.
Ну а если этих всплесков не будет, то тогда может и не нужно этого делать.
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Протокол обмена с COM-портом
я немного отсутствовал в файле массив размерностью 2dKvanto писал(а):здесь сигнал прошедший через фильтр Mean
я так понимаю все данные необходимо свести и получить 1d массив
получится следующее правильно я получил исходный сигнал или нет?
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Протокол обмена с COM-портом
Уважаемый Shpik!Shpik писал(а):Предлагаю субВИ Скользящее среднее. Может пригодится.
Не знаю, может Вы и обладаете теми качествами, которых большинству из нас не хватает, и оформляете все свои программы подобным образом.
Но скорее всего эту SubVI вы использовали в своих проектах неоднократно. К сожалению результатом работы вашей функции не является значение "скользящая средняя", скорее это "шагающая средняя".
Не подумайте, что хочу Вас обидеть, скорее наоборот - помочь.
Просто если использовать ее в реальных проектах, то результат будет отличаться от требуемого.
На рисунке (ширина окна равна 50):
1. Белая - обрабатываемый сигнал.
2. Красная - результат работы Вашей функции.
3. Зеленая - скользящая средняя
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Протокол обмена с COM-портом
Вот первоначальный вариант обработки сигнала с использованием "скользящей средней".
с разным размером окна, которое можете сами подобрать для более качественного результата
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Протокол обмена с COM-портом
Попробовал еще предварительно прогнать сигнал через ограничитель скорости изменения значения
Я же не знаю какой параметр сигнала несет информацию необходимую вам, вот и предлагаю несколько вариантов.
Мне кажется это позволит немного улучшить качество сигнала.Я же не знаю какой параметр сигнала несет информацию необходимую вам, вот и предлагаю несколько вариантов.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- assistant
- Сообщения: 119
- Зарегистрирован: 10 янв 2011, 11:01
- Версия LabVIEW: 8.6, 2009, 2010
- Откуда: Таганрог
- Контактная информация:
Re: Протокол обмена с COM-портом
Уважаемый IvanLis, ни в коем случае не приму Ваши слова за обиду, наоборот конструктивную критику принимаю с удовольствием. Я не использую этот субВИ в своих проектах, иначе я бы его проверил неоднократно. Этот субВИ я давно когда-то набросал и, честно говоря, не проверял нигде и никогда не применял. Возможно я что-то напутал.
Спасибо за замечание!
Спасибо за замечание!
Re: Протокол обмена с COM-портом
простите,что не отвечал. Из всего вышеперечисленного мне больше всего подошла комбинация вычитания среднего из сигнала, предложенная IvanLis и DFD Filtering? используемый как ФВЧ с частотой среза 0,1 Гц. Спасибо вам огромное за помощь! Буду продолжать работу.
Re: Протокол обмена с COM-портом
Хотелось бы немного вернуться к прошлому и снова рассказать о давней проблеме. Мой VI запускается НЕ КАЖДЫЙ РАЗ. На ноутбуке с использованием заменителя COM-порта в виде разъема Express-Card он запускается через раз. А вот на стационарном компе где есть com-порт он может запускаться 2 -3 раза подряд, потом не запуститься, по-разному вообщем. Помогоите чем можете.
- Вложения
-
- ECG_viewer.rar
- (457.61 КБ) 162 скачивания
Re: Протокол обмена с COM-портом
Подключил на днях второй канал к АЦП, подскажите, по логике вещей получается что если у меня 2 канала, то я могу их разделить по очереди. То есть протокол такой 1-й кан., 2-й кан, 1-й кан., 2-й кан. Пробовал делать это с помощью Decimate 1D array. Не помогло, до него идут выборки, а после раздления нет. Чем попробовать разделить?
- Вложения
-
[Расширение avi было запрещено, вложение больше недоступно.]
-
- VIP
- Сообщения: 1334
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 41 раз
- Контактная информация:
Re: Протокол обмена с COM-портом
Коллега Кванто, не в обиду, но научитесь формулировать сообщение о проблеме правильно. Не бывает такого "запускается не каждый раз". Бывает - "при запуске спонтанно возникает ошибка такая-то там-то и там-то". Если ВИ "зависает" - то это тоже может проявляться по разному - вот эти проявления и надо описывать.Kvanto писал(а):Мой VI запускается НЕ КАЖДЫЙ РАЗ.