企业简介

作为中国自动化领域的权威旗舰网络媒体,控制网创立于1999年7月,是中国举行的第十四届IFAC (International Federation of Automatic Control)大会的中国官方组织机构的唯一指定网站。控制网是中国自动化学会专家咨询工作 委员会(ECC)的秘书处常设之地。是北京自控在线文化传播有限公司开设的网站。

  • 公司类型:其他

联系方式
  • 控制网
  • 地址:北京市海淀区上地十街辉煌国际2号楼1504室
  • 邮编:100085
  • 电话:010-57116291 / 59813326
  • 传真:010-59813329
  • 网址:http://www.kongzhi.net
  • Email:mahongliang@kongzhi.net
  • 联系人:市场部
案例详细
标题LabVIEW 在电梯群控仿真中的应用
技术领域仪器仪表
行业电梯
简介
内容

    韩奎(1979-)
男,上海人,硕士研究生,(上海交通大学自动化系,上海  200030)主要研究方向为控制工程及工业自动化。
 
摘要: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.