VB自动化技术
VB自动化技术(精选7篇)
VB自动化技术 第1篇
纵横断面图是线路设计和土石方量计算等工作的基础资料。目前, 在水利工程和交通等带状工程设计工作当中DEM得到大量的应用。通过航测、遥感以及常规测量可以得到设计区的带状DEM或者是区域DEM, 然后, 大量的专题设计工作就可以通过使用该DEM的分析应用得到, 纵横断面图就是其中之一。能通过对施工区的DEM的分析自动得到设计断面的断面图, 可以大幅提高工作效率。Surfer软件是美国Golden Software公司研制开发的基于Windows操作系统的世界上公认的高质量三维图形绘制工具, 它就是基于规则Grid模式建立高质量DEM的, 从而被广泛应用于地质、地理、测绘、水利、气象和国土资源等领域。从Surfer 7开始, 软件增加了Automation技术, 可以运用软件自带的Script工具进行二次开发, 也可以运用多种高级语言进行二次开发, 例如Visual Basic、Visual C++和Delphi等, 这些高级语言都是通过Active、DDE等技术来自动调用Surfer来实现某些操作的, 以达到技术人员的某种目的。Visual Basic6.0是非常好的面向对象的高级语言, 它可以通过Active技术自如得调用系统中安装的提供接口的应用程序去完成预期的目标。本文将研究运用Visual Basic6.0自动调用Surfer8.0软件生成断面图绘制基础数据, 再调用Auto CAD2006自动将断面图绘制出来, 达到了运用DEM数据自动绘制断面图的目的, 满足了设计工作的需要。
1 程序设计实现
1.1 软件功能设计
本程序是运用VB调用Surfer软件来计算生成纵横断面图绘制数据的, 所以首先要非常熟悉Surfer软件是如何获取这些数据的, 另外还要熟悉Surfer软件的Automation技术, 以便更好的运用VB进行对Surfer软件的更好控制。一般情况下, 从线路起点开始每隔一定的距离都要绘制线路的纵横断面图, 间隔距离要根据线路所穿过区域的地形情况而定, 比如平原地区间距一般取50m或者是100m, 山区则要求间距更小一些, 所以线路测量工作中的纵横断面测量是一项非常繁重的工作。借助现代测量技术得到测区高质量DEM, 然后通过DEM的运用技术自动生成断面图, 就把测量人员从繁重的工作中解放出来。获取纵横断面图绘制位置可以通过对DEM的地形分析, Surfer软件确定线路穿过区域的地形, 然后确定纵横断面图间隔, 然后确定纵横断面图端点的坐标。Surfer软件中获取断面图数据是运用*.bln文件提供断面位置, 然后求取过断面线垂直平面和规则Grid各个交点的三维坐标, 并把坐标数据文件存储为*.dat文件。本文就是运用设计数据提供的各个断面位置数据自动生成*.bln文件, 然后通过VB调用Surfer软件进行断面数据 (*.dat) 得生成, 并把断面数据存储到指定位置, 然后再从*.dat文件中提取数据, 然后再调用Auto CAD软件把纵横断面图绘制出来。当然, 在编码过程当中要对*.bln文件和*.dat进行分析, 以便正确使用这些交换文件。
1.2 VB对Surfer对象的引用
Active X是微软公司提供的基于COM技术的在windows环境下统一管理和协调不同的应用程序, 准许这些应用程序之间相互沟通、相互控制的技术。它通过在两个程序间安排对话, 达到一个程序控制另一个程序的目的。要使VB实现对Surfer软件的控制, 就要让VB引用Surfer对象。点击VB开发环境中“工程”下拉菜单中引用项, 弹出“引用”对话框, 然后在对话框列表中选择“Surfer 8 Type Library”项 (见图1) , 这样使VB在调用Surfer软件时可以使用Surfer软件提供的各种库, 实现对Surfer软件的全面控制, 使其按照指令完成各种操作。VB对Auto CAD软件的调用和对Surfer软件的调用类似, 在此不作介绍。
1.3 接口文件格式分析
*.bln文件又叫“白化文件”, 它是Surfer软件自定义的一种固定格式的文本文件, Surfer软件通过对它的调用可以确定一条Polylin或者是一个封闭的Polygon, 以下为该文件示例:
上例中:第一行中“2”表示白化线为2个点所构成的一条线, 下面两行是直线两端的平面坐标。本白化文件要求技术人员在纵横断面位置设计工作当中生成。
*.dat文件是Surfer软件获取的绘制断面图的数据。数据格式示例如下:
第一列:过断面线垂直平面和规则Grid各个交点的x坐标 (东坐标) ;
第二列:过断面线垂直平面和规则Grid各个交点的y坐标 (北坐标) ;
第三列:过断面线垂直平面和规则Grid各个交点的z坐标 (高程) ;
第四列:过断面线垂直平面和规则Grid各个交点到断面线起点位置的距离;
第五列:断面线编号。
1.4 编码
根据功能设计, 设计出交互性能友好的窗体, 然后给所用控件添加代码, 本文仅对关键代码进行介绍。
以下为VB调用Surfer软件的代码
Dim srf As Object
‘定义对象变量。
‘调用Surfer软件, 并使它不可见。
以下是调用surfer软件生成*.dat文件的关键代码, 代码中gridfile、blnfile可以运用Microsoft Commondialog控件在计算机硬盘上选择, 其中gridfile文件是DEM文件, blnfile文件为断面线文件。Datfile可以运用Microsoft Commondialog控件来指定硬盘上的存储位置。
根据2.3中对*.dat文件的分析, 其实绘制一条断面线的断面图只需要用到*dat文件中的第三列和第四列数据, 其中第四列数据作为Auto CAD绘制断面图的x坐标, 第三列数据为y坐标。笔者编写了从*.dat文件中提取x, y坐标数据的VB程序, 此处从略。
通过上述工作得到了绘制断面图的数据, 下面就可以通过调用Auto CAD软件来绘制断面图了。调用Auto CAD软件的方法和调用Surfer软件类似, 此处从略。下面是调用Auto CAD软件绘制断面图的关键代码:
在Auto CAD软件中绘制中绘制断面图坐标系和标注的代码从略。
2 实例
笔者在徐州市绕城高速线路设计工作中运用此程序成功绘制了多个断面图, 取得了预期的效果。
图2中粗线是表示绕城高速穿过圭山的设计图, 图中等值线是由测量得到线路区域DEM生成的等高线图, 图中1、2、3和4是设计断面线位置, 本例将绘制第4条断面线位置的断面图, 如图3。
3 总结
(1) 运用此程序实现了基于DEM的断面图的自动绘制, 提高了工作效率, 满足了实际工作的需要。笔者在工程测量实践及教学工作中大量运用了本程序, 取得了很好的应用效果。
(2) 本程序运用的是Visual Basic6.0开发程序的Active X技术, 计算程序是通过控制Surfer软件和Auto CAD软件来完成的, 所以本程序运行需要计算机上同时安装Surfer软件和Auto CAD软件, 并且要求应用者对Surfer软件和Auto CAD软件有一定的应用基础。
(3) 本程序是以高精度DEM为基础的, 所以对测量工作要求高。
(4) 本程序在功能方面还有扩充的空间。
参考文献
[1]杨朝辉.基于Surfer Automation对象的DEM应用开发技术[J].北京测绘, 2003 (3) .
[2]于平.应用ActiveX技术实现Surfer自动绘制等值线图[J].广东气象, 2006 (8) .
[3]Surfer 8 Help[CP]. (C) 2000, Golden Software, Inc.
VB窗体的自动生成 第2篇
1 建立数据字典
如表1所示建立数据字典。
其中,控件类型代码为:0-文本框、1-标签、2-单选框、3-复选框、4-组合框、5-命令按钮等。根据需要自己设定,一般跟数据表相关的窗体中,文本框和标签使用得最多。当然,完整的数据字典比这个复杂,这里只列出了与本文相关的部分内容。
2 窗体代码分析
首先,要研究VB系统本身产生的窗体代码特征。如图1中窗体的文件是Form1.frm,用文本编辑器如记事本打开这个Form1.frm文件,看到如下代码。
1) VERSION 5.00
2) Begin VB.Form FormName
3) Caption="窗体标题"
4) ClientHeight=1305
5) ClientLeft=60
6) ClientTop=345
7) ClientWidth=3030
8) LinkTopic="FormName"
9) ScaleHeight=1305
10) ScaleWidth=3030
11) StartUpPosition=3'窗口缺省
12) Begin VB.TextBox Text1
13) Height=345
14) Left=975
15) TabIndex=1
16) Text="文本框"
17) Top=405
18) Width=1545
19) End
20) Begin VB.Label Label1
21) AutoSize=-1'True
22) Caption="标签"
23) Height=180
24) Left=285
25) TabIndex=0
26) Top=450
27) Width=360
28) End
29) End
30) Attribute VB_Name="FormName"
31) Attribute VB_GlobalNameSpace=False
32) Attribute VB_Creatable=False
33) Attribute VB_PredeclaredId=True
34) Attribute VB_Exposed=False
这个代码段可以分成三个部分,每个部分以Begin开始,End结束:
窗体头:包含1-11行。其中第1行为版本号;第2行中的FormName为自定义的窗体名;第3行为指定的窗体“标题”信息;第4-11行是窗体位置、大小、窗口状态等信息;其中第8行是指关联窗体项,可设置成与窗体同名,也可省略。
控件部分:包含12-28行。其中第12-19行是文本框控件,其名为“Text1”,内容为“文本框”;第20-28行是标签控件,其名为“Label1”,标题为“标签”。
窗体尾:包含29-34行。其中,第28行的End表示窗体的结束,第30-34行为VB窗体的一些附加属性。
3 生成窗体文件
通过文本编辑器软件可以打开窗体文件可知:使用VB可视化环境设计的窗体,保存后的窗体文件(.frm文件),其内容实际是文本文件。因此,要想自己设计代码来自动生成窗体,可以逆向进行,按照窗体文件内容的格式生成文本文件,并以“.frm”的文件扩展名保存。
依据第2部分的分析,构建三个文本文件: (1) 窗体头.txt、 (2) 控件部分.txt、 (3) 窗体尾.txt。其中 (3) 的内容对于绝大多数的窗体来说是固定不变的。对应不同的窗体,变化的只有前两个部分。
3.1“窗体头.txt”文件的生成
把上代码段中的第1-11行中的每一行内容作为字符串,按行依次写入“窗体头.txt”文件中。其中,需要把“FormName”的内容换成新指定的“窗体名”。
3.2“控件部分.txt”文件的生成
数据表相关的窗体中,控件一般是与数据表或数据字典中的项息息相关的。这样,在设计数据字典时就有意识地附加上控件的相关信息。参照表1的数据字典,可以依次按行产生一个标签(标签的标题为“字段中文名”)和一个文本框(文本框的Name属性为“txt+字段英文名”)。然后分别把第2部分的第12-28行(分别为标签和文本框控件)重复写入“控件部分.txt”文件。至于标签和文本框的其它属性可以根据需要自行指定,也可以事先设计标签和文本框的模板,如图2所示。新加入的标签和文本框控件的属性,依据模板中标签和文本框的属性而定。
3.3 生成窗体文件
最后把生成的窗体头.txt、控件部分.txt和窗体尾.txt这三个文件合并成一个文件,并以“.frm”作为扩展名保存该文件即可,如新窗体.frm文件,如图3。
4 将窗体加入指定工程
用文件编辑器软件打开VB工程文件,研究下VB工程文件的结构,就可以按照上述方法同样可以把任意窗体文件加入到任意指定的工程中,还可设置窗体间的父子关系。
5 结束语
依据数据表或数据字典可以方便地自动生成VB窗体,这大大提高了工作效率,缩短软件界面的设计时间。实际上,根据一个系统的数据库或数据字典集,可以自动生成系统的绝大多数的初步界面和一些基本的数据操作代码,从而达到整个系统的自动初步实现,也即软件自动生产的概念,这将是下一步的工作目标。
摘要:提出了一种依据数据表或数据字典自动生成VB窗体的方法, 它能够大大提高系统的开发效率, 更进一步节约人力资源成本。
关键词:VB,数据表,数据字典,窗体
参考文献
[1]李罡.Visual Basic5.0编程实例详解[M].北京:电子工业出版社, 1998.
[2]Balena F.Visual Basic6.0编程技术大全[M].北京:机械工业出版社, 2000.
VB自动化技术 第3篇
1 VB.net与自动化测试系统介绍
VB.net作为一种集成功能强大的程序将开发工具, 具有完全支持面向对象编程的新特性, 它利用自身提供的NET框架功能切实实现了面向对象的程序开发, 具有多种面向对象特性, 如集成、封装、多态性与可重载型等, 将C#、VC++等多种开发工具紧密联合, 对快速创建分布式应用程序提供支持。VB.net为程序编程提供清晰且庞大的类结构使得变成开发变得简便轻松, 可及时自动回收垃圾, 开发效率高, 本身无接触部署和多平台特性使得开发过程将重心从计算机控制转移到逻辑功能上, 可实现同一系统的多语言开发, 实现不同语种之间的无缝集成, 功能强大, 完全可以支撑自动化测试系统的编程开发。
自动化测试系统综合应用自动控制技术、测试技术、计算机技术与数字信号处理技术等满足自动测试需求, 是当前测试行业重要发展方向。当前自动化测试系统中的虚拟仪器的应用是该其技术核心, 虚拟仪器作为第三代自动测试系统同义语, 本身以计算机软件为核心, 具有测量速度快、精确度高、人机界面优异、灵活性强、功能性强、自动化程度高等优势, 目前向着驱动标注化、硬件模块即用化、编程平面图形化方向发展。仪表自动化测试系统的设计核心在于虚拟仪器, 这也意味着应用VB.net进行编程设计才能够确保仪器功能的实现。
2基于VB.net的仪表自动化测试系统设计
PDL是系统所在偏振状态下最大传输差值, 是光纤远距离传输中重要参数, 关系到光器件表征, 在光纤网络传输中对器件的选择意味着需要倚重PDL测试结果。我们以仪表光器件中PDL (偏振相关损耗) 测试为例, 应用VB.net设计自动化测试系统。
PDL测量方法目前主要以偏振扫描法、单次MULLER扫描法和MULLER扫描法为主, 过程包括仪表连接、校准、测试、处理结果四个步骤。仪表连接中根据测试需求选择合适仪表类型, 新建测试对象, 在仪器与控制器之间建立通信接口;校准时记录不同波长偏振态波片位置和功率计数;接入被测件后对比校准阶段拨片位置调整偏振态, 扫描测量功率, 获得全部功率后计算PDL与插入损耗, 结果制成所需为文件形式了, 基于VB.net设计的仪表自动化测试系统正是遵循此运行步骤。
软件架构:PDLTest分为控制层、方法层、操作对象三层结构, 控制层为界面, 即PDLTest.vb, 面向对象, 控制运行方向, 方法层即Testing.vb、Drawing.vb模块, 以操作函数函数, 操作对象层将操作仪器封装成类, 在无需改变控制层与方法层的前提下改变仪器类即可完成对象更改, 完成测试。
测试PDL所需仪器主要以偏振控制器、可调谐激光源、光功率计等, 不同仪器在测试系统中功能与地位均不同, 仪器设备成功后, 可进行测试、画图和文件处理。比如测试模块中Testing.vb包含所有校准、测试机后期计算方法, 仪器初始化时, 将用户选择定义为所需要的类, 将这些常用公共参数作为全局变量写入编程, 可方便全局使用。校准时应用函数CALIBRATION () 可对偏振控制器、耦合器进行调控, 与偏振分析仪、光功率计连接可完成波片位置、光功率的记录。校准流程示意图见图1。该校准流程下校准波长点即测量波长, 可节约校准实践, 在测量环境不变的情况下通过改变参数设置即可完成下一次校准, 同步保存所有校准测量信息。测量中将在偏振控制器与光功率计输出端连接时需要注意保持同校准环境条件一致才可开始测量, 应用测量函数Sweep Test () 以确保数据的准确性。测量完成后进行画图操作, 应用结果选项卡中PDL按钮、应用Matlab可完成ODL曲线描绘, 必要时可载入先前测量结果进行对比观察。
仪表自动化测试系统在PDL测试中通过应用VB.net设计虚拟仪器平台可快速完成光器件的测量, 配合光功率计、偏振控制器、可调谐激光器等组成测试系统, 校准方便、测量精准、测量速度快, 极大的方便了系统的应用, 证明了VB.net在系统测试编程中应用的可靠性, 本次研究仅简单分析了大体设计架构, 想要获得更好的测试成果, 就需要进一步丰富设计层次结构, 增强后续处理功能, 以达到测试目标。
综上所述, VB.net在仪表自动化测试系统设计中的应用可高效、快速完成测量任务, 应用使用价值高, 实际应用中需要进一步丰富设计结构以完成复杂测量目标。
参考文献
[1]郭甲阵, 谢华, 兰京川.基于虚拟仪器的雷达电路板自动测试系统[J].仪表技术与传感器, 2011 (02) .
[2]高博, 徐雅静, 孔明明.射频指标自动化测试系统的设计与实现[J].中国新通信, 2013 (22) .
VB实现统计数据的自动录入 第4篇
每年各基层单位都有大量统计数据需向上级主管单位上报,由于各级单位具体从事的业务范畴多、不统一,大部分基层单位没有统一的日常办公系统。各上级主管单位为了得到统一格式的统计上报数据,往往会下发一些专门的统计上报软件。有些统计上报软件与基层单位的办公系统软件之间没有数据交换接口,因此各基层单位在上报统计数据时都必须先将统计数据从业务系统中导出,然后再安排人员手工录入统计上报软件中。统计数据数量大、多为数字,人工录入时间长且容易出错,各基层单位往往需要加班才能在规定时间内完成统计数据的上报工作。巧妙地通过利用VB6.0中的SendKeys语句模拟计算机键盘操作,可编程实现了统计数据的自动录入功能。
2 实现原理
在实现计算机模拟键盘操作时,主要用到了VB6.0中的SendKeys语句。SendKeys语句可以将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。SendKeys的语法很简单:SendKeys string[,wait],其中string为必须的,指定要发送的按键消息;Wait为可选的,指按键消息在返回到过程之前是否需要等待。利用SendKeys语句几乎可以完成所有录入界面上任意数据类型的输入操作。录入界面需要完成的主要操作有如下:
(1)一般的文本框录入:可以直接用SendKeys string[,wait]完成,将string替换成需要录入的内容即可。
(2)下拉列表框的选择输入:这部分内容虽然不能直接用SendKeys string[,wait]完成,但可以用SendKeys“{DOWN}i”来完成相应的选择功能。这里的i表示连续输入i个向下键,只要将i设置为需要输入的内容对应于列表框中第几项就可以了。
(3)输入位置的转移:在输入界面中需要不停地在不同的文本框或列表框之间进行光标焦点的切换,以实现各项内容的输入,可以用SendKeys“{TAB}”来实现。在实际编程之前一定要在录入界面上通过按TAB键来确定光标在各个输入项之间的移动顺序,以便在录入时确定录入内容与录入项的一一对应关系。
(4)对按钮的操作:可以用SendKeys“{ENTER}”来实现。
3 自动录入汇总数据
3.1 实例概述
为了确保土地变更调查工作的顺利进行,国土资源部每年都会统一下发土地变更调查汇总及联网软件。各下级部门必须按要求在规定时间内将所有土地变更调查数据录入该软件中,录入的主界面如图1所示。以此软件为例,利用VB编程实现变更数据的自动录入,以便让读者更深入了解本文描述的方法是如何在实际工作中发挥作用。
3.2 录入数据准备
首先将需要录入的数据从日常的办公系统中导入到Excel表中,如图2所示。由于录入数据的后三项(新增建设用地类型、建设用地状况、耕地变化类型)为下接列表框的输入类型,为了便于程序处理,将录入数据转换为下拉列表框中对应数据项的数字形式,如图3所示。为了使程序简捷,将最终的Excel数据转换成了TXT文件,中间用“,”隔开,如图4所示。
3.3 编程实现
(1)新建一个标准工程,名称为“Project1”。在工程中创建一个窗体,名称为“Form1”。
(2)由于需要读取文本文件,在工程部件引用中选中“Microsoft Scripting Runtime”。
(3)在“Form1”窗体中放置1个CommandButton控件,名称为“Command1”。
(4)添加程序代码,将如下代码拷贝到“Form1”窗体的代码中即可。
3.4 程序运行
程序的运行顺序也非常重要,首先将土地变更调查汇总软件启动并打开土地类变更数据录入界面,然后启动本程序并按下启动按钮。本程序将暂停5秒,在这5秒内迅速用鼠标激活变更数据录入界面的窗体,并将活动光标放在录入界面窗体的第一项录入位置,即“变更前地类”数据项。如果活动光标定位不正确将会导致后面的录入项错乱,程序将在5秒钟后自动将数据录入到录入界面上。在整个录入工作完成之前,录入程序接管了所有的键盘操作,操作人员不能再对键盘或鼠标进行操作,否则录入程序将会失去录入焦点,导致录入项错乱或停止录入。
4 结语
VB自动化技术 第5篇
由美国BentleySystem[1]公司开发的MicroStation软件, 是一套可执行于多种软硬体平台、通用小型机的专业电脑辅助绘图及设计软件。正是因为它是由小型机移植的专业电脑辅助绘图及设计软件, 在软件功能与结构上, 它不仅远优于一般的PC级电脑辅助绘图及设计软件, 在软件效率表现上更有一般PC级电脑辅助绘图及设计软件所远不能及之处。经过几年的发展已升级到V 8[2]版本, 并已在中国正式发表更新一代的CAD标准-MicroStation/V 8XM中文版 (文件后缀为.DGN) 。据统计, 全球95%的基础设施图纸都是使用DGN和DWG (AutoCAD文件格式) 文件进行设计、建造和维护的。而用户可以同时以这两种文件格式直接编辑并储存。这种处理方法的一个优势就是该软件可以参考并直接编辑AutoCAD的DWG格式的文件, 从而使之成为支援当今世界上最流行的CAD格式的一个工具, 极大提高互操作性和兼容性。对于使用过AutoCAD[3]软件的工程设计人员而言, 这就意谓更容易适应软件转换, 而这也正是其易于使用的基础。因此提高了绘图与设计效率, 衍生出更高的经济效益。
2 使用MicroStation中出现的问题
在项目的实施过程中, 发现仪表工程人员对于该软件的使用还是停留在AutoCAD那种逐个点绘制的传统方式, 例如对仪表布置图, 仪表伴热布置图, 仪表供气布置图等仪表基础图纸的设计中, 这种方式总是使工程人员处在不断地重复单调而又繁琐的体力劳动中, 我们要改变这种设计过程, 使得工程人员尽可能地从中解脱出来在仔细研究之后发现该软件支持VBA[4]、VB和VB.NET, 而国外虽有支持MicroStation和EXCEL[5]、TXT之间转换的软件, 但这样的软件工具都是收费的, 并且价格不菲。为了降低工作成本, 综合考虑上述各种编程软件, 发现利用VB编程简单易行, 而且VB程序与VBA程序比较接近, 可以很容易就进行转化, 更重要的是采用VB[6]编出的界面化可执行程序 (.exe) 可以推广给那些不会编程的设计人员, 供其直接进行使用, 整合后的界面可以根据要求做出各种改变, 例如增加许多功能, 修改操作界面, 以使设计人员方便灵活的使用。理清思路后针对仪表专业设计特点, 让软件能够实现具体的设计功能。
3 利用VB实现进行仪表设计的工作方案
以仪表布置图为例, VB设计出来的软件主要达到两个目的:一是通过搜集整理所需要放置仪表位号的数据源、仪表标识符号[7]及其所在位置的X, Y, Z坐标, 这是首要的目标, 也是仪表基础图纸的核心要求;二是通过对TXT文本文件、EXCEL文件、DGN文件进行控制, 使编制程序对各种文件进行各自独立调用, 这是生成图纸, 保证出图质量的前提。
下面就分别从对TXT文本文件、EXCEL文件, 及单独修改、批量替换等交互处理DGN文件, 逐步详细分析程序的设计理念及设计过程, 达到对原始数据源的控制, 使之最后达到成品图的输出。
3.1 对EXCEL文件的控制
采用MicroStation的工程项目, 基本都会采用PDS (PlantDesignSystem) 这个三维设计软件, 利用PDS并从中得到3D模型中所有仪表点的横坐标X、纵坐标Y、竖向坐标Z以及所有仪表位号等信息, 这就是我们所需要的原始数据。
利用PDS的提取功能, 可以获取TXT格式或者EXCEL格式的数据源, 我们先选择后者, 这是考虑EXCEL对获取的数据进行处理会比较方便快捷。
表1就是利用PDS提取的原始数据整理得到的初步EXCEL数据列表, A列代表X坐标, B列代表Y坐标, C列代表Z坐标, D列代表仪表位号, 其中C列在分层已定后即可改为零, 这是因为我们设计的成品图为二维图。
EXCEL原始数据整理完毕后, 就可以利用VB调用EXCEL中的数据源, 使之进入DGN文件中的指定位置。在VB与DGN文件通讯之前, 首先要添加引用, 即在VB 6中要用菜单项Project>References完成, 对于运行要装载应用程序, 这样就可以在VB和DGN文件之间架起一座桥梁, 使二者能够连接。然后在VB的软件窗体程序中需要加入判断DGN文件是否打开 (相对于装载应用程序这个先决条件) 判断DGN是否打开就是数据导入的先决条件, 如果没有打开则程序会提示需要先打开DGN文件, 然后再启动该软件, 这是因为启动DGN文件之后再运行该软件, 窗体会自动装载所有图块、图层, 使它们置于软件对话框中, 这样进入程序之后就可以对DGN文件进行数据、符号及标识等处理工作。
仪表符号主要分为两部分, 即仪表位号 (文本) 和仪表块 (符号) , 两者采用的数据源和程序既有相同之处, 又有不同之处。原因在于仪表位号 (可以用序号代替) 与仪表块的起始坐标有一定差异 (要把位号或序号放入仪表块的圆圈中) ;另外就是自动输入文本和自动输入仪表块的程序是不同的, 前者把调用的文本 (仪表位号或序号) 放入到对应的图层 (Level) 中, 后者需要把仪表块 (Cell) 放入到对应的图层中。图1就是表示仪表位号和仪表符号经过软件执行后得到的样例。
采用EXCEL作为数据源的优势在于增减数据行列都非常容易, 例如批量修改X、Y、Z坐标等, 也把EXCEL作为数据库的扩展能力得到很好的利用和发挥。
3.2 对TXT文件进行控制
TXT文件的调用相比EXCEL会更快一些, 因为不用在VB程序中引用EXCEL的嵌入式插件。如果设计人员倾向于对TXT文件进行调用, 则在原始数据源之间加上逗号, 即在X、Y、Z坐标及位号之间增加隔断符号逗号, 然后整个拷贝到TXT文档中即可执行对TXT文档数据的调用, 就此得到TXT文本。选择的数据源不同, 采用的VB程序也要进行相应的修改。表2就是要放入到TXT文档中的数据源简表。
在TXT原始数据源已经整理完毕之后, 就可以利用VB程序把仪表位号和仪表符号分别导入DGN图纸中, 最后生成图纸。下面程序为导入仪表位号的简要VB代码, 根据实际工程设计需要可以增加很多信息, 如高度、颜色、层、字体等。
导入仪表位号之后, 就可以利用VB调用数据源进行仪表标识符号的导入, 完成这项工作需要先在DGN文件中加入所需要的仪表块 (cell) , 然后通过程序批量调用该仪表块, 来实现导入工作。当然可以根据设计人员的要求修改代码, 达到一次性全部导入仪表位号及仪表标识符号。
TXT文本数据源的程序在数据调用上与EX-CEL基本一致, 但在VB程序编写上, 后者要符合EXCEL的要求, 相比较而言, VB调用EXCEL给文件的程序要复杂一些在此不再赘述.
3.3 对单独修改仪表的控制
在实际的工程设计过程中, 由于个别仪表需要进行修改, 即它们在自动处理中没有输入到DGN文件中, 尤其是工艺管线平面布置图改动频繁, 很多地方的改动很大, 还有设计后期成套设备文件才能得以提供, 上面所述的仪表种类数量都很多, 这也给设计带来了很多的困难。特别是整个工程都是在十几米到几十米的高空, 按层高来进行仪表点的布置使得布置仪表点较为困难。对这些仪表如果采用批量处理就会要求提供坐标, 会比较耗费时间。我们利用软件的单点输入功能把单个点放置在仪表所在大致位置, 另外还可以通过软件来提取图纸中某个位置的X、Y、Z坐标, 这些功能完全满足工程设计人员的各种要求, 达到自动批量输入和少量单点的快速输入, 只需要知道修改仪表处于哪个高度层、大致位置, 就可以把仪表点轻松布置在DGN图中。
3.4 替换指定层中仪表的符号
一些项目中基础设计工程承包商直接提供MicroStation的DGN文件, 但是项目要求变换仪表符号如果逐个删除再逐个添加就非常耗费时间在一些国外公司基础设计的文件中就碰到这种问题, 就是要把已经设计出的基础图纸里面的各种仪表符号换成另外一套符号体系, 面对成千上万, 乃至几万台的仪表, 要先删除, 再逐个根据实际位置进行绘图, 修改的工作量可想而知。灵活运用VB[8], 设计出批量替换原有仪表符号的程序的需求就很迫切。为此要求设计出来的VB软件要能达到批量替换功能, 即只需要选中指定层, 选中项目要求的仪表符号, 然后点击执行, 这时候再点击哪些仪表符号需要改变, 该图层中所有需要的仪表符号就一次性被全部替换, 这就大大减少人的劳动强度。经过不断测试, 增加VB的设计功能, 就可以完全达到预期修改效果, 使得设计人员可以灵活地把一种仪表符号替换成另外一种, 使得该软件具有很好的灵活性。
4 结束语
该软件在中东沙特等项目中, 包括仪表供气图、仪表伴热图、仪表布置图等图纸中都得到灵活运用, 在控制出图质量上完全满足业主对项目的要求, 且图纸的设计工时比预计少一半以上。该软件不但能够进行仪表的布置, 还能进行仪表桥架等线形的设计功能.
摘要:一些石化工程设计当中, 通常采用的是AutoCad的绘图方式, 如今采用MicroStation这个软件进行仪表专业的设计在不断增加。在该软件使用过程中, 发现采用逐个符号绘制仪表图纸的方式来完成这部分工作非常繁琐, 文件的修改也有很多困难。我们采用VISUAL BASIC来自动完成仪表图的设计。针对传统方式, 通过对VB的灵活使用, 实现对数据源的全面控制, 然后整理、导入、导出, 直至完成达到出图要求的最终的成品仪表图。根据某中东沙特项目的实施情况来看, 在相应数据得到获取之后, 且设计步骤都得到了充分的考虑, 采用VB编制的综合性软件, 实现图纸设计标准化, 同时减少设计人员大量的繁琐工作, 节省了许多人工的同时, 提高了设计的标准。
关键词:原始数据,调用数据,编制代码,生成图纸
参考文献
[1]Bentley System Incorporated.MicroStation基础[M].第7版.USA:Bentley Institute, 2004.
[2]Bentley System Incorporated.MicroStation V8 AdministratorUpdate Third Edition[M].USA:Bentley Institute, 2004.
[3]邱春霞, 刘宝锋.MicroStation J与AutoCAD2000的数据转换[J].西安科技大学学报, 2005, 25 (2) :187-189.
[4] (USA) WINTERS J.Learning MicroStation VBA[M].USA:Bentley Institute Press, 2006.
[5] (日) 古川顺平, 周宁.Excel (含VBA) 数据管理从入门到精通[M].鲁运连, 译.北京:中国铁道出版社, 2009.
[6]杨章伟.Visual Basic完全自学宝典[M].北京:清华大学出版社, 2008.
[7]HG/T20505-2000, 过程测量和控制仪表的功能标志及图形符号[S].北京:全国化工工程建设标准编辑中心, 2001.
VB对气象数据图形报表的自动生成 第6篇
在实际的工作中,通常需要对数据库中的大量数据进行查询和统计,最后形成各种各样直观的数据和图形报表以利于分析。VB是常用的应用软件开发工具,由于VB的报表功能有限,而且一旦报表格式发生变化,就得修改相应程序,给应用软件的维护工作带来极大的不便。因此,通过VB编程对大量数据进行统计的同时,导出到Excel电子表格当中快速生成所需要的各种类型报表,充分利用Execl的强大报表功能,使得VB与Excel分别属于不同的应用系统,有机地结合在一起。
以某热力有限公司室内温度监测数据报告和气象站风速概率图表的生成为两个实例,主要讨论如何利用VB自动生成数据图形报表的方法。
2 开发实例
2.1 功能
根据热力有限公司需求,要求生成的室内温度检测数据报表要有标题、表头、页眉和页码,以及固定的边框样式等,同时保存报表并执行打印功能,便于用户对数据的分析。该系统的数据形成的流程如图1所示。
2.2 程序
根据以上流程图分析,首先要链接相应的数据库,用户根据自己的要求选择相应的查询条件,筛选出数据库中对于自己有用的数据信息,同时将数据保存在报表文件夹下,最后选择打印报表。程序实现的界面如图2所示。
由于VB本身具有创建和读写Excel表,首先在工程中引用Microsoft Excel类型库,从“工程”菜单中选择“引用”栏;选择Microsoft Excel 9.0 Object Library(Excel2000),然后选择“确定”,表示在工程中要引用Excel类型库。具体实现的主要代码如下:
2.3 生成报表
用户根据查询得出数据界面效果如图2所示,点导出按钮可将查询数据报表导出到Excel文件中,查询系统生成的温度报表效果如图3所示。
2.4 图表生成
图表生成与数据报表的生成类似,同样需要分别定义Excel程序、工作簿和工作表对象,并创建对应的Excel应用程序、工作簿及工作表,另外还需定义图表对象及工作表。下面以曲线图的生成为例介绍图表的生成方法。为便于绘制图表曲线,首先根据数据库中的数据计算图表横轴和纵轴的数据分别写入到表格中的A、B两列,代表曲线图的X轴与Y轴。主要代码及步骤如下:
最后同样保存、关闭Excel工作簿,退出、释放XlApp对象,方法同数据报表,在此不再赘述。生成的风速概率分布曲线图表如图4所示。
3 结语
通过以上两个用VB直接控制Excel输出报表的操作实例,可以看出:VB作为一种简捷、系统的Windows应用程序开发工具,具有提供多种数据访问方法。将VB与在表格方面有着强大的功能Excel表格处理软件有机结合,可以灵活地生成各种各样报表、图形,满足不同部门不同工作需求的,使得在应用程序开发方面具有了强大的数据报表图形处理,进一步完善分析、服务功能。
参考文献
[1]Excel Home.Excel Home.Excel VBA实战技巧精粹[M].人民邮电出版社,2008.
[2]高春艳,刘彬彬,王斌.Visual Basic开发技术大全.明日科技.人民邮电出版社,2007.
VB自动化技术 第7篇
极轨气象卫星地面数据接收站天线跟踪卫星使用的轨道跟踪数据是通过卫星的轨道根数事先计算出来的, 因此对于极轨卫星数据接收, 轨道根数的准确性至关重要[1]。除了天线分系统外, 数据接收系统的站管理分系统在本地制定任务计划时, 也需要不断更新的轨道根数[2]。站管分系统的任务计划调度计算机每天自动到服务器上获取FY-3A, FY-3B卫星轨道根数文件, 再计算预报出卫星的运行轨迹, 生成调度指令, 最后下达给接收系统各个设备[3]。由于接收系统还要兼容接收FY-1D和NOAA卫星过境时发送的实时HRPT资料[4], 那么这些极轨气象卫星的轨道根数就需要值班人员手动获取后, 经过编辑处理存至调度计算机。此外, 当遇到自然灾害或重大险情, 还会出现抢收、加收国外其他极轨卫星云图的情况, 这些卫星最新的轨道根数也只能通过手动获取。鉴于以上两种情况, 在保证整个业务网络运行安全的条件下, 需要一种即安全又快捷的方法实现将计划接收卫星的轨道根数文件定时传输至调度计算机。
1 Keps根数文件格式介绍
Keplerian Elements (开普勒根数) , 简称“Keps根数”[5], 通过获取网络最新的卫星Keps根数, 配合卫星跟踪软件就能正确地计算出卫星经过的时间及方位。目前使用的卫星轨道Keps根数文本文件主要有以下几种格式:TLE格式, OLE格式, AMSAT的描述型格式, 本文涉及的是前两种格式。两行轨道数据TLE (Two-Line Orbital Element, 两行报文件) , 格式结构为3行, 共168 B。第0行是卫星通用名称, 最长为24个字符;第1行和第2行是标准的两行式轨道数据格式, 每行69个字符[6]。一行根数OLE (One Line Element) , 用于海军卫星导航研究实验室或其他单位, 由于省略轨道编号和国际编号等参数, 从而使得格式简短。
2 程序设计
2.1 设计思路
设置一台发送计算机, 网口与互联网相连, 串口与任务调度计算机的串口相连。发送计算机上装有获取发送Keps根数的程序, 每天从指定网站分别在不同时间下载TLE和OLE文件, 经过不同方式的编辑整理, 留下所需数据, 通过串口将数据发送给任务调度计算机。调度计算机安装的接收程序自动接收数据文件, 分别存入指定文件夹中。
获取与发送部分, 对于每天固定接收的卫星, 已经将卫星名称写入代码中, 按以下流程完成获取传输:
(1) 判断是否到达设定时间, 由定时器1来判断。
(2) 若到达设定时间, 连接网络并访问指定路径, 获取并保存根数文件至本地磁盘。有时可能遇到网络或页面问题造成下载不成功, 此时将开启定时器2, 在网络相对较空闲的时间尝试再次获取。
(3) 获取成功后, 打开文件提取数据。对于TLE文件, 按照目标卫星的名称筛选数据。对于OLE文件, 将当天或最新的数据提取出来。
(4) 将经过处理的数据写入发送区。
(5) 对从接收计算机发来的代码进行判断传输是否成功, 若出现问题则告警提示, 等待人工处理。当需要临时增加接收计划时, 按照“增加接收计划选择卫星名称下载”的流程, 值班人员在列表框[7]中选择一个或多个卫星名称, 可以随时对增加接收计划的卫星轨道根数文件进行下载。
接收与保存部分, 按以下流程对TLE, OLE文件首字符判断分别进行接收:
(1) MSComm产生Oncomm事件, 并判断为接收事件。
(2) 读入接收区的全部数据。
(3) 将数据写入以当天日期命名的文件中, 存入指定文件夹。
(4) 从数据中提取出的日期信息显示在窗口中, 值班人员可依此判断是否为最新文件。
(5) 根据接收的字符数判断接收是否成功, 向接收计算机发送代码。
程序流程图如图1所示。
2.2 Inet与 MSComm控件
在发送计算机上安装的获取发送程序中, 需要用到两个控件: Inet和MSComm, 前者用于与网络连接并下载文件, 后者为应用程序提供串行通讯功能[8]。Inet控件通过工程部件, 在选项卡中选中Microsoft Internet Transfer Control 6.0, MSComm控件在选项卡中选中Microsoft Comm Control 6.0。接收程序仅需要添加MSComm控件。
MSComm控件被广泛用于实现串口通信, 在具体使用时必须对MSComm控件的相关属性进行设置[9]:
设置通信所占用的串口号。本文中将Commport设置为1, 表示对COM1操作。
设置对串口通信的相关参数。本文将Setting设置为9 600, n, 8, 1。
在MSComm控件中, RThreshold表示设置CommEvent属性为ComEvReceive并产生OnComm事件之前要接受的字符数。本文中设置为1。
MSComm控件提供了两种处理通信的方式[10]:一种为事件驱动方式, 另一种为查询方式。本文采用前者。
2.3 部分代码
由于篇幅有限, 只列出部分代码。
获取和发送部分代码:
接收和保存部分代码如下:
3 结 语
本文利用VB 6.0的MSComm控件, 和串口通信简单、安全的特点, 编写的程序可以实现Keps根数文件的自动获取、编辑、发送和接收。不仅具有告警显示和手动获取功能, 而且可以实现临时增加收计划时根数文件的获取传输, 具有较好的实际应用价值。在应用期间提高了值班人员的工作效率, 达到了预期的设计目的。
参考文献
[1]王雅.轨道根数对极轨气象卫星数据接收的影响[J].科学技术与工程, 2009, 9 (2) :321-327.
[2]李楚洲, 胡民达, 肖华, 等.广州气象卫星地面站风云三号应用系统组成及工作模式介绍[J].科协论坛, 2008 (8) :59-60.
[3]刘爱民, 朱杰, 王雅, 等.地面接收系统两行报更新故障分析及解决策略[M].北京:国家卫星气象中心, 2009.
[4]周海莺, 黄锦渊, 祝春萌, 等.风云三号气象卫星及广州地面数据接收处理系统[J].卫星与网络, 2009 (5) :59-63.
[5]沈永明.卫星跟踪软件 (上) [J].卫星电视与宽带多媒体, 2007 (15) :40-47.
[6]周海莺, 祝春萌, 黄锦渊.卫星星历及广州气象卫星地面站相关数据分析[J].气象水文海洋仪器, 2010 (1) :60-63.
[7]郑阿奇.Visual Basic教程[M].北京:清华大学出版社, 2005.
[8]江永池.基于串行通信的智能家居上位机设计[J].现代电子技术, 2010, 33 (13) :133-136.
[9]李立早.基于MSComm控件的GPS接收机数据终端接口设计[J].现代电子技术, 2006, 29 (20) :97-98.
VB自动化技术
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。