VB实验报告.docx

上传人:b****1 文档编号:2592799 上传时间:2023-05-04 格式:DOCX 页数:20 大小:604.74KB
下载 相关 举报
VB实验报告.docx_第1页
第1页 / 共20页
VB实验报告.docx_第2页
第2页 / 共20页
VB实验报告.docx_第3页
第3页 / 共20页
VB实验报告.docx_第4页
第4页 / 共20页
VB实验报告.docx_第5页
第5页 / 共20页
VB实验报告.docx_第6页
第6页 / 共20页
VB实验报告.docx_第7页
第7页 / 共20页
VB实验报告.docx_第8页
第8页 / 共20页
VB实验报告.docx_第9页
第9页 / 共20页
VB实验报告.docx_第10页
第10页 / 共20页
VB实验报告.docx_第11页
第11页 / 共20页
VB实验报告.docx_第12页
第12页 / 共20页
VB实验报告.docx_第13页
第13页 / 共20页
VB实验报告.docx_第14页
第14页 / 共20页
VB实验报告.docx_第15页
第15页 / 共20页
VB实验报告.docx_第16页
第16页 / 共20页
VB实验报告.docx_第17页
第17页 / 共20页
VB实验报告.docx_第18页
第18页 / 共20页
VB实验报告.docx_第19页
第19页 / 共20页
VB实验报告.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VB实验报告.docx

《VB实验报告.docx》由会员分享,可在线阅读,更多相关《VB实验报告.docx(20页珍藏版)》请在冰点文库上搜索。

VB实验报告.docx

VB实验报告

西南石油大学

专业技术实习报告

 

数据采集与接口技术

 

专业年级:

08测控技术与仪器

姓名:

李林

学号:

0807010325

指导老师:

石明江张禾

实习时间:

2011-12-26至2012-01-06

 

基于VB的数据采集程序设计

一、引言

随着Windows98的推出,越来越多的微机用户已习惯于Windows操作系统。

不过Windows应用软件的开发对于一般工程技术领域的技术人员来说并非易事,然而使用微软的VisualBasic6.0(简称VB6)来开发这些方面的Windows应用软件就十分方便,编程工作量相对较小,只需进行主要应用功能的编程和少量界面控制的编程。

VB6提供了许多供用户选择的控件(Customcontrol),这些控件以.OCX为文件后缀名,其中MSCOMM.OCX即是用于串行通信的控件。

如果需要使用该控件,可将该控件添加到工具箱(toolbox)内,这样就可以利用该控件进行串行通信程序的设计。

二、设计内容:

1.设计背景:

VisualBasic(简称VB)是Windows环境下简单、易学、高效的编程语言开发系统,以其所见即所得的可视化界面设计风格和32位面向对象的程序设计等特点,已广泛地应用于各个领域,是很多计算机软件开发人员采用的开发工具。

VB不但提供了良好的界面设计能力,而且在微机串口通信方面也有很强的功能。

实时数据采集系统过去在DOS操作系统下一般是采用汇编语言开发制作。

Windows操作系统的普及应用,尤其是可视化软件开发平台的出现,为软件开发提供了强大的图形界面功能,使得开发出来的应用程序具有良好的人机交互功能。

汇编语言的特点是难调试,而高级语言具有良好的可读性及方便的调试手段。

采用VB开发Winodws下的数据采集和工业控制应用软件十分方便,尤其软件界面设计非常便捷,编程工作量较小,开发周期短,特别适合非计算机专业的工程技术人员掌握和使用。

2.设计项目:

a.(VB编程)WINXP下数字量输出实验(PCI总线)

b.(VB编程)WINXP下程控循环灯实验(PCI总线)

3.设计思想:

在WINDOWS环境下利用VB6.0实现开关量输出实验、程控循环灯试验,并给出程序代码,对其稍加改动便可以改变循环的快慢和背景色以及其它视图效果。

下面通过图文的形式给予说明

a.(VB编程)WINXP下数字量输出实验(PCI总线)

首先,将PCI-7483数据采集卡插入至PC总线工控机内一个空PCI插槽中,再把10芯连接电缆的DB37头插入PCI7438数据采集卡侧的插座上,把另一头插入BH5105-PCI7483实验板的SX1中;最后把20芯连接线的DB37头插入PCI7483数据采集卡的另一插座上,将另一头插入自制的BH5105-PCI7483实验板上的XS2中,此时XS3不能插入连接电缆。

