异步响应式集群实时监控系统设计异步响应式集群实时监控系统设计
针对传统模式DCS的监控系统无法满足高并发请求的性能要求以及投资过大等问题,使用低价的树莓派嵌入式
计算机、异步非阻塞服务器平台Node.js和集群技术设计全新的过程监控系统,以满足工业监控高性能需求。
0 引言引言
大型的工业过程监控系统一般都采用分布式控制系统(Distributed Control System,DCS
[1]
)模式,上位控制主机和下位机
都采用价格高昂的工业控制计算机。监控系统的软件通常选用专门的组态软件,这些软件价格不菲,导致系统投资过大,增加
了企业的经济负担。当系统性能难以满足实时性需求,需进行系统的升级改造时,原有主机基本被淘汰,造成极大的浪费。
如何用最少的投资实现超高性能,以满足工业过程控制的实时性要求,是当今所有监控系统设计的终极目标。
树莓派
[2]
的出现以及性能的不断提升,在硬件上为实现低成本监控系统提供了可能。尤其是最新推出的树莓派第2代B型,
配置了ARM结构的Cortex-A7 64位4核处理器及1 GB内存,单价在200元以内,配置16 GB存储卡,散热器和金属外壳也不超
过300元,性能比原有B型提升6倍,其使用Debain Linux操作系统,可运行大部分Linux应用程序。
软件方面,使用传统的多进程和多线程软件技术无法满足当今应用面临高并发请求和实时性能要求,全新的
[3]
服务器平台技
术应运而生。
Node.js采用了全新的单线程、非阻塞和
[4]
,能在使用很少内存的情况下,高性能处理超大量的客户并发请求,完美解决了
传统软件技术难以逾越的C10K+问题。
Node.js支持多种集群技术
[5]
,可简单地实现横向和纵向伸缩技术,能适应超大规模应用的需求。
本文将树莓派与Node.js结合,并利用Node.js的集群技术,完美实现了一个超低成本、高性能的全新模式的集群式过程监控
系统,并在大连高新园区广源热力有限公司供热管网监控中实施。
1 系统总体架构设计系统总体架构设计
为减少系统的投资,此监控系统集群中的主机没有使用传统的工业控制计算机,均采用树莓派第2代B型,使用其Linux操作
系统,安装Node.js,构成如图1所示的过程监控系统。为提高系统的可靠性和高性能,系统采用分层的架构。
现场数据采集层依然使用传统的PLC完成,采用西门子S7-300实现对供热管网温度、压力和流量的监测。
数据采集传输层采用多块树莓派构成集群,通过TCP协议实时读取PLC的数据,并使用socket.io模块将数据实时推送到客户
端的Web页面上。
监控数据的显示层使用高性能的Nginx
[6]
发布HTML页面和JavaScript代码到客户端浏览器上。浏览器的JavaScript利用
socket.io客户端直接接收数据采集层推送的监测数据,并集成jQuery框架技术显示在Web页面的指定位置。由于使用了