C#1程控基础篇 #
操作系统:Windows7 IDE:VS2015 Visa版本:17.5 通信方式:LAN
在开发之前请确保已配置visa开发环境,参考 Visa开发环境搭建
运行本程序后,点击界面上的按钮,会在下方的文本框中输出查询到的仪器标识:China Electronics Technology Instruments Limited Company,3672D,1801001,2.1.0。下面具体介绍整个实现过程。
第一步:新建项目 #
新建项目,选择Visual C#->Windows Forms Application并命名为dem1
第二步:引入visa32.dll到项目中 #
(1)把visa32.dll文件放在工程的debug目录下,这里需要注意,由于visa32.dll是.NET非托管的程序集,所以不能直接引入,需要显示引入,负责引入的类文件为visa32.cs。
(2)添加visa32.cs类文件。
在文章最后面提供了本例的源代码,里面提供了visa32.cs文件。
第三步:设计界面 #
这里只设计了一个简单的按钮和文本框:
第四步:编写程序 #
双击按钮后,在Form1.cs中输入下列代码:
using System;
using System.Text;
using System.Windows.Forms;
namespace dem1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int sesn = 0;
int viStatus;
int vi = 0;
int retCount;
byte[] bytes = new byte[255];
viStatus = visa32.viOpenDefaultRM(out sesn);//打开VISA资源管理器句柄
viStatus = visa32.viOpen(sesn, "TCPIP0::172.16.1.201::5025::SOCKET", visa32.VI_NO_LOCK, visa32.VI_TMO_IMMEDIATE, out vi);//打开仪器句柄。TCPIP0::172.16.1.201::SOCKET为网络分析仪的IP地址和端口号。这里使用的是我的配置,要根据自己的情况进行改动。
viStatus = visa32.viPrintf(vi, "*IDN?\n");//查询仪器标识
viStatus = visa32.viRead(vi, bytes, 79, out retCount);
visa32.viClose(vi);//关闭VISA资源管理器
visa32.viClose(sesn);//关闭仪器
string idnStr = Encoding.ASCII.GetString(bytes, 0, bytes.Length);//byte[]转字符串
textBox1.Text = idnStr;
idnStr = null;
}
}
}
第五步:运行程序 #
运行程序,点击按钮后输出: