LabView:вопросы и ответы
Децибел - это логарифмическая функция, и в дополнение относительная. Ничто не мешает обработать данные, чтобы массив стал этим логарифмом, какой вам нужен. Оси графика можно переименовать. А можно использовать другой тип графика. Исходник бы, и массив данных, с которым я бы мог поиграться.
- Реклама
- Сообщения: 17
- Зарегистрирован: Сб мар 19, 2011 18:04:39
Массива данных нет - я не умею записывать в файл. Могу попробовать сделать вручную..
Скажу пока только, что этот массив можно представить как последовательность байт HI и LO (в двоичной системе будет понятнее), например:
HI_______LO
00000011 11000000
00101011 11000000
01011010 01000000
... и т.д.
Старшие два бита LO значащие, остальные - нет.
Скажу пока только, что этот массив можно представить как последовательность байт HI и LO (в двоичной системе будет понятнее), например:
HI_______LO
00000011 11000000
00101011 11000000
01011010 01000000
... и т.д.
Старшие два бита LO значащие, остальные - нет.
- Вложения
-
- Test_FFT.rar
- (25.17 КБ) 203 скачивания
- Сообщения: 17
- Зарегистрирован: Сб мар 19, 2011 18:04:39
Вот массив данных - синусоида. Время между отсчётами = 1 мс.
- Вложения
-
- Синусоида.xls
- (25.5 КБ) 228 скачиваний
Прошу прощения, что долго не отвечал. Было некогда. К сожалению, в данных функциях я немного плаваю. Но могу посоветовать просмотреть примеры (В начальном окне "Find Examples"), там есть похожие на ваши задачи - целый раздел (Analising and process signal -> FFT and fraquency analisis). Возможно почерпнёте что-то полезное
Я ещё поиграюсь с вашей задачей. И, я так понял, вам логарифм. шкала нужна во втором графике? или нет?
Я ещё поиграюсь с вашей задачей. И, я так понял, вам логарифм. шкала нужна во втором графике? или нет?
- Сообщения: 17
- Зарегистрирован: Сб мар 19, 2011 18:04:39
Извините, я тоже опоздал с ответом - исправлял ошибки
Теперь всё работает почти как надо.
Да, во втором графике нужна логарифмическая шкала. Дело в том, что логарифмический масштаб по обеим осям я поставил, но хочется как у осциллографа в режиме FFT: по оси Y - в децибелах (допустим, относительно чего это посчитать, я определюсь), по оси Х - в герцах. Возможно ли переименовать оси графиков? Как это сделать?
Третий график вообще "погоду" показывает, не обращайте внимания.
Да, во втором графике нужна логарифмическая шкала. Дело в том, что логарифмический масштаб по обеим осям я поставил, но хочется как у осциллографа в режиме FFT: по оси Y - в децибелах (допустим, относительно чего это посчитать, я определюсь), по оси Х - в герцах. Возможно ли переименовать оси графиков? Как это сделать?
Третий график вообще "погоду" показывает, не обращайте внимания.
- Реклама
Чтобы была возможность переименовывать оси, сначала необходимо иметь информацию о дискретизации. У вас она отсутствует. Поэтому по оси Х у вас попугаи. Посмотрите пример "Power Spectrum Measurement". Если я правильно понимаю, вам нужно именно так?
- Вложения
-
- Test_FFT_lv11.zip
- (16.98 КБ) 231 скачивание
-
- Spectral-FrontPanel1.png
- (26.44 КБ) 551 скачивание
-
- Spectral-BlockDiagram1.png
- (21.38 КБ) 678 скачиваний
- Сообщения: 17
- Зарегистрирован: Сб мар 19, 2011 18:04:39
Да, именно так. Огромное вам спасибо, это стоило бы мне кучу времени.
Ну что же, очевидно, что без глубоких знаний LV начинающему даже такую задачу не решить. Визуальное программирование требует особых навыков...
Ещё раз спасибо.
Ну что же, очевидно, что без глубоких знаний LV начинающему даже такую задачу не решить. Визуальное программирование требует особых навыков...
Ещё раз спасибо.
Orinoko, а как организовать прием строки NMEA от GPS, декодировать ее и вывести данные на экран?\
Спасибо.
Спасибо.
foxit
Ну вы молодец, конечно. Вопрос в стиле "как построить ракету". Отвечу: точно так же как принять любую другую строку. Декодируется NMEA по идентификатору вначале строки и номеру символа через запятую в строке (протокол стандартный и подробно описан на просторах интернета).
Ну вы молодец, конечно. Вопрос в стиле "как построить ракету". Отвечу: точно так же как принять любую другую строку. Декодируется NMEA по идентификатору вначале строки и номеру символа через запятую в строке (протокол стандартный и подробно описан на просторах интернета).
Успех - императив!
вы мне льститеDm-P писал(а):Да, именно так. Огромное вам спасибо, это стоило бы мне кучу времени.
Ну что же, очевидно, что без глубоких знаний LV начинающему даже такую задачу не решить. Визуальное программирование требует особых навыков...
Ещё раз спасибо.
Кстати, у ваших данных есть один нюанс. В них присутствует постоянная составляющая. Её нужно убрать. Иначе всегда будет присутствовать гармоника с частотой 0. И изменить при инициализации кластера Waveform переменную dT - это период следования семплов в секундах (там сейчас 0,001, а вам вроде надо 0,01)
http://edu.dvgups.ru/METDOC/GDTRAN/NTS/ ... ame/14.htmfoxit писал(а):Orinoko, а как организовать прием строки NMEA от GPS, декодировать ее и вывести данные на экран?\
Спасибо.
http://www.labviewportal.eu/viewtopic.php?f=142&t=4432
В роботиксе есть готовая функция по декодированию GPS
- Сообщения: 17
- Зарегистрирован: Сб мар 19, 2011 18:04:39
Понято. С этим для меня уже легче.orinoko писал(а): Кстати, у ваших данных есть один нюанс. В них присутствует постоянная составляющая. Её нужно убрать. Иначе всегда будет присутствовать гармоника с частотой 0. И изменить при инициализации кластера Waveform переменную dT - это период следования семплов в секундах (там сейчас 0,001, а вам вроде надо 0,01)
- Сообщения: 29
- Зарегистрирован: Ср май 30, 2012 16:49:20
Здравствуйте всем. Такой вопрос, есть устройство, которое в СОМ порт выдает число от 300 до 9000, в зависимости от измеренного параметра. Я с помощью функции scan fron string вывожу эти числа на waveform chart, проблема в том, что из-за помех и наводок иногда в порт прилетает число, которое намного превышает верхний диапазон, и ничего с аппаратной точки зрения я сделать не могу, в эту железку не залезть. Если подключиться терминалом, то это выглядит так:
соответственно когда этот мусор прилетает, на графике выбросы. Как в лабвью это фильтровать получше?
Код: Выделить всё
800
850
1000
1200
1256
2567
46986589065
2678
3000
3567
4321
5789
6538
98765470878466
7000
7476Есть несколько вариантов, в зависимости от реализации
1. Сравнивать с максимально возможным (9000) и, если такое пришло, его отбрасывать (игнорировать дальнейшую обработку - использовать case-структуру), или заменять его предыдущим корректным
2. Дополнительно, если пришедшая строка больше, чем например 4, то аналогично игнорировать.
Предыдущее значение внутри цикла можно получить, используя shift-регистр.
Лучше совместить, так как у вас может получиться переполнение и неверный результат.
1. Сравнивать с максимально возможным (9000) и, если такое пришло, его отбрасывать (игнорировать дальнейшую обработку - использовать case-структуру), или заменять его предыдущим корректным
2. Дополнительно, если пришедшая строка больше, чем например 4, то аналогично игнорировать.
Предыдущее значение внутри цикла можно получить, используя shift-регистр.
Лучше совместить, так как у вас может получиться переполнение и неверный результат.
- Сообщения: 29
- Зарегистрирован: Ср май 30, 2012 16:49:20
- Сообщения: 31
- Зарегистрирован: Чт янв 31, 2013 19:07:00
Доброго времени суток, уважаемые форумчане !
Недавно озадачился темой, чтобы подружить LabView и датчик DS18B20
Собрал по схеме с диодами и стабилитронами, нашел программу, называется именем самого датчика, там все прекрасно работает, этому я был рад)
Но вот в лабвью отказывается.. Из блока Visa configure serial port в режиме отладки все проходит со знаком ОК, а далее задерживается в блоке VISA Read и оттуда уже пошли ошибки.. Бьюсь уже долгое время, но пока без результатно
Так же не знаю какое число нужно ввести в блок byte count, по идее если датчик имеет 64-битный последовательный код, то нужно туда записать цифру 8 (байт), но тоже самое выходит..

