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


(L-783)Проблема с межкадровой задержкой

Вы не вошли.

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

Леонид
19.01.2002 17:07:02
#1

Гость

(L-783)Проблема с межкадровой задержкой

Возникла проблема с определением межкадровой задержки при работе с L783.
Используемые параметры:
1) частота работы АЦП - 2МГц;
2) количество канало - 6;
3) OS - Win98.
4) среда разработки - VC++6.0

Путем экспериментов с картой было установлено следующее:
а) при указании межкадровой задержки 0 мс (tmkz = 0 мс) - функция библиотеки FillADCParameter возвращает время межкадровой задержки равное 500 нс, а реально АЦП не делает этой задержки при опросе указанного количества каналов;
б) при указании межкадровой задержки 0,0005 мс (tmkz = 500 нс) - та же ситуация что и в п.а., т.е. реально tmkz = 0 мс.

Хотя в доке ( ТО и ИЭ, стр. 29 и 61) указано, что на частотах выше 1МГц "параметр межкадровой задержки жестко устанавливаетя равным интервалу запуска АЦП", а реально АЦП работает без межкадровой задержки.

Так как же правильно рассчитывать период кадра опроса каналов и межкадровой задержки?
И если это исключительная ситуация только для имеющейся у нас платы, то подскажите, пожалуйста, выход из сложившейся ситуации.
Кроме того, 783 покупалась только исходя из ее возможности работать с частотой выше 1МГц.

Программный комплекс, который я пишу, предполагается использовать не только с этой L783, которая у нас есть, а планируется укопмлектовать вашим устройством несколько машинок.

23.01.2002 14:29:19
#2

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

Re: (L-783)Проблема с межкадровой задержкой

Что подразумевается под tmkz? Cм. рис. на стр 29 тех. описания для определения tmkz. 
Как реально определялось, что tmkz = 0 мс (в смысле указанного выше рис.)?

Леонид
24.01.2002 11:16:08
#3

Гость

Re: (L-783)Проблема с межкадровой задержкой

>Что подразумевается под tmkz?
>Cм. рис. на стр. 29 тех. описания для определения tmkz.

Под tmkz подразумевается параметр Kadr, передаваемый в функцию
FillADCparameters_PLX(...,
                      &Rate,   // - Частота сбора данных
                      &Kadr,   // - Межкадровая задержка
                      ... );
Насколько я понял, это есть задержка в кадре для того, чтобы АЦП
смог переключиться после нее на новый кадр измерений (исходя из
рис. на этой странице). Или я не прав?

>Как реально определялось, что tmkz = 0 мс
>(в смысле указанного выше рис.)?

Реально определялось таким образом:
1) Частота сбора данных АЦП, Rate = 2МГц;
2) Количество каналов = 6,
   т.е. Ткадра = 1/Rate * 6 + Kadr,
      где Kadr = 1/Rate = 500нс; (исходя из формулы и рис. на стр. 29)
3) Значение Kadr устанавливалось равным 1/Rate = 0,0005 мс (500нс) и передавалось
   в функцию FillADCparameters_PLX.
4) Значение Kadr после FillADCparameters_PLX использовалось для получения
   кривой напряжения в сети питания, состоящей из количества точек
        Nточек = 1 / ((1/Rate * 6 + Kadr) * f ) = 5714 точек      (1)
    где f = 50 Гц (частота с сети питания) -> период = 20 мс.

Так вот, если я задаю Kadr равным 1/Rate (как везде указано), то АЦП
измеряет мне вот этих 5714 точек, НО... они не образуют кривую синусоиды
с периодом 20 мс (кривая напряжения в сети) - не хватает около 15%
точек (1/6 графика), т.е. 2.857 мс ( 0.0005мс * 5714) АЦП не измеряет
значения в сети.

А если задать Kadr = 0, то АЦП меряет по (1) уже 6666 точек и все ОК
(т.е. кривая получается полностью).

Отсюда я установил, что АЦП и/или драйвер не устанавливает межкадровую задержку
при передаче в FillADCparameters_PLX значения Kadr = 0.0 - после нее (ф-ции),
эта переменная равна нулю, хотя в "ТО и ИЭ" и сказано, что она должна вернуть
именно 1/Rate ("параметр межкадровой задержки жестко устанавливается равным
интервалу запуска АЦП" - цитата).

Так, где же ошибка и у кого?

Размер буфер я делаю несколько больше, и он пока имеет статический размер,
т.е. измеренные значения не теряются. И сбор не циклический.

25.01.2002 13:32:30
#4

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

Re: (L-783)Проблема с межкадровой задержкой

Во-первых, Вы неправильно написали формулу Ткадра = 1/Rate * 5 + Kadr;
Во-вторых, при указанной Вами частоте работы АЦП, функция FillADCparameters_PLX() должна всегда возвращать Kadr = 1/Rate = 500нс и никак иначе.