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