杨小军 徐 昆
杨小军:同方威视技术股份有限公司 工程师 100084 北京
徐 昆:昆明铁路局工务处 高级工程师 650011 昆明
在我国山区,危岩落石是三大自然灾害之一,严重影响了铁路列车在山区的安全运行,成为制约我国西部开发和交通建设大发展的重要因素。因此,展开落石监测的铁路防灾监控系统研究,对保证山区铁路列车安全运行具有十分重要的现实意义。
铁路防灾监控系统可以分为数据采集层 (包含现场采集设备及监控单元)、数据处理分析层(包括数据库服务器及应用服务器等)和数据展示层 (包括工务终端及调度终端等),系统架构如图1所示。
在铁路防灾监控系统中,现场监测设备呈现多样化,为了保证所有现场监测设备的正常运行,每个现场设有一个监控单元。如何让数据处理中心与所有现场监控单元保持实时、可靠的连接,对现场监测及现场维护具有重要的意义,因此研究一种高效、可靠、可扩展且适用于铁路防灾系统的通信协议十分必要。
在现有的铁路防灾监控系统中,现场监控单元与数据处理中心连接大多采用通用组态软件、OPC或者通用通信协议 (如modbus协议),采用以上通信方式的优缺点如下。
优点:通信协议开发简单,现场监控单元有可用的通信包可以调用,无需进行复杂的通信协议编程;数据处理中心的监控软件无需开发,可直接购买通用组态软件。
缺点:由于通用组态软件的限制,不利于对数据处理中心的算法编程、画面绘制等;组态软件中的通信驱动无针对性,通信效率不高;通信协议缺乏直接开放的接口,不利于系统的有效扩展;当监控现场的硬件发生改变时,通信协议及上层监控软件也要随之修改,不利于系统的维护。
在针对落石监测的铁路防灾监控系统中,通信效率、算法分析及画面展示是整个系统的技术关键,因此继续采用通用组态软件或者通用通信协议方式已经不再合适。根据系统要求,比较合适的方式是采用自由通信协议,自定义协议格式、连接模式、硬件程序架构等,可设计出高效、可靠、扩展性良好的通信协议。
图1 铁路防灾监控系统架构图
在防灾监控系统中,监控主机单元负责整个系统中所有设备 (包括工控机、PLC控制器、UPS电源、低压电器、传感器等)的监控。当设备出现故障时,如何向数据处理中心进行报警;当设备出现故障时,如何来定位故障点;如果数据处理中心需要对设备进行控制时,如何传递控制命令。这些信息 (包括故障报警、控制命令等)的传递都需要一套约定来实现,因此需要一套脱离物理层的通信协议。
既有铁路防灾监控系统中,铁路防灾的报警信息较为有限,主要包括风、雨、雪、异物等。为了使新设计的铁路防灾监控系统数据能够兼容其他防灾系统数据,该通信协议在格式上留有接口。同时,考虑到以后系统的扩展,该通信协议还需具备一定的开放性及可扩展性。扩展性出于2种目的:首先是有利于建立统一的防灾体系,为有效整合现有的铁路防灾系统打下基础;其次是有了统一的数据基础后,为后续的数据挖掘和分析打好基础。通信协议的格式定义好后,数据处理分析系统即可根据此规则对所有铁路防灾数据进行处理分析。
经过综合研究,可扩展的协议格式定义如图2所示。报头,代表铁路防灾监控数据专用,用“AA”表示;报文种类,是“上传”还是“下达”的数据,通过这个字节来区别;报文类型,包括各种命令种类,如故障、报警、命令等;报文数据,是对各种报文类型的补充,代表着真正的报文含义;校验,是对整个报文进行校验,以保证报文在传输过程中的可靠性。在该通信协议中,报文类型、报文数据均可根据需要进行扩展,满足各种铁路灾害数据的传递。
图2 通信协议的格式定义
通信系统采用客户端和服务器的通信模式。以TCP/IP为例,通信套接字调用的顺序如图3所示。上位机PC端作为“客户端”主动连接“服务器”PLC端。PC端主动发起通信socket连接命令,而此时PLC作为服务端 (监听端口)一直处于等待连接状态,直到通信连接成功。
图3 通信套接字调用的顺序
连接成功后,上位机立刻发送“初始化帧”,此时PLC也在等待上位机发送初始化命令。初始化成功后,上位机负责通信连接的保持,如果2 s内上位机没有收到任何数据帧,则启动“hello报文”的发送。 “hello报文”由PC端发送给PLC,每隔2 s发送一次,上位机每隔200 ms判断一次是否有所发报文的回复,若无回复则继续发送“hello报文”,如果连续3次发送都没有返回,认为连接中断,此时上位机需要重新初始化才能继续进行通信;如果200 ms判断有回复,间隔2 s再次发送hello报文,如此循环来保持通信连接。
在通信连接正常时,如果现场设备有报警,作为监控核心的PLC立即生成相应的报警报文,并通过以太网口向数据处理分析中心发送,整个过程在1 s内完成。同理,当上层有控制命令需要传送给现场设备时,也能在1 s内将命令传送给现场设备。由于采用了hello连接模式,当通信异常时,上层系统能立即发出报警,保证了通信的可靠连接。
通信协议的设计重点是满足监控主机单元与上层的通信连接,实时监控铁路沿线复杂的设备状态。然而,对铁路防灾监控系统而言,监控核心一般采用稳定可靠的PLC(可编程控制器),其功能并不像计算机那么强大,不能使用高级语言来编写程序,因此,为了使整个通信协议结构清晰,且便于通信程序的编写,对程序架构进行了分层设计。整个通信协议的架构分为3层,各层的功能如图4所示。无论采用何种监控核心 (西门子、施耐德或贝加莱),均可采用这种架构进行编程,提高通信协议的兼容性,有利于系统的扩展。此外,通信协议不依赖物理层,无论使用RS-232、RS-485还是TCP/IP通信接口,该通信协议都可在此基础上应用。
图4 通信程序架构图
以西门子S7-300型号PLC为例,编写一套通信程序来完成各项通信协议功能。SIMATIC S7-PN核心包含一个集成PROFINET接口,具有TCP通信功能。通过该集成以太网接口组态TCP通信,只能使用开放式通信专用的功能块。依据RFC793的TCP协议,在STEP7通信块的标准库中提供了一些FB功能块,通过用户程序与符合以太网标准的通信伙伴进行数据交换。
编程实现测试结果如图5所示。输入PLC的IP地址进行通信连接,通信连接成功后,上位机开始发起“hello包”的连接。当无数据交换需求时,系统通过“hello包”来维持上位机和下位机的连接;当有数据交换请求时,如下位机有“故障报警”请求,此时下位机会以通信协议定义的格式生成一条数据帧发送给上位机,上位机接收成功后给予回复,表明“故障报警”已收到。同理,如果有其他数据帧的交换,也是按照此规则进行。
图5 编程实现测试结果
通过建立一套稳定可靠的通信协议,对整个系统的所有设备运行提供了实时、可靠的监控,并且当设备故障需要维修时,通信协议可提供方便、准确定位、可视化的维护维修接口。同时,由于通信协议具备良好的开放性及可扩展性,为将来建立统一的防灾体系,有效整合现有的铁路防灾监控系统打下基础,并为后续的数据挖掘和分析打下良好的基础。
[1] 张新芳.高速铁路、客运专线防灾安全监控系统设计探讨[J].铁道工程学报,2006(4):71-74.
[2] 王玉锁.高速铁路隧道洞口段危岩落石运动轨迹及冲击特性研究[J].前沿动态,2011(2):16-18.
[3] (美)科默(Comer,D.E)著.计算机网络与因特网[M].北京:机械工业出版社,2009:22-23.