генерация, DAQ

Захват, обработка и генерирование сигнала
Ответить
lv00
interested
interested
Сообщения: 7
Зарегистрирован: 15 май 2014, 14:48
Версия LabVIEW: 2012
Контактная информация:

генерация, DAQ

Сообщение lv00 »

Здравствуйте. У меня такая проблема.
Мне нужно сгенерировать синусоидальный сигнал на плате NI BNC-2120, и путем Output-Input считать его на этой же плате. При этом необходимо, чтобы можно было в реальном времени изменять параметры сигнала (амплитуду и частоту).
Я попробовал сделать подобный VI (см. рис.), но он работает с большой задержкой. Например, когда я меняю параметры в реальном времени, должно пройти порядка 10 секунд, прежде чем сигнал, считанный с Input тоже изменит свой вид.
Также, в самом начале, при первом запуске VI, хотя сигнал генерируется синусоидальный, примерно первые 10 секунд считывается какой-то кривой "затреуголенный" сигнал.

Давно копаюсь, чего только не пробовал, не могу понять, в чем проблема.

P.S. На рисунке вопросики - потому что скриншот сделан был на другом компьютере. Под вопросиками стоят "DAQmx Start Task" и "Create Task". За циклом (что тянется слева внизу) - то же самое.

Спасибо.
Вложения
gener.png
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: генерация, DAQ

Сообщение Andrew Lunev »

1. Задачу сбора данных и генерации желательно сделать в отдельных циклах, чтобы они не влияли друг на друга. Ваш вариант будет работать корректно только в строго определенной комбинации параметров.
2. Данные для генерации сначала подготавливаются в Simulate Signal, потом передаются в буфер платы и из него выводятся с заданной частотой. Пока все старые данные из буфера не выйдут новые на выход не поступят. Предположим, что частоты измерения и генерации у вас одинаковые. Тогда, раз вы считываете по 100 точек за период, то и генерировать в Simulate Signal должны те же 100 точек. У вас там скорее всего 1000, вот и будет запаздывание в 10 раз.
lv00
interested
interested
Сообщения: 7
Зарегистрирован: 15 май 2014, 14:48
Версия LabVIEW: 2012
Контактная информация:

Re: генерация, DAQ

Сообщение lv00 »

Сделал все в отдельных циклах (пробовал как параллельный вариант, так и последовательный с использованием Flat Sequence). Попробовал вместо Simulate Signal использовать генератор синусоидальной волны. На какие только значения не менял параметры генерации и считывания (samples per second, number of samples). Все равно результат лучше не становился.
Опишу подробнее.
Все то же самое: задержка порядка 10 секунд при смене амплитуды или частоты. В самом начале, при первом запуске, вместо синуса с Input снимается "пила" в течение ~10 секунд.
Если все это дело просмотреть через Highlight execution, при первом же проходе циклов, а именно при первом считывании, вылазит ошибка - что-то типа "Samples you try to read are not available, because they have been rewritten...", хотя это странно - ведь сэмплы были только что записаны в предыдущем цикле без ошибки. Смена параметров скорости считки и количества сэмплов так же не приносит результата.

:cry:
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: генерация, DAQ

Сообщение Andrew Lunev »

Начните с изучения теории...
Выкладывайте код, посмотрим, в чем именно проблема.
lv00
interested
interested
Сообщения: 7
Зарегистрирован: 15 май 2014, 14:48
Версия LabVIEW: 2012
Контактная информация:

Re: генерация, DAQ

Сообщение lv00 »

Andrew Lunev писал(а):Начните с изучения теории...
Выкладывайте код, посмотрим, в чем именно проблема.
Вопросики - то же самое, делал на другом компьютере.
Вложения
gener.png
Аватара пользователя
IvanLis

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

Re: генерация, DAQ

Сообщение IvanLis »

lv00 писал(а):Вопросики - то же самое, делал на другом компьютере.
у Вас DAQ не установлена, не все VI найдены
lv00
interested
interested
Сообщения: 7
Зарегистрирован: 15 май 2014, 14:48
Версия LabVIEW: 2012
Контактная информация:

Re: генерация, DAQ

Сообщение lv00 »

IvanLis писал(а):
lv00 писал(а):Вопросики - то же самое, делал на другом компьютере.
у Вас DAQ не установлена, не все VI найдены
Я знаю, я делал на другом компьютере, говорю же, где все было установлено. А скриншот сделал там, где ничего не установлено.
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: генерация, DAQ

Сообщение Andrew Lunev »

Я просил выложить код, а не картинку. Я же не могу заглянуть в SubVI, чтобы увидеть все параметры... Код выкладывайте для случая, когда у вас генерация и сбор идут в отдельных циклах. При вашем уровне знаний, сделать корректно в одном цикле у вас точно не получится.
lv00
interested
interested
Сообщения: 7
Зарегистрирован: 15 май 2014, 14:48
Версия LabVIEW: 2012
Контактная информация:

Re: генерация, DAQ

Сообщение lv00 »

Andrew Lunev писал(а):Я просил выложить код, а не картинку. Я же не могу заглянуть в SubVI, чтобы увидеть все параметры... Код выкладывайте для случая, когда у вас генерация и сбор идут в отдельных циклах. При вашем уровне знаний, сделать корректно в одном цикле у вас точно не получится.
Вложения
generation21flat.vi
(34.84 КБ) 127 скачиваний
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: генерация, DAQ

Сообщение Andrew Lunev »

1.
Andrew Lunev писал(а):Код выкладывайте для случая, когда у вас генерация и сбор идут в отдельных циклах.
2. Подпрограммы конфигурации не выложили.
lv00
interested
interested
Сообщения: 7
Зарегистрирован: 15 май 2014, 14:48
Версия LabVIEW: 2012
Контактная информация:

Re: генерация, DAQ

Сообщение lv00 »

Простите за задержку.

P.S. В архиве могут быть лишние файлы, упаковал все подряд.
Вложения
generation.rar
(285.54 КБ) 131 скачивание
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: генерация, DAQ

Сообщение Andrew Lunev »

Попробуйте этот вариант.
Запускать две программы одновременно. Одна генерит, другая измеряет. Можете потом объединить в одну, если надо.
Вложения
Voltage - Continuous Input Edited.vi
LV2012
(73.06 КБ) 142 скачивания
Voltage (non-regeneration) - Continuous Output Edited.vi
LV2012
(61.64 КБ) 141 скачивание
lv00
interested
interested
Сообщения: 7
Зарегистрирован: 15 май 2014, 14:48
Версия LabVIEW: 2012
Контактная информация:

Re: генерация, DAQ

Сообщение lv00 »

Andrew Lunev писал(а):Попробуйте этот вариант.
Запускать две программы одновременно. Одна генерит, другая измеряет. Можете потом объединить в одну, если надо.
Большое спасибо.

Я нашел для себя вариант решения проблемы - все стало отлично работать, как я поставил Event Structure на изменение параметров. А так же, сделал остановку задачи перед считыванием (что именно повлияло, точно не знаю, так как сделал все вместе).
Ответить

Вернуться в «Обработка сигнала»