逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … ·...

62
自動控制工程學系畢業專題報告 智慧型電梯控制系統 The Control System of Intelligent Elevator 指導教授:洪三山 生:白嘉雄 吳建源 許龍泰 中華民國 九十年 六月

Upload: others

Post on 23-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

逢 甲 大 學

自 動 控 制 工 程 學 系 畢 業 專 題 報 告

智慧型電梯控制系統

The Control System of Intelligent

Elevator

指導教授:洪三山

學 生:白嘉雄

吳建源

許龍泰

中華民國 九十年 六月

Page 2: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的
Page 3: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

i

中 文 摘 要

而本研究的主要有二個目標,其一為讓電梯在耗電方面的節省,其二為節省

搭載人等待的時間。省時的功能主要應用在大樓上下班時,必須快速載運人潮的

尖峰時段,而省電的功能只應用在人潮較為稀少的離峰時段,利用下降電梯比上

升電梯所節省位能的原理,來達到省時、省電的智慧型電梯控制。

本研究是利用 Borland C++ Builder (BCB4.0)這套程式語言軟體,以及 8255

這顆單晶片的實驗介面卡,透過 PC 強大的功能,我們可以經由 8255 卡的 I/O

介面來控制直流馬達的正反轉以及感應器、按鈕的輸入,以達到基本的電梯控制。

而我們之所以選擇透過 PC 來做電梯的控制,是因有感於當前的傳統電梯是

利用繼電器來控制,較缺乏智慧性的判別,而只能夠做順序的控制,而透過 PC

則可經由程式的撰寫,來達到各種狀況的需要。

Page 4: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

ii

ABSTRACT

In this report, there are two significant functions will be improved. One is to save

more electricity. The other is to save the time of waiting for the elevator. The function

of saving the waiting time can be applied to the rush hour when lots of people are

getting to work or out of work. On the contrary, the function of saving electricity will

be helpful. We know the go-down elevator can save potential energy than go-up

elevator. That’s the reason why we design this intelligent elevator.

In this report, we use single 8255A interface card with Borland C++Builder

(BCB4.0) to control the elevator. By the powerful function of PC, we can use 8255A’s

I/O port to control the circuit and to read the signal from the buttons or the sensors.

The reason why we choose PC to be the controller since the traditional elevator

which are controlled by the relay are lack for intelligent programs every demand of

any situation can be attained easily.

Page 5: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

iii

謝 誌

本專題研究承蒙恩師 洪副教授三山的指導與啟迪始得順利進行,在此敬上

十二萬分謝意。在多次的討論下決定了研究的方針,在校期間老師不因寒暑照常

指導我們,細心的探討問題,讓我們對於研究的問題能徹底的了解。另外也感謝

學長、同學的幫忙與賴奕千助教的協助指導,讓這專題能順利成功的發表出來。

Page 6: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

iv

目錄

中 文 摘 要........................................................ I

ABSTRACT.......................................................... II

謝 誌......................................................... III

目錄.............................................................. IV

圖目錄............................................................ VI

表格目錄........................................................ VIII

第 1 章 前言...................................................... 1

1-1 電梯自動控制之問題 ..................................................................................1 1-2 本文之研究動機、方法與內容 ..................................................................1 1-3 本文之研究目標 ..........................................................................................1

第 2 章 硬體介面的設計............................................ 3

2-1 8255A 的應用 ..............................................................................................3 2-1-1 8255A 的特色及使用方法 ..........................................................................3 2-1-2 8255 的腳位及說明 .....................................................................................3 2-1-3 8255 內部結構 .............................................................................................5 2-1-4 8255 四個方塊圖的說明 .............................................................................5 2-1-5 8255A 的操作命令 ......................................................................................7 2-1-6 8255 控制字組(Control Word)....................................................................7 2-1-7 操作模式的特性 .........................................................................................8

2-2 外部電路 ....................................................................................................12 2-2-1 第一顆 8255A 與外部介面電路 .........................................................12 2-2-2 第二顆 8255A 與外部介面電路 .........................................................18 2-2-3 電源電路..............................................................................................19

第 3 章 軟體的設計與流程......................................... 22

3-1 省電電梯動作流程圖 ................................................................................22 3-2 軟體 ............................................................................................................27

3-2-1 C++ Builder 介紹......................................................................................27 3-2-1-1 分散式應用系統的開發.....................................................................28

Page 7: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

v

3-2-1-2 運用既有 C++資源 ............................................................................28 3-2-1-3 資料庫存取........................................................................................28 3-2-1-4 完整支援 Microsoft Transaction Server.............................................29 3-2-1-5 運用 MIDAS 開發多層分散式應用系統..........................................29

3-2-2 軟體設計 ...................................................................................................29 3-2-2-1 軟體執行之外觀................................................................................29 3-2-2-2 設計表單............................................................................................33

第 4 章 專題結果及討論........................................... 40

4-1 專題結果 ...........................................................................................................40 4-1-1 實驗設備及儀器 ........................................................................................40 4-1-2 舒適感的考慮 ............................................................................................40 4-1-3 電梯硬(軟)體架構 .....................................................................................40

4-2 討論 ...................................................................................................................41 4-2-1 誤差: ........................................................................................................41 4-2-2 建議: ........................................................................................................41 4-2-3 結論: ........................................................................................................41

附錄一(程式).................................................... 43

附錄二(參考文獻).................................................. 52

Page 8: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

vi

圖目錄

圖 2- 1 8255 腳位圖 .................................................3

圖 2- 2 8255 方塊圖 .................................................5

圖 2- 3 8255 控制字碼 ...............................................8

圖 2- 4 模式 0:基本輸出/輸入埠 .....................................9

圖 2- 5 第一顆 8255A 與外部介面電路圖...............................12

圖 2- 6 第一顆 8255A 與外部介面電路圖(達靈頓電路)以電晶體推動繼電器.13

圖 2- 7 第一顆 8255A 與外部介面電路圖(RELAY)........................15

圖 2- 8 第一顆 8255A 與外部介面電路圖(SENSOR).......................16

圖 2- 9 外部全貌...................................................17

圖 2- 10 第二顆 8255A 與外部介面電路................................18

