![]() |
Ivi visa-com
Hallo zusammen,
ich habe zwei verschiedene Messgeräte die bei auf IVI Treiber aufsetzen. National Instruments bietet die Möglichkeit über NI Max IVI Treiber zu implementieren und die Geräte auch zu testen. System: Windows 7 64 bit RAD Studio 10 Seattle So viel vorweg. Es gibt diese Treiber für C .Net und COM. Ich habe mit regasm die dll´s registriert und tlb's erzeugt. (VISA COM 3.0 Type Library) Typbib.: C:\Program Files (x86)\IVI Foundation\VISA\VisaCom\GlobMgr.dll Über COM in Delphi importiert. So weit so gut. Wenn ich nun versuche die Schnittstelle zu öffnen bekomme ich eine Zugriffsverletzung beim lesen der Adresse 0.
Delphi-Quellcode:
Es hängt wohl an der sess : IVisaSession.rm := CoResourceManager.Create; AHRESULT := rm.Open('USB0::0x1313::0x8072::P2005340::INSTR', NO_LOCK, 2000, '', sess); Leider habe ich keine Idee mehr wie ich dem Problem begegnen kann. Hier noch ein paar links von denen ich meine Informationen habe. ![]() Es gibt auch ein Delphi Beispiel. Aber das funktioniert bei mir eben nicht ![]() Danke für eure Hilfe |
AW: Ivi visa-com
Bei welchem Befehl kommt die Zugriffsverletzung?
Delphi-Quellcode:
rm := CoResourceManager.Create;
if not Assigned(rm) then raise Exception.Create('VISA COM 3.0 nicht gefunden'); AHRESULT := rm.Open('USB0::0x1313::0x8072::P2005340::INSTR', NO_LOCK, 2000, '', sess); if not Assigned(sess) then raise Exception.CreateFmt('VISA COM 3.0: Port nicht geöffnet (%d)', [AHRESULT]); ... |
AW: Ivi visa-com
Hallo,
bei
Delphi-Quellcode:
AHRESULT := rm.Open('USB0::0x1313::0x8072::P2005340::INSTR', NO_LOCK, 2000, '', sess);
|
AW: Ivi visa-com
hallo
CoInitializeEx (NIL, COINIT_APARTMENTTHREADED); // Start COM on this thread rm := CoResourceManager.Create; // Create the VISA COM I/O Resource manager rm.Open('TCPIP0::127.0.0.1::INSTR', NO_LOCK, 0, '', sess); // Use the resource manager to create a VISA COM Session sess.QueryInterface(IID_IMessage, io); // The IVisaSession interface is very general and does not have string reading/writing , we want to be able to read and write to the instrument io.WriteString('*IDN?', retCount); // Write to the instrument io.ReadString(1000, readResult); // read the result Gruss Peter |
AW: Ivi visa-com
Hallo Peter,
ja so wäre der Plan. Nur leider bekomme ich eine Exception bei rm.open in der NIVisaCom.dll bei dem Lesen von Adresse 000000000. Aber danke für die Hilfe. Hast du noch eine Idee? Bzw. kannst du mir deine TLB + dll´s zukommen lassen? Danke |
AW: Ivi visa-com
Meine Vermutung liegt bei der Session.
Wenn ich einen Leerstring übergebe beendet sich das Programm sofort ohne exception. Wenn ich eine gültige resource angebe kommt die exception. Wenn ich der Session einen Pointer zuweise tritt die exception an einer andren Adresse auf. Ich habe auch schon verschiedene String Typen probiert. Aber mir gehen echt die Ideen aus. |
AW: Ivi visa-com
hallo,
die variable: io : IMessage; sess : IVisaSession; hast du diese TLB erstellt? unit VisaComLib_TLB; Gruss Peter |
AW: Ivi visa-com
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ja die tlb habe ich erstellt. Ich habe leider keine andere gefunden. |
AW: Ivi visa-com
Liste der Anhänge anzeigen (Anzahl: 1)
hallo,
hier mal meine TLB. gruss Peter |
AW: Ivi visa-com
Hast du auch den
Keysight Connection Expert installiert? was für ein Messgerät willst du fernsteuern? gruss Peter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz