汽車尾氣余熱熱電轉換監(jiān)控軟件設計與開發(fā)——畢業(yè)論文

上傳人:good****022 文檔編號:116787431 上傳時間:2022-07-06 格式:DOC 頁數(shù):56 大小:596KB
收藏 版權申訴 舉報 下載
汽車尾氣余熱熱電轉換監(jiān)控軟件設計與開發(fā)——畢業(yè)論文_第1頁
第1頁 / 共56頁
汽車尾氣余熱熱電轉換監(jiān)控軟件設計與開發(fā)——畢業(yè)論文_第2頁
第2頁 / 共56頁
汽車尾氣余熱熱電轉換監(jiān)控軟件設計與開發(fā)——畢業(yè)論文_第3頁
第3頁 / 共56頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《汽車尾氣余熱熱電轉換監(jiān)控軟件設計與開發(fā)——畢業(yè)論文》由會員分享,可在線閱讀,更多相關《汽車尾氣余熱熱電轉換監(jiān)控軟件設計與開發(fā)——畢業(yè)論文(56頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、武漢理工大學畢業(yè)論文(設計)1 緒論1.1 引言汽車尾氣余熱發(fā)電是一種汽車利用尾氣余熱進行發(fā)電的技術,屬于汽車部件制造技術領域,在后排氣管上安裝有能量轉換器,能量轉換器的電量輸出端通過連接器連接汽車電池的輸入端。汽車發(fā)動機工作時,通過后排氣管排放高熱量的尾氣,能量轉換器吸收熱能并轉換成電能,向電池充電。該技術有效地回收、利用了汽車殘余能量,大大地提高了能源使用效率,有利于環(huán)境保護,性能可靠。在尾氣余熱發(fā)電裝置內(nèi)由兩種金屬組成的回路中,如果兩個接觸點之間產(chǎn)生溫度差,金屬電子的狀態(tài)會發(fā)生變化形成電流,這種熱電轉換現(xiàn)象即為熱電效應。尾氣余熱發(fā)電原理就是利用不同金屬間的溫度差進行發(fā)電,將尾氣中含有的熱

2、量轉化為汽車動力來源,采用這種裝置后,預計可將汽車燃油經(jīng)濟性提高10,而且還可以減少二氧化碳等有害廢氣的排放。根據(jù)研究,汽油燃燒產(chǎn)生的能量中有70通過尾氣排放等形式散失到大氣之中,最多只有30的能量轉化為機械能,其中還有一些由于齒輪、輪胎的機械摩擦、蓄電池工作等原因而被消耗掉,最后只有20左右轉化為驅(qū)動行駛的動力。開發(fā)中的尾氣余熱發(fā)電系統(tǒng)主要采用熱電轉換技術,由不同的金屬和半導體成對組合,可以安裝在汽車下部的催化轉化器和消聲器之間,利用高溫尾氣和低溫冷卻水之間的溫度差發(fā)電,充分利用和回收熱量,提高熱效率。 熱電轉換模塊是整個汽車尾氣余熱發(fā)電系統(tǒng)的核心環(huán)節(jié),利用熱電效應將尾氣余熱轉換為電能。汽車

3、尾氣余熱發(fā)電裝置的中心環(huán)節(jié)是熱電轉換,該模塊將汽車所排放的高溫尾氣所攜帶的熱量轉換為低壓電能,發(fā)出的電能一般都為低電壓、小電流的小功率電能,不能直接應用,需要經(jīng)過DCDC升壓、儲能處理后才能正常利用。并將各小的熱電轉換模塊進行并聯(lián),以達到所需電壓及功率。1.2 研究意義隨著人們生活水平的提高,人們在交通出行上對汽車的依賴程度越來越大,而全球汽車數(shù)量的不斷增加,給世界環(huán)境帶來的危害也越來越嚴重。將熱電轉換技術運用到汽車尾氣排放系統(tǒng),將極大地減少汽車尾氣排放對環(huán)境造成的危害,并且能夠節(jié)約不可再生能源,將廢氣轉換為可再生清潔能源,可謂是一舉三得。在汽車尾氣余熱發(fā)電系統(tǒng)的研發(fā)階段,需要對系統(tǒng)的各功能模

4、塊進行實時監(jiān)測,并采集各路信號的參數(shù),傳至上位機供設計人員進行分析優(yōu)化,因此,就必須有一個完善的監(jiān)控系統(tǒng)軟件,來完成各功能模塊和上位機之間的通信。首先需要上位機通過監(jiān)控軟件向系統(tǒng)模塊發(fā)出指令,然后系統(tǒng)各模塊響應上位機的指令開始運行,同時將運行中各路信號進行采集并傳輸至上位機,實時顯示在監(jiān)控界面上,這樣研究人員表可以清楚的看到整個系統(tǒng)的運行狀況,根據(jù)異常信號分析故障、完善系統(tǒng)。1.3 發(fā)展現(xiàn)狀1.3.1 余熱發(fā)電技術發(fā)展現(xiàn)狀余熱發(fā)電的關鍵技術是熱電轉換技術,利用的是熱電效應。所謂的熱電效應,是當受熱物體中的電子,因隨著溫度梯度由高溫區(qū)往低溫區(qū)移動時,所產(chǎn)生電流或電荷堆積的一種現(xiàn)象。而這個效應的大

5、小,則是用參數(shù)Q來測量,其定義為Q=E/-dT(E為因電荷堆積產(chǎn)生的電場,dT則是溫度梯度)。兩種不同成份的導體兩端接合成回路,當接合點的溫度不同時,在回路中就會產(chǎn)生電動勢,這種現(xiàn)象稱為熱電效應,而這種電動勢稱為熱電勢。這項技術由起步到如今也經(jīng)歷了漫長的發(fā)展階段。熱電轉換技術發(fā)展至今已有半個多世紀的歷史了,而且正隨著現(xiàn)代科學技術的不斷進步而逐漸走入我們?nèi)粘I?。十九世紀六十年代,人類便開始了征服太空的計劃。從1969年的登月計劃到2001年的火星探測,幾十年中取得了很大的飛躍,這其中也有熱電轉換技術的一份功勞。利用熱電轉換技術,一枚硬幣大小的放射性同位素熱源就能夠提供長達二十年以上的連續(xù)不斷的

6、電能,這是其它任何一種能源技術所不能比擬的。美國登月計劃中“阿波羅”17號飛船就是使用了熱電轉換技術提供的電源從月球表面向地球成功地傳送了數(shù)據(jù),中央部分就是使用放射性同位素為熱源的熱電發(fā)電裝置。到1990年為止,熱電轉換技術已成功應用于美國國家宇航局的二十多次太空飛行任務中,均取得了良好的效果,其中最長的工作時間超過了15年。美國熱電直接轉換方面處于世界的領先地位,美國能源部、國防部及宇航局共同負責熱電轉換方面的研究發(fā)展工作。熱電偶轉換、熱離子轉換、磁流體發(fā)電、鐵電轉換和熱磁轉換是目前五種基本的熱電轉換方式。熱電偶是最早的熱電轉換裝置,將兩種不同材料的物質(zhì)(通常是金屬絲)連接起來,加熱結點,在

7、另兩端就能得到電動勢。這種效應是1821年發(fā)現(xiàn)的。但金屬和合金的熱電轉換效率太低,因此直到發(fā)現(xiàn)更好的熱電轉換材料半導體后熱電偶電源才投入使用,今天使用的半導體熱電偶電源已進入商業(yè)市場。另一種熱電轉換裝置是熱離子轉換器。它利用的是熱離子發(fā)射原理,當金屬溫度很高時,電子將從金屬表面被蒸發(fā)出來。最簡單的熱離子轉換器是由兩片靠的很近的金屬板構成,當然熱離子轉換器用于外層空間時,熱源可以使用太陽能、放射同位素的衰變能或核反應堆內(nèi)的裂變能??紤]到其余熱必須以輻射方式排除,而熱離子轉換器可以在比熱電偶電源或動力發(fā)電設備高得多的溫度下運行,因此只需要較小的輻射轉換器即可(熱輻射正比于絕對溫度的四次方)。體積小

8、,相對可靠的熱離子轉換器已在空間運行器上使用。鐵電轉換和熱磁轉換都利用物質(zhì)受熱后物理性質(zhì)發(fā)生的重大改變來進行熱電轉換,相應的轉換裝置是真正的熱機。在這些裝置中,既不用氣體工質(zhì)也不用電子流,而是利用原子和分子在周期性受熱時,不斷重新排列以達到發(fā)電的目的。這種金屬內(nèi)部分子重新排列或晶體結構改變的現(xiàn)象稱為二階轉變。鐵電轉變利用了介電物質(zhì)的介電常數(shù)隨溫度變化的特殊性質(zhì)(介電物質(zhì)為半導體,置于電容兩極之間以增加電容量)。熱磁轉換能與鐵電轉換能有某些相似之處,不同的是用感應電場能代替了靜電場能。因為熱電轉換有巨大的實用價值,已有的幾種熱電轉換裝置的性能和價格還不能滿足要求,所以科技人員仍在不斷努力的尋找更

9、有效更簡便的熱電轉換裝置。目前世界上較為先進的是一種堿金屬轉換元件AMTEC元件。將堿金屬高溫熱管和固體電解質(zhì)導電技術結合在一起的AMTEC元件具有熱電效率高,結構簡單和運行可靠等優(yōu)點,效率可達30%。1.3.2 監(jiān)控軟件發(fā)展現(xiàn)狀監(jiān)控軟件經(jīng)過長期的發(fā)展,目前主要有VB、VC、組態(tài)王、Lab VIEW等。其中VB和VC+因簡便熟悉而較廣泛使用,另外兩種是集成化的監(jiān)控軟件。組態(tài)王開發(fā)監(jiān)控系統(tǒng)軟件,是新型的工業(yè)自動控制系統(tǒng)以標準的工業(yè)計算機軟、硬件平臺構成的集成系統(tǒng)取代傳統(tǒng)的封閉式系統(tǒng)。它具有適應性強、開放性好、易于擴展、經(jīng)濟、開發(fā)周期短等優(yōu)點。通??梢园堰@樣的系統(tǒng)劃分為控制層、監(jiān)控層、管理層三個層

10、次結構。其中監(jiān)控層對下連接控制層,對上連接管理層,它不但實現(xiàn)對現(xiàn)場的實時監(jiān)測與控制,且在自動控制系統(tǒng)中完成上傳下達、組態(tài)開發(fā)的重要作用。尤其考慮三方面問題:畫面、數(shù)據(jù)、動畫。通過對監(jiān)控系統(tǒng)要求及實現(xiàn)功能的分析,采用組態(tài)王對監(jiān)控系統(tǒng)進行設計。組態(tài)軟件也為試驗者提供了可視化監(jiān)控畫面,有利于試驗者實時現(xiàn)場監(jiān)控。而且,它能充分利用Windows的圖形編輯功能,方便地構成監(jiān)控畫面,并以動畫方式顯示控制設備的狀態(tài),具有報警窗口、實時趨勢曲線等,可便利的生成各種報表。它還具有豐富的設備驅(qū)動程序和靈活的組態(tài)方式、數(shù)據(jù)鏈接功能。Lab VIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā)的,類似于C和