圖 2- 11 電源電路..................................................19

圖 2- 12 正半週之電流路徑..........................................19

圖 2- 13 負半週之電流路徑..........................................19

圖 2- 14 電源電路外觀..............................................20

圖 2- 15 電梯實體外觀..............................................21

圖 3- 1 主程式流程…………………………………………………..………….24

圖 3- 2 副程式 1:使用者樓層與電梯 1位置作比較,決定馬達之正逆轉 ...25

圖 3- 3 副程式 2:使用者樓層與電梯 2位置作比較,決定馬達之正逆轉 ...26

圖 3- 4 副程式 3:到達使用者樓層後與欲往樓層作比較,決定馬達之轉向..27

圖 3- 5 程式執行時之外觀...........................................30

圖 3- 6 程式執行時之外觀(電梯位置) .................................30

圖 3- 7 程式執行時之外觀(外部按鈕) .................................31

圖 3- 8 程式執行時之外觀(控制兩部電梯上下) .........................32

圖 3- 9 設計表單 ...................................................33

Page 9: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

vii

圖 3- 10 設計表單-1................................................34

圖 3- 11 設計表單-2 ................................................36

圖 3- 12 設計表單-3 ................................................37

圖 3- 13 設計表單-4 ................................................39

Page 10: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

viii

表格目錄

表格 2- 1 8255A 真值表 ..............................................4

表格 2- 2 控制資料與控制字組........................................6

表格 2- 3 8255 控制字碼 .............................................8

表格 2- 4 模式 0的 I/O 組態及控制字組................................9

表格 2- 5 模式 1的 I/O 組態及控制字組 ...............................10

表格 2- 6 模式 2的 I/O 組態及控制字組 ...............................11

Page 11: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

1

第 1章 前言

1-1 電梯自動控制之問題

由於工商業的高度發展,使得人類生活領域逐漸的擴大,同時也縮小了人類

的活動空間,因而方有高樓大廈的出現,電梯即是在這種情況下的的時代產物,

因為它可以提供人類上下高樓的便利。依據我國現行建築法律規定,凡建築物高

度超過六層樓時,即須加裝電梯的設備,所以為了經濟、舒適以及安全的原因,

電梯需要自動控制來幫助他的運轉與操作的正確性。因為電梯功能有限,無法因

乘客需求或時段的不同,來做不同之變化,所以會造成能源上或時間上的浪費。

1-2 本文之研究動機、方法與內容

我們都知道電梯會作上下樓層的動作,電梯的動能是由馬達所提供,再此我

們假設電梯上下樓時速度是一樣的,所以上樓或下樓時,所產生的位能變化,可

以影響電梯的耗電與否。

實際的電梯系統包括了機械、電機、自動控制、電子的綜合技術,其結構相

當複雜,而現有電梯之機械部份及其安全系統均已相當完備,其所需要改進的地

方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

控制要求,並擬定了下列的原則:

(1) 採用 C++ Builder 來做信號的處理及判斷。

(2) 採用直流馬達來作為電梯的動力。

(3) 使用 8255A 來作為 PC 與外部電路的溝通。

1-3 本文之研究目標

綜合上面所述,本文有二個最主要的研究目標:

(1) 用軟體程式(Software Program)來執行整部電梯系統之時序控制(Time

Page 12: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

2

Sequence Control )。

(2) 在判斷上下樓層作動作時,以最小能量輸出為準則,以達省電之目標。

Page 13: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

3

第 2章 硬體介面的設計

2-1 8255A 的應用

2-1-1 8255A 的特色及使用方法

一個並列輸出/輸入的 LSI 晶片,多功能的 I/O 元件,可作為 CPU 匯流排與

週邊的界面。

具有 24 個可程式規劃的 I/O 埠,即 3組 8位元的 I/O 埠為 PA 埠、PB 埠、

PC 埠、它們又可分為兩組 12 位元的 I/O 埠,A組包括 A埠及 C埠(高 4位元,

C4~PC7),B 組包括 B埠及 C埠(低 4位元,PC0~PC3),A 組可規劃基本 I/O 埠,

閃控(STROBE)的 I/O 與閃控式雙向 I/O 三種模式,B組僅能規劃基本 I/O 式問控

式 I/O 兩種模式,而這些操作模式完全由控制暫存器的控制字組所決定。

2-1-2 8255 的腳位及說明

圖 2- 1 8255 腳位圖

1. D0~D7:8 位元三態雙向輸入/輸出通道是 8255A 與 CPU 界面的資料匯流排。

2. RESET:高電位動作,重置時,8255A 的 PA,PB,PC 埠與控制暫存器將被清

Page 14: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

4

除,PA,PB,PC 埠皆被設定為輸入埠模式。

3. /CS:晶片選擇,低電位動作,當/CS=0 時,8255A 被選擇,當/CS=1 時,8255A

無法與 CPU 作資料傳輸。

4. /RD:讀取致能,低電位動作。/RD=0 且/CS=0 時,CPU 自 8255A 讀取資料。

5. /WR:寫入致能,低電位動作。WR/=0 且/CS=0 時,CPU 將資料寫入 8255A。

6. A0,A1:位址選擇線,用來選擇 8255A 的 PA 埠,B埠,PC 埠和控制暫存器。

表格 2- 1 8255A 真值表

A1 A0 被選到埠名

0 0 PA 埠

0 1 PB 埠

1 0 PC 埠

1 1 控制暫存器

7.PA0~PA7:8 位元資料輸出鎖定/緩衝器及 8位元輸入鎖定

8.PB0~PB7:8 位元資料輸入鎖定/緩衝器及 8位元輸入緩衝器

9. PC0~PC7:8 位元資料輸出鎖定/緩衝器及 8位元輸入緩衝器

10.VCC:+5 電源

11.GND:接地

Page 15: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

5

2-1-3 8255 內部結構

圖 2- 2 8255 方塊圖

2-1-4 8255 四個方塊圖的說明

資料匯流排緩衝器:三態雙向 8位元用來傳輸資料,作為 CPU 和 8255 間的

介面,當 CPU 執行”讀取”或”寫入”時,都經由此資料匯排流緩衝器傳送或接收資

