Провалы в XY графике

Простейшие вопросы в области инженерной разработки
Валерон
beginner
beginner
Сообщения: 23
Зарегистрирован: 28 май 2017, 17:20
Версия LabVIEW: 14.0
Контактная информация:

Провалы в XY графике

Сообщение Валерон »

[attachment=0]Провал_1.pngПриветствую всех на этом форуме.
Набросал программку для отображения на xy-графике поступающих данных с микроконтроллера. Данные поступают с периодичность 10 мс в виде строки, например "3500.000 1.500", где 3500.000 значение частоты, 1.500 значение АЦП. Данные на графике отображаются вроде корректно, НО! Проскакивают провалы!
Как от них можно избавиться?
Вложения
Провал_1.png
Схема.png
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Провалы в XY графике

Сообщение Kosist »

Наверное, у Вас значение NaN проскакивает - там есть условие, когда записывается или значение, или NaN. Посмотрите "под лампочкой", или как-то проследите состояния индикатора EOS (лучше всего из его значений собирать массив, и смотреть, будет ли там проскакивать True).
Хотя, не уверен, что это причина...
Мы делили апельсин - много наших полегло...
Валерон
beginner
beginner
Сообщения: 23
Зарегистрирован: 28 май 2017, 17:20
Версия LabVIEW: 14.0
Контактная информация:

Re: Провалы в XY графике

Сообщение Валерон »

NaN выполняется, когда придет заданное последнее значение. Например в диапазоне 3000-4000,когда поступит значение 4000, то вместо значения АЦП будет NaN. Это сделано для гашения так сказать "обратного хода луча", чтобы на графике последняя точка не соединялась с первой. Этот кусок схемы я слизал у буржуев, у которых покупал один девайс. В месте с ним было программное обеспечение на labview c исходным кодом. Этот кусок кода был не задействован в моей программе. Сейчас решил расширить функционал этого девайса. И вот застопорился на этих провалах. Не думаю, чтобы программисты этой конторы сделали ЛАЖУ! И почему именно NaN должен проскакивать? Даже если он проскакивает, то как от этого избавиться? Попробую с массивом и гляну, что там. Но на 99% уверен там будет нормально.
Валерон
beginner
beginner
Сообщения: 23
Зарегистрирован: 28 май 2017, 17:20
Версия LabVIEW: 14.0
Контактная информация:

Re: Провалы в XY графике

Сообщение Валерон »

Может labview не справляется с такой скорость в 50 мс? Мало вероятно.
Вложения
Проскок.png
Проскок.png (1.26 КБ) 10597 просмотров
Провал_2.png
Провал_2.png (1.37 КБ) 10597 просмотров
NaN.png
NaN.png (3.56 КБ) 10597 просмотров
Валерон
beginner
beginner
Сообщения: 23
Зарегистрирован: 28 май 2017, 17:20
Версия LabVIEW: 14.0
Контактная информация:

Re: Провалы в XY графике

Сообщение Валерон »

Как-то не правильно отправил предыдущее сообщение.
Собрал массив, посмотрел и ...... лучше не стало :cry: Провалы возникают, когда проскакивают значения. NaN поступает четко, как и было задано на значении 4000 и больше ни где. Если предположить, что значения в строке поступают корректные, в чем может быть проблема? В com порте?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Провалы в XY графике

Сообщение IvanLis »

Валерон писал(а):Как-то не правильно отправил предыдущее сообщение.
Собрал массив, посмотрел и ...... лучше не стало :cry: Провалы возникают, когда проскакивают значения. NaN поступает четко, как и было задано на значении 4000 и больше ни где. Если предположить, что значения в строке поступают корректные, в чем может быть проблема? В com порте?
Измените алгоритм работы программы. Т.е. в массив вставлять данные только в случае когда EOS=false, а когда True не вставляйте - игнорируйте это значение. Тогда и на графике они исчезнут.
Валерон
beginner
beginner
Сообщения: 23
Зарегистрирован: 28 май 2017, 17:20
Версия LabVIEW: 14.0
Контактная информация:

Re: Провалы в XY графике

Сообщение Валерон »

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

Re: Провалы в XY графике

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

