《用VB实现全站仪数据通讯及数据格式化.pdf》由会员分享,可在线阅读,更多相关《用VB实现全站仪数据通讯及数据格式化.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、?1994-2010 China Academic Journal Electronic Publishing House.All rights reserved.http:/江 西 煤 炭 科 技2006年第 4期JI ANGX I COAL SCIENCE&TECHNOLOGYNO142006用VB实现全站仪数据通讯及数据格式化曾 圣,陈 伟(江西省煤田地质局,江西 南昌,330001)摘 要:针对大型测绘单位全站仪型号多、数字测图软件类型多,导致作业过程繁琐的情况,本文介绍了在VB编程环境下编制实现全站仪数据与多种数据格式之间的相互转化及数据上传下载程序的方法。关键词:全站仪;数据通讯;
2、数据格式中图分类号:TP311文献标识码:B文章编号:1006-2572(2006)04-0044-03Realization of Tota l StationsDa ta Comm unication and Da ta Forma tting through VBZENG Sheng,CHEN Wei(Jiangxi Coalfield Geology Bureau,Nanchang,Jiangxi,330001)Abstract:A iming at the different typesof total stationmappers and digital mapping s oft
3、wares,the authors introduce themethod to realize the reciprocal transfor mation between total station data and various data format and programming indata s uploading and downloading.Key W ords:total station;data communication;data format作者单位有拓普康、莱卡、尼康等多种型号全站仪,采用的制图软件也有瑞得、南方等数种,这给平时作业人员带来诸多不便。于是自己动手编
4、程用V isulBasic语言在一个程序中实现多种全站仪数据通讯及多种坐标数据的格式化。以下介绍实现方法及要点。1 数据通讯目前全站仪都通过串口来同电脑进行数据通信,因此采用MSCOMM控件编制串口通信程序是一种简单高效的方法。以下为下载仪器数据的主代码:MSComm1.Settings=CommSet设置串口波特率、奇偶校验等参数MSComm1.PortOpen=True打开串口Do开始接收仪器发送数据DoEventsIf MSComm1.Port Open=False Then Exit DoText1.Text=Text1.Text+MSComm1.InputLoop上传数据至仪器的主代
5、码:For i=1 To jj为要上传的数据块数(或坐标点数)DoEventsMSComm1.Output=CoordDatasleep(Interv)数据块传输间隔Interv时间,等仪器处理完数据Next(2)相邻煤层采空区的积水对先期受采动影响的煤层顶板砂岩产生了一定程度的补给,造成顶板砂岩局部异常突水;(3)为不影响工作面正常安装和生产,根据预测的顶板砂岩富水性以及补、迳、排条件,超前考虑钻孔施工时间.针对富水异常区域,尽量多施工钻孔,但确保各放水孔互不干扰;(4)根据钻孔水压、出水量的大小,及时改变放水形式,以加快放水进度;(5)鉴于砂岩裂隙水富水性不均一,因此通过开采解放层,对顶板
6、砂岩超前破坏,加大了砂岩裂隙的连通性,为后期打钻探放砂岩水创造了有利的条件.作者简介:胡文雄(1968-),男,江西泰和人,1991年毕业于淮南矿业学院,地质工程师,现在安徽省淮南市国投新集一矿总工办工作。收稿日期:2006-06-12编辑:郭正义?44?1994-2010 China Academic Journal Electronic Publishing House.All rights reserved.http:/2 全站仪数据格式尼康坐标传输格式(一行):点号,北,东,高,.(方括号内数据),传输结束符为SI B符。尼康格式较为简单,其中点号、北、东、高都没有数据位数的限制,即不
7、用在数据前面补0。拓普康坐标传输格式(一个点数据):_+点号_ x北_y东_ z高(方括号内数据)。拓普康格式比较复杂,其中点号、北、东、高都限制为十位数据(对应拓普康11位格式,如果是12位格式北、东、高限制为12位数据),不足的在前面补0。另外北、东、高坐标不允许出现小数点,而是默认坐标数据后三位为小数,小数位不足时在后面补0。例:_+2_ x+004960183_ y+004982300_ z-000021000 表示的数据为2号点,北为4960.183,东为4982.3,高为-21。拓普康格式以块为单位进行传输,一个块长度为128字节。块以STX符开始,以块号+BBC校验码+ETX符+
8、CR符+LF符结束。其中块号限制只用一位数据,即第12块的块号应为2。BBC码为块中前122位ASC码依次累计进行Xor运算后的值(十进制),BBC码限制长度为3位,不足在前面补0。例:_+1_ x+005000000_ y+005000000_ z+000021310_+2_ x+004960183_ y+004982308_ z+000021729 _+3 _ x+004974005 _0025 为一个块数据,尾部的0025 表示第0块,此块的BBC码为025。拓普康格式的传输结束符为EOT符3 格式化数据(下载、上传)限于篇幅,下面以拓普康仪器数据与南方CASS软件数据之间的相互转换为例
9、来分析,其它仪器或软件数据格式之间的转换类似。CASS的dat数据格式为:点号,代码,东,北,高 。下载(Topcon to Cass):D im PointA ll 存放提取出的点D im Tex:Tex=Text1.Text待转换的数据D im L inDat As Variant块数据D im PtDat A sVariant点数据D im PnxyzA sVariant点数据中各项值(点号、X、Y、Z等)D im Fomt Dat 按格式要求转好的数据D im i%D im CoordBit%单个坐标分值(X.Y.Z中的一个)在块中占的位数If M id(Tex,27,1)=_Then
10、 CoordBit=10 ElseCoordBit=12对应拓朴康的11位或12位方式L inDat=Split(Tex,Chr(2)以正文开始符STX分离块数据For i=0 ToUBound(L inDat)将原始字串中的块号及BBC码剔除PointAll=PointA ll&Left(L inDat(i),128)NextPt Dat=Split(PointA ll,_+)分离点数据For i=0 To UBound(PtDat)Pnxyz=Split(PtDat(i),_)分离点数据中各项值On Error GoToOverPnxyz(0)=RTrim(Pnxyz(0)Pnxyz(1)
11、=Val(Right(Pnxyz(1),CoordBit)/1000Pnxyz(2)=Val(Right(Pnxyz(2),CoordBit)/1000Pnxyz(3)=Val(Right(Pnxyz(3),CoordBit)/1000FomtDat=FomtDat&Pnxyz(0)&,&Pnxyz(2)&,&Pnxyz(1)&,&Pnxyz(3)&vbCrLfNextOver:Text2.Text=FomtDat上传(Cass to Topcon):D im Txt:Txt=Text2.Text存放文本框数据D im i%,j%指针D im PN,PX,PY,PZ点号,北,东,高D im P
12、S,PS1 要发送的数据D im PS L%PS的长度D im L ineN%行号D im Pt D at A sVariant 点数据D im PnxyzA s Variant点数据中各项值(点号、X、Y、Z等)D im FH,FE 文件头字符及文件尾字符FH=Chr(2)&F00F000&Chr(3)&vbCrLf&Chr(2)&Site1+00001.000000200020-100000S113&Chr(3)&vbCrLf 文件头字符FE=Chr(4)&vbCrLf&Chr(2)&Chr(4)&Chr(3)&vbCrLfPt Dat=Split(Txt,vbLf)先用换行符LF将点分离
13、For i=0 To UBound(PtDat)Pnxyz=Split(PtDat(i),)再用逗号将点中各项值分离On Error GoToOver:防止末尾多余的换行引起数组出错PN=Pnxyz(0):PX=Pnxyz(3):PY=Pnxyz(2):PZ=Pnxyz(4)PN=_+&PN&Space(10-Len(PN)PX=_ x&For matCoord(PX):PY=_ y&For2matCoord(PY)PZ=_ z&FormatCoord(PZ):PS=PS&P N&PX&PY&PZ?54?1994-2010 China Academic Journal Electronic P
14、ublishing House.All rights reserved.http:/NextOver:MSComm1.Output=FH:sleep(400)PS=PS&_:PS L=Len(PS)j=1283(PS L 128)+1)For i=1 To j Step 128If PS L-i 127 Then不够一整块数据,在后面补空格PS1=Chr(2)&M id(PS,i)&Space(127-PS L+i)&Right(L ineN,1)ElsePS1=Chr(2)&M id(PS,i,128)&R ight(L ineN,1)End IfL ineN=LineN+1PS1=PS1&
15、BBC(PS1)&Chr(3)&vbCrLfDoEvents:MSComm1.Output=PS1:sleep(400)NextJE:DoEvents:MSComm1.Output=FE用到的两个子函数Function FormatCoord(Coord A s String)A s StringFormatCoord=000000000D im T#:T=Val(Coord)31000If T 0 Then FormatCoord=+&FormatCoordElse FormatCoord=-&FormatCoordEnd FunctionFunction BBC(Block A s Str
16、ing)A s String 求块的BBC校验码D im BBCi%,i%:BBCi=A sc(M id(Block,1,1)For i=2 ToLen(Block)BBCi=BBCi Xor A sc(M id(Block,i,1)NextBBCi=BBCi Xor 2D im Z3:Z3=LTri m(Str(BBCi)BBC=000:M id(BBC,4-Len(Z3)=Z3End Function程序运行界面(见下图):参考文献1 李鸿吉.V isual Basic 6.0高级编程技术.北京:科学出版社,20032 新编W indows AP I参考大全.北京:电子工业出版社,2000
17、作者简介:曾 圣(1978-),东华理工学院硕士研究生毕业,工程师,现在江西省煤田地质局工作。收稿日期:2006-07-10编辑:郭正义我国将建煤矿安全警示教育基地为贯彻落实国家安全生产监督管理总局、国家煤矿安全监察局等七部委联合下发的关于加强国有重点煤矿安全基础管理的指导意见,日前,国家安监总局、国家煤监局决定在全国建立10个煤矿安全警示教育基地。9月28日,记者从全国国有重点煤矿安全基础管理工作座谈会获悉,国家安监总局、国家煤监局决定在大同、平顶山、重庆、六盘水、铜川、阜新、丰城、新汶、准南、鸡西建立煤矿安全警示教育基地。通过图片和实物展览、声像影视等方式,图文并茂地宣传党和国家的安全生产方针及有关法律法规,展出世界采矿及我国煤矿安全生产方面的历史资料、重特大事故造成的生命财产损失,事故案例分析以及对瓦斯爆炸、煤尘爆炸模拟演示等,使警示教育与煤矿安全生产培训有机结合起来,促进煤矿安全生产培训工作。10个煤矿安全警示教育基地分别由山西大同煤矿集团、河南平顶山煤业集团、重庆煤炭集团、贵州水城矿业集团、陕西煤业集团、辽宁阜新矿业集团、江西丰城煤矿集团、山东新汶矿业集团、安徽淮南矿业集团、黑龙江省龙煤矿业集团承建。国家安监总局和国家煤监局负责对基地统一挂牌、综合监督、业务指导,并协助提供有关资料。?64?