11、BASIC開發(fā)環(huán)境,但是LabVIEW與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。 與C和BASIC一樣,LabVIEW也是通用的編程系統(tǒng),有一個完成任何編程任務的龐大函數(shù)庫。LabVIEW的函數(shù)庫包括數(shù)據(jù)采集、GPIB、串口控制、數(shù)據(jù)分析、數(shù)據(jù)顯示及數(shù)據(jù)存儲,等等。LabVIEW也有傳統(tǒng)的程序調(diào)試工具,如設置斷點、以動畫方式顯示數(shù)據(jù)及其子程序(子VI)的結果、單步執(zhí)行等等,便于程序的調(diào)試。 LabVIEW(Laboratory Virtual instrument Engineering

12、 Workbench)是一種圖形化的編程語言的開發(fā)環(huán)境,它廣泛地被工業(yè)界、學術界和研究實驗室所接受,視為一個標準的數(shù)據(jù)采集和儀器控制軟件。LabVIEW集成了與滿足GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內(nèi)置了便于應用TCP/IP、ActiveX等軟件標準的庫函數(shù)。這是一個功能強大且靈活的軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。 圖形化的程序語言,又稱為“G”語言。使用這種語言編程時,基本上不寫程序代碼,取而代之的是流程圖或框圖。它盡可能利用了技術人員、科學家、工程師所熟悉的術語、圖標和概念,因此,La

13、bVIEW是一個面向最終用戶的工具。它可以增強你構建自己的科學和工程系統(tǒng)的能力,提供了實現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進行原理研究、設計、測試并實現(xiàn)儀器系統(tǒng)時,可以大大提高工作效率。 利用LabVIEW,可產(chǎn)生獨立運行的可執(zhí)行文件,它是一個真正的32位編譯器。像許多重要的軟件一樣,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多種版本。 它主要的方便就是,一個硬件的情況下,可以通過改變軟件,就可以實現(xiàn)不同的儀器儀表的功能,非常方便,是相當于軟件即硬件?,F(xiàn)在的圖形化主要是上層的系統(tǒng),國內(nèi)現(xiàn)在已經(jīng)開發(fā)出圖形化的單片機編程系統(tǒng)。1.3.3 界面設計方法發(fā)展

14、現(xiàn)狀界面的說法以往常見的是在人機工程學中?!叭藱C界面”是指人機間相互施加影響的區(qū)域,凡參與人機信息交流的一切領域都屬于人機界面。界面設計存在于人與物的信息交流1?!叭恕笔窃O計界面的一個方面,是認識的主體和設計服務的對象,而作為對象的“物”則是設計界面的另一個方面。它是包含著對象實體、環(huán)境及信息的綜合體。功能性設計界面,接受物的功能信息,操縱與控制物,同時也包括與生產(chǎn)的接口,即材料運用、科學技術的應用等等。這一界面反映著設計與人造物的協(xié)調(diào)作用。功能性界面設計要建立在符號學的基礎上。設計功能界面,不可避免地要讓使用者明白功能操作。每一操作對人來說應是符合思維邏輯的,是人性的,而對機械、電子來說則應

15、是準確的、確定無疑的,這雙方的信息傳遞是功能界面的核心內(nèi)涵2。監(jiān)控界面的設計屬于功能性界面設計,本文一下研究功能性界面設計的方法。首先要明確界面設計要完成的功能性任務,任務分析采用的技術主要有:逐步求精技術,把任務不斷劃分為子任務,直至對每個任務的表達都十分清楚;面向?qū)ο蠓治黾夹g,識別出與應用有關的所有客觀的對象以及與對象關聯(lián)的動作3。在界面設計過程中,要經(jīng)過下面幾個步驟:步驟一:建立任務的目標和意圖;步驟二:為每個目標和意圖制定特定的動作序列;步驟三:按在界面上執(zhí)行的方式對動作序列進行規(guī)約;步驟四:指明系統(tǒng)狀態(tài),即執(zhí)行動作時的界面表現(xiàn);步驟五:定義控制機制,即用戶可用的改變系統(tǒng)狀態(tài)的設備和動

16、作;步驟六:指明控制機制如何影響系統(tǒng)狀態(tài);步驟七:指明用戶如何通過界面上的信息解釋系統(tǒng)狀態(tài)。 在界面設計過程中,必須遵循界面設計的一般應原則4,其主要原則主要包括以下五點:1)向?qū)褂迷瓌t對于應用中某些部分的處理流程是固定的,用戶必須按照指定的順序輸入操作信息,為了使用戶操作得到必要的引用應該使用向?qū)?,使用戶使用功能時比較輕松明了,但是向?qū)П仨氂迷诠潭ㄌ幚砹鞒讨?,并且處理流程應該不少?個處理步驟。2)響應時間原則系統(tǒng)響應時間包括兩個方面:時間長度和時間的易變性。用戶響應時間應該適中,系統(tǒng)響應時間不應過長或過短,系統(tǒng)響應時間的易變性是指相對于平均響應時間的偏差。即使響應時間比較長,低的響應時間

17、易變性也有助于建立穩(wěn)定的節(jié)奏。 3)一致性原則在界面設計中應該保持界面的一致性。一致性既包括使用標準的控件,也指使用相同的信息表現(xiàn)方法,如在字體、標簽風格、顏色、術語、顯示錯誤信息等方面確保一致。在同一個應用中,這些信息的表現(xiàn)方式不一致,會影響這一操作人員的使用,因此應當注重在同一界面系統(tǒng)中表現(xiàn)形式的一致性。4)布局合理化原則應注重在一個窗口內(nèi)部所有控件的布局和信息組織的藝術性,使得用戶界面美觀。在一個窗口中按tab鍵,移動聚焦的順序不能雜亂無章,tab 的順序是先從上至下,再從左至右。一屏中首先應輸入的和重要信息的控件在tab順序中應當靠前,位置也應放在窗口上較醒目的位置。布局力求簡潔、有序

18、、易于操作。5)鼠標與鍵盤對應原則應遵循的是可不用鼠標的原則:應用中的功能只用鍵盤也應當可以完成,即設計的應用中還應加入一些必要的按鈕和菜單項。但是,許多鼠標的操作,如雙擊、拖動對象等,并不能簡單地用鍵盤來模擬即可實現(xiàn)。例如在一個列表框中用鼠標雙擊其中一項可以表示選中該項內(nèi)容。為了用鍵盤也能實現(xiàn)這一功能,必須在窗口中定義一個表示選中的按鈕,以作為實現(xiàn)雙擊功能的替代(或其它方式)。又如在一個窗口中有兩個數(shù)據(jù)窗口,可以用鼠標從一個數(shù)據(jù)窗口中將一項拖出然后放到另一個中。假如只用鍵盤,就應當在菜單中設置拷貝或移動的菜單項。1.4 本設計研究內(nèi)容本設計要求完成汽車尾氣余熱熱電轉換監(jiān)控軟件的設計。汽車尾氣

19、余熱發(fā)電裝置的中心環(huán)節(jié)是熱電轉換,該模塊將汽車所排放的高溫尾氣所攜帶的熱量轉換為低壓電能,發(fā)出的電能一般都為低電壓、小電流的小功率電能,不能直接應用,需要經(jīng)過DCDC升壓、儲能處理后才能正常利用。并將各小的熱電轉換模塊進行并聯(lián),以達到所需電壓及功率。本次設計主要針對汽車尾氣余熱發(fā)電系統(tǒng)的各個模塊,設計各模塊信號采集及顯示的監(jiān)控軟件。在對軟件設計的基本概念及原則有一定了解的基礎上,本設計要仔細分析監(jiān)控系統(tǒng)設計需求,選擇合適的設計方案來完成監(jiān)控軟件顯示及通信的功能。經(jīng)比較分析選擇采用VC+串口通信來實現(xiàn)通信顯示功能,采用多線程技術來實現(xiàn)多路信號同時采集。監(jiān)控系統(tǒng)分為三個界面,主界面軟件提供監(jiān)測與設

20、置兩種選擇,但只有先對系統(tǒng)進行正確的設置才能正確的監(jiān)測各模塊信號。系統(tǒng)設置子界面主要完成對通信口、數(shù)據(jù)格式及波特率的設置,以保證上位機與模塊之間通信的正常進行。系統(tǒng)檢測子界面則是執(zhí)行通信顯示的任務,將下位機的數(shù)據(jù)傳送至上位機并顯示于界面上。為了驗證軟件能否實現(xiàn)預定功能,要對軟件進行模擬調(diào)試,在設計的最后是模擬調(diào)試。使用輔助調(diào)試軟件可以方便快捷的幫助實現(xiàn)調(diào)試目的。2設計方案論證2.1軟件設計方案論證對于監(jiān)控軟件的設計,Win32下的面向?qū)ο蠊ぞ遃isual Basic和C +能開發(fā)出又保證功能,實時性又好的監(jiān)控軟件。因此,本設計對這兩種開發(fā)語言進行比較研究。2.1.1 Visual Basic程

21、序設計研究Visual Basic集成開發(fā)環(huán)境帶有一個標準的控件箱,此外Visual Basic還提供一個巨大的控件庫,這個控件庫可以滿足絕大多數(shù)常規(guī)程序開發(fā)的需要。但由于控實驗軟件的特殊性,仍然有一些需要的控件是現(xiàn)有的控件庫中不曾提供的。Visual Basic可以幫助用戶設計自己的控件,這種控件稱為用戶控件5。用戶控件以獨特的方式實現(xiàn)了對已有控件的繼承。利用這一特性可在已有控件(如Visual Basic的標準控件)的基礎上“添加”用戶所需的特殊功能得到用戶自己的控件,本軟件中需要設計兩種用戶控件。Visual Basic還支持豐富的數(shù)據(jù)類型和強大的運算能力,支持面向?qū)ο蟮某绦蛟O計,并具有

22、與其它語言和環(huán)境的良好接口。與基于命令行的應用程序相比,圖形化的軟件通常有形象生動的界面和易于理解的操作方式6??刂栖浖诒WC實時性的前提下向圖形化界面靠攏,Visual Basic開發(fā)圖形化和拖放操作的應用程序極其方便,是一種優(yōu)秀的界面開發(fā)工具。但Visual Basic的不足之處在于它的硬件訪問能力較弱,對硬件配置要求和操作系統(tǒng)的依賴性較強,這是限制它在控制領域應用的重要原因。2.1.2 C+程序設計研究C+語言是一種優(yōu)秀的面向?qū)ο蟪绦蛟O計語言,它在C語言的基礎上發(fā)展而來,但它比C語言更容易為人們學習和掌握。C+以其獨特的語言機制在計算機科學的各個領域中得到了廣泛的應用7。面向?qū)ο蟮脑O計思

23、想是在原來結構化程序設計方法基礎上的一個質(zhì)的飛躍,C+完美地體現(xiàn)了面向?qū)ο蟮母鞣N特性。 C+的設計目標,就是要讓C+既具有適合于系統(tǒng)程序設計的C語言所具有的可適應性和高效性,又能在其程序組織結構方面具有面向?qū)ο蟪绦蛟O計風格。C+所提供的抽象機制能夠被應用于那些對效率和可適應性具有極高要求的程序設計任務之中。C+的設計規(guī)則被分為基本規(guī)則、基于設計的規(guī)則、語言的技術性規(guī)則以及基于低層次程序設計的規(guī)則四個方面?;疽?guī)則強調(diào)適用于真實世界中各種應用的便捷工具,并充分考慮程序員的技術和取向。從一開始,C+面向的就是那些要做實際項目的程序員。在語言的演化過程中,來自用戶的反饋和語言實現(xiàn)者們積累的經(jīng)驗才是最

