用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第1页
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第2页
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第3页
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第4页
用VB制作一个简单的压力值采集显示的上位机制作总结.docx_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GCCX上位机制作总结本系统的上位机制作主要采用Microsoft Word Visual Basic 6.0编写。主要实现将采集和传输的数据进行接收、处理和储存的功能。一、基本思路如下所示: 开始 从串口接收数据 数据实时显示 将数据存储到数据库中,并实现查询结束由上图可以知道,本程序的三个要点分别是:1、数据的接收部分,主要指将传到串口的数据进行接收,这是后面步骤的前提与基础。2、数据的处理部分,将接收到的数据进行实时处理与绘制曲线图,并对超过警戒值的数据给予提示。3、数据的储存部分,指对接收处理过的数据按照一定的格式存储到access2007数据库中,以便以后查询,也为分析列车运行规律以及螺丝生产厂家提供真实可贵的资料。总体思路是先分别实现三个部分对应的功能,再将三个部分有机联合起来形成功能完善的上位机系统。二、分别实现三个部分的制作过程及成果第一部分,从串口接收数据。主要用到的是MSComn控件()实现串口通信。其测试设计界面如下图所示:其中MSComn控件的属性设置为:程序如下:测试便可实时显示串口传输的数据。即实现了从串口接收数据。第二部分,数据的实时显示部分。这个部分的测试与制作的思路是采用随机函数产生数据并与时间控件()配合来模拟所收集的数据,对其进行实时绘图。测试设计界面:程序如下:Option ExplicitDim DataFromComy As Integer 从串口读过来的实时值y坐标Dim DataFromComLasty As Integer 上次的串口值y坐标Dim TimeCount As IntegerDim i As IntegerPrivate Sub Command1_Click()返回按钮Unload MeEnd SubPrivate Sub Form_Load()PicScale Pic 调整图像框的坐标系zuobiaoxi Pic 画出坐标系PicMidleLine Pic 在图像框中画一条中线End SubPrivate Sub PicScale(picX As PictureBox) 调整图像框的坐标系picX.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)-(0, -picX.ScaleHeight), vbWhite y坐标轴表示For i = 0 To picX.ScaleWidth Step 1000 X,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.Line (TimeCount - 100, DataFromComLasty)-(TimeCount, DataFromComy), vbWhiteEnd IfEnd SubPrivate Sub Timer1_Timer()DataFromComLasty = DataFromComyRandomizeDataFromComy = Int(2000 - 0 + 1) * Rnd + 0) 随机数的产生TimeCount = TimeCount + 100If TimeCount - 100 = Pic.Width ThenTimeCount = 0Pic.ClsPicMidleLine Piczuobiaoxi PicEnd IfDrawRealLine Pic, DataFromComy, DataFromComLasty, TimeCount 画出实时的曲线End Sub测试结果如下:至此,由数据的实时绘图部分的测试完成。第三部分,数据库的操作,数据库采用access2007数据库。并采用Visual Basic 的ADO Data 控件()进行连接和SQL语言实现数据库的添加,删除和查阅等基本功能。(本实验以姓名、性别、年龄的操作为例)测试设计界面:创建数据库mydb如下:首先是数据库的连接:利用ADO控件生成字符串连接数据库的步骤为:1)右击data控件,选择ADODC属性2)点击生成,选择数据库类型 3)填写数据源4)测试连接其次是数据库操作:1) 添加:Dim rs As New ADODB.RecordsetDim cn As New ADODB.ConnectionPrivate Sub OpenConn()Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordsetcn.CursorLocation = adUseClientcn.Open Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:UsersAdministratorDesktopGCCX数据库mydb.accdb;Persist Security Info=FalseEnd SubPrivate Sub CloseConn()If rs.State sckclosed Then rs.CloseSet rs = NothingIf cn.State sckclosed Then cn.CloseSet cn = NothingEnd SubPrivate Sub Command1_Click()Call OpenConnrs.Open select 姓名,性别,年龄 from 表1, cn,adOpenStatic, adLockPessimisticrs.AddNewrs.Fields(姓名) = Text1.Textrs.Fields(性别) = Text2.Textrs.Fields(年龄) = Text3.Textrs.UpdateCall CloseConnMsgBox 添加成功!, , 温馨提示 Text1.Text = Text2.Text = Text3.Text = End SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click()Unload MeForm3.ShowEnd SubPrivate Sub Command4_Click()Form5.ShowUnload MeEnd Sub 结果: 2) 删除:Private cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetPrivate Sub OpenConn()Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordset cn.CursorLocation = adUseClientcn.Open Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersAdministratorDesktopGCCX数据库mydb.accdb;Persist Security Info=FalseEnd SubPrivate Sub CloseConn()If rs.State 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, 3, 3rs.Deleters.Updaters.CloseSet rs = NothingMsgBox 删除成功, , Successful!cn.CloseEnd SubPrivate Sub Command2_Click()Form3.ShowUnload MeEnd Sub结果:3) 查看:Private cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetPrivate Sub OpenConn()Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordsetcn.CursorLocation = adUseClientcn.OpenProvider=Microsoft.ACE.OLEDB.12.0;DataSource=C:UsersAdministratorDesktopGCCX数据库mydb.accdb;Persist Security Info=FalseEnd SubPrivate Sub CloseConn()If rs.State 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 = rs.Fields(年龄)rs.UpdateCall CloseConnEnd SubPrivate Sub Command2_Click()Form1.ShowUnload MeEnd Sub结果:至此,上位机的三个部分的关键问题已经解决。三、上位机各部分的有机连接为了实现上位机接收、处理、储存数据的功能,需要将上述三个部分结合为一个整体,但由于数据采集和无线传输部分还未完全贯通,第一部分的串口通信无法进行测试。于是仅实现了数据库操作与实时绘图的结合。其包括:随机函数产生数据并与时间控件结合代替串口通信部分。数据实时绘图和过低值警报。数据实时存储。原始记录查询。实验设计界面:程序设计: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.ConnectionPrivate Sub OpenConn()Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordset cn.CursorLocation = adUseClientcn.OpenProvider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersAdministratorDesktopGCCX数据库mydbnew.accdb;Persist Security Info=FalseEnd SubPrivate Sub CloseConn() rs.Close cn.Close Set rs = Nothing Set cn = NothingEnd SubPrivate Sub Form_Load()PicScale Pic 调整图像框的坐标系PicMidleLine Piczuobiaoxi PicEnd SubPrivate Sub PicScale(picX As PictureBox) 调整图像框的坐标系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, 0)-(0, -picX.ScaleHeight) y坐标轴表示 For i = 0 To picX.ScaleWidth Step 1000 X,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.Line(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 Piczuobiaoxi PicEnd IfDrawRealLine Pic, DataFromComy, DataFromComLasty, 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实验结果:查询功能:Dim rs As New ADODB.RecordsetDim cn As New ADODB.Connect

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论