收藏 分享(赏)

websocket技术在工业设备数据实时监测中的应用.doc

上传人:无敌 文档编号:145100 上传时间:2018-03-22 格式:DOC 页数:9 大小:95KB
下载 相关 举报
websocket技术在工业设备数据实时监测中的应用.doc_第1页
第1页 / 共9页
websocket技术在工业设备数据实时监测中的应用.doc_第2页
第2页 / 共9页
websocket技术在工业设备数据实时监测中的应用.doc_第3页
第3页 / 共9页
websocket技术在工业设备数据实时监测中的应用.doc_第4页
第4页 / 共9页
websocket技术在工业设备数据实时监测中的应用.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、WebSocket 技术在工业设备数据实时监测中的应用 张文 牟艳 高振兴 刘志丰 河海大学物联网工程学院 摘 要: 为了保证工业设备生产的安全性, 在生产过程中要实时监测生产设备的参数变化, 对通信的实时性要求较高。由于传统的通信方式性能较低, 而且不能实现真正的实时通信, 所以提出在工业设备数据实时监测中采用 WebSocket 技术作为实时通信的方案。通过 WebSocket 技术将服务端采集的数据实时推送到客户端, 完成数据在客户端的实时展示。实验验证了此种方式可以达到较高的实时性, 满足系统的需求。关键词: WebSocket 技术; 工业设备; 实时监测; 实时通信; 服务端推送;

2、 作者简介:张文 (1992-) , 男, 山东巨野人, 河海大学物联网工程学院硕士研究生, 研究方向:智能信息处理, 软件工程;作者简介:牟艳 (1963-) , 女, 江苏常州人, 高级工程师, 研究方向:智能信息处理, 软件工程。收稿日期:2017-03-21Application of WebSocket in Real-time Monitoring of Industrial Equipment DataZHANG Wen MU Yan GAO Zhen-xing LIU Zhi-feng College of Internet of Things Engineering, Hoh

3、ai University; Abstract: In order to ensure the safety of the production of industrial equipment, it is necessary to monitor the change of production equipment parameters in real time.Due to the low performance of the traditional communication mode which can not achieve real-time communication, we p

4、ropose to use WebSocket as the real-time communication in the real-time monitoring of industrial equipment data.The data collected by the server is pushed to the client in real time through the WebSocket.The practical application shows that this method can achieve high real-time performance and meet

5、 the requirements of the system.Keyword: WebSocket; industrial equipment; real-time monitoring; real-time communication; server push; Received: 2017-03-210 引言为了满足现代化工厂对生产实时监测的要求, 提出了许多实时通信的解决方案1。远程实时监测系统可以使用计算机网络远程监测生产设备, 这种不受空间与时间的限制, 大幅度提升了数据安全性和生产设备运行效率的监测方式有更加广阔的应用前景。在工业生产领域, 对生产进行实时监测, 是为了保证生产的

6、安全性和高效性2-3。传统的通信方案都是采用 HTTP 协议进行实时通信, 比如 HTTP 轮询和 HTTP 长连接技术。但这 2 种方式并没有实现真正的实时通信, 只是不断向服务器发送请求, 本质上是通过 HTTP 请求向数据库查询数据。如果客户端比较多, 请求的次数就会增加, 给服务器造成很大的压力, 而且也不能很好地保证数据的实时性。基于此, HTML5 规范中定义了 Web Socket 协议来实现真正的实时通信。本文将Web Socket 技术应用在工业设备数据实时监测中, 通过服务器将数据推送到客户端, 实现真正的实时监测。1 工业设备数据监测的传统解决方式工业设备数据的采集通过

7、PLC、传感器等方式获取, 通过 OPC (OLE for Process Control) 编程技术4将获取的数据读取出来, 并将读取的数据存储到数据库中。传统的通信方式是通过轮询方式不断地向服务器发送请求, 但如果请求时间间隔太短, 将会给服务器造成巨大的压力, 如果时间间隔太长, 又不能保证数据的实时性。为了改进这种通信方式, 提出了 Ajax 长轮询方式, 浏览器采用 Ajax 向服务器发送请求, 服务器如果没有信息推送给浏览器, 则一直保持这个连接, 直到有数据返回。浏览器接收到消息后, 会再次发出请求, 循环往复地执行。但是如果服务器端数据频繁推送时, 此种方式与轮询就没有区别了。