最后,开机进入WINXP状态,再进入VB,运行实验程序将看到实验程序的主界面窗口,用鼠标点击“数字量输出”按钮,将看到数字量输出实验界面窗口。

在此窗口的两个数据输入框中输入数字量,再点击“确定”按钮,观察自制的BH5105-PCI7483实验板上16个LED发光二极管(D1-D16)DE亮/灭状态是否与预期相同(“1”亮,“0”灭)。

以下为数字量输出实验的主程序:

'do_data

(2)为DO输出数据

Dimdo_data

(2)AsByte

'改变DO量显示区函数

PrivateSubdiodata_Click(IndexAsInteger)

'改变开关量显示区

Ifdiodata(Index).Caption="关"Then

diodata(Index).ForeColor=RGB(255,0,0)

diodata(Index).Caption="开"

Else

diodata(Index).ForeColor=RGB(0,0,255)

diodata(Index).Caption="关"

DimX(16)AsInteger

Fori=0To15

Ifdiodata(i).Caption="开"Then

X(i)=1

Else

X(i)=0

EndIf

Nexti

do_data(0)=0

do_data

(1)=0

Fori=0To7

do_data(0)=X(i)*2^i+do_data(0)

Nexti

Fori=8To15

do_data

(1)=X(i)*2^(i-8)+do_data

(1)

Nexti

doedit(0)=Hex(do_data(0))

doedit

(1)=Hex(do_data

(1))

EndIf

EndSub

PrivateSubDoCom_Click()

'根据开关量显示区确定DO转换数据

Fori=0To1

X=0

Forj=0To7

Ifdiodata(i*8+j).Caption="开"Then

X=X+2^j

EndIf

Nextj

do_data(i)=X

Nexti

X1=do_data(0)

X2=do_data

(1)

Callpci7483do(hplx,False,0,X1)

Callpci7483do(hplx,False,1,X2)

EndSub

'DO数据编辑函数

PrivateSubDoEditCom_Click()

j=1

Fori=0To1

'判断DO输入数据是否为空

Ifdoedit(i)=""Then

k=MsgBox("DO数据为空,请重新输入,范围在(0--FFH)!

",vbQuestion,"DO数据输入")

j=0

i=3

Else

k=Val("&h"&doedit(i))

'判断DO输入数据是否有错

Ifk<0Ork>&HFFThen

k=MsgBox("DO数据输入错误,请重新输入,范围在(0--FFH)!

",vbQuestion,"DO数据输入")

j=0

i=3

EndIf

EndIf

Nexti

'输入DO数据正确

Ifj=1Then

'根据输入DO数据更新开关量显示区

Fori=0To1

X=Val("&h"&doedit(i))

Forj=0To7

If(XMod2^(j+1))=2^jThen

X=X-2^j

diodata(i*8+j).ForeColor=RGB(255,0,0)

diodata(i*8+j).Caption="开"

Else

diodata(i*8+j).ForeColor=RGB(0,0,255)

diodata(i*8+j).Caption="关"

EndIf

Nextj

Nexti

EndIf

EndSub

PrivateSubExit_Click()

Ifhplx<>1Then

hplx=pci7483close(hplx)

EndIf

UnloadDoForm

主界面.Show

EndSub

'开关量输出初始化函数

PrivateSubForm_Load()

'设置为DO方式

doedit(0)=0

doedit

(1)=0

DoCom.Enabled=True

DoInput.Enabled=True

hplx=0

hplx=pci7483check(0,0,False,1)

EndSub

'开关量输出操作帮助函数

PrivateSubHelpCom_Click()

DoHelpForm.Show

EndSub

图片见下

b.(VB编程)WINXP下程控循环灯实验(PCI总线)

首先,将PCI-7483数据采集卡插入至PC总线工控机内一个空PCI插槽中,再把10芯连接电缆的DB37头插入PCI7438数据采集卡侧的插座上,把另一头插入BH5105-PCI7483实验板的SX1中;最后把20芯连接线的DB37头插入PCI7483数据采集卡的另一插座上,将另一头插入自制的BH5105-PCI7483实验板上的XS2中,此时XS3不能插入连接电缆。

最后,开机进入WINXP状态,再进入VB,运行实验程序将看到实验程序的主界面窗口,用鼠标点击“程控循环灯”按钮,将看到程控循环灯实验界面窗口。

再点击“开始”按钮,观察自制的BH5105-PCI7483实验板上16个LED发光二极管(D1-D16)LDE亮/灭状态。

①运行软件启动程序

②双击界面在其中输入下列程序循环灯界面对应的代码:

Dimdt0AsInteger,dt1AsInteger,jAsInteger‘定义变量

PrivateSubCommand1_Click()‘对应于“开始”

Timer1.Enabled=True‘定时器启动

EndSub

PrivateSubCommand2_Click()对应于“停止”

Timer1.Enabled=False

'dt0=&H1

'dt1=&H0

EndSub

PrivateSubCommand3_Click()‘对应于“返回”

Ifhplx<>1Then

hplx=pci7483close(hplx)

EndIf

Timer1.Enabled=False

Unload走马灯

主界面.Show

EndSub

PrivateSubForm_Load()‘在窗口调入时执行

hplx=0

hplx=pci7483check(0,0,False,1)‘选择板卡

dt0=&HFF

dt1=&HFF

Callpci7483do(hplx,False,0,dt0)‘赋值给通道

Callpci7483do(hplx,False,1,dt1)

dt0=&H1‘赋初值

dt1=&H0

EndSub

PrivateSubTimer1_Timer()‘在定时时间到时执行

Fori=1To16

Label(i).BackColor=&HFF00&

Nexti

Callpci7483do(hplx,False,0,dt0)'0组输出dt0

Callpci7483do(hplx,False,1,dt1)'1组输出dt1

Ifdt0<>0Then

SelectCasedt0

Case1

Label

(1).BackColor=&HFF&

Case2

Label

(2).BackColor=&HFF&

Case4

Label(3).BackColor=&HFF&

Case8

Label(4).BackColor=&HFF&

Case16

Label(5).BackColor=&HFF&

Case32

Label(6).BackColor=&HFF&

Case64

Label(7).BackColor=&HFF&

Case128

Label(8).BackColor=&HFF&

EndSelect

EndIf

Ifdt1<>0Then

SelectCasedt1

Case1

Label(9).BackColor=&HFF&

Case2

Label(10).BackColor=&HFF&

Case4

Label(11).BackColor=&HFF&

Case8

Label(12).BackColor=&HFF&

Case16

Label(13).BackColor=&HFF&

Case32

Label(14).BackColor=&HFF&

Case64

Label(15).BackColor=&HFF&

Case128

Label(16).BackColor=&HFF&

EndSelect

EndIf

Ifdt1=0Then

dt0=dt0*2‘右移循环

Else

dt1=dt1*2

EndIf

Ifdt0=256Then‘达到FF清零开始下次循环

dt0=0

dt1=1

EndIf

Ifdt1=256Then

dt0=1

dt1=0

EndIf

EndSub

如图所示:

编辑再运行。

通过此程序可以实现走马灯的效果,还可以通过子界面改变走马灯的循环时间以及灯的背景色。

程序运行效果

③退出程序,改变Timer1_Timer()函数可以来改变循环时间

点击图中时钟符号,再其右侧出现一个任务框在里面改动Interval对应的数字,该数字是毫秒级的如图为500表示从第一个开始循环到第二个需要0.5秒,如果改为2000那循环时间变为2s,

④还可以改变灯的背景色

点击灯在右侧出现选择框,可以随便改变自己喜欢的颜色设置为灯的背景色,还可以改变背景色,字的颜色,按钮的颜色等等。

⑤如要实现一次多盏灯的亮灭,比如三盏灯的循环亮灭,修改后的程序如下:

Ifdt0<>0Then

SelectCasedt0

Case1

Label

(1).BackColor=&HFF&

Case2

Label

(2).BackColor=&HFF&

Label

(1).BackColor=&HFF&

Case4

Label(3).BackColor=&HFF&

Label

(2).BackColor=&HFF&

Label

(1).BackColor=&HFF&

Case8

Label(4).BackColor=&HFF&

Label(3).BackColor=&HFF&

Label

(2).BackColor=&HFF&

Case16

Label(5).BackColor=&HFF&

Label(4).BackColor=&HFF&

Label(3).BackColor=&HFF&

Case32

Label(6).BackColor=&HFF&

Label(5).BackColor=&HFF&

Label(4).BackColor=&HFF&

Case64

Label(7).BackColor=&HFF&

Label(6).BackColor=&HFF&

Label(5).BackColor=&HFF&

Case128

Label(8).BackColor=&HFF&

Label(7).BackColor=&HFF&

Label(6).BackColor=&HFF&

EndSelect

EndIf

Ifdt1<>0Then

SelectCasedt1

Case1

Label(9).BackColor=&HFF&

Label(8).BackColor=&HFF&

Label(7).BackColor=&HFF&

Case2

Label(10).BackColor=&HFF&

Label(9).BackColor=&HFF&

Label(8).BackColor=&HFF&

Case4

Label(11).BackColor=&HFF&

Label(10).BackColor=&HFF&

Label(9).BackColor=&HFF&

Case8

Label(12).BackColor=&HFF&

Label(11).BackColor=&HFF&

Label(10).BackColor=&HFF&

Case16

Label(13).BackColor=&HFF&

Label(12).BackColor=&HFF&

Label(11).BackColor=&HFF&

Case32

Label(14).BackColor=&HFF&

Label(13).BackColor=&HFF&

Label(12).BackColor=&HFF&

Case64

Label(15).BackColor=&HFF&

Label(14).BackColor=&HFF&

Label(13).BackColor=&HFF&

Case128

Label(16).BackColor=&HFF&

Label(15).BackColor=&HFF&

Label(14).BackColor=&HFF&

EndSelect

End

修改前:

Ifdt0<>0Then

SelectCasedt0

Case1

Label

(1).BackColor=&HFF&

Case2

Label

(2).BackColor=&HFF&

Case4

Label(3).BackColor=&HFF&

Case8

Label(4).BackColor=&HFF&

Case16

Label(5).BackColor=&HFF&

Case32

Label(6).BackColor=&HFF&

Case64

Label(7).BackColor=&HFF&

Case128

Label(8).BackColor=&HFF&

EndSelect

EndIf

Ifdt1<>0Then

SelectCasedt1

Case1

Label(9).BackColor=&HFF&

Case2

Label(10).BackColor=&HFF&

Case4

Label(11).BackColor=&HFF&

Case8

Label(12).BackColor=&HFF&

Case16

Label(13).BackColor=&HFF&

Case32

Label(14).BackColor=&HFF&

Case64

Label(15).BackColor=&HFF&

Case128

Label(16).BackColor=&HFF&

EndSelect

EndIf

程序运行截图:

三、实验总结:

通过这几天的专业技术学习,能够掌握VB的一般语法、简单应用、能够编写简单的程序。

通过学些发现VB语言有他的优点也有他的缺点。

优点就是编辑环境简洁、学习起来比较容易,能够即时编译较比c++简单一些。

缺点就是程序较大、运行时需要进行动态链接。

移植性能也没C++好。

但在工业上,VB已成为Windows系统开发的主要语言,VB具有良好的图形用户接口并支持面向对象的程序设计和具有结构化的事件驱动编程模式,使编程效率提高,应用功能增强,采用VB开发工业测控系统的应用软件,只要处理好实时串口通信部分,就能在短时间内开发出交互界面友好的、功能易扩展的、面向对象的工业测控系统。

虽然学习VB语言比较枯燥,但是经过这次学习,也锻炼了我的意志,磨练了我的耐性,更重要的是让我学习到了一种新的编程知识,让我受益匪浅。

附:

参考文献

[1]李罡.VisualBasic5.0编程实例详解.电子工业出版社,1998

[2]王章瑞.数据采集与接口技术实验指导书西南石油大学,2011

 

通过此次的专业技术实习,自己或多或少的了解到了VB语言的知识与其魅力。

尤其是它的控件用起来很方便,功能很强大,队界面开发十分方便强大。

VB学习简单,在电脑上运行速度快,效率高。

VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。

程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

在工业上VB已成为Windows系统开发的主要语言,VB具有良好的图形用户接口并支持面向对象的程序设计和具有结构化的事件驱动编程模式,使编程效率提高,应用功能增强,交互界面友好、功能易扩展。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2