24、為重要的。由基于設計的規(guī)則,C+的一個目標就是提供更易用并具有一定承受能力的設計思想和程序設計技術,進一步提高程序的質(zhì)量。然而,C+的設計目標總還是在于要支持一定范圍內(nèi)的各種程序設計風格和設計思想。語言的技術性規(guī)則要具體結合更多關于基本目標的上下文環(huán)境來考慮。在維護一個較龐大的程序時,一個程序員不可避免的會基于某些不完整的知識來對程序作一些修改,只關注全部程序代碼中的一小部分?;诖耍珻+提供了class、namespace和訪問控制,使設計決策的各異化成為可能。由基于低層次程序設計的規(guī)則,在C+的設計中只要在不嚴重影響其對強型別檢查的支持的地方,都盡量做到與C的“source-link”方式

25、相兼容。C+與C的兼容性使得C+程序員立刻就能有一個完整的語言和工具集可用。還有兩點也很重要,一是有大量關于C的高質(zhì)量的教學素材已經(jīng)存在,二是C+程序員可以利用C+與C的兼容性而直接并有效的使用大量現(xiàn)成的程序庫8。C+是一種傳統(tǒng)的編程語言。編寫的程序具有代碼精煉、執(zhí)行效率高的優(yōu)點,同時它提供了豐富的硬件數(shù)據(jù)訪問能力。如開發(fā)數(shù)據(jù)采集、定時控制等功能,C+是理想的選擇。關于C+與Visual Basic集成的問題,這兩種語言不能混合編程,C+代碼不能直接嵌入到Visual Basic,反之亦然。2.1.3 軟件設計方案選擇 由于本次設計要求對汽車尾氣余熱發(fā)電系統(tǒng)的各路信號進行采集并處理,但Visu

26、al Basic的硬件訪問能力較弱,對硬件配置要求和操作系統(tǒng)的依賴性較強,不適合作為本次設計的編程語言。而C+編寫的程序具有代碼精煉、執(zhí)行效率高的優(yōu)點,同時它提供了豐富的硬件數(shù)據(jù)訪問能力。對于本次數(shù)據(jù)采集顯示類型的界面設計,C+是理想的選擇。故選擇C+作為本次設計的界面編程語言。2.2 通信方式論證與外界的信息交換稱為通信,基本的通信方式有并行通信和串行通信兩種。一條信息的各位數(shù)據(jù)被同時傳送的通信方式稱為并行通信。并行通信的特點是:各數(shù)據(jù)位同時傳送,傳送速度快、效率高,但有多少數(shù)據(jù)位就需多少根數(shù)據(jù)線,因此傳送成本高,且只適用于近距離(相距數(shù)米)的通信。在監(jiān)控系統(tǒng)中,上位機要同時接收下位機的多路

27、信號,采用并行通信是行不通的。本設計采用另一種通信方式,即串行通信方式。一條信息的各位數(shù)據(jù)被逐位按順序傳送的通信方式稱為串行通信。串行通信的特點是:數(shù)據(jù)位傳送,按位順序進行,最少只需一根傳輸線即可完成,成本低但傳送速度慢。串行通訊的距離可以從幾米到幾千米。本設計著重研究串行通信方式。異步串行通信示如圖1 所示:圖1 異步串行通信示意圖2.2.1 串行通信基本概念根據(jù)信息的傳送方向,串行通訊可以進一步分為單工、半雙工和全雙工三種。信息只能單向傳送為單工;信息能雙向傳送但不能同時雙向傳送稱為半雙工;信息能夠同時雙向傳送則稱為全雙工9。如圖2所示:-A-BA-BA-B Add to Project

28、- Components and Control插入即可,再將該控件從工具箱中拉到對話框中。此時,你只需要關心控件提供的對 Windows 通訊驅(qū)動程序的 API 函數(shù)的接口。換句話說,只需要設置和監(jiān)視MSComm控件的屬性和事件。在ClassWizard中為新創(chuàng)建的通信控件定義成員對象(CMSComm m_Serial),通過該對象便可以對串口屬性進行設置。打開所需串口后,需要考慮串口通信的時機。在接收或發(fā)送數(shù)據(jù)過程中,可能需要監(jiān)視并響應一些事件和錯誤,所以事件驅(qū)動是處理串行端口交互作用的一種非常有效的方法。2.3.2 在單線程中實現(xiàn)自定義的串口通信類控件簡單易用,但由于必須拿到對話框中使用

29、,在一些需要在線程中實現(xiàn)通信的應用場合,控件的使用顯得捉襟見肘。此時,若能夠按不同需要定制靈活的串口通信類將彌補控件的不足。該通信類CSimpleComm需手動加入頭文件與源文件,其基類為CObject,大致建立步驟如下:1) 打開串口,獲取串口資源句柄通信程序從CreateFile處指定串口設備及相關的操作屬性。再返回一個句柄,該句柄將被用于后續(xù)的通信操作,并貫穿整個通信過程。對于dwFlagAndAttribute參數(shù),對串口有意義的值是FILE_FLAG_OVERLAPPED,該標志表明串口采用異步通信模式,可進行重疊操作;若值為NULL,則為同步通信方式,在同步方式下,應用程序?qū)⑹冀K控

30、制程序流,直到程序結束,若遭遇通信故障等因素,將導致應用程序的永久等待,所以一般多采用異步通信。2)串口設置串口打開后,其屬性被設置為默認值,根據(jù)具體需要,讀取當前串口設備控制塊DCB設置,修改后將其寫入。再需注意異步讀寫的超時控制設置,通過COMMTIMEOUTS結構設置超時,調(diào)用SetCommTimeouts(hComm,&timeouts)將結果寫入。3)串口讀寫操作主要運用ReadFile()與WriteFile()API函數(shù),若為異步通信方式,兩函數(shù)中最后一個參數(shù)為指向OVERLAPPED結構的非空指針,在讀寫函數(shù)返回值為FALSE的情況下,調(diào)用GetLastError()函數(shù),返回

