VB电压采集系统设计论文.docx
- 文档编号:7319886
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:23
- 大小:218.74KB
VB电压采集系统设计论文.docx
《VB电压采集系统设计论文.docx》由会员分享,可在线阅读,更多相关《VB电压采集系统设计论文.docx(23页珍藏版)》请在冰豆网上搜索。
VB电压采集系统设计论文
摘要
本论文叙述了Visualbasic6.0语言和Microsoftaccess2003数据库的基本知识概况。
重点介绍了电压采集系统的实现过程,包括:
串口通信、硬件连接、modbus协议、数据采集、数据处理、实时数据显示、数据存入数据库、历史数据打印报表、历史曲线的绘制等内容。
关键词:
电压采集系统计算机控制VB与数据库串口通信
目录
引言---------------------------------------------------------------------------------------------3
项目开发背景------------------------------------------------------------------------------3
项目开发目的------------------------------------------------------------------------------3
系统开发所需要的技术准备------------------------------------------------------------3
第一章应用系统开发工具------------------------------------4
第一节VisualBasic简介及实现原理-------------------------------4
第二节VB中的MScomm串口通信控件-------------------------------4
第三节vb中的数据访问对象(DAO)---------------------------------------------6
第四节VB中的MSCHART控件-------------------------------------8
第二章VB与数据库的应用-----------------------------------------------------8
第一节数据库基础--------------------------------------------------------------------8
第二节关系型数据库标准语言SQL-------------------------------11
第三节DAO中常用对象的方法和属性-----------------------------12
第三章Modbus协议-------------------------------------------------------------14
第四章系统分析-------------------------------------------------------------------15
第一节系统功能简介-----------------------------------------------------------------15
第二节系统具体功能的实现-------------------------------------16
附录-------------------------------------------------------------------------------------------22
总结-------------------------------------------------------------------------------------------26
致谢-------------------------------------------------------------------------------------------27
参考文献-----------------------------------------------------------------------------------28
引言
项目开发背景
在现在化的社会中,我们的生活、学习和工作任何一个方面都离不开“电”这个名词,这足以见得电在当今社会对人类生存的重要性。
随着科技的进步,电伴随着人类足迹几乎和踏遍了现代科技的所有领域,成为人们生活密不可分的一部分
随着人类的进步和科学技术的发展,蓄电池的作用已经日益显示出了它的重要性。
例如电动自行车、手机、汽车等等,没有蓄电池这些工具对人类来说将是一无所用。
因此,了解蓄电池电量的变化规律是一项很重要的任务。
了解电量的变化规律就必须得到确切的电压变化规律,但是,单个电池的电压规律容易获得且容易测量,而多个电池的电压测量不仅单调、枯燥,而且浪费了大量的时间和精力。
故设计该软件将大量的测试任务交给系统自主完成,工作人员只需定时的查看一下数据即可。
从而给研究带来了方便。
项目开发目的
建立多路电压采集系统,采用该系统实现多电池电压变化数据的自动采集,从而得到多路电池的电压变化的规律,使电压采集系统化、便捷化、自动化。
系统开发所需要的技术准备
在系统开发之前我们需要硬件和软件方面的支持。
硬件方面就在于电路的连接,系统需要老师提供的25路电压采集电路板(硬件资料请见附录2)和232-485转换模块,从而实现电压信号的采集和传输。
软件则需要了解Modbus协议的具体知识和VisualBasic6.0、Microsoftaccess2003数据库知识,进而实现软件和硬件的结合,以完成整个系统的设计。
第一章应用系统开发工具
第一节VisualBasic简介及实现原理
VisualBasic(简称VB)是美国微软公司(Microsoft)于1990年推出的一套完整的Windows系统软件开发工具,可用于开发Windows环境下的各类应用程序,是一种可视化、面向对象、用事件驱动方式的结构化高级程序设计语言和工具,是目前使用最广泛的面向过程编程语言之一。
至今已经升级到了6.0版。
VB的重要特点之一是可视性。
系统引进了窗体和控件的机制,用于设计应用程序界面。
用户通过在屏幕上生成窗体,在窗体中绘制所需要的控件和按钮,设计菜单和对话框,VB会自动生成相应的代码。
VB的另一重要特点是事件驱动。
当窗体或控件上发生一个事件时,VB立即把控制权交给程序员。
程序员不必担心如何判断事件是否已发生,只需要编写一段代码告诉计算机在事件发生以后应该做什么工作就可以了。
这样,设计一个Windows应用程序简化为用鼠标在屏幕上点击、拖拽并添加少量的代码就可以完成了,大大降低了对程序设计的要求,提高了应用程序的开发效率。
利用VB的可视性特点,可方便的设计了程序的窗体界面,并在各个窗体中的合适位置绘制所需的每种控件。
如要修改窗体或控件的某项属性,只需在相应的窗体或控件的属性窗口修改相应的参数便可达到需要的设计效果。
利用VB的事件驱动性特点,只需在窗体或控件上的代码窗口中添加少量的代码,便可达到告诉当在相应的窗体或控件上发生某一事件时,它们在事件发生后应该做什么工作的目的。
例如几个窗体上的添加、删除、返回按钮的作用,就是通过在各个相应按钮的代码窗口中输入相应的代码,来达到当在几个按钮上出现单击(Click)事件后,相应按钮实现添加、删除、返回的功能的。
第二节VB中的MScomm串口通信控件
VisualBasic6.0中提供了大量的控件供使用者在变成中使用。
其中,MScomm控件就是用来实现串口通信的控件。
下面将对MScomm控件进行简要的介绍。
一.控件的添加
一般的VB软件在没使用过MScomm控件时,左侧的工具栏中没有该控件的图标,我们需要自己添加。
打开vb程序在菜单栏中找到“project”选项,单击后在下拉菜单中找到“部件”,然后选中出现以下对话框:
然后找到电话盒控件(即Microsoftcomm.Control6.0),选中它确定,就在左侧的工具栏中出现了形似电话盒的控件。
单击此控件就可在窗体上添加该控件了。
二.控件的属性
MSComm控件有很多重要的属性,在此我们只介绍在项目中使用到的几个属性:
CommPort置并返回通讯端口号。
Settings字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
程序中使用的串口settings值分别为:
9600,n,8,1
PortOpen置并返回通讯端口的状态。
也可以打开和关闭端口。
Input收缓冲区返回和删除字符。
Output输缓冲区写一个字符串。
Inputmode来设置串口传输的数据类型
1)cominputmodetext0(缺省)通过input属性以文本方式取回数据;
2)cominputmodebinary1通过input属性以二进制方式取回数据。
Commevent属性本程序利用该属性的rthreshold值的变化来驱动事件程序中设置rthreshold值为1,意思为:
只要接收到一个数据就发生oncomm事件。
Inputlen设置并返回input属性从接受缓冲区读取的字符数。
三.控件的通信方式
MSComm控件提供了两种处理通信的方法:
1)事件驱动通信,是一种功能很强的处理串口活动的方法。
在大多数情况下,用户需要获知事件发生的时间,例如,在CD(CarrierDetect)线或RTS(RequestToSend)线上有字符到达或发生了改变等。
在这种情况下,使用MSComm控件的OnComm事件捕获和处理这些通信事件。
OnComm也可以捕获和处理通信中的错误。
要获取所有事件和通信错误的完整清单,请参阅CommEvent属性。
2)用户也可以在每个重要的程序功能之后检查CommEvent属性的值来检测事件和通信错误。
这对小的自含程序可能比较常用。
例如,如果编写一个简单的电话拨号程序,那么在接收了每个字符后都产生一个事件并没有意义,因为你只打算从调制解调器中接收OK响应信息。
使用的每个MSComm控件都与一个串口对应。
如果在应用程序中需要访问多个串口,必须使用多个MSComm控件。
可以在Windows控制面板中修改串口地址的中断地址。
第三节vb中的数据访问对象(DAO)
Jet数据库引擎
引擎(engine)能够决定程序管理和数据操作的程序或程序段。
数据库引擎就是操作数据库的一段程序或程序段。
MicrosoftJet数据库引擎和数据访问对象DAO(dataaccessobject)可以创建功能强大的客户/服务器应用程序。
Data控件几乎不需要任何代码,仅通过属性的设置就可以具有访问数据库的能力。
而利用代码增强Data控件的功能,则体现了DAO的部分功能。
实际上,Data控件是在高层次上执行DAO,作为一个高层对象,它封装了操纵Jet所需的编程任务。
一.什么是DAO?
DAO是数据访问对象(DataAccessObjects)的简称,它包含了很多对象和集合,通过Jet引擎来连接MicrosoftAccess数据库和其他数据库。
DAO模型为进行数据库编程提供了需要的属性和方法。
利用DAO可以完成对数据库的创建,如创
建表、字段和索引,完成对记录的定位和查询以及对数据库的修改和删除等。
二.DAO的优缺点
优点:
1)数据访问对象完全在代码中运行,使程序员可以摆脱Data控件的限制,使用代码操纵Jet引擎访问数据库数据,能够开发出更强大更高效的数据库应用程序。
2)使用数据访问对象开发应用程序,使数据访问更有效,同时对数据的控制更灵活更全面,给程序员提供了广阔的发挥空间。
缺点:
数据访问对象的复杂性,使其使用起来更为复杂和抽象,不如使用Data控件简单和直观,可以说,使用DAO需要使用者具备更多的数据库操作知识。
三.使用时得注意事项
1)在使用DAO之前,必须确保已经引用DAO对象。
如果没有引用,采用以下操作引用DAO库:
单击“工程”菜单的“引用”选项,出现引用对话框,选中其中的“MicrosoftDAO3.5ObjectLibrary”项,单击“确定”按钮。
2)DAO也只能访问早期版本的Access数据库,所以应用时要转换。
第四节VB中的MSCHART控件
MSChart控件的功能是以图形方式显示数据的图表。
这会使枯燥的数据变得更加生动直观,增加了程序的实用价值。
MSChart控件支持一下特性:
1、真三维表示;
2、支持所有主要的图表类型;
3、数据网络成员支持随机数据,数据数组。
第二章VB与数据库的应用
从20世纪50年代中期开始,计算机的应用由科学研究部门扩展到企业、行政部门,数据处理迅速上升为计算机应用的主要方面。
在计算机的三大应用中(科学计算、数据处理及过程控制),数据处理所占比重约为70%左右。
在60年代末,数据库技术就是作为数据处理中的一门技术发展起来的。
第一节数据库基础
一.VB数据库编程中的术语
1)数据库引擎
数据库引擎存在于程序和物理数据库文件之间,将数据访问对象上的操作转换为对数据库文件自身的物理操作,来处理所有与各种数据库接口的机制。
这使用户与正在访问的特定数据库无关,不管这个数据库是本地的VB数据库,还是所支持的其他任何数据库格式,所使用的数据访问对象和编程技术都是相同的。
Jet数据库引擎被包含在一组动态链接库(DLL)文件中,运行时,这些文件被链结到VB程序。
它把应用程序的请求翻译成对.mdb文件或其他数据仓库的物理操作。
它真正读取、写入和修改数据库,并处理所有内部事务,如索引、锁定、安全性和引用完整性。
它还包含一个查询处理器,接收并执行结构化查询语言(SQL)查询,来实现所需要的数据库操作。
另外还包含一个结果处理器,用来管理查询所返回的结果。
2)数据表(Table)
数据表是一组相关的数据按行列来排列,可以把它想象成行列整齐的表格。
每一行称作一条记录(Record),每一列称作一个字段(Field)。
3)记录(Record)
在表中,每一行就是一条记录,它唯一描述了一个有意义的事物。
一般来说,数据库表的记录创建时任意两行都不能相同。
4)字段(Field)
在表中每一列就是一个字段,它的每一个元素描述了该元素所在行(记录)的某一个方面的性质。
表是有其包含的各种字段定义的,每个字段描述了它所含有的数据。
创建一个数据库时,为每个字段分配一个数据类型、最大长度和其他属性。
字段可包含各种字符、数字甚至图形、声音、动画等多媒体信息。
5)索引(Index)
为了加快访问数据库的速度并提高访问效率,特别赋予数据表中的某一个字段的性质,使得数据表中的记录按照该字段的某种方式排序(升序或降序)。
6)键(Key)
键就是表中的字段(或多个字段),它(们)为快速检索而被索引。
键可以是唯一的,也可以是非唯一的,取决于它(们)是否允许重复。
唯一键可以指定为主键,用来唯一标识表的每行。
7)关系(Relation)
数据库可以由多个表组成,表与表之间可以用不同的方式相互关联。
二.VB数据库的组成
VB数据库的组成有三部分:
用户界面、数据库引擎、数据库。
其中数据库引擎存在于用户界面和数据库之间,起中介作用,用户通过它与所要访问的特定数据库联系。
1.用户界面
用户界面是进行人机交互的界面,用于显示数据并允许用户查看或更新数据。
驱动用户界面的是VB编写的应用程序代码,这些代码包括用来请求数据库服务的数据访问对象和方法,如添加、删除记录和执行查询等。
由应用程序代码所发出的服务请求是向数据库引擎提出的,而不是直接对物理数据库文件进行操作。
对物理数据库的直接操作由数据库引擎发出,并向应用程序返回所需要的结果。
2.数据库引擎
Jet数据库引擎包含在一组动态连接库(DLL)中。
运行时动态连接库文件被连接到VB程序,他把应用程序的请求翻译成对.mdb文件或其他数据库的物理操作。
Jet数据库引擎被包含在一组动态链接库(DLL)文件中,运行时,这些文件被链结到VB程序。
它把应用程序的请求翻译成对.mdb文件或其他数据仓库的物理操作。
它真正读取、写入和修改数据库,并处理所有内部事务,如索引、锁定、安全性和引用完整性。
它还包含一个查询处理器,接收并执行结构化查询语言(SQL)查询,来实现所需要的数据库操作。
另外还包含一个结果处理器,用来管理查询所返回的结果。
3.数据库
对于本地的VB或MicrosoftAccess数据库来说,就是.mdb文件,对于其他的数据库,则可能包含其他扩展名的文件,例如:
在SQLSERVER7.0中包含称为*.mdf和*.ldf的数据库。
第二节关系型数据库标准语言SQL
一.SQL语言功能
1)数据定义(DDL):
定义、删除、修改关系模式(基本表);定义、删除视图(View);定义、删除索引(Index)
2)数据操纵(DML):
数据查询;数据增、删改;
3)数据控制(DCL):
用户访问权限的授予、收回;
⏹数据查询的功能可以理解为使用“动词SELECT”对数据记录或记录集进行查询;
⏹ 数据定义的功能可以理解为使用“动词”对数据库、基本表、视图和索引进行定义;
⏹ 数据操纵的功能可以理解为使用“动词”对数据记录或记录集进行插入、删除和修改操作;
⏹数据控制的功能可以理解为使用“动词”对用户或组进行授予和收回特定权限的控制操作;特定权限包括所有上述功能。
二.Select查询
数据查询是数据库应用的核心功能,是数据库的核心操作。
SQL语言提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。
数据查询是对己建立的表中的数据进行检索的操作,SELECT语句不会更改数据库的中的数据。
使用SELECT-SQL命令可以选择查询表中的任意列,它至少包括两个句子。
本项目中使用的语句如下:
select我的数据库.*from我的数据库orderby我的数据库.日期
命令的意义为:
选取所有”我的数据库"内的记录及字段,并以"日期"先后,由早到晚作排序。
我的数据库.*表示所有表中的字段
三.数据库的建立
使用MicrosoftAccess2003创建数据库
Access是一个数据库管理系统,它之所以被集成到Office中而不是VisualStudio中,是因为它与其它数据库管理系统(如)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。
注意:
在离开Access之前还有一个问题必须解决,就是Access2000与VB6.0的兼容问题,用Access2003建的数据库不能直接被VB6.0访问,必须经过转化才行。
第三节DAO中常用对象的方法和属性
一.WorkSpace(工作区)对象
Workspace对象定义了使用何种方式连接数据库。
在DAO中,可以使用MicrosoftJet引擎或ODBCDirect中的任何一种,视数据源而定,而连接方式的实现,则可以通过Workspace对象来定义。
Workspace对象还提供了事务处理,为保证数据库的完整性提供了支持。
WorkSpace(工作区)对象的方法:
Opendatabase方法该方法用于在工作区中打开数据库。
*语法表示为
setdatabase=workspace.Opendatabase(dbname,options,readonly,connect)
*参数说明
a)Database参数可选,为工作区的数据库对象变量;
b)Dbname参数,用于指定要打开的数据库文件名或数据库路径名称;
c)Options:
参数可选,该参数对于MicrosoftJet工作区,当其值为True时,以独占的方式打开数据库;其值为False(默认)时,以共享方式打开数据库;
d)readonly参数,用于设置是否以只读的方式打开数据库,当设置为True时,以只读方式打开,否则相反,默认为False。
e)Connect参数,用于指定打开数据库的不同连接信息,包括口令等,该参数分为两个部分,数据库类型与其它选项,选项间可以使用分号连接。
二.DataBase对象
即数据库对象,是用来管理一个打开的数据库连接的对象,大多数数据访问都是通过该对象进行的,是对数据库实施操作时首先要使用的对象。
DataBase对象的方法
OpenRecordset方法该方法用于创建新的记录集对象。
*语法表示setrecordset=db.Openrecordset(source,type,options,lockedits)
*参数说明
a)source参数用于指定记录的来源,它的来源可以是表名字,查询名字或SQL语句返回的记录。
对于MicrosoftJet数据库,数据来源只能是数据库表。
b)Type可选参数,用于指定记录集的类型。
通常该参数可取为:
dbopentabledbopendynasetdbopensnapshot
c)Options可选参数,指定记录集的特性。
d)Lockedits可选参数用于指定记录集是否被锁定。
三.RecordSet对象
当数据库和表建立后,就可以对表中的记录进行增加、删除、修改、查询和定位等操作,在DAO中,这些操作都是通过记录集来实现的,操作记录集主要是通过对记录集对象RecordSet的应用来实现的。
RecordSet对象是一批记录的集合,由一系列的记录和字段组成。
RecordSet对象的常用方法有:
AddNew、Delete、Edit、Update等等。
1、AddNew方法用于向数据表中增加记录;
2、Delete方法用于从记录集中删除记录;
3、Edit方法用于修改记录集的当前记录;
4、Update方法用来把添加的新纪录或把当前记录的修改结果保存到数据表中,该方法只能在Edit方法或AddNew方法执行之后才能执行。
第三章Modbus协议
ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。
其系统结构既包括硬件、亦包括软件。
它可应用于各种数据采集和过程监控。
下表1是ModBus的功能码定义。
ModBus功能码
01READCOILSTATUS
02READINPUTSTATUS
03READHOLDINGREGISTER
04READINPUTREGISTER
05WRITESINGLECOIL
06WRITESINGLEREGISTER
15WRITEMULTIPLECOIL
16WRITEMULTIPLEREGISTER
ModBus网络只是一个主机,所有通信都由他发出。
网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。
采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。
表2是ModBus各功能码对应的数据类型。
表2Modbus功能与数据类型对应表
Modbus协议有两种传输方式分别为:
ASCII输和RTU传输。
本项目使用的是RTU传输。
下面介绍一下该传输模式的特性:
RTU传输模式采用二进制编码方式,其中开始位1位、数据位8位、奇偶校验位1位、停止位1位或二位。
错误校验位CRC(即循环冗余校验)。
在本试验中所需要得校验码,是通过RTU校验码生成软件计算所得的,因此在此不对CRC校验做过多的说明.
第四章系统分析
第一节系统功能简介
本系统主要实现以下的功能:
电压数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 电压 采集 系统 设计 论文