GPIB-Messtechnik ist nicht nur für „alte“ Programmiersprachen ansprechbar - dank GPIB-Hardware von NI funktioniert der Messbus mit aktuellen Entwicklungsumgebungen. Hier ein kleiner Versuch mit Visual Studio 2019 und einem Keysight 6624A.
Worum geht es hier?
Der in der Abbildung gezeigte Stecker ist auf jeder Menge Messtechnik zu finden - die meisten Benutzer sehen ihn, und betrachten ihn als „gottgegebene Lästigkeit“.
Bildquelle: Autor.
Der von HP unter dem Stichwort HPIB eingeführte Bus läuft heute unter dem Namen GPIB, und wurde von der IEEE unter der Standardisierungsnummer 488 standardisiert. Wer in seinem Labor GPIB-Hardware hat, ist gut beraten, den Aufwand für die Konfiguration auf sich zu nehmen - in der Welt des ATE, kurz für Automated Test Equipment, sind faszinierende Zeitersparnisse möglich.
Erster Akt: Hardware.
Möchte man die National Instruments-API nutzen, ist die Verwendung der hauseigenen Hardware der beste Weg. Der Autor setzt eine PCIe-Karte ein, es gibt für diverse andere Schnittstellen Unterstützung. Bei USB-Wandlern auf Ebay ist das Fälschungsrisiko allerdings hoch. Hier sei auf das in der Abbildung gezeigte KISS.488 verwiesen - sofern sie nur Screenshots abernten wollen, ist dieses Gerät die beste Lösung.
Bildquelle: Instagram: tam.hanna, Gerät Leihgabe von https://www.hxengineering.com/ieee-488-to-ethernet/
Im Bereich der unterstützten Entwicklungsumgebungen ist NI konservativ, und beschränkt sich derzeit auf Visual Studio 2019. Die Community-edition funktioniert problemlos, achten Sie darauf, im Installation-Assistenten erstens alle Aktualisierungen einzuspielen und danach die Payload .NET-Desktopentwicklung zu animieren. Im nächsten Schritt folgt die URL https://www.ni.com/hu-hu/support/downloads/drivers/download.ni-488-2.html, wo NI die Treiberkomponente für die GPIB-Karte anbietet. Die Installation erfolgt in zwei Stufen - zuerst installiert sich ein Paketmanager, dieser holt die eigentlich benötigten Elemente. Wichtig ist das Markieren der diversen für das.net-Framework 4.5 benötigten Komponenten herunterladen müssen. Während dem „Deployments“ der diversen Komponenten ist es empfehlenswert, unter Nutzung von NI MAX zu prüfen, ob die verschiedenen Messgeräte sichtbar sind. Auf „nicht-Antworten“ der IDN-Anfrage hinweisende Fehlermeldungen sind irrelevant - wichtig ist nur, dass GPIB-Messgeräte nur im eingeschalteten Zustand sichtbar sind.
Zweiter Akt: Projektskelett einrichten und GPIB-Karte ansprechen
Als Nächstes folgt die Erzeugung eines Projektskeletts. Die von NI zur Verfügung gestellten APIs und Bibliotheken sind .net-basiert - in UWP-Applikationen sind sie nicht ansprechbar. Der Autor verwendet gerne Kommandozeilen-Applikationen oder WPF-Applikationen, um „klassische“ Methoden zur Threadsynchronisation verwenden zu können - das „kurzfristige“ Anhalten eines Threads, um eine Messgerät Zeit zur Rekonfiguration zu geben, ist hilfreich. Nach der Erzeugung des Projektskeletts sind die folgenden Erweiterungs-Assemblies notwendig:
1 |
National Instruments 488.2 |
2 |
National Instruments Common |
Die Inbetriebnahme der GPIB-Karte erfolgt unter Auslassung des Exception-Handlings durch folgende Kommandofolge:
1 |
static NationalInstruments.NI4882.Board GPIBCard; |
2 |
static void Main(string[] args) { |
3 |
try { |
4 |
GPIBCard = new NationalInstruments.NI4882.Board(0); |
5 |
Console.WriteLine("GPIB up!"); |
6 |
}
|
Wichtig ist, dass die NI-API Einsatzszenarien unterstützt, in denen eine Workstation mehr als einen GPIB-Transciever aufweist. In diesem Fall bekommen die einzelnen Elemente numerische IDs eingeschrieben – hier gibtg es nur eine GPIB-Karte, die ID ist null. Im nächsten Schritt erfolgt die Erzeugung des device-Objekts, das eine Gegenstelle darstellt - 7 ist die dem HP 6624A zugegebene Adresse:
1 |
try { |
2 |
GPIBCard = new NationalInstruments.NI4882.Board(0); |
3 |
PSU = new Device(0, 7); |
„Letzte Amtshandlung“ ist dann der Aufruf von Write, um Informationen in Richtung der GPIB-Hardware weiterzuschicken:
1 |
PSU.Write("VSET 3,3;ISET 3,0.5;\n"); |
Der Aufbau der zu übertragenden Informationen ist von Gerät zu Gerät unterschiedlich - im Fall höherwertiger Messtechnik finden sich „Programmer‘s Manuals“, die weitere Informationen zur Verfügung stellen. Lohn der Ausführung des hier gezeigten Code-Snippet ist, dass der dritte Kanal 3 V bei einer Strombegrenzung von 0,5 A anbietet.
Fazit
GPIB mag auf den ersten Blick „aufwändig“ erscheinen - ist die Karte gekauft und die erste Solution geschrieben, so möchte man das Meßnetz bald nicht mehr missen.