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)代码: