https://blog.csdn.net/meizuover/article/details/79390477 1.第一步,硬件准备。 一台安捷伦8753ES矢网,一台E4440A频谱仪,GPIB448连接线一条,安捷伦GPIB转usb连接器一条,win7计算机一台。 2.第二步,软件准备。 Agilent io libraries suite,笔者用的是16版本。这个软件主要是提供安捷伦仪器的驱动,装好打开就ok。
Microsoft Visual Studio2010,这个版本虽然没有花哨的功能,但是优点是比较稳定,兼容性强,编写工控机足够。

*如果你还没有VISA库,建议去NI官网下载安装。 3.第三步,创建vs c#工程
 
然后添加引用 
主要一定要添加正确的库,如果你的电脑里面没有这两个库,那么你可能没有安装相应的库文件,可以去VISA官网里找。 正确添加后,你点引用里面会出现VisaComLib这个引用。

然后你需要添加Visa的引用using Ivi.Visa.Interop;。

到这一步,前期的准备工作已经做完了。
4.第四部,打开GPIB. 在全局定义接口的实例。
private Ivi.Visa.Interop.FormattedIO488 ioDmm;
private Ivi.Visa.Interop.FormattedIO488 ioAvocado;
ResourceManager grm = new ResourceManager(); ioDmm是用来打开矢网(8753ES),ioAvocado是用来打开频谱仪(E4440A)。grm是资源管理器的实例。接下来创建一个按键Button,下面是button的点击事件。主要是打开设备。GPIB0::16::INSTR和GPIB0::18::INSTR就是你仪器的地址,不同的环境下会不一样,可以连接Agilent IO Libraries查看。发送“*IDN?”就是查询仪器的信息,正确连接设备的话,设备会返回你信息。
private void button1_Click(object sender, EventArgs e)
{
try
{
ioDmm.IO = (IMessage)grm.Open("GPIB0::16::INSTR", AccessMode.NO_LOCK, 2000, "");
ioAvocado.IO = (IMessage)grm.Open("GPIB0::18::INSTR", AccessMode.NO_LOCK, 2000, "");
//ioDmm.WriteString("POWE -52dBm");
}
catch (SystemException ex)
{
MessageBox.Show("Open failed on " + this.textBox2.Text + " " + ex.Source + " " + ex.Message, "EZSample", MessageBoxButtons.OK, MessageBoxIcon.Error);
ioDmm.IO = null;
//SetAccessForClosed();
return;
}
//SetAccessForOpened();
ioDmm.WriteString("*IDN?", true);
textBox1.Text = ioDmm.ReadString()+" ";
ioAvocado.WriteString("*IDN?", true);
textBox1.AppendText(ioAvocado.ReadString());
} 5.第五步,控制矢网和频谱仪。
设置矢网的中心频率和带宽。 ioDmm.WriteString("CENT 1568MHz"); ioDmm.WriteString("SPAN 30MHz"); 设置频谱仪的中心频率和带宽。
ioAvocado.WriteString("FREQ:CENT 1568e6");
ioAvocado.WriteString(":FREQ:SPAN 130e6");
|