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