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

Простейшие вопросы в области инженерной разработки

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

Postby jane_wild on 04 Jun 2018, 17:37

Ребята нужна помощь. Посмотрите на вложенный VI. Этот VI демонстрирует проблему, с которой я столкнулась. Устройство непрерывно передает данные температуры через каждые 18 секунд, затем делает перерыв в передаче на несколько часов, данные записываются в файл. Далее прочитав этот файл и получив 2D массив отображаю его на графике.... Вопрос как "разорвать" plot , что бы от не отображал данные, когда их небыло. В данном примере время между 6:28:05 PM и 3:13:23 AM. (индексы 350, 351 в массиве) Иначе глядя на график складывается ложное впечатление что температура линейно падала, хотя в реальности было совсем не так... Вот я и хочу что бы этот промежуток не отображался и красная линия на графике состояла из двух частей. Спасибо
Attachments
Temp Log.vi
(24.42 KiB) Downloaded 25 times
User avatar
jane_wild
assistant
assistant
 
Posts: 100
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

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

Postby Artem.spb on 04 Jun 2018, 17:55

Можно вставить в место разрыва NAN
Можно разделить данные на два plot-а
xy.png

xy2.png
Artem.spb
expert
expert
 
Posts: 1418
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 246
CLD hardware I/O VIP freelance

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

Postby jane_wild on 04 Jun 2018, 18:04

Так оно то понятно, что можно вставить NaN или разделить на два плота. Проблема в том что индекс каждый раз другой. Иногда даже бывают два разрыва, тут нужно что то другое... Может как нибудь из временной шкалы кусок вырезать... :haha: тогда и пусть себе график выглядит сплошным...
User avatar
jane_wild
assistant
assistant
 
Posts: 100
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

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

Postby Alex Dem on 04 Jun 2018, 18:54

jane_wild wrote:Проблема в том что индекс каждый раз другой. Иногда даже бывают два разрыва

Так в этом и состоит Ваша задача, перед построением графика найти индексы для разрывов и далее придерживаться предложенной методики с NaN.
Разницу между секундами при передаче и часами паузы определить не сложно.
Alex Dem
user
user
 
Posts: 73
Joined: 06 May 2015, 22:24
LabVIEW Version: 2014
Karma: 8

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

Postby zxc_pavel on 04 Jun 2018, 19:19

Находить и смещать разрывы влево - это просто
Делать постоянный X.Scale.Range.Increment (например 10) - чтобы вертикальные линии сетки не ползали
X.Scale.Visible - False
Ну и свою шкалу рисовать вместо нее :)
zxc_pavel
user
user
 
Posts: 96
Joined: 02 Jun 2016, 12:07
LabVIEW Version: 14
Karma: 74

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

Postby Artem.spb on 05 Jun 2018, 11:02

Вы сами себе противоречите
jane_wild wrote: :haha: тогда и пусть себе график выглядит сплошным...

Иначе глядя на график складывается ложное впечатление что температура линейно падала, хотя в реальности было совсем не так...

если вырезать кусок их шкалы, то пользователь скорее всего не заметит, что прошли часы и решит, что температура упала мгновенно.

И в чём проблема, сделать как уже сказано
Code: Select all
if (x[i]-x[i-1]) < (пять-десять_стандартных_dt)
  {
    вставить в x[i] NAN
    вставить в y[i] NAN
  }
Artem.spb
expert
expert
 
Posts: 1418
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 246
CLD hardware I/O VIP freelance

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

Postby jane_wild on 05 Jun 2018, 16:35

Ну да, ничего лучше не придумала, кроме как в лоб сравнивать время между соседними отсчетами. Поставила 6 минут (240 сек)
NaN.png
NaN.png (4.26 KiB) Viewed 876 times

Все работает, кстати достаточно одного NaN для временной шкалы.
Возник другой вопрос. Юзер желает знать какова мин. и макс. температура была на определенном отрезке времени. Для этого он делает zoom оси Х графика, возникает событие Scale Range Change, вызываю vi в котором мне необходимо вычислить эту температуру. Перебираю все данные, нахожу индексы мин и мах, обрезаю массив по этим индексам и затем нахожу мин/макс температуры. Оно то работает, но как то много телодвижений, есть ли более рациональный способ?
Temperature Min Max.png
User avatar
jane_wild
assistant
assistant
 
Posts: 100
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

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

Postby Artem.spb on 05 Jun 2018, 17:41

если метки времени точно растут, то искать проще с Threshold 1D Array
Artem.spb
expert
expert
 
Posts: 1418
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 246
CLD hardware I/O VIP freelance


Return to Для чайников

Who is online

Users browsing this forum: Yandex and 8 guests

cron