朱永軍
(遼河石油勘探局通信公司,遼寧 盤錦 124010)
Visual Basic是基于Windows平臺的可視化程序設計語言,具有簡單易學、功能強大、軟件費用支出低、見效快等特點。它提供了快捷的編程方法,使得專業人員得心應手開發應用程序;VB6.0可以開發出美觀大方的界面,其代碼效率已達到Visual C++的水平。在面向對象程序設計方面,VB6.支持封裝、繼承和多態的面向對象特征。Visual Basic6.0包含學習版、專業版和企業版,用戶可以根據實際情況靈活選擇;Visual Basic 6.0可以開發出高性能的企業應用程序和Web的應用程序。
串口是計算機上常用的接口,串口協議是計算機上一種非常通用設備通信的協議,它可以很好的支持儀器儀表設備間的數據通信,用于采集遠程設備發出的數據。串口通信使用方法比較簡單,按位發送和接收字節;因為串口通信是異步傳輸,可以在使用一根線發送數據的同時用另一根線接收數據,可以實現遠距離通信。一般來說,串口可以支持長度可達1200米的ASCII碼字符的傳輸;在串口通信時,需要設置四個重要的參數:波特率、數據位、停止位和奇偶校驗。
MSChart控件,是一個圖形統計和報表圖形顯示控件,它提供了許多很好的圖形處理方法,支持Web和WinForm兩種應用程序方式,包含英文版,中文版。在編寫程序時,MSChart控件提供了很好的數據功能,它可以跟一個數據網格(DataGrid對象)關聯,該數據網格顯示了采集到的數據,數據網格還可以繪制出高質量的曲線,并且都可以動態的改變,類似于Windows操作系統的進程管理器。
在油田數據通信系統中,采用RS-232串口進行數據通信和傳輸,用來實現計算機和其它設備進行數據通信功能。在數據采集時,計算機使用了VB中的通信控件來完成數據的發送和接收,使用VB解析指令來完成數據的轉換。下面是計算機與其它設備采集數據的設計原理圖,如圖所示:
數據采集功能的完成離不開通信協議的制定,本文采用了如下通信協議:
主機命令格式為:前導+命令字+測量的第幾次數+效驗和;效驗和=前導+命令字+測量的第幾次數;命令字:0X01-次數查巡,0X02-讀數據;測量的第幾次數:0X00-數據全部讀入,0X0N-第N次的測量數據讀入。
從機響應:命令字:0X01;前導+0X81+次數+效驗和;效驗和=前導+0X81+次數;次數:0x00沒有測;0x0n測量了n次;命令字:0X02;前導+0X82+次數+數據+效驗和;效驗和=前導+0X82+次數+數據
從機對錯誤命令的處理:效驗和錯誤返回;前導+0X8A+次數+效驗和或無效的命令;前導+0X8B+次數+效驗和;無效的測量的數據讀??;前導+0X8C+次數+效驗和。
主機對錯誤命令的處理:再重新發送前一次發送的命令的前導字符為0XOA。
數據采集程序,是通過調用VB中的Mscomm控件來實現的;由于該通信控件的強大功能,編程簡單,使得Windows環境下開發串口通信系統變得方便易行;該控件提供了兩種處理通信的方式:事件驅動方式和查詢方式。本文采用了事件驅動方式,當串口發生事件或錯誤時,MSComm控件會產生OnComm事件,用戶程序可以捕獲該事件進行相應處理。
在程序設計過程中,需要重點設置MSComm控件的四個參數,分別是:串口號、串口狀態、參數設置、發送數據。串口號用于設置并返回通信端口號;串口狀態用于設置并返回通信端口的狀態,也可以打開和關閉端口;參數設置主要設置波特率、奇偶校驗、數據位、停止位,完成字符串形式的數據傳輸;發送數據是向發送緩沖區寫入數據,部分代碼分析如下:Mscomm1.commport=2 含義:選取的是com2端口
Mscomm1.settings=“9600,N,8,1” 其代碼含義如下:
9600表示波特率為9600,N表示:無奇偶校驗;8表示:數據位為8,1表示:停止位為1
在VB中,Mschart組件是一個外部Activex控件,專門用于實現圖標功能,可以方便創建包括條形、餅形、線形等不同類型的三維圖表。在使用該控件時,需要完成標題、坐標、數據點的設定,其中,數據點中的數據是源于采集到的數據,也就是不斷變化的點。
本系統程序設計時,自動調用了Mschart組件繪圖組件,描述了實時測量的數據的趨勢曲線圖,并隨著時間變動實時更新,以便分析。
編寫繪圖函數,可以方便調用,很容易繪制出點、直線、矩形、圓和橢圓等圖形,使得繪圖變得十分輕松。在繪圖時,以Picturebox作為畫板,在其中顯示實時數據曲線。對于畫線功能,可以使用VB中畫線(line)函數來實現,它的語法為:
object.Line[Step1](x1,y1)[Step2](x2,y2),[color]
其中,可選項Step1設置起點坐標相對于當前圖形位置圖標的偏移量;(x1,y1)指定直線的起點坐標或矩形的左上角坐標;可選項Step2設置終點坐標相對于當前圖形位置圖標的偏移量;(x2,y2)指定直線的終點坐標或矩形的右下角坐標;color是指繪畫所用的RGB顏色,可以被忽略。
本文是在windows環境下利用VB6.0串行通信技術完成了油田數據通信系統中的數據采集功能,并對其實現過程作了詳細的設計與實現。
[1]仵浩.Visual Basic串口通信工程開發實例導航:人民郵電出版社,2003.1.
[2]黃麗,仝秋紅,蹇小平.電噴發動機故障診斷專家系統知識庫與推理機的構建 [J].電子科技,2007.