您当前的位置:首页 > 计算机论文>软件开发论文

BRT安全门实时监控系统的设计与实现

2015-06-10 09:43 来源:学术参考网 作者:未知

  1. 引言

  城市快速公交系统(BRT)已成为解决城市交通拥堵问题的重要手段之一,作为西部大开发的重要民生工程--乌鲁木齐市BRT项目在2011年建设并投入使用。由于BRT采用专车专道的运行方式,乘客上下车采用安全门自动开关进行,作为调度中心实施掌握安全门的运行情况,能够及时处理安全门突发状况对于保证BRT系统安全运行有着重要的意义。目前国内BRT系统较少,可以借鉴的经验不多,笔者查阅了大量资料,结合实际测试对BRT安全门监控系统的设计与实现进行了探讨,就设计到的核心问题给出相应的解决方案。

  2.系统分析

  BRT安全门实时监控系统是对BRT站台所属所有泊位的每组安全门运行情况进行实时监控。其主要任务是通过信息调度中心与各站台安全门管理机进行通信,将管理机所传输的报文进行处理,以表格形式反应出安全门所处的状态,对于故障状态能够进行记录和跟踪,能够对安全门运行及故障情况进行统计分析,为合理调度公交车次提供数据支持。

  3.系统设计与实现

  3.1 系统总体设计

  安全门实时监控系统分为服务器端和客户端两部分实现,分为四个功能模块:端口监听模块、安全门状态报文处理模块、安全门状态描述模块、安全门信息统计分析模块。服务器端始终处于运行状态,监听站台管理机与服务器端的通讯端口;收到报文后首先对报文进行解析,分析出报文的来源以确定安全门状态信息所属的站点,再对安全门报文信息进行分析,如果安全门状态与发生了变化,则更新数据库中安全门状态,否则丢弃报文。客户端可以运行在任何与服务器有物理连接的计算机上,进入系统选择需要监控的线路,系统每秒自动从服务器获取安全门最新状态信息,对于不同状态以不同颜色进行区分;通过统计分析模块对安全门运行及故障情况进行统计分析,将统计结果以Excel表格形式现实。

  3.2 传输协议设计

   安全门监控系统是在调度中心实时接收每个站台安全门的信息,需要与站台进行频繁通信。由于站台与调度中心传输距离长,传输环境复杂,实时稳定的通信是保证系统实现的基础。19世纪70年代MODBUS协议初次发布,至今已经在工业自动化领域广泛应用,其实现原理是将MDOBUS帧嵌入到TCP帧中,TCP/IP协议本身没有变化,但对报文的发送方式和速率作了改变,以满足工业应用的实时性需求。TCP/IP的请求/应答机制能和MODBUS本身的主/从机制很好的配合工作。MODBUS TCP/IP协议在应用层采用MODBUS信息定义,在传输层和网络层采用TCP/IP,用于以太网通讯。MODBUS TCP/IP协议和OSI各层之间的对应关系由下图表示:

  TCP/IP上的ModBus应用数据单元、信息格式如下(其中PDU为协议数据单元):

  MBAP报文头主要用于标示传送数据的序号、上下行标志和传输数据的长度,具体格式如下:事务ID(等于请求帧事务ID,2Byte)+协议标识符(0000H)+数据长度(0039H)+单元标识符(上行为00H、下行为01H)+功能代码(03H)+字节数(36H);功能码主要用于传输ModBus功能代码以及所用寄存器信息;数据信息用于传输每组安全门状态,由运行状态(2Byte)+故障状态1(2Byte)+故障状态2(2Byte)组成,具体长度根据站台安全门组数确定。

  3.3 系统实现

  对于众多网络协议其实现方法有很多,对于Windows平台来说Winsock是访问它们的首选接口。Delphi的Winsock接口是与协议无关的接口,可以读写各种协议的数据。对于网络通信中最普遍的客户机/服务器模式,Delphi提供了Serversocket和Clientsocket来实现。Serversocket用于监听指定的端口,对于客户端发送的请求进行响应,为客户端程序提供服务。Clientsocket用于向指定的服务器发送连接请求和数据报文。

  在服务器端通过Serversocket控件来接收 站台管理机发送的数据。在Serversocket控件有两个主要事件,一个是read事件负责读取客户端报文信息,在read事件中对报文进行处理并存入数据库;二是error事件负责错误处理,使用Serversocket控件时受传输介质影响可能会发生无法预期错误,在error事件里对错误进行拦截和过滤以保证系统的稳定运行。服务器端核心代码如下:

  var

  recbuff:array of byte;

  begin

  len:=Socket.ReceiveLength

  SetLength(recbuff,len);

  Socket.ReceiveBuf(recbuff[0],len);

  ip:=Socket.RemoteAddress;

  gxbrt1(ip,recbuff);

  end;

  gxbrt1(ip,recbuff)为自定义函数,用于对接收到的报文进行分析,将分析结果保存在数据库中,此函数为报文处理核心函数。

  ADO是微软提供的用于存取数据源的COM组件,可以实现对数据库的快速、高效读写。在客户端利用ADO数据访问控件读取服务器端处理完成的数据;DBGridEh控件是在原生DBGrid控件基础上开发的第三方控件,其数据显示方式更加灵活和多样,使用DBGridEh控件以表格方式显示安全门状态,对于不同的状态以不同颜色进行区分;为保证数据实时性利用时间触发控件每秒动态更新数据;在对安全门运行信息进行统计分析时,所有数据最终已Excel文件显示,其核心代码如下:

  var

  excelapp:Variant;

  begin

  ExcelAppBb:= CreateOleObject( 'Excel.Application' );

  ExcelAppBb.Visible := True;

  ExcelAppBb.SheetsInNewWorkbook := 1;

  ExcelAppBb.WorkBooks.Add;

  ExcelAppBb.range['A1:E2'].borders.weight:=2;

  ExcelAppBb.range['A1:E2'].HorizontalAlignment:=xlCenter;

  ExcelAppBb.Workbooks[1].Worksheets[1].columns.columns[1].columnwidth:=16;

  ExcelAppBb.range['A1:E1'].Merge;

  ExcelAppBb.Workbooks[1].Worksheets[1].Cells[1,1].Characters.Font.Size:= 20;

  ExcelAppBb.Workbooks[1].Worksheets[1].Cells[1,1].Font.FontStyle:='粗体';

  ExcelAppBb.Workbooks[1].Worksheets[1].cells[1,1]:='BRT 安全门运行统计表';

  End;

  目前该系统在乌鲁木齐公交信息调度中心运行稳定,实现了对安全门的实时监控。但也存在一些不足,如当BRT线路增加时无法动态添加信息;在发生软硬件故障造成数据无法传输时无法补传数据,此功能需要安全门实时监控软件和安全门生产厂商协同完成。在后续研究中将重点考虑实现上述功能,使该系统更加完善。

  4. 结论

  通过安全门实时监控系统调度中心可以随时掌握BRT各站台安全门运行情况,对于确保BRT车辆正常运行、保证乘客安全有着重要意义。结果表明,安全门实时监控系统具有数据处理简洁高效、功能较为完善、信息统计查询方便、操作简单等优点,在实际生产中具有良好的推广与应用的价值。

  参考文献

  [1] 鲍敏 Delphi网络高级编程.人民邮电出版社

  [2] 黄军 Delphi 串口通讯编程[M]. 人民邮电出版社 2001

  [3] 郑先锋,毛景魁,张开拓. 基于Modbus协议的监控系统的改进方案[J]. 工矿自动化. 2009(05)

  [4] 蒲靖荣,杜开勋,朱占清,闫纪峰. 基于网络和Modbus协议的远程监控系统[J]. 自动化仪表. 2009(07)

  [5] 卢智嘉,王俊社,李玉萍. 基于Modbus远程监控系统的通信研究[J]. 微计算机信息. 2008(25)

  [6] 朱小襄. ModBus通信协议及编程[J]. 电子工程师. 2005(07)

  [7] 孙璐. Modbus/TCP协议在远程监测中的应用[J]. 计算技术与自动化. 2009(04)

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页