31、值為ERROR_IO_PENDING,表明I/O操作懸掛,即操作轉入后臺繼續(xù)執(zhí)。定義全局變量m_Serial作為新建通信類CSimpleComm的對象,通過調(diào)用類的成員函數(shù)即可實現(xiàn)所需串行通信功能。與上一方法相比,這種方法賦予串行通信程序設計較大的靈活性,端口的讀寫可選擇較簡單的查詢式,或通過設置與外設數(shù)據(jù)發(fā)送時間間隔TimeCycle相同的定時器:SetTimer (1,TimeCycle,NULL),進行定時讀取或發(fā)送。2.3.3 多線程下實現(xiàn)串行通信前兩種方法適用于單線程通信。在很多工業(yè)控制系統(tǒng)中,常通過擴展串口連接多個外設,各外設發(fā)送數(shù)據(jù)的重復頻率不同,要求后臺實時無差錯捕捉,采集,處

32、理,記錄各端口數(shù)據(jù),這就需要在自定義的串行通信類中創(chuàng)建端口監(jiān)視線程,以便在指定的事件發(fā)生時向相關的窗口發(fā)送通知消息。線程是程序執(zhí)行流的最小單元。一個標準的線程由線程ID,當前指令指針(PC),寄存器集合和堆棧組成。另外,線程是進程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創(chuàng)建和撤消另一個線程,同一進程中的多個線程之間可以并發(fā)執(zhí)行。 線程是程序中一個單一的順序控制流程。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。Windows內(nèi)部的搶先調(diào)度程序在活動的線

33、程之間分配CPU時間,Win 32 區(qū)分兩種不同類型的線程,一種是用戶界面線程UI,它包含消息循環(huán)或消息泵,用于處理接收到的消息;另一種是工作線程,它沒有消息循環(huán),用于執(zhí)行后臺任務。用于監(jiān)視串口事件的線程即為工作線程。多線程通信類的編寫在端口的配置,連接部分與單線程通信類相同,在端口配置完畢后,最重要的是根據(jù)實際情況,建立多線程之間的同步對象。用PostMessage()向指定窗口的消息隊列發(fā)送通知消息,相應地,需要在該窗口建立消息與成員函數(shù)間的映射,用ON_MESSAGE將消息與成員函數(shù)名關聯(lián)。BEGIN_MESSAGE_MAP (CSampleView, CView)/AFX_MSG_MA

34、P(CSampleView)ON_MESSAGE(ID_COM1_DATA, OnProcessCom1Data)ON_MESSAGE(ID_COM2_DATA, OnProcessCom2Data)./AFX_MSG_MAPEND_MESSAGE_MAP()然后在各成員函數(shù)中完成對各串口數(shù)據(jù)的接收處理,但必須保證在下一次監(jiān)測到有數(shù)據(jù)到來之前,能夠完成所有的中間處理工作。否則將造成數(shù)據(jù)的捕捉錯誤。多線程的實現(xiàn)可以使得各端口獨立,準確地實現(xiàn)串行通信,使串口通信具有更廣泛的靈活性與嚴格性,且充分利用了CPU時間。2.3.4串行通信方案選擇綜上所述,以VC+ 6.0 為工具,實現(xiàn)串行通信的三種方法各

35、有利弊。控件方式雖簡單易用,但由于必須拿到對話框中使用,限制了其應用性,在本次設計中不能完成多模塊數(shù)據(jù)接收功能;在單線程中實現(xiàn)自定義的串口通信類雖然較控件方式靈活,但仍只是用于單線程通信;汽車尾氣余熱發(fā)電系統(tǒng)的監(jiān)控界面要求同時采集四個模塊的數(shù)據(jù)(包括電壓巡檢模塊、溫度檢測模塊、熱電轉換模塊、DCDC模塊),因此多線程下的串行通信方式是最佳選擇方案。3監(jiān)控軟件設計3.1 主監(jiān)控系統(tǒng)設計要完成監(jiān)控軟件設計的任務,首先考慮界面設計。Visual C+是一種可視化設計工具,用所見即所得的方式設計軟件的界面。在Visual C+集成開發(fā)環(huán)境中新建一個標準EXE項目,向環(huán)境提供的空白窗體中添加Active

36、X控件并調(diào)整它們的外觀位置和屬性就能完成界面設計。不過這時完成的界面是一種靜止界面,不能對各種事件做出合理的反應,因而無法正常工作,讓程序工作起來是代碼設計的任務。對事件進行相應處理是Visual C+代碼設計的主要內(nèi)容。如果說窗體設計考慮的是“程序看起來是什么樣子”,代碼設計時考慮的就是“發(fā)生某事件后程序該怎么辦”。 Visual C+激活的事件類型非常豐富,包括各種鍵盤、時鐘、鼠標、系統(tǒng)等事件,代碼的任務是為這些事件規(guī)定計算機應執(zhí)行的動作,以滿足控制的需要。3.1.1 外觀設計主界面要求顯示供選擇的控件,點擊其一是完成對上位機與下位機通信的相關參數(shù)設置,點擊另一個是進入監(jiān)控子界面。選擇Fi

37、leNew,彈出“New”對話框。在“工程”下選擇“MFC AppWizardexe”,工程圖5 新建工程名命為“Converse”。如圖5示。點擊確定后在第一步中選擇“一般對話框”,點擊“完成”則建立了一個對話框。如圖6所示:圖6 建立對話框右鍵點擊對話框,在屬性設置中將對話框明名為“汽車尾氣余熱熱電轉換監(jiān)控系統(tǒng)”。如圖7所示:圖7 對話框?qū)傩栽O置向?qū)υ捒蛑刑砑影粹o,分別命名為“測試界面”和“系統(tǒng)設置”。如此,則完成了主界面的外觀設計。如圖8示:圖8主界面對話框3.1.2 程序設計雙擊“測試界面”按鈕,則轉入程序設計,我們需要將此按鈕與監(jiān)控界面對話框聯(lián)系,并打開串口。雙擊“系統(tǒng)測試”按鈕,則