料碼,控制命令碼等讀/寫控制邏輯:其功能是用來控制資料與控制字組的傳輸。

A組控制位元

資料匯流排緩器

讀/寫控制邏輯

B組控制位元

A組A埠(8)

A組C埠

B組C埠

A組A埠(8)

I/OPC7-PC4

I/OPA7-PA0

I/OPB7-PB0

I/OPC3-PC0

CS

D1,D0

RD

WR

A1

A0

RESET

Page 16: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

6

自 CPU 接收到 A0,A1,/RD,/WR,/CS 及 RESET 等控制訊號,然後產生各種不同

動作,當 RESET 重置時,控制暫存器被清除,且 PA,PB,PC 埠被設定輸入埠,

因此 RESET 接腳應與 CPU 的 RESET 接在一起,產生一致的重置動作。/CS,/RD

與/WR 均為低電位致能,當/CS=0 時,8255A 被致能,A0,A1 為暫存器定址輸入

線,配合/RD,/WR 用來選擇三個輸入/輸出暫存器,控制暫存器。

表格 2- 2 控制資料與控制字組

A1 A0 /RD /WR /CS 功 能 說 明

0 0 0 1 0 PA 埠→資料匯流排(讀取 PA 埠資料)

0 1 0 1 0 PB 埠→資料匯流排(讀取 PB 埠資料)

1 0 0 1 0 PC 埠→資料匯流排(讀取 PC 埠資料)

0 0 1 0 0 資料匯流排→PA 埠(資料寫入 PA 埠)

0 1 1 0 0 資料匯流排→PB 埠(資料寫入 PB 埠)

1 0 1 0 0 資料匯流排→PC 埠(資料寫入 PC 埠)

1 1 1 0 0 資料匯流排→控制暫存器:功能設定

X X X X 1 資料流排為高阻抗

1 1 0 1 0 不合法條件

X X 1 1 0 資料匯流排為高阻抗

A 組,B組控制單元:用來控制 PA,PB,PC 埠之操作,A組與 B組之工作模

式由控制暫存器所設定:

PA 埠:8位元資料輸出鎖定/緩衝器及 8位元輸入鎖定

PB 埠:8位元資料輸入鎖定/緩衝器及 8位元輸入緩衝器

PC 埠:8位元資料輸出鎖定/緩衝器及 8位元輸入緩衝器此埠,在模式控制下,

Page 17: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

7

分為兩組 4位元埠,每組包含 4個位元,也 可以作為 PA 埠,PB 埠交握傳輸時

的控制信號,PC 埠也可提供中斷要求,當 8255A 規劃模式 1或模式 2 時,由 PC

埠提供向 CPU 請求中斷的能力。

2-1-5 8255A 的操作命令

8255 有三種基本操作模式:

模式 0(MODE-0)—基本的輸入/輸出埠(PA,PB,PC)

模式 1(MODE-1)—閃控式的輸入/輸出埠(PA,PB 埠)

模式 2(MODE-2)—閃控式雙向匯流排(PA 埠)

以上三種操作模式完全由控制字組暫存器所設定。

2-1-6 8255 控制字組(Control Word)

模式 0:

當 A1=1,A0=1 時,選擇控制暫存器,控制字組格式由 D7 決定,當 D7=1 時,

控制字組代表 8255A A 組和 B組的工作模式輸入\輸出埠,而 D7=0 時,控制字組

代表 PC 埠位元的設定或清除,可作為 PA 埠與 PB 埠的控制信號。模式設定控制:

Page 18: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

8

圖 2- 3 8255 控制字碼

PC 埠位元設定/清除控制字組:

8255 的單一位元定/清除,PC 埠 8 個位元中的任何一個位元均可由單一輸出

指令將其設定式清除,其指令格式如圖 2-3 所示,當 8255 操作於模式 1或模式

2時,PC 埠的各位元可設定為 1式清除為 0,它可用於位元資料輸出及中斷請求

致能,D7 必須等於 0。

2-1-7 操作模式的特性

D7 D5D6 D4 D0D1D2D3

PC埠低4位元輸出輸入埠

PB埠輸出/輸入選擇

模式選擇00:模式0 01:模式1

0X:模式2

PA埠輸出/輸入選擇

PC埠高4位元輸出輸入埠

模式選擇0:模式0 1:模式1

D7=1

A組 0:模式0 1:模式1

Page 19: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

9

圖 2- 4 模式 0:基本輸出/輸入埠

8255 工作在模式 0時,由圖 2-4 可知 D7=1,D6=D5=D2=0,由 D4,D3,D1,

D0 來規劃 PA,PB,PC 埠的輸出/輸入埠,計有 6種組態如下表:

表格 2- 3 模式 0的 I/O 組態及控制字組

A 組 B 組 A 組 B 組

控制碼 D4 D3 D1 D0 PA 埠 PC 埠(4-7) PB 埠 PC 埠(0-3)

80H 0 0 0 0 輸出埠 輸出埠 輸出埠 輸出埠

81H 0 0 0 1 輸出埠 輸出埠 輸出埠 輸入埠

82H 0 0 1 0 輸出埠 輸出埠 輸入埠 輸出埠

83H 0 0 1 1 輸出埠 輸出埠 輸入埠 輸入埠

88H 0 1 0 0 輸出埠 輸入埠 輸出埠 輸出埠

89H 0 1 0 1 輸出埠 輸入埠 輸出埠 輸入埠

8AH 0 1 1 0 輸出埠 輸入埠 輸入埠 輸出埠

8BH 0 1 1 1 輸出埠 輸入埠 輸入埠 輸入埠

90H 1 0 0 0 輸入埠 輸出埠 輸出埠 輸出埠

91H 1 0 0 1 輸入埠 輸出埠 輸出埠 輸入埠

D7 D5D6 D4 D0D1D2D3

1 0 0PA

PC4-7

0 PB PC0-3

Page 20: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

10

92H 1 0 1 0 輸入埠 輸出埠 輸入埠 輸出埠

93H 1 0 1 1 輸入埠 輸出埠 輸入埠 輸入埠

98H 1 1 0 0 輸入埠 輸入埠 輸出埠 輸出埠

99H 1 1 0 1 輸入埠 輸入埠 輸出埠 輸入埠

9AH 1 1 1 0 輸入埠 輸入埠 輸入埠 輸出埠

9BH 1 1 1 1 輸入埠 輸入埠 輸入埠 輸入埠

模式 1:閃控式輸入

8255 規劃為模式 1操作時,PA 埠及 PB 埠被設定為兩個獨立的 I/O 埠,兩埠分別

使用 PC 埠的位元作為交握控制信號,PA,PB 埠均可規劃為輸入或輸出埠且具有

鎖定的功能,若規劃為輸入埠,則由週邊裝置傳到輸入埠的資料須由週邊控制電

路產生閃控信號(Strobe Input ,STB)將資料鎖入,且由 8255 產生輸入緩衝器

已滿信號(Input Buffer Full ,IBF),以便通知週邊裝置不要再輸入資料,並收

回 STB 的信號,若中斷已致能,當週邊裝置收回 STB 後及 8255 就輸出中斷請求信

號(INTR),俟 CPU 讀取輸入埠的資料 8255 清除 IBF 及 INTR 的信號。

表格 2- 4 模式 1的 I/O 組態及控制字組

PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0

INPUT I/O I/O IBFa /STBa INTRa /STBb IBFb INTRb

OUTPUT /OBFa /ACKa I/O I/O INTRa /ACKb /OBFb INTFb

/OBF (Output Buffer Full):輸出緩衝器已滿,低電位致能

/ACK (Acknowledge Input):認可輸入

/IBF (Input Buffer Full):輸入緩衝器已滿

/STB (Strobe Input):閃控輸入

INTR:中斷請求

Page 21: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

11

模式 1:閃控式輸入 以 PA 埠說明

當週邊裝置有資料輸時,會向 8255 發出閃控輸使 PC4(/STBa)為低電位,將週邊

裝置的資料鎖入,並由 PC5(IBFa )輸出一高電位通知週邊裝置輸入緩衝器已滿

的信號及收回 STB(PC4 回到高電位),如果 8255 中斷要求,此時 PA 埠可利用交

握式輸入資料,參考下圖模式 1輸入的結構圖與交握時序圖

模式 1:閃控式輸出 以 PA 埠說明

當 CPU 資料寫入輸出暫存器後,8255 由 PC7(/OBFa ,Output Buffer Full)輸出

一低電位,通知週邊裝置輸出緩衝器已滿,即出現在輸出緩衝器的資料是有效

的,當週邊裝置接收資料後,8255 由 PC6(/ACKa,Acknowledge Input)收到由

CPU 發出一個低電位的認可輸入信號,就清除 PC7=1,如果中斷請求已致能,此

時 8255 由 PC3(INTRa)輸出一高電位作中斷請求。

模式 2:雙向閃控式 I/O 匯流排

表格 2- 5 模式 2的 I/O 組態及控制字組

PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0

/OBFa /ACKa IBFa /STBa INTRa I/O I/O I/O

模式 2僅能規劃 PA 埠為輸入/輸出匯流排(PB 埠無此項功能),當 PA 埠規劃

為模式 2時,PB 埠仍可獨立規劃為模式 0或模式 1,此時 PC 埠的位元不完全使

用為交握信號時,未被使用的位元可作為資料輸入/輸出位元,可依下列規則使

用:規劃成輸入時,由讀取 PC 埠的指令,可讀取 PC 埠位元的資料規劃為輸出時,

已無法直接以輸出指令將資料輸出至 PC 埠,PC4~PC7 必須位元設定/清除各別設

定為 0或 1,而 PC0~PC3 可直接以輸出指令輸出或利用位元設定/清除個別設定

為 0或 1。

8255是一個功能很強的週邊裝置界面,它可適用於任何8位元或16位元CPU

的 I/O 界面,諸如鍵盤、顯示器、讀卡機、印表機……等,均可簡化界面電路設

計。

Page 22: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

12

2-2 外部電路

2-2-1 第一顆 8255A 與外部介面電路

圖 2- 5 第一顆 8255A 與外部介面電路圖

Page 23: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

13

圖 2- 6 第一顆 8255A 與外部介面電路圖(達靈頓電路)以電晶體推動繼電器

當我們再考慮控制電梯的控制電路時,我們決定將埠A當作輸出埠,埠B,埠C

Page 24: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

14

當成輸入埠,但埠 A 的輸出電壓並不能直接使繼電器激磁,直接接繼電器會造成

電壓下降,而無法讓繼電器激磁,主要的原因為繼電器阻抗低,使得阻抗匹配出現

問題,所以我們需要一個輸入阻抗很高,輸入阻抗很低的緩衝級電路,而共集極

(CC)電路便符合這個需求,他符合我們對阻抗的要求,使得埠 A 輸出的電壓不至

於下降,而能驅動繼電器。而當電路需要具有非常高之輸入阻抗獲很大的電流增

益時,單一個電晶體很難滿足需求,此時可將兩個電晶體組成達靈頓電路

(Darlington pair 或 Darlin conbination)以滿足電路之需求。

在本研究的控制電路中,負載為需較高電壓及較大電流的直流馬達,以

電晶體直接加以控制甚為不易,所以我們必須藉助於繼電器(Relay)。讓電源電

路透過繼電器來控制直流馬達的正反轉, 電晶體配合繼電器使用,迴路簡單而價

格低廉。對於此種應用中,電晶體輸出小功率去控制繼電器,再利用繼電器的接

點去啟閉負載電路,是自動控制中的最佳組合。

而埠 B 與埠 C 為感應器與按鈕的輸入,每一個埠為 8 Bit,也就是可以有 256

種輸入,也就是代表了這種電梯的設計最高能達到 256 層樓,而感應器與按鈕的

結構,我們選擇了三個接點的極限開關,分別為 COM 點,NORMAL OPEN 點,NORMAL

CLOSE 點,其中 COM 點接至埠 A與埠 C,NORMAL OPEN 點接 4.5V 電壓,而接 4.5V 的

原因為在數位電路中,都是 0與 1的信號,輸入 3~5V 代表著 HIGH,輸入 0~2V 代表

著 LOW,所以 NORMAL CLOSE 這個接點都必須接地,讓電腦判別究竟使用者輸入的

究竟是HIGH還是LOW,千萬不可浮接,若浮接會造成電腦無法判別,而導致程式的

錯誤。

Page 25: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

15

圖 2- 7 第一顆 8255A 與外部介面電路圖(RELAY)

Page 26: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

16

圖 2- 8 第一顆 8255A 與外部介面電路圖(SENSOR)

Page 27: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

17

圖 2- 9 外部全貌

Page 28: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

18

2-2-2 第二顆 8255A 與外部介面電路

圖 2- 10 第二顆 8255A 與外部介面電路

Page 29: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

19

2-2-3 電源電路

圖 2- 11 電源電路

圖 2- 12 正半週之電流路徑

圖 2- 13 負半週之電流路徑

此電路為提供馬達電源的電源電路,主要是利用我們市電的(110V,60HZ),接

上變壓器將電壓降至 12V,再接上橋式整流取得正半週電壓,以及負半週電壓,也

就是使得交流電路變為直流電路,再加上電容器達到濾波的效果,而 7806 這個元

件為將正半週的電壓固定在 0~6V,而 7906 則為將負半週電壓固定在-6~0V 之間,

Page 30: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

20

另外使用 2955 與 3055 這兩顆高功率電晶體的原因為我們要驅動的是馬達,而馬

達通常所需的電流較大,所以我們使用 2955 與 3055 這兩個高功率電晶體來加大

我們所需的電流。

圖 2- 14 電源電路外觀

Page 31: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

21

圖 2- 15 電梯實體外觀

Page 32: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

22

第 3章 軟體的設計與流程

本文所設計的軟體程式包含有主程式、馬達正逆轉副程式、單一電梯判斷副

程式,現將工作流程圖以及軟體執行時之情形介紹如下。

3-1 省電電梯動作流程圖

動作流程圖是我們開始做此專題時最先討論的,因為要讓電梯有正確的邏輯

判斷,以及正確的流程,我們必須先規劃流程圖。

我們從主流程圖開始來看,首先在硬體的部分,我們已經先將 8255 卡的工

作模式先定義好了。當我們開啟程式時,我先將程式中對於 8255 卡部份做好定

義,接著便開始對於外部 SENSOR 作掃描,然後啟動省電功能紐,這個時候的流

程是掃描外部按鈕,如果有使用者按下按鈕了,流程往下進入主程式,開始對數

字作演算,選擇好電梯後便進入副程式,再副程式中我們會再做一次比較,來驅

動馬達作正逆轉的選擇,當選擇完後,又會回到主流程圖中,看電梯是否到達定

點作停止的動作,緊接著在掃描外部按鈕,當有人按下愈往樓層時,流程再度進

入副程式,判斷馬達正逆轉,選完之後再回主流程圖,掃描 SENSOR 判斷電梯是

否到達指定樓層,到達時則停止。

Page 33: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

23

START

設定I/O Port及Memory Location

CALL GETSTATE 副程式掃描電梯位置

掃描所在樓層按鈕是否有信號

啟動程式

將所在樓層輸入在主程式中做運算

由主程式判斷幾號電梯做動作

1號電梯 2號電梯

CALL 副程式2 CALL 副程式1

執行副程式

電梯是否到達所在樓層

BA

Page 34: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

24

圖 3- 1 主程式流程圖

電梯停止

掃描欲往樓層按鈕是否有被按下

CALL 副程式3

電梯是否到達欲往樓層

電梯停止

是否繼續使用是

結束

BA

Page 35: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

25

圖 3- 2 副程式 1:使用者樓層與電梯 1位置作比較,決定馬達之正逆轉

START

P與ELE1做比較

P:使用者所在樓層ELE1:電梯一所在樓層

馬達逆轉(電梯向下)

(P-ELE1)>0 時(P-ELE1)<0 時

馬達正轉(電梯向上)

(P-ELE1)是否等於0

電梯一停止

(P-ELE1)是否等於0

電梯一停止

Page 36: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

26

圖 3- 3 副程式 2:使用者樓層與電梯 2位置作比較,決定馬達之正逆轉

START

W與POS做比較

W:欲往樓層POS:動作中電梯位置(藉 由Timer掃描入)

馬達正轉(電梯向上)

(W-POS)<0 時

馬達逆轉(電梯向下)

(W-POS)是否等於0

電梯停止 電梯停止

(W-POS)>0 時

(W-POS)是否等於0

電梯停止

(W-POS)=0 時

Page 37: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

27

圖 3- 4 副程式 3:到達使用者樓層後與欲往樓層作比較,決定馬達之轉向

3-2 軟體

3-2-1 C++ Builder 介紹

我們在這個專題當中對於幾號電梯的選擇,以及外部介面的信號接收、信號

輸出都以 PC 來做判斷,所以我們在軟體的選擇上我們採用了 Borland C++

Builder 來做一切信號以及運算的處理,以下是對於 C++ Buildere 概略性的介

紹。

C++Builder 遵循 ANSI C++標準,同時支援 COM 與 CORBA 兩大分散式運算

之標準且兼具執行效能。同時支援 CORBA 與 COM 標準的 C++Builder,大幅簡化

START

W與POS做比較

W:欲往樓層POS:動作中電梯位置(藉 由Timer掃描入)

馬達正轉(電梯向上)

(W-POS)<0 時

馬達逆轉(電梯向下)

(W-POS)是否等於0

電梯停止 電梯停止

(W-POS)>0 時

(W-POS)是否等於0

電梯停止

(W-POS)=0 時

Page 38: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

28

了 C++程式語言開發分散式物件的困難度,縮短開發時間及降低開發分散式物件

應 用系統的成本。

3-2-1-1 分散式應用系統的開發

C++Builder 4 Enterprise 版中內建全球 CORBA ORB 分發數量最多的

VisiBroker 3.3,並且內含 Event Services 與 Naming Services 等標準 CORBA

服務,C++Builder 4 Enterprise 將 CORBA IDL 編譯器整合於開發環境中,編輯

器能將 IDL 語法中關鍵字能以不同色彩顯示,搭配各式全新精靈快速產生的

CORBA Client 與 Server 原始程式碼骨架。對於 Microsoft COM 的支援,

C++Builder 採用 Microsoft ATL 提供單一步驟產生 COM 物件、OLE Automation

物件以及 ActiveX 元件的能力,此外 OLE Automation 增加支援 Event 控制的機

制,全新視覺化 Type Library 編輯器可同時產生 Microsoft IDL 及 CORBA IDL 。

3-2-1-2 運用既有 C++資源

C++Builder 4 強化對於 Microsoft Visual C++原始程式碼的相容程度,提

供 MFC 4.2 版函式庫,讓用戶可以直接編譯 MSDN 與各式 SDK 中的範例程式,並

且提供 MFC 精靈產生 MFC 原始程式碼骨架。C++Builder 4 亦能夠編譯既有

Borland C++ OWL 之原始程式碼,保障用戶過去的技術投資。C++Builder 4 支援

最新版本 ANSI/ISO C++標準,完整實作 ANSI/ISO C++ Template 相關規格,讓

您開發出可移植至視窗以外作業平台的 C++程式 。

3-2-1-3 資料庫存取

C++Builder 4 Enterprise 版提供 Oracle 8、Microsoft SQL Server 7、

Informix 9、Sybase R11、IBM DB/2 Universal Server、InterBase 5.5 等企

業級資料庫原生高速連接驅動程式,並針對 Oracle 8 物件關聯延伸功能,如

Abstract Data Types、Nested Tables、Variable Length Arrays、Object Pointers

(REFs)及 External File References 等提供最完整的支援。C++Builder 4 亦提

供 Microsoft Access 97、Fox Pro、Visual dBASE 及 Paradox 等單機個人資 料

庫存取的能力 。

Page 39: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

29

3-2-1-4 完整支援 Microsoft Transaction Server

C++Builder 4 Enterprise 版中提供全新的 MTS Component 精靈,可以快速

產生 支援 Microsoft Transaction Server 的 COM 物件,BDE Resource Dispenser

幫助用戶在 MTS 中使用 Borland Database Engine 存取資料庫,充分駕馭 MTS

對資料庫 Two Phase Commit 及資源管理的能力,獨有的 MTS Component

Deployment 精靈幫助您分發安裝所開發出來的 MTS 物件 。

3-2-1-5 運用 MIDAS 開發多層分散式應用系統

C++Builder 4 Enterprise 版所提供的新版 MIDAS 2 同時支援 CORBA IIOP、

DCOM 、DCE RPC 以及 TCP/IP 等多種連接方式。由於增加了 CORBA 的支援能力,

全新的 MIDAS for Java 將可以讓視窗環境外其他異質平台上的 Java 應用程式,

透過 CORBA IIOP 來使用 C++Builder 4 Enterprise 所開發出之應用程式伺服

器,保障用戶技術投資及擴展了 MIDAS 服務的範圍。C++Builder 4 Enterprise

能夠幫 助您整合現有系統並開發符合未來需求的新式分散式應用系統。

3-2-2 軟體設計

3-2-2-1 軟體執行之外觀

圖 3-2 是當我們啟動程式時的畫面,視窗當中包括了電梯位置的顯示,外部

按鈕是否有被啟動,對於兩部電梯可以做直接命令式的下達。

Page 40: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

30

圖 3- 5 程式執行時之外觀

圖 3- 6 程式執行時之外觀(電梯位置)

我們在這裡做了一各對於外部電梯樓層的掃描功能,主要功能是因為我們再

Page 41: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

31

測試電梯的時候,有時會發現程式無法正常執行,所以我們在程式當中加入了這

個功能,如果發現程式出現問題或電梯無法正確執行時,我們可以由此功能來查

詢電梯位置是否有正確的讀入 PC 當中。

下面是我們對此一按鈕所做的程式:

AnsiString t; //宣告變數

t=GetState(0x301); //讀入 1號電梯位置的 port 的位址

Edit1->Text=t; //將讀入的值填入表單 1中

t=GetState(0x302); //讀入 2號電梯位置的 port 的位址

Edit2->Text=t; //將讀入的值填入表單 2中

圖 3- 7 程式執行時之外觀(外部按鈕)

這個部分的功能類似上面電梯位置的掃描,也是幫助我們對於外部信號的接

收作檢查判斷。

下面是我們對此一按鈕所做的程式:

Page 42: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

32

AnsiString t; //宣告變數

t=GetState(0x341); //讀入所在樓層按鈕的 port 的位址

Edit3->Text=t; //將讀入的值填入表單 3中

t=GetState(0x342); //讀入所在樓層按鈕的 port 的位址

Edit4->Text=t; //將讀入的值填入表單 4中

圖 3- 8 程式執行時之外觀(控制兩部電梯上下)

這個部分的功能是直接對兩部電梯作控制,這裡的功能剛好跟上面兩個是相

反的,上面是對於信號的輸入做檢查,這個部份可以幫忙我們去對輸出信號做檢

查,幫助我們去檢查電梯是否有按照我們所下達的命令去做規定的動作。

下面是兩組按鈕的程式:

outportb(0x300,0x0c); //1 號電梯上 port 的位址

outportb(0x300,0x00); //1 號電梯停止 port 的位址

outportb(0x300,0x03); //1 號電梯下 port 的位址

Page 43: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

33

outportb(0x340,0xc0); //2 號電梯上 port 的位址

outportb(0x340,0x00); //2 號電梯停 port 的位址

outportb(0x340,0x30); //2 號電梯下 port 的位址

3-2-2-2 設計表單

圖 3- 9 設計表單

Page 44: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

34

圖 3- 10 設計表單-1

圖 3-7 第一顆 Timer 是我們主程式的部分,我們從這裡將外部電梯位置掃描

進來的值,與使用者所在樓層掃描進來的值作比較,判斷由哪部電梯來執行動作。

其程式如下:

int p=GetState(0x341); //掃描使用者所在樓層

int ele1=GetState(0x301); //掃描 1號電梯所在樓層

int ele2=GetState(0x302); //掃描 2號電梯所在樓層

if(p==0) //如果沒有按下繼續掃描

return;

Timer3->Enabled=false;

Timer4->Enabled=true;

pos=p;

float pow1=((ele1-p)<0?-1.5:0.7)*(ele1-p);//載入設定係數

float pow2=((ele2-p)<0?-1.5:0.7)*(ele2-p);

Page 45: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

35

if(pow1<=pow2) //開始判斷由幾號電梯前往使用者樓層

{

ele=1;

if((ele1-p)<0)

outportb(0x300,0x0c);

else if((ele1-p)==0)

Timer5->Enabled=true;

else

outportb(0x300,0x03);

}

else

{

ele=2;

if((ele2-p)<0)

outportb(0x340,0xc0);

else if((ele2-p)==0)

Timer5->Enabled=true;

else

outportb(0x340,0x30);

}

Page 46: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

36

圖 3- 11 設計表單-2

上面的主程式經過計算以及判斷選擇電梯之後,我們再設定一個變數不斷的

去掃描 Sensor 以判斷動作中電梯是否到達使用者的樓層。

其程式如下:

int ele1=GetState(0x301); //掃描 1號電梯所在樓層

int ele2=GetState(0x302); //掃描 2號電梯所在樓層

if((ele==1&&ele1==pos)||(ele==2&&ele2==pos)) //將動作中電梯與

//使用者樓層作比

//較

{

Timer4->Enabled=false;

outportb(0x300,0x00); //到達時停止馬達

outportb(0x340,0x00);

Timer5->Enabled=true;

Page 47: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

37

}

圖 3- 12 設計表單-3

當電梯到達使用者樓層時,馬達會停止動作,並啟動這個 Timer,開始掃描

欲往樓層之按鈕是否有被按下,當外部有按鈕被按下時,這裡會將欲往樓層與目

前電梯所在樓層,再作一次馬達正逆轉的判斷。

其程式如下:

int w=GetState(0x341); //掃描欲前往樓層按鈕

int ele1=GetState(0x301); //掃描 1號電梯所在樓層

int ele2=GetState(0x302); //掃描 2號電梯所在樓層

if(w==0) //如果沒有按下繼續掃描

return;

Timer5->Enabled=false;

if(ele==1)

{

Page 48: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

38

if((ele1-w)<0)

outportb(0x300,0x0c);

else if((ele1-w)==0)

{

Timer3->Enabled=true;

ele=0;

}

else

outportb(0x300,0x03);

}

else if(ele==2)

{

if((ele2-w)<0)

outportb(0x340,0xc0);

else if((ele2-w)==0)

{

Timer3->Enabled=true;

ele=0;

}

else

outportb(0x340,0x30);

}

pos=w;

Timer1->Enabled=true;

Page 49: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

39

圖 3- 13 設計表單-4

這裡是搭載使用者之後,電梯開始做動作前往欲往樓層,後開始掃描外部

Sensor 是否到達。

其程式如下:

int ele1=GetState(0x301); //掃描 1號電梯所在樓層

int ele2=GetState(0x302); //掃描 2號電梯所在樓層

if((ele==1&&ele1==pos)||(ele==2&&ele2==pos))

{

ele=0;

Timer1->Enabled=false; //當電梯到達時停止馬達

outportb(0x300,0x00);

outportb(0x340,0x00);

Timer3->Enabled=true;

}

Page 50: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

40

第 4章 專題結果及討論

4-1 專題結果

4-1-1 實驗設備及儀器

1.8255 介面卡:由 2顆 8255A 單晶片所構成的介面卡,用來做電腦與電路間傳

輸的橋樑。

2.電梯模型:自製一座五層樓的電梯模型,樓距 7cm。

3.電腦:執行 C++ builder,程式中具有控制介面。本電梯可由程式模擬或外部

硬體模擬。

4.電源電路:輸入 110V,輸出 6V 供給直流馬達驅動使用。

5.邏輯電路:由 Relay 構成控制本電路的觸發。

4-1-2 舒適感的考慮

乘坐電梯對於加速、減速均會有不舒適的感覺。如汽車、火車都是水平運動

所以影響不大,但電梯是垂直運動,對人影響很大。

舒適感和行走時間是成相反關係,為了求得較佳的舒適感,可以延長加速、

減速的時間,但如此一來,電梯行走的時間就會增長。如為了縮短行走時間則必

須犧牲舒適感。本電梯的宗旨是在於省時與省電,所以暫不做舒適感的設計,主

要強調時間、電力的問題。

4-1-3 電梯硬(軟)體架構

程式主要是在省時、省電兩方面來琢磨的,以達到智慧型的要求。其中因省

時與省電兩種問題是有相互衝突的,所以分二方面加以討論。

省時:在程式中主要是以樓層差來判斷該電梯的選取,一切以時間來判斷,

不考慮上下樓之間的馬達運轉所需消耗的電能,在程式中設定兩參數相減,選取

較少者作為行使的依據,而如果相同時執行預設的值,動 1號電梯。

省電:預設的情況是上樓比下樓耗電,上樓是 1.5,下樓是 0.7,如果有人

Page 51: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

41

在三樓按電梯(電梯分別停在五樓與一樓),這時五樓的會來接這位乘客。而在這

程式中有一種特例的,如果有人在 3樓按電梯(電梯分別停在二樓與五樓),此時

會來的是位於 5樓的電梯而不是二樓的電梯(因為 5樓的只需要 1.4 而 2 樓的要

1.5)。如果考慮省時的功能時,這時應該是二樓的要來。所以省時省電完全由自

己本身因當時的情況做調整用,若只考慮樓層的位置差,這時不考慮因上下樓所

消耗的電能,一切以樓層差來決定那台電梯動作,較屬於傳統電梯。

經量測結果:

上樓與下樓的確有耗電量的差別,而且遠比預設的還大,超過數十倍。(上

樓 1.5 下樓 0.7 是可以從程式內部修改)

4-2 討論

4-2-1 誤差:

在這電梯模型中存在著一個很大的誤差,就是定位問題。因為每個極限開關

的靈敏度都不盡相同,很難做到統一。而電梯本身是用木條所架構,水平與垂直

的量測並沒做到很精確。在電梯行使的過程中,電梯本身的相互摩差會導致水平

垂直不準確,所以每個樓層的移動時間不盡相同。