Посмотрите настройки XY Graph, закладку Plot и выберите правильный Interpolation, чтобы на графике точки соединялись между собой. Провал на графике из-за того, что в отсутствуют данные в массиве для X и Y в конкретном месте.
Вложения
Безымянный.png
Последний раз редактировалось Alex Dem 28 май 2017, 23:06, всего редактировалось 1 раз.
Валерон
beginner
beginner
Сообщения: 23
Зарегистрирован: 28 май 2017, 17:20
Версия LabVIEW: 14.0
Контактная информация:

Re: Провалы в XY графике

Сообщение Валерон »

Настройки графика несколько раз перебирал.Толку ни какого. Сейчас промониторил com порт двумя программами и выяснил, что данные идут с пропусками, поэтому XY график не соединяет линией через значение. Буду разбираться с программой МК. :suicide:
Всем откликнувшимся большое спасибо. Тему можно закрыть.
Валерон
beginner
beginner
Сообщения: 23
Зарегистрирован: 28 май 2017, 17:20
Версия LabVIEW: 14.0
Контактная информация:

Re: Провалы в XY графике

Сообщение Валерон »

Хочу поправиться на счет высказывания XY графика. Точки в любом случае будут соединяться. А на том графике. который я показал в своих постах хорошо визуально контролировать корректность поступающих данных.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Провалы в XY графике

Сообщение Kosist »

Валерон писал(а):Прошу прошения уважаемый IvanLis.
А разве у меня не такой алгоритм?
Нет, не такой. Вы в любом случае в массив добавляете данные - будь то число, или же NaN. А IvanLis советует не добавлять данные в массив вообще (элементарно попробуйте протестить все при помощи Case Structure), если то условие не выполняется.
Мы делили апельсин - много наших полегло...
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Провалы в XY графике

Сообщение Kosist »

Валерон писал(а):И вот застопорился на этих провалах. Не думаю, чтобы программисты этой конторы сделали ЛАЖУ!
Иногда даже примеры от NI содержат лажу. Везде работают люди, которые могут допустить ошибку. Не говорю, что это точно тот случай, но лучше не брать на 100% веру то, что сделали другие (хотя иногда нужна какая-то точка отсчета, от которой можно оттолкнуться и сказать "да, это сделано тем то и тем то, поэтому будет точно работать"). Чуть другой код, чуть другое железо, чуть другая винда, чуть другое время тестирования - и иногда результат получается довольно разный )
Мы делили апельсин - много наших полегло...
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Провалы в XY графике

Сообщение dadreamer »

Валерон, уверены, что на каждой итерации цикла нужно чистить приёмный буфер? Обычно буфер чистится 1 раз - при инициализации порта (вне цикла). И то эта операция нужна в редких случаях. Почти всегда буфер вы сами разбираете с помощью VISA Read, читая чаще раза в 2-3, чем посылка доходит. Кроме прочего, у вас VISA Read обеспечивает задержку цикла - когда в буфере пусто, задержка равна величине таймаута. А вы ещё туда засадили задержку в 45 мс. Ну, и судя по диаграмме, у вас не обрабатываются случаи, когда приходит пустая (таймаут или ошибка протокола) или некорректная строка.
Валерон
beginner
beginner
Сообщения: 23
Зарегистрирован: 28 май 2017, 17:20
Версия LabVIEW: 14.0
Контактная информация:

Re: Провалы в XY графике

Сообщение Валерон »

Уважаемые спецы, спасибо еще раз за советы. Но я думаю, что пока не добьюсь нормальной последовательности данных с МК, обсуждение бессмысленно. Дело в том, что данные с этого забугорного девайса (куплен не в китае, а у америкосов) идут в протоколе SPI и с помощью МК я сделал конвертер в USB. Теперь надо определить или этот девайс выдает пропуски или моя программа в МК "глотает" данные. Для этого нужен какой-нибудь логический анализатор SPI, а у меня пока его нет. Жаль, что напрямую SPI не воткнуть в комп, быстрее можно было бы вычислить.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Провалы в XY графике

Сообщение dadreamer »

Валерон писал(а):Для этого нужен какой-нибудь логический анализатор SPI
Осциллограф в зубы и вперёд :wink:
Валерон писал(а):Жаль, что напрямую SPI не воткнуть в комп, быстрее можно было бы вычислить.
Есть же готовое, зачем лишний раз изобретать велосипед? Например, https://www.chipdip.ru/product/usb-spi-click Да много таких переходников, загуглите.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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