Генерация низкочастотных прямоугольных импульсов через ЦАП

Захват, обработка и генерирование сигнала

Генерация низкочастотных прямоугольных импульсов через ЦАП

Postby Andrey Petrzhik on 09 Oct 2018, 19:24

Добрый день!
Встала задачка генерить N прямоугольных импульсов 0-5В для шагового двигателя на различной частоте.
Использую ЦАП NI PCI-6221 с подключенной коробкой BNC-2120. К коробке на ao1 подцепил аналоговый осциллограф.
На 1000Гц всё работает нормально, на 100 хуже, на 10Гц какой-то бардак творится.
Причём при генерации синуса или любого другого сигнала c изменением амплитуды не скачком проблем нет!
Что же не так? Должна быть какая-то очень простая ошибка...
Спасибо большое за помощь!
Фотки с осциллографа и программу прикладываю.
Attachments
10-100Hz.jpg
program_prntscrn.jpg
analog_generator.vi
(16.81 KiB) Downloaded 23 times
Andrey Petrzhik
beginner
beginner
 
Posts: 46
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrew Lunev on 09 Oct 2018, 19:36

Вы уверены, что проблема в генерации, а не в осциллографе? Может он на таком режиме развертки какие-то параметры не держит? Ему лет то уже...
Заведите выход на AI вход той же платы и проверьте запись, сравните с результатом не осциллографе.
User avatar
Andrew Lunev
leader
leader
 
Posts: 871
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2018
Karma: 250
hardware I/O VIP teachers

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrey Petrzhik on 09 Oct 2018, 20:22

Не то чтобы уверен, но этим осциллографом пользуемся часто (например 50Гц помехи от 220V сети на нём очень хорошо видны)... да, попробую снять сигнал на входе через АЦП. Спасибо.
Andrey Petrzhik
beginner
beginner
 
Posts: 46
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrey Petrzhik on 09 Oct 2018, 20:56

Упс... первая прикидка дала что походу всё нормально работает... правда что-ли? Закоротил ao1 на ai5... Вот бы никогда не подумал, что осциллограф может не давать измерить корректно 10-100Гц...
Attachments
10Hz-daq_input.jpg
Andrey Petrzhik
beginner
beginner
 
Posts: 46
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrew Lunev on 09 Oct 2018, 23:38

На всех трех картинках видно, что сигнал затухает по экспоненте. Просто на малых периодах видны только очень малые части экспоненты и поэтому создается впечатление, что полки сигнала прямые, но все имеют наклон и чем период развертки больше, тем больше это заметно. Явно неисправность развертки осциллографа, чинить его надо...
User avatar
Andrew Lunev
leader
leader
 
Posts: 871
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2018
Karma: 250
hardware I/O VIP teachers

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Blackman on 10 Oct 2018, 02:14

Проверьте тип входа. Должен быть открытый (DC+AC).
Attachments
OSCInputTYPE.png
Blackman
leader
leader
 
Posts: 802
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 234
VIP

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrey Petrzhik on 16 Oct 2018, 00:03

Blackman, так и есть, причём я тыкал такую же кнопочку левее (там где времена ставишь), а эту у Y1 не заметил... позор мне:(
Да, решил тут для генерации использовать не ЦАП, а счётчик, ибо это вроде логичнее. Накидал программку, но что-то она сильно жрёт процессор, когда долго измеряешь (~10 минут) на 1000Гц сигнал и пишешь его на график. Кому не лень, гляньте пожалуйста. Думаю какие-то тайминги надо выставить, или например слишком много точек на график кидаю... а может вообще лучше потоково писать в файл, а не потом его сохранять? А так вроде стабильно генерится, кому интересно характерный кусочек графика прикладываю.

Спасибо за внимание и за помощь!
Attachments
impulses.vi
(30.88 KiB) Downloaded 13 times
1.jpg
2.jpg
10Hz_1000Hz_10min.png
Andrey Petrzhik
beginner
beginner
 
Posts: 46
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Vitekkz88 on 16 Oct 2018, 06:54

Для анализа графиков с миллионом отсчетов лучше использовать отдельную программу. Так же, Ваша программа будет замедляться по мере забивания сдвигового регистра. Вы же в нём данные копите, верно? И каждый раз LabVIEW приходится раздувать этот регистр и заниматься копированием + добавкой новой порции данных. Если на десятках тысяч отчетов это будет незаметно, то на сотнях тысяч это будет заметно. Вот и прикидывайте: фунция вам
Разделите Вашу программу на:
а)цикл генерации данных
б)цикл накопления данных
в)цикл записи данных
г)цикл визуализации данных(показывайте не каждую входящую выборку, а каждую десятую например. Если данные поступают
динамично, то пользователь не успеет на глаз ничего оценить).
д)цикл анализа данных(в этот цикл добавите логику принятия решений при тех или иных зафиксированных параметрах, какие-то измерения и прочее).
Передачу данных между циклами делайте с помощью очередей. Вот тут пример посмотрите, почти всё что нужно, осталось запись организовать:
viewtopic.php?f=108&t=7732&start=75#p62401
По поводу записи данных: посмотрите еще возможности записи в бинарный файл или в tdms.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrey Petrzhik on 14 Nov 2018, 12:21

Всем привет!
Оттестировал программку (основу которой я выкладывал выше) на USB-6218: вроде всё хорошо.
Но это дорогая плата, временно взятая для экспериментов из другой установки.
Прочитал что в принципе можно использовать и дешевую USB-6001 для моих целей, и заказал её.
Сегодня её получил, но почему-то не могу настроить PFI... мне кажется какая-то глупость, ибо по мануалю всё должно работать.
Кто знает, подскажите пожалуйста что можно сделать чтобы в выборе каунтера появился PFI0.

