中纬ZDL700水准仪数据下载工具的设计

点赞:4285 浏览:11219 近期更新时间:2024-02-24 作者:网友分享原创网站原创

摘 要:当前用于沉降观测的仪器主要为数字水准仪,数字水准仪使用方便,采集的原始数据直接存贮于仪器内存中,因此需要进行数据的下载.中纬ZDL700型数字水准仪,配有专用数据下载软件,但使用过程中,发现其存在下载效率低等缺点.利用VB开发ZDL700数字水准仪数据下载程序,实现数据高效导出功能,并对下载的数据进行预处理,使该型仪器的使用更高效,更简便,更实用,进而提高工作效率.

关 键 词 :ZDL700;数据下载;开发

由于土地资源的有限性和社会发展的需要,大型民用和工业建筑越来越多,高大建筑物因为自身巨大的重力势必会对地基有了更高的要求,不可避免产生沉降变形.所以,为了保证建筑物能顺利的建设以及建筑物周边的安全,沉降监测变得越来越重要.沉降监测是一项精度要求非常高的测量工作,要完成这项工作必须有可靠的设备及合格的技术人员.用数字水准仪来完成沉降监测,效率有明显提高,中纬ZDL700数字水准仪就是其中被广泛应用的一种.ZDL700水准仪将外业采集数据存贮于内存中,然后用其配套软件“GeoMax PC Tools”导出,但此软件在下载数据时存在明显的不足之处,如下载数据缓慢.针对这一不足,笔者开发一款基于串口通讯的数据下载工具,实现高效数据下载功能,弥补其自带软件不足,提高数据下载效率.

1.串口通讯原理

串行接口一般包括RS232/422/485,其技术简单成熟,性能可靠,所要求的软、硬件开发环境都比较低,容易实现,而ZDL700原有数据下载也是基于串口实现的.利用VB进行串口通讯程序的开发主要采用两个方式:一种是使用MSComm控件,另一种是利用Windows API函数.在实践中,使用VB串口控件MSComm实现通讯的方法比调用API函数的方法更加方便、快捷,而且用较少的代码可以实现相同的功能,从而使编程效率大大提高.

1.1 MSComm控件

MSComm控件的属性很多,串口编程中经常用到的几个重要属性和控件的事件介绍如下:

(1)MSComm控件的常用属性

Commport:设置或返回通信端口号.

InputLen:设置并返回从接收缓冲区读取的字符数.

Input:返回并删除接收缓冲区中的数据流.InputLen属性值决定被Input属性读取的字符数.若设置InputLen为0,则Input属性读取缓冲区中全部内容.

OutPut:向传输缓冲区写数据流.

PortOpen:设置或返回通信端口的状态.

中纬ZDL700水准仪数据下载工具的设计参考属性评定
有关论文范文主题研究: 关于数据的论文范文检索 大学生适用: 电大毕业论文、电大毕业论文
相关参考文献下载数量: 20 写作解决问题: 怎么写
毕业论文开题报告: 论文任务书、论文前言 职称论文适用: 核心期刊、职称评副高
所属大学生专业类别: 怎么写 论文题目推荐度: 优秀选题

InputMode:设置或返回接收数据的数据类型.属性值Value可以设置为0或1,0表示通过Input属性以文本方式取回传入的数据.1表示通过Input属性以二进制方式取回传入的数据.

Settings:设置并返回通信参数.

RThreshold:OnComm事件发生之前,设置并返回接收缓冲区可接收的字符数.若Rthreshold属性设置为0则不产生onm事件,设置Rthreshold为1,接收缓冲区每收到一个字符都会使MSComm控件触发Onm事件.

SThreshold:OnComm事件发生之前,设置并返回发送缓冲区中允许的最小字符数.Value是整型表达式,代表在OnComm事件发生之前,传输缓冲区中的最小字符数.

OutBufferSize:设置或返回传输缓冲区大小.

InBufferSize:设置或返回接收缓冲区大小.

CommEvent 属性:设置或返回最近的通讯事件或错误.通过对属性值的查询,我们就可以获得通讯事件或错误的完整信息.

(2)MSComm控件的事件

根据应用程序的用途和功能,在连接到其他设备过程中,以及接收或发送数据过程中,可能需要监视并响应一些事件和错误.可以使用OnComm事件和CommEvent属性捕捉并检查通信事件和错误的值.CommEvent属性返回最近的通信事件或错误.

1.2 利用MSComm控件进行通讯开发的步骤

以下面的步骤来实现MSComm控件通讯.

(1)加入通信部件,也就是MSComm对象.

(2)设置通信端口,即CommPort属性.

(3)设置通信协议,即HandShaking属性.

(4)设置传输速度等参数,即Settings属性.

