Hallo zusammen!<BR>Ich würde gerne eine PCI - I/O - Karte von Adlink (PCI 9112) aus delphi heraus ansprechen.<BR>Nach installation der Dask.pas und PCI-Dask.dll, die mit der Hardware mitgeliefert wurde sollte das lt. Adlink auch möglich sein.<BR>Mit Hilfe des Code-creator für C habe ich mir dann folgenden Code aus den Fingern gesogen:<pre>procedure TForm1.Button1Click(Sender: TObject);
var
z:Cardinal;
cardid:word;
y:Smallint;
begin
z:=0;
cardid:=Register_Card(PCI_9112,StrToInt(Edit1.Text ));
y:=DI_ReadPort(cardid,StrToInt(Edit2.Text),z);
Label9.Caption:=IntToStr(cardid);
Label4.Caption:=IntToStr(z);
Label6.Caption:=IntToStr(y);
// y:=Release_Card(cardid);
end;</pre><pre>procedure TForm1.Button2Click(Sender: TObject);
var
z,cardid:word;
y:Smallint;
begin
z:=0;
cardid:=Register_Card(PCI_9112,StrToInt(Edit1.Text ));
y:=AI_ReadChannel(cardid,StrToInt(Edit2.Text),AD_B _10_V,z);
Label9.Caption:=IntToStr(cardid);
Label4.Caption:=IntToStr(z);
Label6.Caption:=IntToStr(y);
// y:=Release_Card(cardid);
end;
</pre>Das Einzige was ich jedoch hinbekomme ist, dass die Card-ID beim registrieren der Karte immer "65523" ist, und als Antwort auf die Abfrage eines DI-Ports bekomme ich error-Code "-2" (ErrorInvalidCardNumber).<BR>Beim Versuch einen AI-Kanal auszulesen bekomme ich eine Zugriffsverletzung bei Adresse 1000706E in Modul 'PCI-DASK.DLL'. Lesen von Adresse 12C2714C.<BR><BR>Hat Ührgendjemand eine Ahnung davon wie das richtig geht?<BR>Die von Adlink selbst jedenfalls nicht (#*%&#@§$).<BR><BR>Gruß<BR>Jens
var
z:Cardinal;
cardid:word;
y:Smallint;
begin
z:=0;
cardid:=Register_Card(PCI_9112,StrToInt(Edit1.Text ));
y:=DI_ReadPort(cardid,StrToInt(Edit2.Text),z);
Label9.Caption:=IntToStr(cardid);
Label4.Caption:=IntToStr(z);
Label6.Caption:=IntToStr(y);
// y:=Release_Card(cardid);
end;</pre><pre>procedure TForm1.Button2Click(Sender: TObject);
var
z,cardid:word;
y:Smallint;
begin
z:=0;
cardid:=Register_Card(PCI_9112,StrToInt(Edit1.Text ));
y:=AI_ReadChannel(cardid,StrToInt(Edit2.Text),AD_B _10_V,z);
Label9.Caption:=IntToStr(cardid);
Label4.Caption:=IntToStr(z);
Label6.Caption:=IntToStr(y);
// y:=Release_Card(cardid);
end;
</pre>Das Einzige was ich jedoch hinbekomme ist, dass die Card-ID beim registrieren der Karte immer "65523" ist, und als Antwort auf die Abfrage eines DI-Ports bekomme ich error-Code "-2" (ErrorInvalidCardNumber).<BR>Beim Versuch einen AI-Kanal auszulesen bekomme ich eine Zugriffsverletzung bei Adresse 1000706E in Modul 'PCI-DASK.DLL'. Lesen von Adresse 12C2714C.<BR><BR>Hat Ührgendjemand eine Ahnung davon wie das richtig geht?<BR>Die von Adlink selbst jedenfalls nicht (#*%&#@§$).<BR><BR>Gruß<BR>Jens
Comment