20240128 C#控制SCPI协议设备

本文介绍了如何在VS2015及以上环境中安装NI-VISA驱动,包括官网下载、配置.NET选项,以及进行TCP/IP通信的基本示例。还提到在多线程操作中可能出现的异常处理方法。
摘要由CSDN通过智能技术生成

1)在VS2015或者更高环境下调试;具体安装网上找;visual studio 2019安装教程(详细的很)_vs2019安装教程-CSDN博客

2)安装NI-VISA驱动

下载和安装驱动

进入NI 官网,点击Support,根据设备类型选择下载,如果不是GBIP接口的仪表,可以像我一样,选择NI-VISA 。
下载后,一路点击下一步安装,安装选项一定要包含如下.NET选项项:

https://www.ni.com/en-us.html

在这里插入图片描述
在这里插入图片描述

3)安装后在安装路径下会有一些实例

参照其中的一个进行编写即可;其中需要引用对应的库文件,参照实例程序

路径通过属性查看即可;然后在需要的地方引用对应的库文件即可

4)然后就是找到对用的资源,然后打开,进行读写操作;下面是一个最简单的操作过程,

        private string m_addr;
        private TcpipSession m_section;
        private IMessageBasedRawIO m_io;


            m_addr = "TCPIP0::192.168.1.10::inst0::INSTR";
            m_section = new TcpipSession(m_addr);
            m_io = m_section.RawIO;

            //string m_addr = "TCPIP0::192.168.1.10::inst0::INSTR";
            //TcpipSession m_section = new TcpipSession(m_addr);
            //IMessageBasedRawIO m_io = m_section.RawIO;

            String setVOL = "VOLT 28.002";
            m_io.Write(setVOL);
            Thread.Sleep(1000);
            String setCURR = "CURR 51.000";
            m_io.Write(setCURR);
            Thread.Sleep(1000);

            //setcmd(m_io, setVOL);
            m_io.Write("VOLT?");
            String s = m_io.ReadString();
            //Console.WriteLine(s);
            //m_section.Dispose();
            //Console.ReadLine();

 5)正常的使用,是先通过搜索当前有的资源,然后选择对应的资源,打开资源,控制资源;关闭资源;

发现所有资源,并添加的lboxResources listbox中

            using (var rmSession = new ResourceManager())
            {
                var resources = rmSession.Find("(ASRL|GPIB|TCPIP|USB)?*");
                foreach (string s in resources)
                {
                    lboxResources.Items.Add(s);
                }
            }

6)实现多线程操作的时候会提示一个异常

““System.InvalidOperationException”类型的未经处理的异常在 System.Windows.Forms.dll 中发生 其他信息: 线程间操作无效: 从不是创建控件“textBoxCurrGet”的线程访问它。”

需要在form load的时候执行一句话

System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;

7)代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值