(5)设置其他参数,若必要时再加上其他的属性设置.

(6)打开通信端口,即PortOpen属性设成True.

(7)送出字符串或读入字符串,使用Input及Output属性

(8)使用完MSComm通信对象后,将通信端口关闭,即PortOpen属性设成False.

2.ZDL700水准仪数据下载功能的实现

ZDL700水准仪数据下载工具的开发,主要功能模块有两个:一个是对通讯参数的设置,另一个是对通讯过程中事件的响应.由于篇幅原因,源代码只少量呈现.

2.1 参数设置功能实现

基于可能使用本工具的人技术水平不一,设计时要考虑其易用性.程序主窗口采用文本文档界面,各功能按钮以菜单方式实现,为方便后续功能扩展,预设置多个菜单选项.如图2.1所示.

为了进行电脑和仪器之间通讯,就需要设置参数,使电脑和仪器之间匹配.参数包括:串口号、波特率、奇偶校验、数据位、交换协议等.主要思路是:在数据通讯下拉菜单中,增添一个子菜单[通讯参数]来实现对参数的设置.再点击通讯参数菜单之后,程序将调用的一个窗体,在窗体界面上设置参数,如图2.2.在这个窗体里设置好的参数保存相应的变量中.所有参数选项可直接进行点选完成,操作简便. 为使下次调用程序时保存上次的设置,程序中在“通讯参数”窗体关闭时将参数保存于系统注册表,“参数设置”窗体弹出时则自动调用.由于现在计算机附属设备很多,有时串口号不是常用的那几个,本工具提供串口号自定义输入功能.

所有参数选择正确后,点击设置,窗体自己关闭,保存设置,如果有参数设置错误且能自己检测出的,会弹出提示窗口并重新打开“通讯参数”窗口.

2.2 数据通讯功能实现

参数设置好后,即可点击“数据通讯”菜单下的“数据下载”选项,根据提示完成数据下载操作,如图2.3.下载的数据直接显示于主界面富文本框中.此功能实现重点在于串口缓冲区数据的读取.

缓冲区数据有无的判断与读取是采用事件驱动方式.主要思路:在点击数据下载菜单后,首先要检查参数是否设置正确,如果参数未能设置正确,将调用以上窗体重新设置参数,当端口打开程序接收到字符时,触动OnComm事件中的EvReceive事件,所以数据下载代码编写主要是在OnComm事件中,当数据下载完成之后,应及时关闭端口避免占用系统资源.关闭端口则利用Timer控件进行延时控制通讯端口的关闭.

缓冲区数据的读取,可采用两种方式实现:定时器轮循法和OnComm事件法.

(1)定时器轮循法.

定时器轮循法就是利用timer控件来计时,每隔多长时间读取一次缓冲区数据.定时器轮循法设定的时间间隔特别重要,因为发送设备在发送数据时,不会判断缓冲区是否溢出,如果在溢出之后才去读取数据,会造成数据的丢失,而时间间隔过小,就会不断读取缓冲区,占用系统资源,所以在时间设置上要根据不同仪器设置来做多次调试,以达到一平衡.


(2)OnComm事件法.

OnComm事件和定时器轮循法相似,只不过不是按固定时间间隔去读取串口数据,而是由控件OnComm 事件来通知程序是否在串口中有数据存在,存在则读取,不存在则不读.那么在MSComm 控件的Rthreshold属性就应该设置为1,在OnComm 事件里添加EvReceive,表示每接收到一个字符就触发一次OnComm 事件中的EvReceive.这样就会频繁地读取缓冲区,占用系统资源.

可见,两种方式各有优缺点.笔者将这两种方法结合使用,先判断OnComm事件,然后用计时器控制延时一段时间再去读取缓冲区收到的数据,合理调整延时后,既点用资源少而且不丢失数据.

3.结束语

将本工具与ZDL700自带软件进行实践对比,可以发现其优缺点:

本工具缺点:目前功能单一,有待于功能扩展,无法自己读取串口配置;优点:数据下载的速度有显示提高,界面操作简单易行,通讯参数可保存,主界面具有文本编辑器的大部分功能,可实现基本的编辑操作,后续功能扩展潜力大.

ZDL700自带软件缺点:数据下载速度慢,界面操作需要仔细看说明书才能完成;优点:功能全面,不仅有数据下载功能还有数据格式转换功能,软件可自动读取到串口号等配置.

总之,利用VB开发的ZDL700数字水准仪数据下载程序,实现了数据高效导出功能,并可对下载的数据进行预处理,使该型仪器的使用能够更高效,更简便,更实用,进而提高了工作效率.(作者单位:西南科技大学环境与资源学院)

项目来源:西南科技大学实验技术研究项目,编号:13syjs-25