>
首页 » 技术文章 » 在LabVIEW中利用ActiveX技术实现串行通信

在LabVIEW中利用ActiveX技术实现串行通信

作者:夏星欣,戴瑜兴  时间:2006-11-04 01:45  来源:
摘要:针对在LabVIEW开发环境下传统串口通信控制方式的弊端,提出了另一种控制方法,即在LabVIEW中利用ActiveX控件容器,调用第三方提供的ActiveX控件—MSComm控件,实现对计算机串口的通信管理,并结合一数据采集系统给出了实例。

关键词:LabVIEW;串口通信;ActiveX技术;MSComm控件

应用ActiveX技术实现串口通信

ActiveX通常翻译为“微软倡导的网络化多媒体对象技术”,实际上它是一整套跨越编程语言的软件开发方法与规范。利用LabVIEW的ActiveX控件容器,可以调用第三方提供的ActiveX控件,从而使程序功能更加强大,节省程序开发时间。

MSComm控件,即MicrosoftCommunicationControl,是Microsoft为简化Windows下串行通信编程而提供的ActiveX控件。它提供了一系列标准通信命令的使用接口,利用它可以建立与串口通信,并可以通过串口连接到其他通信设备、发出命令、交换数据以及监视和响应串行连接中发生的事件和错误。

在LabVIEW中使用ActiveX 控件—MSComm控件,与在VC、VB中使用一样,它可以通过中断的方式进行数据接收。首先通过LabVIEW的菜单“Windowm Show Controls Palettem All Controlsm Containersm ActiveX Container”,把它拖放到前面板上,然后在容器框内单击鼠标右键,弹出快捷菜单,在菜单中选“Insert ActiveX Object”,弹出一个对话框,列出所有可选的ActiveX控件,选择串口控件—“MicrosoftCommunications Control,version6.0”,单击OK按钮后,一个串口控件MSComm即添加到LabVIEW的前控制面板环境中。一个串口资源要有一个MSComm控件与之相对应,在程序框图中MSComm控件的端口上弹出菜单,选CreatmProperty,就可以看到MSComm所有属性列表,在框图程序中选择控件属性对其进行编程,就可以实现所需要的功能。

MSComm控件的属性较多,下面仅介绍其在串口通信中常用的一些属性:

①CommPort设置或返回通信端口号。如:CommPort=1表示使用COM1进行通信传输;②Output用于将要发送的数据输入传输缓冲区;③Input用于从输出缓冲区返回并删除字符;④InputMode设置并返回被Input属性读取的数据类型,其中InputMode=0表示文本类型返回,1 表示二进制类型返回;⑤PortOpen用于设置或返回通信连接端口的状态,运行时有效;⑥Settings用于设置并返回初始化参数,即波特率、奇偶校验、数据位和停止位。对于奇偶校验位,N表示不校验,E表示偶校验,O表示奇校验,M表示符号校验,S表示空格校验。如Settings=“9600,N,8,1”表示所使用的通信端口以9600bps的速度传输,不进行奇偶校验位的检查,8 个数据位,1 个停止位;⑦CommEvent在通信错误或事件发生时都会产生OnComm事件,该属性存有所发生的错误或事件的数值代码;⑧RThreshold 用于设置或返回发生接收事件的字节数,即“最小接收字符数”。当接收缓冲区达到所设置的字节数时,将会发生OnComm事件中的接收事件。此属性默认值是0,含义是无论缓冲区中有多少字符均不发生接收事件。

开发应用实例

在所开发的数据采集系统中,以PC机作为上位机,以PHILIPS 51 LPC单片机作为下位机,采集电压信号,并通过串口向PC机发送该信号,PC机则把这些信号用图形和表格的形式显示出来。MSComm控件提供两种处理通信的方式,本系统采用事件驱动方式,即当通信事件发生时,MSComm控件会触发OnComm事件,LabVIEW可以捕获该事件,通过检查其CommEvent属性便可确认发生的是哪种事件或错误,从而进行相应的处理。这种方法的优点是响应及时、可靠性高。根据通信协议,PC机与单片机的通信过程为:PC机给单片机一个启动信号0x55,单片机收到启动信号后开始数据采集,并将数据上传PC机;数据采用累加校验和校验,每传送8个数据就进行一次累加和校验;若校验和正确,PC机则发送代码0xAA给单片机,否则发送代码0x20。单片机每启动一次,采集256个电压值。若循环发送启动信号,则可以得到每路信号的电压值随时间的变化波形。上位机主要框图程序如图1所示。

图1 数据采集主要框图程序

图2 数据采集程序界面

几个注意的地方:

(1)初始化串口时,要设置好MSComm的属性,其中RThreshold表示产生事件的接收字符个数,需要根据双方的协议来设定,InputMode设置成“1”(二进制方式) ,否则数据若超出128,则会产生错误。(2)MSComm处理的数据类型是variant型,variant类型的变量可以存储任何数据类型,因此要注意数据类型的转换,用到To Variant和VariantTo Data 这两个函数。(3)程序运行完后要关闭串口,否则会产生串口占用的错误。(4)若循环采样,要注意采样周期应大于单片机启动一次采样256个信号的工作时间。

数据显示操作界面如图2所示。一个波形观察框用来观察某一路电压信号随时间变化的数据波形,其他显示件和控件为数据采集的输入控制和输出显示。实验证明该系统运行良好。

相关推荐

LabVIEW天下会广召天下英雄

NI  LabVIEW  2012-04-16

NI携手FIRST共同推出第二届FTC科技挑战赛

NI  FTC  LabVIEW  2012-03-14

NI与清华大学精密仪器与机械学系共建教学创新基地

NI  LabVIEW  2011-11-23

开发一款用于锥形球磨机的预防性维护监视系统

LabVIEW  传感器  2011-09-21

使用LabVIEW与PXI进行蓝光播放机视频和音频测试

蓝光播放机  LabVIEW  2011-09-13

NIWeek 2011展示NI如何加快工程效率

NI  LabVIEW  2011-09-09
在线研讨会
焦点