電梯控制系統(tǒng)的實現(xiàn),附軟硬件架構(gòu)圖
一、項目概述
1.1 引言
電梯技術(shù)包括電梯電機的拖動技術(shù)和電梯運行的控制技術(shù),本項目主要在意探索實現(xiàn)電梯運行的優(yōu)化,主要實現(xiàn)對于電梯電機的優(yōu)化控制并實現(xiàn)電梯系統(tǒng)的基本性能與擴展性能。國產(chǎn)電梯控制技術(shù)過去一直是以繼電器,接觸器為核心。系統(tǒng)龐大,復(fù)雜,所用控制柜很大,因此使用微機電梯控制系統(tǒng),以期提高運行可靠性。
1.2 項目背景/選題動機
單片機體積小,處理速度快,價格低廉,功能強大,是合適的控制系統(tǒng)。對電梯的控制主要是選層、啟動、換速、平層、停車等幾個環(huán)節(jié),其中以選層環(huán)節(jié)最為復(fù)雜。與通常的電器控制相比,單片機系統(tǒng)不需要通過“選層器”并且配備以大量的中間繼電器作為選層電路的控制設(shè)備,避免了設(shè)備多,檢修困難,運行維護不便,造價成本高;應(yīng)用微機控制可以取消選層器和大量的中間繼電器,而且應(yīng)用單片機控制,又相對于應(yīng)用其他微機減少了外圍設(shè)備的接口芯片、增強了可靠性。因此此次我們使用ATMEL公司的EVK1100為核心進行集成優(yōu)化控制與管理。
二、需求分析
2.1 功能要求
基本要求
A 電梯在樓層中的調(diào)度
B 電梯門的自動開啟
C 電梯中電機的控制
D 電梯的故障檢測
擴展要求(根據(jù)開發(fā)板的資源所做的擴展)
A 電梯中的照明控制
B 電梯中的溫度顯示
2.2 性能要求
在故障檢修模式鍵被按下時,切換至故障檢修模式,電梯停止運行工作人員可以進行檢修,循環(huán)檢測電梯的模式是否變化,當(dāng)出現(xiàn)模式的變化時,切換到相應(yīng)的模式下。
在一般運行模式鍵被按下時,切換至一般運行模式,電梯實現(xiàn)一般的功能要求,循環(huán)檢測電梯的模式是否變化,當(dāng)出現(xiàn)模式的變化時,切換到相應(yīng)的模式下。
在直接運行模式鍵被按下時,切換至直接運行模式,電梯實現(xiàn)直接運行,為緊急情況爭取時間,循環(huán)檢測模式是否變化,當(dāng)出現(xiàn)模式的變化時,切換到相應(yīng)的模式下。
故障檢修模式下,電梯停止運行,停止外部訊號對于電梯的調(diào)度(對于模式轉(zhuǎn)換鍵,在此功能沒出現(xiàn)故障的時候任然響應(yīng)),顯示當(dāng)前樓層和溫度,使能照明。
一般運行模式下,電梯一般運行,對于外部訊號,通過電梯的調(diào)度算法和對于電梯的中電機的控制實現(xiàn)響應(yīng),使能模式轉(zhuǎn)換鍵,顯示當(dāng)前樓層和溫度,對于照明的使能通過壓力傳感器的輸入進行控制。
直接運行模式下,電梯的性能要求和一般運行模式中基本相同,唯一不同的是電梯的調(diào)度算法,電梯會直接來到電梯的直接運行模式鍵被按下的樓層,并在載人以后直接回到底層。
3.1 系統(tǒng)功能實現(xiàn)原理
利用EVK1100開發(fā)平臺提供的一些應(yīng)用:溫度,光照,LCD,PWM輸出和AVR芯片的優(yōu)越的控制功能加上一些外圍的一些模塊:壓力,H橋驅(qū)動,語音輸入輸出 等實現(xiàn)電梯的簡單的模擬層次上的控制(主要的控制在與電機的控制,照明的控制和溫度顯示)。在電梯的控制當(dāng)中特點在與對于電梯中照明的控制(壓力傳感沒有人在電梯中時關(guān)掉照明,實現(xiàn)環(huán)保節(jié)能的目的)和直接運行模式的引入。
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
3.2 硬件平臺選用及資源配置
Atmel公司推出的AVR單排年級是很引人注目的一款為處理器。這種芯片基于新的RISC機構(gòu),在設(shè)計上采用了流水線的結(jié)構(gòu),在執(zhí)行前一條指令時,同時取出下一條指令,它的Flash以及強大的外圍接口能力使它成為目前最為流行的單片機之一。本設(shè)計采用EVK1100作為控制系統(tǒng)的核心。
A H橋驅(qū)動
如圖所示,H橋式電機驅(qū)動電路包括4個三極管和一個電機。要使電機運轉(zhuǎn),必須導(dǎo)通對角線上的一對三極管。根據(jù)不同三極管對的導(dǎo)通情況,電流可能會從左至右或從右至左流過電機,從而控制電機的轉(zhuǎn)向。
圖2 H橋驅(qū)動
要使電機運轉(zhuǎn),必須使對角線上的一對三極管導(dǎo)通。當(dāng)Q1管和Q4管導(dǎo)通時,電流就從電源正極經(jīng)Q1從左至右穿過電機,然后再經(jīng)Q4回到電源負極。當(dāng)電流從Q1流經(jīng)電機再流向Q4,該流向的電流將驅(qū)動電機順時針轉(zhuǎn)動。當(dāng)三極管Q1和Q4導(dǎo)通時,電流將從左至右流過電機,從而驅(qū)動電機按特定方向轉(zhuǎn)動。另一對三極管Q2和Q3導(dǎo)通的情況,電流將從右至左流過電機。當(dāng)三極管Q2和Q3導(dǎo)通時,電流將從右至左流過電機,從而驅(qū)動電機沿另一方向轉(zhuǎn)動。
實際使用的時候,用分立件制作H橋式是很麻煩的,好在現(xiàn)在市面上有很多封裝好的H橋集成電路,接上電源、電機和控制信號就可以使用了,在額定的電壓和電流內(nèi)使用非常方便可靠。比如常用的L293D、L298N、TA7257P、SN754410等。
B 壓力傳感
壓力傳感器負責(zé)測量電梯里的承受壓力,判斷電梯里是否有人,如果沒人,將控制電梯里的燈變暗。除此功能之外,當(dāng)壓力到達一定程度時,傳感器將判斷出超出承受范圍,電梯將不能繼續(xù)運行。在選擇產(chǎn)品時,我們需要綜合考慮線性度好、外圍電路簡單、靈敏度高,價格不高等綜合因素。C 直流電機
直流電機是本項目的核心部分,起到了控制電梯的運動,它的正轉(zhuǎn)反轉(zhuǎn)也將由電機來驅(qū)動,在沒有具體電梯材料的情況下,觀察電機的驅(qū)動運作情況可以直接定性的反映本項目的情況。
C 電機測速模塊
一塊長度為l,寬度為b,厚度為d的半導(dǎo)體薄片,當(dāng)它被置于磁感應(yīng)強度為B的磁場中,如果在其相對兩邊流通控制電流I,且磁場方向與電流方向正交,則在該半導(dǎo)體另外兩邊將產(chǎn)生一個與控制電流I和磁感應(yīng)強度B乘積成正比的電勢UH,即UH=KHIB,其中KH為霍爾元件的靈敏度,該電勢稱為霍爾電勢,該半導(dǎo)體薄片就是霍爾元件,其大小和外磁場及電流成比例。霍爾開關(guān)傳感器由于其體積小,無觸點,動態(tài)特性好,使用壽命長等特點,廣泛應(yīng)用于測量轉(zhuǎn)動物體旋轉(zhuǎn)速度領(lǐng)域。這里選用SPRAGUE公司生產(chǎn)的霍爾轉(zhuǎn)速傳感器,它是一種硅單片集成電路,其內(nèi)部含有穩(wěn)壓電路、霍爾電勢發(fā)生器、放大器、史密特觸發(fā)器和集電極開路輸出電路,具有工作電壓范圍寬、可靠性高、外電路簡單、輸出電平可與各種數(shù)字電路兼容等特點。
霍爾傳感器信號放大器將霍爾電勢UH放大后再經(jīng)整形、放大,輸出幅值相等、頻率變化的方波信號,該霍爾電勢的幅值隨磁場強度變化而變化。
轉(zhuǎn)速的測量方法有很多種,根據(jù)脈沖計數(shù)實現(xiàn)轉(zhuǎn)速測量的方法主要有M法(測頻法)、T法(測周期法)和MPT法(頻率周期法)。該系統(tǒng)采用M法(測頻法),霍爾傳感器的測速電路,如圖所示。
3.3系統(tǒng)軟件架構(gòu)
電梯控制的軟件框架由電梯的模式作為主體框架,以完成模式下的功能為驅(qū)動進行設(shè)計,各個模式的簡介如下:
故障修理模式:由管理員手動切換,在故障模式下工程人員可以實現(xiàn)對于電梯的故障檢修
一般運行模式:由管理員手動切換,一般運行模式是電梯的主要模式,完成電梯的主要功能
直接運行模式:由用戶切換或者管理員切換,直接運行模式下,電梯可以從當(dāng)前層面直接到達底層。當(dāng)出現(xiàn)火宅或者有病人需要急救時可以避免電梯在中間層停靠,以此爭取寶貴的時間
3.4 系統(tǒng)軟件流程
軟件的設(shè)計是根據(jù)狀態(tài)機的方式實現(xiàn)的,具體的軟件框圖如下:
圖3 程序運行流程圖
3.4 系統(tǒng)預(yù)計實現(xiàn)結(jié)果
一些頭文件的申明
一些變量的申明
#define repairMode 00
#define generalrunMode 01
#define direcltyrunMode 10
int setModeR_G(int currentMode int premode); //負責(zé)狀態(tài)之間的切換
int setModeG_R(int currentMode int premode); //mode為兩位變量,由撥碼開關(guān)在I/O口讀入
int setModeG_D(int currentMode int premode);
int setModeD_G(int currentMode int premode);
//狀態(tài)切換會返回置位bool量 modechange
int getmode() //讀取mode的當(dāng)前的值,并且刷新mode和premode
Void lcd_initialize(void) //負責(zé)顯示屏的初始化
Void port_initalize(void) //負責(zé)端口的初始化
Void motor_initalize(void) //負責(zé)電機的初始化
Void lighting_initalize(void) //負責(zé)照明的初始化
Void elevatordoor_initalize(void) //負責(zé)電梯門的初始化
Void lcd_display(int temperature); //負責(zé)溫度的顯示
Void eledoor_allopen(); //電梯門在檢修模式下常開
Void eledoor(); //電梯門在其他兩個模式下的運行方式
Void motor_stop();
int motor_genrun();
int motor_dirrun(); //返回一個Int值dooropen為1,控制電梯門的開啟
//電梯在三種模式下的運行方式
Void light_display(int pressure); //電燈的開關(guān)控制
Void communicate(); //通信方法
Void repair() //檢修模式下的工作方式
{
While(modechange==0)
{
Communicate();
Eledoor_allopen();
Light_display();
Lcd_display(int temperature);
Int getmode();
If(premode==01&&mode==00)
setModeG_R();
}
}
Void generalrun() //一般運行模式下的工作方式
{
While(modechange==0)
{
Communicate();
Light_display();
Lcd_display(int temperature);
If(premode==01&&mode==00)
setModeG_R();
If(premode==01&&mode==10)
setModeG_D();
}
}
Void directlyrun() //直接運行下的工作方式
{
While(modechange==0)
{
Communicate();
Light_display();
Lcd_display(int temperature);
Int getmode();
If(premode==10&&mode==01)
setModeD_G();
}
}
Void initialize(void) //負責(zé)總體的初始化
{
currentMode=generalrunMode;
Lcd_initialize();
Port_initialize();
motor_initalize();
lighting_initalize();
elevatordoor_initalize();
}
Int main()
{
Initialize();
While(1)
{
Switch(currentMode)
{
Case repairMode;
Repair();
Break;
Case generalrunMode;
Generalrun();
Break;
Case directltyrunMode;
Directltyrun();
Break;
}
}
}