專拉力試驗機無線網絡的PC軟件設計畢業設計論文_第1頁
專拉力試驗機無線網絡的PC軟件設計畢業設計論文_第2頁
專拉力試驗機無線網絡的PC軟件設計畢業設計論文_第3頁
專拉力試驗機無線網絡的PC軟件設計畢業設計論文_第4頁
專拉力試驗機無線網絡的PC軟件設計畢業設計論文_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 南京工程學院 自動化學院 本科畢業設計(論文)題目: 拉力試驗機無線網絡的pc軟件設計 專 業: 自動化 班 級: 數控000 學 號: 000000學生姓名: 0000000 指導教師: 000000000000000 起迄日期: 2013.22013.6 設計地點: 工程實踐中心7號樓 graduation design (thesis) pc software design for tensile testing based on wireless networkby00000000supervised byassociate prof.00000000school of automa

2、tion nanjing institute of technologyjune, 2013摘 要設計拉力試驗機pc端軟件的主要目的是配合拉力試驗機下位機工作,運用無線網絡技術實現對多臺拉力試驗機的監控,對接收到的數據進行簡單處理,繪制出拉力曲線圖,并完成對數據的存儲。本文的主要內容是介紹了一種基于c+語言開發的監控軟件。對拉力試驗機的工作原理及整個系統的網絡結構進行了簡要的闡述。分析了軟件的的用戶需求、設計方法、設計思路、設計流程等。重點介紹了模塊化程序設計的方法并著重講述了各功能模塊的功能實現。按照要求,本次的軟件可分為以下幾大功能模塊,分別是串口通信模塊、顯示模塊、繪圖模塊、存儲模塊及其

3、他附加功能模塊,其中,重點講述了串口通信模塊的功能實現。在運行調試過程中,遇到的一些問題通過老師指導、查閱資料等方法得到了很好的解決。程序運行的結果基本達到了預期的效果,串口通訊可靠性滿足要求,拉力曲線圖繪制比較精確,數據的存儲功能也基本實現。但是,仍有不足之處。例如:界面美化方面有待進一步加強,軟件不夠靈活,未能實現拉力曲線圖的存儲。關鍵詞:拉力試驗機;監控軟件;c+;串口通信 abstract the main purpose of the design of tensile testing machine pc software is work with tensile testing

4、machine, computer, monitor multiple tensile testing machine with wireless network technology, a simple treatment of the received data, draw force curve, and complete the data storage. the main content of this paper is to introduce a monitoring software based on c+ language. the network structure of

5、the working principle of tensile test machine and the whole system are briefly discussed. analysis of consumer demand, the software design method, design ideas, design process. introduced the method of modular design and describes the functions of each function module realization. according to the r

6、equirement, the software can be divided into several functional modules, respectively is the serial communication module, display module, the drawing module, storage module and other additional function module, wherein, focuses on the serial communication module. in the debugging process, some of th

7、e problems encountered were obtained through the guidance of a teacher, access to information and other methods to solve good. the result of running the program basically achieve the expected results, to meet the requirements of serial communication reliability, tensile curve drawing is more accurat

8、e, but also realize the function of data storage. however, there are still shortcomings. for example: the interface landscaping should be further strengthened, the software is not flexible enough, failed to achieve the tensile curve graph storage.key words: tensile testing machine; monitoring softwa

9、re; c+; serial communication目錄第一章 緒論71.1 引言71.2 設計的目的及意義81.2.1 本次選題的意義91.2.2 軟件設計的目的91.3 國內外的研究現狀91.3.1 國外的發展現狀101.3.2 國內的發展現狀111.4 本文的結構11第二章 上位軟件的總體分析132.1 網絡結構132.1.1 zigbee簡介132.1.2 zigbee應用152.2 上位pc軟件設計分析152.2.1 需求分析152.2.2模塊化程序設計162.2.3 功能模塊的劃分172.3 設計的思路及實現的方法182.3.1 總體設計概述182.3.2 編程語言的選擇182

10、.3.3 編程的步驟182.4 本章小結19 第三章 上位軟件的具體設計203.1 軟件總體流程圖203.2串口通信的實現213.2.1 mscomm控件簡介213.2.2 利用串口控件實現串口通信243.2 人機交互界面的設計273.2.1 人機界面設計原則273.2.2 主體界面的設計293.3.3 常用控件的使用情況303.3 拉力曲線的繪制313.3.1繪圖用到的類與函數313.3.2 拉力曲線繪制的總流程圖333.4 數據的存儲343.5 本章小結36第四章 軟件功能的實現384.1 軟件調試方法384.2 軟件具體調試39第五章 結論435.1 論文總結435.2 展望435.3

11、感想44 第一章 緒論1.1 引言試驗機是試驗、檢測材料(金屬材料、非金屬材料)、零部件、構件和結構的強度、剛度、硬度、彈性、塑性、韌性、延性和表面與內部缺陷的儀器設備、系統或裝置。大多數試驗機是集機一光一電一液于一體的技術密集型高科技產品,多數產品均屬于計量器具。在工業的發展過程中,新材料,新工藝,新產品的不斷出現。為了判斷材料的力學性能,產品的結構性能,就需要相應的試驗設備以及材料試驗方法,于是拉力試驗機應運而生。第一臺拉力試驗機誕生于200年前的西歐,采用的機械杠桿,砝碼加荷原理制成,用以測定鋼鐵和其他金屬材料的抗拉強度試驗。隨著材料科學和材料力學的研究,拉力試驗機逐漸成為一種專門用于研

12、究各類材料機械性能試驗,工藝性能,結構強度的工具。二戰以后,科學技術迅猛發展,促進了各國試驗機產業的發展和技術改革。拉力試驗機主要由機械部分,數據采集部分,私服驅動部分,數據處理部分等組成。隨著科技的發展拉伸試驗機經歷了機械式拉力試驗機,電液伺服拉力試驗機(如圖1.1),到今天的微機控制電子萬能拉力試驗機主要的三個階段。 圖1.1 waw-d系列微機控制電液伺服萬能試驗機 隨著信息技術等科技的高速發展,拉力試驗機在軟硬件方面也出現的新的發展趨勢。由于微電子技術的快速發展,微處理器的速度越來越快,價格越來越低,已被廣泛應用于拉力試驗機中,使得一些原本由硬件完成的功能,可以通過軟件來實現。甚至許多

13、原來用硬件電路難以解訣或根本無法解決的問題,也可以采用軟件技術很好地加以解決。電子萬能試驗機(如圖1.2)就是一種廣泛使用的標準測試設備,在各類材料的質量檢驗、材料科學研究和實驗教學環節,都需要用它進行材料的力學性能測試。他們就是利用計算機來控制試驗機的測試過程,并用計算機來采集試驗時的各種傳感器的數據,然后在計算機上實時顯示,在試驗結束后試驗機可以將數據進行各種處理,從而得到例如彈性模量、強度極限、屈服極限等材料參數,同時還可以通過計算機來進行各種精確的閉環控制方式,例如位移控制、應變控制、應力控制等。 圖1.2 微機控制電子萬能試驗機1.2 設計的目的及意義拉力試驗機廣泛應于用工礦企業、計

14、量、學校的現場和實驗室,其應用領域涉及到機械、冶金、建筑、航空、航天、軍工、交通、運輸、質檢、計量、教育、醫療等各行各業。因此,試驗機在國民經濟中占有相當重要的地位,它的發展水平在某種程度上反映了一個國家工業發展的水平。試驗技術和試驗機是現代科學技術不可缺少的重要組成部分,所以對試驗機的研究具有重大意義的。1.2.1 本次選題的意義由計算機參與的控制系統是一種軟件和硬件相結合的控制系統,其優勢相對于傳統的控制系統而言,是相當明顯的。首先,它可以完成比較復雜的控制過程;其次,隨著計算機產業的飛速發展,硬件產品的成本逐年下降,所以可以以較小的造價實現更為全面的功能,能夠完成復雜試驗過程的控制系統。

15、此外,計算機參與構成的控制系統具有試驗結果的存儲和分析功能,從而使此類系統能為研究人員提供及時準確的試驗數據和結果分析,可以大大縮短試驗周期,提高了試驗效率。因此,開發拉力試驗機pc端軟件的意義主要體現在以下兩方面: 1、拉力試驗機計pc端軟件可以充分發揮最新計算機產品所帶來的海量的存儲空間、快速的cpu運算速度所帶來的性能優勢,進行大量的數據存儲,完成高速率的運算處理,最大限度地保證了系統擁有高性能的硬件基礎。 2、高級語言開發出來的、易于操作的人機交互界面,可以為試驗人員提供一個友好、明晰的操作環境,通過該界面,試驗操作人員能方便地選擇輸入試驗控制參數,控制試驗的開始和終止,實時觀察試驗的

16、進程。在試驗結束后,還可以由計算機處理試驗數據繪制拉力曲線圖,并將數據存儲,試驗人員可以調出以前的試驗數據,以供研究,還可以根據研究的需要,編制相應程序,對有關數據進行處理,在計算機的協助下,快速準確的得到試驗結果。1.2.2 軟件設計的目的 本課題研究的主要目的在于結合現有的試驗設備,開發出一種成本低、性能穩定、操作簡明的拉力試驗機pc端軟件,以改進此類試驗的控制手段。通過計算機軟件控制試驗的過程、存儲試驗數據,繪制拉力曲線圖,達到其增強數據處理的能力,為試驗人員提供高效精確的試驗監控系統,減輕試驗人員的勞動強度,縮短試驗周期的目的,使拉力試驗滿足工作的需求。1.3 國內外的研究現狀最早的拉

17、力試驗機對試驗過程的控制多數采用傳統的機電控制手段實現,此類設備中操作過程煩瑣、試驗精度不高、試驗數據的保存不便、處理不及時,在一定程度限制了試驗機的使用和發展。伴隨現場總線的問世,過程測控儀表發展歷程出現了重大轉折和難得機遇。現場總線的出現,為儀器儀表的更新換代、產品升級以及實現進一步的高精度、高性能提供了巨大動力和發展空間。一臺基于std總線微機控制的拉力試驗機的原理如下:由力傳感器和位移傳感器把拉伸試驗過程中采集到的電信號傳到std總線工業控制機的前置放大電路, 經前置放大電路一級放大之后, 傳送到模/數轉換器, 經過模擬量向數字量的轉換, 電信號轉變成數據, 同時又被二級放大, 再經由

18、rs232c串行接口, 傳入計算機, 實現計算機的自動控制。如圖1: 采用這種基于總線微機控制的拉力試驗機,使得拉力試驗的工作更加可靠,所得的數據更加準確。本系統相比普通拉力試驗機能很好實現基本功能以外,還具有以下的特點:1、 原始拉伸過程的再現:由于在拉伸過程中存儲了6000多個原始拉伸采樣點, 從而可實現拉伸過程的再現, 為日后的科研研究提供物質基礎。2、代碼設計:由于采用了標準碼輸入, 從而簡化了漢字輸入,提高了整個系統的運行時間。目前,隨著計算機技術的普及,計算機硬件成本的降低和計算機軟硬件技術的發展,利用pc機實現較高性能的拉力試驗控制系統成為發展的方向。1.3.1 國外的發展現狀

19、國外拉力試驗機經過一百多年的發展沉淀,拉力試驗機的控制測量和記錄系統,廣泛采用了電子技術,計算機技術,使拉力試驗機的性能得到很大的提高。比較有代表性的是德國,美國,以及日本等一些企業。而電子萬能試驗機經過四十年的發展,先后推出了四代產品:第一代為電子管與晶體管時代,第二代為集成電路模擬時代,第三代為數字時代,第四代為計算機時代。比較有代表性的是美國的英斯特朗(instron)公司,德國的茨維克(zwiek)公司、德國申克(schenck)公司和美國的mts公司等。長期以來,試驗機一直是歐美對我國尖端科研課題限制出口的產品。1.3.2 國內的發展現狀 我國的國防科技工業和其它部門的科研院所不能直

20、接進口某些關鍵材料試驗的儀器設備。所以,要發展中國的試驗機產業,就必須走自主創新的道路。 試驗機行業在我國已有五十多年的發展史,其發源地在我國的東北吉林省長春市。隨著各行各業對試驗機產品需求的增長,我國生產制造水平的不斷提高和測試技術的飛速發展,目前生產試驗機的公司和企業已遍布全國各地,有代表性的試驗機廠家是深圳新三思集團有限公司、濟南試金集團有限公司、長春試驗機研究所等。它們生產著幾百種規格、型號的試驗機產品,有的試驗機產品已出口到國外,遠銷到亞洲和歐美市場。 目前,國內的試驗機廠家的pc端拉力試驗機軟件,有自己開發的,有購買專門從事試驗機軟件開發的公司的,也有引進國外公司的。總體來說,各有

21、千秋,有的功能簡單但操作方便,有的功能強大但操作復雜。其實我國的試驗機軟件技術水平是相當不錯的,早在1996年,在上海多國儀器儀表展覽會上,新三思公司和美國mts公司在中國大陸同期推出基于windows系統平臺下的試驗軟件。我國的試驗機從功能性、適用性等方面都緊隨國外試驗機行業,如新三思集團公司前兩年推出的 powertestv3.o試驗軟件,功能更強大、操作更人性化,獲得了國內廣大用戶的一致好評。1.4 本文的結構 本文以拉力試驗機的研發工程項目作為應用背景,對拉力試驗機無線網絡的pc軟件進行了設計。全文共分為五章,各章的主要內容如下:第一章扼要地介紹了拉力試驗機的工業概念和它在國內外的發展

22、、基本工作原理以及本課題的研究意義和目的;第二章介紹了拉力測試系統的無線網絡結構,分析了用戶需求并提出了用模塊化程序設計完成此次的軟件設計。接下來就劃分了各功能模塊,給出軟件設計的思路及實現方法;第三章則詳細講了各功能模塊的實現,對其中的串口通信模塊的實現進行了重筆墨的敘述。第四章是軟件功能的實現和調試,介紹了幾種常用的調試方法,用圖片的方式詳細給出了軟件調試的過程和結果;第五章總結了全文的研究工作。 第二章 上位軟件的總體分析2.1 網絡結構本課題的拉力試驗機系統所采用的是無線網絡結構,運用的是無線網絡中目前比較流行的zigbee無線網絡技術。2.1.1 zigbee簡介zigbee是基于i

