張新英
(承德廣播電視大學(xué) 計(jì)算機(jī)系,河北 承德 067000)
組件在動(dòng)態(tài)電子軌道衡中的應(yīng)用
張新英
(承德廣播電視大學(xué) 計(jì)算機(jī)系,河北 承德 067000)
本文講述了電子軌道衡軟件的計(jì)量邏輯,分析了軌道衡軟件的各層次結(jié)構(gòu),在此基礎(chǔ)上講述組件如何在軌道衡軟件上實(shí)現(xiàn),組件化的作用以及好處。
電子軌道衡;組件;組件化;軟件分析
電子軌道衡是一種對(duì)行進(jìn)中的四軸鐵路貨車進(jìn)行自動(dòng)稱重的設(shè)備,即在貨車連掛、不停車的條件下,實(shí)現(xiàn)對(duì)列車逐節(jié)自動(dòng)稱重。它主要由機(jī)械稱量臺(tái)面、傳感器、稱重轉(zhuǎn)換器、計(jì)算機(jī)軟件系統(tǒng)四大部分構(gòu)成。隨著科技的進(jìn)步及使用企業(yè)管理理念及技術(shù)要求的提高,傳統(tǒng)軌道衡在基本稱重功能之外,又增加了其它一些附屬功能。如基于RFID的車號(hào)自動(dòng)識(shí)別系統(tǒng)、基于視頻監(jiān)控的自動(dòng)來車錄像系統(tǒng),以及融入企業(yè)的ERP系統(tǒng)等功能。
國內(nèi)生產(chǎn)軌道衡的知名廠家大約有8家左右,這些廠家的軌道衡稱量軟件系統(tǒng)基本采用的是VB6.0、C語言來完成硬件控制、計(jì)量邏輯及管理功能,從設(shè)計(jì)思想上基本沿用了面向過程的編程思想。使用面向過程的編程所設(shè)計(jì)的軟件系統(tǒng)界面與計(jì)量邏輯、界面與硬件控制以及計(jì)量邏輯與硬件控制的耦合度相當(dāng)高,往往企業(yè)用戶對(duì)軟件系統(tǒng)提出的小要求,軌道衡廠家就需要對(duì)大部分源碼進(jìn)行更改。這樣就造成了軌道衡廠家技術(shù)人員在不斷的維護(hù)源碼。既增加了生產(chǎn)廠家的管理成本、技術(shù)成本,也造成了不必要的用戶滿意度下降。
隨著軟件技術(shù)的幾次大變革,基于組件化的軟件技術(shù)已相當(dāng)成熟。在國內(nèi)外大型的公司軟件系統(tǒng)中得到了大量的應(yīng)用。在此前提下重構(gòu)軌道衡系統(tǒng)軟件勢(shì)必能解決傳統(tǒng)軌道衡軟件系統(tǒng)存在的諸多問題。
電子軌道衡軟件系統(tǒng)主要由硬件數(shù)據(jù)采集及控制、計(jì)量邏輯與數(shù)據(jù)庫管理三大部分組成。國內(nèi)軌道衡廠家的計(jì)量管理軟件計(jì)量邏輯與硬件數(shù)據(jù)采集及控制、數(shù)據(jù)管理沒有明顯的界限,它們的源碼交錯(cuò)在一起,雖然軟件可以正常的工作,但對(duì)于后期維護(hù)和軟件升級(jí)改版卻帶來了相當(dāng)大的麻煩。
基于組件的電子軌道衡軟件設(shè)計(jì)采用組件化的思想,對(duì)于電子軌道衡軟件中的各部分進(jìn)行明確的定義,使軟件的結(jié)構(gòu)層次更清晰,源碼結(jié)構(gòu)更規(guī)范。各部分之間的數(shù)據(jù)交互定義了統(tǒng)一的接口。
硬件數(shù)據(jù)采集及控制部分
硬件數(shù)據(jù)采集及控制部分主要用于從硬件采集傳感器信息及軌道衡系統(tǒng)其它一些附屬性設(shè)備信息,它采集到的數(shù)據(jù)主要用于計(jì)量邏輯判斷車重使用,控制部分用于對(duì)下端的設(shè)備進(jìn)行控制操作,如打開或關(guān)閉設(shè)備,讓設(shè)備執(zhí)行某些動(dòng)作等功能。系統(tǒng)包含的硬件主要有CAN總線控制卡、開關(guān)量控制卡、稱重轉(zhuǎn)換器、車號(hào)識(shí)別器、視頻服務(wù)器等設(shè)備。它們與上位計(jì)算機(jī)的主要接口形式有PCI接口、CAN接口、RS232 接口(串行接口)、RJ45(網(wǎng)絡(luò)接口)、并行接口幾大類。從源碼級(jí)別操作這幾類接口時(shí),操作方式?jīng)]有相近之處。按傳統(tǒng)的操作方式編程,基本是軟件中對(duì)各接口的操作都有自已對(duì)應(yīng)的形式。不便于軟件對(duì)設(shè)備統(tǒng)一管理及調(diào)度。但基于組件化的編程思想設(shè)計(jì)時(shí),就不會(huì)存在操作不統(tǒng)一的情況。軟件會(huì)對(duì)所有接口的操作定義統(tǒng)一的操作方式,上層軟件在調(diào)用下層硬件設(shè)備通信時(shí)看到的只有一種形式,而不用去管操作的是并口還是網(wǎng)口,或是其它的接口形式。
計(jì)量邏輯部分
計(jì)量邏輯部分是軌道衡計(jì)量管理軟件系統(tǒng)中的核心模塊。它主要由濾波算法、重量修正算法、速度計(jì)算算法、跳變判斷算法、重量計(jì)算算法及波形存儲(chǔ)等部分組成。計(jì)量邏輯部分主要用于計(jì)算過衡的每節(jié)車的節(jié)重、速度、前架重量、后架重量。計(jì)量邏輯中90%功能是通用性的,在任何實(shí)際現(xiàn)場(chǎng)都是通用的,還有10%功能是針對(duì)不同車型及機(jī)械臺(tái)面的長短而特殊設(shè)計(jì)的,現(xiàn)有鐵路運(yùn)行的貨車車輛主要有C62、C64、P64、C70、G70 等車型,但當(dāng)軌道衡應(yīng)用于冶金企業(yè)稱量鐵水車時(shí)所面對(duì)的車型尺寸、稱臺(tái)長度是截然不同的,因而軟件的判車算法及重量計(jì)算等算法是截然不同的?;诮M件化的軟件設(shè)計(jì)時(shí),首先提出通用算法統(tǒng)一建庫。再將變化的部分交于工廠組件對(duì)不同車型及不同秤臺(tái)長度的計(jì)量邏輯算法進(jìn)行統(tǒng)一管理。上層軟件在使用時(shí)只需要提供給工廠組件必要的參數(shù),工廠組件會(huì)根據(jù)現(xiàn)場(chǎng)的實(shí)際情況為上層軟件創(chuàng)建一個(gè)對(duì)應(yīng)的算法實(shí)現(xiàn)。基于此種設(shè)計(jì)思想的軌道衡軟件系統(tǒng)在任何現(xiàn)場(chǎng)只需要改變10%變化部分,軟件90%的通用部分是不用修改、不用重新編譯的。
數(shù)據(jù)管理部分
數(shù)據(jù)管理部分在軌道衡稱重管理軟件中主要負(fù)責(zé)過衡數(shù)據(jù)的后期管理。如數(shù)據(jù)的輸入、數(shù)據(jù)查詢統(tǒng)計(jì)、用戶權(quán)限管理以及數(shù)據(jù)的輸出打印功能。傳統(tǒng)的軌道衡管理軟件與計(jì)量軟件的結(jié)構(gòu)基本相同,主要是針對(duì)市面上某一種數(shù)據(jù)庫而寫的代碼。數(shù)據(jù)庫訪問層、管理邏輯層及數(shù)據(jù)展現(xiàn)層并無界限,在實(shí)際使用過程序中如果用戶的后臺(tái)數(shù)據(jù)庫發(fā)生變化,數(shù)據(jù)管理軟件的代碼60%以上需要針對(duì)特定的數(shù)據(jù)庫進(jìn)行重寫?;诮M件模型的管理軟件采用了三層架構(gòu),最底層為通用數(shù)據(jù)庫訪問層,在其上一層為邏輯關(guān)系處理層,最上層為數(shù)據(jù)展現(xiàn)層。
數(shù)據(jù)采集部分主要由兩個(gè)頂層庫和若干個(gè)儀表類型庫組成。兩件頂層庫為
WY.WeightBridge.Hardware.Meter.DLL
WY.WeightBridge.Hardware.Factory.DLL
這兩個(gè)庫主要提供訪問設(shè)備的一致性接口和不同儀表類型解碼器、命令器的自動(dòng)掛接。用戶在使用時(shí)看到的只有上端兩個(gè)庫所提供的函數(shù)及命令,針對(duì)市場(chǎng)上不同儀表的操作是隱藏在下端的?;诖朔N組件結(jié)構(gòu)的軟件系統(tǒng)用戶不用關(guān)心系統(tǒng)采用的儀表類型。下端的具體儀表分廠家分類型各自都有獨(dú)立的庫。庫中實(shí)現(xiàn)了解碼器和命令器,即可以將解碼儀表發(fā)送到計(jì)算機(jī)的數(shù)據(jù),同時(shí)也可以將計(jì)算機(jī)發(fā)送到儀表的數(shù)據(jù)進(jìn)行命令編碼以便儀表能識(shí)別。計(jì)量邏輯部分主要完成動(dòng)態(tài)稱量貨車的算法工作,由于軌道衡在結(jié)構(gòu)上分單臺(tái)面轉(zhuǎn)向架稱量式、雙臺(tái)面整車稱量式及三臺(tái)面組合稱量式等多種形式,具體的稱量算法也是不盡相同的。基于組件化的軌道衡計(jì)量軟件使用了兩個(gè)頂層接口函數(shù)庫對(duì)不同稱量算法進(jìn)行了統(tǒng)一。所有稱量算法函數(shù)具有相同的格式??蛻舳塑浖徽{(diào)用WY.WEIGHTBRIDGE.WEIGHING.DLL庫中的過程及函數(shù),針對(duì)不同類型衡器的計(jì)量算法有不同的實(shí)現(xiàn)庫,最終由WY.WEIGHTBRIDGE.WEIGHING.FACTORY.DLL庫進(jìn)行自動(dòng)掛接到軟件中。如果在使用中出現(xiàn)新的車型或秤體結(jié)構(gòu),軟件人員只需要修改下層具體實(shí)現(xiàn)部分便可以滿足新的需要。
●數(shù)據(jù)管理部分
數(shù)據(jù)管理部分共分三層,物理上使用了三個(gè)動(dòng)態(tài)鏈接庫實(shí)現(xiàn)。分別是數(shù)據(jù)庫訪問層、數(shù)據(jù)關(guān)系邏輯層及數(shù)據(jù)展現(xiàn)層三個(gè)庫。最低層的數(shù)據(jù)庫訪問層是管理部分的核心層,它可以訪問現(xiàn)有所有關(guān)系型數(shù)據(jù)庫,如MS SQL SERVER、ORACLE、MySQL、ACCESS、FIREBIRD 等等。邏輯關(guān)系處理層可以根據(jù)特定行業(yè)用戶進(jìn)行重構(gòu),以滿足不同行業(yè)用戶對(duì)數(shù)據(jù)管理功能的要求,在最終的產(chǎn)品發(fā)布時(shí)軟件中集成了不同行業(yè)的管理功能,用戶使用軟件時(shí)選擇本行業(yè)功能便可。數(shù)據(jù)展現(xiàn)層主要展現(xiàn)給用戶一些窗體,它同樣也是根據(jù)不同行業(yè)用戶構(gòu)建的集成庫。
基于組件的軌道衡計(jì)量管理軟件在實(shí)際現(xiàn)場(chǎng)應(yīng)用中得到了很好的推廣。使用此種結(jié)構(gòu)的軟件系統(tǒng)節(jié)省了現(xiàn)場(chǎng)調(diào)試人員50%的工作時(shí)間,同時(shí)現(xiàn)場(chǎng)費(fèi)用也降低了20%。此種結(jié)構(gòu)的軟件系統(tǒng)已被國內(nèi)大型冶金、電力、煤炭等企業(yè)使用。如唐山鋼鐵公司、鞍鋼集團(tuán)、湖北新冶鋼、國電灤河發(fā)電廠、首鋼股份曹妃甸項(xiàng)目等國內(nèi)大型企業(yè)。隨著科學(xué)技術(shù)的進(jìn)步、軟件技術(shù)的革新,相信基于組件化的軟件系統(tǒng)無論是在企業(yè)成本節(jié)約上,還是在企業(yè)管理水平提升上都會(huì)得到廣泛的應(yīng)用。
O64
A
1005-1554(2011)02-0016-03
2010-12-06
張新英(1982-),女,河北承德人,承德廣播電視大學(xué)計(jì)算機(jī)系助教。
河北民族師范學(xué)院學(xué)報(bào)2011年2期