LabWindows/CVI中串行通信的实现

摘 要:以水轮发电机组流量效率监测系统为例,介绍利用labwindows/cvi实现的上位机和监测仪之间的串行通信。

  关键词:虚拟仪器;串行通信;labwindows/cvi

realization of serial communication based on labwindows/cvi

  huangtian-shu,lishi-han,huangmian-hua

  (school of electronic information,wuhan university,wuhan 430072,china)

  abstract:this paper presents the application of virtual instrument technologytotheflux and efficiency monitoring system of a hydroelectric gen-erating set.this systemuses labwindows/cvito realize the serial communication between the pcand the instrument.

  keywords:virtualinstrument;serialcommunication;labwindows/cvi

1 实现串行通信的两种基本方法

1.1 调用windows api函数

  windows操作系统通过winapi函数为应用程序提供编程接口和执行环境。串行通信时,用creatfile函数打开串口,并配置串行端口的通信参数,用write-file函数向串行端口写入数据,readfile函数读取串口中的数据。通信结束时必须用closehandle函数关闭串口,当此函数返回true时,关闭动作完成。

1.2 使用mscomm控件

  为了简化串行通信编程,microsoft公司提供了一种activex控件mscomm。使用串口之前要先设置属性mscomm1->portopen=true打开串口,使用完之后设置portopen=false关闭串口,串口的通信功能都要在portopen的true和false之间完成。

2 lab windows/cvi简介

2.1 简介

  labwindows/cvi是ni公司开发的32位面向计算机测控领域的虚拟仪器软件开发平台,可以在多种操作系统下运行。它将功能强大、使用灵活的c语言平台与用于数据采集、分析和表达的测控专业工具有机地结合起来,为熟悉c语言的开发人员建立检测系统、自动测量系统、过程监控系统等提供了一个理想的软件开发环境。在虚拟仪器系统开发中,与其他编程语言相比,它提供丰富的虚拟仪表控件,使界面非常类似传统仪器;它具有很好的硬件接口功能,几乎为所有的数据卡、采集仪器之类的采集设备都提供了cvi专 门的驱动程序,这不仅使得编程方便,还使程序稳定可靠;它集成了许多工业用的数学分析功能,如:傅立叶变换、功率谱分析、统计分析等,而且,要实现这些分析功能只需要简单地调用几个库函数。

2.2 labwindows/cvi中的rs-232函数

  cvi提供了专门的rs-232通信函数库。

  (1)打开/关闭函数:opencom,opencomconfig和closecom。

  (2)i/o读写函数:总计有7组函数,以下为其中常用的四组:

comrd:从串口的接收缓冲区读指定长度的字符;comrdbyte:从串口的接收缓冲区读取一个字符;comwrt:向串口的输出缓冲区中写指定长度的字符;comwrtbyte:向串口的输出缓冲区中写一个字符。

  (3)xmodem函数:它使用了一种包含出错检测的文件传输协议进行串口通信。在这种协议中,文件通过信息包来传送,信息包中不仅包括了文件中的数据,还包括了校验和同步信息。

  (4)串口控制函数:总计有7组函数,以下为其中常用的四组:

setcomtime:设置i/o操作超时的时间限制;

setctsmode:禁止或允许硬件握手并设置硬件握手方式;flushinq/flushoutq:清空输入/输出队列。

  (5)状态函数:主要包括端口状态信息和通信错误代码信息等。

  (6)回调函数installcomcallback:为指定的串口安装回调函数。在lab windows/cvi中提供了两种机制实现串口通信(即查询或使用回调函数)。在windows操作系统下,回调函数有可能由于消息堵塞造成数据的丢失,因此,对于通讯速率较高的场合最好使用查询的机制。

3 实例

3.1实例简介

  水轮发电机组流量效率监测系统是由监测仪和上位机(即pc机或ipc)构成的虚拟仪器系统。系统中监测仪的基本功能是测量机组当前运行状态,各相关部件的压力以及流量和效率等参数。但是,由于监测仪一般由单片机构建,它本身的存贮、处理和显示功能有限。系统中的高级数据分析处理功能,如长期的(一年或半年)在不同水头下机组效率和耗水率的变化情况,不同出力情况下机组效率和耗水率的变化情况,机组用水量的变化趋势等这些功能就要借助上位机才能实现。因为该系统中通信数据量不大,对通信速率的要求不高,所以,监测仪和上位机之间采用串行通信。

3.2 通信协议

  系统的通信参数为:波特率9600bps,没有奇偶校验,8位数据位,1位停止位。

  流量效率监测仪的通信协议帧的构成见表1。

  • LabWindows/CVI中串行通信的实现已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计