Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Е-502 под Labview-2017: Странное количество принятых отсчетов...

Вы не вошли.

 Поиск | Регистрация | Вход 

01.08.2024 18:16:53
#1

Участник
Здесь с 26.08.2020
Сообщений: 21

Е-502 под Labview-2017: Странное количество принятых отсчетов...

Hi All!

E-502 сконфигурирована от запуска по фронту импульса на 14-й ноге цифрового входа (X502_SYNC_DI_SYN2_RISE).
На вход X502_Recv подается пустой массив размером 4000000 элементов.В параметр Size подается сумма частот АЦП и цифрового входа.
Т.е. я хочу принять данные блоками по 1 секунде. Таймаут установлен на 2100 мс.
Далее как в примере на сайте идет разбор по каналам с помощью  X502_ProcessData. На вход adc_data и din_data подаются массивы в 4000000 элементов.
На входы adc_data_size и din_data_size - число 4000000 - длина этих массивов.
И все это крутится в цикле (фактически как в примере, только увеличен таймаут и убрано "накопление" данных до нужного количества).

Если принимать только аналоговые данные - все хорошо. Например если задать 1 канал с частотой 200000 Гц в на каждом "обороте" X502_ProcessData выдает на выход adc_data_size значение 200000.
Если задать 2 канала по 200000 Гц - на каждом обороте на adc_data_size выдается 400000.

Проблема возникает при синхронном вводе с цифрового входа. И только с первым "блоком".
Если задать 1 аналоговый канал 200000 Гц и цифровой вход 500000 Гц, в первом кадре X502_ProcessData выдаст значения 199999 на adc_data_size и 500001 на din_data_size.
Во всех последующих "кадрах" - все хорошо - обрабатывается по 200000 точек аналога и 500000 точек цифры.
Когда 2 аналоговых канала по 200000 Гц на канал (400000 Гц частота АЦП) и цифровой вход 500000 Гц - такая же картина - 399999 точек аналога и 500001 точка цифры в первом блоке.
И вот это странно - почему нечетное количество точек в аналоге? У меня же 2 канала? У какого канала "не хватает" точки и какой - первой или последней?
Все последующие блоки принимаются нужной длинны.
Проблема только с первым блоком. Пробовал разные комбинации - везде одинаково. В первом блоке нет 1 точки в аналоге и лишняя точка в цифре. Частоты задавал "кратные".

Jury

01.08.2024 20:48:15
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Е-502 под Labview-2017: Странное количество принятых отсчетов...

Проблема эта возникает из-за того, что задержка внутри модуля от момента измерения до момента вставки в общий поток данных у данных АЦП и данных DIN разная (у АЦП добавляется задержка выполнения преобразования, дополнительной обработки в виде применения коэффициентов и т.п.), в результате и получается, что к моменту вставки в поток первого отсчета АЦП уже вставлено 2 отсчета DIN. Это особенность аппаратной реализации в модуле и ее приходится учитывать при обработке.  Сам отсчет никуда не пропадает, просто получается, что из-за того, что вначале идут подряд два отсчета DIN, то отсчет второго канала последнего кадра уже не вмещается в запрашиваемый блок, но он не пропадает, но будет вычитан при втором чтении. В общем и целом, отдельно данные DIN и отдельно данные АЦП идут всегда в том порядке, как были сделаны измерения в соответствующие моменты времени, но в общем потоке отсчеты АЦП и отсчеты DIN могут при объединении в общий поток смещены относительно друг друга. Поэтому в примере эти два два потока раскладываются на отдельные промежуточные буфера и уже из них берутся данные блоками нужных размеров, а в Recv может читать данные меньшими блоками.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск