版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 畢業(yè)設計(論文)材料之二(1)</p><p><b> 安徽工程大學本科</b></p><p><b> 畢業(yè)設計(論文)</b></p><p> 專 業(yè): 電子信息科學與技術 </p><p> 題 目: 升降腳手架智能控制
2、系 </p><p> 統(tǒng)軟件設計 </p><p> 作 者 姓 名: </p><p> 導師及職稱: (講師) </p><p> 導師所在單位: 電氣工程學院 </p><p> 2011年
3、 6 月 15 日</p><p><b> 安徽工程大學</b></p><p> 本科畢業(yè)設計(論文)任務書</p><p> 2011 屆 電氣工程 學院</p><p> 電子信息科學與技術 專業(yè)</p><p> 學生姓名:
4、 </p><p> ?、?畢業(yè)設計(論文)題目</p><p> 中文:升降腳手架智能控制系統(tǒng)軟件設計</p><p> 英文:Software Design of Intelligent Control System for Lift Scaffold</p><p><b> Ⅱ 原始資料<
5、;/b></p><p> [1] 朱晴婷,黃海鷹.Visual C++程序設計——基礎與實例分析[M] .北京:清華大學出版社,2004.</p><p> [2]孫鑫.Visual C++深入詳解[M].北京:電子工業(yè)出版社,2006.</p><p> [3] 吳選忠,關光福.面向對象技術在火災報警控制軟件設計中的應用研究[J].福建工程學院學報,
6、2007,5(4):344-347.</p><p> ?、?畢業(yè)設計(論文)任務內容</p><p> 1、升降腳手架數字化控制系統(tǒng)運用計算機技術和傳感器測量技術,通過計算機對被提升腳手架的重力信號及位移信號進行采集,綜合分析并作出相應處理,實現了對腳手架的升降及卸荷的全過程的實時監(jiān)測和自動控制。本設計要完成整個系統(tǒng)控制軟件設計,能培養(yǎng)學生的工程實踐能力和獨立解決問題的能力。<
7、/p><p> 2、本課題研究的主要內容有:</p><p> ?。?)整個系統(tǒng)界面設計;</p><p> ?。?)串口通信程序設計;</p><p> ?。?)簡單數據庫讀寫程序設計。</p><p><b> 3、提交的成果:</b></p><p> ?。?)畢業(yè)設
8、計(論文)正文;</p><p><b> ?。?)附相關程序;</b></p><p> ?。?)至少一篇引用的外文文獻及其譯文;</p><p> ?。?)附不少于10篇主要參考文獻的題錄及摘要。</p><p><b> 指導教師(簽字)</b></p><p>&l
9、t;b> 教研室主任(簽字)</b></p><p> 批 準 日 期2011年1月5日</p><p> 接受任務書日期2011年1月9日</p><p> 完 成 日 期2011年6月15日</p><p> 接受任務書學生(簽字)</p><p> 升降腳手架智能控制系統(tǒng)軟件設計&l
10、t;/p><p><b> 摘 要</b></p><p> 本課題運用計算機技術和傳感器測量技術,通過計算機對被提升腳手架的重力信號及位移信號進行采集,綜合分析并作出相應處理,實現了對腳手架的升降及卸荷的全過程的實時監(jiān)測和自動控制,系統(tǒng)中各分機的重力信號及位移信號能被實時檢測、實時報警、實時排障和實時控制。本課題完成的主要工作有:軟件界面設計、時限倒計時功能設
11、計、數據庫功能設計、串口通信功能設計。</p><p> 對于本課題的研究,筆者獲得了如下結論:通過軟件控制機械是當今工程發(fā)展中的必然趨勢,也是一個很有價值的研究方向。對此,筆者認為:軟件控制機械最關鍵的部分就在于軟件的設計以及軟件與機械通信方式的設計。</p><p> 在完成本課題的設計的過程中,需要用到MFC。運用本課題中的各種結論、方法時需要理解其中的各種算法和整個軟件設計流程
12、以及整個軟件測試流程。之后,本課題的設計思路和各種算法均可應用于相同類型課題。</p><p> 關鍵詞:腳手架;智能;MFC;數據庫;注冊表;串口</p><p> Software Design of Intelligent Control System for Lift Scaffold</p><p><b> Abstract</b&
13、gt;</p><p> The subject of the use of computer technology and sensor technology, computer be promoted by the gravitational scaffolding signal and displacement signal acquisition, comprehensive analysis and
14、take appropriate action to achieve the lifting of the scaffold and the whole process of unloading the real-time monitoring and automatic control.In the system, the extension of the gravity signal and the displacement sig
15、nal can be detected in real time, real-time alerts, real-time troubleshooting and real</p><p> For this topic, the author obtained the following conclusion: The software controls the development of mechanic
16、al engineering in today's inevitable, but also a valuable research direction. In this regard, the author think: Software control of the most critical part of the machinery lies in software design and the communicatio
17、n of software with mechanical design.</p><p> For this project design,need to ues MFC. Use this topic in various conclusion, method, need to understand the kinds of algorithm and the software design process
18、 and the whole software testing process.Last of all, the design concept of the subject and various algorithms can be applied to the same type of issue.</p><p> Key Words: Scaffold;Intelligence;MFC;Database;
19、Serial-port</p><p><b> 目錄</b></p><p><b> 引言- 1 -</b></p><p> 第1章緒論- 2 -</p><p> 1.1課題概述- 2 -</p><p> 1.2 簡述面向對象及VC++- 2
20、-</p><p> 1.3 軟件控制機械的可實現性- 4 -</p><p> 1.4 軟件整體設計思路- 5 -</p><p> 第2章 軟件需求分析- 7 -</p><p> 2.1 界面需求分析- 7 -</p><p> 2.2 功能需求分析- 8 -</p><p
21、> 2.3 串口通信需求分析- 9 -</p><p> 2.4 數據庫需求分析- 10 -</p><p> 第3章 軟件子模塊設計- 11 -</p><p> 3.1 用戶界面設計- 11 -</p><p> 3.2 時限倒計時模塊設計- 33 -</p><p> 3.3 數據庫模
22、塊設計- 40 -</p><p> 3.4 串口通信模塊設計- 47 -</p><p> 第4章 軟件測試- 52 -</p><p> 4.1 測試計劃任務書- 52 -</p><p> 4.2 時限倒計時功能測試- 52 -</p><p> 4.3 數據庫傳輸功能測試- 53 -<
23、;/p><p> 4.4 串口通信模塊測試- 56 -</p><p> 結論與展望- 57 -</p><p><b> 致謝- 58 -</b></p><p> 參考文獻- 59 -</p><p> 附錄A 外文文獻及其譯文- 60 -</p><p&g
24、t; 附錄B 主要參考文獻題錄及摘要- 67 -</p><p> 附錄C 軟件使用說明書- 69 -</p><p><b> 插圖清單</b></p><p> 圖1-1 Visual studio 2010主界面截圖.......................................... 4</p>
25、<p> 圖1-2 軟件整體設計思路................................................... 6 </p><p> 圖2-1 界面大致運行框圖................................................... 7 </p><p> 圖2-2 選項卡頁菜單框圖................
26、................................... 7 </p><p> 圖2-3系統(tǒng)功能大致框圖................................................... 8 </p><p> 圖3-1 軟件整體框架設計思路.............................................. 11 </
27、p><p> 圖3-2 歡迎界面框架...................................................... 12 </p><p> 圖3-3 登陸界面對話框框架................................................ 12 </p><p> 圖3-4 系統(tǒng)總界面框架.........
28、........................................... 12 </p><p> 圖3-5 多機控制框架...................................................... 13 </p><p> 圖3-6 選擇控制框架...............................................
29、....... 17 </p><p> 圖3-7 同步控制框架...................................................... 21 </p><p> 圖3-8 同步控制下的多機控制框架.......................................... 21 </p><p> 圖3-9 報警控
30、制框架...................................................... 25 </p><p> 圖3-10 參數管理框架..................................................... 28 </p><p> 圖3-11 密碼服務框架................................
31、..................... 32 </p><p> 圖3-12 注冊表中的上次運行時間........................................... 40 </p><p> 圖3-13 時間表........................................................... 45 </p>&
32、lt;p> 圖3-14 登錄表........................................................... 45</p><p> 圖3-15 倒計時表......................................................... 46 </p><p> 圖3-16 參數密碼表...........
33、............................................ 46 </p><p> 圖3-17 參數表........................................................... 46 </p><p> 圖3-18 報警信息表...........................................
34、............ 47 </p><p> 圖4-1 測試計劃任務圖.................................................... 52 </p><p> 圖4-2 第一階段到期警告.................................................. 53 </p><p>
35、圖4-3 系統(tǒng)時間修改警告.................................................. 53 </p><p> 圖4-4 參數修改界面...................................................... 54 </p><p> 圖4-5 參數修改后參數表對應內容.....................
36、..................... 54</p><p> 圖4-6 軟件倒計時天數及密碼設定.......................................... 55</p><p> 圖4-7 倒計時表對應改變.................................................. 55</p><p>
37、 圖4-8 系統(tǒng)密碼及參數密碼修改............................................ 55 </p><p> 圖4-9 登錄表中的對應數據................................................ 55 </p><p> 圖4-10 參數密碼表中的對應數據..........................
38、................. 55 </p><p> 圖4-11 串口通信模塊測試結果............................................. 56 </p><p><b> 表格清單</b></p><p> 表3-1 RS-485電氣規(guī)定表..........................
39、.......................48 </p><p><b> 引言</b></p><p> 升降腳手架數字化控制系統(tǒng)運用計算機技術和傳感器測量技術,通過計算機對被提升腳手架的重力信號及位移信號進行采集,綜合分析并作出相應處理,實現了對腳手架的升降及卸荷的全過程的實時監(jiān)測和自動控制,系統(tǒng)中各分機的重力信號及位移信號能被實時檢測、實時報警、實時排障
40、和實時控制。</p><p> 本文主要描述,運用微軟公司Visual Studio中Visual C++的MFC來設計一款可視化的軟件,以之實現對于升降腳手架的軟件控制。</p><p> 當下,軟件控制已經趨于一個十分流行的局勢。事實上,軟件控制的本質就是將計算機與所需要控制的系統(tǒng)相連接,通過協(xié)商好的通訊協(xié)議進行信息的溝通交流,從而實現運用軟件控制系統(tǒng),以及由系統(tǒng)發(fā)回數據給軟件分析
41、這樣的作業(yè)。而軟件在整個控制系統(tǒng)中就相當于所需要控制的系統(tǒng)在計算機上的驅動工具。</p><p> 目前的升降腳手架控制系統(tǒng)一般通過電機控制來完成,事實上依然是通過人們手工的方式去進行。這樣一來,就必須直接接近電力環(huán)境,對人身安全保障不夠到位。通過軟件去控制整個升降腳手架系統(tǒng)就可以避免這一點,所以軟件控制也是必然的發(fā)展趨勢。畢竟,使用軟件控制升降腳手架,正符合當下提倡的低風險作業(yè)的需求,對于工人的安全起到很好的
42、保障作用。</p><p> 在現實中,工人們直接去操作腳手架,只能對單一的腳手架進行操作,當使用了本文提供的軟件系統(tǒng)來控制之后,就能夠實現對多臺腳手架進行共同操作,這也是傳統(tǒng)的控制方法所不具備的。</p><p> 本文將由軟件可實現升降腳手架智能控制系統(tǒng)開始描述,之后提出對于軟件的需求分析,然后開始進行概要設計和詳細設計,在設計軟件的過程中嚴格按照軟件測試工程學的角度,第一時間介入
43、軟件測試,盡量使最終生成的軟件漏洞最少。</p><p><b> 緒論</b></p><p><b> 課題概述</b></p><p> 本課題研究的對象是如何通過軟件控制機械,本課題的最終目標是生成一款軟件,這款軟件的根本目的是可以智能控制腳手架升降。在本節(jié)中筆者將詳細介紹本課題究竟是要完成什么樣的設計,以及
44、本課題究竟按照什么樣的思路來完成這個設計。</p><p> 本課題最終要生成的軟件需要具備這樣的特征:具備多種控制方式、能夠實現不同的用戶級別以及軟件使用時限。它在運行時應能夠聯系與之相關的數據庫及注冊表來實現數據溝通,并且應該能夠通過串口與下位機產生交流,以便能夠輕松的獲取所有被控制中的腳手架的具體狀態(tài),并能夠將對所有腳手架的控制發(fā)給所有的腳手架??偟膩碚f,本課題最終需要完成的就是這樣的一款智能控制軟件。&
45、lt;/p><p> 下面,筆者將詳述本課題究竟按照一個什么樣的思路來完成以上描述的這個設計。</p><p> 本課題需要使用微軟的MFC來實現這款軟件的設計,它屬于面向對象編程,所以本課題的論文有必要簡單的介紹一下這種設計方法,在本章中,筆者會對面向對象及VC++做一些簡單的介紹。對于軟件控制機械的可行性也有必要進行一定的介紹,故在本章中也會一并給出說明。而整個緒論中最關鍵的部分就是軟
46、件的整體設計思路,這會在本章的最后進行詳盡的說明。</p><p> 以上描述了整個緒論中的安排,后面,本課題的論文將給出軟件需求分析,其中將提出對于界面的需求、對于軟件功能的需求、對于串口通信的需求以及對于數據庫功能的需求。只有經過了需求分析階段,一款軟件才能合理的進入設計階段。</p><p> 到了設計階段,本課題的論文將首先設計軟件框架,將整個軟件的大致框架勾勒出來,接著進入軟
47、件時限倒計時模塊的設計,隨后進入數據庫模塊的設計,然后進入串口通信模塊的設計,在所有的詳細設計分別進行時,將分別進行單元測試,而當所有設計完成時也將進行統(tǒng)一的整體測試。這些都將在1.4節(jié)中給出詳盡說明。</p><p> 1.2 簡述面向對象及VC++</p><p> 1.2.1 關于面向對象</p><p> 本文使用的軟件設計方法是面向對象的設計方法,它
48、與以前常用的結構化編程(目前一般用于系統(tǒng)級編程)有一定區(qū)別,故在此進行簡要介紹。</p><p> 面向對象(Object Oriented,OO)是當前計算機界關心的重點,它是90年代軟件開發(fā)方法的主流。面向對象的概念和應用已超越了程序設計和軟件開發(fā),擴展到很寬的范圍。如數據庫系統(tǒng)、交互式界面、應用結構、應用平臺、分布式系統(tǒng)、網絡管理結構、CAD技術、人工智能等領域。</p><p>
49、 起初,“面向對象”是專指在程序設計中采用封裝、繼承、多態(tài)等設計方法??墒牵@個定義顯然不能再適合現在情況。面向對象的思想已經涉及到軟件開發(fā)的各個方面。如,面向對象的分析(OOA,Object Oriented Analysis),面向對象的設計(OOD,Object Oriented Design)、以及我們經常說的面向對象的編程實現(OOP,Object Oriented Programming)。</p><
50、p> 面向對象編程有幾個基本概念,簡述如下:</p><p> 封裝:將一組相關屬性、方法和其他成員視為一個單元或對象;</p><p> 繼承:描述基于現有類創(chuàng)建新類的能力;</p><p> 多態(tài)性:可以有多個可互換使用的類,即使每個類以不同方式實現相同屬性或方法;</p><p> 類:描述對象的“類型”;</p&
51、gt;<p> 對象:類的可用“實例”;</p><p> 實例化:創(chuàng)建對象的操作;</p><p> 類的成員:類成員包括屬性(用于描述類數據)、方法(用于定義類行為)和事件(用于在不同的類和對象之間提供通信);</p><p> 字段和屬性:表示對象包含的信息;</p><p> 構造函數:一種類方法,它們在創(chuàng)建給
52、定類型的對象時自動執(zhí)行;</p><p> 析構函數:用于析構類的實例;</p><p> 事件:類或對象可以通過事件向其他類或對象通知發(fā)生的相關事情;</p><p> 嵌套:在另一個類中定義的類;</p><p> 訪問修飾符:指定自己為其他類提供的訪問級別;</p><p> 類的靜態(tài)成員:由該類的所有
53、實例共享的屬性、過程或字段;</p><p> 匿名類型:無需為數據類型編寫類定義即可創(chuàng)建對象;</p><p> 重寫成員:默認情況下,派生類繼承其基類的所有成員,若希望更改繼承成員的行為,則需要重寫該成員;</p><p> 接口:和類一樣,接口也定義了一系列屬性、方法和事件,但與類不同的是,接口并不提供實現,它們由類來實現,并從類中被定義為單獨的實體,接
54、口表示一種約定,實現接口的類必須嚴格按其定義來實現接口的每個方面;</p><p> 委托:定義方法簽名,可提供對具有兼容簽名的任何方法的引用;</p><p> 1.2.2 關于Visual C++</p><p> Visual Studio 是一套完整的開發(fā)工具,用于生成 ASP.NET Web 應用程序、XML Web services、桌面應用程序和
55、移動應用程序。Visual Basic、Visual C# 和 Visual C++ 都使用相同的集成開發(fā)環(huán)境 (IDE),這樣就能夠進行工具共享,并能夠輕松地創(chuàng)建混合語言解決方案。另外,這些語言使用 .NET Framework 的功能,它提供了可簡化 ASP Web 應用程序和 XML Web services 開發(fā)的關鍵技術。</p><p> 在本文中,筆者將使用Visual Studio中的Visua
56、l C++來設計軟件,因此下面將對Visual C++進行一定的介紹。</p><p> Visual C++(簡稱VC++)是微軟公司提供的面向對象編程的一種可視化編程工具,它提供了強大而靈活的開發(fā)環(huán)境,可用于創(chuàng)建基于Windows的應用程序。用戶可以在集成開發(fā)系統(tǒng)中使用該工具,也可以使用獨立的工具。</p><p> Visual C++ 包含下列組件:</p>&l
57、t;p> 1. 編譯器工具。該編譯器支持傳統(tǒng)本機代碼開發(fā)人員和面向虛擬機平臺(如公共語言運行時 (CLR))的開發(fā)人員。Visual C++ 包括面向 x64 和 Itanium 的編譯器。該編譯器仍支持直接面向 x86 計算機,并針對這兩種平臺優(yōu)化了性能。</p><p> 2. Visual C++ 庫。其中包括行業(yè)標準的活動模板庫 (ATL)、Microsoft 基礎類 (MFC) 庫,以及標準
58、C++ 庫(由iostream庫和標準模板庫 (STL) 組成)和 C 運行庫 (CRT) 之類的標準庫。CRT 包括安全性已得到增強的替代函數,取代已知會引起安全問題的函數。STL/CLR 庫為托管代碼開發(fā)人員引入了 STL。具有數據封送新功能的 C++ 支持庫,其設計意圖在于簡化面向 CLR 的程序。</p><p> 3. Visual C++ 開發(fā)環(huán)境。該開發(fā)環(huán)境為項目管理與配置(包括更好地支持大型項目
59、)、源代碼編輯、源代碼瀏覽和調試工具提供強力支持。該環(huán)境還支持 IntelliSense,在編寫代碼時,該功能可以提供智能化且特定于上下文的建議。</p><p> 除常規(guī)的圖形用戶界面應用程序外,Visual C++ 還允許開發(fā)人員生成 Web 應用程序、基于 Windows 的智能客戶端應用程序以及適用于瘦客戶端和智能客戶端移動設備的解決方案。C++ 是世界上最流行的系統(tǒng)級語言,而 Visual C++ 則
60、為開發(fā)人員提供了生成軟件的世界級工具。</p><p> 圖1-1顯示了Visual studio 2010新建一個MFC項目的通常界面。</p><p> 圖1-1 Visual studio 2010主界面截圖</p><p> 1.3 軟件控制機械的可實現性</p><p> 機械設計制造及其自動化在當下是十分流行的一個專業(yè),其
61、主要原因正是由于機械在自動化運行以后對于人身安全有了很大的保障。近年來,工人由于操作機器不當,或者由于意外,被機械誤殺的人越來越多,簡簡單單的一個漏電就帶走了很多工人的生命。</p><p> 在一個關注人類生命安全的年代,不注重智能控制機械,就是對人們生命的一種漠視,為此,軟件控制機械也成了當下一個十分流行的項目。很多關注工人生命的企業(yè)爭相加入軟件控制機械的行列。</p><p>
62、可是,軟件控制機械可行么?如果可行,那么又是如何實現的呢?</p><p> 事實上,軟件控制機械已經有很長時間的歷史了,只是很多人依然認為軟件的設計和維護成本高昂,不如直接控制機械來的方便,以致于很多企業(yè)在建立初期都考慮不到使用軟件來控制機械。</p><p> 其實,在理論上來說,軟件設計的成本是低廉的,軟件的成本大多來源于軟件測試的成本。然而,一款設計初期就介入測試的軟件,其成本
63、將大大下降,如果使用這樣一款值得信賴的軟件去控制機械,那么智能控制機械將比人工控制機械在長遠利益上考慮更為節(jié)省。</p><p> 軟件控制機械的實現方法實際上是電子學與計算機學的結合,詳細來說就是控制電路技術與軟件工程技術的結合。</p><p> 由控制電路向軟件上傳數據表明機械的當前狀態(tài),再由軟件下發(fā)數據給控制電路讓控制電路操控機械進行運作。這個過程中,人只需要在上位機,也就是電
64、腦軟件這個端口,就可以對機械進行操作,而不需要到機械實際所在的地方去操控機械,這就大大保證了操作工的人身安全。</p><p> 軟件如何能夠和控制電路進行溝通?軟件又如何識別操作它的人是不是操作工?</p><p> 這就需要用到驅動機制和用戶登錄機制。</p><p> 驅動軟件的作用是連接計算機和其他電子產品,并使得兩者之間可以進行信息交互。在軟件智能控
65、制機械的系統(tǒng)中,軟件端需要配備驅動機制才能和控制電路進行信息交流,從而由機械中獲取狀態(tài)并向機械發(fā)送控制數據。</p><p> 用戶登陸機制是指一款軟件識別操作它的人是什么人的機制。這個機制可以限制任何人對于軟件的操作,也就避免了非操作工操作機械并且避免了軟件為沒有使用權限的用戶所用。</p><p> 綜上所述,可以了解到:軟件智能控制機械是可以實現的,并且這個技術在當下是十分流行的
66、。由此可見,本文利用軟件來完成智能升降腳手架的系統(tǒng)是完全可以實現的,按照這個思路設計的軟件,其最終是可以滿足用戶需求的。</p><p> 1.4 軟件整體設計思路</p><p> 對于這款控制腳手架自動升降的軟件,首先將提出其用戶需求,包括界面需求、功能需求以及通信需求。隨后將進入概要設計和詳細設計階段,在這個階段,根據軟件測試工程學的原理,將第一時間介入整個軟件測試流程。<
67、/p><p> 第一個進入設計階段的部分是軟件的整體框架,同時軟件的整體框架將納入測試,以查看各個框架的文檔是否能夠正常顯示。</p><p> 接著進入設計階段的部分是軟件的時限倒計時功能模塊,本軟件將采用三段式時限倒計時的方式實現軟件時限的限定,其倒計時功能模塊牽涉到數據庫的讀寫以及注冊表的讀寫,這部分的功能設計需要耐心的測試,故這個設計階段主要進行的是該模塊的設計及其功能測試。<
68、;/p><p> 當倒計時模塊設計并測試成功后,將開始設計數據庫模塊,因為本款軟件的二級密碼機制,以及第二級密碼的用戶權限機制需要利用數據庫才能時限,并且軟件時限倒計時也需要用到數據庫存儲階段及時間的數據。</p><p> 最后進入設計階段的是串口通信模塊,這個模塊是軟件與下位機連接的關鍵,只有具備良好的通信功能,這款軟件才能夠很好的實現智能控制腳手架這個最核心的功能,否則一切其他功能都
69、沒有意義。所以,這個階段的測試也是最關鍵的,因為它意味著整款軟件在測試成功后可以交付用戶進行用戶層面的測試(也就是通常所說的β測試)。</p><p> 由此,整個軟件的設計及測試流程如圖1-2所示。</p><p> 圖1-2 軟件整體設計思路</p><p> 第2章 軟件需求分析</p><p> 2.1 界面需求分析</
70、p><p> 本文最終設計完成的軟件,是需要面向于普通用戶的,這就使得軟件本身必須滿足人性化的用戶圖形界面設計方案,這對于一款現代工業(yè)控制軟件來說也是十分有必要的。</p><p> 按照用戶需求的角度來分析,本文最終設計完成的軟件必須滿足以下幾個要求:</p><p> 具有軟件時限倒計時功能;</p><p><b> 具有
71、串口通信功能;</b></p><p><b> 具有多種控制方式;</b></p><p> 具備不同權限用戶登陸的可能性。</p><p> 按照以上基本用戶需求,本軟件所必須的界面需求分析如下:</p><p> 擁有歡迎界面,并顯示軟件時限倒計時;</p><p>
72、擁有登陸界面,可滿足不同權限用戶登陸的需求;</p><p> 擁有多種控制方式切換的功能菜單,該菜單可以實現各個功能的切換;</p><p> 擁有一個選項卡,可供選擇串口,并提供關于軟件的一些說明。</p><p> 根據以上界面需求的分析,可以得出軟件界面的大致運行框圖,如圖2-1所示,選項卡功能,如圖2-2所示。</p><p>
73、; 圖2-2 選項卡頁菜單框圖</p><p> 圖2-1 界面大致運行框圖</p><p> 圖2-1與圖2-2中給出的框圖,只是初步的需求分析框圖,并不是最終完成的軟件真正的界面,在實際設計中可能會依據不同的情況有所改變,但真正的軟件整體框架設計是滿足以上設計需求的,而內容則請詳見3.1節(jié)。</p><p> 2.2 功能需求分析</p>
74、<p> 本文最終設計完成的軟件,根據用戶需求,需滿足一些功能以適應其使用環(huán)境。根據2.1節(jié)中提及的4點基本功能要求(概要描述的功能需求),這里可以分裂式的提出幾點功能要求(詳細描述的功能需求)如下:</p><p> 通過數據庫與注冊表實現三段軟件倒計時功能;</p><p> 串口通信以實現軟件與下位機(腳手架)的溝通;</p><p> 具有
75、多機控制、選擇控制、同步控制三種控制方式;</p><p> 擁有密碼服務、參數管理、報警控制的界面交互;</p><p> 擁有系統(tǒng)密碼與管理密碼(管理密碼由用戶名和密碼兩部分組成)的二級密碼機制,前者為第一級,后者分用戶權限并為第二級;</p><p> 當且僅當管理員身份登錄可以修改各用戶的管理密碼;</p><p> 軟件倒計
76、時到期后只有輸入第一級密碼才可以顯示第二級密碼輸入框。</p><p> 以上的幾點功能要求即本軟件的功能需求,根據此分析,給出軟件功能的大致框圖如圖2-3所示,可結合圖2-1來理解此圖。</p><p><b> 是</b></p><p><b> 否</b></p><p> 圖2-3
77、系統(tǒng)功能大致框圖</p><p> 2.3 串口通信需求分析</p><p> 本文最終設計完成的軟件,需要具備兩個基本通信功能:</p><p> 用于軟件時限倒計時的:與數據庫和注冊表的通信功能;</p><p> 用于下位機通信的:與下位機(腳手架)的通信功能。</p><p> 根據以上兩種基本通信功
78、能的需求,本文需要做到如下三種通信方式:</p><p><b> 注冊表通信;</b></p><p><b> 數據庫通信;</b></p><p><b> 串口通信。</b></p><p> 串口通信給出如下用戶需求:</p><p>
79、 通訊參數根據需要設定,(通訊掃描時,只掃描多機設定范圍內的機器),電腦與下位機通訊用485,手提電腦用BOK-1401B型USB-RS485轉換器連接。</p><p> 注冊表通信與數據庫通信的需求將在2.4節(jié)中給予一定的說明,并在3.2節(jié)與3.3節(jié)中給出必要的描述。串口通信,由于具備用戶需求,故在此給出通信需求:</p><p> 對多機控制中選擇的機器進行串口掃描,沒有選擇的
80、機器不掃描;</p><p> 對沒有進行報警屏蔽的機器進行報警響應,報警響應的方式是全部停機;</p><p> 同步控制使用:0x50,0x20,高度設定值,高度回差,之和;</p><p> 同步控制出現超過高度回差,向該下位機發(fā)送停止:地址,0x70,控制命令(0x01),校驗和;</p><p> 高度清零時,向下位機發(fā)送:
81、0x50,0x10,0x5a,之和;</p><p> 同步控制時僅選擇同步控制使用時發(fā)送一次,正常運行不設定;</p><p> 掃描時發(fā)送:地址,0x40(不屏蔽,0x41屏蔽無論報警與否),校驗和;</p><p> 掃描時下位機上傳:地址,重量高,重量低,位移高,位移低,下位機狀態(tài),校驗和;</p><p> 單機控制開關停:
82、地址,0x30,控制命令(0x02),校驗和;</p><p> 多機控制開關停:0x60,0x30,控制命令(0x03),校驗和;</p><p> 人機手動允許:0x60,0x5a,0xa5,校驗和;</p><p> 人機手動禁止:0x60,0xa5,0x55,校驗和;</p><p> 多機控制命令:0x60,0x30,控制命
83、令,起始地址,結束地址,校驗和;</p><p> 保存參數命令:地址,0x70,報警上限,報警下限,預警上限,預警下限,校驗和;</p><p> 上位機向下發(fā)數據是定時器發(fā)送的,沒有其它數據,就發(fā)定時掃描的,有其它數據,以其它數據為先進行發(fā)送,掃描數據等到下個定時時間;</p><p> 定時掃描發(fā)送:0x70,起始地址,結束地址,報警上限,報警下限,預警
84、上限,預警下限,校驗和。</p><p> 以上部分,是進行串口通信時的通信協(xié)議,具體串口通信實現方案詳見3.4節(jié)中的描述。</p><p> 2.4 數據庫需求分析</p><p> 本文最終生成的軟件需要依賴數據庫來完成一些必要的功能,因此在本節(jié)中將重點分析此軟件的數據庫需求,以便在軟件設計中能夠有所參照,從而順應需求來完成數據庫的設計。</p>
85、;<p> 本文所生成的軟件,對于數據庫的依賴部分在于:</p><p> 需要利用數據庫保存系統(tǒng)第一次運行的時間</p><p> 需要利用數據庫保存系統(tǒng)當前運行的時間</p><p> 需要利用數據庫保存系統(tǒng)當前所處的時限階段和剩余天數</p><p> 需要利用數據庫保存報警及預警的數值</p>&
86、lt;p> 同時,對于系統(tǒng)上一次運行的時間,本文還將存儲在注冊表中,以便與數據庫中的數值進行比對,從而保證沒有通過更改數據庫的方法改變系統(tǒng)第一次運行時間的現象發(fā)生。</p><p> 根據以上所述的此軟件對于數據庫系統(tǒng)的依賴,本文將要生成的數據庫具備如下需求:</p><p> 為access數據庫</p><p> 通過ado的方式對數據庫進行讀寫&
87、lt;/p><p> 保存軟件中依賴數據庫的數據</p><p> 不容易被計算機的用戶隨意更改其中內容</p><p> 唯有滿足上述條件的數據庫才能夠符合本文最終生成的軟件的需求,并能夠較為方便的實現本文后面將要投入設計的某些功能,這些功能有:軟件時限倒計時功能和預、報警功能。</p><p> 以上就是本文對于數據庫的需求分析,具體
88、設計實現詳見3.2節(jié)與3.3節(jié)中的相關描述。</p><p> 第3章 軟件子模塊設計</p><p> 3.1 用戶界面設計</p><p> 3.1.1 總體界面設計</p><p> 在圖2-3 系統(tǒng)功能大致框圖中,已經可以大致的看出整個軟件的總體框架。按照筆者的設計思路,本款軟件將在打開時首先呈現歡迎界面,然后進入密碼輸入界面
89、,最后轉入主界面。在整個主界面中含有多個文檔卡,他們分別呈現不同的內容,以展現不同的功能。</p><p> 總體框架的設計思路如圖3-1所示。</p><p> 圖3-1 軟件整體框架設計思路</p><p> 根據圖3-1中所描述的整體框架設計思路,在VC++中需要在解決方案的資源視圖中添加多個對話框,以便生成相對應的多個視圖。</p>&l
90、t;p> 本節(jié)中說明三個具備總體性質框架的設計,分別是歡迎界面、登陸界面及系統(tǒng)界面。</p><p> 首先在項目的資源視圖中的Dialog文件夾中新建三個對話框,ID分別設置為IDD_STARTINTERFACE、IDD_LOGON、IDD_SCAFFOLD_DIALOG,按照圖3-2、3-3、3-4所示,來創(chuàng)建這個對話框。</p><p> 圖3-2 歡迎界面框架</
91、p><p> 圖3-3 登陸界面對話框框架</p><p> 圖3-4 系統(tǒng)總界面框架</p><p> 3.1.2 多機控制界面</p><p> 首先在項目的資源視圖中的Dialog文件夾中新建一個對話框,ID設置為IDD_MANYSET,按照圖3-2所示,來創(chuàng)建這個對話框。</p><p> 圖3-5 多機
92、控制框架</p><p> 這個框架顯式包含的有幾個Text Control,兩個Button Control,兩個Edit Control,及兩個Spin Control。其中Button Control是指“提升”和“下降”按鈕,在功能上的作用是對選定的機器進行提升或下降操作。兩個Edit Control是指兩個編號輸入框,他們將決定將哪些機器選定,以便進行操作。</p><p>
93、 圖3-5顯示的是該框架完全搭建好后的運行圖像,從中可以看出:這個多機控制默認的控制機位范圍是1至60號,它可以對選定范圍的一些機器進行提升或者下降的操作。在這個界面可以顯示每一個機器是否連接上,也可以顯示其當下的重量值。</p><p> 框架創(chuàng)建好后,在項目的源文件夾中創(chuàng)建一個CPP文件,命名為Manymac,這個名為CManymac的類將決定該框架的具體展現方案。</p><p>
94、 OnCreate是對話框在被創(chuàng)建時的消息,這時候對話框還沒有被顯示在屏幕上,而且對話框中的控件都還沒有被創(chuàng)建。在此介紹后,在后面各個小節(jié)不會再重復介紹它的來歷和功能。</p><p> 本窗口的OnCreate函數定義如下:</p><p> int CManymac::OnCreate(LPCREATESTRUCT lpCreateStruct) </p><
95、p><b> {</b></p><p> if (CDialog::OnCreate(lpCreateStruct) == -1)</p><p> return -1;</p><p> CRect rect,rect1;</p><p> int top=125;</p><p&
96、gt; int left=15;</p><p> int m_Width1=35;</p><p> int m_Height=20;</p><p> int m_Width2=59;</p><p> int m_WidthSpace=5;</p><p> int m_HeightSpace=6;&
97、lt;/p><p> CString str;</p><p> for(int i=0;i<15;i++)</p><p><b> {</b></p><p> str.Format("%i", i+1);</p><p> rect.SetRect(left,
98、top+i*(m_Height+m_HeightSpace),left+m_Width1,top+m_Height+i*(m_Height+m_HeightSpace));</p><p> m_Data1[i].Create (str, WS_CHILD | WS_VISIBLE | SS_CENTER, rect, this, 1200+i); </p><p&
99、gt; rect.SetRect(left+m_Width1+m_WidthSpace,top+i*(m_Height+m_HeightSpace),left+m_Width1+m_Width2+m_WidthSpace,top+m_Height+i*(m_Height+m_HeightSpace));</p><p> m_Data2[i].Create ( WS_CHILD | WS_VISIBLE |
100、WS_BORDER | ES_CENTER, rect, this, 1260+i); </p><p> rect.SetRect(left+m_Width1+m_Width2+2*m_WidthSpace,top+i*(m_Height+m_HeightSpace),left+m_Width1+2*(m_Width2+m_WidthSpace),top+m_Height+i*(m_Heig
101、ht+m_HeightSpace));</p><p> m_Data3[i].Create ( WS_CHILD | WS_VISIBLE | WS_BORDER | ES_CENTER, rect, this, 1320+i); </p><p> rect.SetRect(left+m_Width1+2*m_Width2+3*m_WidthSpace,top+i
102、*(m_Height+m_HeightSpace),left+m_Width1+3*(m_Width2+m_WidthSpace),top+m_Height+i*(m_Height+m_HeightSpace));</p><p> m_Data4[i].Create ( WS_CHILD | WS_VISIBLE | WS_BORDER | ES_CENTER, rect, this, 1380+i);
103、 </p><p><b> }</b></p><p><b> left=267;</b></p><p> for(int i=0;i<15;i++)</p><p><b> {</b></p><p> str.Fo
104、rmat("%i", i+16);</p><p> rect.SetRect(left,top+i*(m_Height+m_HeightSpace),left+m_Width1,top+m_Height+i*(m_Height+m_HeightSpace));</p><p> m_Data1[i+15].Create (str, WS_CHILD | WS_VI
105、SIBLE | SS_CENTER, rect, this, 1215+i); rect.SetRect(left+m_Width1+m_WidthSpace,top+i*(m_Height+m_HeightSpace),left+m_Width1+m_Width2+m_WidthSpace,top+m_Height+i*(m_Height+m_HeightSpace));</p><p>
106、; m_Data2[i+15].Create ( WS_CHILD | WS_VISIBLE | WS_BORDER | ES_CENTER, rect, this, 1275+i);rect.SetRect(left+m_Width1+m_Width2+2*m_WidthSpace,top+i*(m_Height+m_HeightSpace),left+m_Width1+2*(m_Width2+m_WidthSpace),
107、top+m_Height+i*(m_Height+m_HeightSpace));</p><p> m_Data3[i+15].Create ( WS_CHILD | WS_VISIBLE | WS_BORDER | ES_CENTER, rect, this, 1335+i);rect.SetRect(left+m_Width1+2*m_Width2+3*m_WidthSpace,top+i*(m
108、_Height+m_HeightSpace),left+m_Width1+3*(m_Width2+m_WidthSpace),top+m_Height+i*(m_Height+m_HeightSpace));</p><p> m_Data4[i+15].Create ( WS_CHILD | WS_VISIBLE | WS_BORDER | ES_CENTER, rect, this, 1395+i);&l
109、t;/p><p><b> }</b></p><p><b> left=520;</b></p><p> for(int i=0;i<15;i++)</p><p><b> {</b></p><p> str.Format(&quo
110、t;%i", i+31);rect.SetRect(left,top+i*(m_Height+m_HeightSpace),left+m_Width1,top+m_Height+i*(m_Height+m_HeightSpace));</p><p> m_Data1[i+30].Create (str, WS_CHILD | WS_VISIBLE | SS_CENTER, rect, this
111、, 1230+i); rect.SetRect(left+m_Width1+m_WidthSpace,top+i*(m_Height+m_HeightSpace),left+m_Width1+m_Width2+1*m_WidthSpace,top+m_Height+i*(m_Height+m_HeightSpace));</p><p> m_Data2[i+30].Create ( WS_CHILD
112、| WS_VISIBLE | WS_BORDER | ES_CENTER, rect, this, 1290+i);rect.SetRect(left+m_Width1+m_Width2+2*m_WidthSpace,top+i*(m_Height+m_HeightSpace),left+m_Width1+2*(m_Width2+m_WidthSpace),top+m_Height+i*(m_Height+m_HeightSpac
113、e));</p><p> m_Data3[i+30].Create ( WS_CHILD | WS_VISIBLE | WS_BORDER | ES_CENTER, rect, this, 1350+i);rect.SetRect(left+m_Width1+2*m_Width2+3*m_WidthSpace,top+i*(m_Height+m_HeightSpace),left+m_Width1+3*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能農業(yè)控制系統(tǒng)軟件設計
- 噴染噴射機控制系統(tǒng)軟件設計畢業(yè)設計論文
- 電阻爐溫度控制系統(tǒng)軟件設計【畢業(yè)設計】
- 畢業(yè)設計--溫室溫度及通風控制系統(tǒng)軟件設計
- 179高爐卷揚上料控制系統(tǒng)軟件設計畢業(yè)設計
- 基于dsp的全向運動控制系統(tǒng)軟件設計畢業(yè)設計
- 腳手架畢業(yè)設計
- 附著式升降腳手架控制系統(tǒng)研究與設計.pdf
- 畢業(yè)設計--基于plc的注塑機控制系統(tǒng)軟件設計
- 消聲器自動除塵控制系統(tǒng)設計——電氣控制系統(tǒng)軟件設計【畢業(yè)設計】
- 畢業(yè)設計---腳手架專項設計
- 教室節(jié)能智能照明系統(tǒng)軟件設計畢業(yè)論文
- 考勤系統(tǒng)軟件設計 畢業(yè)論文
- AGVS的控制系統(tǒng)軟件設計.pdf
- 畢業(yè)設計---腳手架專項方案
- 腳手架指施工現場畢業(yè)設計論文
- 紗線恒張力控制系統(tǒng)軟件設計.pdf
- 附著式升降腳手架及其控制系統(tǒng)的研發(fā).pdf
- 電阻爐溫度控制系統(tǒng)軟件設計【畢業(yè)設計+開題報告+文獻綜述】
- 畢業(yè)設計---逆變并網模擬系統(tǒng)軟件設計
評論
0/150
提交評論