用VB制作一個(gè)簡單的壓力值采集顯示的上位機(jī)制作總結(jié)_第1頁
用VB制作一個(gè)簡單的壓力值采集顯示的上位機(jī)制作總結(jié)_第2頁
用VB制作一個(gè)簡單的壓力值采集顯示的上位機(jī)制作總結(jié)_第3頁
用VB制作一個(gè)簡單的壓力值采集顯示的上位機(jī)制作總結(jié)_第4頁
用VB制作一個(gè)簡單的壓力值采集顯示的上位機(jī)制作總結(jié)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、GCCX上位機(jī)制作總結(jié)本系統(tǒng)的上位機(jī)制作主要采用Microsoft Word Visual Basic 6.0編寫。主要實(shí)現(xiàn)將采集和傳輸?shù)臄?shù)據(jù)進(jìn)行接收、處理和儲(chǔ)存的功能。一、基本思路如下所示: 開始 從串口接收數(shù)據(jù) 數(shù)據(jù)實(shí)時(shí)顯示 將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,并實(shí)現(xiàn)查詢結(jié)束由上圖可以知道,本程序的三個(gè)要點(diǎn)分別是:1、數(shù)據(jù)的接收部分,主要指將傳到串口的數(shù)據(jù)進(jìn)行接收,這是后面步驟的前提與基礎(chǔ)。2、數(shù)據(jù)的處理部分,將接收到的數(shù)據(jù)進(jìn)行實(shí)時(shí)處理與繪制曲線圖,并對超過警戒值的數(shù)據(jù)給予提示。3、數(shù)據(jù)的儲(chǔ)存部分,指對接收處理過的數(shù)據(jù)按照一定的格式存儲(chǔ)到access2007數(shù)據(jù)庫中,以便以后查詢,也為分析列車運(yùn)行規(guī)律以

2、及螺絲生產(chǎn)廠家提供真實(shí)可貴的資料??傮w思路是先分別實(shí)現(xiàn)三個(gè)部分對應(yīng)的功能,再將三個(gè)部分有機(jī)聯(lián)合起來形成功能完善的上位機(jī)系統(tǒng)。二、分別實(shí)現(xiàn)三個(gè)部分的制作過程及成果第一部分,從串口接收數(shù)據(jù)。主要用到的是MSComn控件()實(shí)現(xiàn)串口通信。其測試設(shè)計(jì)界面如下圖所示:其中MSComn控件的屬性設(shè)置為:程序如下:測試便可實(shí)時(shí)顯示串口傳輸?shù)臄?shù)據(jù)。即實(shí)現(xiàn)了從串口接收數(shù)據(jù)。第二部分,數(shù)據(jù)的實(shí)時(shí)顯示部分。這個(gè)部分的測試與制作的思路是采用隨機(jī)函數(shù)產(chǎn)生數(shù)據(jù)并與時(shí)間控件()配合來模擬所收集的數(shù)據(jù),對其進(jìn)行實(shí)時(shí)繪圖。測試設(shè)計(jì)界面:程序如下:Option ExplicitDim DataFromComy As Intege

3、r '從串口讀過來的實(shí)時(shí)值y坐標(biāo)Dim DataFromComLasty As Integer '上次的串口值y坐標(biāo)Dim TimeCount As IntegerDim i As IntegerPrivate Sub Command1_Click()返回按鈕Unload MeEnd SubPrivate Sub Form_Load()PicScale Pic '調(diào)整圖像框的坐標(biāo)系zuobiaoxi Pic '畫出坐標(biāo)系PicMidleLine Pic '在圖像框中畫一條中線End SubPrivate Sub PicScale(picX As Pict

4、ureBox) '調(diào)整圖像框的坐標(biāo)系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) '表示坐標(biāo)系Dim i%picX.Line (0, 0)-(picX.ScaleWid

5、th, 0), vbWhite 'x坐標(biāo)軸表示picX.Line (0, 0)-(0, -picX.ScaleHeight), vbWhite 'y坐標(biāo)軸表示For i = 0 To picX.ScaleWidth Step 1000 'X,y軸坐標(biāo)坐標(biāo)刻度顯示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 Inte

6、ger, 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) '隨機(jī)數(shù)的產(chǎn)生TimeCount = TimeCount + 100If Ti

7、meCount - 100 >= Pic.Width ThenTimeCount = 0Pic.ClsPicMidleLine Piczuobiaoxi PicEnd IfDrawRealLine Pic, DataFromComy, DataFromComLasty, TimeCount '畫出實(shí)時(shí)的曲線End Sub測試結(jié)果如下:至此,由數(shù)據(jù)的實(shí)時(shí)繪圖部分的測試完成。第三部分,數(shù)據(jù)庫的操作,數(shù)據(jù)庫采用access2007數(shù)據(jù)庫。并采用Visual Basic 的ADO Data 控件()進(jìn)行連接和SQL語言實(shí)現(xiàn)數(shù)據(jù)庫的添加,刪除和查閱等基本功能。(本實(shí)驗(yàn)以姓名、性別、年齡的操

