基于LabVIEW串口通信的研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

理论与方法
来实现串口的通信。将 M SCOM M32. OCX 文件 注册并 且 导 入 到 LabVIEW 当 中 , 这 样 我 们 的 U SER. CON TROL 下面 有 M icrosoft Comm unication Control. ctl 。这 样我们可以 很方便 的使 用 A ctiveX 组件 从而 实现串 口 通信。 2. 2 MSCOMM32 控件初始化
表 1 串行通讯节点功能表 Table1 function table of serial communication nodes V I 功能
如果初始化没有问题, 就可以使用这个串口进行数据 收发。发送数据使用 VISA Write, 如图 3 所示。接收数 据使用 V ISA Read, 如图 4 所示。在接收数据之前需要使 用 V ISA Bytes at Serial Port 查询当前串口接收缓冲区中 的数据字节数, 如果 VISA Read 要读取的字节数大于缓 冲区中的数据字节数 , VISA Read 操作将一直等待, 直至 T im eout 或者缓冲区中的数据字节数达到要求的字节数。 当然也可以分批读取接收缓冲区或者
虚拟仪器的软件系统框架包括三个部分: V ISA 库、
作者简介 : 吕向锋 , 硕士研究生 , 主要研究方向为装备 管理与技术保障。 中国科 技核心期刊
27
理论与方法
仪器驱动程序、 应用软件。 VISA 作为测试程序和数据传 输总线的中间层, 为应用程序和仪器总线的通信建立了通 道
[ 2]
2009 年 12 月 第 28 卷 第 12 期
。VISAI/ O 库为 应用程序 的建立 提供了一 致的 接
口 , 因而应 用程序 不需 要关 心实 际的 数据 传输 介质 是 GPIB 电缆还是串口线, 可以认为在 VISA 库中包含了与 各种接口进行连接所需的程序。 VISA 是应用于仪器编 程的标准 I/ O 应用程序接口( API) , V ISA 本身并不具有 仪器编程能力 , VISA 是调用低层驱动 器的高层 A PI [ 3] 。 使用时需要安装 VISA 驱动程序。 1. 1 LabVIEW 串口 VI 介绍 LabVIEW 的串口通讯 VI 位于 Instrument I/ O Plat te 的 Serial 中, 常用的 VI 节点[ 4] 如表 1 所示:
0 引