4-2-2 建議:

本電梯程式是用 C++ Builder 來撰寫的,所以對於程式方面的修改空間還很

大,如果要在功能方面在做改良,可朝停電、失速、超重、電梯開關門、安全性、

舒適度方面改良,本次電梯並未做上面的敘述探討,主要是以智慧方面電梯的判

斷做探討,而在上樓層之間所消耗的電力方面還有很大的空間發揮是值得深入加

以研究的。

4-2-3 結論:

微電腦程式規劃的能力已日益進步,電梯的控制採用微電腦可說是相當適

合,各種控制系統的開發無不是讓硬體達到更完美、更具實用性,因此用微電腦

Page 52: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

42

的軟體能力來取代目前電梯系統龐大的硬體控制線路,不但可以使成本大為減

小,且能使系統功能的變化更具彈性。現今快腳步的現代社會裡,一切講究快,

所以在程式起初設計時我們先考慮較為傳統的省時,一切以時間為依據。但在深

夜時這些高樓大廈所成載的乘客並沒有那麼的多,在經濟的考量下,選擇省電的

方法可以節省一筆可觀的開銷,等到人多尖峰時刻再調整為省時模式。

Page 53: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

43

附錄一(程式)

//-------------------------------------------------------------------

--------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "bcbio.h"

//-------------------------------------------------------------------

--------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int pos;

int ele;

int GetState(unsigned int port)

{

int i=0;

int x=inportb(port);

switch(x)

{

case 0x01:i=1;break;

case 0x02:i=2;break;

case 0x04:i=3;break;

case 0x08:i=4;break;

Page 54: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

44

case 0x10:i=5;break;

default:i=0;

}

return i;

}

//-------------------------------------------------------------------

--------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

outportb(0x303,0x8b);

outportb(0x343,0x8b);

//Timer3->Enabled=true;

//Timer5->Enabled=true;

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Timer3Timer(TObject *Sender)

{

int p=GetState(0x341);

int ele1=GetState(0x301);

int ele2=GetState(0x302);

if(p==0)

return;

Timer3->Enabled=false;

Page 55: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

45

Timer4->Enabled=true;

pos=p;

float pow1=((ele1-p)<0?-1.5:0.7)*(ele1-p);

float pow2=((ele2-p)<0?-1.5:0.7)*(ele2-p);

if(pow1<=pow2)

{

ele=1;

if((ele1-p)<0)

outportb(0x300,0x0c);

else if((ele1-p)==0)

Timer5->Enabled=true;

else

outportb(0x300,0x03);

}

else

{

ele=2;

if((ele2-p)<0)

outportb(0x340,0xc0);

else if((ele2-p)==0)

Timer5->Enabled=true;

else

outportb(0x340,0x30);

}

}

//-------------------------------------------------------------------

Page 56: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

46

--------

void __fastcall TForm1::Timer4Timer(TObject *Sender)

{

int ele1=GetState(0x301);

int ele2=GetState(0x302);

if((ele==1&&ele1==pos)||(ele==2&&ele2==pos))

{

Timer4->Enabled=false;

outportb(0x300,0x00);

outportb(0x340,0x00);

Timer5->Enabled=true;

}

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Timer5Timer(TObject *Sender)

{

int w=GetState(0x342);

int ele1=GetState(0x301);

int ele2=GetState(0x302);

if(w==0)

return;

Timer5->Enabled=false;

if(ele==1)

{

Page 57: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

47

if((ele1-w)<0)

outportb(0x300,0x0c);

else if((ele1-w)==0)

{

Timer3->Enabled=true;

ele=0;

}

else

outportb(0x300,0x03);

}

else if(ele==2)

{

if((ele2-w)<0)

outportb(0x340,0xc0);

else if((ele2-w)==0)

{

Timer3->Enabled=true;

ele=0;

}

else

outportb(0x340,0x30);

}

pos=w;

Timer1->Enabled=true;

Page 58: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

48

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

AnsiString t;

t=GetState(0x301);

Edit1->Text=t;

t=GetState(0x302);

Edit2->Text=t;

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

AnsiString t;

t=GetState(0x341);

Edit3->Text=t;

t=GetState(0x342);

Edit4->Text=t;

}

//-------------------------------------------------------------------

--------

Page 59: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

49

void __fastcall TForm1::Button3Click(TObject *Sender)

{

outportb(0x340,0xc0);

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

outportb(0x340,0x00);

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

outportb(0x340,0x30);

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Button6Click(TObject *Sender)

{

outportb(0x300,0x0c);

Page 60: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

50

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Button7Click(TObject *Sender)

{

outportb(0x300,0x00);

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Button8Click(TObject *Sender)

{

outportb(0x300,0x03);

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

int ele1=GetState(0x301);

int ele2=GetState(0x302);

if((ele==1&&ele1==pos)||(ele==2&&ele2==pos))

{

Page 61: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

51

ele=0;

Timer1->Enabled=false;

outportb(0x300,0x00);

outportb(0x340,0x00);

Timer3->Enabled=true;

}

}

//-------------------------------------------------------------------

--------

void __fastcall TForm1::Button9Click(TObject *Sender)

{

Timer3->Enabled=true;

}

//-------------------------------------------------------------------

--------

Page 62: 逢 甲 大 學 自動控制工程學系畢業專題報告 智慧型電梯控制系統 … · 方就是其控制部份,所以本文製作了一部五層樓的電梯模型,來完成電梯系統的

52

附錄二(參考文獻)

[1]林宸生

“控制實驗五操作手冊”

[2]鄭慕德

“硬體線路分析”,波前資訊股份有限公司出版部,1986 年 4 月

[3]李勁、鄭浩

“精通 C++ Builder 4.0”,文魁資訊股份有限公司,1999 年 12 月

[4]王培元

“Z-80 微處理機電梯控制系統之設計研究”,逢甲大學自動控制工程研究所

碩士論文,1983 年 6 月

[5]蔡朝洋

“電子學實驗”,全華科技圖書股份有限公司,1997 年 12 月

[6] 游振昌

“中文 Microsoft Visio 2000 完全使用手冊”, 微軟圖書,2000 年 9 月