AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ivi visa-com

Ein Thema von Barthiboy · begonnen am 29. Nov 2016 · letzter Beitrag vom 21. Sep 2017
Antwort Antwort
Seite 1 von 2  1 2   
Barthiboy

Registriert seit: 4. Nov 2011
35 Beiträge
 
#1

Ivi visa-com

  Alt 29. Nov 2016, 11:10
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:
  
rm := CoResourceManager.Create;
AHRESULT := rm.Open('USB0::0x1313::0x8072::P2005340::INSTR', NO_LOCK, 2000, '', sess);
Es hängt wohl an der sess : IVisaSession.
Leider habe ich keine Idee mehr wie ich dem Problem begegnen kann.

Hier noch ein paar links von denen ich meine Informationen habe.


http://www.ivifoundation.org/resources/default.aspx

Es gibt auch ein Delphi Beispiel. Aber das funktioniert bei mir eben nicht

http://www.keysight.com/upload/cmc_u...?&cc=DE&lc=ger

Danke für eure Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
37.044 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Ivi visa-com

  Alt 29. Nov 2016, 12:24
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]);
...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Barthiboy

Registriert seit: 4. Nov 2011
35 Beiträge
 
#3

AW: Ivi visa-com

  Alt 29. Nov 2016, 13:05
Hallo,

bei
AHRESULT := rm.Open('USB0::0x1313::0x8072::P2005340::INSTR', NO_LOCK, 2000, '', sess);
  Mit Zitat antworten Zitat
Benutzerbild von trojaner
trojaner

Registriert seit: 11. Mai 2004
Ort: Herisau CH
13 Beiträge
 
Delphi 10 Seattle Architect
 
#4

AW: Ivi visa-com

  Alt 30. Nov 2016, 13:41
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
  Mit Zitat antworten Zitat
Barthiboy

Registriert seit: 4. Nov 2011
35 Beiträge
 
#5

AW: Ivi visa-com

  Alt 1. Dez 2016, 06:22
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
  Mit Zitat antworten Zitat
Barthiboy

Registriert seit: 4. Nov 2011
35 Beiträge
 
#6

AW: Ivi visa-com

  Alt 1. Dez 2016, 06:55
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.
  Mit Zitat antworten Zitat
Benutzerbild von trojaner
trojaner

Registriert seit: 11. Mai 2004
Ort: Herisau CH
13 Beiträge
 
Delphi 10 Seattle Architect
 
#7

AW: Ivi visa-com

  Alt 1. Dez 2016, 07:56
hallo,

die variable:

io : IMessage;
sess : IVisaSession;

hast du diese TLB erstellt?

unit VisaComLib_TLB;

Gruss
Peter
  Mit Zitat antworten Zitat
Barthiboy

Registriert seit: 4. Nov 2011
35 Beiträge
 
#8

AW: Ivi visa-com

  Alt 1. Dez 2016, 08:27
Hallo,

ja die tlb habe ich erstellt.
Ich habe leider keine andere gefunden.
Angehängte Dateien
Dateityp: pas VisaComLib_TLB.pas (64,0 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von trojaner
trojaner

Registriert seit: 11. Mai 2004
Ort: Herisau CH
13 Beiträge
 
Delphi 10 Seattle Architect
 
#9

AW: Ivi visa-com

  Alt 1. Dez 2016, 12:19
hallo,
hier mal meine TLB.

gruss
Peter
Angehängte Dateien
Dateityp: pas VisaComLib_TLB.pas (54,1 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von trojaner
trojaner

Registriert seit: 11. Mai 2004
Ort: Herisau CH
13 Beiträge
 
Delphi 10 Seattle Architect
 
#10

AW: Ivi visa-com

  Alt 1. Dez 2016, 12:23
Hast du auch den
Keysight Connection Expert installiert?

was für ein Messgerät willst du fernsteuern?

gruss
Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf