Commandes GPIB C # Visual Studio

Quelles commandes utilisez-vous pour parler à un instrument GPIB en C #, Visual Studio? Je dois être capable d’écrire des commandes sur l’instrument et de lire la sortie.

J’utilise Agilent IO Library Suite .

Voici un tutoriel pour l’utiliser sur C #: exemples de programmation d’E / S en C #

Néanmoins, dans mon entreprise, nous avions des problèmes de stabilité avec la mise en œuvre de VISA-COM. Nous avons donc écrit notre propre wrapper autour de visa32.dll (qui fait également partie de la suite IO Library) à l’aide de P / Invoke.

(Divulgation: je travaille dans une entreprise qui utilise intensément les instruments GPIB)

Envoyer des commandes sur le port série.

Voir Exemple de port COM de Microsoft.

Vous devez d’abord créer un object avec la classe LangInt. Puis utilisez cet object avec les méthodes GPIB. Les plus courants et utilisés sont (en supposant que vous avez créé un object nommé “dev”);

dev.ibwrt(deviceHandle, "*IDN?", "*IDN?".Length); dev.ibrd(deviceHandle, out Value, Arraysize); 

Ces deux peuvent interroger l’appareil. Vous pouvez également les utiliser consécutivement, par exemple pour définir la fréquence d’un générateur, puis son amplitude.

Partie importante est avant d’envoyer des commandes SCPI; vous devez d’abord initialiser les périphériques. Pour faire cet usage;

 deviceHandle = ibdev(GPIBINDEX, GPIBADDRESS, SECONDARYADDRESS, TIMEOUT, EOTMODE, EOSMODE); 

Ces parameters doivent être déclarés en premier dans le code. Après l’initialisation, vous pouvez utiliser chaque commande GPIB avec les descripteurs de ce périphérique.

Et bien sûr, vous devez append NationalInstruments.NI4882 et LangInt.dll à votre projet.

J’utilise National Instruments VISA et NI 488.2 .

Tout d’abord, assurez-vous d’avoir vérifié l’ VisaNS.NET API dans le programme d’installation de NI-VISA, voir la figure suivante:

entrez la description de l'image ici

Ajoutez une référence à NationalInstruments.VisaNS et NationalInstruments.Common à votre projet.

Créez une MessageBasedSession , voir le code suivant:

 ssortingng resourceName = "GPIB0::20::INSTR"; // GPIB adapter 0, Instrument address 20 var visa = new NationalInstruments.VisaNS.MessageBasedSession(resourceName); visa.Write("*IDN?"); // write to instrument ssortingng res = visa.ReadSsortingng(); // read from instrument 

Une MessageBasedSession peut être utilisée pour communiquer avec votre instrument via GPIB, Ethernet ou USB.