唐海霞
【摘 要】本文對(duì)利用DCOM技術(shù)進(jìn)行汽車檢測(cè)線分布系統(tǒng)的設(shè)計(jì)原理進(jìn)行了簡(jiǎn)要介紹,并提出汽車檢測(cè)線系統(tǒng)的實(shí)現(xiàn)目標(biāo)、設(shè)計(jì)思想以及設(shè)計(jì)目標(biāo)等。
【關(guān)鍵詞】組件;汽車檢測(cè)線;DCOM
隨著網(wǎng)絡(luò)的高速發(fā)展,軟件科學(xué)的應(yīng)用也越來(lái)越廣泛,越來(lái)越多種多樣。在汽車工業(yè)高度發(fā)達(dá)的現(xiàn)今,對(duì)軟件的應(yīng)用的要求也逐漸提升。在這種形勢(shì)下,組件化程序設(shè)計(jì)思想就變得極為關(guān)鍵。將比較復(fù)雜的應(yīng)用程序設(shè)計(jì)成為功能單一的組件模塊,這就是組件化的設(shè)計(jì)思想。于是,微軟對(duì)此提出了COM標(biāo)準(zhǔn),組件程序之間也變得具有規(guī)范化??蛻舫绦蚝徒M件對(duì)象將在不同計(jì)算機(jī)上運(yùn)行,所以就需要將COM規(guī)范擴(kuò)展為DCOM,也就是分布式組件對(duì)象模型。分布式組件對(duì)象模型能夠支持不同計(jì)算機(jī)上客戶程序與組件對(duì)象之間的通信往來(lái)。計(jì)算機(jī)可以在英特網(wǎng)上,亦可在局域網(wǎng)范圍。汽車的煙度、廢氣、加速時(shí)間、速度等各種項(xiàng)目必須要采用汽車檢測(cè)線系統(tǒng)來(lái)對(duì)其進(jìn)行檢測(cè)。它包含:系統(tǒng)維護(hù)子系統(tǒng)、財(cái)務(wù)子系統(tǒng)、檢測(cè)業(yè)務(wù)管理子系統(tǒng)、監(jiān)控子系統(tǒng)、測(cè)控子系統(tǒng)、車輛登錄子系統(tǒng)。測(cè)控子系統(tǒng)的工位機(jī)的布局中需要設(shè)置底盤測(cè)工位機(jī)、發(fā)動(dòng)機(jī)分析儀工位機(jī)等,進(jìn)行對(duì)子系統(tǒng)的測(cè)控作業(yè)。而且,子系統(tǒng)和可以合并為一個(gè)工作站進(jìn)行工作。例如,作為主控機(jī),可以將系統(tǒng)維護(hù)子系統(tǒng)、檢測(cè)業(yè)務(wù)管理子系統(tǒng)、監(jiān)控子系統(tǒng)聯(lián)合起來(lái)。
1.汽車檢測(cè)線的設(shè)計(jì)
在傳統(tǒng)的檢測(cè)線系統(tǒng)中,我們不能單獨(dú)進(jìn)行每個(gè)工位的檢測(cè),因?yàn)楦鱾€(gè)檢測(cè)工位都是獨(dú)立的,進(jìn)行的也只是亂序隨機(jī)檢測(cè)。通過(guò)網(wǎng)絡(luò)鄰居,由主控機(jī)來(lái)進(jìn)行每個(gè)工位機(jī)上的操作,后臺(tái)的時(shí)鐘控制了上線車輛的所有檢測(cè)。這種檢測(cè)方式的網(wǎng)絡(luò)結(jié)構(gòu)層次比較混亂,而且,不能達(dá)到擴(kuò)展的要求,不能對(duì)完成配置的檢測(cè)線進(jìn)行修改。汽車檢測(cè)線的控制系統(tǒng)為分布式,我們?cè)谒膬?nèi)容里添加了數(shù)據(jù)庫(kù)服務(wù)器,可以用來(lái)存儲(chǔ)上線汽車的評(píng)價(jià)結(jié)果、終檢結(jié)果、基本數(shù)據(jù)等。
數(shù)據(jù)庫(kù)服務(wù)器、主控機(jī)、工位機(jī)可以通過(guò)局域網(wǎng)進(jìn)行連接,操作數(shù)據(jù)庫(kù)以及各工位機(jī)服務(wù)器的工作由主控機(jī)承擔(dān)。工位機(jī)臨時(shí)數(shù)據(jù)表中記錄了工位機(jī)對(duì)汽車項(xiàng)目的檢測(cè)的臨時(shí)數(shù)據(jù)。通過(guò)局域網(wǎng)的傳輸,上線汽車的評(píng)價(jià)結(jié)果、最終結(jié)果以及基本的檢測(cè)和數(shù)據(jù)被傳到數(shù)據(jù)庫(kù)的服務(wù)器上。上線汽車檢測(cè)結(jié)果的最終報(bào)表和檢測(cè)汽車項(xiàng)目由主控器通過(guò)讀取數(shù)據(jù)庫(kù)服務(wù)器的相關(guān)數(shù)據(jù)來(lái)決定。操作人員能夠?qū)嵭袑?duì)各個(gè)工位機(jī)獨(dú)立操作,同時(shí)還可以通過(guò)主控機(jī)實(shí)現(xiàn)對(duì)上線汽車檢測(cè)流程的控制。另外,為了可以使操作人員實(shí)現(xiàn)更大的檢測(cè)靈活性,還可以通過(guò)主控程序?qū)Ω黜?xiàng)檢測(cè)項(xiàng)目、工位機(jī)配置進(jìn)行更改等。
2.汽車檢測(cè)線的基本設(shè)計(jì)
我們采用DCOM編程思想來(lái)實(shí)現(xiàn)上述設(shè)計(jì)。作為Server端,各工位機(jī)上安裝組件程序,作為Client端主控機(jī)上的客戶程序?qū)λM(jìn)行訪問(wèn)。最終的評(píng)價(jià)結(jié)果以及數(shù)據(jù)進(jìn)過(guò)網(wǎng)絡(luò)傳輸?shù)綌?shù)據(jù)庫(kù)服務(wù)器的SQL數(shù)據(jù)庫(kù)中,而各個(gè)工位的臨時(shí)數(shù)據(jù)則存放于工位機(jī)的ACCESS表中。當(dāng)車輛進(jìn)行初檢時(shí),車輛的基本信息會(huì)記錄在數(shù)據(jù)庫(kù)的服務(wù)器中。若為車輛復(fù)檢,那么,就先進(jìn)行數(shù)據(jù)庫(kù)服務(wù)器的車輛有關(guān)信息的讀取程序,再確定車輛即將檢測(cè)的項(xiàng)目。要想進(jìn)行異步間通信,必須要采用Scrver端和Client端之間觸發(fā)事件RaiseEvent的方式來(lái)實(shí)現(xiàn)。
3.汽車檢測(cè)線的設(shè)計(jì)
設(shè)計(jì)數(shù)據(jù)庫(kù):各個(gè)表在數(shù)據(jù)庫(kù)服務(wù)器中的定義:w_quequ車輛檢測(cè)隊(duì)列表; w_item檢測(cè)項(xiàng)目表;w_status工作狀態(tài)表;w_safe汽車安全性能檢測(cè)項(xiàng)目結(jié)果信息表;w_info汽車上線檢測(cè)項(xiàng)目表;w_coll汽車綜合性能檢測(cè)項(xiàng)目結(jié)果信息表。Server端作為遠(yuǎn)程服務(wù)器文件被安裝在各個(gè)工位機(jī)上,它被設(shè)計(jì)成進(jìn)程外組件程序。在各項(xiàng)檢測(cè)模塊中,項(xiàng)目對(duì)應(yīng)為組件程序模塊來(lái)操作該檢測(cè)項(xiàng)目。例如:完成讀取上線汽車在數(shù)據(jù)庫(kù)中的基本數(shù)據(jù)、保存以及讀取并處理臨時(shí)的數(shù)據(jù)、將檢測(cè)設(shè)備進(jìn)行初始化、定標(biāo)檢測(cè)項(xiàng)目設(shè)備、處理檢測(cè)數(shù)據(jù)、向數(shù)據(jù)庫(kù)服務(wù)器中傳輸最終評(píng)價(jià)結(jié)果等步驟??蛻舳顺绦蛞胪瓿蓹z測(cè)項(xiàng)目只需訪問(wèn)對(duì)應(yīng)的模塊即可。這也有助于保障各項(xiàng)檢測(cè)項(xiàng)目的獨(dú)立性。而且,只要訪問(wèn)模塊內(nèi)對(duì)應(yīng)的定標(biāo)函數(shù)就可以實(shí)現(xiàn)單獨(dú)的檢測(cè)定標(biāo)等步驟。在Client端,也就是客戶端的設(shè)計(jì)方面,包括主控程序及進(jìn)程外組件程序2個(gè)部分。監(jiān)控人員可以通過(guò)主控程序來(lái)控制整個(gè)檢測(cè)線的運(yùn)轉(zhuǎn),因?yàn)樗峁┝苏麄€(gè)車輛檢測(cè)線的操作界面。進(jìn)程外組件程序控制著車輛檢測(cè)流程。
客戶端主控程序在進(jìn)行車輛檢測(cè)時(shí),提供出中心控制以及整個(gè)操作界面,它能夠處理N輛車在不同工位同時(shí)進(jìn)行檢測(cè)。這就要用到組件技術(shù)來(lái)并行處理車輛的檢測(cè)過(guò)程。如果,每一輛車就是一個(gè)組件的話,那么,主控程序?yàn)榱四軌驅(qū)崿F(xiàn)檢測(cè)的并行和調(diào)度處理就需要通過(guò)對(duì)組建的生產(chǎn)和銷毀進(jìn)行控制??刂栖囕v檢測(cè)流程的進(jìn)程外組件時(shí),為了實(shí)現(xiàn)后臺(tái)操作,客戶端的進(jìn)程外組件程序設(shè)計(jì)成為了Server端和主控程序的橋梁,它使用時(shí)鐘控制檢測(cè)流程函數(shù)。
由于,并非在同一臺(tái)機(jī)器上安裝對(duì)應(yīng)每個(gè)檢測(cè)項(xiàng)目所調(diào)用的Server組件程序,所以,在調(diào)用時(shí),均對(duì)應(yīng)每項(xiàng)檢測(cè)創(chuàng)建一個(gè)Server組件基本相同。在車輛結(jié)束所有檢測(cè)項(xiàng)目時(shí),該組件立即被銷毀。Server端的各個(gè)檢測(cè)模塊間與程序組件通過(guò)出發(fā)事件RaiseEvent進(jìn)行異步通信,在其內(nèi)部完成對(duì)Server端所有檢測(cè)模塊觸發(fā)的事件進(jìn)行處理。還可以通過(guò)主控程序?qū)τ脩糨^為感興趣的事件進(jìn)行相應(yīng)處理,例如:提供車輛完成工位檢測(cè)、車輛駛進(jìn)工位檢測(cè)等。另外,還在組件程序中加入表示檢測(cè)狀態(tài)的事件,這樣可以防止在調(diào)用組件時(shí),主控程序產(chǎn)生盲動(dòng)。例如:車輛正在進(jìn)行檢測(cè)、車輛開始檢測(cè)、車輛結(jié)束檢測(cè)等。
在各個(gè)工位機(jī)上安裝了組件程序,這就有效避免了客戶端在調(diào)用不同工位機(jī)的組件程序時(shí),遠(yuǎn)程機(jī)器網(wǎng)絡(luò)位置為同一值的現(xiàn)象。為了使主控程序中實(shí)現(xiàn)對(duì)工位機(jī)IP地址的配置,在創(chuàng)建組件程序?qū)ο髸r(shí),要求網(wǎng)絡(luò)的IP地址為可變的。在各個(gè)工位機(jī)上的DCOM服務(wù)器程序?qū)⑽募?fù)制到客戶端的硬盤力??蛻舳诉M(jìn)程外組件程序直接引用復(fù)制到硬盤上的文件后,可以在客戶端創(chuàng)建網(wǎng)絡(luò)位置可變的服務(wù)器端對(duì)象。
4.結(jié)束語(yǔ)
運(yùn)用了DCOM技術(shù)可以實(shí)現(xiàn)汽車檢測(cè)線分布系統(tǒng)的設(shè)計(jì),且針對(duì)傳統(tǒng)的檢測(cè)線設(shè)計(jì)中的工位機(jī)不能更改配置等的缺陷進(jìn)行了改善,從而達(dá)到單獨(dú)控制各個(gè)檢測(cè)項(xiàng)目。 [科]
【參考文獻(xiàn)】
[1]張英朝,張喆,李杰.汽車風(fēng)洞支撐干擾扣除方法研究[J].實(shí)驗(yàn)流體力學(xué),2011(3).