Страница 1 из 2

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

Добавлено: 09 окт 2018, 19:24
Andrey Petrzhik
Добрый день!
Встала задачка генерить N прямоугольных импульсов 0-5В для шагового двигателя на различной частоте.
Использую ЦАП NI PCI-6221 с подключенной коробкой BNC-2120. К коробке на ao1 подцепил аналоговый осциллограф.
На 1000Гц всё работает нормально, на 100 хуже, на 10Гц какой-то бардак творится.
Причём при генерации синуса или любого другого сигнала c изменением амплитуды не скачком проблем нет!
Что же не так? Должна быть какая-то очень простая ошибка...
Спасибо большое за помощь!
Фотки с осциллографа и программу прикладываю.

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

Добавлено: 09 окт 2018, 19:36
Andrew Lunev
Вы уверены, что проблема в генерации, а не в осциллографе? Может он на таком режиме развертки какие-то параметры не держит? Ему лет то уже...
Заведите выход на AI вход той же платы и проверьте запись, сравните с результатом не осциллографе.

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

Добавлено: 09 окт 2018, 20:22
Andrey Petrzhik
Не то чтобы уверен, но этим осциллографом пользуемся часто (например 50Гц помехи от 220V сети на нём очень хорошо видны)... да, попробую снять сигнал на входе через АЦП. Спасибо.

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

Добавлено: 09 окт 2018, 20:56
Andrey Petrzhik
Упс... первая прикидка дала что походу всё нормально работает... правда что-ли? Закоротил ao1 на ai5... Вот бы никогда не подумал, что осциллограф может не давать измерить корректно 10-100Гц...

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

Добавлено: 09 окт 2018, 23:38
Andrew Lunev
На всех трех картинках видно, что сигнал затухает по экспоненте. Просто на малых периодах видны только очень малые части экспоненты и поэтому создается впечатление, что полки сигнала прямые, но все имеют наклон и чем период развертки больше, тем больше это заметно. Явно неисправность развертки осциллографа, чинить его надо...

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

Добавлено: 10 окт 2018, 02:14
Blackman
Проверьте тип входа. Должен быть открытый (DC+AC).

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

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

Спасибо за внимание и за помощь!

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

Добавлено: 16 окт 2018, 06:54
Vitekkz88
Для анализа графиков с миллионом отсчетов лучше использовать отдельную программу. Так же, Ваша программа будет замедляться по мере забивания сдвигового регистра. Вы же в нём данные копите, верно? И каждый раз LabVIEW приходится раздувать этот регистр и заниматься копированием + добавкой новой порции данных. Если на десятках тысяч отчетов это будет незаметно, то на сотнях тысяч это будет заметно. Вот и прикидывайте: фунция вам
Разделите Вашу программу на:
а)цикл генерации данных
б)цикл накопления данных
в)цикл записи данных
г)цикл визуализации данных(показывайте не каждую входящую выборку, а каждую десятую например. Если данные поступают
динамично, то пользователь не успеет на глаз ничего оценить).
д)цикл анализа данных(в этот цикл добавите логику принятия решений при тех или иных зафиксированных параметрах, какие-то измерения и прочее).
Передачу данных между циклами делайте с помощью очередей. Вот тут пример посмотрите, почти всё что нужно, осталось запись организовать:
http://labviewportal.org/viewtopic.php? ... =75#p62401
По поводу записи данных: посмотрите еще возможности записи в бинарный файл или в tdms.

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

Добавлено: 14 ноя 2018, 12:21
Andrey Petrzhik
Всем привет!
Оттестировал программку (основу которой я выкладывал выше) на 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

Спасибо большое!

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

Добавлено: 14 ноя 2018, 12:53
Andrey Petrzhik
В NI Max изменение частоты не активно, при нажатии кнопки старт вроде как ничего не происходит (но осциллограф пока не цеплял на выход порта). Да, Daqmx 15.1.1 совместим как с Labview 12, так и с платой usb-6001. Не думаю что проблема тут. Неужели правда не поддерживается счётчик? Через DAQ Assistant выдать импульсы также не удаётся...

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

Добавлено: 14 ноя 2018, 17:27
Blackman
У этого устройства нет выходов для счетчиков 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 как источник (сигнала) для счета количества фронтов входных цифровых сигналов.

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

Добавлено: 15 ноя 2018, 14:41
Andrey Petrzhik
Ага, ещё раз перечитал, так и есть... буду тогда как в начале темы буферизированный аналог генерить...

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

Добавлено: 16 ноя 2018, 23:49
Andrey Petrzhik
Уважаемая общественность, а вот ещё хотелось бы вопросик задать...

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

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

P.S. Оффтоп: А знает кто есть какие-нить платы от National Instruments, заточенные под считывание не +-10В сигнала АЦП, а скажем +-100мВ? Например L-Card платы вроде как имеют переключатели диапазонов... или ещё какие аналоги бывают? Это так, на будущее хотел бы знать...

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

Добавлено: 17 ноя 2018, 01:30
Andrew Lunev
Плата NI USB-6218 имеет настраиваемый диапазон входного сигнала. Варианты: ±0.2 V, ±1 V, ±5 V, ±10 V. Есть другие платы с диапазоном от ±0.1 V и разрядностью 18 бит, это если USB рассматривать. Для других вариантов подключения есть и 24 битные платы.
Для тензодатчиков, если хотите получать нормальные точные измерения, то лучше использовать специализированные модули, у них требуемый диапазон, разрядность 24 бита, запитка датчика, и что очень важно - автоматическая компенсация изменения напряжения питания тензомоста.
Не понимаю, зачем вычитывать данные раз в секунду и потом возиться с разбиением? Не проще просто настроить вычитывание 50 раз в секунду и делать осреднение по всем принятым измерениям? Получите те же 50 усредненных измерений за секунду. Отбрасывать измерения глупо, лишних измерений не бывает, всегда дополнительные измерения можно использовать для улучшения точности. Если есть желание, то по этим усредненным 50 точкам можно еще и скользящим средним пройтись...

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

Добавлено: 18 ноя 2018, 04:41
taras_33
Полностью согласен с Andrew Lunev. Если вы явно не указали входной диапазон, то он подстраивается автоматически, согласно параметрам созданной вами задачи, посмотрите на скриншот, который я сделал при симуляции NI 6218 и посмотрел min/max range кстати она совсем уж не такая крутая, так средненькая :D Как можно видеть, я "запрашивал" 0.02 Вольт, а получил минимально возможный для NI 6218 +/-0.2V
Load Cell.png
Для этого используются, Strain Gage Input Signal Conditioner, типа таких Тут вам и запитка датчика и фильтрация и компенсация...