38、轉入系統(tǒng)設置子界面,須將此按鈕與系統(tǒng)設置對話框相聯(lián)系。要完成此功能,具體程序見附錄。其中,當點擊“測試界面”時,將運行的主要程序如下12:void CConverseDlg:OnButtonMonitor() / TODO: Add your control notification handler code hereCString strPort;strPort.Format(COM%d,m_port);hCom=CreateFile(strPort,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,/FILE_FLAG_OVERLAPPED

39、,NULL); /打開一個通訊端口if(hCom=INVALID_HANDLE_VALUE)MessageBox(串口不存在或被其它應用程序占用!,提示,MB_OK);return; /最小化主窗口/ShowWindow(SW_MINIMIZE);/創(chuàng)建監(jiān)控窗口CMonitorDlg dlg;dlg.DoModal();當點擊“系統(tǒng)設置”時,運行的主要程序如下:void CConverseDlg:OnButtonSet() / TODO: Add your control notification handler code hereCSetDlg m_dlg;m_dlg.DoModal();3

40、.2 系統(tǒng)設置子系統(tǒng)設計3.2.1 外觀設計上位機要與下位機之間進行異步通信,必須要有共同的通信協(xié)議,包括串口選擇、波特率和幀格式等。因此,在界面的外觀上必須包含以上參數(shù)對象,其中,串口選擇以單選按鈕的形式供四選一,波特率和幀格式以組合框的形式供用戶選擇。當設定這些值后,須確認以保存并發(fā)送。除此之外,還要有編輯框形式的提示語句,以提示用戶。在左側的Converse Resources的Dialog中單擊鼠標右鍵,添加Dialog,則添加進一個對話框。如圖9所示:圖9 新建對話框?qū)芜x框、組合框、文本框、編輯框、按鈕從控件欄中拖到對話框中,如圖10所示:圖10 添加控件設置屬性將其分別命名,完成

41、后界面外觀如圖11所示:圖11 系統(tǒng)設置子界面對話框3.2.2 程序設計通訊口選擇要求用戶從四個串口中選擇一個,并將結果賦予主界面程序中的初始值。具體程序見附錄。每個通信口對應的變量相關性設置程序為:void CSetDlg:OnRadioButton1() / TODO: Add your control notification handler code heresetcom=1; m_com1.SetCheck(1);m_com2.SetCheck(0);m_com3.SetCheck(0);m_com4.SetCheck(0);GetDlgItem(IDC_EDIT_INTRO)-Se

42、tWindowText(選擇串口1作為接收熱電轉換電壓和溫度的通訊口);void CSetDlg:OnRadioButton2() / TODO: Add your control notification handler code heresetcom=2;m_com1.SetCheck(0);m_com2.SetCheck(1);m_com3.SetCheck(0);m_com4.SetCheck(0);GetDlgItem(IDC_EDIT_INTRO)-SetWindowText(選擇串口2作為接收熱電轉換電壓和溫度的通訊口);void CSetDlg:OnRadioButton3()

43、 / TODO: Add your control notification handler code heresetcom=3;m_com1.SetCheck(0);m_com2.SetCheck(0);m_com3.SetCheck(1);m_com4.SetCheck(0);GetDlgItem(IDC_EDIT_INTRO)-SetWindowText(選擇串口3作為接收熱電轉換電壓和溫度的通訊口);void CSetDlg:OnRadioButton4() / TODO: Add your control notification handler code heresetcom=4;

44、m_com1.SetCheck(0);m_com2.SetCheck(0);m_com3.SetCheck(0);m_com4.SetCheck(1);GetDlgItem(IDC_EDIT_INTRO)-SetWindowText(選擇串口4作為接收熱電轉換電壓和溫度的通訊口);選擇通信串口時,若未進行人為選擇,則默認選擇串口四,相應輸出為“0001”。對輸入進行查詢,若選擇COM1,則相應輸出為“1000”,以此相同的方式依次進行查詢。程序流程圖如圖12所示: 圖12 串口選擇程序流程圖當光標位于波特率設置組合框上時,須向用戶提供提示信息:void CSetDlg:OnSetfocusCo

45、mboBps() / TODO: Add your control notification handler code hereGetDlgItem(IDC_EDIT_INTRO)-SetWindowText(選擇接收數(shù)據(jù)的波特率,必須與下位機發(fā)送數(shù)據(jù)的波特率相同,否則無法正常接收,甚至會造成內(nèi)存錯誤);當光標位于幀設置組合框上時,須向用戶提供提示信息:void CSetDlg:OnSetfocusComboFrame() / TODO: Add your control notification handler code hereGetDlgItem(IDC_EDIT_INTRO)-SetW

46、indowText(選擇接收數(shù)據(jù)的禎格式);當串口、波特率和幀格式設置完畢以后,確認按鈕要完成保存設置的功能,具體程序如下:void CSetDlg:OnOK() / TODO: Add extra validation hereUpdateData(TRUE);CConverseDlg *m_dlg=(CConverseDlg*)AfxGetMainWnd();CString str_bps;/端口m_dlg-m_port=setcom;/協(xié)議信息if(m_ctrlframe.GetCurSel()=0)m_dlg-m_protocal.Format(45字節(jié)格式);elsem_dlg-m_

47、protocal.Format(19字節(jié)格式);/波特率信息m_ctrlbps.GetLBText(m_ctrlbps.GetCurSel(),str_bps);CDialog:OnOK();當點擊“恢復默認值”時對參數(shù)選擇默認參數(shù),程序如下:void CSetDlg:OnButtonReset() / TODO: Add your control notification handler code heresetcom=1; m_com1.SetCheck(1);m_com2.SetCheck(0);m_com3.SetCheck(0);m_com4.SetCheck(0);m_ctrlbp

