3.3 在接收端建立數據庫
數據的存放形式是一個值得考慮的問題。由于數據需要頻繁的存取,所以選用了數據庫。是建一個庫還是建多個庫?雖然暫時需要傳送的數據為100個,但建庫時需要考慮到以后需求的增長。如果建立一個數據庫,所有數據存放在一個庫里,查詢刷新記錄時會耗費很多時間,會降低通訊的性能。于是選用一個工位建立一個數據庫,存放一條記錄。使用多庫需多占用一些硬盤空間,一個庫結構、一個表、一條記錄占120KB的空間,100個庫共占1.2M空間。一個庫僅一條記錄,可以縮短查詢刷新記錄的時間,符合實時傳送的要求。為了編程方便,數據庫名稱、表名稱與工位號名稱相同。每個庫包括三個字段,分別為工位名稱、測量值、接收時間。
3.4 通訊中服務器數據的接收與存放
(1) 數據接收
VB的工具箱提供了許多程序開發的控件,并提供了用來擴充工具箱的Active控件,其中的Communications控件,可以用來提供簡單的串行端口通訊功能,也可以用來創建功能完備的、事件驅動的高級通訊工具。并且VB具有數據庫操作功能,可以滿足從DCS來的通訊數據的存放要求。
? 定義接收數據窗體(Receive)
窗體對象是Visual Basic應用程序的基本構造模塊,是運行應用程序時,與用戶交互操作的實際窗口。窗體有自己的屬性、事件和方法,控制窗體的外觀和行為。定義一個名為Receive的窗體,利用窗體屬性設計窗體的外觀,作為接收數據時的運行窗口。
在Receive窗體上定義一個Communications控件,并設置它的屬性。使此控件在窗體運行時不顯示它的控件圖標。為了使此控件能夠正常投入運行,需對它的屬性進行設置。它的握手屬性設置為0,即不使用握手協議,因為在發送數據時采用延時方法發送數據,在接收端有足夠的時間把輸入緩存區內的數據取走并處理。設置RThreshold屬性的值為121