基于互联网的盾构远程实时监控系统开发
2012-10-10孟祥波徐受天
孟祥波,徐受天,马 强
(中铁隧道装备制造有限公司,郑州 450016)
0 引言
随着地下空间开发技术的发展,一个大型的地下工程施工企业往往会面临多个工地同时施工及工地分布非常分散等局面。由于人员有限,如何有效管理这些工程和提供全面的技术支持,成为当前急需解决的问题[1]。目前国内外著名的盾构生产商(如海瑞克、罗威特、小松、罗宾斯、上海隧道)都有自己的地面数据采集系统,但是大多数地面监控系统都只能安装在1台计算机上,不支持多个用户同时访问,不能通过互联网方式进行实时监控,无法实现多台盾构集中监控的功能。文献[1]代表了上海隧道开发的盾构监控系统,其重点在于用先进控制算法优化施工数据,不强调多台盾构的集中监控;文献[2]代表了完全从底层开发的监控系统,盾构是个系统工程,完全从数据采集板卡开发难度较大,也不利于实现盾构所有参数都加入监控系统;文献[3]代表采用组态软件开发监控系统,这类系统不利于后期功能扩展,且系统安装设置都比较复杂,即多用户访问盾构监控系统时必须安装庞大而复杂的客户端软件。从以上文献可以看出,多用户通过互联网对多台盾构进行集中监控的功能还不多见。综上,盾构研发制造是一个长期的过程,花更多的时间和精力开发出具有自己特点、具有自主知识产权的能实时获取施工信息进而能提供施工指导的盾构远程实时监控系统成为必要。本文设计的基于互联网的盾构远程实时监控系统,即是为实现多台盾构集中监控、多用户访问和远程故障诊断等功能而开发的。
1 总体方案设计
1.1 总体框架设计
要实现远程的管理和技术支持,首先要对盾构状态信息和历史数据有一个全面、及时和准确的掌握,再通过先进的分析手段,才能对盾构施工进行指导。为完成盾构数据的远程监视,将整个系统分为5个相对独立的软件项目,分别位于不同的计算机上,彼此通过TCP或UDP进行通信。系统框架如图1所示。
图1 远程监控系统总体框架Fig.1 Structure of remote monitoring system
1)本地服务器。读取PLC的实时数据和人机界面上的历史数据并存储,再将这些数据发送至中心服务器。
2)中心服务器。从来自各个项目部的本地服务器读取实时数据和历史数据并存储,再根据远程客户端的请求发送其需要的数据。
3)远程C/S监视客户端(简称“远程客户端”)。从中心服务器获取指定盾构项目的数据并通过友好的界面展示给远程监视用户,包括实时数据显示、历史数据曲线图和表格显示、报警信息显示等。
4)WEB浏览器客户端。从中心服务器获取数据并通过网页形式显示实时数据和历史数据。
5)本地地面客户端(简称“本地客户端”)。从本地服务器获取数据并通过友好的界面展示给项目部工作人员。
1.2 通信方式选择
系统主要包括2部分:一部分是从盾构到项目部监控计算机,另一部分是从项目部监控计算机通过互联网到远程计算机。通信方式的选择主要是确定项目部监控计算机和盾构PLC之间的通信(即PC机与PLC之间的通信),它将会影响整个设计思路,必须优先考虑。PLC选用西门子S7-400系列,S7-400按功能强弱排序,主要提供MPI、Profibus和工业以太网等通讯子网[4]。在这几种通信方式中,工业以太网具有成本低廉、通用性极好、速度快和可靠等特点,本系统的通信采用工业以太网方式[5]。
工业以太网最常用的传输介质是RJ45(普通网线),其最大传输距离是100 m[6]。当盾构正常掘进时,从地面办公室到盾构PLC的连接线若超过网线支持的最大距离,就必须要使用相应的通信设备进行距离延伸。光纤和电话线均可以传输长距离的信号,光纤的传输质量较好,电话线成本较低,二者的选择可以综合项目的距离和成本等因素来考虑。目前2种连接方式在不同项目上都有使用。本系统以电话线连接为例。
项目部监控计算机,一方面要连接盾构PLC,一方面要连接互联网,需要装双网卡。一个网卡接局域网,通过铜线接入技术和井下盾构局域网连接起来;另一个网卡接互联网,通过编程软件实现在监控计算机上接收到盾构监控数据后再转发到互联网上。这样,地理位置处在很远的远程监控客户端,可以通过互联网接收数据。系统整体结构示意图如图2所示。
图2 通信硬件连接Fig.2 Real connection of communication
1.3 开发环境选择
远程监控系统属于地面监控的扩展,使用组态软件开发相对困难,而且每台客户端安装庞大的组态软件也不合适。除此之外,目前软件业界存在C++,Java和C#主流面向对象语言。其中,C#作为新推出的一种编程语言,几乎集中了所有关于软件开发和软件工程研究的最新成果,面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制和代码安全管理[7]。综合以上考虑,使用当前普遍使用的快速开发语言C#。
2 通信协议设计研究
2.1 通过C#连接OPC服务器
由于西门子S7-400没有公布通过工业以太网方式连接PC的数据报格式,不能通过编程直接控制PLC。西门子的解决方案是采用其提供的驱动程序,将PC与PLC的通信标准化为OPC。OPC(用于过程控制的OLE)是一种用于自动化领域内组件的被绝大多数PLC支持的新通讯标准。目前盾构所用到的PLC(如西门子、三菱、施耐德、AB等)都有专门的软件来实现其OPC接口。因此,用OPC设计出来的系统可以很轻易地移植到其他盾构或PLC平台上。
在系统的5大模块中,只有本地服务器是直接与PLC连接的。中心服务器、本地客户端、远程客户端与浏览器客户端的实时数据都是直接或间接来自于本地服务器。在本地服务器所在的主机上,同时安装有OPC服务器和 OPC客户端。OPC服务器(Simatic NET)是由PLC厂商提供的类似于设备驱动程序的软件,它通过PLC厂商私有的通信协议读取PLC中的数据,并将其转化为与OPC规范兼容的数据结构[8]。在微软.NET平台下本地服务器编写OPC客户端读取OPC服务器中的数据,存储于内存和数据库,并将实时数据通过因特网传送至位于总部的中心服务器。中心服务器再将处理后的实时数据或历史数据转发给远程客户端。C#与OPC服务器的连接原理如图3所示。
图3 C#连接OPC服务器原理图Fig.3 Principle of C#connecting with OPC server
2.2 应用层通信协议设计
本系统基于以太网,即TCP/IP协议。在TCP/IP模型中,传输层有 TCP(Transfer Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)2种协议。TCP是一个可靠的、面向连接的协议,允许从一台机器发出的字节流准确无误地递交到互联网上的另一台机器上;UDP是一个不可靠的、无连接的协议。盾构的实时数据传输对实时性要求较高,在网络条件不好的情况下丢弃一部分“过时”的数据,以保证数据总是比较新的;而历史数据传输对安全性要求较高。因此,采用TCP负责配置文件、历史数据、图片等文件的传输;采用UDP负责实时数据的传输。
2.2.1 实时数据传输的协议设计
系统内各部分之间的实时传输使用UDP协议通信,但是还不够,因为UDP是一种工业标准,很笼统,适用性很广,没有也不可能规定盾构数据采集以及OPC通信方面的细节,所以还必须在UDP基础上开发出专门用于本系统实时传输的协议。为使内容更加紧凑且出于执行效率考虑,所有UDP数据报均采用二进制形式,它们具有统一的文件头(见表1)。
2.2.2 文件传输协议的设计
文件传输通常都采用TCP方式。目前已经有比较成熟的FTP和HTTP协议,但这二者都需要架设较为复杂的专用服务器,而且难以与现有项目有机集成。隧道内人机界面、本地服务器、中心服务器都有成为文件传输服务器的需求。如果采用FTP或HTTP,需为其设置一个公网端口,对位于项目部现场局域网内的本地服务器是难以做到的。为此,设计了一个自定义的文件传输协议,使中心服务器向本地服务器或远程客户端向中心服务器下载历史数据和配置文件变得更加灵活、更加易于控制。协议流程一般是:申请传输历史数据—传送文件综合信息—根据文件大小分块—传输文件块—组合文件。不论是文件信息还是块内容都需要设置文件头和校验,传输时还需要考虑“粘包处理”。
表1 实时数据文件头Table 1 Header of real-time data transmission
2.2.3 HTTP 协议设计
客户端也可以通过浏览器来访问中心服务器,两者间使用标准的HTTP进行通信。客户端不能直接访问服务器,而必须通过WEB服务器中转。WEB服务器由微软的IIS(Internet信息服务)充当。IIS一方面作为客户端从中心服务器的缓存读取OPC数据,另一方面又作为WEB服务器响应WEB浏览器的HTTP请求。
AJAX全称为“Asynchronous JavaScript and XML”,是指一种创建交互式网页应用的网页开发技术。AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其他一些基于XML的Web Service接口,并在客户端采用JavaScript处理来自服务器的响应[9]。由于在服务器和浏览器之间交换的数据大量减少,应用的响应更快;同时,很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。使用AJAX定时请求Web服务器,并实现默认1 s/次的无闪烁数据更新。
3 监控系统设计
3.1 本地服务器的实时数据发送
如图3所示,本地服务器首先直接读取PLC的实时数据,然后通过因特网采用UDP协议将数据传送至中心服务器。为保证高效传输实时数据,服务器通过接收客户端发来的“心跳信息”来确定其是否在线,然后按指定的时间间隔不断地往客户端发送实时数据。由于“心跳信息”的发送频率远远没有实时数据的发送频率高,故可以减少客户端向服务器发送数据包的带宽。一般将发送“心跳”的时间间隔设置为20~120 s,而发送实时数据的间隔是0.5~2 s。不论用户是否已经真的收到了实时数据,本地服务器总是向在线用户列表中的主机定时发送。本地服务器界面如图4所示。
图4 本地服务器界面(模拟)Fig.4 Simulated interface of local server
3.2 中心服务器的在线项目维护
中心服务器必须位于有独立公网IP的专业服务器上,是实现盾构远程数据监控的核心部分[10]。本地服务器和远程客户端启动后,会尝试连接中心服务器,发送项目标识号和口令请求中心服务器的验证。验证通过后,本地服务器以一定的时间间隔不断地给中心服务器发送实时数据。中心服务器通过项目标识为索引在内存中建立多个项目的实时数据列表,其中包括本地服务器和远程客户端的IP地址和端口号。中心服务器定时遍历在线用户“心跳信息”,如果超过指定值,就认为该用户已经掉线,将其从在线用户列表中清除。如果有新的客户端登陆成功,则将其加入到在线用户列表。
盾构是定制性产品,其对应的监控系统界面是不完全相同的,要实现多台盾构集中监控和多用户访问,就要求系统的远程客户端界面不是一成不变的。为方便在尽可能不重新编译的情况下可以修改这些设置,采用配置文件的形式设计。
配置文件在客户端的显示方面有很大影响。配置文件保存的内容主要有页面元素属性、数据绑定关系、报警文本映射表等。不同的项目有不同的配置文件,但有相同的远程客户端程序。远程客户端要显示多个项目,就只能依赖配置文件来区分。远程客户端在连接中心服务器后,需首先请求要监控的项目的配置文件。配置文件传输过程见图5。
图5 配置文件的传输Fig.5 Transmission of configuration file
3.3 远程客户端的界面设计
如前所述,盾构的个性化设计导致的客户端界面设计的不确定性由配置文件解决。同一个客户端程序依赖不同的配置文件即可显示不同的界面。客户端程序相当于一个框架,根据页面元素属性配置文件中控件的位置、大小、字体、颜色等信息显示出相应的控件。控件显示成功之后,界面的数据实时更新用到了数据绑定技术。依据的数据来自一个数据绑定关系配置文件。数据绑定关系配置文件中保持的是控件名与OPC变量名、数据显示位的对应关系。简言之,界面先通过页面元素属性配置文件显示画面,再与数据绑定配置文件匹配定时更新数据值。远程客户端界面见图6(按设计要求和盾构操作界面相似)。
4 结论与讨论
该系统在大连地铁103标和201标等项目应用中取得了良好的效果,任意授权用户在验证用户名和密码后,通过安装简易客户端或者直接由WEB浏览器均可远程访问这2台盾构,查看盾构的即时参数、调阅历史数据曲线图和远程诊断PLC故障等,整个系统操作简易,界面友好。
基于互联网的盾构远程实时监控系统实现了多台盾构集中监控、多用户互联网访问和远程故障诊断等功能,经验证各项功能(实时界面显示、历史数据传输、账户管理)都满足设计要求,解决了大型施工单位多台盾构同时施工时技术人员不足的困难,提高了管理效率,节约了管理成本,具有很好的推广价值。
图6 远程客户端界面Fig.6 Interface of remote client
目前存在的问题有:1)数据传输受网络环境影响较大,大量历史数据集中传输耗时较多;2)对历史数据的后期处理现在仅做到了显示曲线图和数据表格,还可以根据需要进一步处理,有待于进一步的研究。
[1] 周文波,胡珉.盾构隧道信息化施工智能管理系统设计及应用[J].岩石力学与工程学报,2004(S2):460-465.(ZHOU Wenbo,HU Min.Design and application of intelligent management system of digitalized construction in a shield-driven tunnel[J].Chinese Journal of Rock Mechanics and Engineering,2004(S2):460 -465.(in Chinese))
[2] 沈立新.盾构实时远程监控系统技术[J].铁道建筑技术,2010(8):38 -42.(SHEN Lixin.A real-time vision system used for shield machine[J].Railway Construction Technology,2010(8):38 -42.(in Chinese))
[3] 高勇.基于WinCC盾构刀盘远程监控系统设计[J].电脑知识与技术,2011(18):208 -210.(GAO Yong.Remote monitoring system designs based on the WinCC shield cutter[J].Computer Knowledge and Technology,2011(18):208 -210.(in Chinese))
[4] 徐受天,蒲晓波.基于OPC的盾构地面数据采集和监视系统设计[J].隧道建设,2009,29(6):674 -677.(XU Shoutian,PU Xiaobo.Design of data acquisition and visualization system of shield machine based on OPC[J].Tunnel Construction,2009,29(6):674 -677.(in Chinese))
[5] 蒲晓波.西门子PLC在盾构控制系统检测试验台的应用[J].隧道建设,2009,29(1):132 - 134.(PU Xiaobo.Application of Siemens PLC in test-bed for shield machine control system[J].Tunnel Construction,2009,29(1):132 -134.(in Chinese))
[6] 张学武.对盾构法地铁隧道施工引起的地表变形探讨[J].建材与装饰:下旬刊,2008(6):312 -314.
[7] 李海涛,史爱松,孙更新.C#3.0从基础到项目实战[M].北京:化学工业出版社,2009:11-12.
[8] Siemens A G.SIMATIC NET工业通讯的 IT解决方案[K].新乡:中铁隧道集团设备制造有限公司,2002.
[9] 郭明磊.基于WEB的远程监控系统研究[D].沈阳:沈阳理工大学计算机应用技术专业,2009.
[10] 陈元谋,吴长奇.基于Socket的远程监控的通信系统实现[J].计算机安全,2011(3):63 -65.(CHEN Yuanmou,WU Changqi.Based on the Socket of remote monitoring communication system implementation[J].Computer Security,2011(3):63 -65.(in Chinese))