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