使用C# 编写VISA相关的代码控制 keysight 34461A万用表
- 1. 获取设备
- 2. 开始编程
- 2.1 创建项目
- 2.2 编程
- 2.3 全部工程代码
软件控制仪器仪表的教程在网上相对比较少,都是一段一段的代码,没有从头开始带初学者来进行操作的一个完整流程,整个方案难度不高,跟着教程走的话,大家都可以开始自己的仪表编程。
希望给后来者一些帮助
1. 获取设备
我这使用的是keysight的万用表,可以使用它配套的软件 keysight connection expert 来获取设备信息
如果没有安装的话,需要安装这个软件
2. 开始编程
2.1 创建项目
我这使用的软件版本是:Visual Studio 2022,如果你是之前的版本,推荐更换成我这个
2.2 编程
给界面上放置一个按键,后续代码就写在这个按键中去。
可以看到,添加了Visa相关的信息。
2.3 全部工程代码
下面就是完整的 Form1.cs文件下的代码
如果需要开发其他的功能,可以自行在代码中添加功能
其中你的设备号,需要根据第一章节的提示获取
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace VISA
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//申明一个设备
var session = (Ivi.Visa.IMessageBasedSession)
Ivi.Visa.GlobalResourceManager.Open("你的设备号");
//发送指令,并且读取返回值
session.FormattedIO.WriteLine("*IDN?");
string idName = session.FormattedIO.ReadLine();
Console.WriteLine($"*IDN? = {idName}");
//电压
//session.RawIO.Write(":MEASure:VOLTage:DC?\n");
// idName = session.FormattedIO.ReadString();
//Console.WriteLine($"DC? = {idName}");
//电流
session.RawIO.Write(":MEASure:CURRent:DC?\n");
idName = session.FormattedIO.ReadString();
Console.WriteLine($"CURRent = {idName}");
//频率
session.RawIO.Write(":MEASure:FREQuency?\n");
idName = session.FormattedIO.ReadString();
Console.WriteLine($"频率? = {idName}");
//释放 session
session.Dispose();
session = null;
}
}
}
下面就是打印出来的log信息
PS: 控制仪器设备,确实是比较冷门的操作,但学会了却能很大的提升工作效率,希望能对各位带来帮助