Forum: Mikrocontroller und Digitale Elektronik PCMCIA GPIB in Betrieb nehmen - Win7 64bit


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
es geht darum eine PCMCIA-GPIB-Karte von National Instruments zu nutzen 
um mit einfachen Befehlen z.B. ein Keithley 199 anzusprechen. Labview 
oder die aufgesetzten Treiber wie VISA etc. möchte ich nicht dazu 
nutzen.

auf dem Laptop ist Win7 64bit installiert.

die Original CD die der Karte beilag mit NI-488.2 von 7.2000 startet. 
Das "Install NI-488.2 Software für Windows" läuft los, der NI-488.2 1.7 
Wizard meldet sich. Es folgt ein "Error in custom action. Library 
invalid..".

im nächsten Fenster kann ich "typical" auswählen. Das läuft durch bis 
der Balken hängenbleibt. Oben steht "updating system".

Wenn man die Karte eingesteckt erscheint im Gerätemanager 
"National_Instruments PCMCIA-GPIB" mit einem gelben Rufzeichen. Es fehlt 
also der Treiber.

ich bräuchte das passende inf-file dazu und passende Treiberdateien.

offensichtlich gab es eine gpib-32.dll um das anzusprechen und später 
eine ni4882.dll. Damit müsste man das doch ansprechen können? Früher 
waren doch Beispiele da für das Ansprechen unter VB, C, Delphi. So etwas 
könnte helfen das in Betrieb zu bekommen.

vielleicht hat jemand eine Idee?

von Marc G. (marcm)


Bewertung
0 lesenswert
nicht lesenswert
Geh zu NI auf die Seite un guck welches die letzte Version von NI-488 
ist die deine Asbach Karte (welche genau?) noch unterstützt. Die Treiber 
sind da dabei...

von g457 (Gast)


Bewertung
1 lesenswert
nicht lesenswert
> auf dem Laptop ist Win7 64bit installiert.

Wegwerfen (kein Scherz), Linux installieren, linux-gpib [0] dazu, 
feddisch. Nutze ich seit Jahren mit diversen PCI-Karten und 
USB-Adaptern.

HTH

[0] https://linux-gpib.sourceforge.io/doc_html/supported-hardware.html

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
Marc G. schrieb:
> Geh zu NI auf die Seite un guck welches die letzte Version von NI-488
> ist die deine Asbach Karte (welche genau?) noch unterstützt. Die Treiber
> sind da dabei...

leider ist das nicht so einfach Marc !
runterladen kann man da eine 5MB-Datei.
diese lädt dann aus dem Netz weitere Teile.
beim Installieren von .NET 4.6.2 heißt es dann: did not succeed.
Zertifikatskette wurde zwar verarbeitet...  so nervt das nur !

