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