基于UML的车站联锁软件建模研究

发表时间:2020/12/17   来源:《工程管理前沿》2020年25期   作者:郑伟
[导读] 计算机联锁系统是我国铁路信号的重要安全设备,其联锁功能主要由联锁软件实现
        郑伟
        中铁第五勘察设计院集团有限公司 北京 102600
        1 概述
        计算机联锁系统是我国铁路信号的重要安全设备,其联锁功能主要由联锁软件实现,最终体现于控制对象。在联锁软件开发过程中,功能需求分析和概要设计文档由联锁专家通过自然语言完成编写,而软件开发程序则由开发人员完成,这往往存在后者不能够很好理解专业需求的问题,甚至出现错误理解,最终可能出现软件系统的安全隐患。为解决这种问题,可以在系统开发设计的前期采用建模语言实现对系统需求的定义[1]。利用建模语言实现联锁软件系统的设计,可以有效提高软件的安全性与可靠性,减少系统开发的成本投入。
        UML(unified modeling language,统一建模语言)[2]作为开放式的图形化建模语言,具有多种图形表现方式,并遵循面向对象理念的继承、泛化、实现等特点,为用户提供了一种易用的、具有可视化建模能力的语言进行系统的开发工作,并能够进行有意义的模型互换。其中静态模型包括用例图、类图、对象图、构件图和配置图,构成了UML的静态建模机制。动态模型用于表示时序状态和交互关系,包括状态图,顺序图,活动图和合作图,构成了UML的动态建模机制。
        本文在研究联锁逻辑关系的基础上,采用UML语言及建模工具Rational Rose[3]实现对联锁软件系统的建模研究,分析了信号设备的基本状态变化及在进路处理中的状态变化,完成了室外三大件(信号机、道岔、轨道区段)和进路之间的静态结构建模和数据结构分析,建立了进路处理过程的动态模型。
2 联锁系统静态模型设计
        联锁系统的需求分析是联锁软件开发的基础,通过系统需求分析可以直观地看到联锁软件和外部控制对象间的关系。本文首先建立联锁软件系统的静态结构模型,通过用例图实现对联锁机的用例分析,完成需求建模。其次对联锁系统的内部结构进行分析,选取的分析对象包括信号机、道岔、轨道电路区段和进路,研究其联锁逻辑关系。
2.1 联锁软件结构模型
2.1.1 联锁上位机用例模型设计
        在联锁软件系统设计中,对由人机对话层、联锁控制层和执行层组成的硬件结构做了简化,构建最小功能系统。人机会话层由单上位机实现,联锁层由单联锁机构成,驱动采集以及室外设备可均由软件仿真实现。
        对联锁系统用例模型的分析,通过用例图实现,如图2.2所示。上位机软件包括实现操作输入处理功能、显示功能和通信功能。图2.1中基用例“显示功能”包含对信号机、道岔和区段的状态显示功能,显示功能要求联锁机检查信号机、道岔和区段的状态。


2.1.2 联锁机软件结构模型设计
        联锁机的处理过程是联锁软件的核心,通过对进路处理过程建立活动图来描述这其动作转化,如图2.2所示。


