c#GPIB控制安捷伦矢网和频谱仪

1.第一步,硬件准备。

      一台安捷伦8753ES矢网,一台E4440A频谱仪,GPIB448连接线一条,安捷伦GPIB转usb连接器一条,win7计算机一台。

2.第二步,软件准备。

    Agilent io libraries suite,笔者用的是16版本。这个软件主要是提供安捷伦仪器的驱动,装好打开就ok。

    
    Microsoft Visual Studio2010,这个版本虽然没有花哨的功能,但是优点是比较稳定,兼容性强,编写工控机足够。

    *如果你还没有VISA库,建议去NI官网下载安装。

3.第三步,创建vs c#工程


c#GPIB控制安捷伦矢网和频谱仪_第1张图片c#GPIB控制安捷伦矢网和频谱仪_第2张图片

然后添加引用

c#GPIB控制安捷伦矢网和频谱仪_第3张图片

主要一定要添加正确的库,如果你的电脑里面没有这两个库,那么你可能没有安装相应的库文件,可以去VISA官网里找。c#GPIB控制安捷伦矢网和频谱仪_第4张图片

    正确添加后,你点引用里面会出现VisaComLib这个引用。

c#GPIB控制安捷伦矢网和频谱仪_第5张图片

    然后你需要添加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");

    其他操作请上官网查询编程手册,或加我私人qq934103320有偿帮助。




    


你可能感兴趣的:(c#GPIB控制安捷伦矢网和频谱仪)