C#控制台程序通过VISA对电源进行自动化控制

准备环境

1.NI-VISA环境,visual studio,电源仪器及其SCPI编程说明文档

官方例程相关介绍

对于初学者,官方提供了一些例程参考。
路径:C:\Users\Public\Documents\National Instruments\NI-VISA\Examples
通过例程了解到 .NET 开发需要引用Ivi.Visa和NationalInstruments.Visa两个库文件。
以下是常用的类,接口的相关介绍

命名空间NationalInstruments.Visa

ResourceManager类

提供打开VISA会话、解析资源字符串和在系统上查找可用资源的功能。 该类型提供了基于资源字符串实例化正确的VISA会话所需的所有功能。

  1. NationalInstruments.Visa.ResourceManager.Find(System.String)函数
    查找系统上的可用资源。
  2. NationalInstruments.Visa.ResourceManager.Open(System.String)函数
    实例化该资源字符串的特定会话对象。

MessageBasedSession类

拥有带参初始化函数,从传入的资源名称,接入模式和接入等待时长三个参数初始化NationalInstruments.Visa.MessageBasedSession实例

  1. IMessageBasedFormattedIO接口的引用:调用该接口的相关方法
  2. IMessageBasedRawIO接口的引用:调用该接口的相关方法

命名空间Ivi.Visa

IMessageBasedFormattedIO接口

IMessageBasedFormattedI0接口包括将数据格式化并解析为仪器格式或从仪器格式解析数据的方法,以及管理高效执行所需的格式化I/o读写缓冲区的方法。它能正确处理线路终止和缓冲区冲洗。当写入仪器时,格式化的I/0可以轻松发送完整和正确的仪器命令。从仪器读取数据时,格式化的I/0可以轻松读取和解析完整的响应。

  1. Write系列函数:将要输入的参数以特定形式写入缓冲区,注意这里是仅仅写入不发送到仪器
  2. FlushWrite函数:将写缓冲刷新并且将缓冲区的内容发送到仪器,仅对缓冲区做操作
  3. 带有flush的print函数和write函数才拥有发送和清缓冲两种功能

IMessageBasedRawIO接口

IMessageBasedRawIO接口包括从设备读取和写入数据的方法,而无需尝试格式化或解析数据。它还能够通过一组灵活的机制来执行异步I/o读写,以通知调用程序异步I/o操作已完成。

  1. write系列函数:直接将参数内容发送到仪器
  2. read系列函数:以指定格式存储读仪器返回的内容并返回

实际操作部分

连接硬件设备

此次使用usb进行连接,打开电源设备,usb连接到仪器和pc端,打开NI-MAX软件检查设备是否可以被检测到,当设备树出现相关地址时表示连接成功,此时可以打开测试模块检查通信是否正常。

vs2019新建控制台工程,添加上述库文件的引用

在这里插入图片描述
注意:此处还可以引用非官方例程中的库文件,也拥有相同的效果,并且使用较为简单,如下所示:
在这里插入图片描述

同样是使用ResourceManager打开会话,但使用FormattedIO488接口对设备进行读写操作,此接口的使用较为简洁,仅有一对read和write方法。

寻找设备资源,创建并打开会话,建立连接

在这里插入图片描述在这里插入图片描述

发送/接收消息

此处需要根据设备编程手册组件消息体,将消息通过上述write的方式发送到仪器设备,若查询状态则用read读取消息
在这里插入图片描述

实现程序自动控制

在基本的通信完成后,添加基本的循环/分支语句,实现仪器的自动控制,例如设定电压电流,测量仪器的输出电压电流等,需要根据具体仪器的编程手册发送对应的消息。

控制部分总览

若是官方教程的仿写,可以参考下方程序
在这里插入图片描述
此处实现仪器型号的访问功能,由控制台打印输出。

小结

实现仪器自动化控制测试有很多方式,此处仅介绍利用c#语言结合VISA的库进行简单的控制通信。还可以利用c++/QT平台结合VISA进行开发,或者直接利用LabView进行图形化开发控制等等。

  • 1
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值