8、作為例)測試設(shè)計(jì)界面:創(chuàng)建數(shù)據(jù)庫mydb如下:首先是數(shù)據(jù)庫的連接:利用ADO控件生成字符串連接數(shù)據(jù)庫的步驟為:1)右擊data控件,選擇ADODC屬性 2)點(diǎn)擊生成,選擇數(shù)據(jù)庫類型 3)填寫數(shù)據(jù)源4)測試連接其次是數(shù)據(jù)庫操作: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

9、 "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:UsersAdministratorDesktopGCCX數(shù)據(jù)庫mydb.accdb;Persist Security Info=False"End SubPrivate Sub CloseConn()If rs.State <> sckclosed Then rs.CloseSet rs = NothingIf cn.State <> sckclosed Then cn.CloseSet cn = NothingEnd SubPrivate Sub C

10、ommand1_Click()Call OpenConnrs.Open "select 姓名,性別,年齡 from 表1", cn,adOpenStatic, adLockPessimisticrs.AddNewrs.Fields("姓名") = Text1.Textrs.Fields("性別") = Text2.Textrs.Fields("年齡") = Text3.Textrs.UpdateCall CloseConnMsgBox "添加成功!", , "溫馨提示" Te

11、xt1.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 結(jié)果: 2) 刪除:Private cn As New ADODB.ConnectionDim rs As New ADODB.Rec

12、ordsetPrivate 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數(shù)據(jù)庫mydb.accdb;Persist Security Info=False"End SubPrivate Sub CloseConn()If rs.State <

13、;> 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 "刪除成功", , &quo

14、t;Successful!"cn.CloseEnd SubPrivate Sub Command2_Click()Form3.ShowUnload MeEnd Sub結(jié)果: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.Open"Provider=Microsof

15、t.ACE.OLEDB.12.0;DataSource=C:UsersAdministratorDesktopGCCX數(shù)據(jù)庫mydb.accdb;Persist Security Info=False"End 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 Open

16、Connrs.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.ShowUnlo

17、ad MeEnd Sub結(jié)果:至此,上位機(jī)的三個(gè)部分的關(guān)鍵問題已經(jīng)解決。三、上位機(jī)各部分的有機(jī)連接為了實(shí)現(xiàn)上位機(jī)接收、處理、儲(chǔ)存數(shù)據(jù)的功能,需要將上述三個(gè)部分結(jié)合為一個(gè)整體,但由于數(shù)據(jù)采集和無線傳輸部分還未完全貫通,第一部分的串口通信無法進(jìn)行測試。于是僅實(shí)現(xiàn)了數(shù)據(jù)庫操作與實(shí)時(shí)繪圖的結(jié)合。其包括:隨機(jī)函數(shù)產(chǎn)生數(shù)據(jù)并與時(shí)間控件結(jié)合代替串口通信部分。數(shù)據(jù)實(shí)時(shí)繪圖和過低值警報(bào)。數(shù)據(jù)實(shí)時(shí)存儲(chǔ)。原始記錄查詢。實(shí)驗(yàn)設(shè)計(jì)界面:程序設(shè)計(jì):Option ExplicitDim k As IntegerDim DataFromComy As Integer '從串口讀過來的實(shí)時(shí)值y坐標(biāo)Dim DataFro

18、mComLasty As Integer '上次的串口值y坐標(biāo)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.Open"Provider=Microsoft.ACE.OLEDB.12.0;Data Sou

19、rce=C:UsersAdministratorDesktopGCCX數(shù)據(jù)庫mydbnew.accdb;Persist Security Info=False"End SubPrivate Sub CloseConn() rs.Close cn.Close Set rs = Nothing Set cn = NothingEnd SubPrivate Sub Form_Load()PicScale Pic '調(diào)整圖像框的坐標(biāo)系PicMidleLine Piczuobiaoxi PicEnd SubPrivate Sub PicScale(picX As PictureBox)

20、 '調(diào)整圖像框的坐標(biāo)系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) '表示坐標(biāo)系Dim i%picX.Line (0, 0)-(picX.ScaleWidth, 0) &#

21、39;x坐標(biāo)軸表示picX.Line (0, 0)-(0, -picX.ScaleHeight) 'y坐標(biāo)軸表示 For i = 0 To picX.ScaleWidth Step 1000 'X,y軸坐標(biāo)坐標(biāo)刻度顯示 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 Integ

22、er)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) '隨機(jī)數(shù)的產(chǎn)生If DataFromComy < 1500 ThenMsgBox "螺絲壓

23、力值偏低!", 48, "警告"End IfTimeCount = TimeCount + 100'向數(shù)據(jù)庫實(shí)時(shí)存放數(shù)據(jù)Call OpenConnrs.Open "select 時(shí)間,力 from 表1", cn, adOpenStatic, adLockPessimisticrs.AddNewrs.Fields("時(shí)間") = TimeCountrs.Fields("力") = DataFromComyrs.UpdateCall CloseConnIf TimeCount - 100 >=

24、 Pic.Width ThenTimeCount = 0Pic.ClsPicMidleLine Piczuobiaoxi PicEnd IfDrawRealLine Pic, DataFromComy, DataFromComLasty, TimeCount '畫出實(shí)時(shí)的曲線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實(shí)驗(yàn)結(jié)果:查詢功能:Dim rs As New ADODB.RecordsetDim cn As New ADODB.ConnectionPrivate S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論