Помогите чайнику

Простейшие вопросы в области инженерной разработки
Ответить
beginner
interested
interested
Сообщения: 7
Зарегистрирован: 24 ноя 2009, 12:24
Версия LabVIEW: 2009
Контактная информация:

Помогите чайнику

Сообщение beginner »

Передо мной стоит задача получать сигнал определённый промежуток времени. Для примера 10 мс. И в течении этих самых 10 мс. наблюдать как этот сигнал изменяется.
Для простоты я прошу объяснить на моем примере как это работает. Картинки и саму программу прикладываю.
Программка получает новые значения через 1 мс. в течении 10 раз. А я хочу что бы она получала значения в течении 10 мс. т.к. за 1 мс. может прилететь 2 и более значений.
И еще один вопрос. Я для интереса попытался измерить сколько времени необходимо для выполнения программы. Измерял двумя способами с помощью Time Count ms. и с помощью Time Stamp и получил два разных результата.(результаты выделил красным) Наверное я что-то не понимаю. Объясните пожалуйста.
Заранее большое спасибо.
Picture1.jpg
Вложения
Picture2.jpg
time.vi
(14.69 КБ) 124 скачивания
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Помогите чайнику

Сообщение Eugen Graf »

В реальных условиях используется Timeout (а не Wait) при чтении поточечного сигнала.
Либо же считываются 10 точек сразу массивом.

В Windows OS минимальное разрешение по времени 1 мс, но даже при использовании задержки в 10 мс гарантий правильного выполнения нет, т.к. винда распределяет время между параллельными процессами динамически + по приоритетам.

Чтобы задержка была гарантированной, нужно использовать систему Real Time.
beginner
interested
interested
Сообщения: 7
Зарегистрирован: 24 ноя 2009, 12:24
Версия LabVIEW: 2009
Контактная информация:

Re: Помогите чайнику

Сообщение beginner »

Я думаю что я не совсем корректно объяснил мою задачу. Мне необходимо получать сигнал постоянно в течении определенного промежутка времени. Например 10мс., 1сек., 10сек., 1 мин.
Примерно вот так.смотри Graphic1

[Расширение tif было запрещено, вложение больше недоступно.]

А на своем примере я хотел показать что я лишь могу сделать ВП который может получать только одно значение через определенный промежуток времени 1мс. (т.е. с задержкой)
Вы абсолютно правы мне необходимо Real Time measurments. Не могли бы вы на примере показать как сделать ВП который постоянно получает значение например в течении 10 сек или как вам угодно .(с помощью Real Time или без).
Я посмотрел моя плата серии Real Time DAQ. T.e. я как понимаю могу воспользоваться функциями системы Real Time. А как пользоваться этой системой? Это программное обеспечение, библиотека или модуль какой-то? Входит ли система Real Time в основной пакет LabView Professional Development System?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Помогите чайнику

Сообщение Eugen Graf »

Вроде становится более понятно, но ещё не совсем.

Я предлагаю использовать буфферное чтение сигнала. То есть с ВП "отправляется сигнал" на катру сбора данных, она их собирает в массив и через определённое время пересылает этот массив обратно в ВП.
В ВП весь этот массив разом отображается на графике. При этом можно достичь огромных частот и точности по времени.

Если же считывать сигнал по одной точке за определённый промежуток времени, то тайминг должен регулироваться в ВП. И как раз здесь могут возникнуть проблемы с частотой сбора и точностью по времени.

Модуль Real Time не входит в LabView Professional Development System и стоит довольно дорого, плюс нужно дополнительное железо.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Помогите чайнику

Сообщение mzu2006 »

Да, судя по задаче RT модуль не нужен.
А если потребуется, то можно запустить с минимумом доп железа: на другом PC
Вот похожий Топик у нас: link
beginner
interested
interested
Сообщения: 7
Зарегистрирован: 24 ноя 2009, 12:24
Версия LabVIEW: 2009
Контактная информация:

Re: Помогите чайнику

Сообщение beginner »

Для того что бы все стало более понятнее я постараюсь объяснить более подробно. Я аспирант и моя тема биохимия. Мне необходимо сделать программу которая управляет электродом через Labview.
Этот электрод детектирует выделение кислорода когда образец освещается вспышками света. Что бы сильно не забивать голову в вкратце объясню принцип работы. Электрод постоянно поляризуется напряжением 750 mV. И когда образец освещается вспышкой света происходит выделение кислорода. Электрод детектирует это выделение в мили вольтах и по разности можно судить о количестве и интенсивности выделевшегося кислорода. Этот процесс длиться от 1 до 10 ms. И в течении этого времени необходимо непрерывно наблюдать выделение кислорода
Я поделил свою задачу на две части. 1 – Научиться производить вспышки. И эта задача решена. 2-получать сигнал, наблюдать его на мониторе и записывать.
Для простоты я взял фотодиод и освещая его научился получать сигнал.Но я ни как не могу получать сигнал постоянно определенный промежуток времени.

У меня есть еще один вопрос. На данный момент я испольную NI-6534Digital card. Но для решения моей проблемы мне нужна карта которая понимает как цифровой сигнал так и аналоговый сигнал. Прошу посоветовать карту для моих целей
Большое спасибо за советы.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Помогите чайнику

Сообщение mzu2006 »

Нужно мерять по стробу с того, что у тебя включает лампочку, целый буффер. Смотри примеры на DAQmx в районе Measurment Fundamentals и Timing and Triggering.

Посоветовать тип карточки можно только если знать сколько отсчётов тебе нужно собрать за эти 10ms. ТЫ ведь потом получившуюся кривую (экспоненту?) фитовать будешь, так? Сколько тебе нужно точек, чтобы зафитовать свою кривую с необходимой тебе погрешностью? Сделай примитивное моделирование...
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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