本发明涉及到城际铁路无线通信系统,具体是一种非洲城际铁路无线通信调度方案,特别涉及无线通信中调度台软件实现架构方案,属于专业通信领域。
背景技术:
因非洲是城际铁路新兴市场,铁路建设和使用方式,特别是无线通信系统相关标准,与国内不大一样。
非洲城际铁路无线通信系统采用专用信道方式无线通信系统,系统分为运营无线通信系统和车辆段维修基地无线通信系统。运营无线通信系统分为列车调度通信子系统,维修/防灾调度子系统,站务调度子系统。其中列车调度子系统供控制中心行车调度员和沿线车站值班员、列车司机通话联系之用,维修/防灾调度子系统供控制中心环控(防灾)调度员、值班主任(维修)和沿线防灾维修人员(手持台)、维修车司机联系之用。站务调度通信子系统供站场、站厅值班人员通话之用。车辆段维修基地无线子系统供车辆段信号楼值班员和段内的机车台司机、车辆段值班人员通话联系之用。
而国内的通信系统架构是,调度功能实现控制中心调度员,维修调度员,列车司机,车站值班员,信号楼值班员以及相关移动人员之间的通话,调度台提供运营控制中心(行车、环控)调度员与列车司机、运营人员等无线用户进行无线通信功能,网管实现对moto系统设备故障监控,对接收机车台,固定台的故障信息进行监控,对网管和cad服务器以及cad服务器和调度台的链路进行监控,cad服务器通过串口接收地铁时钟系统发送的时钟信息,并保持无线系统的各设备的时钟一致,固定台根据使用环境的不同分为车站固定台、车辆段固定台、轮乘室固定台,车站固定台供车站值班员使用,可以实现与行车调度台、站管区的机车台、站管区的手持台之间的通信;车辆段固定台应用于车辆段内,可以实现与车辆段内的机车台、车辆段调度台、手持台的通信,供车辆段值班员使用,轮乘室固定台可以与行车调度台通信,供轮乘室值班员使用。
非洲和国内的通信系统架构巨大区别,直接导致国内的无线通信系统不可以应用到非洲,必须重新发明一套无线通信系统调度方案,以适应非洲城际铁路。
本发明的目的是国内没有成熟的方案可以满足非洲城际铁路通信系统运营,为了应对非洲城际铁路市场需求,发明此调度方案,此方案的成功不仅仅应用的非洲某一条铁路,而是应用非洲多个多家多条铁路,增加我们通信产品的销量,打开了整个非洲铁路市场。
技术实现要素:
本发明来源于非洲尼日利亚阿布贾城铁项目,其目标是为阿布贾城铁研制一整套可为用户提供可靠的语音服务,适应于轨道交通调度需求的无线通信系统,调度系统为用户提供可靠的话音传送服务,使用人群为城铁调度人员。主要目的是运营时保证行车调度员和司机、车站值班员和司机之间的正常通话,满足日常行车调度,进入车辆段后保证信号楼调度员和司机、运转值班员和司机之间的正常通话。
本发明为实现上述目的,所采用的技术方案是:一种非洲城际铁路无线通信调度方案,其特征在于:调度台上位机程序通过标准以太网接口连接cad服务器程序,通过串口通信与调度台控制盒通信,调度台控制盒程序通过两路串口与基站控制单元通信;
调度台上位机程序可以与调度台控制盒串口通信,通过信令发送来控制调度台控制盒打开相关音频接口,也可以通过调度台控制盒转发信令来呼叫机车、呼叫班组、呼叫电台,接收紧急呼叫,实时显示当前呼叫事件;
调度台程序可以和cad服务器程序通信,实时接收cad服务器发来的ats和时钟数据,并显示当前列车ats数据,更新当前时间,调度台可以接收调度台控制盒发来的告警信息,并发送给调度服务器程序;
主对话框类主要用于界面显示和开启各子线程,主对话框类中包含cad管理类对象、数据库管理类对象和多个界面显示类对象;
cad管理类主要用于建立与管理与cad服务器的交互信息;
socket管理类包含报文接收类和报文发送类,报文接收类包含缓冲区管理类对象和报文解析类对象,缓冲区管理类主要用于存储接收到的未处理的tcp报文,当有新报文接收时,激活socket管理类的处理线程;
对tcp模块的初始化:初始化管理线程,由管理线程开启接收线程和连接线程,其中与cad之间连接的tcp参数也是从配置信息读取,tcp管理类的父类初始化时也会处理改类的interface线程,interface线程发送自激消息创建缓冲区管理线程和发送线程。
意义
本发明的有益效果是:通过对该项目的开发,除了能满足尼日利亚阿布贾城铁项目的需求,还可研制出新技术方案的无线通信产品,一旦拥有了我们自己的用于轻轨地铁的无线通信设备,将增大非洲铁路市场业务范围,同时可以有效的降低成本,增强产品竞争力。通过此项目增加了我们在轻轨地铁领域的经验,能够为以后竞标新的项目提供有力的保障。
附图说明
图1为本发明的系统架构图;
图2为本发明的调度台程序结构图;
图3为本发明的tcp模块框图;
图4为本发明的调度台呼叫基本信令流向示意图。
具体实施方式
以下结合附图对本发明作进一步说明:
如图1所示,一种非洲城际铁路无线通信调度方案。
(1)、其中调度台:
调度台上位机程序通过标准以太网接口连接cad服务器程序,通过串口通信与调度台控制盒通信。调度台控制盒程序通过两路串口与基站控制单元通信。
调度台上位机程序可以与调度台控制盒串口通信,通过信令发送来控制调度台控制盒打开相关音频接口,也可以通过调度台控制盒转发信令来呼叫机车、呼叫班组、呼叫电台,接收紧急呼叫,实时显示当前呼叫事件等。
调度台程序可以和cad服务器程序通信,实时接收cad服务器发来的ats和时钟数据,
并显示当前列车ats数据,更新当前时间
调度台可以接收调度台控制盒发来的告警信息,并发送给调度服务器程序
(2)、其中调度台控制盒:
调度台控制盒主要功能是调度台和基站控制器之间的数据转发,还有控制相关的音频通路,以及外线电话的接入
(3)、其中基站控制单元:
基站控制器的主要作用是接收调度台控制盒的信令并编码为ffsk给收发信机,解码收发信机发来的ffsk信号给调度台控制盒,以及控制相应的音频通路
(4)、其中cad服务器:
建立数据库,用于调度台程序和服务器程序读写用。
服务器程序可以通过串口接收ats和时钟程序,ats数据发送给行车调度台程序,时钟数据同步给所有调度台。
服务器程序可以接收所有调度台发来的告警信息,并实时显示。
如图2所示,调度台程序结构:
程序创建基于mfc的对话框应用程序,主界面对应主对话框类。
主对话框类主要用于界面显示和开启各子线程。主对话框类中包含cad管理类对象、数据库管理类对象和多个界面显示类对象。
cad管理类主要用于建立与管理与cad服务器的交互信息。socket管理类包含报文接收类和报文发送类。报文接收类包含缓冲区管理类对象和报文解析类对象。缓冲区管理类主要用于存储接收到的未处理的tcp报文。当有新报文接收时,激活socket管理类的处理线程。
数据库管理类主要用于对数据库的操作(存储呼叫记录、查询呼叫记录等)。
各个界面显示不同的信息,当需要界面显示信息时,以消息的形式发送给要显示信息的窗口,在窗口类中做显示处理。
串口管理类,主要用于与调度台控制盒交互,收发串口报文。
通过标准以太网接口连接cad服务器。数据库存储呼叫记录、车站固定台信息、电台信息、列车信息等等。
如图3所示,tcp模块简单框图:
对tcp模块的初始化:初始化管理线程,由管理线程开启接收线程和连接线程,其中与cad之间连接的tcp参数也是从配置信息读取。tcp管理类的父类初始化时也会处理改类的interface线程,interface线程发送自激消息创建缓冲区管理线程和发送线程。
连接线程保证与cad之间的连接,连接正常后更新界面显示。断开后会有断线重连。
tcp接收线程因为socket编程中recv函数会自动挂起存在,此函数会一直等待接收到新数据或断开时才有返回值,所以必须独自开辟线程。
缓冲区的管理线程主要为串行化管理数据库和保证3次重发,其中以通讯包标识号为区别。外部有时钟源,定时触发次线程,使其发送数据到发送线程,时钟在类的ontimer事件中触发。发送线程功能较为简单,直接发送传入的数据即可。
如图4所示,调度台呼叫基本信令流向:
程序创建基于mfc的对话框应用程序,
调度台初始化,
程序入口(csubwayconsoleapp类);
创建clogging(登陆界面类),由用户输入用户名、密码。输入信息与配置文件(ini文件)对比,如果正确,则登陆调度台。由配置文件中的调度台类型行决定登陆何种调度台,initinstance()函数。初始化日志模块,设置日志文件行数、级别等。
框架类(cmainframe类);
初始化菜单(ccustommenu类)、工具栏、状态栏(cstatusbarex类)。其中加载各项在oncreate函数中,初始化工具栏和状态栏分别在inittoolbar和initstatusbar中,不同的调度台加载的菜单、工具栏、状态栏、标题不同。
退出时会调用安全退出软件,该部分代码在onwndmsg函数的wm_close处理中,安全退出软件的。
主界面类(csubwayconsoleview类);
初始化界面,主要是各个列表框(csortctrollist和csortctrollistex)的位置,代码见setmainview函数,列表框中每列宽度设置在setviewlist函数中,这两个函数主要做的是自适应功能。
对连接类做初始化(cmanagelink类),该对象主要管理数据库模块、tcp模块、moto模块、sdr模块等。
连接类(cmanagelink类);
对数据库的初始化:读取配置信息,根据配置信息中关于数据库的字段,初始化数据库类,并开启管理线程。管理线程开启后自激消息(即给当前线程发消息),开启连接线程和数据库读取线程。
数据库连接线程保证与cad数据库的连接,如果连接失败,则10秒后重新连接,并发消息给主界面和fram类,更改状态栏状态,显示数据库是否连接正常。
当连接成功后,连接线程给读取线程发消息,读取线程开始读取数据库,并在调度台创建动态链表。这里为carray类型,具体carray的使用方法请查看msdn。
当数据库读取成功后,即可查询和存储历史记录了。如果此时与moto连接已经建立,同时还将注册资源。
数据库,
sqlserver是基于服务器端的中型的数据库,可以适合大容量数据的应用。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。
由于cad服务器已经架设了sqlserver数据库,sqlserver数据库对远程访问也有很好的支持。并且使用cad服务器数据库,可提高系统的稳定性和处理能力。
访问数据库的方式ado;
通过比较常用的数据库的访问方式odbc、ado、dao、oledb,ado.net,最终决定采用ado访问。
ado:基于com接口,数据库中表很多时比较方便,自己也容易控制。另外可扩展性好。如功能扩充要求支持远程或数据库管理员和操作员分开。
缺点是需要过多开销,存在资源浪费的问题。在当前的硬件环境下,可以作为次要考虑的因素。
网络通信;
tcp发送的包有序号,对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就自动执行超时重发,因此tcp最大的优点是可靠。
udp是面向消息的协议,通信时不需要建立连接,数据的传输自然是不可靠的,一般用于多点通信和实时的数据业务。
由于调度台的要求可靠数据传输,要求可靠性。故采用tcp传输协议。
任务调度;
由于调度台程序为.net环境下基于mfc的对话框应用程序,所以主界面对应着主线程。初始化主界面时,开启各个子线程。
界面显示部分,主线程主要用于界面的显示。
网络交互部分,主要有连接线程(如未连接或断线,每5秒尝试连接)、数据接收线程(挂起状态),数据处理线程(挂起状态)。当连接建立后,挂起连接线程,激活数据接收线程。当收到新数据后,激活数据处理线程。当数据处理完成后,挂起数据处理线程。如果连接中断,则挂起数据接收线程,激活连接线程。