用VB制作一个简单的压力值采集显示的上位机制作总结.docx

上传人:scccc 文档编号:14515275 上传时间:2022-02-08 格式:DOCX 页数:16 大小:29.48KB
返回 下载 相关 举报
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第1页
第1页 / 共16页
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第2页
第2页 / 共16页
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第3页
第3页 / 共16页
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第4页
第4页 / 共16页
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《用VB制作一个简单的压力值采集显示的上位机制作总结.docx》由会员分享,可在线阅读,更多相关《用VB制作一个简单的压力值采集显示的上位机制作总结.docx(16页珍藏版)》请在三一文库上搜索。

1、GCCXt位机制作总结本系统的上位机制作主要采用Microsoft Word Visual Basic 6.0编写。主要实现将采集和传输的数据进行接收、处理和储存的功能。一、基本思路如下所示:开始”数据实时显示将数据存储到数据由上图可以知道,库中,并实现查询丿本程序的三个要点分别是:1、数据的接收部分,主要指将传到串口的数据进行接收,这是后面步骤的前提与基础。2、数据的处理部分,将接收到的数据进行实时处理与绘制曲线图,并对超过警戒值的数据给予提示。3、数据的储存部分,指对接收处理过的数 据按照一定的格式存储到 access2007数据库中,以便以后查询,也为 分析列车运行规律以及螺丝生产厂家提

2、供真实可贵的资料。总体思路是 先分别实现三个部分对应的功能,再将三个部分有机联合起来形成功能完善的上位机系统。二、分别实现三个部分的制作过程及成果第一部分,从串口接收数据。主要用到的是MSCom控件(实现串口通信。其测试设计界面如下图所示: 其中MSCom控件的属性设置为:程序如下:测试便可实时显示串口传输的数据。即实现了从串口接收数据。第二部分,数据的实时显示部分。这个部分的测试与制作的思路 是采用随机函数产生数据并与时间控件( 亘)配合来模拟所收集的数 据,对其进行实时绘图。测试设计界面:程序如下:Optio n ExplicitDim DataFromComy As Integer 从串

3、口读过来的实时值 y坐标Dim DataFromComLasty As Integer 上次的串口值 y 坐标Dim TimeCo unt As In tegerDim i As In tegerPrivate Sub Comma nd1_Click()返回按钮Un load MeEnd SubPrivate Sub Form_Load()PicScale Pic 调整图像框的坐标系zuobiaoxi Pic 画出坐标系PicMidleLi ne Pic 在图像框中画一条中线End Sub调整图像框的坐标系Private Sub PicScale(picX As PictureBox) pic

4、X.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, 0)End SubPrivate Sub PicMidleLine(picX As PictureBox) 在图像框中画一条中线picX.Line (0, 1000)-(picX.ScaleWidth, 1000), vbGreen 画出中线End SubPrivate Sub zuobiaoxi(picX As PictureBox) 表示坐标系Dim i%picX.Line (0, 0)-(picX.ScaleWidth, 0), vbWhite x 坐标轴表示picX.Line (0, 0)-

5、(0, -picX.ScaleHeight), vbWhitey 坐标轴表示For i = 0 To picX.ScaleWidth Step 1000X,y 轴坐标坐标刻度显示picX.Line (0, i)-(100, i)picX.Line (i, 0)-(i, 100)Next iEnd SubPrivate Sub DrawRealLine(picX As PictureBox, DataFromComy As Integer, DataFromComLasty As Integer, TimeCount As Integer)If TimeCount - 1 0 ThenpicX.

6、Line (TimeCount - 100, DataFromComLasty)-(TimeCount, DataFromComy), vbWhiteEnd IfEnd SubPrivate Sub Timer1_Timer()DataFromComLasty = DataFromComyRan domizeDataFromComy = In t(2000 - 0 + 1) * Rnd + 0)随机数的产生TimeCou nt = TimeCou nt + 100If TimeCou nt - 100 = Pic.Width The nTimeCo unt = 0Pic.ClsPicMidle

7、Li ne Piczuobiaoxi PicEnd IfDrawRealL ine Pic, DataFromComy, DataFromComLasty, TimeCo unt 画出实时的曲线End Sub测试结果如下:至此,由数据的实时绘图部分的测试完成。第三部分,数据库的操作,数据库采用access2007数据库。并采用Visual Basic 的ADO Data控件(1)进行连接和 SQL语言实现数据库的添加,删除和查阅等基本功能。(本实验以姓名、性别、年龄的操作为例)测试设计界面:创建数据库mydb如下:首先是数据库的连接:利用ADO空件生成字符串连接数据库的步骤为:1) 右击dat

8、a控件,选择 ADOD属性2) 点击生成,选择数据库类型3) 填写数据源4) 测试连接其次是数据库操作:1) 添加:Dim rs As New ADODB. RecordsetDim cn As New ADODB.Co nn ecti onPrivate Sub Ope nConn()Set cn = New ADODB.Co nn ectionSet rs = New ADODB.Recordsetcn .CursorLocati on = adUseClie ntcn. Ope n数据库mydb.accdb;Persist Security In fo=FalseEnd SubPriva

9、te Sub CloseCo nn()If rs.State sckclosed Then rs.CloseSet rs = Noth ingIf cn. State sckclosed Then cn .CloseSet cn = Noth ingEnd SubPrivate Sub Comma nd1_Click()Call Ope nConnrs.Open select 姓名,性别,年龄 from 表 1, cn,adOpenStatic,adLockPessimisticrs.AddNewrs.Fields(姓名)=Text1.Textrs.Fields(性别)=Text2.Textr

10、s.Fields(年龄)=Text3.Textrs.UpdateCall CloseC onnMsgBox 添加成功!,温馨提示Text1.Text =Text2.Text =Text3.Text =End SubPrivate Sub Comma nd2_Click()Un load MeEnd SubPrivate Sub Comma nd3_Click()Un load MeForm3.ShowEnd SubPrivate Sub Comma nd4_Click()Form5.ShowUn load MeEnd Sub结果:2) 删除:Private cn As New ADODB.Co

11、 nn ectionDim rs As New ADODB. RecordsetPrivate Sub Ope nConn()Set cn = New ADODB.Co nn ecti onSet rs = New ADODB.Recordsetcn. CursorLocati on = adUseClie ntcn. Ope nmydb.accdb;Persist Security In fo=FalseEnd SubPrivate Sub CloseCo nn()If rs.State sckclosed The n rs.CloseSet rs = Noth ingIf cn.State

12、 sckclosed Then cn.CloseSet cn = NothingEnd SubPrivate Sub Command1_Click()Call OpenConnrs.Open select ID from 表 1 Where ID= & Text1.Text, cn, 3, 3rs.Deleters.Updaters.CloseSet rs = NothingMsgBox 删除成功 , , Successful!cn.CloseEnd SubPrivate Sub Command2_Click()Form3.ShowUnload MeEnd Sub结果:3) 查看:Privat

13、e cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetPrivate Sub OpenConn()Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordset cn.CursorLocation = adUseClient cn.OpenProvideSource=C:UsersAdministratorDesktopGCC数据库 mydb.accdb;Persist Security Info=FalseEnd SubPrivate Sub CloseConn()If rs.St

14、ate sckclosed Then rs.CloseSet rs = NothingIf cn.State sckclosed Then cn.CloseSet cn = NothingEnd SubPrivate Sub Command1_Click()Call OpenConnrs.Open select ID, 姓名,性别,年龄 from 表 1 Where ID= & Text1.Text, cn, adOpenStatic, adLockPessimisticText2.Text =rs.Fields(姓名)Text3.Text =rs.Fields(性别)Text4.Text =

15、rs.Fields(年龄)rs.UpdateCall CloseConnEnd SubPrivate Sub Command2_Click()Form1.ShowUnload MeEnd Sub结果: 至此,上位机的三个部分的关键问题已经解决。 三、上位机各部分的有机连接为了实现上位机接收、 处理、储存数据的功能, 需要将上述三个部 分结合为一个整体, 但由于数据采集和无线传输部分还未完全贯通, 第 一部分的串口通信无法进行测试。 于是仅实现了数据库操作与实时绘图 的结合。其包括:随机函数产生数据并与时间控件结合代替串口通信 部分。 数据实时绘图和过低值警报。 数据实时存储。 原始记录查 询。

