一种基于多连接主备冗余的地铁综合监控系统同步通讯方法与流程

文档序号:12278210阅读:363来源:国知局

本发明涉及地铁综合监控系统,特别涉及一种基于多连接主备冗余的地铁综合监控系统同步通讯方法。



背景技术:

地铁综合监控系统是一个功能庞大的信息系统,通过对相关系统的集成和互联,将各分散的自动化系统联接成一个有机的整体.为地铁提供统一的平台。

在目前的地铁自动化领域,地铁综合监控系统(ISCS)正获得越来越广泛的应用。综合监控系统能提供一个可实现信息互通和资源共享的平台,其设计采用通用性好、符合国际标准或行业标准的、高可靠性的计算机网络交换机、服务器和工控机等网络计算机产品来构建统一硬件集成平台;采用模块式、类似积木结构的多层软件开发平台定制应用软件,采用通用开放的硬件接口及软件通信协议,以集成和互联的方式与各接入子系统实现信息交换,最终实现对各相关机电设备的集中监控功能和各系统之间的信息互通、信息共享和协调互动功能。

综合监控系统使用各种通信设备和技术为其中的众多子系统、设备及装置搭建通信硬件平台。在此基础上,通信双方的通信软件采用合适的通信框架,基于通信硬件通道建立软件通信连接,实现数据通信。

在城市轨道交通实际运营过程中,数据的实时有效性和可靠性是最至关重要的两个要素。目前,综合监控的通讯程序大多采用的还是一种单通道单连接或双通道双连接的通信框架,这种通信框架存在着明显的隐患,不利于保证系统数据的实时同步。

对于互联系统尤其是中心互联系统(子系统与ISCS仅仅在中心有接口,所有数据通过仅有的一个或最多两个物理通道传输给综合监控)以及复式系统而言,一个完整的子系统实时数据意味着超大数据量(数万实时监控点甚至更多),光是把数十万点数据初始传送一遍(初始同步)就要耗费不短的时间,一旦数据中遥测点较多(数据频繁跳变),则会有大量的变化数据等待传送,而此时初始同步的过程尚未结束,久而久之,等待传输队列中需要同步的数据量越来越大,有的数据点旧的变化数据还没送出去,新的变化又发生了,不仅会造成系统数据实时性失效,更可能造成数据丢失(程序传输内存队列溢出),甚至出现程序崩溃通讯中断的情况。

以上这些对综合监控系统中的通信,特别是通信程序的设计提出了更高的要求和挑战。为了解决大数据量单通道同步的需求,本发明提出了单/双通道多连接的分割数据的设计来保证数据的实时有效,更使用数据块冗余双连接(一主一备)来保证系统可靠性。



技术实现要素:

发明目的:为确保综合监控系统实现地铁运营的实时监控功能,系统中众多子系统、装置和设备间须通过各种通信手段实现数据传输和信息共享。本发明适用于单/双(一主一备)物理接口情况下(超)大数据量的实时转发,利用有限的物理通道建立多连接,将需要同步的实时数据点按连接分组,每组数据由一主一备冗余双连接负责通讯,各组连接之间互不干涉影响,各组数据之间也独立同步,既保证了系统的可靠性同时也提高了系统的实时有效性。

技术方案:一种基于多连接主备冗余的地铁综合监控系统同步通讯方法,其特征在于:单/双通道多连接分割数据传输步骤,利用服务器和物理通道富余的硬件资源,程序在通信两端建立多个软件通道连接(Socket),并且将海量监控数据点按逻辑数据分割成小块,每两个软件信道为一个逻辑通信单元,负责管理通讯一块数据,各个逻辑通信单元之间互不干涉;

单数据块冗余双连接传输步骤,以单逻辑数据块为基本单元,通信双方之间基于1/2个可用的硬件通信通道同时建立两条有效的通信连接,但仅使用其中一条传输监控数据,另一条维持作为备用;当传输监控数据的连接由于通信故障失效后,迅速切换至另一条连接,接替原来的连接传输数据;失效的连接被关闭,继而在原通信通道上定时尝试重建连接直至成功。

本发明为了既保证同步,又不额外增加传输负载,还采用了一种携带传输通信报文编号的方法,具体为:

发送端对需发送的每一条数据报文进行编号,依次递增,每一条报文头上携带该编号,接收端接收报文,验证正确后,记录并更新本端接收的最新报文编号,并定时将该最新接收的报文编号发送给发送端;

通信时发送端保存最后发送的报文,一旦通信故障发生,基本逻辑管理单元切换到备连接进行通讯,发送端首先发送之前保存的报文,接收端收后与本地保存的最新接收编号进行比较,以确定是否恢复正常通讯状态。

