Темперетурный лог и XY Graph

Простейшие вопросы в области инженерной разработки
Ответить
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Темперетурный лог и XY Graph

Сообщение jane_wild »

Ребята нужна помощь. Посмотрите на вложенный VI. Этот VI демонстрирует проблему, с которой я столкнулась. Устройство непрерывно передает данные температуры через каждые 18 секунд, затем делает перерыв в передаче на несколько часов, данные записываются в файл. Далее прочитав этот файл и получив 2D массив отображаю его на графике.... Вопрос как "разорвать" plot , что бы от не отображал данные, когда их небыло. В данном примере время между 6:28:05 PM и 3:13:23 AM. (индексы 350, 351 в массиве) Иначе глядя на график складывается ложное впечатление что температура линейно падала, хотя в реальности было совсем не так... Вот я и хочу что бы этот промежуток не отображался и красная линия на графике состояла из двух частей. Спасибо
Вложения
Temp Log.vi
(24.42 КБ) 69 скачиваний
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Темперетурный лог и XY Graph

Сообщение Artem.spb »

Можно вставить в место разрыва NAN
Можно разделить данные на два plot-а
xy.png
xy2.png
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Темперетурный лог и XY Graph

Сообщение jane_wild »

Так оно то понятно, что можно вставить NaN или разделить на два плота. Проблема в том что индекс каждый раз другой. Иногда даже бывают два разрыва, тут нужно что то другое... Может как нибудь из временной шкалы кусок вырезать... :haha: тогда и пусть себе график выглядит сплошным...
Alex Dem
assistant
assistant
Сообщения: 119
Зарегистрирован: 06 май 2015, 22:24
Версия LabVIEW: 2014, 2018
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Темперетурный лог и XY Graph

Сообщение Alex Dem »

jane_wild писал(а):Проблема в том что индекс каждый раз другой. Иногда даже бывают два разрыва
Так в этом и состоит Ваша задача, перед построением графика найти индексы для разрывов и далее придерживаться предложенной методики с NaN.
Разницу между секундами при передаче и часами паузы определить не сложно.
Аватара пользователя
zxc_pavel
adviser
adviser
Сообщения: 242
Зарегистрирован: 02 июн 2016, 12:07
Версия LabVIEW: 15
Благодарил (а): 9 раз
Поблагодарили: 23 раза
Контактная информация:

Re: Темперетурный лог и XY Graph

Сообщение zxc_pavel »

Находить и смещать разрывы влево - это просто
Делать постоянный X.Scale.Range.Increment (например 10) - чтобы вертикальные линии сетки не ползали
X.Scale.Visible - False
Ну и свою шкалу рисовать вместо нее :)
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Темперетурный лог и XY Graph

Сообщение Artem.spb »

Вы сами себе противоречите
jane_wild писал(а): :haha: тогда и пусть себе график выглядит сплошным...
Иначе глядя на график складывается ложное впечатление что температура линейно падала, хотя в реальности было совсем не так...
если вырезать кусок их шкалы, то пользователь скорее всего не заметит, что прошли часы и решит, что температура упала мгновенно.

И в чём проблема, сделать как уже сказано

Код: Выделить всё

if (x[i]-x[i-1]) < (пять-десять_стандартных_dt)
  {
    вставить в x[i] NAN
    вставить в y[i] NAN
  }
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Темперетурный лог и XY Graph

Сообщение jane_wild »

Ну да, ничего лучше не придумала, кроме как в лоб сравнивать время между соседними отсчетами. Поставила 6 минут (240 сек)
NaN.png
NaN.png (4.26 КБ) 2886 просмотров
Все работает, кстати достаточно одного NaN для временной шкалы.
Возник другой вопрос. Юзер желает знать какова мин. и макс. температура была на определенном отрезке времени. Для этого он делает zoom оси Х графика, возникает событие Scale Range Change, вызываю vi в котором мне необходимо вычислить эту температуру. Перебираю все данные, нахожу индексы мин и мах, обрезаю массив по этим индексам и затем нахожу мин/макс температуры. Оно то работает, но как то много телодвижений, есть ли более рациональный способ?
Temperature Min Max.png
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Темперетурный лог и XY Graph

Сообщение Artem.spb »

если метки времени точно растут, то искать проще с Threshold 1D Array
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»