当前位置: 首页 > article >正文

C# 基于winform 使用NI-VISA USB口远程控制电源 万用表

1.下载完整版本NI-VISA

NI-VISA Download - NI

*注意支持的操作系统,以便后期编译

安装完成之后,打开NI MAX,插上usb口,打开测试面板进行通信

2.编程示例

见本地文件夹C:\Users\Public\Documents\National Instruments\NI-VISA\Examples\.NET

首先添加引用

不同操作系统可引用的组件不同,win11引用NationalInstruments.Visa,win10 win7 引用ivi.visa

//win11

using Ivi.Visa;
using NationalInstruments.Visa; // 引用NI VISA库
//查找设备
private void SelectResource_Load(object sender, EventArgs e)
        {
            using (var rmSession = new ResourceManager())
            {
                var resources = rmSession.Find("(ASRL|GPIB|TCPIP|USB)?*");
                foreach (string s in resources)
                {
                    availableResourcesListBox.Items.Add(s);
                }
            }
        }

ResourceManager resourceManager = new ResourceManager();
MessageBasedSession tmcSession = (MessageBasedSession)resourceManager.Open("USB0::0x05E6::0x2220");//资源名称

tmcSession.RawIO.Write("*IDN?");//发送命令
tmcSession.FormattedIO.FlushWrite(true);
string[] res = new string[] { "", "", "", "" };
tmcSession.FormattedIO.Scanf("%,s", out res);//读取命令
//win10  win7 查找设备

using Ivi.Visa.FormattedIO;//win10  win7
using Ivi.Visa;

private void SelectResource_Load(object sender, EventArgs e)
        {
            IEnumerable<string> devices;
            try
            {
                devices = GlobalResourceManager.Find();
                foreach (string device in devices)
                {
                    Console.WriteLine("\tAddress: {0}, Alias: {1}", device, GlobalResourceManager.Parse(device).AliasIfExists);
                    availableResourcesListBox.Items.Add(device);
                }
            }
            catch (VisaException ex)
            {
            }
        }



//发送命令  读取命令
IMessageBasedSession session = GlobalResourceManager.Open("USB0::0x05E6::0x2220") as IMessageBasedSession;
MessageBasedFormattedIO formattedIO = new MessageBasedFormattedIO(session);
formattedIO.WriteLine("*IDN?");//发送命令
string res = formattedIO.ReadLine();//读取命令

设备具体编程命令可见用户手册,是德电源2200系列常见命令

是德万用表常见命令

欢迎一起讨论~


http://www.kler.cn/news/340883.html

相关文章:

  • vue中的keep-alive用过吗?什么是keep-alive?
  • Python 工具库每日推荐【Pillow】
  • 开源的键鼠共享工具「GitHub 热点速览」
  • 网络安全-Wireshark抓包的TCP三次握手
  • Ubuntu下Typora的安装与配置激活
  • 数据结构前置知识(上)
  • C/C++解析文件名和目录路径
  • K8s(学习笔记)
  • 【Oracle APEX开发小技巧9】通过页面设置文本大写避免upper()函数转换占用额外资源
  • 息肉检测数据集 yolov5 yolov8适用于目标检测训练已经调整为yolo格式可直接训练yolo网络
  • Axios 和 Ajax 的区别与联系
  • 【React】setState (useState) 是怎么记住上一个状态值的?
  • (1)Matlab画常见普通柱状图
  • 使用YOLOv11进行视频目标检测
  • Leetcode 18. 四数之和
  • C++面试速通宝典——13
  • 报销系统数据库设计
  • 系统架构设计师教程 第13章 13.6 物联网层次架构设计 笔记
  • 动态规划算法专题(六):回文串问题
  • Fetch获取内容乱码问题