48、s.SetCurSel(1);m_ctrlframe.SetCurSel(1);UpdateData(FALSE);GetDlgItem(IDC_EDIT_INTRO)-SetWindowText(已恢復為默認值);3.3 系統(tǒng)監(jiān)控子系統(tǒng)設計3.3.1 外觀設計系統(tǒng)監(jiān)控子界面要求對28路熱電小模塊轉換電壓進行巡檢,對傳輸線路的6個溫度點進行測試采樣并顯示,還要整個對熱電模塊的總的輸出電壓和電流進行檢測并顯示、對DCDC轉換的輸出電壓和電流進行檢測并顯示。點擊檢測按鈕,則下位機開始將各路信號數(shù)據(jù)傳送給上位機并顯示在監(jiān)控界面上。點擊結束檢測則下位機停止發(fā)送數(shù)據(jù)。在左側的Converse Resou

49、rces的Dialog中單擊鼠標右鍵,添加Dialog,則添加進一個對話框,將文本框、編輯框、按鈕從控件欄中拖到對話框中,設置屬性將其分別命名,完成后界面外觀如圖13所示:圖13 熱電監(jiān)測子界面對話框3.3.2 程序設計要把下位機的數(shù)據(jù)顯示在編輯框中,就需要對編輯框進行設置,進行控件與變量的相關性設置。當點擊“自動監(jiān)測”按鈕,則開始執(zhí)行下位機與上位機之間的通信,將下位機傳至上位機的數(shù)據(jù)賦予與各路信號編輯框所相關聯(lián)的變量,這樣就可將變量值顯示于編輯框中。此外還要將時間顯示在編輯框之中。根據(jù)監(jiān)控系統(tǒng)所傳輸數(shù)據(jù)的字節(jié)數(shù),我們才能選擇正確的數(shù)據(jù)傳輸格式。在串行通信中,上位機與下位機之間的數(shù)據(jù)傳輸都是以

50、幀的格式來傳輸?shù)?。?shù)據(jù)幀是數(shù)據(jù)在網(wǎng)絡上傳輸時的一個數(shù)據(jù)單元,在傳輸時,將若干幀數(shù)據(jù)打包進行傳輸。當接收方收到一個數(shù)據(jù)包,會將其解包,然后解讀并驗證數(shù)據(jù),如果不是,會丟棄掉這個數(shù)據(jù)包,不會處理數(shù)據(jù),如果是,那么就會處理數(shù)據(jù),接收后面的數(shù)據(jù)包。一“包”數(shù)據(jù)由三部分組成:包頭、數(shù)據(jù)體、包尾。包頭和包尾用來封裝數(shù)據(jù)的,當規(guī)定好通信雙方一包數(shù)據(jù)的長度后,接收方檢測到幀包的數(shù)據(jù),就會開始接收一包長度的數(shù)據(jù),并對包尾進行檢驗,若包頭和包尾都符合雙方協(xié)議,則對數(shù)據(jù)體進行檢驗13。數(shù)據(jù)體中包含校驗數(shù)據(jù),將各實際傳輸?shù)臄?shù)據(jù)依次與前一個相異或最后得到的就是校驗值。接收方接收到數(shù)據(jù)之后,就將數(shù)據(jù)體的各數(shù)據(jù)依次與前一數(shù)

51、據(jù)相異或,將得到的結果與校驗值相比較,若相同則說明數(shù)據(jù)傳輸正確,否則傳輸出錯。 在監(jiān)控系統(tǒng)界面設計中,上位機要同時接收共42路信號數(shù)據(jù),每路信號用一個字節(jié)來傳輸,再加上包頭、包尾、校驗數(shù)據(jù)各一個字節(jié),可得本串口通信的幀格式應該為45字節(jié)幀。具體程序見附錄。當點擊“自動檢測按鈕”時運行程序如下:void CMonitorDlg:OnButtonAuto() / TODO: Add your control notification handler code hereif(!autocheck)m_buttonauto.SetWindowText(停 止);autocheck=!autocheck

52、;elsem_buttonauto.SetWindowText(自動監(jiān)測);autocheck=!autocheck;當開始接收數(shù)據(jù)運行程序如下:BOOL CMonitorDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization here/初始化參數(shù)for(int i=0;i28;i+)Vi=0.00000f;for(i=0;im_protocal.Left(2); bittemp.resize(arraynum);/最大化窗口SetWindowPos(&wndTopMost,0,0,1,1,SWP_N

53、OMOVE|SWP_NOSIZE);/串口CloseHandle(m_dlg-hCom);/利用SerialPort類設置串口參數(shù)if(m_SerialPort.InitPort(this,m_dlg-m_port,m_dlg-bitfreq,N,8,1,EV_RXFLAG|EV_RXCHAR,1024)m_SerialPort.StartMonitoring();m_bSerialPortOpened=TRUE;elseAfxMessageBox(沒有發(fā)現(xiàn)此串口或串口被占用);m_bSerialPortOpened=FALSE;/顯示時間m_timer1=SetTimer(1,1000,0);return TRUE; / return TRUE unless you set the focus to a control/ EXCEPTION: OCX Property Pages should return FALSE接收數(shù)據(jù)后對數(shù)據(jù)進行校驗,首先讀取下位機發(fā)送數(shù)據(jù)的首字節(jié),若為“0 xaa”,則接收45字節(jié)數(shù)據(jù);否則,讀取下一字節(jié),直到檢測到“0 xaa”,接收45字節(jié)數(shù)據(jù)。對接收的45字節(jié)數(shù)據(jù)最后一字節(jié)進

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!