im Netz finden sich zudem Beiträge wie:
https://forums.ni.com/t5/Instrument-Control-GPIB-Serial/PCMCIA-GPIB-support-for-Windows-7-and-8/td-p/2528996?profile.language=en
"PCMCIA-GPIB support for Windows 7 and 8"
"I understand the PCMCIA-GPIB adapters are legacy devices, however, for 
some of us who still have these adapters and platforms with Windows 7 or 
8 on them, it would be very useful to see a supported release of 
NI488.2. I haven't been able to get any version of the software to work 
yet (I'm running Windows 7 Professional 64-bit) with this adapter. If 
anyone has a workaround available, without having to install XP or using 
a virtual environment, please share. If NI still sells this product, 
then it would seem appropriate that it should be fully supported."
"Too bad.
It looks like they dropped support for the PCMCIA-GPIB completely with 
Windows 7.
The ironic thing is that they still sell this card."

also wegwerfen das Teil? das kanns ja wohl nicht sein !
oder gibt es einen Weg an die inf-Datei zu kommen und an die dlls?

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
g457 schrieb:
> Wegwerfen (kein Scherz), Linux installieren

Danke für den Hinweis. Unter Linux läuft es also. Ist die Frage ob Linux 
eine DLL dafür nutzt die ich auch nehmen könnte. Linux wird den Treiber 
ja nicht neu geschrieben haben den NI geliefert hat.

Vielleicht kannst Du mal schauen auf welche DLL Linux da aufsetzt?

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
https://forums.ni.com/t5/Instrument-Control-GPIB-Serial/PCMCIA-GPIB-support-for-Windows-7-and-8/td-p/2528996?profile.language=en

Hier steht:
"Latest NI-488.2 16.0.0 does not support PCMCIA-GPIB hardware per 
download page (chapter Supported Hardware)
Previous NI- 488.2 15.5 does support PCMCIA-GPIB hardware per download 
page (chapter Supported Hardware) but only on Windows XP SP3/Server 2003 
R2 SP2 (32-Bit)"

demnach macht Installation des neuesten NI-488.2 keinen Sinn. Man muss 
wohl eine ältere Version bemühen.

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
Hier steht etwas von NI:
https://www.ni.com/getting-started/set-up-hardware/instrument-control/d/pcmcia-gpib
"Installieren von NI-PCMCIA-GPIB-Controllern"

wie gesagt - diesen ganzen übergeordneten Kram brauche ich nicht. Mir 
reicht das Ansprechen über eine DLL. Ein Hexenwerk sollte das nicht 
sein. Auch ein altes Velleman PCGU1000 war über eine DLL nun 
ansprechbar. Auch eine 32bit DLL war kein Problem. Linux wird wohl auch 
auf eine DLL zugreifen. Also sollte diese zu bekommen sein.

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
Hier scheint es einen Treiber zu geben:
https://www.drvhub.net/devices/other-devices/pcmcia/gpib
PCMCIA GPIB other devices drivers
PCMCIA GPIB
Driver type: GPIB
Vendor: National Instruments
Version: 14.0.0.49152 (12 Jun 2014)
*.inf file: ni488.inf
Windows Vista, 7, 8, 8.1, 10

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
Fa. INES bot eine GPIB-PCMCIA-XL-Karte an:
32-bit PC Card IEEE-488.2 GPIB Interface
Windows (7, Vista, XP, 2000), Linux

es ist kaum anzunehmen daß INES hier einen eigenen GPIB-chip entwickelt 
hat. Also wird die Entwicklung wohl auf dem Adapter von NI basieren.

Da INES Win7 unterstützt muss es auch einen passenden Treiber geben.

"The  GPIB-PCMCIA-XL  card  provides  an  IEEE-488  GPIB
interface for all portable computers with 32-bit CardBus
compatible PC Card slots. The card is a Type II PCMCIA
card and is compliant with the CardBus standard."

"It performs all the basic IEEE-488.1 functions such as
talker,  listener  and  system  controller.  The  IEEE-488.2
compatible  funcions  make  it  fully  compliant  with  the
IEEE-488.2  specification."

"Windows The Windows software set is included with the
GPIB-PCMCIA-XL.  It  is  a  WDM  driver  and  supports
Windows (7, Vista, XP, 2000) on all PC compatible platforms.
Libraries and header files are included for the Visual C++,
Visual Basic, MINGW and Delphi development systems.
An industry standard compatible GPIB-32.DLL supports
nearly all applications designed for that interface, including
applications  developed  for  LabView  6+,  LabWindows,
Agilent VEE, TransEra HT-Basic, Agilent Intuilink, and more."

als DLL wird die GPIB-32.DLL genannt. Diese sollte ansprechbar sein. Die 
genannten Beispiele Visual Basic, Delphi sollten helfen das in Betrieb 
zu bekommen.

von Hmmm (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Matthias W. schrieb:
> Linux wird den Treiber
> ja nicht neu geschrieben haben den NI geliefert hat.

In Open-Source-Betriebssystemen findest Du i.d.R. (Ausnahmen sind z.B. 
bestimmte proprietäre Grafikkartentreiber) Open-Source-Treiber, die 
üblicherweise komplett neu geschrieben wurden.

Meistens stecken auch in geheimnisvollen Blackbox-Geräten nur 
Komponenten, für die man Datenblätter bekommt.

Matthias W. schrieb:
> Mir
> reicht das Ansprechen über eine DLL. Ein Hexenwerk sollte das nicht
> sein.

Du verwechselst DLLs (Shared Libraries, laufen im Userland) mit 
Kernel-Treibern. Solange kein Treiber da ist, der mit der Hardware 
redet, bringt Dir die DLL nichts - von Hacks wie giveio.sys mal 
abgesehen.

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm schrieb:
> Open-Source-Treiber, die
> üblicherweise komplett neu geschrieben wurden.

Graphikkartentreiber und diverse andere Treiber waren so komplex daß die 
sicher nicht einfach neu geschrieben werden konnten. Die basierten dann 
auf Dingen die bei Windows mitgeliefert wurden. Und das sind vermutlich 
eben DLLs die Zugriffe ermöglichen.

Ich bin kein Linux-Programmierer und kenne die Implementierung von GPIB 
dort nicht. NI hat da viel Zeit investiert und über die Jahre etwas 
aufgebaut. Begonnen hat das mit chips die entwickelt wurden und 
zeitkritisches direkt in Hardware machten.

Um diese chips herum entstand Quellcode der auf kleinen Mikrocontrollern 
lief. Ein Hexenwerk kann das daher nicht sein.

Es gibt auch Projekte wo Außenseiter Code schrieben um Geräte 
anzusprechen.

Das zeigt daß stets bei manchen der Wunsch bestand störende Monopole zu 
durchbrechen.

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm schrieb:
> Meistens stecken auch in geheimnisvollen Blackbox-Geräten nur
> Komponenten, für die man Datenblätter bekommt.

ja. Auch für die Chips die NI verbaut gibt es Datenblätter. Das hilft 
jedoch wenig wenn diese chips von einer zunehmend aufgeblasenen Firmware 
ummantelt wurden nur um ein Monopol aufzubauen und zu stützen wie es 
scheint.

wenn es anders wäre sollte es kein Problem sein diese Karte nun ratz 
fatz mit einem low level driver in Betrieb zu bekommen, so wie man das 
früher auch mit den AT-Bus-Karten gemacht hat.

es kann ja nicht der Sinn sein solche alten Karten nun zu erwerben, die 
chips abzulöten, eigene Adapter und Treiber zu bauen.

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm schrieb:
> Du verwechselst DLLs (Shared Libraries, laufen im Userland) mit
> Kernel-Treibern.

es ist kein Kerneltreiber nötig um Befehle an ein GPIB-Gerät zu senden.

es gab auch von NI einen GPIB-Adapter mit RS232. Dazu braucht es keinen 
Kerneltreiber. Man muss einfach seriell Kommandos senden, die vom Chip 
dann ausgeführt werden. So ist das im Prinzip auch bei Voltmetern wie 
Keithley 197 mit GPIB.

genau so kann man auch den Generator von Velleman ansteuern. Man 
schreibt eine kleine Software die die Befehle an die DLL sendet und 
diese schickt es dann an den Generator. Dazu gibt es Beispiele die man 
anschauen kann. Am Kernel muss man dazu nichts machen. So zeitkritisch 
ist das nicht.

von Hmmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Matthias W. schrieb:
> Graphikkartentreiber und diverse andere Treiber waren so komplex daß die
> sicher nicht einfach neu geschrieben werden konnten. Die basierten dann
> auf Dingen die bei Windows mitgeliefert wurden. Und das sind vermutlich
> eben DLLs die Zugriffe ermöglichen.

Unsinn.

Insbesondere unter Linux sind Closed-Source-Treiber hochgradig verpönt, 
nicht zuletzt wegen der Lizenzproblematik (GPL).

Beispiel für einen Open-Source-Grafiktreiber:
https://en.wikipedia.org/wiki/Nouveau_(software)

Matthias W. schrieb:
> wenn es anders wäre sollte es kein Problem sein diese Karte nun ratz
> fatz mit einem low level driver in Betrieb zu bekommen, so wie man das
> früher auch mit den AT-Bus-Karten gemacht hat.

Oben wurde linux-gpib verlinkt. Vielleicht einfach mal damit befassen 
und staunend den Source Code (der kein Wrapper für ein Windows-Binary 
ist) lesen:

https://sourceforge.net/p/linux-gpib/code/HEAD/tree/trunk/linux-gpib-kernel/drivers/gpib/tnt4882/

Unter Windows wäre die 32-Bit-Version von Windows 7 noch einen Versuch 
wert (lässt sich mit derselben Seriennummer aktivieren), ansonsten musst 
Du wohl auf XP ausweichen.

von Hmmm (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Matthias W. schrieb:
> es ist kein Kerneltreiber nötig um Befehle an ein GPIB-Gerät zu senden.

Das hat auch niemand behauptet, aber für die GPIB-Karte brauchst Du 
einen. Sonst passiert sowas:

Matthias W. schrieb:
> Wenn man die Karte eingesteckt erscheint im Gerätemanager
> "National_Instruments PCMCIA-GPIB" mit einem gelben Rufzeichen. Es fehlt
> also der Treiber.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Ich hab gute Erfahrungen mit den Prologix gemacht:

http://prologix.biz/gpib-usb-controller.html

Der Vorteil ist, man kann sie direkt an das Gerät schrauben und mit 
flexiblen USB-Kabeln anschließen. Man braucht also nicht mehr diese 
starren GPIB-Gartenschläuche.
Im PC werden sie als COM angesprochen.

von Soul E. (souleye) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:

> Im PC werden sie als COM angesprochen.

Und das ist der entscheidende Unterschied. NI, Agilent etc haben eine 
eigene Software-Schnittstelle, eben diesen VISA-Stack. Applikationen, 
die eine VISA-Karte brauchen laufen nicht mit den COM-Lösungen, und 
umgekehrt.

Zum Selberprogrammieren würde ich immer Prologix vorziehen (das Original 
oder eine der Millionen Selbstbau-Lösungen). Benutzer gekaufter Software 
sind aber oft auf NI/Agilent angewiesen.

von fchk (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Matthias W. schrieb:
> Hmmm schrieb:
>> Meistens stecken auch in geheimnisvollen Blackbox-Geräten nur
>> Komponenten, für die man Datenblätter bekommt.
>
> ja. Auch für die Chips die NI verbaut gibt es Datenblätter. Das hilft
> jedoch wenig wenn diese chips von einer zunehmend aufgeblasenen Firmware
> ummantelt wurden nur um ein Monopol aufzubauen und zu stützen wie es
> scheint.

NI hat nicht von Null angefangen. Die NI-Chips implementieren das 
Registerinterface des TI 9914A oder des NEC 7210. Das waren früher die 
meistverwendeten GPIB-Controller. Als diese abgekündigt wurden, hat NI 
pinkompatible Clones und später erweiterte Versionen gebaut.

> wenn es anders wäre sollte es kein Problem sein diese Karte nun ratz
> fatz mit einem low level driver in Betrieb zu bekommen, so wie man das
> früher auch mit den AT-Bus-Karten gemacht hat.

Genau.

Es hindert Dich niemand daran, einen eigenen Kerneltreiber und eine 
Usermode-DLL selber zu schreiben.

fchk

von Schlaumaier (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
Ich würde folgendes versuchen.

1.) Das Setup als Win-XP Setup zu installieren.
2.) Selbstverständlich als Admin
3.) Firewall + Co. ausschalten.
4.) Im Schlimmsten Falle die INF Datei des Treibers manipulieren. Hat 
mir einige Male geholfen.

Mit den Methoden habe ich schon Treiber unter win-7-64 installiert die 
es nur für Win-98 gab. Mein Dia-Scanner (für 5 Euro vom Flohmarkt z.b.).

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Soul E. schrieb:
> NI, Agilent etc haben eine
> eigene Software-Schnittstelle, eben diesen VISA-Stack.

Matthias W. schrieb:
> Labview
> oder die aufgesetzten Treiber wie VISA etc. möchte ich nicht dazu
> nutzen.

Eben.

von Hmmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Schlaumaier schrieb:
> Mit den Methoden habe ich schon Treiber unter win-7-64 installiert die
> es nur für Win-98 gab.

Vielleicht unter Win7-32, aber ganz sicher nicht unter -64.

von Schlaumaier (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Hmmm schrieb:
> Vielleicht unter Win7-32, aber ganz sicher nicht unter -64.

Ich habe nur Win-7-64 Bit. Und einige Treiber sind 32-Bit. Das geht 
Problemlos.

von Hmmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Schlaumaier schrieb:
> Ich habe nur Win-7-64 Bit. Und einige Treiber sind 32-Bit. Das geht
> Problemlos.

Nein.

Win7-64 kann im Userland dank WOW64 mit 32-Bit-Binaries umgehen, und 
auch das nur ohne Vermischung der Architekturen, also solange EXE und 
verwendete DLLs zusammenpassen.

Kernel-Treiber wiederum müssen immer zur verwendeten Architektur passen.

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm schrieb:
> und staunend den Source Code (der kein Wrapper für ein Windows-Binary
> ist) lesen

danke für den Hinweis !

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
fchk schrieb:
> NI hat nicht von Null angefangen. Die NI-Chips implementieren das
> Registerinterface des TI 9914A oder des NEC 7210. Das waren früher die
> meistverwendeten GPIB-Controller.

ja. Der Code in den damaligen Messgeräten war nicht sehr groß und die 
Geräte arbeiteten stabil ohne nötige Updates über Jahrzehnte. Es gab 
noch keine riesigen Flash-Speicher, sondern überschaubar große Eproms.

von Matthias W. (matt007)


Bewertung
0 lesenswert
nicht lesenswert
das Treiberpaket NI488.2 312 von 2014 ließ sich unter Win7 32bit 
installieren und der Treiber für die Karte wurde installiert, so daß das 
gelbe Rufzeichen verschwand.

es gibt auch Beispiele für C, VB dazu die einfach aussehen.

der Versuch dasselbe Paket unter Win7 64bit zu installieren klappt 
bisher nicht weil eine vorhandene NI-VISA Runtime 2.6 erst deinstalliert 
werden soll. Der Versuch dies zu tun schlägt jedoch fehl. Die 
Deinstallation startet zwar - bleibt dann jedoch hängen.

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm schrieb:
> Schlaumaier schrieb:
>> Ich habe nur Win-7-64 Bit. Und einige Treiber sind 32-Bit. Das geht
>> Problemlos.
>
> Nein.
>
> Win7-64 kann im Userland dank WOW64 mit 32-Bit-Binaries umgehen, und
> auch das nur ohne Vermischung der Architekturen, also solange EXE und
> verwendete DLLs zusammenpassen.

das war vermutlich auch mein Problem am win7-x64 mit USB3 unter virtuell 
XPmode den USB Sendestick für die ELV Thermostaten zum Programmieren zu 
nutzen, der wollte den Stick einfach nicht erkennen!

1. x64 ist nicht 32 Bit
2. USB3 ist nicht USB2

Der Stick wird einfach nicht erkannt!
https://de.elv.com/elv-funk-usb-programmierstick-eth-comfort-090470
auch nicht im Kompatiblitäts Mode XP
von wegen Kompatiblität, lachhaft!

: Bearbeitet durch User
von Hmmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Joachim B. schrieb:
> das war vermutlich auch mein Problem am win7-x64 mit USB3 unter virtuell
> XPmode den USB Sendestick für die ELV Thermostaten zum Programmieren zu
> nutzen

Wenn Du den echten XP-Mode (den es nur ab Win7 Professional gibt) 
meinst: Das ist eine vollwertige VM, da lauern die Probleme woanders.

Joachim B. schrieb:
> 1. x64 ist nicht 32 Bit
> 2. USB3 ist nicht USB2

Was einen Versuch wert wäre: VirtualBox incl. Extension Pack 
installieren, darin eine VM mit Windows 7-32 (sofern die alten Treiber 
darunter laufen) oder XP einrichten.

Der nächste Knackpunkt ist jetzt, dass Geräte, die an einem 
USB3.0-Controller des Hosts hängen, auch als USB3.0 an das Guest-OS 
durchgereicht werden, so dass ein Treiber für den virtuellen 
USB-Controller benötigt wird. Den findest Du hier: 
https://forums.virtualbox.org/viewtopic.php?f=35&t=82639#p390403

Falls das nicht klappt, gibt es noch eine aufwendigere Variante: In den 
Rechner eine USB2.0-Karte stecken und die durchzureichenden Geräte daran 
anschliessen.

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm schrieb:
> Was einen Versuch wert wäre:

habe aufgegeben, die Thermostate verabschieden sich so langsam mit 
Getriebeschäden, Ersatz gibt es nicht mehr, also sinnlos, immerhin haben 
sie 10 Jahre gut gedient, würde es noch Ersatz geben und das mit der 
Programmierung besser laufen hätte ich sie noch.
Nachhaltig und Energiesparen geht aber anders!
Geräte die man nach 10 Jahren nicht mehr nutzen kann sind nicht 
wirtschaftlich und sparen auch kein Geld. 300,-€ für die Katz, der 
Austausch zu den DECT Teilen wieder mal 200,-€ und die Software FB ist 
mieser, weniger Schaltpunkte, schlechtere Programmierung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.