版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 學(xué)位論文</b></p><p> 電梯控制系統(tǒng)的仿真設(shè)計(jì)</p><p> 論文作者姓名:</p><p> 申請(qǐng)學(xué)位專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p> 申請(qǐng)學(xué)位類別:工學(xué)學(xué)士</p><p> 指導(dǎo)教師姓名(職稱):</p><p>
2、; 論文提交日期:2008年6月3 日</p><p> 電梯控制系統(tǒng)的仿真設(shè)計(jì)</p><p><b> 摘 要</b></p><p> 本課題是以現(xiàn)有的建筑中電梯控制及運(yùn)行的情況為設(shè)計(jì)電梯控制系統(tǒng)的參照準(zhǔn)則,設(shè)計(jì)仿真系統(tǒng)。目的在于深刻理解電梯的運(yùn)行控制過(guò)程,熟練掌握運(yùn)用單片機(jī)設(shè)計(jì)仿真系統(tǒng)的過(guò)程,且能更好的理解電梯調(diào)度的算法。在已有
3、的電梯群控算法研究中,選擇適合的調(diào)度算法用于本系統(tǒng),在此基礎(chǔ)上,加入自己的理解和改進(jìn),這是本課題設(shè)計(jì)的意義所在。以兩臺(tái)六層樓電梯為仿真設(shè)計(jì)對(duì)象,以AT89C51單片機(jī)為核心,輔以相應(yīng)的軟硬件,設(shè)計(jì)仿真電路圖,用LED和數(shù)碼管輸出顯示,以此來(lái)表征電梯的各種運(yùn)行狀態(tài)及規(guī)律。利用電梯群控算法的一些思想來(lái)實(shí)現(xiàn)雙路電梯的控制,較為真實(shí)的模擬出用于6層建筑的雙路電梯的控制系統(tǒng)。該系統(tǒng)體積小,運(yùn)行穩(wěn)定,在傳統(tǒng)“忙梯”算法上有一定的改進(jìn)。軟件的設(shè)計(jì)過(guò)程
4、采用模塊化的編程思想,條理清晰,模塊功能分明。</p><p> 關(guān)鍵詞:雙路電梯;電梯調(diào)度;單片機(jī)仿真;并聯(lián)電梯算法</p><p> The Simulation Design of Elevator Control System</p><p><b> Abstract</b></p><p> This
5、 issue is based on the reference criteria of the elevator control and operation of the elevator control system in existing building to design the simulation system. The aim is to deeply understand the operational control
6、 process of lift, and master the design process of simulation system with microcontroller and the various scheduling algorithm of elevator. On the basis of existing elevator group control algorithm, I select the appropri
7、ate algorithm and improve it, which is the significance </p><p> Key words: dual lifts; elevator scheduling; microcontroller simulation; parallel connection elevator algorithm </p><p><b>
8、 目 錄</b></p><p><b> 論文總頁(yè)數(shù):36頁(yè)</b></p><p><b> 1 引言1</b></p><p> 1.1 課題背景1</p><p> 1.2 國(guó)內(nèi)外研究現(xiàn)狀1</p><p> 1.3 本課題研究的意義
9、2</p><p> 1.4 本課題的研究方法2</p><p> 2 開(kāi)發(fā)工具簡(jiǎn)介3</p><p> 2.1 AT89C51單片機(jī)3</p><p> 2.2 編程軟件3</p><p> 2.3 模擬軟件3</p><p><b> 3 需求描述4<
10、/b></p><p> 3.1 模擬對(duì)象4</p><p> 3.2 按鈕情況4</p><p> 3.3 運(yùn)行狀態(tài)顯示情況4</p><p> 3.4 電梯控制系統(tǒng)功能要求4</p><p> 3.4.1響應(yīng)外部請(qǐng)求功能4</p><p> 3.4.2 響應(yīng)內(nèi)部請(qǐng)
11、求5</p><p> 3.4.3 顯示信息功能5</p><p> 3.5 用戶特點(diǎn)5</p><p> 3.6 使用頻度5</p><p> 3.7 處理流程6</p><p> 4 仿真電路圖設(shè)計(jì)7</p><p> 4.1 設(shè)計(jì)仿真電路圖7</p>
12、<p> 4.2 仿真圖說(shuō)明7</p><p> 5 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)9</p><p> 5.1 模塊設(shè)計(jì)9</p><p> 5.2 系統(tǒng)處理流程10</p><p> 5.3 系統(tǒng)結(jié)構(gòu)描述11</p><p> 5.4 功能與程序的關(guān)系11</p><p>
13、 6 單片機(jī)編程12</p><p> 6.1 單片機(jī)引腳使用情況12</p><p> 6.1.1 從機(jī)引腳使用說(shuō)明12</p><p> 6.1.2 主機(jī)引腳使用說(shuō)明12</p><p> 6.2 串行通信12</p><p> 6.2.1需求概述12</p><p>
14、; 6.2.2 串行通信概述13</p><p> 6.2.3 本設(shè)計(jì)中的串行通信具體說(shuō)明13</p><p><b> 6.3 中斷13</b></p><p> 6.3.1 需求概述13</p><p> 6.3.2 中斷概述13</p><p> 6.3.3 串行通信中
15、斷14</p><p> 6.3.4 定時(shí)/計(jì)數(shù)器中斷14</p><p> 6.4 定時(shí)器設(shè)置14</p><p> 6.4.1 串行通信定時(shí)設(shè)置14</p><p> 6.4.2 定時(shí)/計(jì)數(shù)器設(shè)置14</p><p> 6.5 行列式鍵盤15</p><p> 6.5
16、.1段數(shù)碼管動(dòng)態(tài)掃描顯示15</p><p> 6.5.2 LED燈泡顯示16</p><p> 7 軟件設(shè)計(jì)概述17</p><p> 7.1 軟件設(shè)計(jì)總體流程17</p><p> 7.2 電梯群控概述18</p><p> 7.3 忙梯算法18</p><p> 7
17、.3.1算法概述18</p><p> 7.3.2 算法評(píng)價(jià)19</p><p> 7.3.3 算法的改進(jìn)之處19</p><p> 7.4 電梯調(diào)度算法流程21</p><p> 7.5 程序代碼及說(shuō)明21</p><p> 7.5.1 確定請(qǐng)求類型函數(shù)21</p><p&g
18、t; 7.5.2 運(yùn)行參數(shù)設(shè)置函數(shù)23</p><p> 7.5.3 外部請(qǐng)求處理函數(shù)24</p><p> 7.5.4 電梯調(diào)度算法25</p><p><b> 8 測(cè)試27</b></p><p><b> 9 評(píng)價(jià)32</b></p><p>
19、9.1 總體評(píng)價(jià)32</p><p> 9.2 缺陷與不足32</p><p> 9.3 需改進(jìn)之處32</p><p><b> 結(jié)束語(yǔ)32</b></p><p><b> 參考文獻(xiàn)34</b></p><p><b> 致 謝35&
20、lt;/b></p><p><b> 聲 明36</b></p><p><b> 1 引言</b></p><p><b> 1.1 課題背景</b></p><p> 電梯是現(xiàn)代生活中必不可少的高層建筑垂直交通的工具。隨著生活水平的不斷提高,高層建筑
21、規(guī)模的不斷擴(kuò)大,出現(xiàn)越來(lái)越多的電梯公寓,電梯辦公樓,且人們對(duì)電梯運(yùn)行的效率要求也越來(lái)越高。電梯客流量的不斷增多,單部電梯已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足及時(shí)高效的要求。因此,高層建筑的電梯大多采取雙路或多路電梯共同作業(yè)的方式。然而僅靠電梯數(shù)量的增加,不僅不能滿足現(xiàn)代樓宇的多種要求,還會(huì)帶來(lái)諸如環(huán)境污染、能源消耗、運(yùn)行效率低的問(wèn)題。于是,多路電梯并聯(lián)的控制問(wèn)題則成了首要應(yīng)解決的問(wèn)題。為了進(jìn)一步的提高電梯運(yùn)載效率,更好的為乘客服務(wù),合理的電梯的調(diào)度算法,則
22、成為了研究的重點(diǎn)問(wèn)題。電梯群控技術(shù),則是在這樣的背景下提出的,用來(lái)解決復(fù)雜的、非線性、不確定性的多目標(biāo)隨機(jī)決策問(wèn)題。電梯群控技術(shù)對(duì)改善電梯控制方式,提高運(yùn)載效率有很大的意義,能在提高系統(tǒng)服務(wù)質(zhì)量和運(yùn)營(yíng)效率的同時(shí)降低能耗。當(dāng)前電梯群控技術(shù)的研究有豐富的成果,比如基于神經(jīng)網(wǎng)絡(luò)算法控制的,基于模糊算法的解決方案,考慮乘客混雜度的電梯智能群控算法,多目標(biāo)優(yōu)化的群控算法等等。本課題基于現(xiàn)有樓宇中的雙路電梯控制系統(tǒng)和前人群控算法研究的背景來(lái)設(shè)計(jì)實(shí)施
23、的。</p><p> 1.2 國(guó)內(nèi)外研究現(xiàn)狀</p><p> 從有關(guān)的文獻(xiàn)看,對(duì)于電梯控制系統(tǒng)的單片機(jī)仿真設(shè)計(jì)不太多,注重單片機(jī)等有關(guān)電子器件的使用和電路設(shè)計(jì)。另一方面,由于現(xiàn)代高層樓宇的電梯大都采用兩臺(tái)或三臺(tái)甚至多臺(tái)電梯集中排列并列調(diào)度的方法,所以電梯群控技術(shù)成為這一領(lǐng)域研究的重點(diǎn)問(wèn)題。電梯群控系統(tǒng)是通過(guò)對(duì)電梯群的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè)與分析,再根據(jù)不同的實(shí)際情況對(duì)各電梯進(jìn)行優(yōu)化調(diào)
24、度和合理分配,進(jìn)而實(shí)現(xiàn)電梯系統(tǒng)對(duì)乘客的服務(wù)質(zhì)量和服務(wù)效率的改善和提高的目標(biāo)。國(guó)內(nèi)外對(duì)于電梯群控技術(shù)的研究有較為豐富的成果。在中國(guó)期刊全文數(shù)據(jù)庫(kù)中,及中國(guó)優(yōu)秀碩士論文全文數(shù)據(jù)庫(kù)中可以找到的有關(guān)電梯群控技術(shù)的相關(guān)文章較多,大體分為以下幾種研究方向,基于遺傳算法的電梯群控系統(tǒng)研究、基于模糊神經(jīng)網(wǎng)絡(luò)的電梯群控系統(tǒng)研究,多目標(biāo)優(yōu)化的智能調(diào)度算法研究及人工智能在電梯群控系統(tǒng)中的應(yīng)用等。國(guó)外也有眾多關(guān)于電梯群控技術(shù)的相關(guān)文獻(xiàn),在MERL的網(wǎng)站上,和I
25、EEE Explore的網(wǎng)站上都可以查閱到許多關(guān)于電梯群控技術(shù)的文獻(xiàn)。國(guó)內(nèi)外的研究都注重電梯運(yùn)行效率的提高,努力達(dá)到實(shí)時(shí)高效運(yùn)行的目標(biāo)。</p><p> 1.3 本課題研究的意義</p><p> 本課題的研究有五個(gè)方面的意義:首先,仿真圖的設(shè)計(jì),能提高設(shè)計(jì)者對(duì)模擬軟件的熟練使用程度,且在對(duì)電梯仿真的過(guò)程中,鍛煉設(shè)計(jì)者盡量使用簡(jiǎn)潔明了的方式來(lái)表征電梯的運(yùn)行過(guò)程。其次,單片機(jī)編程,通過(guò)
26、這個(gè)細(xì)致的工作過(guò)程,能對(duì)單片機(jī)的各種功能、使用方法、各種規(guī)范有進(jìn)一步的理解,對(duì)其應(yīng)用也更加熟悉。再次,電梯調(diào)度算法的設(shè)計(jì)和實(shí)施,這是本課題研究的核心部分。通過(guò)對(duì)電梯運(yùn)行及控制深入的了解,歸納出電梯運(yùn)行的規(guī)范,在深刻理解的基礎(chǔ)上采用合適的算法解決。通過(guò)這個(gè)過(guò)程,提高的設(shè)計(jì)者在算法實(shí)現(xiàn)過(guò)程中的邏輯思考及模塊化的編程能力,而且對(duì)于算法的進(jìn)一步改進(jìn),提高了原有算法的效率,這是在課題研究過(guò)程中收獲頗大的一個(gè)方面。最后,整個(gè)設(shè)計(jì)過(guò)程是逐步有序進(jìn)行的
27、,需要統(tǒng)籌安排及合理布局,這樣鍛煉了設(shè)計(jì)者在軟件設(shè)計(jì)實(shí)現(xiàn)過(guò)程中使用軟件工程的思想及方法有效完成工作的能力。</p><p> 1.4 本課題的研究方法</p><p> 由于兩部電梯之間的相互關(guān)聯(lián)性很強(qiáng),程序設(shè)計(jì)比較復(fù)雜,因此在雙電梯聯(lián)動(dòng)控制系統(tǒng)的軟件部分時(shí),主要采用8位單片機(jī)編程,用模塊化的編程思想來(lái)進(jìn)行設(shè)計(jì)。這樣有利于突破沿用繼電器構(gòu)成的線路的局限,利用微處理器強(qiáng)大的算術(shù)邏輯運(yùn)算和
28、通信功能,采用實(shí)時(shí)調(diào)度算法,實(shí)現(xiàn)快速服務(wù),達(dá)到較佳的運(yùn)行效率。</p><p> 設(shè)計(jì)過(guò)程分為三個(gè)步驟進(jìn)行,一是仿真圖設(shè)計(jì),二是單片機(jī)編程,三是電梯調(diào)度算法。在仿真圖設(shè)計(jì)完成的基礎(chǔ)上,采用模塊化的編程思想,完成顯示模塊,按鍵模塊及通信模塊三個(gè)與單片機(jī)聯(lián)系密切的模塊的編程。然后在模擬軟件上測(cè)試連線及各部分輸入輸出的連線及輸入輸出正確與否。在這些工作全部完成的情況下,完成電梯調(diào)度算法模塊的編程。最后在仿真軟件是上模
29、擬實(shí)施,同時(shí)測(cè)試運(yùn)行情況,若發(fā)現(xiàn)問(wèn)題,則再修改程序,逐步完善。由于電梯控制系統(tǒng)實(shí)際上是一個(gè)人機(jī)交互式的控制系統(tǒng),因此單純采用順序控制或邏輯控制是不能夠滿足要求的,而應(yīng)該在設(shè)計(jì)中采用隨機(jī)邏輯控制方式。</p><p><b> 2 開(kāi)發(fā)工具簡(jiǎn)介</b></p><p> 2.1 AT89C51單片機(jī)</p><p> AT89C51是一種帶
30、4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器
31、,AT89C51是它的一種精簡(jiǎn)版本,其特點(diǎn)是:與MCS-51 兼容 ,8位CPU,片內(nèi)帶振蕩器,頻率范圍1.2MHz~12MHz、片內(nèi)帶128字節(jié)的數(shù)據(jù)存儲(chǔ)器,片內(nèi)帶4KB的程序存儲(chǔ)器,程序存儲(chǔ)器的尋址空間為64KB,片外數(shù)據(jù)存儲(chǔ)器的尋址空間為64KB,有21個(gè)字節(jié)特殊功能寄存器,4個(gè)8位并行I/O口,2個(gè)16位定時(shí)/計(jì)數(shù)器,2個(gè)優(yōu)先級(jí)別的5個(gè)中斷源,1個(gè)全雙工的串行I/O接口,可多機(jī)通信。</p><p>&l
32、t;b> 2.2 編程軟件</b></p><p> Keil uVision:Keil uVision為一款單片機(jī)的開(kāi)發(fā)軟件,支持匯編語(yǔ)言及高級(jí)語(yǔ)言的開(kāi)發(fā)。Keil軟件是目前最流行開(kāi)發(fā)MCS-51系列單片機(jī)的軟件。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要
33、Pentium或以上的CPU,16MB或更多RAM,20M以上空閑的硬盤空間,WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。</p><p><b> 2.3 模擬軟件</b></p><p> Proteus:Proteus軟件是來(lái)自英國(guó)Labcenter electronics公司的EDA工具軟件,具有原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能。
34、他的電路仿真是互動(dòng)的,針對(duì)微處理器的應(yīng)用,能直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼的實(shí)時(shí)調(diào)試,如有顯示及輸出,還能看到運(yùn)行后輸入輸出的效果。</p><p><b> 3 需求描述</b></p><p><b> 3.1 模擬對(duì)象</b></p><p> 仿真設(shè)計(jì)的模擬對(duì)象為學(xué)院圖書館的雙路電梯,共6層
35、及-1層。</p><p><b> 3.2 按鈕情況</b></p><p> 每層樓的電梯門外有向上和向下的要梯按鈕各一個(gè)(6樓只有向下的要梯按鈕,-1樓只有向上的要梯按鈕)。按下按鈕,按鈕燈亮,表示請(qǐng)求已被記錄,再次按下,則燈熄滅,表示請(qǐng)求取消。兩個(gè)電梯轎廂內(nèi)有11個(gè)按鈕,分別有表示-1樓至6樓的共7個(gè)樓層請(qǐng)求按鈕,開(kāi)/關(guān)門按鈕2個(gè),報(bào)警按鈕1個(gè),呼叫按鈕1
36、個(gè)。樓層及開(kāi)/關(guān)門按鈕都是按下時(shí)亮,再次按下時(shí)熄滅。報(bào)警及呼叫按鈕在異常情況下使用。</p><p> 3.3 運(yùn)行狀態(tài)顯示情況</p><p> 電梯外部和轎廂內(nèi)都有顯示屏幕,顯示電梯運(yùn)行到哪一層,同時(shí)還顯示當(dāng)前電梯的運(yùn)動(dòng)方向。若電梯停在某一層,則電梯運(yùn)動(dòng)方向無(wú)顯示,只顯示當(dāng)前樓層號(hào)。內(nèi)外對(duì)于運(yùn)行情況的顯示是相同的。</p><p> 3.4 電梯控制系統(tǒng)功
37、能要求</p><p> 3.4.1響應(yīng)外部請(qǐng)求功能</p><p> 能響應(yīng)用戶在電梯外的乘梯請(qǐng)求,從兩路電梯中選出路徑最短,代價(jià)最小的一路電梯到達(dá)用戶所在樓層。具體細(xì)則如下:</p><p><b> 外部請(qǐng)求響應(yīng)規(guī)則:</b></p><p> 若電梯運(yùn)行向上,在上行方向上有多個(gè)向上用戶請(qǐng)求,則按順序先響應(yīng)
38、最近端的請(qǐng)求。若為多個(gè)向下請(qǐng)求,則按順序從最遠(yuǎn)端開(kāi)始響應(yīng)。</p><p> 若電梯運(yùn)行向下,在下行方向上有多個(gè)外部向下請(qǐng)求,則從近端開(kāi)始響應(yīng),多個(gè)向上請(qǐng)求,則從最遠(yuǎn)端開(kāi)始響應(yīng)。</p><p> 電梯響應(yīng)外部請(qǐng)求時(shí),應(yīng)先遍歷電梯當(dāng)前樓層以上或以下的樓層是否有請(qǐng)求信號(hào)(若有向下請(qǐng)求,則遍歷當(dāng)前樓層以下的所有樓層,反之,則相反)按規(guī)則1)響應(yīng),到達(dá)響應(yīng)有請(qǐng)求的樓層。</p>
39、<p> 當(dāng)電梯響應(yīng)了某樓層的外部請(qǐng)求,此時(shí)在相同方向上更高(更低)的樓層又有請(qǐng)求出現(xiàn),則作為中斷處理,按響應(yīng)規(guī)則,先響應(yīng)更高層(更低層)的請(qǐng)求。執(zhí)行完后,在轉(zhuǎn)回執(zhí)行之前未完的請(qǐng)求。</p><p> 3.4.2 響應(yīng)內(nèi)部請(qǐng)求</p><p> 能響應(yīng)用戶在電梯內(nèi)的樓層選擇,到達(dá)乘客想要到達(dá)的目的樓層的請(qǐng)求。能響應(yīng)單個(gè),也能按順序響應(yīng)多個(gè)合理請(qǐng)求。具體細(xì)則如下:</
40、p><p> 當(dāng)用戶選擇要達(dá)到的樓層不在用戶所選擇的方向上,且該方向上沿途還有其他用戶的相同方向請(qǐng)求(如用戶請(qǐng)求到達(dá)的樓層高于當(dāng)前電梯樓層數(shù),且用戶在外部發(fā)出的請(qǐng)求是向下的,而且在下行方向是還有其他用戶的向下請(qǐng)求)則不予響應(yīng)。當(dāng)用戶選擇要達(dá)到的樓層不在用戶所選擇的方向上,且該方向上沿途沒(méi)有其他用戶的相同方向請(qǐng)求,則響應(yīng)。</p><p> 當(dāng)用戶選擇要達(dá)到的樓層為用戶所在樓層,視為不合理請(qǐng)
41、求,不予響應(yīng)。</p><p> 若在同一方向上,同時(shí)有多個(gè)合理請(qǐng)求,則按順序完成,即若向上運(yùn)行,則響應(yīng)的請(qǐng)求順序?yàn)閺牡偷礁?,若向下運(yùn)行,則響應(yīng)請(qǐng)求順序?yàn)閺母叩降汀?lt;/p><p> 3.4.3 顯示信息功能</p><p> 能對(duì)電梯的運(yùn)行狀態(tài)做實(shí)時(shí)顯示。</p><p> 在電梯外部能顯示電梯當(dāng)前電梯運(yùn)行的方向,當(dāng)前所在樓層。&l
42、t;/p><p> 能顯示當(dāng)前外部的請(qǐng)求。</p><p> 在電梯內(nèi)部能顯示電梯當(dāng)前電梯運(yùn)行的方向,當(dāng)前所在樓層。</p><p> 能顯示用戶在電梯內(nèi)部的內(nèi)部請(qǐng)求,即用戶目的地。</p><p><b> 3.5 用戶特點(diǎn)</b></p><p> 普通用戶:出入圖書館的學(xué)生、老師、工作
43、人員及來(lái)訪者及電梯維護(hù)人員。人員無(wú)具體限制,(嚴(yán)重心臟病,高血壓,及精神病患者需有人陪同)只要有乘坐電梯需要的用戶,均會(huì)使用到該系統(tǒng),為最終操作人員。</p><p> 維護(hù)人員:需要有電梯維修的技術(shù)專長(zhǎng),為被指定的維修人員。</p><p><b> 3.6 使用頻度</b></p><p> 因人流量大,軟件使用頻率很高。每天從早上8
44、點(diǎn)至晚上10點(diǎn),中間不間斷作業(yè)。</p><p><b> 3.7 處理流程</b></p><p> 處理流程主要通過(guò)數(shù)據(jù)流圖來(lái)表現(xiàn),如圖3-1和圖3-2。</p><p> 圖3-1數(shù)據(jù)流圖第一層</p><p> 圖3-2 數(shù)據(jù)流圖第二層</p><p><b> 4 仿
45、真電路圖設(shè)計(jì)</b></p><p> 4.1 設(shè)計(jì)仿真電路圖</p><p> 根據(jù)考察的電梯運(yùn)行情況,設(shè)計(jì)電路圖,要求直觀,簡(jiǎn)潔,操作簡(jiǎn)便。仿真圖如圖4-1所示。</p><p><b> 圖4-1仿真電路圖</b></p><p><b> 4.2 仿真圖說(shuō)明</b><
46、;/p><p> 從機(jī):圖4-1中左邊的單片機(jī)為從機(jī),負(fù)責(zé)數(shù)據(jù)采集。</p><p> 兩列按鍵:共10個(gè),表示每層電梯外部的向上和向下的要梯請(qǐng)求按鈕。左邊一列的5個(gè)按鍵表示1-5層的外部向上按鍵。右邊一列的5個(gè)表示2-6層的外部向下按鍵。這樣將對(duì)每層按鈕的模擬按鍵集中在一處,便于操作和模擬時(shí)便于觀察。實(shí)際電梯有6層再加上-1層。為設(shè)計(jì)和表示的方便,只取了6層,沒(méi)有設(shè)計(jì)-1層。</p
47、><p> 兩個(gè)4x4鍵盤按鍵:表示電梯的內(nèi)部按鍵,左邊鍵盤表示左邊電梯內(nèi)部按鍵,右邊鍵盤表示右邊電梯內(nèi)部按鍵。電梯內(nèi)部有1-6樓的樓層選擇按鍵,還有開(kāi)/關(guān)門的按鍵,共8個(gè)。故選用鍵盤的中間兩排,1-6數(shù)字按鍵就表示相應(yīng)的樓層號(hào),x表示關(guān)門,—表示開(kāi)門。這里沒(méi)有設(shè)計(jì)報(bào)警和呼叫按鍵。其原因是因?yàn)椋浩湟?、這兩個(gè)按鈕只在異常情況下使用,不常用。其二、對(duì)報(bào)警和呼叫按鈕的模擬只需添加一個(gè)蜂鳴器,按下鍵則發(fā)出蜂鳴聲來(lái)表示報(bào)警或
48、者呼叫,設(shè)計(jì)相對(duì)簡(jiǎn)單。因?yàn)閮善瑔纹谥饕墓δ軐?shí)現(xiàn)完后,I/O口已經(jīng)不夠用了,所以就省略了該功能。</p><p> 主機(jī):圖4-1中右邊的單片機(jī)為主機(jī),負(fù)責(zé)數(shù)據(jù)處理和顯示。</p><p> 藍(lán)色八段數(shù)碼管:共8個(gè),一組4個(gè)。顯示的數(shù)字表示在電梯內(nèi)部用戶選擇的目的樓層號(hào)。左邊數(shù)碼管的顯示表示左邊電梯用戶的選擇,右邊的數(shù)碼管則相應(yīng)表示右邊的樓層選擇。電梯內(nèi)部共有6個(gè)樓層選擇的按鍵,實(shí)際
49、應(yīng)是能響應(yīng)同時(shí)5個(gè)目的樓層的選擇請(qǐng)求(當(dāng)前層除外),但由于單片機(jī)I/O口有限,只能同時(shí)響應(yīng)4個(gè)樓層選擇請(qǐng)求。由于是仿真軟件,重要的是要仿真出電梯系統(tǒng)的運(yùn)行和控制過(guò)程,所以少一個(gè)請(qǐng)求并不會(huì)對(duì)運(yùn)行效果有太多影響。</p><p> 紅色八段數(shù)碼管:共兩個(gè),用于顯示電梯運(yùn)行到的當(dāng)前樓層號(hào)。也分左右,分別顯示左右兩部電梯所在的當(dāng)前樓層號(hào)。電梯在運(yùn)行過(guò)程中,顯示的樓層號(hào),根據(jù)其運(yùn)行到的樓層實(shí)時(shí)更新。根據(jù)輸出要求,電梯內(nèi)部
50、和電梯外部都應(yīng)有電梯運(yùn)行到的當(dāng)前樓層的顯示,且二者顯示的內(nèi)容是完全相同的,所以為了節(jié)約I/O口的使用,將二者用一組數(shù)碼管顯示。</p><p> LED燈管:共10個(gè),與左邊的10個(gè)按鍵對(duì)應(yīng),是10個(gè)按鍵請(qǐng)求的輸出顯示表示所有樓層的外部請(qǐng)求。這里將按鍵與顯示分開(kāi)表示,與實(shí)際梢有不同,但這樣表示顯得直觀,能在仿真過(guò)程中,看到所有樓層要梯請(qǐng)求的情況。燈泡分為向上和向下兩組,間隔排列,從上到下依次為向下,向上如此間隔
51、的順序。響應(yīng)的樓層及請(qǐng)求方向見(jiàn)圖上標(biāo)注。向上顯示用紅色燈表示,向下的顯示用綠色燈表示。操作時(shí)當(dāng)左邊外部按鍵有鍵被按下時(shí),對(duì)應(yīng)樓層的燈就應(yīng)該被點(diǎn)亮。當(dāng)電梯響應(yīng)請(qǐng)求,運(yùn)行到外部請(qǐng)求所在的樓層時(shí),該樓的燈就熄滅,表示請(qǐng)求已經(jīng)被應(yīng)答。</p><p><b> 5 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> 5.1 模塊設(shè)計(jì)</b></p&
52、gt;<p> 根據(jù)需求功能要求描述,電梯控制系統(tǒng)才用模塊化的編程思想,將整個(gè)系統(tǒng)大體劃分為4個(gè)模塊。數(shù)據(jù)采集模塊,通信模塊,數(shù)據(jù)處理模塊和顯示模塊。數(shù)據(jù)采集模塊負(fù)責(zé)采集從機(jī)接收的數(shù)據(jù),即記錄按鍵的情況。通信模塊負(fù)責(zé)從機(jī)與主機(jī)之間的數(shù)據(jù)傳送,從機(jī)只傳送數(shù)據(jù),主機(jī)只接受數(shù)據(jù)。數(shù)據(jù)處理模塊負(fù)責(zé)將接受到從機(jī)傳送來(lái)的數(shù)據(jù)進(jìn)行處理,利用電梯調(diào)度算法,合理調(diào)度,控制電梯運(yùn)行。顯示模塊負(fù)責(zé)顯示接收到的請(qǐng)求數(shù)據(jù),和處理模塊處理后的結(jié)果。
53、模塊之間的關(guān)系如圖5-1。</p><p> 圖5-1 模塊結(jié)構(gòu)圖</p><p> 5.2 系統(tǒng)處理流程</p><p> 系統(tǒng)處理流程如5-2處理流程圖所示。</p><p> 圖5-2 處理流程圖</p><p> 5.3 系統(tǒng)結(jié)構(gòu)描述</p><p> 系統(tǒng)結(jié)構(gòu)主要描述系統(tǒng)中
54、不同模塊之間的關(guān)系,如圖5-3系統(tǒng)結(jié)構(gòu)圖所示。</p><p> 圖5-3 系統(tǒng)結(jié)構(gòu)圖</p><p> 5.4 功能與程序的關(guān)系</p><p> 功能與程序的關(guān)系如表5-1所示。</p><p> 表5-1 功能和程序關(guān)系表</p><p><b> 6 單片機(jī)編程</b></
55、p><p> 6.1 單片機(jī)引腳使用情況</p><p> 6.1.1 從機(jī)引腳使用說(shuō)明</p><p> 單片機(jī)的最小系統(tǒng)電路一般情況不用畫出。除此之外,P0口工作在I/O方式下,接收2-5層電梯外部按鍵輸入的數(shù)據(jù),因?yàn)?層樓只有向上請(qǐng)求,6層樓只有向下請(qǐng)求,與其他樓層稍有差別,且P0口已經(jīng)分配完畢,故將1層和6層的線單獨(dú)接到P3口。因?yàn)镻0口作為I/O輸入,所
56、以必須接上拉電阻。P1口工作在I/O方式下,接收左邊電梯內(nèi)部鍵盤按鍵輸入的數(shù)據(jù)。因?yàn)殡娞輧?nèi)部按鍵只設(shè)計(jì)了8個(gè),故4x4的鍵盤,只選取了中間的兩行使用。為方便行列式鍵盤編程,兩條列線接P1.1和P1.2。P1.0和P1.3懸空,默認(rèn)為高電平。四條行線依次接P1.4-P1.7。P2口工作在I/O方式下,接收右邊電梯內(nèi)部鍵盤按鍵輸入的數(shù)據(jù),其電路連接情況與P1口相同。P3口的P3.6和P3.7工作在I/O方式下,接收電梯外部按鍵6層和1層的請(qǐng)
57、求。P3.0和P3.1采用的是其第二功能RTD和TXD,分別用于串行通信的輸出和輸入。</p><p> 6.1.2 主機(jī)引腳使用說(shuō)明</p><p> P0口工作在I/O方式下,作為2個(gè)紅色八段數(shù)碼管的顯示段選輸出,由于沒(méi)有用到小數(shù)點(diǎn),故cp懸空,P0.7默認(rèn)為高電平。P1口工作在I/O方式下,作為8個(gè)藍(lán)色八段數(shù)碼管的片選輸出。P2口工作在I/O方式下,將2-5樓層的接收外部請(qǐng)求的輸
58、出顯示。P3口的P3.4和P3.5工作在I/O方式下,將電梯外部按鍵6層和1層的請(qǐng)求輸出。P3.6和P3.7工作在I/O方式下,作為2個(gè)紅色八段數(shù)碼管的片選輸出。P3.0和P3.1采用的是其第二功能RTD和TXD,分別用于串行通信的輸出和輸入。</p><p><b> 6.2 串行通信</b></p><p><b> 6.2.1需求概述</b&
59、gt;</p><p> 在設(shè)計(jì)過(guò)程中,由于仿真6層電梯,每層都需要有對(duì)應(yīng)的向上或向下要梯的10個(gè)輸入按鈕,每個(gè)轎廂內(nèi)要有8個(gè)按鈕,對(duì)按鈕的顯示相應(yīng)有LED顯示,一個(gè)單片機(jī)的I/O口不夠用,所以設(shè)計(jì)中采用兩快單片機(jī),這就涉及兩塊單片機(jī)的通信問(wèn)題。</p><p> 6.2.2 串行通信概述</p><p> 串行通信是指數(shù)據(jù)一位一位的按順序傳送的通信方式,其突
60、出優(yōu)點(diǎn)是只需一根傳輸線,大大降低了傳輸成本,特別適用于遠(yuǎn)距離通信,通信線路簡(jiǎn)單。缺點(diǎn)是傳送速度較低。有同步傳送和異步傳送兩種方式。串行通信可通過(guò)串行接口來(lái)實(shí)現(xiàn)。</p><p> 單片機(jī)內(nèi)部有一個(gè)可編程的,全雙工的異步串行接口SBUF,有兩個(gè)獨(dú)立的發(fā)送緩沖和接受緩沖器,對(duì)外也有兩條獨(dú)立的收、發(fā)信號(hào)線RXD和TXD,可以同時(shí)發(fā)送、接受數(shù)據(jù),實(shí)現(xiàn)全雙工傳送。發(fā)送、接受數(shù)據(jù)可通過(guò)查詢或中斷方式處理,使用十分靈活,可實(shí)
61、現(xiàn)雙機(jī)、多機(jī)通信,有四種工作方式。</p><p> 6.2.3 本設(shè)計(jì)中的串行通信具體說(shuō)明</p><p> 由于只有兩塊單片機(jī),只需雙機(jī)通信,且單片機(jī)的電器特性決定傳輸數(shù)據(jù)誤差很少,可以不需要奇偶校驗(yàn),所以本設(shè)計(jì)利用串行接受在工作方式1下進(jìn)行異步串行通信。工作方式1是8位異步通信方式,波特率可變。這里波特率由定時(shí)/計(jì)數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD決定,所以在工
62、作方式1下,要對(duì)定時(shí)/計(jì)數(shù)器T1進(jìn)行初始化。編程過(guò)程中設(shè)定波特率為1200bps,振蕩頻率為12MHz。設(shè)計(jì)中通信的數(shù)據(jù)格式都有一定的規(guī)定,相應(yīng)的位數(shù)有特殊的意義,是為配合算法來(lái)規(guī)定的,在后面調(diào)度算法中詳細(xì)介紹。</p><p><b> 6.3 中斷</b></p><p> 6.3.1 需求概述</p><p> 由于電梯控制系統(tǒng)實(shí)際
63、上是一個(gè)人機(jī)交互式的控制系統(tǒng),因此單純采用順序控制或邏輯控制是不能夠滿足要求的,而應(yīng)該在設(shè)計(jì)中采用隨機(jī)邏輯控制進(jìn)行實(shí)時(shí)控制。實(shí)時(shí)控制自然需要用到中斷完成。另一方面,串行通信采用中斷方式,也能節(jié)約CPU查詢等待的時(shí)間,提高運(yùn)行效率。</p><p> 6.3.2 中斷概述</p><p> AT89C51單片機(jī)提供了5個(gè)硬件中斷源,2個(gè)外部中斷源INTO和INT1,2個(gè)定時(shí)/計(jì)數(shù)器T0和
64、T1的溢出中斷TF0和TF1,1個(gè)串行口發(fā)送TI和接收RI中斷。AT89C51的中斷系統(tǒng),是通過(guò)以下幾個(gè)特殊功能寄存器來(lái)控制的。定時(shí)器控制寄存器TCON,中斷允許寄存器IE,中斷優(yōu)先級(jí)寄存器IP,串行口控制寄存器SCON。中斷過(guò)程,是通過(guò)操作以上寄存器的各位來(lái)控制的。</p><p> 6.3.3 串行通信中斷</p><p> AT89C51的串行口中斷源對(duì)應(yīng)兩個(gè)中斷標(biāo)志位RI和TI
65、,無(wú)論哪個(gè)標(biāo)志位置“1”都請(qǐng)求串行口中斷,到底是發(fā)送中斷還是接收中斷,只有在中斷服務(wù)程序中通過(guò)指令查詢來(lái)判斷。串行口中斷響應(yīng)后,不能由硬件自動(dòng)清零,必須由軟件對(duì)TI或RI清零。在程序中,需首先設(shè)置中斷允許總控位EA和串行口中斷允許位ES為“1”,然后才能進(jìn)行串行通信中斷,在發(fā)送端(從機(jī))通過(guò)判斷RI來(lái)進(jìn)行數(shù)據(jù)傳送,在接收端(主機(jī))通過(guò)判斷TI來(lái)接收數(shù)據(jù)。</p><p> 6.3.4 定時(shí)/計(jì)數(shù)器中斷</
66、p><p> 定時(shí)/計(jì)數(shù)器中斷是由TF、ET兩個(gè)標(biāo)志位控制的。當(dāng)定時(shí)/計(jì)數(shù)器TO/TI溢出時(shí),由硬件置TF為“1”,向CPU發(fā)送中斷請(qǐng)求,當(dāng)CPU響應(yīng)中斷后,由硬件自動(dòng)清除TF。ET為定時(shí)/計(jì)數(shù)器的溢出中斷允許位,當(dāng)ET為“1”時(shí),才允許中斷。程序中,中斷的初始設(shè)置為ET0=1。TF由硬件自動(dòng)設(shè)置。</p><p><b> 6.4 定時(shí)器設(shè)置</b></p&g
67、t;<p> 6.4.1 串行通信定時(shí)設(shè)置</p><p> 串行通信中工作方式1需設(shè)置波特率,波特率由定時(shí)/計(jì)數(shù)器T1的溢出率和電源控制寄存器PCON中的SMOD決定,所以在工作方式1下,要對(duì)定時(shí)/計(jì)數(shù)器T1進(jìn)行初始化。串行通信時(shí),定時(shí)器通常采用定時(shí)器方式2即8位重裝計(jì)數(shù)方式,這樣不但操作方便,也可避免指令重裝時(shí)間常數(shù)帶來(lái)的定時(shí)誤差。</p><p> 定時(shí)/計(jì)數(shù)器的
68、工作方式、計(jì)數(shù)(定時(shí))值、中斷控制等都是有程序來(lái)設(shè)定的,在AT89C51單片機(jī)中,是通過(guò)特殊功能寄存器TMOD(定時(shí)器方式控制寄存器)和TCON(定時(shí)器控制寄存器)來(lái)設(shè)置的。程序中設(shè)置TMOD=0x21,即定時(shí)/計(jì)數(shù)器1在工作方式2下,定時(shí)方式。設(shè)置TCON中的TR1=1,表示開(kāi)始計(jì)數(shù)。由于編程過(guò)程中設(shè)定波特率為1200bps,振蕩頻率為12MHz。</p><p> 計(jì)數(shù)初值=256- × /(1
69、2*波特率*32)=0xe6</p><p> 所以TH1=0xe6,TL1=0xe6。</p><p> 6.4.2 定時(shí)/計(jì)數(shù)器設(shè)置</p><p> 電梯的運(yùn)行過(guò)程首先是idle(空閑),收到一個(gè)請(qǐng)求,進(jìn)行計(jì)算,得出要??康牡胤?,然后進(jìn)入running,每5秒爬升或降低一樓,如果到達(dá)目的地,則進(jìn)入opening,并清除有關(guān)數(shù)據(jù),2秒后進(jìn)入waiting,
70、等待5秒進(jìn)入closing,2秒后重新進(jìn)行計(jì)算,得出下次的目的地。這就需要設(shè)置電梯的速度,每5s爬一層,等待時(shí)間為5s,等待接受請(qǐng)求的時(shí)間為2s。由于定時(shí)/計(jì)數(shù)器方式1為16位計(jì)數(shù)器,其所能計(jì)的最大數(shù)值為65535,計(jì)時(shí)不能1s,而程序中需要的定時(shí)都是以s為單位的,所以就只有利用定時(shí)和計(jì)數(shù)兩種當(dāng)時(shí)結(jié)合來(lái)達(dá)到定時(shí)5s或者2s。由于程序中需要定時(shí)的時(shí)間不只一個(gè),只使用一個(gè)定時(shí)器,要達(dá)到要求,采用以下的思路:定時(shí)50ms,計(jì)數(shù)20,這樣可以達(dá)
71、到1s的時(shí)間,然后再利用for循環(huán),用一個(gè)變量來(lái)計(jì)數(shù)到2或者5,表示是達(dá)到了2s或者5s ,這樣就能靈活的操作不同狀態(tài)下的時(shí)間了。程序中設(shè)置TOMD=0x21,即定時(shí)/計(jì)數(shù)器0在工作方式1下,定時(shí)方式。設(shè)置TRO=1,開(kāi)始計(jì)數(shù)。計(jì)數(shù)初值有公式計(jì)算得出TH0=0x3c,TL0=0xb0。</p><p><b> 6.5 行列式鍵盤</b></p><p> 單片機(jī)
72、系統(tǒng)的鍵盤一般使用非編碼鍵盤,其特點(diǎn)是硬件電路簡(jiǎn)單,必須有一套相應(yīng)的程序與之配合。使用非編碼鍵盤,需要用軟件來(lái)解決按鍵識(shí)別、防止抖動(dòng)及鍵碼的產(chǎn)生等工作。采用行掃描法來(lái)識(shí)別按鍵,程序中使用的是4x4的鍵盤,只使用了中間的兩行,8條線可以接在一個(gè)I/O口上。然后通過(guò)交替變換I/O的引腳的高低電平來(lái)確定按鍵。先設(shè)置引腳高4位為高,低4位為低,當(dāng)有鍵按下時(shí),高4位就會(huì)有相應(yīng)的一條線就會(huì)變?yōu)榈碗娖?,得到一個(gè)碼值。然后取相反的設(shè)置,有鍵按下時(shí),低4
73、位就會(huì)有相應(yīng)的一條線就會(huì)變?yōu)榈碗娖?,則可以再得到一個(gè)碼值。最后將兩個(gè)得到的碼值相或,則可以得出鍵碼。而按鍵去抖動(dòng),才用的是在檢測(cè)到有鍵按下時(shí),等待一段時(shí)間再進(jìn)行“行掃描”,延時(shí)時(shí)間為10-20ms,這可通過(guò)延遲子程序來(lái)解決。程序中,使用4x4的鍵盤的中間兩行,有1-6層的數(shù)字,分別表示相應(yīng)的樓層號(hào),及x和-,x表示關(guān)門,-表示開(kāi)門。得到鍵碼后,還要將鍵碼轉(zhuǎn)換為對(duì)應(yīng)的鍵盤上的數(shù)字或者開(kāi)/關(guān)門表示,這樣行列鍵盤的編程工作才算全部完成。<
74、;/p><p> 6.5.1段數(shù)碼管動(dòng)態(tài)掃描顯示</p><p> LED顯示器工作方式有兩種:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來(lái),就沒(méi)有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡(jiǎn)化了硬件電路。點(diǎn)亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺(jué)暫
75、留作用,使人的感覺(jué)好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。 </p><p> 使用7段數(shù)碼管顯示器,有共陰和共陽(yáng)兩種接法,本設(shè)計(jì)中采用共陰接法。為了顯示數(shù)字或字符,必須對(duì)數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個(gè)小數(shù)點(diǎn),共計(jì)8段。因此為L(zhǎng)ED顯示器提供的編碼正好是一個(gè)字節(jié)。</p><p> 設(shè)計(jì)中需要用到7段數(shù)碼管顯示
76、的有兩處,一是顯示所選擇的內(nèi)部請(qǐng)求即目的地,二是顯示電梯當(dāng)前所到達(dá)的摟層。內(nèi)部請(qǐng)求的顯示,最多需要同時(shí)顯示4個(gè)摟層,要用到4個(gè)7段數(shù)碼管,采用動(dòng)態(tài)顯示的方式。而且為了保證顯示的樓層不斷的刷新顯示,請(qǐng)求被響應(yīng)的過(guò)程清晰明了,使顯示的樓層數(shù)字按從左到右,從大到小的順序排列。這樣能很明了的看出誰(shuí)先被響應(yīng),響應(yīng)的順序是怎樣的。這個(gè)過(guò)程,是在程序中從6樓到1樓的數(shù)字循環(huán)檢測(cè),有內(nèi)部請(qǐng)求,則顯示段碼,然后再?gòu)挠业阶笠莆黄x碼,來(lái)達(dá)到從右邊開(kāi)始顯示的
77、效果。然后不斷的循環(huán)檢測(cè)是否有顯示,這樣如果有3個(gè)目的地,其中一個(gè)到達(dá)后,相應(yīng)的藍(lán)色數(shù)碼管所顯示的該目的地就會(huì)熄滅。由于不斷循環(huán),后兩個(gè)目的地則會(huì)依次移動(dòng)一個(gè)位置。這樣的顯示效果是因?yàn)檠h(huán)顯示才完成的。</p><p> 6.5.2 LED燈泡顯示</p><p> LED燈泡的亮和滅是通過(guò)設(shè)置引腳的電平變化來(lái)實(shí)現(xiàn)的。這里著重描述的是本設(shè)計(jì)中燈泡工作的程序?qū)崿F(xiàn)。LED燈泡表示外部請(qǐng)求情
78、況,如仿真圖所示共10個(gè)燈泡,分別對(duì)應(yīng)從機(jī)的十個(gè)外部按鍵,除去1層和6層的按鍵,中間8個(gè)都接在P2口,用一個(gè)長(zhǎng)度為8的字符數(shù)組表示,數(shù)組相應(yīng)的位置上為“1”則燈泡亮。從機(jī)的按鍵是分為向上和向下兩組的,主機(jī)的顯示通過(guò)把兩組交替合并顯示,程序8位數(shù)組進(jìn)行操作,通過(guò)移位和“或”操作來(lái)得到表示向上和向下的燈泡交替出現(xiàn)的,且對(duì)應(yīng)左邊相應(yīng)的樓層請(qǐng)求。詳細(xì)可見(jiàn)程序display()。</p><p><b> 7
79、軟件設(shè)計(jì)概述</b></p><p> 7.1 軟件設(shè)計(jì)總體流程</p><p> 程序?qū)崿F(xiàn)的總體結(jié)構(gòu)如圖7-1所示。</p><p> 圖7-1 系統(tǒng)程序總體結(jié)構(gòu)圖</p><p><b> 說(shuō)明:</b></p><p> 由于電梯控制系統(tǒng)實(shí)際上是一個(gè)人機(jī)交互式的控制系統(tǒng)
80、,實(shí)時(shí)處理的要求很高,基于這一點(diǎn),該軟件設(shè)計(jì)的思想就將所有交互的操作采用中斷完成。主程序只負(fù)責(zé)不斷的刷新顯示,有外部事件的申請(qǐng),才中斷,轉(zhuǎn)去執(zhí)行中斷程序,中斷程序執(zhí)行完之后就返回,繼續(xù)執(zhí)行顯示程序。在通信中斷和定時(shí)中斷程序中去調(diào)用電梯調(diào)度算法程序,實(shí)現(xiàn)電梯調(diào)度。程序中有兩個(gè)中斷程序,串行通信中斷和定時(shí)/計(jì)數(shù)器中斷,單片機(jī)中規(guī)定了這兩個(gè)中斷源的優(yōu)先級(jí),定時(shí)中斷的優(yōu)先級(jí)大于串行通信中斷,這樣程序中不會(huì)出現(xiàn)同時(shí)中斷,需要判斷由誰(shuí)先響應(yīng)的問(wèn)題。
81、考慮到該系統(tǒng)的算法實(shí)現(xiàn)都是由中斷實(shí)現(xiàn)的,如果算法的處理太復(fù)雜,就會(huì)影響響應(yīng)的速度,所以采用了并聯(lián)電梯的忙梯算法,而沒(méi)有采用更加高效的神經(jīng)網(wǎng)絡(luò)模糊算法等,因?yàn)檫@樣軟件復(fù)雜程度高,不利于系統(tǒng)的運(yùn)行。</p><p> 7.2 電梯群控概述</p><p> 一座建筑物往往需要安裝兩臺(tái)或兩臺(tái)以上電梯,但如果只裝兩臺(tái)或是兩臺(tái)以上各自獨(dú)立運(yùn)行的電梯,并不能提高效率。以A、B兩臺(tái)電梯為例,如果某一
82、層乘客要求上行,按下兩臺(tái)電梯的上召喚按鈕,則兩臺(tái)電梯會(huì)同時(shí)應(yīng)召前往,結(jié)果一臺(tái)電梯往往是空行;又如,有兩個(gè)鄰層的上召喚信號(hào),本可由B電梯順向停靠應(yīng)召,但如果兩個(gè)上召信號(hào)分別給了A、B,則兩臺(tái)電梯同時(shí)上行。這種線路不能合理調(diào)配電梯,而采用雙梯并聯(lián)或群控可以大大提高運(yùn)行效率.當(dāng)建筑物中多臺(tái)電梯處于并聯(lián)或群控狀態(tài)時(shí),對(duì)信號(hào)控制系統(tǒng)設(shè)計(jì)好壞的評(píng)價(jià)標(biāo)準(zhǔn)是電梯響應(yīng)召喚的快速性和運(yùn)行能量的最小化。電梯群控技術(shù)就是為解決這樣的問(wèn)題產(chǎn)生的。電梯群控系統(tǒng)是指
83、在一座大樓內(nèi)的數(shù)臺(tái)電梯通過(guò)一個(gè)或多個(gè)的控制器(計(jì)算機(jī))互聯(lián)控制。該系統(tǒng)可以采集到每臺(tái)電梯的內(nèi)召,上下外召、載重以及位置等信號(hào),并可向每臺(tái)電梯發(fā)送控制信號(hào)。主控制器對(duì)該組電梯進(jìn)行統(tǒng)一調(diào)度管理,使他們合理運(yùn)行。群控電梯的控制具有多目標(biāo)行,非線性性不確定性。具體要求及特性如下:</p><p> 乘客的平均候梯時(shí)間要盡量短。</p><p> 盡量減少乘客的長(zhǎng)候梯率,即盡量避免產(chǎn)生上時(shí)間的候
84、梯過(guò)程。</p><p> 轎廂到達(dá)的預(yù)報(bào)準(zhǔn)確率高,減少乘客的等待時(shí)的心理壓力。</p><p> 電梯運(yùn)送乘客的時(shí)間要盡量短,并合理分配電梯應(yīng)答,防止堆聚和忙閑不分。</p><p> 選擇能源消耗最節(jié)省的方式,盡量降低能耗。</p><p> 層站的乘客書不確定。</p><p> 呼梯者的目的站不能事先
85、確定。</p><p> 對(duì)同一組呼梯,在不同的時(shí)間標(biāo)度下,轎廂的分配是不同的,轎廂分配的變化是不連續(xù)的。</p><p><b> 7.3 忙梯算法</b></p><p><b> 7.3.1算法概述</b></p><p> 通常情況下,一臺(tái)電梯(A 梯)在基站待命,另一電梯(B梯)為
86、忙梯,在最后的服務(wù)層。有召喚時(shí)由忙梯響應(yīng),如圖7-2(a)所示。</p><p> 當(dāng)兩個(gè)電梯均在基站時(shí),對(duì)廳召喚由先到基站的電梯響應(yīng),另一電梯則成為基站梯。</p><p> 當(dāng)B梯上行時(shí),響應(yīng)其上方的任何廳召喚及下方的下方向召喚,而其下方的上方向召喚則由A梯響應(yīng),如圖7-2(b)所示。</p><p> 當(dāng)B梯下行時(shí),響應(yīng)其下方的下行召喚,而其下方的上召喚
87、及上方的任何廳召喚則由A梯來(lái)響應(yīng),如圖7-2(c)所示。</p><p> 當(dāng)A梯召喚很多而B梯長(zhǎng)時(shí)間不具備發(fā)車條件,或A梯因有故障長(zhǎng)時(shí)間不能正常運(yùn)行時(shí),通知B梯發(fā)車響應(yīng)。</p><p> 圖7-2并聯(lián)電梯算法調(diào)度情況</p><p> 7.3.2 算法評(píng)價(jià)</p><p> 以上調(diào)度原則簡(jiǎn)單明了、易于實(shí)現(xiàn),但存在不足。主要缺陷在于
88、,并聯(lián)電梯的調(diào)度情況只考慮召喚的方向而未考慮召喚離服務(wù)梯的距離,因此對(duì)3) 和4) 兩個(gè)原則,很可能出現(xiàn)一臺(tái)電梯空閑,另一臺(tái)電梯過(guò)忙的情況。這一情況雖可通過(guò)5) 來(lái)解決,但要等一段時(shí)間,故實(shí)時(shí)性較差.因此繼電器的硬件線路的調(diào)度方法無(wú)法解決距離的問(wèn)題,這只有依靠微處理器的邏輯運(yùn)算和通信功能解決,所以以一臺(tái)電梯為“忙梯”的調(diào)度原則并不能解決快速服務(wù)問(wèn)題。 </p><p> 7.3.3 算法的改進(jìn)之處</p&
89、gt;<p> 正常情況下,當(dāng)電梯使用以后,B梯作為忙梯會(huì)首先自動(dòng)上升至第三層待命,A梯則作為基站電梯在第一層樓待命。當(dāng)某層站有門廳呼叫信號(hào)時(shí),則“忙梯”立即啟動(dòng)并定向運(yùn)行去接該層站的乘客。</p><p> 對(duì)7-2(c)的運(yùn)行規(guī)則的改變:當(dāng)B梯向下運(yùn)行時(shí),響應(yīng)其下方的任何請(qǐng)求,和其上方的向上請(qǐng)求,而其上方的向下請(qǐng)求,由A梯響應(yīng),如圖7-3 (c)示。這樣避免出現(xiàn)基本梯過(guò)忙的情況。&
90、lt;/p><p> 由于此算法導(dǎo)致出現(xiàn)一臺(tái)電梯過(guò)忙的情況,為實(shí)現(xiàn)負(fù)載平衡,采用有效原則。當(dāng)兩臺(tái)電梯因轎廂內(nèi)指令而到達(dá)基站后關(guān)門待命時(shí),則應(yīng)按照有效利用的原則,執(zhí)行相互交替程序段。原先充當(dāng)忙梯的電梯現(xiàn)在即作為基站電梯來(lái)使用,而原先作為基站電梯使用的電梯此時(shí)即成為忙梯。不論是A梯還是B梯均停留在最后停靠的層站待命。這樣的改進(jìn)就避免了一臺(tái)電梯過(guò)忙的情況。</p><p> 圖7-3 改進(jìn)后的
91、電梯調(diào)度情況</p><p> 7.4 電梯調(diào)度算法流程</p><p> 核心的調(diào)度算法主要有外部請(qǐng)求調(diào)度算法和內(nèi)部請(qǐng)求調(diào)度算法,兩算法之間也有關(guān)聯(lián),具體調(diào)度過(guò)程如圖7-4所示。</p><p> 圖7-4 電梯調(diào)度算法流程圖</p><p> 7.5 程序代碼及說(shuō)明</p><p> 7.5.1 確定請(qǐng)求
92、類型函數(shù)</p><p> 電梯運(yùn)行方向上,對(duì)請(qǐng)求合理響應(yīng),以較優(yōu)的方式到達(dá)目的地。</p><p> 則搜尋上行方向的內(nèi)部請(qǐng)求和外部向上的請(qǐng)求,以離電梯當(dāng)前位置最近的先響應(yīng)。</p><p> 如果沒(méi)有這兩個(gè)請(qǐng)求,則搜尋上行方向的向下請(qǐng)求。按最遠(yuǎn)的先響應(yīng)。</p><p> 如果仍然無(wú)請(qǐng)求,則搜尋下行方向的內(nèi)部請(qǐng)求和向下請(qǐng)求,按最近
93、的先響應(yīng)。</p><p> 仍無(wú)請(qǐng)求,則搜尋下行方向的向上請(qǐng)求。按最遠(yuǎn)響應(yīng)。</p><p> 如果都無(wú)請(qǐng)求,則為空閑,停在當(dāng)前層待命。</p><p> void scheduleLeftUp(void) //確定請(qǐng)求類型,目的地和運(yùn)行方向。請(qǐng)求類型0x01表示內(nèi)部請(qǐng)求,0x02為外部向上請(qǐng)求,0x04為外部向下請(qǐng)求</p><p
94、><b> {</b></p><p><b> int i;</b></p><p> for(i = leftFloor + 1; i < 7; i++)//從當(dāng)前層的上一層開(kāi)始逐層搜尋請(qǐng)求</p><p><b> {</b></p><p>
95、if(leftRequest[i - 1])//有內(nèi)部請(qǐng)求,則設(shè)置請(qǐng)求類型和目的地</p><p><b> {</b></p><p> leftType |= 0x01;//0x01為內(nèi)部請(qǐng)求表示</p><p> leftDest = i;</p><p><b> }</b&g
96、t;</p><p> if(leftExterUp[i - 1])//有外部請(qǐng)求</p><p><b> {</b></p><p> leftType |= 0x02;</p><p> leftDest = i;</p><p><b> }</b>&
97、lt;/p><p> if(leftType != 0x00)//在運(yùn)行方向上行,確定請(qǐng)求類型和目的地之后及時(shí)返回</p><p><b> {</b></p><p> leftDirect = 1;// 運(yùn)行方向?yàn)橄蛏?lt;/p><p> return;</p><p&g
98、t;<b> }</b></p><p><b> }</b></p><p> for(i = 6; i > leftFloor; i--)//上行方向沒(méi)有前面兩種請(qǐng)求,則從上往下搜尋是否有向下請(qǐng)求。</p><p><b> {</b></p><p>
99、 if(leftExterDown[i - 1])//has external down request</p><p><b> {</b></p><p> leftType = 0x04;//0x04 為外部向下請(qǐng)求</p><p> leftDest = i;</p><p> leftDi
100、rect = 1;//運(yùn)行方向仍然為上,要運(yùn)行到呼梯樓層。</p><p><b> return;</b></p><p><b> }</b></p><p> if(leftType != 0x00)</p><p><b> {</b><
101、/p><p> leftDirect = 1;</p><p> return;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
102、; 7.5.2 運(yùn)行參數(shù)設(shè)置函數(shù)</p><p> 根據(jù)不同的運(yùn)行方向,調(diào)用上述函數(shù),確定電梯請(qǐng)求類型,目的地,運(yùn)行方向,然后啟動(dòng)電梯運(yùn)行。</p><p> void scheduleLeft(void)//左邊電梯運(yùn)行的調(diào)度函數(shù)</p><p><b> {</b></p><p> if(l
103、eftDirect == 1)//電梯向上運(yùn)行</p><p><b> {</b></p><p> leftType = 0x00;</p><p> scheduleLeftUp();//左邊電梯的請(qǐng)求類型,目</p><p><b> 的地,運(yùn)行方向</b>
104、</p><p> if(leftType == 0x00) //上行方向沒(méi)有請(qǐng)求</p><p><b> {</b></p><p> scheduleLeftDown();//電梯運(yùn)行方向可以在此改變</p><p> if(leftType == 0x00) //下行方向上沒(méi)
105、有請(qǐng)求</p><p><b> {</b></p><p> leftRequest[leftFloor - 1] = 0;</p><p> leftExterUp[leftFloor - 1] = 0;</p><p> leftExterDown[leftFloor - 1] = 0;</p>
106、<p> leftDirect = 0;</p><p> leftStatus = idle;</p><p> if(leftFloor == 1 && rightFloor == 1 && rightStatus == idle)</p><p><b> {</b></p&
107、gt;<p> busyEle++;</p><p> busyEle %= 2;//當(dāng)兩部電梯都在1樓空閑時(shí),交替忙梯標(biāo)志</p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b&g
108、t;</p><p><b> else</b></p><p><b> {</b></p><p> leftExterDown[leftFloor - 1] = 0;//若有請(qǐng)求,則電梯繼續(xù)向上運(yùn)行,清除該樓層外部請(qǐng)求。</p><p><b> }</b><
109、;/p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> leftExterUp[leftFloor - 1] = 0;</p><p><b> }<
110、/b></p><p><b> }</b></p><p> else//向下運(yùn)行,過(guò)程基本同向上運(yùn)行</p><p><b> {</b></p><p> leftType = 0x00;</p><p> scheduleLeftDo
111、wn();</p><p> if(leftType == 0x00)</p><p><b> {</b></p><p> scheduleLeftUp();</p><p> if(leftType == 0x00)</p><p><b> {</b><
112、;/p><p> leftRequest[leftFloor - 1] = 0;</p><p> leftExterUp[leftFloor - 1] = 0;</p><p> leftExterDown[leftFloor - 1] = 0;</p><p> leftDirect = 0;</p><p>
113、 leftStatus = idle;</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p&g
114、t; leftExterUp[leftFloor - 1] = 0;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
115、<p> leftExterDown[leftFloor - 1] = 0;</p><p><b> }</b></p><p><b> }</b></p><p> if(leftStatus == idle)//啟動(dòng)電梯</p><p> leftStatu
116、s = running;</p><p><b> }</b></p><p> 7.5.3 外部請(qǐng)求處理函數(shù)</p><p><b> 外部請(qǐng)求處理過(guò)程:</b></p><p> 外部請(qǐng)求與電梯所在位置相同,然后判斷電梯的狀態(tài),若為idle或者closing,則響應(yīng)外部請(qǐng)求,立即開(kāi)門。若
117、為running,則記錄下請(qǐng)求,將請(qǐng)求寫入請(qǐng)求隊(duì)列。其他狀態(tài)不予響應(yīng)。</p><p> 外部請(qǐng)求與電梯所在位置不同,則將請(qǐng)求寫入請(qǐng)求隊(duì)列,調(diào)用前一函數(shù)響應(yīng)。</p><p> void scheduleExterLeft(uchar floor, uchar direct)//左邊電梯請(qǐng)求處理,direct=0為外部向上請(qǐng)求 1為外部向下請(qǐng)求</p><p&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- plc電梯控制系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 電梯控制系統(tǒng)畢業(yè)論文
- plc的電梯控制系統(tǒng)(畢業(yè)論文設(shè)計(jì))
- 電梯的plc控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 自動(dòng)化畢業(yè)論文四層電梯控制系統(tǒng)的仿真設(shè)計(jì)
- 電梯裝置plc控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于plc的電梯控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- plc電梯控制系統(tǒng)畢業(yè)論文
- plc電梯控制系統(tǒng)畢業(yè)論文
- plc電梯控制系統(tǒng)畢業(yè)論文
- 自動(dòng)電梯模擬控制系統(tǒng)--畢業(yè)論文
- 五層電梯控制系統(tǒng) 畢業(yè)論文
- 基于fpga電梯控制系統(tǒng)畢業(yè)論文
- 基于plc的電梯控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 六層電梯的plc控制系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文-五層電梯plc控制系統(tǒng)設(shè)計(jì)
- 六層電梯的plc控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于plc四層電梯控制系統(tǒng)設(shè)計(jì)——畢業(yè)論文
- 基于plc的四層電梯控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文-基于PLC的電梯控制系統(tǒng)改造設(shè)計(jì).doc
評(píng)論
0/150
提交評(píng)論