刘卓超
(武汉铁路职业技术学院,湖北武汉 430205)
近年来,中国在铁路行业取得了举世瞩目的成就。伴随我国高速铁路行业的迅猛发展,各部门和企业对于当今动车组司机的需求在数量和质量上都提出了更高要求。而在实际的铁路司机培养和训练中,局限于培训人员数量多、时间紧、接触真车机会少等因素,早期就开发出一种专用的列车模拟驾驶培训系统,能够满足在室内环境更加安全而高效地对多位学员同时提供列车模拟驾驶仿真训练和培训。这种系统最早起源于70年代,并随着技术和时代发展而不断更新和升级。其在培训列车司机的过程中具备多方面的优势,能够充分全面地培养司机学员在技能驾驶各方面的实际动手操作能力。该系统在多方面大大提高了铁路司机的学习和培训效率,并逐渐被世界各地专门从事列车模拟驾驶器开发生产公司和厂商及科研机构、高校所普遍采用。该套系统在满足教学方面需要根据实际需求采用定制的教学管理软件,软件平台的设计与实现以C++作为程序设计语言,采用微软Visual Studio作为程序设计平台,并以SQLServer作为数据库后台。
结合实际功能需求分析,列车模拟驾驶培训系统教学管理软件的设计包含5个主体模块,分别是:①课程模块:负责对课程信息进行设置及添加修改等操作;②线路模块:对于动车组模拟运行线路进行编辑和设计;③学员信息管理模块:在教学方面用于管理和存储相关教学员信息;④网络模块:负责和系统内各功能分区设备相互联机;⑤操作测评模块:对于学员模拟驾驶操作进行判定鉴别。
软件主体框架在设计完成之后需要通过这5大模块来完成其作为教学管理平台的核心功能和作用,其关系如下图1所示。五大功能模块相互独立,并在内部存在一定联系。其中,课程模块主要为实现软件中的课程管理、发布及考核功能。线路模块为系统中模拟驾驶的列车运营线路做管理并和场景画面关联。网络模块为实现教员机与教学功能分区内的其它各个主机间进行网络互联。学员信息管理模块为实现教员对学员信息的管理。操作测评模块为实现对学员操作记录测评数据的管理和输出。
图1 教学管理软件功能模块组成结构图
作为软件核心的五大功能模块具体设计及实现的总体工作量非常巨大。在此只针对操作测评模块的设计方案来进行阐述。
根据操作测评功能模块功能需求的分析,操作测评功能模块按照需求应当实现测评规则管理、数据管理、综合测评及测评结果管理四方面基本功能,由此设计与之相对应的四个子模块来进行分工合作,对应为测评规则及模板模块、模拟器数据管理模块、测评方法模块、测评结果输出模块,子模块结构设计如下图2所示。
图2 操作测评模块的子模块组成设计
其中,测评规则及模板模块主要针对测评标准的制定、模板编辑器的修改及测评标准选择三方面功能目标,其作用范围是在程序内部建立测评规则和标准并为其他子模块提供服务。模拟器数据管理模块则主要针对课程、记录等数据的解析,对需测评数据进行订购、数据格式及转储的处理以及对内存数据管理的功能。其主要作用范围是针对程序内部接口及对各种类型测评数据的管理和交换。在测评方法模块部分则主要负责针对测评方法管理的内容,包含有单项指标测评方法、故障逻辑搜索类测评方法以及模糊综合测评方法三种,其主要作用范围是针对于测评规则及模板模块和模拟器数据管理模块在数据汇总后的相应测评方法的选择和处理。最终的测评结果输出模块则是在数据进行了对应测评方法选择的基础上对应以成绩单、操纵示意图、错误记录文件和解释模块四方面形式在软件界面进行呈现。
四部分子模块在功能上相对独立,但内部又存在一定的联系,测评规则及模板模块和模拟器数据管理模块的数据信息汇总后需通过测评方法模块进行对应测评方法的选择,最终再导出到测评结果输出模块进行相关数据分析和处理,并以相应形式进行结果的反馈输出。
其中,在测评规则及模板模块的设计中,为了使系统内部的测评规则模板形式简明直观的同时又能够便于被重新编辑修改并立即使用,由此设立制定模板编辑器。通过该项功能,可以实现在对一系列的学员操作进行客观测评过程中对一些具体科目及条目在测评标准上进行细微调整和修改。这样在一定程度上很大提高了测评功能模块整体运作中的灵活度和可更新性。对模板编辑器的设计和优化也是该软件系统功能完善中的一个重要方向和前景。模板编辑器程序设计流程图如下图3所示。
图3 模板编辑器程序设计流程图
程序设计思想为首先通过初始化主界面操作进入模板编辑器,然后再选择编辑项目并从包含环境状态数据、规则内容数据、值型数据等内容的数据库文件中读取待编辑的科目及条目数据内容,随后进入初始化科目的操作,如果顺利执行便进入条目的初始化操作,科目条码初始化不成功则重新返回到原状态并等待重新执行。确保完成科目条目初始化后再通过选择处理类型来对选定的科目条目进行增加、修改及删除等编辑操作。最后在完成编辑修改后程序对新编辑结果进行保存并将其存入到测评规则对应的数据库中,以供后续调用。
按照CRH-3型动车组模拟驾驶培训系统的整体结构特点以及测评功能模块的管理机制,对应需要设置操作测评数据库相关信息。具体的设计思想是结合CRH-3型动车组车辆参数信息、模板编辑器内容及操作测评数据格式结构来设计建立相应的信息表,每张表中包含各自所对应的项目。测评数据库总体中包含很多信息表,在此不方便全部列出,仅列出车型、科目、条目三个关键信息表及其对应的项目名称。其中,三者之间又存在内在联系,即车型表通过其索引ID项目与科目表中总ID相关联。科目表中的父科目ID链接上一级科目编号,科目表中通过开头的科目ID链接到对应的条目表中。总体设计的形式及三者间的联系如下图4所示。
图4 学员操作测评数据表设计及关系
操作测评模块程序设计的主要思想是按照系统内部对于测评数据具体的分析和处理流程而实现的。其程序设计流程图如下图5所示。
图5 学员操作测评模块程序设计流程图
总体过程为首先通过初始化界面进入程序操作测评阶段,再通过点击选择对应学员的测评课程开始进入对象的测评,随后程序进入相关科目及条目初始化阶段并从数据库规则数据中读取相应的内容。然后程序根据测评条目对相关信息进行数据分析并分别按照主观测评和客观测评两部分给分。在主观测评部分是通过教员手动操作来对照科目条目进行测评给分,客观测评部分则是由程序根据模拟器中之前建立的测评模板数据进行测评,最终测评结果为主观测评和客观测评结果两部分的总和。教员完成手动测评操作后的结果会和机评结果一起在程序缓存中存储。直到每项科目条目测评完成后最终测评结果会在主机内存中进行物理保存并通过教员手动操作存入文件或后台数据库中。
程序设计的核心思想是在于首先在操作测评功能模块内部建立用于临时性存储科目条目信息的科目仓库及条目仓库,同时需要自定义科目条目基类及访问类、学员信息和课程信息访问类,通过调用多种MFC中的专用类以及自定义类来进行数据包信息的遍历和传输。下图6是操作测评模块程序设计中各功能类调用访问关系的示意图。整体结构图中学员操作记录数据均通过入口处IEvalue来进入课程信息访问类CClassView传递,其中左边向来自内存数据的学员信息访问类CStudentView传递,右边至科目基类CSubjectBase,科目及条目基类从对应的仓库类中调用具体的科目条目数据内容。课程信息访问类CClassView也会向下通过科目访问和条目访问对仓库信息进行校验。最后科目及条目基类和学员信息类CStudentInfor的信息通过学员访问来相互联系并对应评分。其中,科目条目在访问中如果出错也会进行数据信息的重传,以确保数据的有效传输。
图6 操作测评模块自定义功能类调用访问关系结构图
根据以上设计方案完成该套模拟驾驶系统教学管理软件内操作测评功能模块相关程序的工程代码设计,期间通过针对C++语言的微软软件程序设计平台Visual Studio编译试运行,并结合利用在SQL数据库后台中建立的相应测评指标体系的信息,最终实现在教员管理软件界面对于学员各项操作指标的记录及测评功能。