23、eee802.15.4標準的低功耗域網協議。根據這個協議規定,zigbee技術是一種短距離、低功耗的無線通信技術。與移動通信的cdma網或gsm網不同的是,zigbee網絡主要是為工業現場自動化控制數據傳輸而建立,而移動通信網主要是為語音通信而建立,每個基站價值一般都在百萬元人民幣以上,而每個zigbee“基站”卻不到1000元人民幣。每個zigbee網絡節點不僅本身可以作為監控對象,例如其所連接的傳感器直接進行數據采集和監控,還可以自動中轉別的網絡節點傳過來的數據資料。下圖為zigbee的網狀結構圖(圖2.1.1)。 圖2.1.1 zigbee的網狀結構圖zigbee網絡相比于藍牙跟wifi

24、的優勢體現在:低功耗。在低耗電待機模式下,2節5號干電池可支持1個節點工作624個月,甚至更長。這是zigbee的突出優勢。相比較,藍牙能工作數周、wifi只可工作數小時。低成本。通過大幅簡化協議(不到藍牙的1/10),降低了對通信控制器的要求,按預測分析,以8051的8位微控制器測算,全功能的主節點需要32kb代碼,子功能節點少至4kb代碼,而且zigbee免協議專利費。每塊芯片的價格大約為2美元。低速率。zigbee工作在20250kbps的速率,分別提供250 kbps(2.4ghz)、40kbps(915 mhz)和20kbps(868 mhz)的原始數據吞吐率,滿足低速率傳輸數據的應

25、用需求。近距離。傳輸范圍一般介于10100m之間,在增加發射功率后,亦可增加到13km。這指的是相鄰節點間的距離。如果通過路由和節點間通信的接力,傳輸距離將可以更遠。短時延。zigbee的響應速度較快,一般從睡眠轉入工作狀態只需15ms,節點連接進入網絡只需30ms,進一步節省了電能。相比較,藍牙需要310s、wifi 需要3 s。高容量。zigbee可采用星狀、片狀和網狀網絡結構,由一個主節點管理若干子節點,最多一個主節點可管理254個子節點;同時主節點還可由上一層網絡節點管理,最多可組成65000 個節點的大網。高安全。zigbee提供了三級安全模式,包括無安全設定、使用訪問控制清單(ac

26、cess control list, acl) 防止非法獲取數據以及采用高級加密標準(aes 128)的對稱密碼,以靈活確定其安全屬性。簡單的說,zigbee是一種高可靠的無線網絡,類似于cdma和gsm網絡。zigbee數傳模塊類似于移動網絡基站。通訊距離從標準的75m到幾百米、幾公里,并且支持無限擴展。下圖2.1.2展示的zigbee無線網絡模塊。 圖2.1.2 zigbee無線模塊2.1.2 zigbee應用本課題中,多臺拉力試驗機所測得的試驗數據經過zigbee無線網絡傳到系統中的無線接收模塊。無線接收模塊通過usb接口將得到的數據傳送給數據處理模塊,再由數據處理模塊對數據進行一系列的

27、處理,并通過串口將數據上傳到pc端,通過pc端的拉力試驗監控軟件實現對多臺拉力試驗機數據的顯示,繪圖,保存等一系列的處理。從而使整個系統達到了拉力試驗的要求。本人畢業設計所要完成的工作就是對拉力試驗機pc端軟件的設計。整個系統形象的結構示意圖如圖2.1.3 圖2.1.3 系統結構示意圖2.2 上位pc軟件設計分析2.2.1 需求分析pc軟件應該包括串口通信、人機界面、數據顯示、圖形繪制、數據儲存等功能。 串口通信作為一種基本而又靈活方便的通信方式,它被廣泛應用于工業控制與自動控制中,它不僅沒有因為時代的進步而遭淘汰,反而在規格上越來越完善,應用也越來越廣泛。本軟件就是運用串口實現上下位機之間的

28、通信的。要求則是能完成數據的接收,并且可以在界面上修改串口傳輸的參數。人機界面是工業控制軟件中的重要組成部分,通過顯示器、鍵盤和鼠標,實現人機對話功能和操作人員對控制系統操作的干預。本軟件對人機界面的需求是界面友好,易于操作。圖形繪制是工業控制軟件中最重要的內容,包括控制軟件總貌顯示、工藝流程圖畫面、系統實時數據顯示等。工業圖形的繪制通常是以坐標系的形式動態地顯示圖形的變化,并且操作面板符合操作人員的習慣。本軟件對圖形界面的需求是,能夠準確顯示拉力曲線圖,直觀地觀察到拉力試驗的過程。數據顯示一般用編輯框實現,將試驗的內容以數據的形式顯示出來有利于保證數據的真實性和準確性,防止由于人為的種種原因

29、造成數據錯誤。本軟件對數據顯示的要求是可以將試驗數據顯示在界面上,并能顯示是哪臺設備發來的數據。數據存儲是控制軟件的重要組成部分,一般的工業控制軟件會將數據導入數據庫,這樣有利于數據的安全性和可靠性。但考慮到種種的原因,本軟件最終是將數據儲存儲在一個指定的.txt文檔中,比較簡單的完成了對數據的保存。2.2.2模塊化程序設計 一個系統是否能夠正常地運行,不但取決于硬件設計的合理性和可靠性,同時還要看系統的軟件能否可靠的運行,軟件功能是否能夠滿足用戶的需求。工業控制軟件的開發所遵循的一個重要原則是軟件能夠很好的和硬件相配合,可靠有效地完成對硬件的信息采集和控制。 在軟件設計過程中,當用計算機高級

30、語言進行程序設計時,對于完成大規模的程序設計,往往按其問題的需要,將程序劃分成若干段去編寫。或者是對于那些重復使用的程序段,將其進行獨立設計。使其達到計算機可以重復執行,而設計人員又不必重復去編寫的目的。這樣,可以使更多人參與編寫,同時又避免因重復設計、交叉設計產生的錯誤。這樣劃分的程序段落被稱為程序模塊。以特定的規則將程序模塊組合起來,這種程序設計的方式被稱為程序模塊化程序設計。各種高級語言在進行模塊化程序設計時,雖然解決問題所采取的方式、方法有所不同,但所要達到的目的卻是一致的,而且在其模塊的定義、調用方式、參數傳遞等等方面,其實質性的問題也是一致的。各種計算機高級語言對于程序模塊的編寫方

31、式和使用方法都各自的規范。模塊化結構的程序的共同點是:(l)必須有也只能有一個主控程序模塊;(2)程序模塊具有獨立性,主控程序可以直接或間接的調用其余的模塊;(3)程序模塊(主控程序模塊)之間也存在調用與被調用的關系;(4)任何一個程序模塊調用另一個程序模塊被調用的程序模塊執行完畢后,必須返回其調用程序的下一個執行點;(5)從主控程序開始,在其內終止。2.2.3 功能模塊的劃分根據用戶需求和測試系統的要求,各功能模塊可劃分為:拉力試驗機數據接收顯示模塊、串口參數輸入模塊、拉力曲線繪制模塊以及一些附加功能模塊。如圖2.2.3 圖2.2.3 程序模塊結構劃分圖(1)通信模塊 pc機和下位機通訊時,

32、需要設置串口端口號,串口波特率等參數。本模塊主要負責提供串口參數設置界面,用戶設置完成后點擊打開串口,模塊將相關參數傳遞給串口控件。(2)存儲顯示模塊 設置完串口參數后,下位機發送的數據經串口傳送給pc軟件。根據數據前的id信息,按要求顯示該組的數據。顯示模塊提供給用戶一個比較友好的界面,讓數據更加生動直觀的顯示出來,同時數據將被保存在一個.txt文檔中。(3) 繪圖模塊數據傳上來之后,數據顯示模塊開始顯示數據,對應的,拉力曲線繪制模塊開始繪制拉力曲線圖。 (4)附加功能模塊 附加功能模塊包括,翻看以前的數據、清空接收區、關閉程序、停止顯示等功能。在測試系統中起輔助作用,為軟件使用者提供更全面

33、的功能服務。2.3 設計的思路及實現的方法2.3.1 總體設計概述 本軟件主要完成對多臺拉力試驗機進行數據采集,繪出拉力曲線圖,被對接收到的數據進行存儲。第一步:用戶使用pc端軟件的人機界面對串口的參數進行設置。第二步:打開串口,開始接收數據。每組數據最前面對應各拉力試驗機的id號,以便確定是哪臺拉力試驗機正在工作并上傳數據。第三步:軟件對接收到的數據進行處理,并在人機界面繪圖框里繪制拉力曲線圖。第四步:對拉力實驗的數據進行儲存,數據存放在對應文件夾里的txt.文檔中,以便隨時查看。2.3.2 編程語言的選擇 本系統的pc端軟件采用c+作為開發語言。使用軟開發工具是microsoft visu

34、al c+ 6.0,c+在c 語言的基礎上,增加了對面向對象編程、類屬編程、數據抽象等技術的支持,還對c 語言進行了非面向對象的擴充。使用c+語言進行程序設計可以獲得可重用性、可靠性、連續性、訪問控制、繼承性以及多態性等優勢。2.3.3 編程的步驟 確定了課題任務,軟件工作模式后經過整理。確定了本次上位機軟件軟件開發流程步驟如圖2.2.2所示。 確定課題任務,確定程序模塊 第一步: 人機界面設計 第二步: 串口通信實現 第三步: 編寫各功能模塊程序代碼 第四步: 程序調試 第五步: 生成.exe可執行文件第六步: 圖2.2.2 編程的步驟圖2.4 本章小結在本章中共分三小節分別介紹了拉力試驗機