8、通信的另一种方式是采用 Iframe 流实现长连接。在页面中嵌入一个Iframe 标签, 通过此标签向服务器发送请求。但是当 Iframe 正在传输很大的数据时, 不同的浏览器会有不同的响应, 有的浏览器可以正常响应其他的操作, 有的浏览器会出现卡死现象。这是因为 Iframe 会阻塞页面的加载, 虽然可以通过添加插件的方式解决此问题5-7, 但是此种方式不具有通用性。针对工业系统中的实时预警监控和实时信息发布, 上述 2 种方案并不能很好地解决实时通信的问题, 并且还会造成带宽资源的浪费, 增加服务器的负担。2 Web Socket 原理Web Socket 是 HTML5 中定义的一种协议

9、, 通信方式采用全双工通信, 全双工通信指的是通信双方可以互相发送消息。Web Socket 协议是基于 TCP 协议的, 所以要想通过 Web Socket 通信, 首先浏览器和服务器之间要建立连接8-11。浏览器通过 HTTP 向服务器发出建立连接的请求, 请求中包含 3 个重要的字段:Upgrade, Connection 和 Sec-Web Socket-Key。Upgrade 字段值为 Web Socket, 表示将协议升级为 WebSocket。Connection 的字段值为 Upgrade, 告知服务器当前的请求连接是升级的。Sec-Web Socket-Key 的字段值为随机

10、产生的字符串, 这个字符串用于服务端校验。服务器收到请求后, 升级协议, 解析请求头并将Sec-Web Socket-Key 和全局标识符合并, 经过编码重新生成一个字符串, 将这个字符串赋值给 Sec-WebSocket-Accept, 并返回响应给浏览器。浏览器验证通过后, Web Socket 连接成功建立起来12-13。图 1 为浏览器和服务器的连接过程图。Web Socket 使用了自定义的协议, 所以 URL 模式也有所不同, 未加密的连接不再是 http:/, 而是 ws:/;加密的连接也不是 https:/, 而是 wss:/。使用自定义协议的好处是, 能够在客户端和服务器之间

11、发送非常少的数据, 而不必担心 HTTP 那样字节级的开销14-15。图 1 Web Socket 连接过程示意图 下载原图3 基于 Web Socket 的工业设备数据实时监测解决方案目前, HTML5 Web Socket 是推动 Web 全双工实时通信的主要机制。采用 Web Socket 技术, 浏览器和服务器双方都可以向对方发送消息, 完成消息的实时传输16。因此, 在工业设备数据实时监测中, WebSocket 完全满足此项需求, 可以很好地解决实时通信的问题。3.1 工业设备数据实时监测原理图 2 为基于 Web Socket 的工业设备监测系统结构图。工业设备数据的采集主要是采

12、集工业现场的 PLC、各种传感器、设备或仪表的数据。Web 服务器是一个业务服务器, 通过业务管理模块将要采集的设备参数信息保存到业务数据库中, OPC 网关在获取数据时, 先从 Web 服务器中获取参数, 根据配置的参数信息采集相应的数据。将采集的数据分别发送到 Web Socket 服务器和云存储服务器中。Web Socket 服务器负责实时数据的监听和推送, 客户端与 WebSocket 服务器建立连接后, Web Socket 服务器将数据实时传送给客户端, 以便实时监测数据和接收报警信息。云存储服务器用于保存实时获取的数据, 以便客户端查询历史数据。图 2 基于 Web Socket

13、 的工业设备监测系统结构图 下载原图3.2 Web Socket 实时通信方案由于 Web Socket 的服务端要与 OPC 进行通信, 所以 Web Socket 服务端程序采用基于.NET 的方式来实现。Super Web Socket 是基于.NET 开源 Socket 框架Super Socket 开发的17-18, 可以通过 Super Web Socket 来快速构建可靠的、高性能的 Web Socket 服务端程序。3.2.1 通信流程通信的总体流程为:客户端向服务端请求建立连接, 经过握手建立连接后, 客户端向服务器发送消息, 服务端收到客户端的信息后, 解析用户传送的消息并

14、注册用户的信息, 根据用户的信息去服务器中查询要监听的设备, 将要监听的设备信息传送给 OPC, 通过 OPC 获取数据, 将获取的数据推送给客户端, 客户端收到服务端的消息, 解析信息并在客户端实时展示。3.2.2 服务器端通信方案服务器端数据通信过程如图 3 所示。具体描述为, Web Socket 服务器启动时首先会执行以下代码:Web Socket Server m Server=new Web Socket Server () ;/建立一个 Web Socket 对象m Server.Sutup (1234) ;/设置要监听的端口m Server.start () ;/启动服务器客户

