do:i 10.3969/.j issn .1672 6073.2011.01.016都市快轨交通 第24卷第1期2011年2月学术探讨基于图形化编程语言的列车人机界面设计客金坤 梅 樱 郭红卫 刘志刚(北京交通大学电气工程学院 北京 100044)摘 要 详细介绍一种适用于城市地铁车辆人机界面的设计方案。
通过对比分析,选择功能强大的x86架构硬件平台、开源但稳定性好的L i nux 系统及图形化编程语言Lab V I E W 。
组建并论述人机界面的整体架构和各个界面的对应功能,实验结果验证了系统设计方案的正确性和优越性。
关键词 城市轨道交通 地铁车辆 人机界面 图形化编程 L inux 可靠性中图分类号 U 239.5;U 231.6 文章标志码 A 文章编号 1672 6073(2011)01 0065 041 地铁车辆人机界面在列车运行控制系统中,车载人机界面是车载设备与驾驶员进行信息交互的平台,是列车运行控制系统的一个重要组成部分。
随着现代微机控制的地铁车辆中司机需要的信息日益增加,传统司机室以模拟仪表和指示灯为主的显示方式已经不能适应现代地铁车辆的需要,由此应运而生了基于平板显示器和微机结合构成的智能终端。
这种终端具有显示容量大、信息集成显示、信息可存储等特点,使机车司机室的显示装置简洁化和标准化。
通过智能终端提供友好的车载人机界面,司机可以对列车的相关参数进行设置,实时地得到有关列车和线路的相关状态和数据,对车载设备发出的命令和警告及时进行响应。
基于此,笔者在平板电脑功能强大的硬件平台上,在L i nux 操作系统下,用L ab V I EW 开发了一个适用于城市地铁车辆的人机界面。
2 系统整体方案设计目前,人机界面的开发硬件平台主要是基于ARM收稿日期:2010 04 23 修回日期:2010 05 14作者简介:客金坤,男,硕士研究生,从事电力电子与电力传动的研究,k e j i nku n @gm a i .l com基金项目: 十一五 国家科技支撑计划重点项目(2007BAA12B07)和x86两种架构,操作系统主要是W inCE 、L i nux 、Vx W or ks ,编程语言多采用文本编程语言或组态软件等。
其中,人机界面的开发方案主要为以上不同硬件平台、操作系统及编程语言的组合。
2.1 硬件平台的选择相比x86架构的处理器硬件平台,低功耗是AR M 架构的优势,但硬件资源(如处理器性能、存储容量等)明显不如x86架构的硬件平台。
列车对功耗的要求并不像手机等移动设备那么苛刻,而对人机界面的性能要求比较高,因此x86架构的硬件平台更适合做车载人机界面的开发。
另外,车上电磁环境恶劣且机械振动强烈,要求人机界面的硬件有很好的抗电磁和抗振能力,有比较大的存储能力。
基于以上原因,选择了一款平板电脑PPC104。
它采用的是威盛的工业主板VB7007,其中央处理器采用业界领先的低功耗、高性能V I A C7D 1.5处理器,提供了极其出色的低功耗、无噪声的理想应用系统,带有1GB 的内存;出于列车机械振动的考虑,硬盘选择了8GB 的固态硬盘,增强了整个系统的可靠性;主板的接口丰富,有双网卡、4个CO M 端口和4个USB 2.0接口;显示屏采用10.4英寸高亮度TFT 显示器及高端5线电阻触摸屏,能提供清晰优异的显示效果和简单准确的触摸操作。
2.2 操作系统的选择由于列车的人机界面对操作系统的安全性、可靠性、可用性要求非常高,因此操作系统系统必须能保证安全、可靠、不间断地工作。
W i nCE 、L i nux 、V x wor ks 是做人机界面3种常用的操作系统。
W inCE 开发周期短,但稳定性不如其他两种操作系统;且W inCE 是收费的,每个产品都要向微软买一个许可证,大大增加了产品的成本。
Vx W orks 以其良好的可靠性和卓越的实时性,被广泛地应用在通信、军事、航空、航天等高精尖技术及对实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞65都市快轨交通 第24卷第1期2011年2月机导航等;虽然它能满足列车人机界面对系统的要求,但价格昂贵、性价比不高。
L i nux操作系统的架构完全沿袭了U n i x的系统架构,所以先天就具有成熟稳定的特点,在网络通信方面的效率和功能都很突出; L i nux是开源的操作系统,体系结构比较灵活,易于裁减,免费使用;此外,L i nux还有出色的速度性能。
基于上述3种操作系统的特点,可以看出L i nux是列车人机界面操作系统最理想的选择。
2.3 编程语言的选择传统的界面开发语言主要有组态软件和文本编辑语言两种。
组态软件在人机界面的开发上具有简单易用的优点,但是组态软件的每个人机界面都得付费,加大了项目开发的成本。
文本编程语言(如C、Java、VB)是高度抽象的语言,优点是效率高、可用简短的文字表达丰富的含义,但是用其开发人机界面却有开发周期长、难度大等缺点。
实验室虚拟仪器集成环境(L aborator y V irtual Instr ument Eng i neeri ng W or kbe nc h,LabV I E W)是美国国家仪器公司的创新软件产品,是当今最完善、影响力最大的一种图形化编程语言,具有开发周期短、成本低、使用效率高等优点。
统计显示,完成一个功能类似的大型应用软件,熟练的LabV I E W程序员所需的开发时间大概是熟练的C程序员所需时间的1/5左右。
此外,LabV I E W具有良好的平台一致性,其代码不需要任何修改就可以运行在常见的三大操作系统(W i ndo ws、M ac OS及L inux)上,方便了开发者。
因为开发者可以在熟悉的W i ndo ws环境上开发软件,等源程序写好后,直接到目标平台对应的操作系统下编译生成应用软件。
因此,可选择L a bV I E W作为人机界面的开发工具。
2.4 系统的整体结构综上所述,笔者选择威盛的主板作为硬件平台、L i nux作为操作系统、LabV I E W作为编程语言,系统的整体结构如图1所示。
内置的DC/DC转换器与车辆蓄电池直接连接,额定输入电压为110V,转换后为主板提供12、5V两种电压。
SDRA M视频控制器等通过北桥与CP U相连,固态硬盘、超级I/O、以太网芯片等与南桥相连。
整个人机界面单元通过以太网和整车网络进行通信。
3 人机界面软件架构3.1 软件功能描述对于人机界面I D U的使用分两种不同的权限,即图1 系统的整体结构操作者和系统维护者。
操作者是普通的列车驾驶人员,系统维护者是车辆调试或维修时的系统工程师。
当系统维修者登录后,可以对整车进行测试,下载车辆运行时存在车上的数据。
人机界面的软件系统结构如图2所示,下面从操作者和系统维护者两方面介绍人机界面的设计。
图2 软件系统结构1)主界面:从图2可知,主界面位于整个人机界面的中心,主要功能是对列车状态进行设定、查看列车的历史事件。
当列车停止时,大多数界面可以直接回到主界面。
2)操作界面:列车开动时自动跳转到此界面,只有当列车保持停止状态时在页脚的按钮才能被使用,但当以维修者身份登录时按钮总是能使用的。
门控界面显示列车的当前车门开关状态、列车的刹车情况及乘客紧急报警装置的状态。
制动界面显示列车的当前刹车状态、停车制动和气压情况。
供电界面显示列车牵引供电、辅助供电及电池电压等当前状态。
空调设备界面设置空调系统的工作模式,显示通风设备、压缩机空调的状态。
乘客咨询系统可以改变起始站、下一站和最后一站的名称。
3.2 软件架构设计对于软件来说,整体的架构设计最为重要,好的软件架构便于维护和修改。
LabV I E W采用的是图形化编程,程序大了就会出现整个电脑屏幕显示不全的现象,不易阅读且不便以后的维护。
因此,笔者采用自顶而66基于图形化编程语言的列车人机界面设计下的分层次设计思想。
先把不同功能的程序封装成不同的子模块,但仅这样模块化是不够的,笔者在软件设计时又采用了一个顺序模块,如图3所示。
首先,是程序的初始化;然后,是界面程序及数据的处理;最后,在程序结束前要对一些数据进行保存等工作。
采用这样的顺序结构,使得软件大体结构清晰、维护方便。
图3 顺序结构整个软件的核心是界面处理及数据处理,这部分利用其他语言编程,大部分都放在一个循环中顺序执行,一般为单线程。
L a bV I E W 为自动多线程编程语言,程序中如有两个并行放置且之间没有任何连线的模块,则LabV I EW 会自动把它们放置到不同的线程中并行运行,从而提高程序的效率和实时性。
再设计界面及数据处理部分充分利用了Lab V I E W 的多线程特性,把界面按照不同功能分类放在不同的循环中,从而实现了多线程编程。
按照功能,此部分划分为三大模块,如图4所示。
图4 三循环框图第一个循环内包含一个LabV I E W 的事件结构,根据界面发生的事情来决定执行哪个分支中的代码,主要是对前界面的选项卡界面进行操作。
当改变界面的按钮被按下时,事件结构就会感知到,将其对应值写入选项卡的属性节点,从而改变选项卡的值,实现界面的切换。
此外,该界面还包含了一些显示处理信息(如时间等)。
第二个循环内主要是对数据库进行管理,如对通过列车网络传输过来的列车故障信息等进行存储、对列车的乘客信息系统进行管理等。
第三个循环内主要是对选项卡上的显示部分进行处理,包含一个条件结构,其条件输入端为选项卡,根据选项卡的值来判断从列车网络读取的值,并在界面上显示。
采用这种方式设计软件,维护和修改起来都很容易。
如想再添加另一个界面,只需修改第一个循环中的事件结构和第三个循环中的条件结构,在两个结构中再添加一个分支即可。
4 人机界面的实现4.1 主界面主界面如图5所示,是整个软件的核心,其中主要包括诊断、状态、测试、管理四大部分。
图5 主界面诊断 包括事件历史界面和事件状态界面:事件历史界面下可以选择每一节车厢或整列车的历史事件,可以通过上下移动来观看更多历史事件;事件状态菜单显示当前被激活的事件。
状态 包括牵引状态界面和联锁界面;牵引状态界面给出当前列车牵引和刹车的工作状态;联锁界面显示牵引动力块的当前状态,如速度限制和紧急刹车,出错时前面的方框会显示红色。
测试 包括制动测试界面和乘客信息界面。
管理 主要包括设置界面,可通过这个界面切换到系统维护者,对系统进行更多的操作。
4.2 运行界面当以操作人员权限登录后,列车运行时,人机界面会自动跳转到运行界面,并禁止使用其他界面,这是确保列车能够正常运行的有效手段。
运行界面的设计非常重要,因为它是列车运行时司机和列车交互的主要界面,必须尽可能地将列车运67都市快轨交通 第24卷第1期2011年2月行时的各种状态显示给司机,看起来必须简洁、突出重点,如图6所示。