摘 要:燃?xì)廨啓C(jī)正在向自動化、智能化的方向發(fā)展,附加設(shè)備增多,運(yùn)行時(shí)采集的參數(shù)量也不斷增加,對數(shù)據(jù)監(jiān)測與記錄設(shè)備提出了更高的要求,針對燃?xì)廨啓C(jī)在運(yùn)行時(shí)長期、可靠存儲數(shù)據(jù)的需求,對PC/104模塊與VxWorks操作系統(tǒng)進(jìn)行了研究,并設(shè)計(jì)了一款船用燃?xì)廨啓C(jī)數(shù)據(jù)記錄儀,在試驗(yàn)和試航中取得了良好的效果。
關(guān)鍵詞:數(shù)據(jù)記錄儀;PC/104;VxWorks;燃?xì)廨啓C(jī)
引言
燃?xì)廨啓C(jī)以其優(yōu)良的動態(tài)性能,在艦船動力系統(tǒng)中占有重要的地位。隨著艦船事業(yè)向自動化、智能化的不斷進(jìn)步和發(fā)展,監(jiān)測的數(shù)據(jù)量也不斷增加,而且工作環(huán)境比較惡劣,因此對船用燃?xì)廨啓C(jī)數(shù)據(jù)監(jiān)測與記錄設(shè)備提出了更高的要求。船用數(shù)據(jù)記錄儀是用來記錄其各種信息的存儲設(shè)備,一旦船舶發(fā)生事故,這個存儲設(shè)備能抵制住各種惡劣的環(huán)境并保存下來,以便記錄的數(shù)據(jù)能被取回分析。船用燃?xì)廨啓C(jī)數(shù)據(jù)記錄儀則是主要針對艦船動力主設(shè)備燃?xì)廨啓C(jī)運(yùn)行時(shí)各個參數(shù)的采集與數(shù)據(jù)記錄,一旦發(fā)生燃?xì)廨啓C(jī)故障,能立刻對已記錄的運(yùn)行數(shù)據(jù)進(jìn)行分析,找出故障原因,恢復(fù)燃機(jī)的正常運(yùn)行,因此,為了滿足燃?xì)廨啓C(jī)在運(yùn)行時(shí)長期、可靠存儲數(shù)據(jù)的需求,用來記錄燃?xì)廨啓C(jī)運(yùn)行參數(shù)的數(shù)據(jù)記錄儀扮演著至關(guān)重要的角色,在故障分析、經(jīng)驗(yàn)總結(jié)及責(zé)任判明等方面提供了有力的依據(jù)。
以往的數(shù)據(jù)記錄儀多采用Windows或者DOS操作系統(tǒng),或多或少存在著死機(jī)、數(shù)據(jù)丟包等故障現(xiàn)象。文章設(shè)計(jì)了一種基于PC/104模塊與VxWorks操作系統(tǒng)的船用燃?xì)廨啓C(jī)數(shù)據(jù)記錄儀,這種數(shù)據(jù)記錄儀采用了專門為嵌入式控制而定義的工業(yè)控制總線,各模塊之間連接緊固、不易松動,適用于強(qiáng)烈振動的惡劣環(huán)境,同時(shí)憑借高性能的微內(nèi)核wind,保證了系統(tǒng)資源的合理分配,提高了系統(tǒng)的可靠性,充分發(fā)揮了體積小,抗沖擊,抗振動,實(shí)時(shí)可靠的優(yōu)點(diǎn),為現(xiàn)場數(shù)據(jù)的實(shí)時(shí)性、真實(shí)性提供了保障,是一款新型的船用數(shù)據(jù)記錄儀,該船用數(shù)據(jù)記錄儀已通過試驗(yàn)驗(yàn)證,并正式投入使用。
1 工作原理
文章設(shè)計(jì)的燃?xì)廨啓C(jī)數(shù)據(jù)記錄儀主要實(shí)現(xiàn)了將燃?xì)廨啓C(jī)運(yùn)行時(shí)的各個參數(shù)進(jìn)行了采集、分類、壓縮、存儲、刪除等功能。為了完成以上各功能,采用了PC104總線嵌入式工控機(jī)作為硬件核心,VxWorks操作系統(tǒng)作為軟件設(shè)計(jì)平臺的模式進(jìn)行。
燃機(jī)控制系統(tǒng)不斷將燃機(jī)控制系統(tǒng)采集的模擬信號和數(shù)字信號通過RS422送往PC/104模塊,PC/104在VxWorks操作系統(tǒng)中通過Tornado軟件設(shè)置計(jì)算緩存大小并將數(shù)據(jù)分類、壓縮存儲在DOM盤中,在存儲過程中,若發(fā)現(xiàn)數(shù)據(jù)超限,將自動刪除最早日期的文件以保證新數(shù)據(jù)的記錄。
2 硬件電路設(shè)計(jì)
數(shù)據(jù)采集的應(yīng)用在當(dāng)今工業(yè)化、信息化相對發(fā)達(dá)的時(shí)代極為廣泛,并且作用日益明顯,而PC104總線規(guī)范結(jié)構(gòu)更是為了滿足當(dāng)今的工業(yè)控制領(lǐng)域的需要應(yīng)運(yùn)而生[1],因此該船用燃?xì)廨啓C(jī)數(shù)據(jù)記錄儀使用PC104總線嵌入式工控機(jī)作為核心,由以下幾部分組成:主控制板、最終存儲器、電源、擴(kuò)展口模塊及報(bào)警模塊等,同時(shí)還可以根據(jù)測試或檢驗(yàn)的需要通過處理器主板上的接口外接鼠標(biāo)鍵盤和顯示器。
主控制板采用PC/104作為主控制器,包含:PC/AT母板、CPU、可編程計(jì)數(shù)/定時(shí)器、DMA通道、中斷通道、內(nèi)存、串行借口、固態(tài)盤等。PC/104模塊功耗較低,且結(jié)構(gòu)緊湊,集成度高,安裝方便,模塊化結(jié)構(gòu)能夠滿足多種應(yīng)用的要求。
電源由主電源和備用電源組成,主電源由燃機(jī)控制系統(tǒng)提供,備用電源由電池提供,當(dāng)燃機(jī)控制系統(tǒng)供電出現(xiàn)異常時(shí)自動切換到備用電源供電,并立刻將當(dāng)前數(shù)據(jù)進(jìn)行保存。
數(shù)據(jù)記錄儀與燃機(jī)控制系統(tǒng)通過標(biāo)準(zhǔn)RS422串行總線進(jìn)行通訊,接收燃機(jī)控制系統(tǒng)采集到的數(shù)據(jù),存儲在軍用DOM盤中。
3 軟件設(shè)計(jì)
VxWorks操作系統(tǒng)是一種具有微內(nèi)核、高性能、可伸縮的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),該操作系統(tǒng)具有良好的有效性、兼容性、可裁減性以及互操作性,廣泛應(yīng)用在通信、軍事、航空等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中[2],同時(shí)因?yàn)檐浻布木o密結(jié)合,作為能完成一種或多種特定功能的計(jì)算機(jī)系統(tǒng),特別適用于要求實(shí)時(shí)的和多任務(wù)的應(yīng)用體系。因此,文章設(shè)計(jì)的燃?xì)廨啓C(jī)數(shù)據(jù)記錄儀在VxWorks平臺上配合Tornado集成開發(fā)環(huán)境使用C語言編寫了系統(tǒng)控制程序,實(shí)時(shí)接收燃機(jī)控制系統(tǒng)通過RS422串口發(fā)送來的燃機(jī)運(yùn)行數(shù)據(jù),并將數(shù)據(jù)進(jìn)行分類處理、壓縮、存儲以及刪除等功能。為了使各個環(huán)節(jié)正常工作互不影響,使用了多線程的編程思想,各部分的程序同時(shí)運(yùn)行,從而保證記錄儀能夠長期穩(wěn)定可靠的運(yùn)行,軟件結(jié)構(gòu)設(shè)計(jì)如下:
(1)程序初始化子程序:該部分主要包括RTC時(shí)鐘的初始化,根據(jù)配置文件對相應(yīng)的串口進(jìn)行初始化等。
(2)串口讀取子程序:該部分采用select機(jī)制讀取燃機(jī)控制系統(tǒng)裝置發(fā)來的數(shù)據(jù),并將接收到的數(shù)據(jù)交給數(shù)據(jù)解析模塊進(jìn)行處理。
(3)串口寫入子程序:該部分向燃機(jī)電子監(jiān)控裝置發(fā)送數(shù)據(jù)包,請求對方發(fā)送燃機(jī)運(yùn)行數(shù)據(jù)。
(4)數(shù)據(jù)協(xié)議解析子程序:該部分根據(jù)協(xié)議規(guī)則,對串口收到的數(shù)據(jù)進(jìn)行解析,并對模擬量和開關(guān)量進(jìn)行處理分類。
(5)數(shù)據(jù)記錄子程序:該部分以1Hz的頻率將運(yùn)行數(shù)據(jù)實(shí)時(shí)記錄到文件中。
(6)數(shù)據(jù)壓縮子程序:該部分負(fù)責(zé)將前一天的數(shù)據(jù)文件進(jìn)行壓縮,以節(jié)省CF卡的空間,同時(shí)標(biāo)注好正確的存儲路徑、文件名、時(shí)間等相關(guān)信息,便于文件的掃描和查詢。
(7)文件掃描刪除子程序:定時(shí)器定期掃描磁盤的剩余空間,刪除沉舊文件,保證足夠可用的磁盤空間,同時(shí)保持著當(dāng)前系統(tǒng)的最新的數(shù)據(jù)記錄。
數(shù)據(jù)記錄儀多線程編程的系統(tǒng)結(jié)構(gòu)圖如圖2所示。
周期性檢查磁盤剩余空間的程序如下:
Void periodic_delete(){
struct statfs st;
unsigned long long blocksize,totalsize,freesize;
int fd=open(\"/\",O_RDONLY,0);
FOREVER{
if(fstatfs(fd,st)==OK){
blocksize=st.f_bsize;
freesize=(blocksize*st.f_bfree)>>20;
if(debug){
cout<<\"free size:\"< } if(freesize delete_file(); } } else{ cout<<\"fstatfs error\n\"< } taskDelay(sysClkRateGet()*DELETE_PERIOD); } Close(fd); 4 結(jié)束語 PC/104嵌入式計(jì)算機(jī)模塊為系統(tǒng)設(shè)計(jì)者們提供了整套低成本、高可行性、能迅速配置成產(chǎn)品的結(jié)構(gòu)化模塊。[3]VxWorks實(shí)時(shí)操作系統(tǒng)則提供了良好的可靠性和卓越的實(shí)時(shí)性。[4]船用數(shù)據(jù)記錄儀融合了PC/104和VxWorks嵌入式的優(yōu)點(diǎn),監(jiān)控穩(wěn)定性好、精度高,為艦船動力裝置的正常運(yùn)行提供了保障,具有廣闊的應(yīng)用前景。 參考文獻(xiàn) [1]胡長碧,張冰,胡煜.基于PC/104的數(shù)據(jù)記錄儀的設(shè)計(jì)與應(yīng)用[J].航海工程,2008. [2]陳蜀 ,李鶴鳴,余瑞鋒.船舶數(shù)據(jù)記錄儀的主程序設(shè)計(jì)[J].船海工程,2006. [3]張廣瑩,徐麗娜,鄧正隆.PC/104嵌入式計(jì)算機(jī)的應(yīng)用[J].自動化技術(shù)與應(yīng)用,2000(19). [4]高磊,郝成,閆尚敏.基于VxWorks的數(shù)據(jù)采集存儲系統(tǒng)設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2011. 作者簡介:孫倩(1986-),女,工程師,研究方向:硬件電路研發(fā),數(shù)據(jù)采集。