有益效果:本发明中按每个逻辑通讯单元单独维护数据拷贝,数据可根据具体通讯对端的需求灵活加载,每组连接既可维护相同的数据内容,也可传输不同的数据需求,独立互不干涉,每组冗余双连接可靠高效,可应对轨道交通各种数据同步需求。

具体实施方式

以下结合具体实施例对本发明作进一步详细阐述。

本实施例的基于多连接主备冗余的地铁综合监控系统同步通讯方法,包括:

单/双通道多连接分割数据传输步骤

以南京地铁四号线能源管理子系统(EMS)为例,该系统与综合监控系统在中心互联,仅两个物理接口(一主一备),整个EMS系统的接入需求包括4000多个电度表,每个电度表有2~4个电度量和十多个遥测值,也就是全线整个系统有约60000个遥测点和4000多个电度量的数据需要实时同步传输。目前,综合监控系统的通信软件常采用一种单连接的通信框架来实现通信冗余。通信双方之间仅基于两个硬件通信通道中的一个建立一条通信连接用于传输监控数据(这里的通信连接指的是通信软件在硬件通信通道上通过交互建立的数据通路),如果连接因通信故障而失效,则关闭原来的连接,并基于另一个通信通道建立一条新的连接,以代替原先的连接来传输数据。

这样,在正常通讯环境下,任意时刻ISCS与EMS之间数据有且仅通过一个通信信道来传输,仅仅初始同步数万个遥测点和数千个电能脉冲累积量就耗时不菲,根据工程经验可以知道,电力遥测量变化非常频繁,一旦总召唤和电能脉冲召唤不能迅速结束就会造成EMS主动上送的变化遥测数据大量堆积,等待在EMS待发送的数据队列里,这时通信双方的数据不一致,即工业实时监控所说的失步。失步会严重损害综合监控系统的可靠性。

另外,ISCS与各子专业接口均为百兆以上的局域网物理通道,单连接通讯方法对于这样充裕的带宽和接口服务器优质数据处理能力是一个极大的浪费。

基于多连接主备冗余的同步通讯方法可以很好的解决上述问题,利用服务器和物理通道富余的硬件资源,程序在通信两端可建立多个软件通道连接(Socket),并且将海量监控数据点按逻辑分割成小块,每两个软件信道为一个逻辑通信单元,负责管理通讯一块数据,各个逻辑通信单元之间互不干涉。这样就相当于把ISCS←→EMS一对一的大规模数据同步分割成了ISCS1←→EMS1,ISCS2←→EMS2,…,ISCSn←→EMSnN对一对一小规模数据同步,在局域网带宽和服务器硬件资源足够的情况下,小规模的数据同步,失步的概率极低,加上各个逻辑单元的双连接主备冗余支持,大大提高了综合监控系统的可靠性。

数据逻辑分割

将需要同步的目标子系统所有监控数据按逻辑分类,以EMS为例,按变电所(主所、牵引降压所、降压所)为基本逻辑管理单元来组织数据,每个基本单元编号与各变电所(通讯管理机)的公共数据地址一一对应。这样整个EMS专业数万个遥测和数千个累积量就被相对均等的分割成了十多个管理单元,每个单元仅数千个遥测,数百个累积量,相对于原来整个系统单通道设计,单个通讯管理模块的通信负荷显著降低。

另外,为了避免由于数据丢失导致的失步,ISCS通讯设计通常是一旦确认出现通讯故障,则断开重连,在建立新连接后向对端传输全部数据点信息,以实现两端的数据同步。在数据逻辑分割后,每个逻辑管理单元仅加载自己管理部分的数据,故障恢复后的重连通信同步数据量要小的多。加上后文提到的双连接冗余保障,有效可靠的解决了监控数据存在的失步隐患。

多SOCKET连接

根据物理接口的IP地址和不同的端口号(与变电所公共数据地址对应),建立多SOCKET抽象连接。每两个SOCKET(一主一备)连接为一个基本逻辑通信单元,负责相应逻辑数据块(端口号映射地址变电站的监控数据)通信传输。逻辑通信单元之间互不干涉。

以IEC60870-5-104通讯程序框架为例:

程序启动,建立主应用实例Cw104Application,开始各种初始化,同时启动主实例重要的成员变量侦听线程Cw104ListenThread,该侦听线程用于侦听来自客户端IP各端口的连接请求,侦听线程初始化过程中读取通讯配置文件(Configuration.txt),该配置文件内容按行排列,每行内容依次是主物理接口IP地址、备物理接口IP地址、端口号、数据公共地址,侦听线程根据配置文件行内容一一对应建立Cw104Slave对象实例,该对象即基本逻辑数据管理单元,其包含两个重要成员变量,其一是Cw104ServerData(逻辑数据块),另一个则是负责通讯的线程Cw104ServerThread。Cw104ServerData根据配置文件提供的数据公共地址,初始化时读取系统平台里该地址所涵盖的所有监控数据点,和各点的数据信息,初始化结束后负责完成实时信息数据状态的更新、维护以及通讯需求处理等任务,而Cw104ServerThread按照配置文件提供的IP地址以及端口号与发起请求的客户端进程建立主备两个Socket连接。主Socket用于传输监控数据,备Socket维持作为备用。每个Cw104Slave各自负责相应数据公共地址所涵盖的监控数据同步,通讯数据格式遵循特定工业规约格式,互不干涉。

同步数据一般流程为:新建连接,双方握手确认。确认连接后,客户端发起总召唤(遥测初始同步)请求,服务器端接受请求,发送所有需同步实时数据信息,客户端接收并确认,此时两端数据同步。客户端发起召唤电能脉冲累积量请求(电度量初始同步),服务器端响应,发送累积量数据,客户端接受并确认,双方同步。至此两端初始同步过程完成,服务器端主动传送同步过程中发生变化的监控数据信息,客户端接受确认,之后服务器端数据信息如有变化,则将变化数据信息主动上送给客户端,以保持数据同步,经过固定时间间隔后再总召唤、电能累积量召唤,主动上送…,如此循环往复。

每个基本逻辑管理单元各自遵循以上的通讯原则,一旦发生通信故障,只需重新同步本单元数据,这种分割数据多线程多连接方法最大限度的利用了系统硬件资源和接口带宽,将单通道单连接无法完成的超大数据量同步任务可靠的解决了。

单数据块冗余双连接传输

以单逻辑数据块为基本单元,通信双方之间基于1/2个可用的硬件通信通道同时建立两条有效的通信连接,但仅使用其中一条传输监控数据,另一条维持作为备用。

当传输监控数据的连接由于通信故障等原因失效后,迅速切换至另一条连接,接替原来的连接传输数据。失效的连接被关闭,继而在原通信通道上定时尝试重建连接直至成功。重建连接的过程与正在传输数据的另一有效连接无关,故重建连接不会延误数据传输。由于连接切换后监控数据可立即通过另一条连接传输,不必等待重建连接,这就避免了因建立连接而导致的无法实时传输重要监控数据,进而影响系统可靠性的情况发生。由于切换通信连接的延时远远小于新建连接,因而就避免了单连接框架在重建连接的较长时间段内无法传输重要监控数据的缺点,有助于保障综合监控系统的可靠性。

通信报文编号

双连接框架下虽然切换时延比较短,仍然可能丢失数据,而在工业监控领域,数据丢失是不被允许的。这样,为了保障综合监控系统(ISCS)的可靠性,连接切换后仍需传输本单元全部的数据信息以保证两端同步。实际上,可能丢失的数据仅仅只是极少数,为了极少数的数据而必须传输整个单元的数据信息,这就有点得不偿失,为了既保证同步,又不额外增加传输负载,本发明采用了一种携带传输通信报文编号的方法。

发送端对需发送的每一条数据报文进行编号,依次递增,每一条报文头上携带该编号,接收端接收报文,验证正确后,记录并更新本端接收的最新报文编号,并定时将该最新接收的报文编号发送给发送端。用Ms来表示发送端即将发送的报文编号,Mr表示接收端记录的最新接收报文的编号,正常通信时应是Ms>Mr

通信时发送端保存最后发送的Ms-Mr片报文,一旦通信故障发生,基本逻辑管理单元切换到备连接进行通讯,发送端首先发送之前保存的Ms-Mr片报文,接收端收后与本地保存的最新接收编号进行比较,如果报文编号<本地Mr,则放弃该报文并将Mr通知发送端,发送端放弃保存小于Mr编号的报文,并从Mr开始发送报文,恢复正常通讯状态。在通信的两个方向都采用这一策略。

这样,连接切换后发送端仅需重传切换前的少量数据,而接收端通过辨别报文编号即可确保不会丢失重要监控数据,又避免了重复接收并处理数据而可能导致的系统误报警等问题。

本发明的其他优点和应用:综合监控系统中常见的复式系统,其通讯程序往往是多通讯连接但数据拷贝仅一份,以本实施例的同步通讯方法为例,Cw104ServerData不是Cw104Server的成员变量,两者不是从属关系,而是并列关系,不管多少个Socket连接,所有通讯信道传输相同的数据。这种框架虽然可以节省服务器内存资源,但碰到多专业复式系统,每个连接对数据需求不尽相同的情况就无法胜任了。

以上的实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何非实质性改动,均落入本发明保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1