35、的無線網絡結構、上位軟件設計分析和軟件實現的思路和方法。近年來,隨著無線網絡技術的日益發展,無線網絡的應用越來越被各行各業所接受。由于無線網絡系統具有安裝方便、靈活性強、綜合成本低、性價比高和易擴展、易維護等特性,使得逐漸被廣大用戶所青睞。本次課題中的拉力試驗機系統運用的zigbee無線網絡技術是一種相比于wifi和藍牙等一些常見的無線網絡技術更有競爭力的無線網絡技術。軟件設計分析則從軟件的需求講起,分析了用戶需求和需要具有的功能。通過分析找到了適合本次課題的軟件設計方法,即模塊化程序設計。此小節介紹了模塊化程序設計的概念和特點,最后將本次的軟件設計分為四個模塊實現,在下面的章節里將講到具體的

36、實現方法。第三小結主要講解了本次軟件設計的思路及實現方法,簡單介紹了c+用于編寫上位機軟件的優勢。最后給出了軟件編程的步驟圖。 第三章 上位軟件的具體設計3.1 軟件總體流程圖開始設置串口并打開串口接收請求消息接收下位機信息n*start?y顯示設備號準備接收數據接收數據,顯示并繪圖n end?y 結束 圖3.1.1 軟件運行的總體流程圖3.2串口通信的實現 隨著計算機的普及,計算機網絡和多微機系統的廣泛應用,盡管當今usb通信技術和以太網技術快速發展,然而串口通信技術始終以其連接簡便,價格低廉,穩定可靠等優點,在計算機通信領域占有一席之地。本次畢業設計所采用就是串行通信(serial com

37、munication )的方式。vc+是新一代面向對象的可視化開發工具,提供了良好的界面設計能力,在pc機的串口通信方面有很強的功能。對于從事機械行業的人來說,熟悉基于rs232串口通信的高級語言編程方法顯得十分必要的。目前win32 中基于vc + + 6. 0 的常用串口通信程序一般可以用兩種方法實現: 利用mscomm activex 串行通信控件; 使用win2dows api 通信函數。雖然在windows下win32api提供了使用文件操作方式的函數進行串口操作的方法,但是在編程實現上還是比較復雜。windows平臺先進的activex技術使得對串口編程不再需要處理煩瑣的細節。利用

38、已有的axtivex控件,只需要編寫少量的代碼,就可以輕松高效地完成任務。因此程序員不需要花時間去了解復雜的api函數,只需要利用mscomm控件就可實現串口編程。3.2.1 mscomm控件簡介mscomm 通信控件是微軟公司開發的專門用于串行通信的控件。它是高級語言編寫的串行通信程序和pc串口之間的橋梁。通過這個橋梁,使得開發串口通信程序的工作變得簡單容易。設置幾個控件屬性,然后添加控件的事件響應代碼,就可以使串口按照要求進行工作。mscomm控件的大部分控件屬性是可讀可寫的。當對其進行寫入操作時,是在設置屬性的新值。當讀屬性時,可以讀出該屬性的當前設置值。在visual c+中,對控件的

39、屬性設定都是通過特定的函數來實現的,這些函數都是cmscomm類的成員函數,當聲明了一個cmscomm類的實例后,就可以對該實例使用“.”操作符加成員函數的方法來訪問控件的屬性了。在使用串口對象之前,首先要了解一下控件的一些屬性。下面介紹一些本次畢業設計用到的,比較常用的mscomm控件的屬性,圖3.1.1為串口控件的圖標及它的屬性表。1、 commport 屬性通過設置該屬性值,可以決定串口通信使用的串口編號。讀取該屬性值可以獲取當前程序使用的串口編號。使用如下兩個函數來操作該屬性:void setcommport(short nnewvalue); /設置串口編號short getcomm

40、port(); /返回正在使用的串口編號nnewvalue可以設置成從116 的任何數(默認值為1),對應使用的串口號為com1com16.但是如果用portopen 屬性打開一個并不存在的端口時,mscomm 控件會產生錯誤68(設備無效)。打開串口之前必須設置好串口號。2、 settings 屬性該屬性用于設置并返回數據傳輸速率、奇偶校驗、數據比特、停止比特參數。使用如下兩個函數來操作該屬性: void setsettings(lpctstr lpsznewvalue),/設置通信參數,由lpsznewvalue來表示cstring getsettings(); /讀取當前串口通信參數使用