В мануале "Using PFI as a Counter Source You can configure PFI 0 or PFI 1 as a source for counting digital edges. In this mode, either rising- or falling-edges are counted using a 32-bit counter." Мануаль, стр. 23: http://www.ni.com/pdf/manuals/374259a.pdf
Как же мне отконфигить PFI0 на counter source? В NI MAX такой опции не нашел.

Labview 12 x64
NI DAQmx 15-11f3

Спасибо большое!
Attachments
no_count_source.jpg
Andrey Petrzhik
beginner
beginner
 
Posts: 46
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrey Petrzhik on 14 Nov 2018, 12:53

В NI Max изменение частоты не активно, при нажатии кнопки старт вроде как ничего не происходит (но осциллограф пока не цеплял на выход порта). Да, Daqmx 15.1.1 совместим как с Labview 12, так и с платой usb-6001. Не думаю что проблема тут. Неужели правда не поддерживается счётчик? Через DAQ Assistant выдать импульсы также не удаётся...
Attachments
nimax.jpg
daq_assist.jpg
daq_assist2.jpg
Andrey Petrzhik
beginner
beginner
 
Posts: 46
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Blackman on 14 Nov 2018, 17:27

У этого устройства нет выходов для счетчиков Counter Output - CO. Только два входа для счетчиков Counter Input - CI.
"Using PFI as a Counter Source You can configure PFI 0 or PFI 1 as a source for counting digital edges...."
Используя PFI как Источник сигналов Счетчика Вы можете задавать PFI 0 или PFI 1 как источник (сигнала) для счета количества фронтов входных цифровых сигналов.
Blackman
leader
leader
 
Posts: 802
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 234
VIP

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrey Petrzhik on 15 Nov 2018, 14:41

Ага, ещё раз перечитал, так и есть... буду тогда как в начале темы буферизированный аналог генерить...
Andrey Petrzhik
beginner
beginner
 
Posts: 46
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrey Petrzhik on 16 Nov 2018, 23:49

Уважаемая общественность, а вот ещё хотелось бы вопросик задать...

Читаю данные с тензодатчика, а он выдаёт значения в районе единиц мВ, которые даже крутая 16-битная плата NI USB-6218 читает на пределе погрешности. Поэтому полученные данные нужно усреднять: скажем в секунду читаем 10000 точек, и оставляем из них 50 усреднённых.

Сейчас у меня данные забираются из буфера платы раз в секунду, и как взять среднее за секунду - понятно. Для этого есть "Mean". Но таким усреднением можно замыть какой-то всплеск натяга... Как бы разбить массив данных, полученных за 1с, на 50 частей, и из каждой части взять среднее? Вроде алгоритм должен быть не сложный, но никак не соображу... подскажите кому не лень пожалуйста. Важно именно выбрасывать лишние данные (слишком большой массив будет), а не просто усреднять по стольки-то точкам как я когда-то делал для сглаживания производной ВАХ.

P.S. Оффтоп: А знает кто есть какие-нить платы от National Instruments, заточенные под считывание не +-10В сигнала АЦП, а скажем +-100мВ? Например L-Card платы вроде как имеют переключатели диапазонов... или ещё какие аналоги бывают? Это так, на будущее хотел бы знать...
Attachments
usrednenie_for_Rdiff.jpg
usrednenie_for_Rdiff.jpg (24.04 KiB) Viewed 281 times
5000имп_подъем10Гц_mean1s_10kHz.jpg
buffer_1s.jpg
razrivalka_proga_var_1s_mean.jpg
Andrey Petrzhik
beginner
beginner
 
Posts: 46
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby Andrew Lunev on 17 Nov 2018, 01:30

Плата NI USB-6218 имеет настраиваемый диапазон входного сигнала. Варианты: ±0.2 V, ±1 V, ±5 V, ±10 V. Есть другие платы с диапазоном от ±0.1 V и разрядностью 18 бит, это если USB рассматривать. Для других вариантов подключения есть и 24 битные платы.
Для тензодатчиков, если хотите получать нормальные точные измерения, то лучше использовать специализированные модули, у них требуемый диапазон, разрядность 24 бита, запитка датчика, и что очень важно - автоматическая компенсация изменения напряжения питания тензомоста.
Не понимаю, зачем вычитывать данные раз в секунду и потом возиться с разбиением? Не проще просто настроить вычитывание 50 раз в секунду и делать осреднение по всем принятым измерениям? Получите те же 50 усредненных измерений за секунду. Отбрасывать измерения глупо, лишних измерений не бывает, всегда дополнительные измерения можно использовать для улучшения точности. Если есть желание, то по этим усредненным 50 точкам можно еще и скользящим средним пройтись...
User avatar
Andrew Lunev
leader
leader
 
Posts: 871
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2018
Karma: 250
hardware I/O VIP teachers

Re: Генерация низкочастотных прямоугольных импульсов через Ц

Postby taras_33 on 18 Nov 2018, 04:41

Полностью согласен с Andrew Lunev. Если вы явно не указали входной диапазон, то он подстраивается автоматически, согласно параметрам созданной вами задачи, посмотрите на скриншот, который я сделал при симуляции NI 6218 и посмотрел min/max range кстати она совсем уж не такая крутая, так средненькая :D Как можно видеть, я "запрашивал" 0.02 Вольт, а получил минимально возможный для NI 6218 +/-0.2V
Load Cell.png


Для этого используются, Strain Gage Input Signal Conditioner, типа таких Тут вам и запитка датчика и фильтрация и компенсация...
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
User avatar
taras_33
developer
developer
 
Posts: 256
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 121
CLD VIP

Next

Return to Обработка сигнала

Who is online

Users browsing this forum: No registered users and 2 guests

cron