[ 1]
验室虚拟仪器集成环境 ) 。 LabVIEW 作为一个专为测试 测量设计的编程语言 , 使用了工程师们最熟悉的图形化的 编程方式, 能够帮助用户高效和快速的开发测试应用。伴 随着 LabV IEW2009 的推出, 使用 LabVIEW 进行数据采 集和仪器控制的功能被进一步的加强, 目前 , LabVIE W 已 逐渐地成为测试测量行业标准的软件开发平台。 在 L abVIEW 中 实现 串行 通信 的方 式 主要 有利 用 VISA 和使用 Act iveX 控件两种。
[ 7]
将串口控 件放置 在 Front Panel 上 , 在 框图 程序中 用控件属性就可以对其进行编 程 , 实现所 需要的功能。 在实 际 操 作 的 时 候 , 一 个 串 口 资 源 只 可 以 有 一 个 M SCOM M 控件与之相对应 , 如果在一个程序中同时需 要进行多 个串 口的 通信 , 则 必须 调 出多 个 M SC OMM 控件进行编程。 首先把 LabV IEW 中切换到框图程序 环境 , 可以发 现一个带有 M SCOM M 字样的控件。现 在就可以按照 VC+ + 等代码式编程语言的 编程思 想 , 对此 控件进行 属 性 的 配 置。 在 C0M M U NICA T ION > > AI LFU NCT 10N S > > Axt ivex 下 , 调 出 Property
Node 节点 , 放于 Block Diagram 中。如果把其 Refum 和 M SCOM M 32 控件的 Refum 相 联接 , 就 可以 发现 其对 应的所有属性函数 , 只要按照 要求设置其 属性 , 就可以 操作这个控件了。 2. 3 数据的发送和接收 MSGOM M32 控件可以接收二进制字节型数据或者 字符串, 这个 可以通过 Input M ode 属性设置 , 0 默认为
Abstract: LabVIEW is th e NI company s graphic programm ing language that is able t o fulfill ability on handling real time data and show ing. Generally, eit her VISA or Act iveX control could realize the com munication w it h serial ports under L abVIEW language environment , but the w ays t hat they received data are different. T he w ay based on V ISA receive data only t hrough query buffer of serial ports, so it im propriate a lot of tim e of CPU and not have good real t ime capab ility. In relat ive term s, t he M SCOM M 32 control could offer query interrupt function that achieve receive data through querying interrupt. At t he sam e time, the lat ter could define every pin of a serial port , so the sen ior users realize the user -defined functions conveniently. Keywords: LabVIEW; serial port ; Comm unicat ion; V ISA; Act iveX
在某些特殊情况下 , 需要设置串口接收 / 发送缓冲区 1. 2 开发流程 在 LabV IEW 环境中使用串口与在其他开发环境中 开发过程类似[ 5] , 基本的流程框如图 1 所示。 首先需要调用 VISA Configure Serial Port 完成串口 参数的设置 , 包括串口资源分配、 波特率、 数据位、 停止位、 校验位和流控等, 如图 2 所示。 的大小, 此时可以使用 VISA Set I/ O Buff er Size; 而使用 VISA Flush I/ O Buf fer 则可以清空接收与发送缓冲区。 在串口使用 结束后, 使用 VISA Close 结束与 VISA re source nam e 指定的串口之间的会话。
2009 年 12 月 第 28 卷 第 12 期
理论与方法
基于 LabVIEW 串口通信的研究
吕向锋1
( 1. 海军潜艇学院学员二队 青岛
高洪林2

亮2
王新华2
青岛 266071)
266071; 2. 海军潜艇学院水中兵器教研室
摘 要 : L abVIEW 是 N I 公司开发的图形化编程 开发平台 , 具备强大 的实时数 据处理功能 与显示功 能。通常 情况下 , 在 Lab V IEW 开发环境中进行串口通信使用 V ISA 和 ActiveX 控件两种方式均可以 进行 , 通过结合实例比较 , 发现 VISA 方式只能提 供查询缓冲区方式接收数据 , 这需要占用大量 的 CPU 时间 , 且实时性不佳。相对而 言 , 使 用微软提供 的 M SCOM M 32 控件的 中断函数处理功能 , 可以实现中断方式的接收 数据。同 时 , M SCOM M 32 控件可以单独设置串口的每一个引脚 , 便于实现高级 的用户自定义功能。 关键词 : L abVIEW ; 串口 ; 通信 ; V ISA ; A ctiv eX 中图分类号 : T P312 文献标识码 : A
Serial communication based on LabVIEW
Lv Xiangfeng
1
Gao H onglin
2
M a Liang
2
Wang Xinhua
2
( 1. Post - Gr aduate T eam 2 of N avy Subm arine Academy , Q inDao 266071, China; 2. U nderw ater Or dnance sect ion of Nav y Submar ine A cademy, QinDao 266071, China)
V I 名称
V ISA Co nfigureSerialP ort 初始化 V ISA resource name 指 定的串口通讯参数 V ISA Wr ite 将输出缓 冲区 中的 数据 发送 到 V ISA resource name 指 定 的 串口 VI SA Read 将 VISA resource name 指定的串 口接收缓冲区中的数据读取指定 字节数的数据到计算机内存中 V ISA Serial Br eak 向 V ISA resource name 指定的串 口发送一个暂停信号 V ISA By tesat Ser ial Po rt 查询 VISA resource name 指定的 串口接收缓冲区中的数据字节数 V ISA Close 结束与 VISA resource name 指定 的串口资源之间的会话 V ISA Set I/ OBuffer Size 设置 VISA resource name 指定的 串口的输入输出缓冲区大小 VISA F lush I/ O Buffer 清空 VISA resource name 指定的 串口的输入输出缓冲区
2 使用 ActiveX 控件实现串行通信
ActiveX 通常翻译为 微软倡导的网络化多媒体对象
28
中国科 技核心期刊
2009 年 12 月 第 28 卷 第 12 期
技术 , 实际上它是一整套跨越编程语言的软件开发方法 与规范。利用 LabV IEW 的 ActiveX 控件容器, 可以调用 第三方提供的 ActiveX 控件 , 从而使程序功能更加强大, 节省程序开发时间 [ 6] 。 2. 1 MSCOMM32 控件 M SComm 32 控件, 即 M icrosoft Comm unicat ion Con t rol, 是 M icrosoft 为简化 Window s 下串口通信而专门提 供的 ActiveX 控件如图 5 所示。它提供了一系列标准通 信命令的使用接口 , 利用它可以建立与串口通信 , 并可以 通过串口连接到其他通信设备、 发出命令、 交换数据以及 监视和响应串行连接中发生的事件和错误。它使用户能 够方便地访问 Window s 串行通信驱动程序的大多 数特 性 , 包括输入、 输出缓冲区的大小及决定何时使用流控制 命令挂起数据传输等, 使得此控件在工业控制上需要串行 通信的场合变得流行起来。
在现场总线普及之前, 非常多的仪表或者设备都是通 过 RS232 或者 RS 485 通讯接口来和计算机进行通讯 。 串口是常用的计算机与外部串行设备之间的数据传输通 道 , 通过 RS -232 串口总线与 PC 计算机组成虚拟仪器系 统 , 仍是目前虚拟仪器的构成方式之一 , 主要适用于速度 较低的测试系统, 它具有接口简单, 使用方便的特点。 在应用开发层 , 开发者总是希望使用符合行业标准的 软件开发环境来进行整个系统软件的开发。在虚拟仪器 领域, 当前最引人注目的开发语言是 N I 公司的 LabVIEW ( laboratory virtual instrument engineering w orkbench, 实
串行通讯节点功能表tablelfunctioiltableofserialcommunicationnodesv1名称vi功能visaconfigureserialport初始化visaresourcename定的串口通讯参数visawritevisareadsaserialbreakvisabytesatserialportvisaclosevisasetiobuffersizevisaf1ushiobuffer将输出缓冲区中的数据发送到visaresourcename指定的串口将visaresource指定的串el接收缓冲区中的数据读取指定字节数的数据到计算机内存中向visaresourcenaltle指定的串口发送一个暂停信号查询visaresourcename指定的串口接收缓冲区中的数据字节数结束与visaresourcerlarne指定的串口资源之间的会话设置visaresourcenattle指定的串口的输入输出缓冲区大小清空visaresourcenaltle指定的串口的输入输出缓冲区12开发流程在labview环境中使用串口与在其他开发环境中开发过程类似基本的流程框如图1所示
相关文档
最新文档