1 引言
在轨道交通领域,目前国内的一线城市,如:北京、上海、广州、深圳等已各自建成并投运了十数条地铁线路;二线城市,如:南京、重庆、武汉、西安等也已建成或即将建成2-3条地铁线路,与全国各主要城市内现在和未来不断增加的轨道交通线路随之而来的是,各城市内不同时期建成的地铁线路的专业系统之间的信息交互问题。目前,解决这一问题只能通过开发多线信息接入接口来实现。
综合监控系统(Integrated Information Management System)监视并控制全线多个专业系统,如自动售检票系统(AFC)、列车监视系统(ATS)、门襟系统(ACS)、环境与设备监视系统(BAS)、火灾自动报警系统(FAS)、电力监视系统(PSCADA)等等的主要设备信息和重要报警信息(监视功能),并进行联动(控制功能)[1]。
自动售检票系统(Automatic Fare Collection) 显示全线AFC系统运营状况,可实时监视全线各车站AFC系统的进出站闸机、自动售票机、自动充值验票机的运行状态及报警信息、更新显示客流统计数据等。
轨道交通领域内不同设备厂家之间的接口通讯,通常情况下,信息传输量相对较小的子系统(如:时钟系统CLK、广播系统PA、屏蔽门系统PSD等)的接口,其数据流量不大,可以采用专有协议进行通讯;而对于那些信息传输量相对较大的子系统(如:电力监控系统PSCADA、环境监控系统BAS、火灾报警系统FAS等)的接口,其数据流量较大,可以采用扩展MODBUS、扩展IEC104等标准协议进行通讯。
由于南京地铁2号线和南京地铁1号线南延线的自动售检票系统(AFC)与南京地铁1号线自动售检票系统(AFC)在建设时间、供货厂家、通讯接口上均有很大不同,为综合解决同一城市不同地铁线路自动售检票系统(AFC)与地铁控制中心综合监控系统(IMS)之间大规模数据传输的问题,必须开发新的特殊接口协议。本文详细介绍了此种特殊接口协议方案的实现方式。
2 协议接口功能概述
南京地铁在控制中心综合监控机房设置了综合监控系统(IMS)的核心设备,在控制中心票卡清机房设置了自动售检票系统(AFC)的核心设备,其中,控制中心综合监控机房综合监控系统(IMS)监控南京地铁2号线、南京地铁1号线南延线系统设备,控制中心票卡清机房自动售检票系统(AFC)监控南京地铁1号线、南京地铁2号线、南京地铁1号线南延线系统设备。
综合监控系统(IMS)在通过冗余双以太网与自动售检票系统(AFC)在控制中心连接,从而分别接入南京地铁1号线、南京地铁2号线、南京地铁1号线南延线的自动售检票系统(AFC)信息。
综合监控系统(IMS)与自动售检票系统(AFC)在监控对象和功能上差异较大:综合监控系统(IMS)监控地铁全线各个子系统的主要设备工作状态和重要告警信息,并进行相关必要的联动控制;而自动售检票系统(AFC)只需监视自身设备,但必须显示全部设备信息和全部告警。
由于综合监控系统(IMS)面对的是3条地铁线路(南京地铁1号线、南京地铁2号线、南京地铁1号线南延线)的自动售检票系统(AFC),协议中必须包含线路号、车站号、设备号、各站客流量等重要信息的描述,以便各车站、各设备之间互相区别。
总体设计思路:在物理连接上,综合监控系统(IMS)方面采用冗余以太网与自动售检票系统(AFC)单服务器互连;在进行协议通讯时,采用了哈希方程和稀疏矩阵处理和存储自动售检票系统(AFC)实时上传的大量数据,在综合监控系统(IMS)后台接口程序方面,分别将南京地铁1号线、南京地铁2号线、南京地铁1号线南延线的实时数据创建在不同的数据存储空间里,通过不同的数据表向综合监控系统(IMS)后台发送接口程序处理得到的各线自动售检票系统设备最新数据,并实时显示在综合监控系统(IMS)的人机界面上,供地铁用户监控使用。
协议接口采用标准TCP/IP协议,采用两层C/S协议,IMS作为服务端,ACC作为客户端。IMS作为ACC/IMS间通讯的服务器,负责接手ACCS发送的实时设备监控信息和客流信息,IMS采用双机方式为ACCS的信息上传提供不间断的服务。ACCS作为ACC/IMS间通讯的客户端,负责向IMS上送实时的设备监控信息和客流信息,IMS采用双机方式接收ACC上传的信息,在任何一台发送宕机故障时,ACC应能自动查找仍能正常工作的服务器,并向其发送信息。
3 报文格式及编码
3.1 基本报文格式
3.1.1 应用协议数据单元(APDU)
本协议定义了统一的APDU,通讯双方均采用该结构进行交互:
3.1.2 应用协议控制信息(APCI)
起始字符:起始字符为3个字节,固定为“IMS”。
功能码:本协议定义功能码如下:
传输序号:传输序号为3个字节,不足3位前面补0,取值范围为000-999,每次报文交互时,客户端将传输序号+1,服务端接收到报文后拷贝该域并对客户端做出确认,该值到999后归0。
信息单元数:最大为250。信息单元数描述了ASDU中传输信息单元的个数,信息单元的类型和长度由功能码确定。
3.1.3 应用服务数据单元(ASDU)
ACCS与IMS间通讯报文信息采用ASCII码表示,同类信息包采用定长方式,数值类信息采用十进制表示,不足约定位数前补‘0’。
设备类信息单元组成:ACCS作为ACC/IMS间通讯的客户端,当有设备状态发生变化时向IMS发送,设备监控信息由以下字段组成:
1. 线路号:ASCII码长度(2);二进制码长度(1);01代表南京一号线、10代表南京一号线南延线、11代表南京二号线;
2. 车站号:ASCII码长度(3);二进制码长度(2);001代表1号车站、011代表11号车站、511代表512号车站;
3. 设备号:ASCII码长度(8);二进制码长度(2);8字节字符(AABBCCDD),ABCD取值(0-9);
4. 设备类型:ASCII码长度(2);二进制码长度(1);2字节十进制——01:POST、02:GATE、03:TVM、04:AVM、05:CIM、06:PVU、07:查询设备、08:POS机、09:ACC计算机设备、10:LC计算机设备、11:SC计算机设备、12:ACC加密机;
5. 工作状态:ASCII码长度(1);二进制码长度(1);1字节:0:正常服务、1:通知服务、2:暂停服务、3:状态未知。
由上可知,使用ASCII码表示,则一个信息单元需要38个字节来描述;而使用二进制来表示时,一个信息单元仅需要19个字节来描述。另根据双方技术人员之间的交流,对于IMS来说,由“线路号+车站号+安装方位+阵列号+阵列中的序号”可以唯一标示一台现场设备。考虑到自动售检票系统(AFC)的各类现场设备有着自身独特的工作特性,其很大部分的控制器在通常情况下的设备工作状态基本不变,为节省接口占用资源和存储空间,综合监控系统(IMS)在接口程序中的实际算法中,采用了哈希方程和稀疏矩阵(在哈希表的每个入口挂一个链表,保存所有对应的字符串,在哈希表中不是用一个哈希值而是用三个哈希值来校验字符串,通过计算周期性地比较不同时刻AFC上传的全数据报文来查出各个设备有无最新变化数据,由稀疏矩阵进行数据存储...),从而处理和存储自动售检票系统(AFC)实时上传的大量数据,达到了优化接口程序工作效率的目的。
客流类信息单元组成:ACCS作为ACC/IMS间通讯的客户端,负责以10-15分钟的时间间隔向IMS上送客流信息,客流信息为当前运营日内截至到某一时刻的累积信息,部分重要的客流信息由以下字段组成:
1. 当前时间:ASCII码长度(14);二进制码长度(7);YYYYMMDDHHNNSS:YYYY:4字节年、MM:2字节月、DD:2字节日、HH:2字节小时、NN:2字节分钟、SS:2字节秒,在每个单元中为十进制;
2. 进\出站累计客流:ASCII码长度(8);二进制码长度(2or4);8字节十进制数,不足8字节前补零。
3.2 协议通信
ACC与IMS采用TCP/IP协议,IMS为服务器,ACC为客户端,IMS负责侦听,由ACC发起连接。
双方采用非平衡方式通信,ACC为主,IMS为从,遵守严格的一问一答的规则,即ACC发出的每一帧报文,IMS都必须用相应的报文进行确认,超时无确认则重传,重传3次失效则断开通讯连接。
3.2.1 初始化过程
在每次SOCKET连接成功后,都必须进入初始化过程。
在初始化过程中,ACC必须将所有设备的状态信息和当前的客流信息发送一遍,IMS依次确认。每包最多传送250个信息单元。
3.2.2 数据传输
数据主动上传部分:正常通讯过程中,如果终端设备状态发生变化,ACC主动组织设备的状态信息发送给IMS,IMS确认。
数据定时传送部分:3.3定时传送
每隔指定时间(10~15分钟),ACC将当前客流量信息按2.2.3所述组织并发送给IMS,IMS确认。
3.2.3 通信测试
空闲测试部分:当没有信息单元需要传送,链路空闲超过60秒时,ACC按2.2.1所述组织心跳报文传送给IMS,IMS确认。
接入服务通知部分:每日在ACC系统投入服务时,按2.2.4所述组织报文发送给IMS,IMS确认并做相应处理。
4 传输安全控制机制
4.1 正常过程
如上图所示为正常的传输过程。定义时间参数如下:
■ t1表示客户端等待确认的最大超时时间,一般定为2秒;
■ t2表示链路空闲后启动心跳测试的阀值时间,一般定为60秒;
■ t3表示客流类信息单元的传送间隔时间,一般定位10-15分钟;
4.2 防止报文丢失控制
如上图所示为报文丢失情况下的传输过程。包含两条原则:
■ 客户端在发送报文后超过t1时间未收到确认报文,则重发原报文,发送序号不变;
■ 超过连续3次重传未有响应或响应错误,客户端主动关闭链路[4]。
4.3 其它安全控制机制说明
总结为以下几条:
■ TCP链路如需在多IP地址之间切换,则连接时需设为非阻塞模式,无连接时的IP地址之间切换时间需小于15秒;
■ 客户端或服务端收到应用报文后经过检验发现发送内容出错,等同于未收到报文处理;
■ 服务端在通讯连接建立后超过300秒未收到任何应用报文,则认为连接僵死,需主动关闭链路[5]。
5 冗余设计
ACC与IMS之间的冗余初步决定采用双链路主备同时工作的方式。逻辑连接关系下图所示:
在正常情况下,ACC系统服务器向IMS传送相同的数据,IMS从两条链路中选择通讯质量较好的一条值班;当任何一个单点故障发生时总有一条链路完好,则由IMS选择该链路值班即可。
6 结束语
本特殊协议提供的变化传输机制能极大的提高系统的性能,保证南京地铁1号线、南京地铁2号线、南京地铁1号线南延线)的自动售检票系统(AFC)与地铁控制中心综合监控系统(IMS)之间大规模数据传输的实时性,同时并不以损失可靠性为代价,是切实有效的解决方案。本方案已成功应用于南京地铁2号线IMS与AFC专业系统间数据通讯中,在南京地铁综合监控系统的使用过程中已取得很好的效果,接口程序和传输数据稳定运行,给南京地铁各条线路监控AFC系统的日常运营带来了极大的便利。
参考文献:
[1] 《南京地铁二号线一期工程综合信息管理系统(IMS)项目合同文件——技术规格书》[Z].南京:南瑞集团,2006.
[2] 《NJML2-IMS-IF004-AFC南京地铁二号线综合监控系统与AFC接口技术规范》[Z].南京:南瑞集团,2008.
[3] 《NJML2-IMS-RP004-AFC南京2号线IMS系统与AFC系统冗余方案》[Z].南京:南瑞集团,2008.
[4] ANDY SWALES.Open MODBUS/TCP Specification,Release 1.0[Z].Schneider Electric,1999.
[5] MODBUS.ORG.Modbus Messaging Implementation Guide 1.0[EB/OL].www.modbus.org,2002.
作者简介:严嵘(1981-),男,工程师,研究方向:城市轨道交通综合监控系统平台开发与应用。