時間:2008-08-25 11:45:00來源:ronggang
系統(tǒng)結(jié)構(gòu)圖[/align]
2、軟件系統(tǒng)的設(shè)計
系統(tǒng)的軟件設(shè)計采用了VB6.0,VB6.0以其易學(xué)、高效、功能強大以及所開發(fā)的系統(tǒng)界面友好等特點受到了眾多用戶的歡迎,在數(shù)據(jù)采集和工業(yè)控制領(lǐng)域得到了廣泛應(yīng)用。本系統(tǒng)的軟件部分主要有數(shù)據(jù)采集處理和數(shù)據(jù)管理兩部分組成,實現(xiàn)的功能有數(shù)據(jù)采集的控制、數(shù)據(jù)處理、數(shù)據(jù)的管理以及試驗報告的輸出。下面給出了數(shù)據(jù)采集和存儲兩個關(guān)鍵環(huán)節(jié)的代碼。
2-1、模擬電壓的讀取
VB雖然易學(xué)且功能強大,但也有其自身的弱點,比如對硬件的直接訪問僅靠VB自身是無法解決的。但是它可以通過調(diào)用板卡提供的驅(qū)動函數(shù),實現(xiàn)對I/O的訪問和控制,而且支持事件驅(qū)動,這樣就使VB可以很方便地編制數(shù)據(jù)采集軟件[5]。
在Windows環(huán)境下調(diào)用驅(qū)動程序,需要在工程中添加一個模塊Driver.bas,模塊中定義了PCL-818H的所有常量,全局變量,函數(shù),數(shù)據(jù)結(jié)構(gòu),狀態(tài)代碼和消息。可以直接在程序中調(diào)用文件中定義的這些量實現(xiàn)數(shù)據(jù)的讀取。在Driver.bas文件的最后定義了許多API函數(shù),但都不是私有的,工程里的所有窗體都可以調(diào)用這些函數(shù)。模擬值的讀取分為如下5步:
(1)、打開設(shè)備
ErrCde=DRV_DeviceOpen(0,DeviceHandle)
如果ErrCde為0表示成功,否則返回錯誤信息。
?。?)、配置輸入通道范圍
lpAIConfig.DasChan=int Channel ‘設(shè)置通道
lpAIConfig.DasGain=0 ‘設(shè)置增益為0
ErrCde=DRV_AIConfig(DeviceHandle,lpAIConfig)
(3)、讀取電壓值IConfig)
AiVolIn.chan=lpAIConfig.DasChan ‘電壓輸入通道
AiVolIn.Gain=lpAIConfig.DasGain ‘電壓輸入增益
AiVolIn.TrigMode=AiCtrMode ‘觸發(fā)模式
AiVolIn.voltage=DRV_GetAddress(voltage) ‘讀入電壓值
ErrCde=DRV_AIVotageIn(DeviceHandle,AivolIn)
(4)、返回值
fnGetValue=voltage
?。?)、關(guān)閉設(shè)備
ErrCde=DRV_DeviceClose(DeviceHandle)
2-2、數(shù)據(jù)庫的訪問
VB6.0提供了相當(dāng)強的數(shù)據(jù)庫存儲能力,可以直接支持Microsorft Access數(shù)據(jù)庫[6].VB在單機環(huán)境訪問數(shù)據(jù)庫的技術(shù)有DAO和ADO,既可用控件也可用代碼編程實現(xiàn)。本應(yīng)用中利用控件并不合適,故采用了比較靈活的ADO代碼編程方法。假定在C:\mydatabase\mydata.mdb數(shù)據(jù)庫中存在”pkxt”表格,name、testdata、giveddata、conclusion是其字段名,界面中幾個Text文本框中顯示了試驗數(shù)據(jù),將數(shù)據(jù)寫入數(shù)據(jù)庫的代碼如下:
Private Sub Form_Load() ‘ 窗體裝載事件
Dim strSQL As String
Set cn = New ADODB.Connection ‘建立新的連接
cn.Provider = "microsoft.jet.oledb.3.51" ‘ 數(shù)據(jù)庫引擎
cn.ConnectionString = "C:\mydatabase\mydata.mdb" ‘?dāng)?shù)據(jù)庫路徑
cn.Open ‘打開連接
Set adors = New ADODB.Recordset ‘打開“pkxt”表的一個記錄集
adors.LockType = adLockOptimistic
strSQL = "select *" & "from pkxt"
adors.Source = strSQL
Set adors.ActiveConnection = cn
adors.Open
adors.AddNew
End Sub
Private Sub Form_Unload(Cancel As Integer) ‘卸載窗體事件
cn.Close ‘關(guān)閉連接
End Sub
‘在“保存“按鈕的單擊事件中將界面中的數(shù)據(jù)寫入記錄集
Private Sub Command1_Click()
adors.Fields("name") = Text1.Text ‘檢測項目名稱
adors.Fields("testdata") = Val(Text2.Text) ‘檢測值
adors.Fields("giveddata") = Val(Text3.Text) ‘給定的指標(biāo)值
adors.Fields("conclusion") = Text4.Text ‘檢測結(jié)論
adors.Update
adors.Close
End Sub
2-3、報表輸出
對報表的輸出,VB6.0提供了很多方法,其中DataReport設(shè)計器和Printer對象方法特點鮮明。利用Printer對象方法需要編寫較多的代碼,但極具靈活性;DataReport設(shè)計器是VB6.0新增的功能,它只提供了最基本的功能,但具有非常易用的特點。由于本系統(tǒng)數(shù)據(jù)比較簡單,所以使用了DataReport設(shè)計器實現(xiàn)試驗報告的輸出。
3、結(jié)論
經(jīng)過反復(fù)調(diào)試,我們開發(fā)的基于VB的工控機數(shù)據(jù)采集系統(tǒng)實現(xiàn)了預(yù)期的各項功能,達(dá)到了各項技術(shù)指標(biāo)要求。該系統(tǒng)在我軍某坦克中修單位使用了近半年,界面友好,功能豐富,運行可靠,有著較高的推廣應(yīng)用價值,并且對其它行業(yè)多參數(shù)數(shù)據(jù)采集系統(tǒng)有參考價值。
參考文獻(xiàn)
[1]ZTZ96坦克修理指南[M].北京:中國人民解放軍總裝通保部,2000.
[2]張勁松,張濤. 計算機工業(yè)控制[M].北京:中國電力出版社,2003.
[3]凌澄,PC工業(yè)控制系統(tǒng)精粹[M].北京:清華大學(xué)出版社,1998.
[4]孫延才,王杰.工業(yè)控制計算機組成原理[M].北京:清華大學(xué)出版社,2003.
[5](美)Steven Holzner,詳實翻譯組翻譯.Visual Basic 6技術(shù)內(nèi)幕[M].北京:機械工業(yè)出版社,1999.
[6]effrey P.McManus . VisualBasic數(shù)據(jù)庫訪問技術(shù)[M].北京:機械工業(yè)出版社,1999.
標(biāo)簽:
![]()
傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(connectcrack.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-10-31
2025-10-22
2025-10-17
2025-10-11
2025-10-09
2025-09-23