刘 洋
摘 要:高速公路监控系统能对高速公路交通流和道路气候环境变化情况等信息进行实时检测、分析和判断,并对行驶车辆发出限速、诱导性指令。全文先介绍了高速监控系统的重要性以及其组成,随后从四个方面介绍了高速公路监控通信系统的建设过程:即软硬件建设;服务器设置;通讯模块涉及;事务管理模块设计
关键词:高速公路 通信 监控
1.高速公路监控通信系统建设的重要性
交通建设对国民经济的发展毫无疑问起着非常重要的作用,到2010年,我国高速公路总里程达到5万千米[1]。相应的硬件设施的配备,管理软件系统的开发和应用将对于提升我国高速公路的通行能力和管理水平具有非常重要的战略意义。高速公路交通监控系统作为高速公路机电工程的一部分,它配合收费系统、通信系统等技术内容共同完成高速公路资源的合理利用以及提高科学的管理水平。高速公路交通监控系统一般包括实时监控子系统、车流量检测子系统、气象检测子系统、还有执行交通控制的可变情报板、可变限速标志子系统等。
2.高速公路监控通信系统组成
高速公路交通监控系统由数据通信软件子系统、交通监控子系统、图形显示软件子系统和数据库服务器子系统构成。它们在高速公路交通监控系统中承担不同的角色,完成不同的任务,其结构如图1所示:
高速通信系统的四个组成部分的功能如下:(1)数据通信软件子系统:主要负责采集外场设备(车辆检测器、气象检测器)的实时信息,并下传控制指令给外场的情报板和信号灯。(2)交通控制软件子系统:负责将数据通信软件子系统采集的、经处理的外场设备的实时信息显示出来,并承担向外场的情报板和信号灯发布指令的功能。(3)图形监视子系统:显示整个路段的全部信息以及该路段周边的一些附属信息。外场设备以图标形式显示在路段的相应位置上,并且可以显示其工作状态和具体的内容。(4)数据库服务器子系统:数据库服务器将数据通信软件子系统采集到的外场设备的数据,以及整个监控系统所需的参数数据存放在数据库的表中,并还保存了用于对工作人员使用本系统进行安全管理的人员身份表和系统操作记录表。
3.通信系统建设
在通信光缆等硬件设施施工完毕后,通信系统的建设分还为服务器建设,通讯模块的建设以及事务管理模块建设。
3.1 软硬件建设
高速监控的数据信息量大,因此网络结构的传输速率应不低于100Mb/s,网络类型为以太网局域网,拓补结构为总线型局域网,传输协议采用通用的TCP/IP协议。客户机的操作系统为有多任务处理能力的Windows 2000 Professional,系统开发工具可以选用Delphi,数据库系统采用ORACLE。其他信息采集设备包括摄像头,气象设备,消防设备,通风设备,照明设备等应根据实际需要进行配置。
3.2 服务器设置
对高速而言,安全终于泰山,因此高速网络监控系统必须保证稳定,基于此选择比较流行的双服务器配置方案:两台服务器+共享磁盘阵列构成高可用系统,该系统的服务监测模块可以互相监测对方的心跳,进行故障检测与恢复以及时间同步等。故障检测是实现双服务器系统最初的步骤;心跳检测是指每隔一段时间客户端就向两个服务器发送的广播包的状态,检测两个服务器的存活状态;故障恢复是基于双服务器系统存储了前一状态,当系统出现故障时,模拟时间反向的情况,它包括了重试、记录运行口志、回滚和检查点等方法;时钟的同步是分布式系统的重要环节,本系统采用主仆式及时间服务器的时间同步化策略:在系统中建立一个或若干个具有高可信度与有效度的时间服务器,而系统中其他节点则通过通信网路与服务器直接地撷取正确的时间来修正各自的时间,进而达到整个系统中各节点时间上的同步。
3.3 通讯模块设计
通讯模块的设计分为通讯数据包设计,线程实现等。
(1)通讯数据包设计。网络系统中传递的包分为两类,请求包和应答包:请求包包括登录请求包、心跳监测请求包、各种查询请求包、各种控制请求包等。应答包包括登录应答包、心跳监测应答包、各种查询应答包、各种控制应答包等。网络通讯中设计的TCP通讯包的前24byte用于存放TCP通讯包的整体信息,以便Socket接收以及数据分析模块区别TCP通讯包的类型和目的并传递到相应的图形模块,因此系统用于TCP通信的Socket也有4个。由于在通信模块中每个线程只控制数据的发送或接收,为了控制的方便所有的Socket都为单工,分别是:Send Socket A(客户端向服务器A发送数据);Rec Socket A(服务器A向客户端发送数据);Send Socket B(客户端Ib服务器B发送数据);Rec Socket B(客户端向服务器B发送数据)。 四个Socket的发送端端口固定,接受端端口为随机生成,结构如图2所示:
系统建立stocket的过程如下:首先建立客户端向服务器端发送数据Send Socket的连接,然后建立客户端接受服务器端数据的Receive Socket连接。当这两个连接都建立以后,才说明客户端与服务器端连接建立成功。通讯模块的主要代码有:
数据发送时[2]:
int index;
index=WaitHandle.WaitAny(new AutoResetEvent)
{TimeOutEvent,ReconnectEvent,ReceiveANS,HealthCheckInfo,changeserver,ThreadClose};
switch (index)
{case 0:ProcessTimeOut();break;//超时
case 1:ProcessReconnect();break;
case 2:ProcessReceiveACK();break;}
(2) 线程实现。主要有两个线程:DeviceThread和GetOrderThread,前者用于发送命令,采集参量,将参量写回服务器,后者用于从服务器读取监控机下发的命令,并调度前者。 DeviceThread线程类的实现方式如下:按照面向对象的方法进行分析与设计,将设备封装成对象。外围通信设备的通信都在DeviceThread线程类中实现。每一个串口对应一个DeviceThread的实例,同时对应一个ConunandQueue,在需要从该串口发送命令时动态生成,以节约系统资源。每次发送一个命令后,清空ConunandQueu中的第一个元素,其余元素依次前移,从而实现命令的排队发送。
3.3 事务管理模块设计
事务处理模块分为查询统计模块、道路、隧道管理模块、变电站管理模块:查询统计模块用于收集用户查询信息,将该信息传递给通信模块;桥梁、隧道、道路等管理模块用于不同路段不同设备的状况显示,并收集用户的控制信息将该信息传递给通信模块;变电站管理模块用于各个变电站不同设备的状态显示,并收集用户的控制信息将该信息传递给通信模块。具体实现时,桥梁模块负责监视桥梁的道路运行情况,隧道模块负责监视隧道交通情况,道路模块则坚实非桥梁和隧道的道路情况。
4.结束语
本监控系统软件在总结以前高速公路监控系统软件基础上,从更高的层次进行了系统分析和设计,建立了一个基于组件开发的软件平台,实现了与不同的高速公路监测设备和信息发布设备的集成,从而可迅速部署于不同的高速公路应用环境。
参考文献:
[1]中华人民共和国交通部网站.国家高速公路网规划
http://www.moc.gov.cn/zizhan/siju/
guihuasi/gongluguihua_GL/gongluguihua/
[2]王建军.高速公路管理设施系统设计理论与方法[M].人民交通出版社.2008(6)?