CN102064962B - 基于命名管道通信的列车自动监控系统输入输出组件的实现方法 - Google Patents
基于命名管道通信的列车自动监控系统输入输出组件的实现方法 Download PDFInfo
- Publication number
- CN102064962B CN102064962B CN201010573961A CN201010573961A CN102064962B CN 102064962 B CN102064962 B CN 102064962B CN 201010573961 A CN201010573961 A CN 201010573961A CN 201010573961 A CN201010573961 A CN 201010573961A CN 102064962 B CN102064962 B CN 102064962B
- Authority
- CN
- China
- Prior art keywords
- message
- data
- module
- input
- pipeline
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
一种基于命名管道通信的列车自动监控系统输入输出组件的实现方法,其特征是它包括管道配置,根据需要借助输入输出组件进行输入输出的模块不同,在其机器上配置相应的输入输出组件的配置文件,完成管道配置,生成所需的输入输出组件模块;所配置管道应与进程数据接口一端的设置相对应;对报文解包、打包过程中需要的参数进行设置;第三步.设置元素属性与报文数据位置对应数据库,将状态报文字节中不同的字节位代表的含义存入数据库;第四步.输入输出组件模块被宿主模块调用前先进行初始化;在收到要解包的报文时,程序将先去掉报文头,在读取数据字节时按照接口数据类型、报文类型、设备类型、设备编号依次解包。本发明具有处理速度快;占用资源较少;通道连接状态稳定等性能;可配置、可扩展性强的优点。
Description
技术领域
本发明涉及一种轨道交通列车自动监控系统的通信方法,尤其是针对借助于命名管道通信的系统,具体地说是一种基于命名管道通信的列车自动监控系统输入输出组件的实现方法。
背景技术
在现代城市轨道交通信号工程中,列车自动监控系统是地铁信号系统的指挥中枢。列车自动监控系统可以依据联锁提供的数据和时刻表对列车运行及信号设备状态进行监督,需要人工操作时可以在人机界面上针对具体的信号元素及列车进行人工干预。
车站操作员工作站是车控室的操作员工作站,用来进行元素状态显示和执行本地操作。列车排路计算机提供进路设置,列车运行管理和列车追踪功能。时刻表处理器提供时刻表文件的相关管理。前端处理器位于联锁站,负责与其它子系统的数据交互。
上述列车自动监控系统系统设备是通过以太局域网直接与计算机联锁和列车自动保护(ATP)、列车自动操作(ATO)连接。由于信号系统是安全系统,子系统之间的通信需要采取实时性、可靠性、稳定性比较高的通信机制,并且需要对网络上复杂的数据报文做解包、打包操作。
命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支持可靠的,单向或双向的数据通信.命名管道利用了微软网络提供者重定向器,通过一个网络,在各进程间建立通信.充分利用了Windows内建的安全特性。
发明内容
本发明的目的是为了充分发挥命名管道通信的优势,发明一种基于命名管道通信的列车自动监控系统输入输出组件的实现方法以提高运行速度,提高可靠性和稳定性。
本发明的技术方案是:
一种基于命名管道通信的列车自动监控系统输入输出组件的实现方法,其特征是它包括以下步骤:
第一步.管道配置,根据需要借助输入输出组件进行输入输出的模块不同,在其机器上配置相应的输入输出组件的配置文件,完成管道配置,生成所需的输入输出组件模块;所配置管道应与进程数据接口一端的设置相对应,比如IO端服务器与进程数据接口端客户端的名称设置应相同;
第二步.对报文解包、打包过程中需要的报文类型、联锁信号元素属性位置、外部、内部元素编号、系统内各机器和组件编号参数进行设置,包括状态、事件、报警、时间、更新、加载、操作控制等数十种报文处理相关的所有可变参数;
第三步.设置元素属性与报文数据位置对应数据库,将状态报文字节中不同的字节比特位代表的含义存入数据库,并在配置文件中对不同的模块配置所需属性;
第四步.输入输出组件模块被宿主模块调用前先进行初始化;初始化时将首先启动管道通道建立过程,在客户端未连接到服务器端时采用线程循环请求机制,直到通道建立为止;在服务端采用等待机制,在通信建立之后相应线程则停止工作,以减少系统开销;在管道中建立心跳机制,以判断最新的通信状态,在断开连接后及时报警,并重新启动连接线程;在管道接收数据与打包解包之间采取消息队列机制,建立缓存,以防止报文处理过程中后续报文丢包;
第五步.初始化还包括启动缓存队列读取行为,在队列不为空时循环处理数据,在管道中收到的报文将被管道处理程序放入队列,进而触发上述处理线程;同理,在列车自动监控系统有操作指令下发给联锁时,也会将数据放入队列,触发相应处理;两种触发条件分别进入输入输出组件模块的解包和打包工作;
第六步.解包过程,在收到要解包的报文时,程序将先去掉报文头,在读取数据字节时按照接口数据类型、报文类型、设备类型、设备编号依次解包,然后跟第三步中配置的字节属性,取出所有字节,按照配置将带有属性值的不同对象,分发给不同的模块,进行相应的显示和处理;
第七步.打包过程,在第五步中,系统其它模块会调用输入输出组件模块进行指令的输出,线程收到要打包的数据时,按照字节对照转换属性值,加入报文头,调用管道接口,通过对后备模式和连接状态的判断,确保报文发送成功。
所述的管道配置包括管道名称、管道方向、所属联锁区域和关联管道属性。
报文解包、打包过程中参数设置包括状态、事件、报警、时间、更新、加载和操作控制。
本发明的有益效果:
1、本发明可与进程数据接口软件进行通信,从而建立列车监控系统与联锁、ATP/ATO等外部系统的通道,模块功能完善;处理速度快;占用资源较少;通道连接状态等性能稳定;可配置、可扩展性强。
2、本发明的管道数量、类型可配置,可针对不同的模块建立单独的通道,增加删除方便高效。各管道采取单独的线程处理,对于可能引发的资源竞争问题,提供了良好的同步互斥机制,保证了数据的统一性,数据之间严格的先后顺序;
3、本发明针对信号系统中的元素类型、报文类型、各个组件所需报文字节参数是可配置的XML文件和数据库文件,可适应联锁系统元素的变更,系统的修改、升级,针对不同组件所需的不同数据提供个性化定制,可实现系统的快速部署;
4、良好的通信机制,通过客户端通信建立过程、心跳确认机制,连接断开自动重新连接,以及管道本身的通信机制,使得管道通信状态稳定,检测及时,大大降低了因通信终端引起的丢包、延迟等问题;
5、数据缓存,通过消息队列,事件通知机制,减少了数据处理过程中因调用其它多个模块可能引起的延迟、丢失的可能性,同时也避免了收和发可能引起的线程循环调用从而导致的死锁问题;
6、报文解包算法速度快,开销小,提升了系统的性能,解包后的数据以对象属性提供给上层模块,意义简单明确,便于处理;
7、打包接口调用方便,发送接口提供良好的故障检测与重发机制,保证了所发指令及时传输到网络。
附图说明
图1是本发明的系统功能框图。
图2是本发明的信号元素属性图。
图3是本发明的系统流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
如图1-3所示。
一种基于命名管道通信的列车自动监控系统输入输出组件的实现方法,事先配置管道通信的必要参数,系统内其它模块初始化时调用该组件,服务器与客户端分别与目标进程建立通道,在运行时接收与发送数据,从而实现列车监控系统与联锁和ATP/ATO等其他系统之间的通信。针对各类信号元素、列车报文进行打包解包工作,接收来自外部系统的数据报文,解包后提供属性、字段给本地列车自动监控系统各个模块使用,进而显示元素的最新状态。并且将本系统内的指令发送给外部系统。
步骤如下:
第一步.针对需要借助IO(即输入输出组件,下同)进行输入输出的模块不同,在其机器上配置IO的配置文件,管道配置包括管道名称、管道方向、所属联锁区域、关联管道等属性,所配置管道应与进程数据接口一端的设置相对应,比如IO端服务器与进程数据接口端客户端的名称设置应相同。
第二步.对报文解包、打包过程中需要的报文类型、联锁信号元素属性位置、外部、内部元素编号、系统内各机器、组件编号等参数进行设置,包括状态、事件、报警、时间、更新、加载、操作控制等数十种报文处理相关的所有可变参数。
第三步.设置元素属性与报文数据位置对应数据库,对状态报文字节中不同的比特位代表的含义存入数据库。在配置文件中对不同的模块配置所需属性。
第四步.IO模块被宿主模块调用,开始进行初始化,将首先启动管道通道建立过程,在客户端未连接到服务器端时采用线程循环请求机制,直到通道建立为止;在服务端采用等待机制,在通信建立之后相应线程则停止工作,以减少系统开销。在管道中建立心跳机制,以判断最新的通信状态,在断开连接后及时报警,并重新启动连接线程。在管道接收数据与打包解包之间采取消息队列机制,建立缓存,以防止报文处理过程中后续报文丢包。
第五步.初始化还包括启动缓存队列读取行为,在队列不为空时循环处理数据,在管道中收到的报文将被管道处理程序放入队列,进而触发上述处理线程。同理,在列车自动监控系统有操作指令下发给联锁时,也会将数据放入队列,触发相应处理。两种触发条件分别进入IO模块的解包和打包工作。
第六步.解包过程,在收到要解包的报文时,程序将先去掉报文头,在读取数据字节时按照接口数据类型、报文类型、设备类型、设备编号依次解包,然后根据第三步中配置的字节属性,取出所有字节,按照配置将带有属性值的不同对象,分发给不同的模块,进行相应的显示和处理;
第七步.打包过程,在第五步中,系统其它模块会调用IO组件进行指令的输出,线程收到要打包的数据时,按照字节对照转换属性值,加入报文头,调用管道接口,通过对后备模式和连接状态的判断,确保报文发送成功。
详述如下:
第一,如功能框图1所示,ATS系统功能模块本地操作员工作站、自动列车监督、时刻表处理器需要与外界的联锁、中央列车监控系统和ATP/ATO系统交互,他们将调用共同的组件IO,IO负责与进程数据接口个组件交互,交互内容为报文。因此在本地操作员工作站、自动列车监督、时刻表处理器的模块中需要分别引用IO组件,因不同模块需要通过IO交互的对象不相同,比如,自动列车监督交互的目标组件是ATP/ATO系统而不包括中央时刻表处理器,这就需要在IO的管道配置中设置,根据IO与进程数据接口规定好的管道名称来确定上述所需的交互对象和内容。
第二,XML形式的参数设置包括:进程数据接口处理码,用于判断报文的类型;外部报文类型编号;内部报文类型编号;内部组件编号;内部机器编号;本机编号;操作指令功能号;轨道、道岔、信号机、站台轨、计轴、车站、进路、指示器、操作区域、控制区域、列车状态、列车位置等元素的属性值与数据库的属性值对应之后,再按照系统内部其它模块的需求重新划分,建立统一的对应关系,比如道岔的ATP空闲属性,对应了本地操作员工作站模块的需要,又对应了数据库中道岔参数的第9个参数;特殊的可能发生变化的状态位在报文中的位置参数,比如联锁数据有效性参数位可能不确定在报文中的位置,也可以在参数中配置,以备随时修改。
数据库形式的参数:主要是元素所有属性与其在报文中所处位置的对应关系,比如某轨道的占用出清状态位于轨道类型报文的第30个字节的第5个BIT起数2位,共有4个状态值:0、1、2、3,如果将来属性值需要扩充,只需要修改数据库该位的配置即可。
第三,从部分信号元素属性图2可以看出,每个信号元素包含多种属性,上层应用如何实时地得知这些属性的变化?就需要解包模块,对于系统来讲,解包的复杂性体现在每个字节中的每一位、某几位以及不同位的组合所代表的意义,系统中一般有200个左右的元素类型,每个元素类型有50个左右的状态,IO在解包时利用高效的算法、事件代理机制及时地为系统中的本地操作员工作站信号元素的最新状态,事件、故障等信息;为列车排路计算机提供列车编号、位置、速度等信息;为时刻表处理系统提供与中央列车自动监控系统的时刻表同步等信息。需要时在内存中存储相应的状态数据,对状态变化做出判断,将改变的属性通知相应模块,比如提供给控制对象模块的逢变属性值;或者是系统的连接状态发生变化时将内存中的数据通知相应模块,比如在机器连接由断到通时,缓存在此期间接收到的连接报警信息。
第四,内部系统在收到IO的状态数据后,作相应处理之后,或者是操作员工作站接收到操作员的操作命令后,会以函数接口的形式调用IO组件进行指令的输出,例如排列进路、转换道岔、发送列车车次号、停站和站间运行时间等等,IO将先完成数据的打包工作,是上述解包工作的逆向操作,在发送数据前需要做一系列判断,首先,要判断系统当前的运行模式,如果是后备模式,部分报文如列车车次号和自动进路设置将被发送,否则该是数据将被屏蔽;其次,在已确定调用管道接口发送数据时,需要判断连接状态,如果发送报文无回应,则表明发送不成功,直到管道连上时发送该条报文。如图3所示。
第五,后备模式管理,系统维护各个操作台的控制状态,信息来自联锁的控制状态报文,根据可配置的操作台编号判断是否已交出控制,如果全部状态已交出,责本地可以接收控制,将模式修改为后备模式。连接状态管理跟随模块初始化启动,客户端建立心跳检测机制,如果心跳发送不成功,则及时的重新与服务器建立连接,保证通道的正常工作。服务器端的检测依赖于进程数据接口的通道状态报文,如果收到通道断开的通知,则有可能导致断开后短期内未收到联锁传输的报文,此时IO将发送加载请求,将所有数据的最新状态传输一遍,以保持最新的元素状态。
第六,内部数据传输策略,为了保证IO与内部其它模块之间传输数据的准确性,IO将维护与内部其他模块之间的连接状态,连接状态的判断涉及一对一、一对多、多对一、多对多的连接判断算法,如发生通断,则及时通知相应模块,终止模块之间依赖于连接的操作,断掉之后的重新连接与管理由本系统的网络模块负责。提供给其它模块的报文通知策略,前面提到报文收到之后首先到缓冲队列之中,然后由初始化时启动的读写线程,在队列不为空时,循环读取队列元素,触发事件、代理机制,通知相应模块来处理该数据。
第七,为提高系统运行的效率,部分从联锁接收的数据是各个模块都需要做处理的,这部分工作IO没有通知到上层,而是自己直接做了处理,这些数据包括:时间更新报文,所有装有IO的计算机都将被更新时间,以保持与联锁的时钟同步。另外应答信息和提醒信息也具有这样的特点。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
Claims (3)
1.一种基于命名管道通信的列车自动监控系统输入输出组件的实现方法,其特征是它包括以下步骤:
第一步.管道配置,根据需要借助输入输出组件进行输入输出的模块不同,在其机器上配置相应的输入输出组件的配置文件,完成管道配置,生成所需的输入输出组件模块;所配置管道应与进程数据接口一端的设置相对应;
第二步.对报文解包、打包过程中需要的报文类型、联锁信号元素属性位置、外部、内部元素编号、系统内各机器和组件编号参数进行设置;
第三步.设置元素属性与报文数据位置对应数据库,将状态报文字节中不同的字节位代表的含义存入数据库,并在配置文件中对不同的模块配置所需属性;
第四步.输入输出组件模块被宿主模块调用前先进行初始化;初始化时将首先启动管道通道建立过程,在客户端未连接到服务器端时采用线程循环请求机制,直到通道建立为止;在服务端采用等待机制,在通信建立之后相应线程则停止工作,以减少系统开销;在管道中建立心跳机制,以判断最新的通信状态,在断开连接后及时报警,并重新启动连接线程;在管道接收数据与打包解包之间采取消息队列机制,建立缓存,以防止报文处理过程中后续报文丢包;
第五步.初始化还包括启动缓存队列读取行为,在队列不为空时循环处理数据,在管道中收到的报文将被管道处理程序放入队列,进而触发处理线程;同理,在列车自动监控系统有操作指令下发给联锁时,也会将数据放入队列,触发相应处理;两种触发条件分别进入输入输出组件模块的解包和打包工作中;
第六步.解包过程,在收到要解包的报文时,程序将先去掉报文头,在读取数据字节时按照接口数据类型、报文类型、设备类型、设备编号依次解包,然后根据第三步中配置的字节属性,取出所有字节,按照配置将带有属性值的不同对象,分发给不同的模块,进行相应的显示和处理;
第七步.打包过程,在第五步中,系统其它模块会调用输入输出组件模块进行指令的输出,线程收到要打包的数据时,按照字节对照转换属性值,加入报文头,调用管道接口,通过对后备模式和连接状态的判断,确保报文发送成功。
2.根据权利要求1所述的方法,其特征是所述的管道和报文参数配置的灵活性,管道配置包括管道名称、管道方向、所属联锁区域和关联管道属性;报文参数配置包括数据类型、报文类型、设备类型和设备编号配置。
3.根据权利要求1所述的方法,其特征是线程循环请求机制动态建立连接,心跳机制维持连接状态,消息队列机制避免保温丢失,事件触发机制防止循环调用,保证实时、可靠的通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010573961A CN102064962B (zh) | 2010-12-06 | 2010-12-06 | 基于命名管道通信的列车自动监控系统输入输出组件的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010573961A CN102064962B (zh) | 2010-12-06 | 2010-12-06 | 基于命名管道通信的列车自动监控系统输入输出组件的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102064962A CN102064962A (zh) | 2011-05-18 |
CN102064962B true CN102064962B (zh) | 2012-09-26 |
Family
ID=44000073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010573961A Active CN102064962B (zh) | 2010-12-06 | 2010-12-06 | 基于命名管道通信的列车自动监控系统输入输出组件的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102064962B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102725987B (zh) * | 2011-06-17 | 2016-01-20 | 华为技术有限公司 | 分组信息包的发送方法、检测方法、地面信号系统及rbc |
CN103378995B (zh) * | 2012-04-24 | 2016-06-22 | 中兴通讯股份有限公司 | 分布式监控管道的方法、服务器及系统 |
CN106506602A (zh) * | 2016-10-13 | 2017-03-15 | 交控科技股份有限公司 | 应用服务器与操作工作站通信的方法、系统和操作工作站 |
CN109305197B (zh) * | 2017-07-26 | 2020-08-25 | 比亚迪股份有限公司 | 列车控制方法、系统和车载控制器 |
CN108008995A (zh) * | 2017-12-04 | 2018-05-08 | 山东浪潮通软信息科技有限公司 | 一种基于调用类型的等待组件实现方法及装置 |
CN109895815B (zh) * | 2017-12-11 | 2021-03-26 | 比亚迪股份有限公司 | 列车的运行数据采集方法及系统 |
CN108846288B (zh) * | 2018-06-06 | 2020-08-18 | 浙江华途信息安全技术股份有限公司 | 一种驱动层进程读取缓存的管理方法 |
CN110460495B (zh) * | 2019-08-01 | 2024-02-23 | 北京百度网讯科技有限公司 | 一种水位推进方法、装置、计算节点及存储介质 |
CN112887176B (zh) * | 2021-04-28 | 2021-07-16 | 北京城建智控科技有限公司 | 一种基于心跳报文的计算机联锁子系统主备切换系统 |
CN113835902B (zh) * | 2021-09-22 | 2023-12-05 | 抖音视界有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101254791A (zh) * | 2008-03-31 | 2008-09-03 | 北京和利时系统工程有限公司 | 基于通信的轨道交通列车自动监控系统 |
CN101513886A (zh) * | 2008-12-29 | 2009-08-26 | 卡斯柯信号有限公司 | 基于矢量电子地图的地铁列车运行监督系统 |
-
2010
- 2010-12-06 CN CN201010573961A patent/CN102064962B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101254791A (zh) * | 2008-03-31 | 2008-09-03 | 北京和利时系统工程有限公司 | 基于通信的轨道交通列车自动监控系统 |
CN101513886A (zh) * | 2008-12-29 | 2009-08-26 | 卡斯柯信号有限公司 | 基于矢量电子地图的地铁列车运行监督系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102064962A (zh) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102064962B (zh) | 基于命名管道通信的列车自动监控系统输入输出组件的实现方法 | |
CN113220235B (zh) | 读写请求的处理方法、装置、设备及存储介质 | |
CN105045533A (zh) | 适用于双控高可用存储系统的磁盘心跳收发方法 | |
CN103064882A (zh) | 适用于电力调度自动化系统的商用库故障隔离方法 | |
CN102736594B (zh) | 一种智能配电终端统一平台模块化设计方法 | |
CN102662723A (zh) | 一种基于停机时间阈值的虚拟机内存迁移方法 | |
CN103973476A (zh) | 网关、网关热备份系统及方法 | |
CN101141282B (zh) | 一种网管系统及其管理方法 | |
CN1299203C (zh) | 数据容灾备份控制系统 | |
CN100385407C (zh) | 网络信息系统异地数据镜像方法 | |
CN103786595B (zh) | 悬浮控制节点网络的网关控制器及控制系统 | |
CN105743695A (zh) | 一种基于iec104 规约的监听方法及系统 | |
CN102324963A (zh) | 一种基于代理机制的卫星任务连续服务方法 | |
CN107391617A (zh) | 基于监测系统的自动导模型方法 | |
CN104679710A (zh) | 一种面向半导体生产线搬运系统软件故障快速恢复方法 | |
CN108445857B (zh) | 一种scada系统的1+n冗余机制设计方法 | |
CN102571311B (zh) | 主备切换的通讯系统和通讯方法 | |
CN104378427A (zh) | 一种保持集群关键数据一致性的方法 | |
CN103929455A (zh) | 包含网络存储设备的异步文件传输系统及其传输方法 | |
CN105550131A (zh) | 一种基于有限状态机和arinc659总线的接口数据处理系统及方法 | |
CN105278482A (zh) | 一种船舶机舱监测报警与控制系统 | |
CN102355370B (zh) | 以太网板级保护的方法、装置和系统 | |
CN103106064A (zh) | 一种复杂时序处理队列的动态预测的方法及装置 | |
CN104503871A (zh) | 一种基于小型机系统全冗余模型的实现方法 | |
CN110083657A (zh) | 数据互通方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |