轨道交通软件开发中的数据结构定义方法

2014-08-07 04:11王庆胜杜建新张兴超
铁路计算机应用 2014年12期
关键词:数据表数据结构轨道交通

王庆胜,杜建新,朱 罕,张兴超

(上海富欣智能交通控制有限公司,上海 201203)

轨道交通软件开发中的数据结构定义方法

王庆胜,杜建新,朱 罕,张兴超

(上海富欣智能交通控制有限公司,上海 201203)

本文介绍一种轨道交通软件开发中的数据结构定义方法,步骤包括:形成设备基础信息表;形成设备对象到边及控制区域的第二索引表。采用这种数据描述方法能减少映射表的使用,使数据操作简单、一致和方便,符合轨道交通软件开发对数据的实时性和安全性的要求。

数据结构;轨道交通;实时性

在软件开发过程中,数据结构是软件成功的关键,轨道交通中数据结构的设计需要符合一定的标准,如EN50128标准。EN50128中的安全规则具有数据安全、无动态内存等特点,它强制不能使用动态分配内存,减少指针的使用及尽量提高软件的实时性。

轨道交通中线路数据需要存储到软件内部,供软件在特定条件下进行线路数据的查找、排序及计算使用,轨道交通软件开发中的数据结构通常由两种用途的表组成:

(1)基础信息表:设备(信号机,信标,站台,计轴区段等)或逻辑元素(限速区段,坡度等)的属性信息;

(2)设备索引表:设备在边(Edge),控制区域(ZC, Zone Control)的范围表。

前者主要是设备及逻辑元素的各类信息,包括位置,方向,属性值。后者主要是通过边,控制区域对设备及逻辑元素进行查找。

1 典型数据结构方式

轨道交通中的线路拓扑图如图1所示。为有向图且包括一系列的节点和具有方向的边,图1中的节点都用“节点”加一个数字表示,边都用“边”加一数字表示。每个边和节点在系统中独一无二地定义,用这种方式来描述轨道的连接关系和朝向;每个节点都有一个物理的约束来限制可以穿越它的路径的数量,有向图会保存从指定的边沿着指定的方向到达的下一条边。典型的数据结构(设备基础信息)是表达设备(或者逻辑元素)在线路上的具体位置的,可以是一个坐标点或者标明起始点及终点的区域信息。

图2说明了一个典型的数据结构定义方式。表(Elem Record Array)由多个设备对象组成,设备对象对应于设备基础信息表的一行,每个设备对象定义了设备或逻辑元素的属性,图中每个设备对象的含义是:{设备ID,{方向,所在边的ID,起始点,终点}},如图2第1行的设备对象为{1,{ORIENT_POSITIVE_common,1,0,168499 }},其中设备ID为1,ORIENT_POSITIVE_common表示正方向,边的ID为1;区域表示设备在所对应的边上的占用区域,用在设备在边上的一个起点和一个终点表示,如图2第1行的设备对象的区域的起始点为0,区域的终点为168499。这样就由多个所述设备对象形成一个数组,每个所述设备对象为该数组的一个元素。

图1 线路拓扑图

图2 设备基础信息表

为了方便在边及控制区域上查找到对应的设备信息,需要对边或者控制区域上的设备进行索引。如图3所示,是现有设备对象到边/控制区域的索引表示意图。以图3(a)为例,设备对象到边的索引表(Elem in Edge)由多个行组成,每一个行的含义为对应边上的设备索引号即{设备索引号起点,设备索引号终点}。如行中的第一行为{0,3},对应于图2中的边的ID为1的4个所述设备对象,设备索引号起点0对应于设备ID1,设备索引号终点3对应于设备ID4。区域控制索引表也是如此。

图3 (b)设备在控制区域中的索引表

图3 (a)设备在边上的索引表

但在实际线路中,往往还有更加复杂的情况,例如各设备对象的设备ID并不是按照边的ID,区域的ID来进行排序的,这样就出现了另外两张映射表,如图4所示,是现有设备对象到边的索引关系示意图;在图2所示的设备基础信息表和图3(a)所示的设备对象到边的索引表之间还增加了一个索引表即Map Index in Edge,索引表显示了设备基础信息表的设备ID和索引表的设备索引号之间的映射关系,相互对应的设备基础信息表的设备ID和索引表的设备索引号之间用虚线相连,索引表中的前4行对应到索引表的第1行中,索引表中的后2行对应到索引表的第2行中。

图4 设备信息对应到边的关系说明图

如图5所示,是现有设备对象到区域的索引关系示意图;在图2所示的设备基础信息表和图3(b)所示的设备对象到区域的索引表之间还增加了一个索引表即Map Index in ZC,索引表显示了设备基础信息表的设备ID和索引表的设备索引号之间的映射关系,相互对应的设备基础信息表的设备ID和索引表的设备索引号之间用虚线相连,索引表中的前3行对应到索引表的第1行中,索引表中的后3行对应到索引表的第2行中。

由上可知,当实际线路比较复杂时,各设备对象的设备ID并不是按照边的ID或区域的ID来进行排序的,这会使得映射关系变得复杂,索引表增多。而索引表的增多,会使得软件中指针的使用增多,软件的实时性较差,安全性也较差与轨道交通软件开发的要求不相符。随着后期数据的删减,也将带来数据表维护过多,容易出现错误的问题。

图5 设备信息对应到控制区域的关系说明图

图6 设备信息对应到边/控制区域的关系说明图

2 改进后的数据结构定义方式

本文采用的设备信息与边/控制区域对应的关系说明如图6所示。具体的查找方式是:

(1) 根据轨道交通中所采用的真实设备、由行车需要而划分的虚拟区域及信息形成相对应的设备对象,由各所述设备对象组成设备基础信息表,所述设备基础信息表的各所述设备对象的属性信息包括设备ID、边、方向和区域,所述设备ID为对应的所述真实设备、所述虚拟区域或所述信息的标识符,所述边和所述真实设备、所述虚拟区域或所述信息所处的边相对应,所述方向为所述边的方向,所述区域和所述真实设备、所述虚拟区域或所述信息所处的区域相对应。

(2)形成所述设备对象到所述边的第一索引表,方法为:遍历所述设备基础信息表中的每一个所述设备对象,将所述设备基础信息表中所述边和所述方向相同的所述设备对象筛选出来、将所筛选出来的所述设备对象的所述设备ID进行排序并写入到所述第一索引表中并形成所述第一索引表中的一行。

(3)形成所述设备对象到所述控制区域的第二索引表,方法为:遍历所述设备基础信息表中的每一个所述设备对象,将所述设备基础信息表中所述区域相同的所述设备对象筛选出来、将所筛选出来的所述设备对象的所述设备ID进行排序并写入到所述第二索引表中,形成所述第二索引表中的一行。

3 结束语

本方法在轨道交通的一个子系统的软件中实施后,将原来数据结构中定义的56张数据表结构减少到了37张,同时也减少了处理数据表的函数数量及复杂度,数据定义的代码行数减少了25%。在减少了操作的复杂度的同时增加了操作的一致性,对于理解和维护数据表结果有现实意义。

[1]严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,2011.

[2]朗宗棪,曾小清,姜季生. 轨道交通信号控制基础[M].上海:同济大学出版社,2007.

责任编辑 方 圆

Data structure def i nition in software development of Urban Transit

WANG Qingsheng, DU Jianxin, ZHU Han, ZHANG Xingchao
( Shanghai Fuxin Intelligent Traff i c Control Co., LTD, Shanghai 201203, China )

This paper introduced a method of data structure definition in software development of Urban Transit, which included the following step, such as building up the device basic information table, forming up the map table from device object to edge or zone control. The table usage could be reduced by using this method. It was simplicity, consistently and conveniently in operating. This method could meet the requirement of real-time and safety in software development of Urban Transit.

data structure; Urban Transit; real-time

U2∶TP39

A

1005-8451(2014)12-0046-03

2014-06-01

上海市科学技术委员会轨道交通运控系统定位技术研究及验证(13511503100)。

王庆胜,高级工程师;杜建新,工程师。

猜你喜欢
数据表数据结构轨道交通
轨道交通产品CE认证论述
城市轨道交通投融资模式分析
数据结构线上线下混合教学模式探讨
高速轨道交通发展趋势
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
为什么会有“数据结构”?
基于列控工程数据表建立线路拓扑关系的研究
高职高专数据结构教学改革探讨
基于CAN的冗余控制及其在轨道交通门禁环网中的应用