файл проекта так же прилагаю http://gfile.ru/a7Nur
Недавно озадачился темой, чтобы подружить LabView и датчик DS18B20
Собрал по схеме с диодами и стабилитронами, нашел программу, называется именем самого датчика, там все прекрасно работает, этому я был рад)
Но вот в лабвью отказывается.. Из блока Visa configure serial port в режиме отладки все проходит со знаком ОК, а далее задерживается в блоке VISA Read и оттуда уже пошли ошибки.. Бьюсь уже долгое время, но пока без результатно
Так же не знаю какое число нужно ввести в блок byte count, по идее если датчик имеет 64-битный последовательный код, то нужно туда записать цифру 8 (байт), но тоже самое выходит..
файл проекта так же прилагаю http://gfile.ru/a7Nur
Датчик является устройством, которое само никогда ничего не отсылает на хост. Только по запросу. И где посылка запроса? И в byte count нужно указывать число байт, которое предполагается принять. Если на время таймаута, определённое при конфигурации, не пришло это количество байт, то и будет ошибка. Сначала вам нужно убедиться в том, что вся эта связка работает, из терминала пообщаться с датчиком. Далее вам нужно понять, что сразу датчик температуру не выводит. Сначала подать команду "конвертирование", не менее чем через 750 мс подать команду "чтение данных" , при этом не забыть, что принимаемый пакет весит 9 байт (последний CRC8), проверить CRC (мало ли), если всё окей, то взять первые 2 байта и их преобразовать для выдачи на индикатор.
Вот вам ссылка за русское описание DS18B20 http://www.ugolok-mastera.ru/ds18b20-rus_pic_v2.pdf
Опять же, многое зависит от схемы подключения, так как COM-порт - это RS232, а DS18B20 - это 1-Wire. Данное приложение (DS18B20.exe) скорее всего программно формирует сигналы, необходимые для работы с датчиком. Если мне кто-то ткнёт в алгоритм работы этой программы, то тогда можно и поиграться будет. Так как обычных команд запись-чтение, думается мне будет мало
Вот вам ссылка за русское описание DS18B20 http://www.ugolok-mastera.ru/ds18b20-rus_pic_v2.pdf
Опять же, многое зависит от схемы подключения, так как COM-порт - это RS232, а DS18B20 - это 1-Wire. Данное приложение (DS18B20.exe) скорее всего программно формирует сигналы, необходимые для работы с датчиком. Если мне кто-то ткнёт в алгоритм работы этой программы, то тогда можно и поиграться будет. Так как обычных команд запись-чтение, думается мне будет мало
- Сообщения: 31
- Зарегистрирован: Чт янв 31, 2013 19:07:00
Cпасибо за подробный ответ, теперь понял, что не все так просто)
Но как общаться с датчиком через лабвью так и не понятно..я прочел описание, для меня проще было бы написать программу на Си для микроконтроллера чем в LabView
А может есть какие то примерные наработки уже на эту тему, разве никто не пытался такую задумку осуществить ?
Но как общаться с датчиком через лабвью так и не понятно..я прочел описание, для меня проще было бы написать программу на Си для микроконтроллера чем в LabView
А может есть какие то примерные наработки уже на эту тему, разве никто не пытался такую задумку осуществить ?
- Сообщения: 31
- Зарегистрирован: Чт янв 31, 2013 19:07:00
Нашел в теме ваш проект "работа с портом", попытаюсь поразбираться в нем что и как. Как я понял он для нескольких датчиков, думаю для одного датчика все будет попроще немного
- Сообщения: 31
- Зарегистрирован: Чт янв 31, 2013 19:07:00
А почему мы в том проекте записываем в буфер и отправляем именно символ Т ? Это просто для примера ?
Как же все те алгоритмы для датчика на Си, как без инициализации вообще..
Как же все те алгоритмы для датчика на Си, как без инициализации вообще..