2.2 信号设备对象描述
        信号设备对象主要包括信号机、道岔、轨道区段和进路,在联锁运算中需要涉及其状态信息,可通过类图和对象图实现相应类和对象的描述。
        对各信号设备对象之间关系的描述通过创建类图实现,如图2.3所示。


        信号机作为信号开放的标志,必须保证进路的安全防护。图2.3中,信号机对象描述了信号机的编号(signal_id)、按钮编号(btn_signal_id)、信号机类型(signal_type,列车信号还是调车信号)、信号机状态(signal_state,开放还是关闭)、当前显示(signal_color)、信号机征用标志(signal_hired,是否为进路征用)、是否构成敌对信号(signal_if_conflict)、灯丝状态(light_state,灯丝完好还是断丝)、曾开放标志(signal_has_opened)等。
        道岔位置具有三种状态,分别为定、反位和四开状态。根据锁闭方式可分为进路锁闭、区段锁闭和单独锁闭。图2.3中可以看到静态数据结构描述了道岔的道岔号(switch_id)、道岔性质(switch_type,单动道岔或双动道岔)、双动道岔号(switch_double_id)、道岔状态(switch_state,包括定位、反位和四开状态)、道岔所属区段号(switchNsection_id)、道岔锁闭情况(switch_locked,锁闭还是未锁闭)、道岔位置(switch_orient,包括定位和反位)。
        轨道电路是用于检查区段是否被占用,监督钢轨是否存在断轨情况。轨道区段可以分为无岔区段、有岔区段和股道,与进路建立和解锁有密切关系,通过“三点检查”来实现进路的分段解锁。图2.4中描述了区段号(section_id)、区段类型(section_type,包括有岔、无岔和股道)、区段状态(section_state,占用还是空闲)、区段曾占用标志(section_used)、区段征用标志(section_hired)、上行接近区段号(section_up)、下行接近区段号(section_down)、区段锁闭标志(section_locked)。
        图2.4中描述了进路对象的属性,包括进路类型(route_type,列车或调车)、进路方向(route_orient,上行或下行)、进路号(route_id)、进路始端按钮(btn_start)、进路终端按钮(btn_end)、进路变更按钮(btn_exchange)、主信号机名称(signal_main_id)、进路中的区段号(section_id)、进路的区段数量(section_num)、进路中的道岔名称(switch_id)、进路中的道岔数量(switch_num)、进路中的道岔类型(switch_type)、是否存在超限区段(section_ifinsulated)、超限区段名称(section_insulated_id)、接近区段名称(section_approach_id)、离去区段名称(section_departure_id)。
        此外图中还可看到信号机、道岔和区段对象的方法,具体体现在状态转换过程中的触发事件。
3 进路控制过程动态模型设计
        文中对进路处理过程进行建模,研究进路建立过程中各子模块间的协作关系和动态时序关系,并对每一个子模块建立相对应的UML模型。
3.1 进路处理建模分析
        一次完整进路过程是由车站调度员、联锁软件和信号设备的共同参与和相互交互的结果。针对联锁系统的协作建模通过协作图完成,如图3.1所示。

        从动态角度而言,利用时间顺序可以看到进路之间的处理流程,体现对象间信息交互的时序性,该过程由顺序图实现,如图3.2所示。图中以进路的一次建立和解除过程为例,调度员是每次活动的发起者,而活动过程则由联锁软件逻辑来处理。活动的逐步触发过程由活动图描述,如图3.3所示。


3.2 进路建立及解锁过程建模分析
        进路建立过程可以分为三个阶段:进路选择阶段、进路锁闭阶段和信号开放阶段。以进路选择阶段为例,选路过程主要完成进路的选择和选排一致检查,包括始终端按钮的确定、道岔选择以及道岔位置转换,图3.4所示为选路过程顺序图。


        进路解锁过程相较进路建立同样重要。进路建立过程中,若因故不能锁闭进路,信号不能开放,虽影响行车效率,但可以保证安全;但若已锁闭的进路错误解锁,则意味着进路上的道岔可以随意转换,敌对进路也可建立,危及行车安全。
        在进路建模过程中,对于每一子模块的建模在满足联锁条件要求的基础上,主要通过构建交互模型和通信模型来完成描述。
4 结论
        采用UML语言对计算机联锁软件进行建模,有助于软件开发人员和联锁专业领域专家的交流。通过调试,可以尽早发现系统的错误与漏洞,从而在前期确定和降低项目的开发成本和风险。文中提出了联锁软件建模设计中各部分的功能需求及静态和动态建模方法,但仍存在一些问题有待探究。在基于模型的形式化分析和测试方面,还需要进一步研究和改善。
5 参考文献
[1]Michece Banci. Georgraphical vs. Functional modelling by statecharts of interlocking systems. Electronic Notes in Theoretical Comuter Science. 2004.3.23-31..
[2]刘振安. 面向对象技术与UML[M]. 机械工业出版社, 2007.8-34.
[3]Boggs W , Boggs M , Booksx I . Mastering UML with Rational Rose[J]. 1999.
       
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: