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


783- не все АЦП работают

Вы не вошли.

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

Вячеслав
25.08.2003 13:08:57
#1

Гость

783- не все АЦП работают

Всем привет!
Мучаюсь с такой проблемой.
L-761, Delphi

Процедура инициализации:

dev.size:=sizeof(dev);
dw:=OpenLDevice(50,@dev);
if dw=INVALID_HANDLE_VALUE then memo1.lines.add(/'Невозможно открыть устройство/')
    else memo1.lines.Add(/'Устройство открыто/');
pd.size:=sizeof(pd);
dw:=ReadPlataDescr_PLX(@dev,@pd,0);
if dw=0 then memo1.Lines.Add(/'Описание устройства не получено/')
    else memo1.lines.add(/'Получено описание устройства/');
dw:=LoadBios(@dev,pd.BrdName,0,0);
if dw=0 then memo1.lines.add(/'Невозможно загрузить BIOS/')
     else memo1.lines.add(/'BIOS загружен/');
adcp.size:=sizeof(adcp);
FillADCParameters_PLX(@adcp,@pd,@Rate,@Kadr,3,1,0,0,0,Channels,@Chan,$400,$400,32);
Memo1.lines.add(/'Частота сбора данных: /'+floattostr(Rate)+/' КГц;/');
Memo1.Lines.Add(/'Межкадровая задержка: /'+floattostr(Kadr)+/' Мс;/');
memo1.lines.add(/'Число каналов: /'+inttostr(Channels)+/';/');

usedsize:={2}400000;
RequestBuffer(@dev,@usedsize);
SetParameters(@dev,@adcp,@usedsize,@data,@sync);


Чтение каналов:
procedure TSyncThread.Execute;
begin
repeat
InitStartLDevice(@dev);
StartLDevice(@dev);
while (sync^<32*({BufferSize}$400 shr 1)) do
begin

end;
StopLdevice(@dev);
Synchronize(XSync);
if Terminated then break;
until false;

end;

Procedure TSyncThread.XSync;
type a=array[1..8] of integer;
var s:DWORD;
c:DWORD;
ar:a;
begin
for s:=0 to 32*({BufferSize}$400 shr 1) do
    begin
      c:=s mod Channels+1;
      ar[c]:=Data[s]{+$8000};
    end;
form1.label3.caption:=IntToStr(ar[1]);
form1.label4.caption:=IntToStr(ar[2]);
form1.Label5.Caption:=IntToStr(ar[3]);
form1.Label6.Caption:=IntToStr(ar[4]);
form1.Label7.Caption:=IntToStr(ar[5]);
form1.Label8.Caption:=IntToStr(ar[6]);
form1.Label9.Caption:=IntToStr(ar[7]);
form1.Label10.Caption:=IntToStr(ar[8]);


Короче, всё содрано с примеров.

Проблемы следующие.
1. Первый в списке канал, каким бы он ни был, выдаёт ерунду- или 0, или другое число- статичное, не изменяющееся от наводок, и ,обычно, невозможное (напр. 46378, 32778- в таком духе).

каналы пробовал всевозможные:
($05,$06,$07,$08,$09,$10,$11,$12);
{($00,$01,$02,$03,$04,$05,$06,$07);}

Напряжение подведено только к одному из каналов. Остальные (кроме первого) нормально показывают наводки.
2.  Каналы, старше 10- вообще не работают. Как ни крутись.

LGraph всё мерит нормально. Но у LGraph я заметил интересную особенность.
Допустим, задаю съём с 11 и 12 каналов, а он снимает с 1 и 2.

Кто- нибудь сталкивался с этим?

Алексей Лапин
25.08.2003 13:22:08
#2

Гость

Re: 783- не все АЦП работают

Попробуйте соединить незадействованные входы с аналоговой землей.
Обратите внимание, что L-graph измеряет в 16-канальном режиме.