
男,上海人,碩士研究生,(上海交通大學自動化系,上海 200030)主要研究方向為控制工程及工業自動化。
摘要:LabVIEW 作為圖形化編程語言簡單易懂,廣泛用于眾多領域,在電梯群控仿真系統中的應用卻很少。該軟件的強大圖形化功能使編程變的簡單,一般的工程技術人員也能很快上手,對與幫助分析與幫助研究的意義非常重大,本文就以LabVIEW為平臺編寫的電梯群控仿真系統中的一個功能模塊展開討論,研究并展示LabVIEW的強大功能以及對工程技術人群的重大意義。
關鍵詞:LabVIEW;電梯群控;圖形編程
關鍵詞: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
電梯群控系統(EGCS,Elevator Group Control System)是現代建筑交通系統中重要組成部分,其設計的正確與否關系著建筑交通系統的可靠性和穩定性。因此,電梯群控系統的模擬仿真顯得十分的必要和重要[1]。LabVIEW 是虛擬儀器集成開發環境的總稱,它是為替代常規的Basic 或C語言而設計的,LabVIEW 是一個軟件開發環境,同時也是編程語言。作為編寫應用語言的語言,除了編程方式不同外,LabVIEW 具備語言的所有特性,由于所有編程以圖形語言(Graphical Language)表現,因此又稱之為G 語言[2]。
目前,國際上介紹電梯群控系統仿真的論文很少,主要的仿真軟件有Elevate,但其源代碼不公開,且價格昂貴。國內的文獻也不多,文獻[3]介紹了軟件硬件結合的方法設汁仿真平臺,由于使用了硬件平臺,所以價格較為昂貴;文獻[4]介紹了基于Matlab的仿真平臺的設計;文獻[5]介紹了基于Delpli的仿真平臺的設計,基于LabVIEW的仿真平臺還沒有見過,本文是想通過介紹群控系統中的一個模塊來介紹LavVIEW在仿真平臺中的應用。
1 基于LabVIEW的群控仿真系統
根據電梯群控的實際運行方式和LabVIEW(一下簡稱LV)的編程特點,本文作者將基于LV的群控仿真系統的功能模塊按圖1所示方式進行劃分, 如圖1所示。

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

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

圖4 運行狀態為下行時的運算程序


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

圖6 第二層條件結構框

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

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

圖9 第四層條件結構
至此,電梯群控仿真程序中的到達呼叫層處理模塊中的,電梯上行狀態下的LV程序已經編寫完成,分步運算調試后發現功能完全符合設計要求。
4 結論
LabVIEW的強大圖形編程功能,使得編程簡單,易學,易懂,對于工程技術人員而言,能輕松的編寫一個符合自己需要的程序或者仿真程序,對工作學習的效率將是一個飛躍性的提高,隨著時代的進步,計算機技術的發展,科技電子化將是個趨勢,而既懂工程技術,又能輕松編程的技術人員將為社會的進步,科技的進步做出不可估量的貢獻,因此LabVIEW作為這樣一個中間載體,它的意義和價值是不言而喻的。
參考文獻
[1]潘志峰,羅飛,許玉格.高性能的電梯群控系統仿真平臺的設計.計算機工程與應用,2006,35:181-183.
[2]金香維,圖形化程序設計語言G語言—LabVIEW 與虛擬儀器.長沙電力學院學報(自然科學版),2002,(17):14-17.
[3]劉君華,主編.基于LabWindows/CVI的虛擬儀器設計[M].北京:電子工業出版社,2003,45-72.
[4]王秀芳,郝建勛.虛擬示波器的設計與實現[J].儀器儀表學報,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.