ドットNET系の開発言語でGP-IBを動かす。

ドットNET系の開発言語でGP-IBを動かす。

自分自身の覚書という意味合いで、Ni社のGP-IBインターフェースを使った時のGP-IBプログラミング例を記しておこうと思う。
NationalInstruments.NI4882.dll及びNationalInstruments.Common.dllを参照した上で、下記のコードを記述する。

[VB.NET]
Imports NationalInstruments.NI4882
Public Class Form1
Private GPIBDevice As Device

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
GPIBDevice = New Device(0, 26)  ’この場合は、タイムアウトが設定できない。タイムアウトを設定する場合、Device(0,26,0,タイムアウト時間)という記述になる。
GPIBDevice.Write(“*IDN?”)
MsgBox(GPIBDevice.ReadString(200))
End Sub
End Class
※上記は、All About CircuitsというサイトのQAコーナーに掲載されていた一例。*IDN?を送って、機器名の問い合わせを行い、メッセージBOXで表示する。

で、こいつをVC#にすると、こうなる。↓
[VC#.NET]
using NationalInstruments.NI4882;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
GPIBDevice Device;
GPIBDevice = New Device(0, 26);  ’この場合は、タイムアウトが設定できない。タイムアウトを設定する場合、Device(0,26,0,タイムアウト時間)という記述になる。
GPIBDevice.Write(“*IDN?”);
MessageBox.Show(GPIBDevice.ReadString(200));

}
}
}

あれれ?VBとVC#は似てますな。当然だけれど。
オープンするには、New Deviceでインスタンスを生成すればOK。
例のままでは、クローズしていないのでよろしくないから、GPIBDevice.Dispose()(VC#は;を忘れずに!)を付けて、クローズする。
データ読み込みに使うReadStringは、例では(半角)200文字限定にしているけれど、ReadString()として文字数無制限にすることもできる。
以上、VB.NETとVC#.NETで簡単にできるGP-IB講座でした~(爆)