C#1程控基础篇

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

图-2008

第二步:引入visa32.dll到项目中 #

(1)把visa32.dll文件放在工程的debug目录下,这里需要注意,由于visa32.dll是.NET非托管的程序集,所以不能直接引入,需要显示引入,负责引入的类文件为visa32.cs。

(2)添加visa32.cs类文件。

在文章最后面提供了本例的源代码,里面提供了visa32.cs文件。

第三步:设计界面 #

这里只设计了一个简单的按钮和文本框:

图-2009

第四步:编写程序 #

双击按钮后,在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;
        }
    }
}

第五步:运行程序 #

运行程序,点击按钮后输出:

图-2010