从 Modbus 到 Web 数据可视化之 WebSocket 实时消息

 前言

  工业物联网是一个范围很大的概念,本文从数据可视化的角度介绍了一个最小化的工业物联网平台,从 Modbus 数据采集到前端数据可视化呈现的基本实现思路。这里面主要涉及基于 Modbus 通讯规约的数据采集、后台实时数据处理、前端实时数据接收、前端实时数据可视化显示。物联网平台架构主要参考了

 

一、物联网平台架构

  物联网平台主要是B/S模式,工业物联网平台大都采用的是微服务架构,本文主要涉及两个微服务:前置数据采集服务和 Web 实时消息推送服务。

  前置数据采集服务主要用于现场设备、仪器、仪表、传感器实时数据的采集,IoTopo工业物联网平台支持MQTT和透传云解析两种方式,透传云解析支持 Modbus 通讯规约。

  实时数据采集到平台后,需要推送到浏览器端进行显示,Web 实时消息推送服务采用 Web Socket 进行实时数据推送,可以确保数据的实时性和高效性。

 

  前端可视化技术采用的是

 

三、将实时数据推送到 Web 前端

  基于 Web 的实时数据推送需要用到 

1 const matchWildcard = function(str, rule) { 2     return new RegExp('^' + rule.split('*').join('.*') + '$').test(str) 3 }
复制代码

  WebSocket 客户端,支持消息主题订阅、取消消息主题订阅、同一个消息主题支持多个订阅者:

复制代码
  1 class WebSocketClient {   2     constructor() {   3         this.ws = null   4         this.opts = {   5             debug: false,   6             autoReconnect: true,   7             reconnectInterval: 10000,   8             subscriber: {},   9         }  10         this.opened = false  11     }  12   13     connect() {  14         if (!this.opened) {  15             return  16         }  17   18         const url = 'ws://www.iotopo.com/msg/v1'  19         console.debug('websocket connect', url)  20   21         let ws = this.ws = new WebSocket(url)  22         ws.onmessage = event => {  23             if (this.opts.debug) {  24                 console.log(event)  25             }  26             let data = JSON.parse(event.data)  27   28             for (let topic in this.opts.subscriber) {  29                 if
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信