Передо мной стоит задача получать сигнал определённый промежуток времени. Для примера 10 мс. И в течении этих самых 10 мс. наблюдать как этот сигнал изменяется.
Для простоты я прошу объяснить на моем примере как это работает. Картинки и саму программу прикладываю.
Программка получает новые значения через 1 мс. в течении 10 раз. А я хочу что бы она получала значения в течении 10 мс. т.к. за 1 мс. может прилететь 2 и более значений.
И еще один вопрос. Я для интереса попытался измерить сколько времени необходимо для выполнения программы. Измерял двумя способами с помощью Time Count ms. и с помощью Time Stamp и получил два разных результата.(результаты выделил красным) Наверное я что-то не понимаю. Объясните пожалуйста.
Заранее большое спасибо.
Помогите чайнику
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Помогите чайнику
В реальных условиях используется Timeout (а не Wait) при чтении поточечного сигнала.
Либо же считываются 10 точек сразу массивом.
В Windows OS минимальное разрешение по времени 1 мс, но даже при использовании задержки в 10 мс гарантий правильного выполнения нет, т.к. винда распределяет время между параллельными процессами динамически + по приоритетам.
Чтобы задержка была гарантированной, нужно использовать систему Real Time.
Либо же считываются 10 точек сразу массивом.
В Windows OS минимальное разрешение по времени 1 мс, но даже при использовании задержки в 10 мс гарантий правильного выполнения нет, т.к. винда распределяет время между параллельными процессами динамически + по приоритетам.
Чтобы задержка была гарантированной, нужно использовать систему Real Time.
-
- interested
- Сообщения: 7
- Зарегистрирован: 24 ноя 2009, 12:24
- Версия LabVIEW: 2009
- Контактная информация:
Re: Помогите чайнику
Я думаю что я не совсем корректно объяснил мою задачу. Мне необходимо получать сигнал постоянно в течении определенного промежутка времени. Например 10мс., 1сек., 10сек., 1 мин.
Примерно вот так.смотри Graphic1 А на своем примере я хотел показать что я лишь могу сделать ВП который может получать только одно значение через определенный промежуток времени 1мс. (т.е. с задержкой)
Вы абсолютно правы мне необходимо Real Time measurments. Не могли бы вы на примере показать как сделать ВП который постоянно получает значение например в течении 10 сек или как вам угодно .(с помощью Real Time или без).
Я посмотрел моя плата серии Real Time DAQ. T.e. я как понимаю могу воспользоваться функциями системы Real Time. А как пользоваться этой системой? Это программное обеспечение, библиотека или модуль какой-то? Входит ли система Real Time в основной пакет LabView Professional Development System?
Примерно вот так.смотри Graphic1 А на своем примере я хотел показать что я лишь могу сделать ВП который может получать только одно значение через определенный промежуток времени 1мс. (т.е. с задержкой)
Вы абсолютно правы мне необходимо Real Time measurments. Не могли бы вы на примере показать как сделать ВП который постоянно получает значение например в течении 10 сек или как вам угодно .(с помощью Real Time или без).
Я посмотрел моя плата серии Real Time DAQ. T.e. я как понимаю могу воспользоваться функциями системы Real Time. А как пользоваться этой системой? Это программное обеспечение, библиотека или модуль какой-то? Входит ли система Real Time в основной пакет LabView Professional Development System?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Помогите чайнику
Вроде становится более понятно, но ещё не совсем.
Я предлагаю использовать буфферное чтение сигнала. То есть с ВП "отправляется сигнал" на катру сбора данных, она их собирает в массив и через определённое время пересылает этот массив обратно в ВП.
В ВП весь этот массив разом отображается на графике. При этом можно достичь огромных частот и точности по времени.
Если же считывать сигнал по одной точке за определённый промежуток времени, то тайминг должен регулироваться в ВП. И как раз здесь могут возникнуть проблемы с частотой сбора и точностью по времени.
Модуль Real Time не входит в LabView Professional Development System и стоит довольно дорого, плюс нужно дополнительное железо.
Я предлагаю использовать буфферное чтение сигнала. То есть с ВП "отправляется сигнал" на катру сбора данных, она их собирает в массив и через определённое время пересылает этот массив обратно в ВП.
В ВП весь этот массив разом отображается на графике. При этом можно достичь огромных частот и точности по времени.
Если же считывать сигнал по одной точке за определённый промежуток времени, то тайминг должен регулироваться в ВП. И как раз здесь могут возникнуть проблемы с частотой сбора и точностью по времени.
Модуль Real Time не входит в LabView Professional Development System и стоит довольно дорого, плюс нужно дополнительное железо.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Помогите чайнику
Да, судя по задаче RT модуль не нужен.
А если потребуется, то можно запустить с минимумом доп железа: на другом PC
Вот похожий Топик у нас: link
А если потребуется, то можно запустить с минимумом доп железа: на другом PC
Вот похожий Топик у нас: link
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- interested
- Сообщения: 7
- Зарегистрирован: 24 ноя 2009, 12:24
- Версия LabVIEW: 2009
- Контактная информация:
Re: Помогите чайнику
Для того что бы все стало более понятнее я постараюсь объяснить более подробно. Я аспирант и моя тема биохимия. Мне необходимо сделать программу которая управляет электродом через Labview.
Этот электрод детектирует выделение кислорода когда образец освещается вспышками света. Что бы сильно не забивать голову в вкратце объясню принцип работы. Электрод постоянно поляризуется напряжением 750 mV. И когда образец освещается вспышкой света происходит выделение кислорода. Электрод детектирует это выделение в мили вольтах и по разности можно судить о количестве и интенсивности выделевшегося кислорода. Этот процесс длиться от 1 до 10 ms. И в течении этого времени необходимо непрерывно наблюдать выделение кислорода
Я поделил свою задачу на две части. 1 – Научиться производить вспышки. И эта задача решена. 2-получать сигнал, наблюдать его на мониторе и записывать.
Для простоты я взял фотодиод и освещая его научился получать сигнал.Но я ни как не могу получать сигнал постоянно определенный промежуток времени.
У меня есть еще один вопрос. На данный момент я испольную NI-6534Digital card. Но для решения моей проблемы мне нужна карта которая понимает как цифровой сигнал так и аналоговый сигнал. Прошу посоветовать карту для моих целей
Большое спасибо за советы.
Этот электрод детектирует выделение кислорода когда образец освещается вспышками света. Что бы сильно не забивать голову в вкратце объясню принцип работы. Электрод постоянно поляризуется напряжением 750 mV. И когда образец освещается вспышкой света происходит выделение кислорода. Электрод детектирует это выделение в мили вольтах и по разности можно судить о количестве и интенсивности выделевшегося кислорода. Этот процесс длиться от 1 до 10 ms. И в течении этого времени необходимо непрерывно наблюдать выделение кислорода
Я поделил свою задачу на две части. 1 – Научиться производить вспышки. И эта задача решена. 2-получать сигнал, наблюдать его на мониторе и записывать.
Для простоты я взял фотодиод и освещая его научился получать сигнал.Но я ни как не могу получать сигнал постоянно определенный промежуток времени.
У меня есть еще один вопрос. На данный момент я испольную NI-6534Digital card. Но для решения моей проблемы мне нужна карта которая понимает как цифровой сигнал так и аналоговый сигнал. Прошу посоветовать карту для моих целей
Большое спасибо за советы.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Помогите чайнику
Нужно мерять по стробу с того, что у тебя включает лампочку, целый буффер. Смотри примеры на DAQmx в районе Measurment Fundamentals и Timing and Triggering.
Посоветовать тип карточки можно только если знать сколько отсчётов тебе нужно собрать за эти 10ms. ТЫ ведь потом получившуюся кривую (экспоненту?) фитовать будешь, так? Сколько тебе нужно точек, чтобы зафитовать свою кривую с необходимой тебе погрешностью? Сделай примитивное моделирование...
Посоветовать тип карточки можно только если знать сколько отсчётов тебе нужно собрать за эти 10ms. ТЫ ведь потом получившуюся кривую (экспоненту?) фитовать будешь, так? Сколько тебе нужно точек, чтобы зафитовать свою кривую с необходимой тебе погрешностью? Сделай примитивное моделирование...
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение