
男,上海人,碩士研究生,(上海交通大學(xué)自動化系,上海 200030)主要研究方向為控制工程及工業(yè)自動化。
摘要:LabVIEW 作為圖形化編程語言簡單易懂,廣泛用于眾多領(lǐng)域,在電梯群控仿真系統(tǒng)中的應(yīng)用卻很少。該軟件的強(qiáng)大圖形化功能使編程變的簡單,一般的工程技術(shù)人員也能很快上手,對與幫助分析與幫助研究的意義非常重大,本文就以LabVIEW為平臺編寫的電梯群控仿真系統(tǒng)中的一個功能模塊展開討論,研究并展示LabVIEW的強(qiáng)大功能以及對工程技術(shù)人群的重大意義。
關(guān)鍵詞:LabVIEW;電梯群控;圖形編程
關(guān)鍵詞:LabVIEW;電梯群控;圖形編程
Abstract: As an easy-to-understand language, the LabVIEW graphical programming language is widely used in many fields. However it is seldom used in Elevator Group Control Simulation System. The software’s features The powerful graphical function makes it easy to use, and the engineering and technical personnel can quickly get started. It is also helpful in research and analysis. The paper discusses the Elevator Group Control Simulation System by using one of the functional modules as example. The powerful function of LabVIEW and the great significance in engineering technology domain are shown.
Key words: LabVIEW; Elevator Group Control; Graphical Programming
電梯群控系統(tǒng)(EGCS,Elevator Group Control System)是現(xiàn)代建筑交通系統(tǒng)中重要組成部分,其設(shè)計的正確與否關(guān)系著建筑交通系統(tǒng)的可靠性和穩(wěn)定性。因此,電梯群控系統(tǒng)的模擬仿真顯得十分的必要和重要[1]。LabVIEW 是虛擬儀器集成開發(fā)環(huán)境的總稱,它是為替代常規(guī)的Basic 或C語言而設(shè)計的,LabVIEW 是一個軟件開發(fā)環(huán)境,同時也是編程語言。作為編寫應(yīng)用語言的語言,除了編程方式不同外,LabVIEW 具備語言的所有特性,由于所有編程以圖形語言(Graphical Language)表現(xiàn),因此又稱之為G 語言[2]。
目前,國際上介紹電梯群控系統(tǒng)仿真的論文很少,主要的仿真軟件有Elevate,但其源代碼不公開,且價格昂貴。國內(nèi)的文獻(xiàn)也不多,文獻(xiàn)[3]介紹了軟件硬件結(jié)合的方法設(shè)汁仿真平臺,由于使用了硬件平臺,所以價格較為昂貴;文獻(xiàn)[4]介紹了基于Matlab的仿真平臺的設(shè)計;文獻(xiàn)[5]介紹了基于Delpli的仿真平臺的設(shè)計,基于LabVIEW的仿真平臺還沒有見過,本文是想通過介紹群控系統(tǒng)中的一個模塊來介紹LavVIEW在仿真平臺中的應(yīng)用。
1 基于LabVIEW的群控仿真系統(tǒng)
根據(jù)電梯群控的實際運(yùn)行方式和LabVIEW(一下簡稱LV)的編程特點,本文作者將基于LV的群控仿真系統(tǒng)的功能模塊按圖1所示方式進(jìn)行劃分, 如圖1所示。

圖1 基于LabVIEW的電梯群控仿真系統(tǒng)數(shù)據(jù)流結(jié)構(gòu)
整個仿真系統(tǒng)數(shù)據(jù)流結(jié)構(gòu)如圖1所示,在一個大的While循環(huán)框架內(nèi),將各個功能模塊按一定的順序執(zhí)行,由于程序在While循環(huán)停止命令觸發(fā)前不停的進(jìn)行循環(huán)運(yùn)行,所以本仿真程序在While循環(huán)框內(nèi)模塊的執(zhí)行順序沒有十分嚴(yán)格的次序限制,但是為避免在單個循環(huán)內(nèi)數(shù)據(jù)在邏輯傳輸上的風(fēng)險,編程時采用順序結(jié)構(gòu)來劃分模塊的執(zhí)行先后次序。本文受到篇幅限制,僅就其中的“到達(dá)呼叫層處理模塊”做深入討論。
2 功能描述
在仿真程序中“到達(dá)呼叫層處理模塊”需要完成的任務(wù)是,當(dāng)呼叫請求發(fā)生后,電梯運(yùn)行到呼叫樓層的過程及之后需要做的動作,例如,若電梯上行并到達(dá)上行呼叫發(fā)生的樓層,則清除上行呼叫寄存器中的該樓層使能位,同時加載該呼叫樓層的目標(biāo)樓層至上行目標(biāo)寄存器中,并清除群控系統(tǒng)目標(biāo)寄存器中該使能位的信息,同時清除該樓層鍵盤中的目標(biāo)層信息;當(dāng)下行時,同理,執(zhí)行相應(yīng)的操作;當(dāng)空閑時,需要監(jiān)測如果有上行呼叫或者下行呼叫發(fā)起,要保證電梯能順利在空閑模式下啟動,并轉(zhuǎn)化狀態(tài)為其他運(yùn)行狀態(tài),同時作為仿真系統(tǒng),很重要的一點是保證仿真的真實性,即仿真界面的真實性,本文正是基于各種真實性要求進(jìn)行程序設(shè)計。圖2是該模塊判斷并運(yùn)算的流程圖。
圖2 到達(dá)呼叫層處理模塊的運(yùn)算邏輯圖
3 基于LabVIEW的到達(dá)呼叫層處理模塊程序設(shè)計
3.1 程序框變量說明
表1是程序框中將用到的變量的名稱及描述。
表1 程序框變量說明
3.2 程序編寫及說明
3.2.1 狀態(tài)判斷運(yùn)算

圖3 到達(dá)呼叫層處理模塊程序圖
圖3中,第一層條件結(jié)構(gòu)框,該條件框中選擇的條件設(shè)為三個:“0”,“1”,“2”,分別對應(yīng)電梯運(yùn)行的三個狀態(tài),“上行=0”,“下行=1”,“空閑=2”,當(dāng)“E1 State”滿足其中一個條件時,將會執(zhí)行該條件下的運(yùn)算,如圖3,4,5分別表示運(yùn)行狀態(tài)為不同狀態(tài)時的運(yùn)算,圖3為上行時的運(yùn)算即圖2中的“運(yùn)算I”,圖4為下行時的運(yùn)算即圖2中的“運(yùn)算II”,圖5為空閑時的運(yùn)算即圖2中的“運(yùn)算III”。每個運(yùn)算可以實現(xiàn)電梯運(yùn)行的具體功能,限于篇幅,本文僅針對“運(yùn)算I”的程序在3.2.2中做分解闡述。

圖4 運(yùn)行狀態(tài)為下行時的運(yùn)算程序


圖5 運(yùn)行狀態(tài)為空閑時的運(yùn)算程序
3.2.2 上行狀態(tài)下的運(yùn)算
如圖3,當(dāng)“E1 State”為“0”時即執(zhí)行第一層條件結(jié)構(gòu)框中的第二層條件結(jié)構(gòu)運(yùn)算,同樣是一個條件選擇,有兩個條件觸發(fā)值:“真”,“假”,它的判定依據(jù)是電梯是否到達(dá)命令指令樓層,即“E1 COMM”與“E1 Position”這兩個一緯布爾型數(shù)組相“與”運(yùn)算得到另一個一緯布爾型數(shù)組,再對得到的一緯數(shù)組進(jìn)行“邏輯或”運(yùn)算,將得到一個邏輯值“0”或者“1”,當(dāng)值為“1”即“ture”的時候,將觸發(fā)第二層條件結(jié)構(gòu)框內(nèi)的運(yùn)算,否則不運(yùn)算繼續(xù)檢測(因為“false”的條件下沒有運(yùn)算設(shè)計)。該步驟的電梯對應(yīng)功能是,當(dāng)電梯運(yùn)行到呼叫發(fā)起層時要進(jìn)行的運(yùn)算,即第二層條件結(jié)構(gòu)為“true”的運(yùn)算。
當(dāng)?shù)诙訔l件結(jié)構(gòu)為“真”時即電梯運(yùn)行到命令樓層(呼叫層,或者乘客下梯的樓層)的運(yùn)算為一個順序結(jié)構(gòu)框,第一層順序結(jié)構(gòu),該結(jié)構(gòu)將依次執(zhí)行一個3步的序列運(yùn)算,二,三步的序列運(yùn)算程序如圖7所示。順序結(jié)構(gòu)在LV中的執(zhí)行可以有先后次序的限制也可以沒有先后次序的限制,取決于編程需要,在本文第一層的順序結(jié)構(gòu)可以沒有先后次序,由于第二,三步的程序和實現(xiàn)的功能比較簡單,這里先做出解釋:
第二步的功能是等待2秒鐘(假設(shè)的模擬數(shù)值,實際值因該為大約30秒),等待乘客進(jìn)入電梯,或者走出電梯;
第三步的功能是,將已到達(dá)的目標(biāo)層從命令寄存器中清除,同時將該層從上行目標(biāo)隊列寄存器中清除,運(yùn)算程序描述為:“E1 Position”數(shù)組取反后同“E1 COMM”數(shù)組相“與”得到的一緯數(shù)組重新賦值給“E1 COMM”(此步清除命令寄存器中前往該層的指令),同時將“E1 Position”數(shù)組取反后同“E1 Up Target”數(shù)組相“與”運(yùn)算,結(jié)果賦值給“E1 Up Target”(此步將該層從上行目標(biāo)隊列寄存器中清除)。
順序結(jié)構(gòu)第一步如圖6示,首先判斷電梯呼叫發(fā)起層是否是電梯當(dāng)前位置,程序編寫為:“E1 Up Init”同“E1 Position”進(jìn)行“與”運(yùn)算得到一個一緯布爾型數(shù)組,再對該數(shù)組進(jìn)行“邏輯或”運(yùn)算,可以得到一個邏輯值“0”或者“1”,接下來進(jìn)入第三層條件結(jié)構(gòu)框,如果電梯當(dāng)前處于呼叫發(fā)起層的位置即第三層條件結(jié)構(gòu)條件值為“0”時不作操作(沒有程序設(shè)計),程序繼續(xù)運(yùn)行。當(dāng)?shù)谌龑訔l件結(jié)構(gòu)值為“1”時,將要執(zhí)行第二層順序結(jié)構(gòu)框中的4步順序運(yùn)算。

圖6 第二層條件結(jié)構(gòu)框

圖7 順序結(jié)構(gòu)的第二,第三序列程序
第二層順序結(jié)構(gòu)框的各步序列程序如圖8所示:
第一步的程序描述為:將“E1 Position”取反運(yùn)算后同“E1 Up Init”進(jìn)行“與”運(yùn)算,結(jié)果賦值給“E1 Up Init”,功能實現(xiàn)為:當(dāng)電梯到達(dá)呼叫發(fā)起層后清除呼叫發(fā)起層的指示燈;
第二步的程序描述為(為了便于說明,假設(shè)電梯當(dāng)前位置為第5層):將命令寄存器“Tray2”中的第五層命令用“數(shù)組索引”函數(shù)提取出來,變?yōu)橐痪晹?shù)組,再用數(shù)組拆分函數(shù)在第五個元素位置將一緯數(shù)組拆分為前端,后端兩個一緯數(shù)組,前端數(shù)組與布爾型數(shù)組常量相“與”得到的數(shù)組,同后端數(shù)組重新合并為一個一緯數(shù)組,合并后的數(shù)組同上行命令寄存器“E1 Up Target”進(jìn)行“或”運(yùn)算,將得到的一緯數(shù)組重新賦值給“E1 Up Target”。該步的功能為,將呼叫層目的樓層裝入電梯上行目標(biāo)寄存器中;
第三步的程序描述為(仍以到達(dá)第五層為例):將“Tray2”用數(shù)組索引函數(shù)取出第五層分配的命令數(shù)組,在第五元素位置拆分為前端,后端兩個一緯數(shù)組,前端數(shù)組與一緯布爾型數(shù)組常量相“與”運(yùn)算后同后端數(shù)組重新合并為一緯數(shù)組,取反后從中部拆分為兩個數(shù)組,利用創(chuàng)建數(shù)組函數(shù)合并后將數(shù)據(jù)傳入第四條件結(jié)構(gòu)框待用。第四條件結(jié)構(gòu)框共有十個選擇條件,觸發(fā)條件為電梯到達(dá)的樓層數(shù)。當(dāng)?shù)竭_(dá)第四層時觸發(fā)條件“3”,當(dāng)?shù)竭_(dá)第五層時觸發(fā)條件“4”依次類推,功能是更新替換數(shù)組Tray(i)中的數(shù)組。程序編寫如圖9所示。第二順序框第三步功能是將到達(dá)樓層按鈕盤上的上行指令燈清除,同時保留下行指令燈(如果有下行指令的話)。
第四步的程序描述(仍以第五層為例):將二緯數(shù)組“Tray2”的第五行提取出來,在第

圖8 第二層順序結(jié)構(gòu)
個元素處拆分為前端,后端兩個一緯數(shù)組,后端與布爾型數(shù)組常量相“與”后與前端合并再同Tray2的第五行提取的一緯數(shù)組相“與”后得到一緯數(shù)組,并用該數(shù)組將“Tray2”中的第五行替換掉,然后賦值給二維數(shù)組“Tray2”。該步的功能為在將命令寄存器“Tray2”中的命令提取并裝入上行目標(biāo)寄存器后,清除“tray2”中該樓層的上行請求指令,在步驟二中已經(jīng)完成裝載指令,所以在第四步中,完成的則是清除“Tray2”中的相應(yīng)指令。

圖9 第四層條件結(jié)構(gòu)
至此,電梯群控仿真程序中的到達(dá)呼叫層處理模塊中的,電梯上行狀態(tài)下的LV程序已經(jīng)編寫完成,分步運(yùn)算調(diào)試后發(fā)現(xiàn)功能完全符合設(shè)計要求。
4 結(jié)論
LabVIEW的強(qiáng)大圖形編程功能,使得編程簡單,易學(xué),易懂,對于工程技術(shù)人員而言,能輕松的編寫一個符合自己需要的程序或者仿真程序,對工作學(xué)習(xí)的效率將是一個飛躍性的提高,隨著時代的進(jìn)步,計算機(jī)技術(shù)的發(fā)展,科技電子化將是個趨勢,而既懂工程技術(shù),又能輕松編程的技術(shù)人員將為社會的進(jìn)步,科技的進(jìn)步做出不可估量的貢獻(xiàn),因此LabVIEW作為這樣一個中間載體,它的意義和價值是不言而喻的。
參考文獻(xiàn)
[1]潘志峰,羅飛,許玉格.高性能的電梯群控系統(tǒng)仿真平臺的設(shè)計.計算機(jī)工程與應(yīng)用,2006,35:181-183.
[2]金香維,圖形化程序設(shè)計語言G語言—LabVIEW 與虛擬儀器.長沙電力學(xué)院學(xué)報(自然科學(xué)版),2002,(17):14-17.
[3]劉君華,主編.基于LabWindows/CVI的虛擬儀器設(shè)計[M].北京:電子工業(yè)出版社,2003,45-72.
[4]王秀芳,郝建勛.虛擬示波器的設(shè)計與實現(xiàn)[J].儀器儀表學(xué)報,2005,26(8):253-254.
[5]LA1 wu—xing,TSE P W ,ZHANG Gui—cai.et al Classification of gear faults using cumulants and the radial basis function network[J].Mechanical Systems and Signal Processing,2004,18(2):381-389.