41、字符串類型來設置該屬性,lpsznewvalue的格式如下:bbbb,p,d,s其中bbbb是波特率(9600為默認值),p為奇偶效驗類型(n為默認值),d為數據位數(8為默認值),s為停止位數(1為默認值)例如執行m_comm.setsettings(9600,n,8,1); /將串口波特率設置為9600bps,無校驗,8 位數據位,1 位停止位。3、 portopen屬性設置該屬性可以打開或關閉串口。使用如下兩個函數來操作該屬性;void setportopen(bool bnewvalue); /打開或關閉串口bool getportopen(); /讀取串口狀態,即狀態為打開還是關閉由

42、bnewvalue決定打開還是關閉串口,為flash時為關閉串口。在使用串口之前應通過設置該屬性來打開串口,而退出串口通信時應該關閉串口,以釋放程序占用的串口資源。4、 input屬性通過操作該屬性值可以從串口通信輸入緩存區來獲取數據。使用如下函數來操作該屬性;variant getinput();執行該函數后,返回并刪除接收緩存區中的數據。默認情況下讀取緩存區里的全部內容,若設置inputlen屬性值大于0,則讀取的字符數量由inputlen屬性值決定。5、 inputlen屬性當使用getinput()函數從輸入緩存區讀讀取數據時,該屬性決定了一次讀取的字節數。使用如下函數來操作該屬性:v

43、oid setinputlen(short nnewvalue); /設置輸入緩存區中一次讀出的字節數short getinputlen(); /獲取當前從輸入緩存區中一次讀出的字節數該屬性的默認值為0,即讀取整個緩存區中的內容。6、 inputmode屬性該屬性用于設置或讀出getinput()函數從輸入緩存區讀取數據時的讀取方式。使用如下的函數操作該屬性:void setinputmode(long nnewvalue); /設置輸入緩存區中讀取數據的方式long getinputmode(); /獲取當前從輸入緩存區中讀取數據的方式該屬性的值為0(默認值)時,表示以文本的方式從輸入緩存區

44、讀取數據;該屬性為1時,表示以二進制方式從輸入緩存區中讀取數據。7、 inbuffersize屬性使用該屬性來設置或讀出串行通信輸入緩存區的大小。使用如下函數來操作該屬性:void setinbuffersize(short nnewvalue); /設置輸入緩存區的大小short getinbuffersize(); /讀取輸入緩沖區的大小設置值 該屬性的默認值為1024.單位是字節,即輸入緩存區可緩存1024字節數據 。8、 inbuffercount屬性使用getinbuffercount()函數可以返回當前緩沖區中可以讀取的有效數據個數,以字節為單位。使用如下函數來操作該屬性:shor

45、t getinbuffercount(); /獲取當前輸入緩存區中待讀取數據的個數void setinbuffercount(short nnewvalue);/設置當前輸入緩沖區代讀取數據的個數使用setinbuffercount()函數,參數nnewvalue設為0時,可將緩沖區清空,除0外的參數都有可能導致函數出錯。9、 rthreshold屬性該屬性代表一個閾值。當接收緩存區中的字符數達到該閾值時,mscomm控件就會產生oncomm時間,并且commevent屬性會被設置為comevreceive,即接收事件。使用如下函數來操作該屬性:void setrthreshold(short

46、 nnewvalue); /設置接收緩存區產生oncomm事件的閾值short getrthreshold() ; /獲取接收緩存區產生oncomm事件的閾值 圖3.2.1 mscomm控件圖標及其屬性表 3.2.2 利用串口控件實現串口通信用串口控件實現串口通信大概的流程為: 圖3.2.2 串口通信流程圖 對其中幾個重要環節的敘述如下:1、 變量的聲明變量包括主界面的成員變量和設置對話框的成員變量。在主界面對話框的頭文件commdlg.h中聲明這些變量。首先應該在頭文件的首部增加如下包含文件:#include “mscomm.h” /引用mscomm控件類然后手工在類構造中聲明成員變量:pu

47、blic:ccomboboxm_speed; /通信波特率ccomboboxm_com; /串口號碼cmscommm_comm; /聲明m_comm變量為cmscomm類型另外需要使用visual c+類向導自動創建靜態文本、按鈕和編輯框的關聯成員變量,如圖3.2.2 圖3.2.2 控件成員變量聲明2、 串口初始化程序的開發在“classview”中,單擊“commdlg”類名前的“+”,展開該類,找到oninitdialog()并雙擊oninitdialog(),則打開commdlg.cpp文件并顯示出該函數commdlg:oninitdialog()的定義(函數名和函數體)。在commdl

48、g:oninitdialog()函數中添加串口初始化程序代碼。具體代碼見附件。3、 設置串口本次串口參數設置主要是兩個,串口號的選擇以及波特率的選擇。至于其他的串口參數(奇偶校驗類型、停止位數、數據位數)在本軟件中不太用得到就沒放在對話框上,用的是串口控件默認的參數,如遇特殊情況可在程序中更改。4、 串口接收程序的開發mscomm控件的串口接收程序,一般是采用事件驅動方式,即消息驅動。當串口接收到數據時,則發生接收事件并發出消息,windows系統的消息機制是應用程序能響應消息,即自動調用消息的響應函數并完成數據的處理。因此需要建立mscomm控件的消息機制即啟用mscomm控件的消息機制,需

