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


Плата L-780M. Работа с lcomp.

Вы не вошли.

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

Николай
17.06.2010 11:21:00
#26

Гость

Re: Плата L-780M. Работа с lcomp.

Разобрался.
FormDestroy с этими командами вызывался дважды:
из кнопки выхода и из формы. Из формы убрал, все заработало!

Николай
18.06.2010 07:53:49
#27

Гость

Re: Плата L-780M. Работа с lcomp.

Вопросы:
1. В каких размерностях выделяется память через
Size: в байтах, словах или ? через фунуцию
RequestBufferStream(var Size:ULONG; StreamId:ULONG)
И каков должен быть оптимальный размер этой памяти?
2. Потом кольцевой буфер создается в этой памяти или отдельно? Если в этой же, зачем нужно выделять под буфер два раза память?
3. Что будет делать АЦП, если IrqEna := 0
4. Зачем   dev:= pLDev.OpenLDevice;
и dev нигде не используется. Везде вызов через plDev?

Николай
18.06.2010 08:30:31
#28

Гость

Re: Плата L-780M. Работа с lcomp.

Вопросы:
1. Зачем нужен Pages? Ведь все определяется FIFO и IrqStep/
2. При инициировании драйвер меняет Pages или нет?
3. IrqStep * Pages равен половине или всему кольцевому буферу платы?
Ведь в справке написано:
ULONG Pages - размер кольцевого буфера в шагах прерываний;

18.06.2010 09:21:18
#29

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Плата L-780M. Работа с lcomp.

1 В хелпе в описании функции это четко написано - USHORT. Оптимальный размер зависит от скорости сбора данных и подбирается экспериментально... В примерах  размер достаточен для непрерывной записи на диск без обработки....
2 Он один раз выделяется с запасом. Потом только говориться какую его часть использовать.
3 будет собирать во внутреннуюю свою память.
4 в WLCOMP например используется для LabView...

1 Pages мультипликатор для большого кольцевого буфера. В хелпе описан общий принцип сбора.
2 Нет
3 всему большому буферу. IrqStep этои есть шаг прерываний. В примерах там чтеко это видно...

Николай
18.06.2010 09:45:45
#30

Гость

Re: Плата L-780M. Работа с lcomp.

Еще:
1. В функции function SetParametersStream(var sp:DAQ_PAR; var UsedSize:ULONG; out Data; out Sync; StreamId:ULONG):ULONG;
массив Data в Short или UShort. В разных примерах по разному.
2. Массив Data можно сделать больше массива UsedSize. Вроде бы работает, не ругается!
3. Что происходит при Pages = 1 , если я хочу снять половинку буфера и закончить на этом.

Николай
18.06.2010 10:01:45
#31

Гость

Re: Плата L-780M. Работа с lcomp.

Почему то в функциях:
function RequestBufferStream(var Size:ULONG; StreamId:ULONG):ULONG;
function SetParametersStream(var sp:DAQ_PAR; var UsedSize:ULONG; out Data; out Sync; StreamId:ULONG):ULONG;
если сделать Size меньше Data, то в АЦП Size
корректируется, а в ЦАП нет и вызывает остановку программы. Надо бы сделать коррекцию и в ЦАП.

18.06.2010 10:31:37
#32

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Плата L-780M. Работа с lcomp.

Как сделать Size меньше Data? Сначала вызывается Requuest например на 100000, потом Set с UsedSize  например 30000. Data - это указатель на начало буфера....

Николай
18.06.2010 10:52:06
#33

Гость

Re: Плата L-780M. Работа с lcomp.

В примере:
type
  WA = array [0..1048576] of SHORT;
  PWA = ^WA;

var  data:PWA;

Интересно, что там происходит внутри функций при этом, если задать Data больше Size?

И ответьте на предыдущие вопросы.

18.06.2010 11:06:34
#34

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Плата L-780M. Работа с lcomp.

1 short или ushort это неважно, главное что 2 байта...а остальное приведение типа.
2 Data это указатель. Как Вы сним работать в Паскале будете это Ваше личное дело...
3 А что-то плохое происходит?

Николай
18.06.2010 14:32:06
#35

Гость

Re: Плата L-780M. Работа с lcomp.

Я уже писал выше:
если сделать Size меньше Data, то в АЦП Size
корректируется, а в ЦАП нет и вызывает остановку программы.

18.06.2010 14:48:21
#36

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Плата L-780M. Работа с lcomp.

Именно Size корректируется только на значение кратности 4096 при вызове Request и оно всегда столько сколько запросили. Поле Pages может скорректироваться после вызова SetParameters. Data это указатель на начало буфера данных размером с Pages*IrqStep и оно всегда меньше или равно Size тк Pages будет уменьшено. И для ЦАП и для АЦП...

Николай
04.08.2010 15:06:00
#37

Гость

Re: Плата L-780M. Работа с lcomp.

Скажите, какая минимальная частота dRate в ЦАП-е
и чем она определяется?

04.08.2010 15:33:41
#38

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Плата L-780M. Работа с lcomp.

0 задайте при вызове функции Fill.. и она выставит минимальную и обновит поле в структуре...

Николай
05.08.2010 15:06:57
#39

Гость

Re: Плата L-780M. Работа с lcomp.

Скажите, какое максимальное значение dKadr в АЦП
и как его рассчитать?

Николай
11.08.2010 12:30:05
#40

Гость

Re: Плата L-780M. Работа с lcomp.

Что то не ответили на вопрос!

11.08.2010 12:34:08
#41

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

Re: Плата L-780M. Работа с lcomp.

Poul в отпуске, должен появиться завтра.

12.08.2010 09:11:58
#42

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Плата L-780M. Работа с lcomp.

65500/dRate Как все расчитывается есть в руководстве пользователя при описании формата кадра отсчетов... Там следует считать dRate - ADC_Rate dKadr - Inter_Kadr_Delay

Николай
12.08.2010 11:56:33
#43

Гость

Re: Плата L-780M. Работа с lcomp.

Вопросов стало еще больше!
1. Что такое 65500/dRate ?
   Я спрашивал про dKadr (интервал между кадрами (мс))
2. В "формате кадра отсчетов":
   Tk = (Control_Table_Length-1) / ADC_Rate +   Inter_Kadr_Delay 
   Я спрашиваю о максимуме Inter_Kadr_Delay,
   что соответсвует dKadr.
3. Как я понимаю dRate и dKadr не зависят друг от друга?
4. Я должен считать два канала АЦП, потом ждать как можно большее время, потом снова считать два канала АЦП и т.д. Потом по заполнению буфера
прекратить отсчет.
dRate определяет время между отсчетами двух каналов АЦП, а dKadr - задержку между этими отсчетами.
Я должен знать, какое максимальное dKadr я могу поставить!

12.08.2010 12:53:21
#44

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Плата L-780M. Работа с lcomp.

Реальные значения всех показателей ограничены разрядностья счетчиков таймеров в DSP. Интервал между кадрами он в квантах dRate... поэтому на высоких частотах dRate максимальный интервал будет меньше, а на низких больше...

12.08.2010 12:55:47
#45

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Плата L-780M. Работа с lcomp.

конкретное вычисление можно увидеть в plx.cpp в исходниках dll библиотеки.

Николай
12.08.2010 14:04:33
#46

Гость

Re: Плата L-780M. Работа с lcomp.

Значит:
1. dKadr кратен 1/dRate, т.е. зависит от dRate
2. минимальный dKadr равен 1/dRate
3. максимальный dKadr равен  65500/dRate
4. счетчики таймеров 16-разрядные

Наконец то прояснилось!
Вообще-то это надо записать в справку!