首页 Net仪器控制指南仪器控制指南仪器控制指南仪器控制指南

Net仪器控制指南仪器控制指南仪器控制指南仪器控制指南

举报
开通vip

Net仪器控制指南仪器控制指南仪器控制指南仪器控制指南 C#与与与与 Visual Basic .Net仪器控制指南仪器控制指南仪器控制指南仪器控制指南 目录目录目录目录 1. 引言 2. 什么是 VISA? 3. 什么是 VISA .Net API? 4. 如何使用 VISA .Net API? 5. 结论 引言引言引言引言 由于实现仪器与 PC连接的总线种类繁多,通过微软 的.Net 应用实现仪器控制颇具挑战性。对于每一种总 线,开发人员都必须学习该总线的协议和应用编程接 口(API...

Net仪器控制指南仪器控制指南仪器控制指南仪器控制指南
C#与与与与 Visual Basic .Net仪器控制指南仪器控制指南仪器控制指南仪器控制指南 目录目录目录目录 1. 引言 2. 什么是 VISA? 3. 什么是 VISA .Net API? 4. 如何使用 VISA .Net API? 5. 结论 引言引言引言引言 由于实现仪器与 PC连接的总线种类繁多,通过微软 的.Net 应用实现仪器控制颇具挑战性。对于每一种总 线,开发人员都必须学习该总线的协议和应用编程接 口(API)以编写应用程序。VISA(虚拟仪器软件架构) 是一个高层次的驱动程序,它将用于每个仪器硬件总线类型的更低层次的驱动程序抽象化, 并提供一个单一的 API 实现与仪器的通信,而不必考虑具体的总线接口。此应用指导讨论了 如何在使用由 C#与 Visual Basic .Net编写的 VISA .Net库的.Net应用中利用 VISA,以实现 与 GPIB、串口、以太网/LAN、IEEE 1394和 USB仪器的通信。 什么是什么是什么是什么是 VISAVISAVISAVISA???? VISA 是一个驱动程序软件架构,开发这一架构的目的在于统一与 GPIB、串口、以太网/LAN、 IEEE 1394 和 USB 仪器的通信,并简化您的仪器控制应用。通过 VISA API,开发人员可以使 用 GPIB、串口、以太网/LAN、IEEE 1394 和 USB 仪器。 VISA 具备如下优势: • 接口独立性--VISA 提供了一个单一的 API 以相同的方法与仪器进行通信,而不考虑 其接口类型。例如,VISA 命令,发送一个 ASCII 字符串到一个基于消息的仪器,对 于 GPIB、串口、以太网/LAN、IEEE 1394 和 USB 接口是完全相同的。 • 一种面向对象的架构,可以方便地适应未来开发的仪器接口。 • 功能全面的仪器编程特性,通过一个非常紧凑的命令集实现。 什么是什么是什么是什么是 VISA .Net APIVISA .Net APIVISA .Net APIVISA .Net API???? VISA .Net API 是一个面向对象的接口,它由一组使用 VISA 与仪器通信的.Net 类组成。您 可以使用.Net 兼容的语言,如 C#和 Visual Basic .Net。 如何使用如何使用如何使用如何使用 VISA .Net APIVISA .Net APIVISA .Net APIVISA .Net API???? VISA .Net API 是免费的 NI-VISA 驱动程序软件的一部分。NI VISA 可以从 National Instrument VISA 免费下载以与 NI 产品结合使用。为了安装用于 NI VISA 的.Net 支持程序, 您需要在开发支持类别中选择.Net 框架 1.1 语言支持,以包括.Net 支持程序,如图 1所示。 图 1:显示.Net 支持程序的 NI-VISA 安装过程 添加到添加到添加到添加到 VisaNSVisaNSVisaNSVisaNS 类库的引用类库的引用类库的引用类库的引用 为了创建您的 C#或 Visual Basic .Net 仪器控制应用,您需要从可视化工作室中的一个解 决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 开始。在解决方案浏览器中,您将发现每个项目都拥有一个名为"引用"的类别,而各 种引用便据此分类组织。为了使用 VISA .Net API 类库,将 NationalInstruments.Common 与 NationalInstruments.VisaNS 引用添加到您的项目。NationalInstruments.Common 命名 空间包括各种为许多 NI驱动程序所使用的常见方法和属性。NationalInstruments.VisaNS 命名空间包括面向 VISA .Net API 的方法和属性。为了增加一个新的引用,右击"引用"类别 并选中"添加引用"。 将将将将 VisaNSVisaNSVisaNSVisaNS 命名空间导入到您的应用命名空间导入到您的应用命名空间导入到您的应用命名空间导入到您的应用 当您引用 VisaNS 类时,您可以在您的项目中使用它们。通过导入 VisaNS 命名空间,您可以 免除键入的必要,从而更为直接地访问对象。VisaNS 命名空间的导入,可以通过将下行代 码添加到您的应用程序的开始处完成: [C#] using NationalInstruments.VisaNS; [VB .Net] Imports NationalInstruments.VisaNS 确定仪器资源的名称确定仪器资源的名称确定仪器资源的名称确定仪器资源的名称 一项资源可以是您希望通信的 GPIB、串口、以太网/LAN、IEEE 1394 和 USB 仪器或控制器。 资源名称,也称之为仪器描述符,描述了 VISA资源的准确名称与位置。例如,资源名称 ASRL1::INSTR 描述了位于您的计算机的 COM 端口 1的仪器;GPIB0::13::INSTR 描述了一个 位于位置 13 的 GPIB 仪器。为了实现与一个使用 VISA 的仪器的通信,我们必须确定其地址 和仪器描述符。下面的链接将指向仪器控制基础(硬件部分)网页,在那里您可以找到关于 如何发现任一硬件总线的 VISA资源的文章。 仪器控制基础:硬件与总线技术 我们将在本指南的后续部分使用这一资源名称,以描述我们希望与之通信的仪器。 打开一个打开一个打开一个打开一个 VISAVISAVISAVISA 会话会话会话会话 一个会话是自 VISA .Net API 到一项资源的一个连接或链接。VISA .Net API 包含专为特殊 应用 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的不同的会话类。例如,MessageBasedSession 类适用于通过发送和接收文本字符 串形式的消息进行通信的仪器。与之相对的是,RegisterBasedSession 类被用于与通过读 写寄存器进行通信的仪器进行通信。本指南将讨论 MessageBasedSession 类。如果您希望了 解关于其它会话类的更多信息,敬请参阅随 NI VISA 安装的 NI-VISA .Net 框架帮助文档。 创建一个新的 MessageBasedSession 的第一步便是将其声明为我们的应用程序中的一个变 量。下述代码演示了如何声明一个新的 MessageBasedSession: [C#] private MessageBasedSession mbSession; [VB .Net] Private mbSession As MessageBasedSession 在 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 或类中将这个 MessageBasedSession变量声明为一个全局变量非常重要。与仪器通信的 任一个函数都将不得不访问该对象。 在声明 MessageBasedSession变量后,我们需要实例化一个 MessageBasedSession 对象。为 完成这一工作,我们将使用静态方法(或者像在 Visual Basic 中那样称为共享方法) --ResourceManager 类的 GetLocalManager。该方法实例化一个新的 ResourceManager 对象。 这个新的 ResourceManager 对象包含一个名为 Open(打开)的函数,然后该函数实例化一 个新的会话对象。最后,我们将新创建的会话对象映射到一个 MessageBasedSession。 ResourceManager 类与会话类所包含的功能特性远超出我们在此指南中讨论所涉及的。如果 您希望了解关于这些类的更多信息,敬请参阅随 NI VISA 安装的 NI-VISA .Net 框架帮助文 档。下述代码展示了如何在一行代码中执行这三项操作: [C#] mbSession = (MessageBasedSession)ResourceManager.GetLocalManager(). Open(resourceString.Text); [VB .Net] mbSession = CType(ResourceManager.GetLocalManager(). Open(resourceString.Text), MessageBasedSession) ResourceManager 对象的 Open(打开)方法将仪器的资源名称(字符串形式)视为一项参数 输入。我们在本指南的前面部分已经讨论了如何发现我们的仪器的资源名称。为使我们的应 用程序更为健壮,我们将添加 try(尝试)与 catch(捕捉)函数。Try(尝试)与 catch(捕 捉)函数使我们能够响应在特定函数执行过程中发生的任何错误。特别的是,我们将通过异 常类型捕捉 InvalidCastException 类型的异常和所有其它异常。下述代码展示了如何实现 try(尝试)与 catch(捕捉)函数: [C#] try { mbSession = (MessageBasedSession)ResourceManager.GetLocalManager(). Open(resourceString.Text); } catch(InvalidCastException) { MessageBox.Show("Resource selected must be a message-based session"); } catch(Exception exp) { MessageBox.Show(exp.Message); } [VB .Net] Try mbSession = CType(ResourceManager.GetLocalManager(). Open(resourceString.Text), MessageBasedSession) Catch exp As InvalidCastException MessageBox.Show("Resource selected must be a message-based session") Catch exp As Exception MessageBox.Show(exp.Message) End Try 发送数据发送数据发送数据发送数据 在创建了一个与我们的仪器通信的会话之后,我们可以开始发送数据至该仪器,并读回其响 应。在于基于消息的仪器的通信中最为常用的三项操作为查询、写入和读取。查询操作将一 个命令写入到一个仪器并读回其响应。在另一方面,写入命令仅发送一个命令至仪器,而读 取命令从仪器读取信息。下述代码片断展示了如何使用查询操作: [C#] try { string responseString = mbSession.Query(stringToWrite.Text); } catch(Exception exp) { MessageBox.Show(exp.Message); } [VB .Net] Try Dim responseString As String = mbSession.Query(stringToWrite.Text) Catch exp As Exception MessageBox.Show(exp.Message End Try 由于读取和写入操作是 MessageBasedSession 类的方法,因而其实现与查询操作非常相似。 如果您希望了解关于这些操作的更多信息,敬请参阅随 NI VISA 安装的 NI-VISA .Net 框架 帮助文档。 关闭该关闭该关闭该关闭该 VISAVISAVISAVISA 会话会话会话会话 为了关闭我们创建的与我们仪器通信的 VISA会话,我们必须使用 MessageBasedSession 类 的 Dispose(处置)方法。该方法释放为该会话分配的所有资源。下述代码展示了如何处置 一个会话: [C#] mbSession.Dispose(); [VB .Net] mbSession.Dispose() 结论结论结论结论 NI VISA 是一个面向多种仪器控制的快速且方便的解决方案。VISA .Net API 提供了一个面 向对象的接口,以实现与您的仪器的方便通信。
本文档为【Net仪器控制指南仪器控制指南仪器控制指南仪器控制指南】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_460290
暂无简介~
格式:pdf
大小:259KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2011-05-23
浏览量:12