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


покадровsq сбор данных

Вы не вошли.

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

Andrew Shelkovenko
26.06.2007 13:25:29
#1

Гость

покадровsq сбор данных

1. Правильно ли я понимаю, что кадр - это массив отсчетов последовательно снятый с заданного числа каналов.
А зачем нужна межкадровая задержка? Можно обйтись без нее?

2. То есть на Basic можно изобразить что-то такое:

'  NumChanels каналов

' создадим буфер на полное число отсчетов
Dim buf (NumChanels*RealKadrsQuantity) As Short

' откроем файл
#f = freefile
open "_test.dat" for binary as #f


For i=0 To RealKadrsQuantity-1
res = WE140ADC_KADR1(ptrInterf, @buf(i*NumChanels))
Next i
put #f, , buf()
close #f

то есть каждый последующий кадр будет писаться в буфер со смещением на число каналов, первый кадр - 0-15, второй 16-31 итд.

WBR, Andrew

26.06.2007 20:02:10
#2

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: покадровsq сбор данных

"Правильно ли я понимаю, что кадр - это массив отсчетов последовательно снятый с заданного числа каналов.А зачем нужна межкадровая задержка?"

Если Ваш вопрос находится в контексте АЦП от L-Card, то здесь под кадром подразумевается массив N отсчетов, последовательно снятый с заданных (согласно управляющей таблице) номеров каналов АЦП. Один кадр соотвествует одному проходу по управляющей таблице программируемого размера N. Программируемая межкадровая задержка позволяет ввести заданную паузу в процесс сбора данных между кадрами (например, для экономии трафика), сохранив в пределах кадра установленную частоту АЦП. Кроме того, например, малый шаг регулировки медкадровой задержки позволяет получить более мелкую сетку частот сбора данных АЦП по отдельно взятому  каналу (между кадрами) при одной и той же сетке частот АЦП внутри кадра.

Andrew Shelkovenko
27.06.2007 19:13:39
#3

Гость

Re: покадровsq сбор данных

Спасибо, все вроде так как я и думал.
Еще вопрос
В п 1.3.2.4 упоминается ControlTableLength - длина управляющей таблицы. Это фактически adc_pars.ChannelsQuantity - число активных логических каналов?

27.06.2007 19:43:33
#4

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

Re: покадровsq сбор данных

Да.

Andrew Shelkovenko
28.06.2007 10:18:10
#5

Гость

Re: покадровsq сбор данных

Теперь собственно о проблеме.
Задал параметры АЦП, измерения пошли, но почему-то вместо 5 сек измерения длятся 534 сек.
В чем может быть дело?
Файл с данными создается нужного размера.
499992*2 байта
Передача идет блоками по 8192 байта, засек по изменению размера файла.
На каждое передачу светодиод моргает ~25 раз.
Вот лог с консоли.

----------
Rapid-Q Compiler Beta by William Yu Copyright 706:>> Экземпляр интерфейса для работы с модулем Е140 создан.
## Название модуля : E140
## Серийный номер  : 3R34645
## Тип процессора  : AtMega8515
## Частота кварца  : 16 МГц
## ЦАП установлен  : 1
E140Presents=1
AdCChanels$=1,2,3,4,5,6,7,8,9,10,11,12,
NumChan=12
>> Для АЦП установленны следующие параметры:
## режимов аппаратной синхронизации запуска АЦП = 0
## разрешить трансляцию тактовых импульсов запуска АЦП = 0
## режим программной синхронизации ввода данных с АЦП = 0
## число активных логических каналов = 12
##   порядок опроса = 1   логический канал = 0x00000020
##   порядок опроса = 2   логический канал = 0x00000021
##   порядок опроса = 3   логический канал = 0x00000022
##   порядок опроса = 4   логический канал = 0x00000023
##   порядок опроса = 5   логический канал = 0x00000024
##   порядок опроса = 6   логический канал = 0x00000025
##   порядок опроса = 7   логический канал = 0x00000026
##   порядок опроса = 8   логический канал = 0x00000027
##   порядок опроса = 9   логический канал = 0x00000028
##   порядок опроса = 10   логический канал = 0x00000029
##   порядок опроса = 11   логический канал = 0x0000002A
##   порядок опроса = 12   логический канал = 0x0000002B
## частота дискретизации АЦП модуля = 100 кГц
## межкадровая задержки = 0.01 мсек
## частота опроса фиксированного канала = 8.33333333 кГц
RealKadrsQuantity= 41666
RealKadrsQuantity*12= 499992
----------------

Andrew Shelkovenko
28.06.2007 10:22:13
#6

Гость

Re: покадровsq сбор данных

Да, PGraph измерения с аналогичными параметрами проводит нормально.

Andrew Shelkovenko
28.06.2007 11:04:52
#7

Гость

Re: покадровsq сбор данных

Без запуска снятия данных с АЦП цикл выполняется
за 0.063 сек
------------
...
## частота дискретизации АЦП модуля = 100 кГц
## межкадровая задержки = 0.01 мсек
## частота опроса фиксированного канала = 8.33333333 кГц
12:03:05
hndl=21430272
WE140ADC_KADR=21435888
RealKadrsQuantity= 41666
>> lptr= 21701284
RealKadrsQuantity*12= 499992
17 _test.dat file opened
file closed
12:03:05
0.063000000 sec

Andrew Shelkovenko
28.06.2007 16:24:32
#8

Гость

Re: покадровsq сбор данных

Так что, ADC_Kadr не годится для съема данных с частотой дискретизации 100 кгц?
Почему написано, что она предназначена "для достаточно медленного (порядка нескольких десятков Гц)асинхронного ввода целого кадра данных с требуемых входных каналов"
Чем она отличается от функции ReadData c  асинхронным режимом? Там тоже кадры складываются в буфер в соответствии с таблицей.


Rev A1 стр 31 сверху
"AdcPars->KadrRate"  - нет такого в этой структуре.

28.06.2007 19:13:22
#9

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

Re: покадровsq сбор данных

1. Можно верить тому, что написано в описании. Функция ADC_Kadr() кардинально отличается от ReadData(). В ADC_Kadr() очень большие временнЫе накладные расходы, поскольку на получение каждого кадра отсчётов выполняется запрос на уровень ядра системы.
2. В библиотеке Lusbapi с версии 3.0 в структуре ADC_PARS_E140 название поля ChannelRate изменилось на KadrRate.

Andrew Shelkovenko
29.06.2007 06:27:56
#10

Гость

Re: покадровsq сбор данных

Понял, спасибо