拙网论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 294|回复: 0

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

[复制链接]

949

主题

1001

帖子

3736

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3736
发表于 2018-7-19 11:35:54 | 显示全部楼层 |阅读模式

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");


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|抱朴守拙BBS

GMT+8, 2025-5-26 06:21 , Processed in 0.189656 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表