唐元元, 张均东, 贾宝柱, 姜瑞政, 于长宏
(1.大连海事大学 轮机工程学院, 辽宁 大连 116026; 2.大连船舶重工集团有限公司, 辽宁 大连 116028)
随着计算机及电子信息产业飞速发展,智能终端设备在工业生产和学员培训等领域中的应用日益广泛。用来进行船员培训及评估的轮机模拟器随着船舶的更新换代而不断出现新的产品。为适应当前的培训需求,会将轮机模拟器二维培训软件在台式计算机显示器、LG 4K电视、Surface及工控电脑等主要设备上运行。以Windows Form为显示框架的轮机模拟器受不同显示设备的分辨率不统一的限制,无法通用。对此,须针对特定的显示设备重新开发图形用户接口(Graphical User Interface,GUI)。轮机模拟器包含的子系统数量巨大、设备逻辑复杂,重复开发会显著增加轮机模拟器研发人员的开发成本、维护成本和升级成本。在对当前主流的显示方案及WPF(Windows Presentation Foundation)显示技术进行研究的基础上,认为基于WPF显示框架的轮机模拟器GUI开发可有效解决上述问题。
轮机模拟器在船员培训中具有重要作用,国际公约和我国法规均有相关规定。[1]当前已有许多研究人员对轮机模拟器及其子系统进行研究。LASKOWSKI等[2]使用Konsberg Neptune MC90-IV型全任务轮机模拟器分析具有不同百分比的水乳化燃油(Fuel-Water Emulsion)对柴油机有害物质排放和柴油机经济性的影响,并说明轮机模拟器在学员培训上的可行性。甘辉兵等[3]针对国内超大型油船(Very Large Crude Carrier,VLCC)轮机模拟器缺乏货油透平仿真系统的现状,基于Windows Form应用程序,采用机理建模与实船操作仿真相结合的混合仿真技术,建立典型的VLCC船舶货油透平仿真系统。SHANG[4]开发轮机系统中的造水机3D模型和数学模型,使用VC++ 6.0开发数据接口。曹辉等[5]采用模糊综合评判方法并结合主观权重因素开发轮机模拟器船员适任评估系统,该系统可实现评估大纲中关于既定项目和情景自定义项目的评估考核,降低评估员的主观判断对结果的影响,改善评估的客观性。这些研究丰富了轮机模拟器的子系统,改善了轮机模拟器的性能,但未对如何减少重复开发并适用于多种终端设备的问题进行研究。WPF显示框架的推出和不断改进得到了许多软件开发人员的关注。KOZMINSKI[6]对WPF技术的原理进行介绍并说明使用WPF框架创建测试操作接口的优越性。MITSOPOULOS等[7]使用C#语言和WPF框架开发一套火灾管理软件。WANG等[8]采用WPF技术开发一套Mini OA系统。PAN等[9]基于WPF开发一套可缩放GUIAC(Graphics User Interface Architecture for Open Computer Numerical Control)应用。李方芳等[10]基于WPF技术开发一套应用于飞行模拟器中的通用可配置式教员控制台软件引擎。
这里在分析计算机主要显示方案及轮机模拟器的显示需求的基础上,提出通过显示缩放方式满足适应多种分辨率显示设备的要求。在对WPF显示框架进行研究的基础上,以WPF显示框架为基础开发轮机模拟器显示框架和应用于VLCC上的轮机系统控件库。
轮机模拟器与其他培训模拟器类似,利用计算机软件和真实机舱实物等,以半实物仿真的形式再现轮机系统原理、轮机虚拟场景,提高船员对轮机原理的理解,缩短船员的实船实习周期。[11]轮机模拟系统的功能主要包括系统模拟、学员考评、故障分析、场景回放和教练员指导等,并集成重要设备的监控系统操作培训和机舱监控与报警系统。轮机模拟器既有通用型轮机模拟器,也有针对特定母型船的分船型轮机模拟器,如VLCC型轮机模拟器、海洋石油支持船轮机模拟器及液化天然气(Liquefied Natural Gas,LNG)船轮机模拟器等。[12]为满足数学模型精细化、培训形式多样化和仿真功能全面化等方面的需求,新型轮机模拟器系统以模块化的形式分离。分离型轮机仿真平台可减少各模块的耦合,提高分工协作的效率。[13]
分离型轮机模拟器采用总线型网络结构(见图1)。当前的轮机模拟器培训系统包含多套二维交互系统和三维交互系统、1套硬件交互系统及1套仿真平台。当进行协同培训时,各交互系统的交互信息需发送至仿真平台,经仿真平台运算后同步给在网的所有其他交互系统,达到状态同步的目的。当前系统同步机制采用局域网组播技术,交互系统采用轮询查询的方式保持同步。
根据轮机模拟器二维培训软件的运行特点及轮机培训软件的行业习惯,轮机模拟器软件被划分为顶部功能区、轮机系统视图区和底部功能区等3大区域(见图2)。功能区包含常用的功能按钮(如系统启动、停止及状态保存)、其他功能的跳转按钮(如监测报警系统按钮、系统设置按钮)及信息显示区域(如阀件信息说明、报警指示等)。轮机系统视图区是最复杂的区域,承载着所有的轮机系统,并包含更深层次的监控软件GUI逻辑和设备控制系统GUI逻辑等。为避免重复开发和方便使用,设计的轮机模拟器GUI应满足以下2点要求:
1) 承载轮机系统的窗体能适应多种分辨率的显示设备。
2) 轮机系统视图区能局部放大,对超出窗口的区域进行裁剪。
传统的Windows Form显示框架和基于分辨率无关的显示均不能直接满足以上要求。基于WPF的显示系统包装元素布局和渲染变换,采用新的布局系统和已包装的变换过程,可为程序员处理GUI逻辑及元素变换节省很多时间和精力。这样,在基于WPF的显示框架上,为满足设计要求,将窗体作为一级变换层,将轮机系统视图区作为二级变换层。采用这种设计方式可确保一级变换层的变换均可应用到二级变换层,而二级变换层的变换不会影响一级变换层;同时,符合用户的逻辑和使用习惯。
桌面应用程序以窗体为单位。1个应用程序对应1个主窗体,定义应用程序的可视化边界。为准确描述GUI的开发结构,将轮机模拟器的整个GUI结构拆解为多个功能小块进行描述。根据轮机模拟器的布局设计方案,GUI的功能划分见图3。主窗体承载轮机模拟器的轮机模拟图系统和轮机监测与报警系统2大子系统。主窗体内的承载容器处理其内部可视化元素的缩放,实现轮机模拟器整体的自由缩放和多分辨率的适应。模拟图系统包含功能区、容器及其他显示区域,其中容器用于承载模拟器所有的轮机子系统,并负责处理其承载内容的缩放,实现轮机系统视图区的局部缩放。
轮机模拟器的主窗体和缩放处理为整个系统的框架,内容由全船轮机系统的模拟图填充。轮机系统模拟图需从WPF提供的可视化元素中继承,以获得WPF显示框架的支持。船舶轮机系统众多,其中轮机子系统模拟图就多达150幅左右,包括船舶电站、主推进系统、燃油系统、蒸汽系统、空气系统及消防系统等。为降低轮机模拟器系统框架与各轮机系统之间的耦合度,需对其进行隔离。
该轮机模拟器采用子系统文件即时加载机制实现系统框架与模拟图子系统的隔离(见图4)。此外,该机制能极大地降低轮机模拟器运行时对计算机配置的要求,为轮机模拟器在研发阶段进行单系统调试、多系统调试和全船轮机系统联合调试提供方便。
系统框架在轮机模拟器启动之后一直存在,而MIMIC系统并不存在。主窗体中具有导航按钮,当用户需要时,系统框架通过文件即时加载方式创建子系统对象并导航到特定的轮机子系统中。通过对文件加载方法进行处理,可确保系统框架与MIMIC系统完全隔离,具体的导航结构见图5。导航系统中的每个按钮对应1个PageInfo对象。根据面向对象编程的思想,每个PageInfo对象代表1个MIMIC子系统并负责记录该系统的相关标识,如序号ID及系统ID等。PageInfo中的MIMIC ID标识用于确定特定的MIMIC子系统,通过文件加载的方式实现。文件加载方式还负责子系统生命周期管理、子系统丢失处理及向其他相关系统发出加载通知。
为实现子系统的缩放和管理,轮机子系统需在WPF提供的Page类的基础上作进一步的开发和处理(见图6)。ICommon接口负责实现子系统刷新和语言切换等功能。MimicBase类从Page类继承并实现ICommon接口,作为轮机子系统的实现基类。此外,MimicBase类还提供文件即时加载方式,以满足图4中MIMIC的进一步嵌套。这种模式适于轮机模拟器中的主机遥控系统等有多重嵌套需求的GUI开发。既可直接从MimicBase继承实现子系统开发,也可在对MimicBase作进一步扩展后再实现子系统开发,这主要是由于轮机子系统过于庞大。目前轮机模拟器中的主机主操纵面板(Main Operation Panel)就使用该种方式开发。
以上实现的只是轮机模拟器的GUI框架。制作轮机子系统GUI,控件库是其中非常重要的一部分。船舶机舱设备及控制元器件各不相同,基于母型船设计的轮机模拟器的器件繁多,许多器件虽然外观不同,但功能相同。控件通常用于人机交互,对控件的实现结构进行良好的规划可减少开发时间、方便维护管理。在WPF显示框架的基础上,按照系统交互需求对WPF提供的基础类型进行扩展。
按照面向对象的程序设计方法和轮机系统中元器件的特点,扩展的类型从功能上主要分为具有复杂外观变换逻辑的装饰类、具有复杂可视化外观的交互类和具有复杂逻辑的交互类等3类。所有扩展类型均需获得FrameworkElement及其子类的特性支持。为便于人机交互,具有交互能力的元器件对应的交互类需实现IManipulate接口,该接口定义交互点的ID及对应的字段值信息。为此,控件库中定义实现IManipulate接口的ExFrameworkElement和ExContentControl类,与FrameworkElement类一起构成轮机模拟器控件库的基础扩展框架。轮机系统中元器件分为灯、按钮、旋钮、断路器、车钟、阀、泵、管道和仪表等类型,构成主体扩展类。主体扩展类从基础扩展类继承,并根据对象特征定义相应的属性(见图7)。轮机模拟器中的通用型控件从主体扩展类继承,特殊类型的控件从基础扩展类继承。
演示示例使用的是实验室新开发的VLCC型轮机模拟器,该系统现已交付给国内某大学进行船员培训使用。新型轮机模拟器中的GUI完全采用WPF提供的基础框架和实验室自主研发的适用于轮机专业的扩展框架建立。开发的轮机模拟器可自动适应显示器的分辨率和屏幕尺寸,且模拟图区域可自由缩放,实现同一套轮机模拟器运行于不同显示设备的方案。
图8中演示的是新型轮机模拟器的多分辨率适应能力,并与采用Windows Form开发的轮机模拟器相对比,显示的是该实验室的2台轮机模拟器测试用显示器,其中:较大的显示器为LG 65UF8580型65寸4K智能液晶电视,外加红外触控功能;较小的显示器为AOC U2868PQU型28寸显示器,显示的是VLCC型轮机模拟器的主机燃油供给系统。2台显示器连接在同一台计算机上,其中LG智能电视当前的显示分辨率为3 840×2 160,AOC显示器当前的显示分辨率为1 920×1 080。从图8中可明显看出,由于该套轮机模拟器的设计分辨率为1 920×1 080,因此只能在AOC显示器中占满整个屏幕,在LG 4K电视中仍只能使用1 920×1 080的像素,不能充分利用4K显示器的高清分辨率。若要充分利用4K高清显示,须重新开发轮机模拟器的交互界面。从图8b)中可看出,运行的轮机模拟器可在同一台计算机搭载的3 840×2 160像素的LG 4K电视和1 920×1 080像素的AOC显示器中呈现不同的分辨率并占满屏幕。在LG 4K电视中,轮机模拟器的GUI交互界面充分利用4K高清显示器的性能,GUI以更多的像素渲染自身,GUI呈现更加细腻、丰富。通过应用该技术,开发的轮机模拟器可适用于不同分辨率的显示器,减少轮机模拟器的开发工作量,为以后系统的维护和升级提供便利。
图9为新型轮机模拟器的轮机系统视图区的局部放大能力。当轮机模拟器运行于尺寸较小的显示器时,可通过放大局部区域,方便使用者操作。图9中的轮机模拟器在微软Surface Pro3平板电脑上运行,屏幕尺寸为12英寸,分辨率为2 160×1 440。由图9可知,在不改变轮机模拟器应用程序的Window尺寸的情况下,轮机系统视图区被放大。图9中的高温淡水泵及泵前压力表清晰可见。在Window尺寸较小的情况下,通过拖曳轮机系统视图区,可在放大的情况下逐步操作所有设备。
为使轮机模拟器适用于多种分辨率和尺寸的显示设备,对当前主流的计算机显示方式和软件设计技术进行研究。通过缩放轮机模拟器的整个Window得到使轮机模拟器适用于多种分辨率的显示设备的方案,通过缩放轮机模拟器的局部区域,方便轮机模拟器在小尺寸显示设备中操作。基于WPF的显示框架实现轮机模拟器的无级自由缩放。在WPF显示框架的基础上开发适用于轮机模拟器的控件框架和控件库,开发轮机模拟器所有系统的GUI交互界面。实践应用结果表明:基于WPF的无级缩放技术可实现1套轮机模拟器运行于多种分辨率显示器。WPF中提供的模板与样式系统的使用可提高GUI开发的效率。文件即时加载机制可减少轮机子系统之间的耦合度。在高分辨率的显示器中,轮机模拟器中的GUI显示更为细腻。在小尺寸的显示器中,通过缩放轮机模拟器的系统视图区,可方便用户操作。新型轮机模拟器在如何适用多种分辨率显示器的问题上得到了良好的解决方案。
[1] 贾宝柱, 林叶锦, 曹辉,等. STCW公约马尼拉修正案中机舱资源管理条款的深入解读[J]. 航海教育研究, 2015(2): 7-12.
[3] 甘辉兵, 张均东, 蒋丁宇, 等. 超大型油轮货油泵透平系统仿真研究[J]. 中国造船, 2014, 55(1): 164-174.
[4] SHANG Q M. Modeling and Simulation of Freshwater Generator Subsystem of Low Speed Engine Room Simulator Based on Visual[C]// Advanced Materials and Processes II. Clausthal-Zellerfeld, Germany, 2012: 557-559.
[5] 曹辉, 马玉鑫, 贾宝柱. 基于模糊综合评判的轮机模拟器智能评估系统[J]. 大连海事大学学报, 2015,41(1): 104-108.
[6] KOZMINSKI A. Windows Presentation Foundation (WPF) Technology Meets the Challenges of Operator Interface Design in Automatic Test Systems[C]// 2012 IEEE Autotestcon Proceedings. Piscataway, NJ, 2012: 80-83.
[7] MITSOPOULOS I, TRAPATSAS P, XANTHOPOULOS G. SYPYDA: A Software Tool for Fire Management in Mediterranean Pine Forests of Greece[J]. Computers and Electronics in Agriculture, 2016, 121: 195-199.
[8] WANG C, LIN Z, GUOTANG F, et al. Design and Implementtation of WPF-Based Mini OA System[C]// Proceedings-2014 9th International Conference on P2P, Parallel, Grid, Cloud and Internet Computing. Piscataway, NJ, 2014: 120-126.
[9] PAN H, JIANG J, CHEN L, et al. A Scalable Graphics User Interface Architecture for CNC Application Based-On WPF and MVVM[C]//Equipment Manufacturing Technology and Automation. Clausthal-Zellerfeld , Germany, 2011: 1931-1935.
[10] 李方芳, 赵旭东, 卢伟文, 等. 基于WPF的通用可配置式教员控制台软件引擎研发[J]. 系统仿真学报, 2013, 25(8): 1761-1765.
[11] 贾宝柱, 曹辉, 张均东,等.轮机模拟器及其关键技术[J]. 中国航海, 2012, 35(1): 35-40.
[12] 曹辉, 张均东. 现代船舶轮机模拟器的应用与发展[J]. 航海教育研究, 2012(1): 33-36.
[13] 唐元元, 张均东, 曹辉. 大型商船分离型轮机仿真实验平台的设计[J]. 大连海事大学学报, 2016, 42(2): 58-62.