所属栏目:通信论文范文发布时间:2011-02-25浏览量:616
摘要:本文介绍了利用超级终端、接口程序、成图软件等进行全站仪与计算机数据通讯的几种方法,并对各种方法的应用条件进行了简要说明。在对比几种方法后,文章还简单介绍了在线控制的概念及方法。
关键词:全站仪数据通讯在线控制
1引言
如今,随着光电测量仪的出现和发展,徕卡、宾得、拓普康、索佳、南方等系列全站仪已经逐渐取代传统的经纬仪、水准仪和钢尺,在我国众多的工程单位得到广泛的应用。但许多拥有全站仪的单位在使用全站仪时,还仅局限在能够自动显示角度、距离、高差等上面,需要人工读数、手工记录,容易发生数据读记的差错。而且这实际上只并没有使全站仪的功能全面发挥出来。由于全站仪配有数据(DATA)接口,用它可以实现全站仪与数据记录器的数据传输。因此,全站仪只要连接上合适的记录器就能实现数据的自动采集,从而使之物尽其用。
在进行大桥、高层建筑、大边坡变形监测时,利用全站仪与计算机的数据通讯更易于建立半自动或者全自动的监控系统,从而节省大量人力,并且能够保持数据的准确性。
2数据通讯的概念
数据通讯是指将数据在不同设备之间进行传输的过程。一个基本的数据通讯系统包括三个部份:“传输者”、“接收者”和“传输媒体”。
数据通讯信息传输方向有三种情况:单向通讯、半单向通讯和双向通讯;通讯方式可采用并行传送或串行传送两种;信息传送模式也有两种:同步通讯和异步通讯。
在数据通讯前,除了要用专用通讯电缆将两通讯设备进行连接外,还需在双方之间进行通讯约定,即对通讯参数进行设置,只有当双方通讯参数的设置相一致时,数据通讯才能顺利地进行。要设置的通讯参数主要有:波特率(描述数据传输速率,单位为二进制位/秒)、数据位、停止位以及是否进行奇偶校验等。
3全站仪与计算机的数据通讯
电子全站仪与计算机之间的数据通讯一般都采用异步串行通讯方式,借助于RS-232C串行通讯口进行。在全站仪与计算机进行数据通讯前,需要对通讯参数进行设置。全站仪的通讯参数可以在仪器的参数设置操作下设定,而计算机的通讯参数则通过有关语句进行设置。
在将数据传输到计算机上时,还要选择输出格式(GSI格式或IDX格式)。
全站仪与计算机的数据通讯过程通常借助于数据通讯软件来实现,方法主要有两种,一是利用仪器厂家提供的或者用户自己编写的数据通讯软件,二是设法利用计算机系统中自带的数据通讯功能。也可以利用自编的数据通讯程序或利用Windows下的超级终端实现全站仪数据文件传输进入计算机。下面把各种方法及其操作步骤逐一介绍,并对其各自特点进行比较。
3.1基于专业软件的数据通讯
许多全站仪生产厂家制作了与仪器配套的数据传输软件,比如徕卡的LeicaSurveyOffice。利用该软件不但可以方便地将徕卡系列全站仪与计算机进行数据通讯,还可以编辑导出的坐标数据,并进行二次开发软件的上载。
另外,我们还常用通用的数据传输软件导出多种类型的全站仪数据,比如南方的CASS系列成图软件。由导出的测点生成数据文件也可以进行编辑。不过,CASS不能进行软件的上载,它只能实现由全站仪到计算机的单向通讯。
利用这些软件进行数据通讯的方法比较简单,许多生产单位已经广泛应用,这里就不再赘述。
3.2利用Windows超级终端实现数据通讯
超级终端是Windows系统“附件”下提供的一项功能,主要用于通过调制解调器和电话通讯线进行计算机间的远程数据通讯,实验证明该功能同样可用于全站仪与计算机间的数据通讯,无需调制解调器。该功能对那些既无通讯软件又不具备编程能力的用户而言带来极大的便利。计算机接收到的全站仪数据是以超级终端过程文件的形式(扩展名为“.ht”)存储的,不允许用户对其内容进行编辑。为了对#p#副标题#e#测量数据的后续处理和应用,还必须将超级终端过程文件转换成可编辑处理的文件形式。这一转换可以利用“复制”和“粘贴”功能来实现。
下面是利用超级终端实现全站仪数据文件传输进入计算机的操作步骤:
(1)选取开始→程序→附件→超级终端,单击左键进入与仪器与计算机连接操作,进入界面:
(2)在“名称”框内输入超级终端过程文件名(不输入扩展名)并选取图标后单击“确定”;
(3)在“电话号码”窗下的“连接时使用”选取计算机所用通讯端口后单击“确定”,进入界面:
(4)在“COM属性”窗下将各通讯参数设置为:波特率:19200数据位:8奇偶校验:无停止位:1流控制:Xon/Xoff,然后单击“确定”;
(5)在“新建连接”窗下选取:文件→属性,后单击左键(或直接单击工具栏中的“属性”钮)进入“属性”窗,得到界面:
(6)单击“设置”后将“终端仿真”框设为“VT100”或者“VT100J”;
(7)单击“终端设置”钮,将“132列”左侧框设为“v”后单击“确定”:
(注:此操作的目的是将行宽设为132字符,防止原数据记录格式发生变化,不利于后续处理);
(8)单击“属性”窗下的“确定”完成连接建立,等待全站仪传送数据(注意:此时若行宽设置成功,“新建连接”窗下应出现水平滚动条,否则重复6至9步骤至出现滚动条为止);
(9)打开全站仪,用电缆将计算机如全站仪相连,且通讯设置一致,进入全站仪菜单——数据传输选择要下载的作业,按发送健,使全站仪向计算机传送数据;
(10)屏幕上逐行显示出全站仪传送来的数据记录直至数据传输完毕;
(11)用下述方法选取需在文本文件中存储的数据:选取编辑→全选后单击左键或者在窗内按住左键下拉;
(12)选取“编辑”→“复制”后单击左键将所选数据复制至剪贴板;
(13)选取“文件”→“退出”后单击左键,在提示“已处于连接状态,确实要断开吗?”和“保存会话结果‘***’?”时,分别单击“是”退出连接操作并存储超级终端过程文件;
(14)选取:开始→程序→附件→写字板,后单击左键;
(15)在“写字板”下选取“编辑”→“粘贴”后单击左键,将剪贴板中中的复制数据粘贴到写字板下;
(16)“文件”→“另存为”后单击左键,输入文件名,将“存为类型”框设为“文本文档”,然后保存;
(17)选取“文件”→“退出”后单击左键结束数据通讯。此操作建立的文件有两个,即分别为超级终端过程文件(.ht)和文本文件(.txt)
3.3计算机语言编程实现数据的通讯
运用VB和VC都能够编写出全站仪与计算机进行数据通讯的接口程序。它们用的都是MSComm控件。
MSComm是一个ActiveX控件,它提供了标准的事件处理函数、过程,并通过属性的方法提供了串行通讯参数的设置,用户可以在自己的应用程序中嵌入MSComm控件,利用它进行微机的串口通讯操作。
MSComm控件有许多属性,其中Commport(设置串口号)、Setting(设置串口通讯参数)、Portopen(设置或返回串口的通讯状态)、Inputmode(设置从缓冲区读取数据的格式)等属性比较重要,在数据通讯过程中要用到。
下面以VC为例说一下程序设计的步骤。
(1)打开VC++,建立单文档的应用程序。
(2)插入串口控件:Project→AddToProject→ComponentsAndControls→MicrosoftCommunicationscontrol,插入后控件工具条上会增加一个电话机一样的通讯控件。
(3)建立对话框资源,增加新的静态文本、编辑框控件,为之添加相应的变量。
(4)在CDataCommView中增添成员变量。
(5)在系统菜单查看菜单项里建立
ID_COMMU_DLG,并在CDataCommView里增加消息处理函数ON-COMMDlg()。
(6)定义全局变量,增加程序代码、定#p#副标题#e#义常数、初始化串口通讯参数。
(7)处理接收到的数据。
主界面如下:
然后单击configurate按钮,弹出参数设置窗口
按上文3.2中第(9)步操作,使全站仪向计算机发送数据,接受到的数据
接收到数据后再进行其他后续处理。
4利用计算机对全站仪进行在线控制
在线控制是指通过计算机进行操作,控制全站仪测边、测角、读数和记录,代替全站仪上的键盘操作。在线控制实际上是双向数据通讯的一部分:由计算机向全站仪发送指令信息,全站仪在接收到指令信息以后,便执行相关操作。
4.1全站仪的内部指令
本文以索佳SET500全站仪为例,介绍一下由计算机向全站仪发送操作指令的方法。
SET全站仪的双向通讯指令共有28条,按功能的不同分为四类:标准指令(3条)、数据输出指令(9条)、数据输入指令(9条)和模式设置及其他指令(7条)。
这些指令的大多数可以应用于所有的SET全站仪,个别指令只能用于具有相应功能的SET全站仪。每种指令都有相应的格式,我们按照规定格式编辑需要的指令,就可以实现对全站仪的在线控制。下面是给出一些标准指令做示例:
(1)角度数据请求:
指令:00H
功能:请求全站仪向计算机传送角度数据。
数据格式:<000000>_<垂直角值>_<水平角值>_CR.LF
(2)斜距和角度数据请求:
指令:11H
功能:请求全站仪进行距离测量并向计算机传送所测距离和角度数据。
数据格式:<斜距值>_<垂直角值>_<水平角值>_CR.LF
(3)停止测距请求:
指令:12H
功能:停止距离测量。
4.2在线控制实验
实现对全站仪在线控制的途径有两种:利用windows系统“附件”下的“超级终端”实现远程通讯,或者以某种计算机语言编程的方式来远程控制全站仪的操作。
(1)利用超级终端实现由计算机向全站仪输入数据的实验
①首先在计算机上用windows下的记事本、写字板或者Word等文字编辑软件按下面的格式编辑好坐标数据或属性数据,并以文本文件(扩展名为“.txt”)形式保存;
/Dgx坐标,y坐标,z坐标,点号
/Dh属性1,属性2,……,属性n
②用DOC27通讯电缆连接SET全站仪和计算机;
③选取开始→程序→附件→超级终端,单击左键进入与仪器与计算机连接操作;
④在“连接描述”窗口下“名称”框内输入超级终端过程文件名(不输入扩展名)并选取图标后单击“确定”;
⑤在“电话号码”窗下的“连接时使用”框内选取计算机所用通讯端口后单击“确定”;
⑥在“COM属性”窗下将各通讯参数设置为:
波特率:9600数据位:8奇偶校验:无停止位:1流控制:Xon/Xoff后单击“确定”;
⑦在“新建连接”窗下选取“文件”→“属性”后单击左键)进入“属性”窗;
⑧单击“设置”→“ASCII码设置”,将“本地响应键入的字符”选中,为避免在传输过程中丢失数据,应根据仪器的不同和数据量的多少将“线路延迟”和“字符延迟”的值设置在一定范围内(对于SET500全站仪延迟时间为1~100毫秒),然后单击“确认”。
⑨打开全站仪电源开关,将仪器通讯参数设置一致,并使仪器置于基本模式或者测量模式下,单击“传送”→“发送文本文件”,选取需发送的坐标数据文件或属性数据文件名,再单击“打开”就开始由计算机向全站仪发送数据,此时仪器在接收到数据后会发出“哗哗”的声音;
⑩传输完毕后单击“文件”→“退出”,对“已处于连接状态,确实要断开吗?”和“是否保存回话XXX”的提示分别单击“是”确认并保存。最后检查数据,有丢失的话采用键盘输入的方法补齐。
例:
/B0,0,1,20,0,0,0,0,1,0,0,0
/Da20000.123,21564.236,123.456
/Dd20012.123,2156#p#副标题#e#4.236,123.456
Ea
/Dg20000.123,21564.236,123.456,01
/Dg20012.123,21564.236,123.456,02
/Dg20024.123,21564.236,123.456,03
(2)利用计算机语言实现计算机对全站仪在线控制的实验
以Basic语言为例,下列语句具有数据通讯的功能:
OPEN:打开通讯道并进行通讯常数的设置;
PRINT#:向另一设备发送数据;
INPUT#或LINEINPUT#:接收另一设备发送来的数据;
CLOSE#:关闭通讯道。
下面给出一段程序,是在微机上用数据输出指令编写的,其功能是由计算机控制SETBII全站仪进行测量,并将测量结果传送至计算机显示出来,至于后续处理则需另编程序。在运行程序前应先将计算机与SETBII全站仪用通讯电缆连接好,将全站仪中的通讯参数设为波特率(Baudrate)1200,和检验(Checksum)No,奇偶校验(Parity)No,并将仪器照准棱镜。
CLS
OPEN"COM1:1200,N,8,1,RS,CS,DS,CD,PE"FORRANDOMAS#1
PRINT#1,"Ea":REM*斜距和角度数据请求
LINEINPUT#1,A$:REM*接收SET传送来的测量结果
PRINTA$:REM*显示接收到的测量结果
PRINT#1,CHR$(18):REM*停止距离测量
.................:REM后续处理
END
参考文献
[1]宋其友.数字地籍测量[M].北京:测绘出版社,1991
[2]齐苏敏,曹宝香.用VC++实现计算机与数字化仪的通讯[J].计算机应用,2002(03)