張亦農(nóng)
(天津鐵道職業(yè)技術(shù)學(xué)院,天津 300240)
隨著建筑業(yè)的發(fā)展和科技的進(jìn)步,電梯作為多層建筑內(nèi)對(duì)乘客、貨品進(jìn)行上下運(yùn)輸?shù)奶胤N機(jī)電設(shè)備,不僅在結(jié)構(gòu)和功能上要逐漸切合多種實(shí)際需求,在控制系統(tǒng)的可移植性、靈敏性、安全性方面也要不斷提出新要求。據(jù)統(tǒng)計(jì),截止2014 年,僅全國(guó)各大車(chē)站就裝配有電梯設(shè)備近6 萬(wàn)部,分布在900 余個(gè)站場(chǎng)。我國(guó)現(xiàn)有整機(jī)生產(chǎn)企業(yè)近500 家,正逐漸實(shí)現(xiàn)智能化、信息化和網(wǎng)絡(luò)化[1]。
目前電梯的控制系統(tǒng)大多采用繼電器及可編程控制器,針對(duì)PLC 控制存在的成本高且需三相供電等缺點(diǎn),本文給出基于單片機(jī)的電梯模型控制系統(tǒng)的設(shè)計(jì)概念,旨在利用單片機(jī)設(shè)計(jì)電梯控制系統(tǒng)的核心部分。單片機(jī)系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單,使用方便,易于實(shí)現(xiàn)模塊化等特點(diǎn),具有較高可靠性,處理功能強(qiáng),速度快。
電梯的控制系統(tǒng)由單片機(jī)控制電梯的顯示、調(diào)速、選項(xiàng)等,硬件構(gòu)成圖如圖1 所示[2]。電梯選層呼梯系統(tǒng)主要收集電梯內(nèi)、外呼按鍵信號(hào)控制電梯走向和平層,除兩個(gè)終端站具有單向運(yùn)行指令按鈕外,每一中間層站均具有兩個(gè)運(yùn)行方向指令按鈕。對(duì)各單元模塊的設(shè)計(jì)可分為電機(jī)正反轉(zhuǎn)控制電路、鍵盤(pán)矩陣電路、顯示電路、目的樓層顯示電路、警報(bào)電路等五部分設(shè)計(jì)。
圖1 單片機(jī)控制系統(tǒng)原理結(jié)構(gòu)圖
本系統(tǒng)采用Microchip 技術(shù)公司的PIC 系列單片機(jī)PIC16F877 作為主控制器,并輔以相關(guān)外圍電路。PIC 系列單片機(jī)具有尋址方式簡(jiǎn)單、代碼壓縮率高、運(yùn)行速度高、功耗低、驅(qū)動(dòng)能力強(qiáng)等特點(diǎn)[3],內(nèi)部集成一系列具有獨(dú)特功能的專(zhuān)用電路,應(yīng)用于電梯這種特種機(jī)電設(shè)備,具有較高的可靠性。微控制器PIC16F877 是一款具有最低功耗、采用全新流水線結(jié)構(gòu)、嵌入閃存的10 位、7 通道A/D 轉(zhuǎn)換器,具有8 位CMOS 以及高性能RISC CPU,其I/O 端口具有較強(qiáng)的驅(qū)動(dòng)負(fù)載能力。系統(tǒng)功能結(jié)構(gòu)圖如圖2 所示。
圖2 PIC16F877 單片機(jī)系統(tǒng)結(jié)構(gòu)圖
根據(jù)單片機(jī)的工作條件和要求可知,其振蕩電路與電梯控制系統(tǒng)工作速度有直接的關(guān)系,PIC16F877 單片機(jī)振蕩頻率最高可達(dá)20 MHz,滿足電梯運(yùn)行控制的要求,電路圖如圖3 所示。
圖3 PIC16F877 振蕩頻率電路圖
作為一款低功耗單片機(jī),PIC16F877 的工作電壓為5V,Pin12 與Pin31 為地線接腳,Pin11 與Pin32 連接,Pin1 連接重置電路,按Reset 后,內(nèi)部指令從頭開(kāi)始執(zhí)行。其接口電路如圖4 所示。
圖4 復(fù)位電路圖
在系統(tǒng)下位機(jī)軟件Keil C51 的開(kāi)發(fā)環(huán)境下,基于單片機(jī)電梯控制系統(tǒng)的核心部分,采用結(jié)構(gòu)化編程,利用C 語(yǔ)言進(jìn)行模塊化設(shè)計(jì)程序開(kāi)發(fā),簡(jiǎn)化編制過(guò)程,對(duì)系統(tǒng)的微調(diào)可通過(guò)對(duì)相應(yīng)模塊進(jìn)行修改提高程序的可移植性。電梯控制軟件系統(tǒng)劃分為端口定義及系統(tǒng)初始化、硬件驅(qū)動(dòng)、模數(shù)轉(zhuǎn)換、轎廂運(yùn)行程序編制和按鍵程序用戶自定義命令解析、系統(tǒng)監(jiān)控等在內(nèi)的多個(gè)模塊。
系統(tǒng)初始化模塊對(duì)內(nèi)部資源的初始化包括時(shí)鐘頻率的顯示和設(shè)定、I2C 總線設(shè)定等,對(duì)外部資源的初始化包括步進(jìn)電機(jī)驅(qū)動(dòng)器模塊配置、點(diǎn)陣式液晶顯示模塊配置等;硬件驅(qū)動(dòng)模塊依據(jù)廠商范例編寫(xiě)驅(qū)動(dòng)程序,包含有電梯內(nèi)外控制模塊、電機(jī)邏輯運(yùn)行模塊及中央運(yùn)算模塊等;系統(tǒng)監(jiān)控模塊屬于系統(tǒng)資源管理模塊,包括看門(mén)狗復(fù)位,定時(shí)器復(fù)位,模擬電梯系統(tǒng)運(yùn)行狀態(tài)的更新等[4]。
如下程序段是結(jié)合電梯內(nèi)外呼梯電路所編制的加入抗干擾和按鍵去抖動(dòng)處理的按鍵程序,不同按鍵判斷執(zhí)行不同的功能(WORK0、WORK1、WORK2),將采集的按鍵信息實(shí)時(shí)存儲(chǔ),便于系統(tǒng)程序的讀取。
采用VS2010 作為系統(tǒng)調(diào)試軟件開(kāi)發(fā)工具,為進(jìn)一步簡(jiǎn)化編程過(guò)程、提高編程效率,采用MFC(Microsoft Foundation Classes)庫(kù),利用C++語(yǔ)言進(jìn)行面向?qū)ο笤O(shè)計(jì)(Object-Oriented Design)編程,將模型的分析與設(shè)計(jì)分開(kāi)建立,根據(jù)功能劃分各模塊層次。MFC 庫(kù)以C++類(lèi)的形式封裝Windows API,包含大量Windows 句柄封裝類(lèi)和Windows 的內(nèi)建控件和組件的封裝類(lèi),可以通過(guò)面向?qū)ο蟮姆绞秸{(diào)用Windows API,其中還包含一個(gè)應(yīng)用程序框架,大大減少了工作量[5]。
調(diào)試軟件是采用單片機(jī)的串口通信方式進(jìn)行信息交互,實(shí)現(xiàn)其與下位機(jī)軟件的通信,完成命令發(fā)送、故障診斷、信息返回等功能。軟件利用系統(tǒng)提供的API 函數(shù)實(shí)現(xiàn)對(duì)串口的操作,如串口的打開(kāi)、關(guān)閉以及讀寫(xiě)串口等。
Win32 中用于打開(kāi)串口的API 函數(shù)為CreateFile,其原型為:
本軟件以同步讀寫(xiě)的方式打開(kāi)串口,代碼如下:
利用API 函數(shù)實(shí)現(xiàn)串口通信時(shí)關(guān)閉串口只需使用CreateFile
函數(shù)返回的句柄作為參數(shù)調(diào)用CloseHandle:
讀串口所用函數(shù)原型如下:
寫(xiě)串口所用函數(shù)原型如下:
上位機(jī)的軟件運(yùn)行界面如圖5 所示。
圖5 上位機(jī)軟件運(yùn)行界面圖
軟件中的編輯窗口用來(lái)接收用戶命令,點(diǎn)擊“Send”按鈕后將通過(guò)串口發(fā)送到下位機(jī)中。同時(shí)軟件中的列表窗口將顯示軟件通過(guò)串口讀取的下位機(jī)反饋數(shù)據(jù)。以便用戶判斷用戶命令的執(zhí)行情況?!癟est”按鈕主要用來(lái)完成系統(tǒng)的測(cè)試及故障診斷工作。值得注意的是,用戶發(fā)送命令時(shí),一定要嚴(yán)格按照命令協(xié)議中的規(guī)范進(jìn)行書(shū)寫(xiě),否則下位機(jī)將不能有效識(shí)別命令,可能造成意想不到的操作。
本文采用微控制器PIC16F877 作為主控制器,選用Keil C51 作為下位機(jī)軟件開(kāi)發(fā)環(huán)境,利用結(jié)構(gòu)化編程進(jìn)行模塊化設(shè)計(jì)。本系統(tǒng)設(shè)計(jì)將電梯控制系統(tǒng)劃分為端口定義及系統(tǒng)初始化、硬件驅(qū)動(dòng)、模數(shù)轉(zhuǎn)換、轎廂運(yùn)行程序編制和按鍵程序用戶自定義命令解析、系統(tǒng)監(jiān)控等在內(nèi)的多個(gè)模塊。系統(tǒng)調(diào)試軟件采用VS2010 為開(kāi)發(fā)工具,運(yùn)用MFC 庫(kù)進(jìn)行編程,與下位機(jī)軟件進(jìn)行通信,采用串口通信的方式進(jìn)行信息交互,實(shí)現(xiàn)串口操作,實(shí)現(xiàn)電梯的部分功能,如內(nèi)外呼梯的按鍵功能,進(jìn)一步驗(yàn)證了電梯控制程序的可編性。
[1]陳家盛.電梯結(jié)構(gòu)原理及安裝維修[M].北京:機(jī)械工業(yè)出版社,2012.
[2]鞏玉濱,陳繼文,于復(fù)生,等.基于單片機(jī)的電梯控制仿真系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20(11):114-117.
[3]吳正民.PIC 單片機(jī)特點(diǎn)及應(yīng)用時(shí)的注意事項(xiàng)[J].實(shí)驗(yàn)室研究與探索,2003,2(6):79-82.
[4]郭雷崗.基于單片機(jī)的模擬電梯控制系統(tǒng)[J].福建電腦,2012,28(9):101-102.
[5]何春晗,夏明飛.運(yùn)載火箭主動(dòng)段綜合引導(dǎo)機(jī)制研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(10):82-85.