一个专业的论文、出书、专利服务平台

品质、专业的

论文指导服务

VB.Net编写实时通讯程序软件开发论文发表

时间:2013-05-21分类:软件开发

  摘 要:本文介绍采用Visual Basic.Net开发南方全站仪实时通讯程序的经过和方法,实现了外业测量数据的实时同步处理,对外业工作及时的提供分析。

  关键词:全站仪,实时通讯

  1 概述

  随着测绘技术的发展,全站仪在工程测量中的使用越来越广泛。为了快速方便的获取测量数据的分析结果,及时的对工程施工给出指示,那么我们就需要对测量数据进行实时处理,而处理数据的前提是我们能够动态的获取全站仪测量的数据,即全站仪实时通讯技术。我们用Visual Basic.Net编写了南方全站仪实时通讯软件。通过数据线将全站仪与笔记本电脑(或者电子手簿)连接,实现了全站仪每测量一次数据,都会自动的传输到电脑里面,通过后处理软件,及时给出我们需要的数据分析结果。本文以南方NTS-360型号全站仪为例,介绍在测量工程中实时通讯技术的开发与应用。

  2 编程思路

  本程序的的编写主要是用Microsoft Mscomm控件通过串口连接进行数据通讯。南方全站仪与计算机通讯的信号响应按照以下步骤实现:

  (1)计算机向仪器发送第一类指令(指令“C” ASCII码:43H 30H 36H 37H 03H 0DH 0AH);

  (2)仪器检查指令“C”的BCC,若接收的指令正确,则在0.05秒内仪器向计算机发送承认信号“ACK”。若接收的指令不正确,则仪器不向计算机发送回答信号。

  有效指令ACK ASCII码:06H 30H 30H 36H 03H 0DH 0AH;

  无效指令NAK ASCII码:14H 30H 32H 31H 03H 0DH 0AH;

  (3)若计算机在0.05秒内未接收到来自仪器的承认信号“ACK”,则计算机必须再发送一次指令“C”;

  (4)步骤3最多能重复10次,此后计算机会中断通讯并显示错误信息;

  (5)仪器接收到指令“C”后,开始测量;测量完毕,自动发送数据;

  (6)当计算机正确地接收数据并检查BCC之后,必须在0.3秒之内向仪器发送“ACK”。当仪器接收到“ACK”,则通讯完毕;

  (7)若接收的数据有通讯错误,则计算机不会发送“ACK”。然后,仪器会再次向计算机发送同样的数据;

  (8)步骤7最多能重复10次,此后计算机会中断通讯并显示错误信息。

  全站仪测量数据实时传输至计算机以后,通过后处理软件对这些数据进行处理,就可以得到我们需要的分析结果了。例如,我们测量的坐标数据实时传输至计算机以后,可以通过后处理软件直接比较所测数据与设计数据的偏差,及时的指导工程施工。

  3编程过程

  3.1建立用户界面

  (1)运行Microsoft Visual Studio 2005,新建项目文件南方NTS-360全站仪测量实时通讯,将默认窗体名称改为南方NTS-360全站仪测量实时通讯,在其界面下添加AxMSComm1控件,用来实现全站仪与计算机之间的数据传输。并添加以下各个控件,来构成整个程序的主界面。

  (2)定义变量协议的各项参数:

  Dim Out() As Byte '接收全站仪数据

  Dim TXDK As Integer '标记通讯端口

  Dim BTL、SJW、TZW、JY As String '标记波特率、数据位、停止位、校验类型

  (3)添加通讯端口、波特率、数据位、停止位、校验等几组单选控件,用来对通讯协议参数的进行设置。

  双击COM1、COM2、COM3、COM4、COM5、COM6单选控件,编写对应的如下代码:

  TXDK = 1;

  双击1200、2400、4800、9600单选控件,编写对应的如下代码:

  BTL = 1200;

  双击7位、8位单选控件,编写对应的如下代码:

  SJW = 7;

  双击1位、2位单选控件,编写对应的如下代码:

  TZW = 1;

  双击无校验(n)、奇校验(o)、偶校验(e)单选控件代码,编写对应的如下代码:JY = n;

  添加一个文本框控件,用来设置通讯连接的超时时间限制。

  (4)双击开始测量按钮,编写以下代码:

  '通讯协议参数设置

  With AxMSComm1

  .CommPort = TXDK '设置Com1为通信端口

  .Settings = BTL & “,” & JY & “,” & SJW & “,” & TZW

  .InBufferSize = 1024 '设置缓冲区接收数据为字节

  .OutBufferSize = 1024 '设置缓冲区发送数据为字节

  .InputLen = 0 '设置Input一次从接收缓冲读取字节数

  .RThreshold = 1 '设置接收一个字节就产生OnComm事件

  .InputMode = 1 '设置接收数据类型为二进制

  End With

  '打开串口

  Try

  If AxMSComm1.PortOpen = False Then

  AxMSComm1.PortOpen = True

  Else

  AxMSComm1.OutBufferCount = 0

  End If

  Catch ex As Exception

  MsgBox(ex.ToString)

  End Try

  '通信开始

  Dim strCmd As String

  '发送坐标测量模式指令

  strCmd = "\0x5a\0x36\0x32\0x30\0x39\0x34\0x03\0x0d\0x0a"

  Try

  AxMSComm1.Output = strCmd

  Catch ex As Exception

  MsgBox(ex.ToString)

  Exit Sub

  End Try

  Thread.Sleep(300)

  '发送c指令

  strCmd = "\0x43\0x30\0x36\0x37\0x03\0x0d\0x0a"

  Try

  AxMSComm1.Output = strCmd

  Catch ex As Exception

  MsgBox(ex.ToString)

  Exit Sub

  End Try

  '发送Ack指令

  strCmd = "\0x06\0x30\0x30\0x36\0x03\0x0d\0x0a"

  Try

  AxMSComm1.Output = strCmd

  Catch ex As Exception

  MsgBox(ex.ToString)

  Exit Sub

  End Try

  (5)双击AxMSComm1控件,编写以下代码:

  Select Case AxMSComm1.CommEvent

  Case 1 'comEvSend发送数据

  Case 2 'comEvReceive读取数据

  Out = AxMSComm1.Input

  Dim buf As String = ASCIIEncoding.GetString(Out) '数据类型转换

  TextBox2.Text = TextBox2.Text & buf '显示数据

  Case Else '传输事件出错

  AxMSComm1.OutBufferCount = 0

  End Select

  3.2数据转换

  在全站仪启动坐标测量之后,实时传输至计算机的坐标数据格式如下:

  我们可以分析得出在坐标测量模式下的各项数据:

  “U” 坐标模式标识符

  “+00000002121” N坐标 0.175m

  “-00000000485” E坐标 0.485m

  “+00000000548” Z坐标 0.548m

  “m” 距离单位

  “3470702” 水平角

  “d” 角度单位

  “095” 校验值

  依据此分析结果编写代码如下:

  Dim Str1,Str2 As String

  Dim N,E,Z As Double

  Str1 = TextBox2.Text

  Dim i As Integer = Str1.IndexOf("U")

  Str1.CopyTo(i + 1, Str2, 0, 12)

  N = Val(Str2)

  Str1.CopyTo(i + 13, Str2, 0, 12)

  E = Val(Str2)

  Str1.CopyTo(i + 25, Str2, 0, 12)

  Z = Val(Str2)

  通过以上步骤,我们实时的获取了我们在测量工程作业中需要 N,E,Z坐标。如果需要角度测量、斜距测量等其他模式,只需修改对应的指令代码和数据转换代码即可。

  4结论

  本文主要介绍全站仪的实时通讯技术在坐标测量模式下的实现方法,至于我们实时获取了坐标数据之后,如何做进一步的分析处理,则需要根据各种测量工程的特点编写对应的后处理软件,来得到分析结果,以对工程施工进行指示、校正。

  本程序已经使用了2年之久,运行稳定,结果可靠,操作简单,在外业及时的自动处理数据,给出分析结果,大大提高了工作效率。

  参考文献

  [1] 季斌德,邵自修. 工程测量[M].北京:测绘出版社,2002.01.

  [2] 何保喜.全站仪测量技术[M].郑州:黄河水利出版社,2005.08.

  [3] 武大测绘学院平差学科组.误差理论与测量平差基础[M].武汉:武汉大学出版社,2003.01

  [4]陈战林,耿宏运.Visual Basic.NET高级编程[M].北京:电子工业出版1999.05

获取免费资料

最新文章