16、实验设计界面:程序设计:Option ExplicitDim k As IntegerDim DataFromComy As Integer 从串口读过来的实时值 y 坐标Dim DataFromComLasty As Integer 上次的串口值 y 坐标Dim TimeCount As IntegerDim i As IntegerDim rs As New ADODB.RecordsetDim cn As New ADODB.Connection Private Sub OpenConn()Set cn = New ADODB.ConnectionSecuritySet rs = New

17、 ADODB.Recordset cn.CursorLocation = adUseClient cn.OpenProvidermydbnew.accdb;Persist Info=FalseEnd SubPrivate Sub CloseConn()rs.Closecn.CloseSet rs = NothingSet cn = NothingEnd SubPrivate Sub Form_Load()PicScale Pic 调整图像框的坐标系PicMidleLine Pic zuobiaoxi PicEnd SubPrivate Sub PicScale(picX As PictureB

18、ox) 调整图像框的坐标系picX.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, 0)End SubPrivate Sub PicMidleLine(picX As PictureBox) 在图像框中画一条中线picX.Line (0, 1500)-(picX.ScaleWidth, 1500), vbRed 画出中线End SubPrivate Sub zuobiaoxi(picX As PictureBox) 表示坐标系Dim i%picX.Line (0, 0)-(picX.ScaleWidth, 0) x坐标轴表示picX.Line (0,

19、 0)-(0, -picX.ScaleHeight) y 坐标轴表示For i = 0 To picX.ScaleWidth Step 1000X,y 轴坐标坐标刻度显示picX.Line (0, i)-(100, i)picX.Line (i, 0)-(i, 100)Next iEnd SubPrivate Sub DrawRealLine(picX As PictureBox, DataFromComyAs Integer, DataFromComLasty As Integer, TimeCount As Integer)If TimeCount - 1 0 ThenpicX.Line(

20、TimeCount-100,DataFromComLasty)-(TimeCount,DataFromComy), vbGreenEnd IfEnd SubPrivate Sub Timer1_Timer()If k = 1 ThenDataFromComLasty = DataFromComyRandomizeDataFromComy = Int(3000 - 0 + 1) * Rnd + 0) 随机数的产生If DataFromComy = Pic.Width ThenTimeCount = 0Pic.ClsPicMidleLine Pic zuobiaoxi Pic End IfData

21、FromComLasty,DrawRealLine Pic, DataFromComy,TimeCount 画出实时的曲线End IfEnd SubPrivate Sub Command1_Click()Command3.Enabled = Falsek = 1End SubPrivate Sub Command2_Click()Command3.Enabled = Truek = 0End SubPrivate Sub Command3_Click()Form2.ShowUnload MeEnd SubPrivate Sub Command4_Click()Unload MeEnd Sub

22、实验结果: 查询功能:Dim rs As New ADODB.RecordsetDim cn As New ADODB.ConnectionPrivate Sub OpenConn()Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordset cn.CursorLocation = adUseClient数 据库 mydbnew.accdb;Persist Security Info=FalseEnd SubPrivate Sub CloseConn() rs.Close cn.CloseSet rs = NothingSet cn =

23、NothingEnd SubPrivate Sub Command1_Click()Call OpenConnrs.Open select时间 , 力 from 表 1 Where 时间 = & Text1.Text,cn, adOpenStatic, adLockPessimisticIf rs.EOF And rs.BOF ThenMsgBox 您所查询的时间没有记录 , , 温馨提示 Text1.Text = Text1.SetFocusElseText2.Text = rs.Fields(力 )rs.UpdateEnd IfCall CloseConnEnd SubPrivate Sub Command2_Click()Text1.Text = Text2.Text = Text1.SetFocusEnd SubPrivate Sub Command3_Click()Form1.ShowUnload MeEnd Sub结果:

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1