15、端连接服务器时, 会发送用户消息, 收到消息后会触发 New MessageReceived 事件, 在该事件内注册用户的会话信息, 根据获取的用户信息去 Web 服务器中查询该用户要监测的设备, 将获取的信息传送给 OPC, OPC 获取要监测的设备后读取设备数据, 将读取的数据通过 session 的 Send 方法将信息推送给客户端。核心代码如下:m Server.New MessageReceived+= (session, message) =Regist User Session (session.Session ID) ;/通过 session 的 Send () 方法返回ses

16、sion.Send (Json Convert.Serialize Object (Data List) ) ;当连接断开的时候会触发 Session Closed 事件, 在此方法中移除该客户端的会话信息。核心代码如下:m Server.Session Closed+= (session, reason) do UnRegist By Session ID (session.Session ID) ;图 3 服务器端数据通信流程图 下载原图3.2.3 客户端通信方案客户端数据通信过程如图 4 所示。客户端是指各种设备上的浏览器, 通过HTML5 定义的 Web Socket Java Scr

17、ipt API 来向服务器发送请求, 核心代码如下:var ws=new Web Socket (“ws:/223.68.161.138:1234/ws Connect”) ;ws.onopen=function () ws.send (user) ws.onmessage=function (event) /接收服务器推送的消息ws.onclose=function (event) /接收到服务器发来的关闭连接请求时触发ws.onerror=function (event) /当发生错误时触发客户端向服务器发送连接请求, 当连接成功后触发 onopen 事件, 在此事件中发送用户的信息, 服

18、务器根据用户的信息查询要监测的设备。当服务器返回消息的时候, 将触发 onmessage 事件, 通过 event 获取服务器推送的消息, 在客户端进行实时展示。图 4 客户端数据通信流程图 下载原图3.3 客户端数据展示实现客户端展示可以使用移动终端和 PC 端进行展示, 使用客户端的浏览器即可实现数据的实时监测。通过这种方式避免经常刷新页面产生的页面抖动, 提升了用户的体验。图 5 为移动终端上弯管机的监测界面。图 5 移动端监测界面 下载原图4 实验方案设计本实验是对 Ajax 长轮询方案和 Web Socket 方案进行性能对比, 通过这 2 种方案分别实现数据的实时通信功能。实验从网

19、络流量、系统的吞吐量和并发访问量等几个方面讨论系统的性能。4.1 实验环境搭建在服务器上安装一个组态王软件, 在组态王软件上模拟建立 PLC, 在组态王上新建几个数据词典, 并关联 PLC。采集数据包括弯管机的滚轮转速、油缸推进速度、弯曲半径、电压和电流。服务器和客户端的硬件配置信息如表 1 所示。为了保证网络的稳定性, 服务器和客户端在同一个局域网下。表 1 服务器和客户端的硬件配置信息表 下载原表 4.2 实验结果对比分析4.2.1 网络流量负载测试网络流量是评估一个系统性能的主要参数, 每次传输的数据越少, 网络流量就越小, 可以减少带宽的占用, 减轻服务器的压力19-20。用户的数量并

20、不影响此性能的分析, 所以采用一个用户发送同一个请求来查看不同方案下的网络流量, 这样可以保证传输的数据量是相同的。当接收的数据量相同时, 2 种方案产生的流量结果如表 2 所示。表 2 2 种方案的流量统计表 下载原表 数据是通过 Mozilla Firefox 浏览器的 Firebug 获取的, Ajax 方案接收的数据比 Web Socket 方案接收的数据要大很多的原因是由于 Ajax 方案是通过 HTTP 请求的方式获取数据, 接收数据的大小包括 HTTP 请求头和响应头以及服务器传送的实际数据的大小, 而 HTTP 协议的请求头和响应头数据比 Web Socket 协议的数据要大很

21、多。流量对比如图 6 所示。图 6 流量对比图 下载原图4.2.2 系统的吞吐量和并发访问量测试系统的吞吐量和并发访问量可以采用 Apache 组织的开源项目 JMeter 来实现。JMeter 做性能测试主要是通过增加线程数或者设置循环次数来增加并发用户, 可以测试服务器的受压能力分析在不同的负载下的总体性能。表 3 为 Ajax 的轮询聚合报告。样本数=线程总数循环次数, 本次实验选择的样本数分别为 20, 50, 100, 300, 500。这是考虑到 Tomcat 服务器可以处理的最大连接数来选取的。从表中可以看出, 随着样本数的增加, 服务器的平均响应时间随之增加, 服务器的吞吐量在

22、一定的范围内是增加的, 但是当样本超过了一定的数量就开始减少, 这是因为随着服务器的响应时间增加, 拉低了服务器的吞吐量。随着样本数到达一定的范围, 将会产生数据的丢失, 不能保证数据的完整性。表 3 Ajax 轮询方案聚合报告 下载原表 表 4 为 Web Socket 方案的聚合报告, 从表中可以看出, 服务器端的平均响应时间明显比 Ajax 轮询方案的要低, 而且服务器的吞吐量相对也要比 Ajax 轮询要高。使用 Web Socket 方案服务器的各项性能有所提升。这是因为使用 Web Socket 协议进行通信请求头和响应头的数据相对来说比较少, 每次请求传输的数据就比较少, 在相同的

23、服务器资源下, 可以处理更多的请求, 通信效率也会提高, 并发访问量相对 Ajax 轮询方案有明显的提升。表 4 Web Socket 方案聚合报告 下载原表 图 7 对比了 Web Socket 方案和 Ajax 轮询方案的服务器的吞吐量。从图中可以看出 Ajax 轮询方案的服务器吞吐量没有 Web Socket 方案的高, 而且WebSocket 方案的吞吐量相对来说比较稳定, 而 Ajax 轮询方案有一些起伏。总的来说 Web Scoket 方案的服务器性能是优于 Ajax 轮询方案的。图 7 Web Socket 和 Ajax 轮询吞吐量对比图 下载原图5 结束语本文讨论了传统的 Aj

24、ax 长轮询方式和 Iframe 流的方式在系统实时通信中存在的不足, 因此提出了基于 Web Socket 工业设备实时监测通信的新方案, WebSocket 采用自定义协议, 每次传输的数据包很小, 降低了网络开销。该方案已成功应用于工业设备数据的实时监测中, 达到了预期的要求, 证明了方案的可行性, 同时为 Web Socket 技术在工业数据监测中的应用提供了可借鉴的解决方案。参考文献1周奇才, 朱清, 赵炯, 等.大型设备远程监测系统的实时通信设计J.机电一体化, 2016, 22 (2) :41-44. 2贾召喜.基于工业物联网的生产线远程监控系统研究D.天津:河北工业大学, 20

25、15. 3张川, 蔡其星.基于智能移动终端的工厂监控系统设计与实现J.工业控制计算机, 2014, 27 (1) :5-6. 4张宁, 薛士龙, 陈加敏, 等.基于 OPC 技术的自动化集装箱码头监控系统设计J.上海海海事大学学报, 2011, 32 (1) :21-24. 5唐昭琳, 顾林.基于 Ajax 长轮询技术的在线答疑系统设计J.广西科学院学报, 2013, 29 (1) :40-42. 6文爱平, 文德民.基于 IE 浏览器的 Ajax Comet 架构J.电脑知识与技术, 2010, 6 (17) :4646-4648. 7戚永军, 翟智平, 耿娟平.基于 Comet 的 Web

26、 即时通讯系统设计与实现J.计算机科学, 2012, 39 (S2) :77-79. 8张信.基于 Websocket 信息推送的研究与实现J.科学与财富, 2014 (3) :127-128. 9吕海东.基于 WebSocket 的实时 Web 监控系统J.工业控制计算机, 2014, 27 (6) :82-83. 10郑玲, 郑晓天.基于 WebSocket 的电力系统实时数据更新研究J.计算机与现代化, 2013 (1) :85-87. 11Lubbers P, Greco F.HTML5 WebSockets:A Quantum Leap in Scalability for the

27、WebDB/OL.http:/frankgreco.sys- 2010-03-11. 12李锡辉, 杨丽.基于 WebSocket 的服务器推送技术研究J.网络安全技术与应用, 2014 (6) :45-46. 13杨建业, 耿建平.基于 HTML5 的实时 Web 数据监测系统J.桂林电子科技大学学报, 2015, 35 (2) :136-141. 14陆晨, 冯向阳, 苏厚勤.HTML5 WebSocket 握手协议的研究与实现J.计算机应用与软件, 2015, 32 (1) :128-131. 15齐华, 李佳, 刘军.基于 Websocket 的消息实时推送设计与实现J.微处理机, 2

28、016, 37 (3) :36-39. 16张艺.基于 WebSocket 的即时通信系统研究与实现J.软件, 2015, 36 (3) :89-94. 17黄娟.基于 C#的 OPC 数据通信的设计与实现J.工业控制计算机, 2013, 26 (11) :14-15. 18刘敏.KEPServer 在 PLC 和 VB.NET 通讯中的应用J.大众科技, 2012, 14 (7) :42-45. 19周建群, 李千目.面向泵站远程监控的 Push 技术设计J.计算机技术与发展, 2015, 25 (9) :164-168. 20易仁伟.基于 WebSocket 的实时 Web 应用的研究D.武汉:武汉理工大学, 2013.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报