49、要編寫mscomm控件的事件消息響應處理函數來完成串口接收程序的開發。其開發的過程為以下兩個步驟:步驟1:添加串口事件消息響應處理函數,實現mscomm控件的消息機制建立。 步驟2:添加串口事件消息響應處理函數的程序代碼,即編寫串口接收數據處理程序。3.2 人機交互界面的設計 人機界面(human一machine interface)是指人和機器進行交互的操作方式,即用戶與機器相互傳遞信息的媒介,其中包括信息的輸入和輸出。好的人機界面美觀易懂、操作簡單且具有引導功能,使用戶感覺愉快、增強興趣,從而提高使用效率,如圖3.2 圖3.2 交互界面3.2.1 人機界面設計原則用戶界面應該直觀、賞心悅目

50、,用戶易于使用。程序設計時要考慮界面中各種必需的元素,不同的元素之間的重要性和相互之間的聯系,在屏幕上將顏色,文字,控件,框架等合理組合,一般遵循以下幾條原則:(l)通信功能作為界面設計的核心人機界面的關鍵是使人與計算機之間能夠準確的交流信息。一方面,人向計算機輸入時應當盡量采用自然的方式;另一方面,機器向人傳遞的信息必須準確,不致引起誤解和混亂。另外,不要把內部的處理、加工與人機界面混在一起,以免相互干擾,影響速度,增加復雜性。(2)操作通用性根據程序功能,將所需要的操作分割成不同的界面,為用戶提供菜單,命令按鈕,組合框,對話框等易于使用的界面控件。使用戶看到程序界面能基本了解該采取何種操作

51、。(3)合理安排控件位置將控件適當分組,把功能相近或密切相關的控件劃為一個邏輯組,放在一起,便于操作。控件的安排應按照人們從左到右,從上到下的閱讀習慣,按照主次順序放置,使界面易識別,方便自然,減少誤操作的發生。(4)界面一致性為體現整個程序的協調性,不影響應用程序的可用性,應在程序中保持界面的一致性。如合理設置控件的大小,多種控件一起使用時盡可能使它們的風格(例如顏色)保持一致,在菜單和聯機幫助中使用相同的術語等等。在確定設計思路時,要堅持用一種風格貫穿整個應用程序的始終,完成整個程序的設計。(5)界面簡潔明了在界面的空間使用上,應當形成一種整潔,簡單明了的布局。同時,合理使用窗體控件之間以

52、及控件四周的空白區域,有助于突出元素和改善可用性。(6)容錯性軟件應該有較好的容錯性,對用戶的誤操作有相應的信息提示,保證軟件的正常運行。(7)形式與內容的統一設計界面時將美的原則和實用性相結合,合理利用顏色,圖像和顯示效果來達成內容與形式的統一。本次軟件運行之后人機界面的效果圖如下: 圖3.2.1 人機界面最終效果圖3.2.2 主體界面的設計 設計思路:主體界面是用戶接觸最多的界面,所以設計是應考慮測試結果要在主要地方用比較醒目的方式顯示出來。操作命令按鈕名稱要易懂,布局合理。操作流程盡量簡單。主體界面是上位機軟件的主體顯示窗口,包含:系統標題、數據顯示區域、圖形顯示區域、用于操作區域(包括

53、命令按鈕,串口參數設置)、附加功能顯示區域(包括各種命令按鈕),本次上位軟件的主界面如圖3.3.2所示。具體步驟如下: 第一步:使用vc+6.0創建基于對話框的mfc程序后即可自動生成一個主題對話框。刪除上面的static控件和確定取消按鈕。 第二步:添加active 控件。在本上位機軟件中用到了mscomm 控件。在使用之前必須將此控件添加到工程中。打開工程,一次點擊項目 類向導 添加類activex 控件中的mfc類選擇( microsoft communications control, version 6.0 ;)選中后,再分別將要使用的類添加到工程中。然后在主對話框上點擊右鍵選擇插入active控件,將其插入主對話框上。(注:有電腦沒法添加此控件的,需要打開windows的cmd窗口注冊一下此控件。) 第三步:通過前面的分析,大體知道了主界面上應該有哪些內容。包括測試結果顯示編輯框,butten按鈕控件,靜態文本控件等。使用工具箱的對話框,將需要的控件按照顯示合理布局美觀的原則放到主題對話框上。第四步:主體界面設置好后,便開始為控件添加代碼(包括設置控件屬性代碼,控件消息響應函數代碼)。 圖3.2.2 基于對話框的主界面設計圖 3.3.3 常用控件的使用情況(1)edit control控件 編輯框控件,主要用于將結

溫馨提示

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

評論

0/150

提交評論