【御控物联】JSON结构数据转换在物联业务中应用(场景案例二)

文章目录

  • 一、物联网业务场景现状
  • 二、物联网业务场景数据交互格式
  • 三、JSON格式数据转换案例
  • 四、JSON数据格式转换DEMO
  • 五、在线转换工具
  • 六、技术资料

一、物联网业务场景现状

目前,市场上多数物联网关与物联平台捆绑售卖,网关采集到设备数据只能按照指定的协议和规定的数据格式传输到绑定的物联平台。

一旦用户想把不同厂家网关采集的设备数据上传至现在已经建设的物联平台,或者是想把现在已经使用网关的数据传输到不同厂家平台,都需要定制化开发。

定制化体现在两个方面,第一,协议定制化,市面上大部分网关都支持标准的MQTT协议,可实现快速的开发复制,甚至很多网关都集成了对外转发的各种协议,比如HTTP、WebSocket,只需简单配置即可实现协议的连接通讯。第二,数据格式定制化,这一方面是用户比较困扰的地方,大部分网关或平台与不同厂家的系统进行数据交互需要定制开发,当然现在市面上也有一分部网关或平台内置JS、Lua脚本编辑器,支持通过编写逻辑代码实现各种数据结构的转换,此方案更多面向技术人员,业务人员无法入手,而且执行效率比较低。

二、物联网业务场景数据交互格式

目前物联业务场景常采用二进制、XML、JSON方式进行数据传输。
二进制是一种轻量化的数据格式,结构简洁,占用网络带宽小,传输效率高,也是现在主要推广的数据传输方式,特别对采用SIM卡传输数据的场景,可以大大减少流量消耗,但是结构不够直观,可读性比较差。

XML(Extensible Markup Language,扩展标记语言)是一种“重量级”的数据交换格式,XML格式统一、语法要求严格,标准化程度和可读性都非常高,但占用存储空间大,网络传输慢,不太适合大数据量传输的场景。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,结构简洁,层次分明,解析起来更快,占用的存储空间少,网络传输也较快,是目前物联业务常用的数据交互格式。

本文针对物联业务JSON格式数据转换转化设计了一种面向业务人员的标准JS库,可实现不同厂家网关、不同平台之间任意JSON数据格式无缝转换。网关或物联平台集成JS库可实现JSON格式数据转换:数据源键(Key)->目标键(Key)、数据源键(Key)->目标值(Value)、数据源值(Value)->目标键(Key)、数据源值(Value)->目标值(Value)。
在这里插入图片描述

三、JSON格式数据转换案例

本文结合实际案例对JSON格式数据转换进行如下讲解。
案例概述:
某知名水泥公司现场有PLC、仪表类设备(水表、电表、气表)以及一套成熟的物联网平台,由于部分设备改造升级,采购了一批新的物联网关(御控),要求将改造设备数据通过新网关以原有物联平台要求的JSON数据格式上传,前提是不改动原有物联网平台的任何逻辑功能。

御控网关与PLC采用OPC UA方式进行通信,与仪表采用MODBUS协议进行通信,采集数据通过MQTT协议上传至物联网平台,由物联网平台进行数据存储和展示,逻辑图如下所示:
在这里插入图片描述
御控网关创建PLC和仪表设备监控点表(属性)->配置JSON格式转化->配置MQTT转发信息->物联网平台。

御控网关根据PLC、仪表设备检测点维护点表信息,包含名称、数据类型、点位标识、采集方式、采集周期等。
在这里插入图片描述
御控网关通过界面维护与水泥厂原有物联网云平台进行MQTT连接的信息,包括IP、端口、用户名、密码等信息。

御控网关集成JSON数据格式转化库,实现数据编码和数据解码两种功能。其中数据编码将网关内部采集的数据按照物联网平台要求的JSON数据格式进行转换,上传至平台。数据解码可以将物联网平台下发的JSON格式指令进行反向解析,转换为网关支持的JSON数据,实现物联网平台对网关的反向控制。
在这里插入图片描述
其中御控网关采集PLC点表上传的数据格式为:
在这里插入图片描述
水泥厂物联网平台接受的数据格式为:
在这里插入图片描述
通过数据转换将御控网关上传的“设备编码”、“设备属性值”、“时间戳”分别通过数据源键(Key)->目标值(Value)、数据源值(Value)->目标值(Value)两种映射关系实现了数据转化,转化结果如下所示:
在这里插入图片描述
通过JSON数据格式转化JS库可方便业务人员快速搭建各业务场景的数据映射,特别适用于不同厂家网关和不同厂家物联网平台的解耦和数据交互,减少业务定制,降低开发成本。

四、JSON数据格式转换DEMO

为了更直观体现JSON数据格式转化的功能,特此针对以上场景做了一套转化工具,以下为DEMO展示。

在这里插入图片描述

五、在线转换工具

为了让使用者更加方便的配置出映射关系,为此开发了一套在线转换工具,可在工具中通过拖拽即可配置想要的结构转换关系,并可对转换关系所能实现的效果实时进行预览更改。

工具地址:数据转换工具

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

六、技术资料

  • Github:edq-ebara/data-transformation-javascript: 数据转化(javascript) (github.com)
  • 技术探讨QQ群:775932762
  • 工具连接:数据转换工具
  • 御控官网:https://www.yu-con.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/585921.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

政安晨:【Keras机器学习实践要点】(十四)—— 使用 Keras3 进行分布式训练

目录 简介 工作原理 设置 设备网格和张量布局 分发 数据并行 ModelParallel 和 LayoutMap 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益,如有不足之处…

实现一个Google身份验证代替短信验证

最近才知道公司还在做国外的业务,要实现一个登陆辅助验证系统。咱们国内是用手机短信做验证,当然 这个google身份验证只是一个辅助验证登陆方式。看一下演示 看到了嘛。 手机下载一个谷歌身份验证器就可以 。 谷歌身份验证器,我本身是一个基…

sap 实施商

领导者象限中的三巨头   德勤、埃森哲、IBM,这三家公司行业从业者基本都知道,三巨头在国内的实力也是挺强的。 领导者象限中的四朵花 四朵花: 凯捷,塔塔咨询,安永,普华永道(Pwc) 国内本土公司&…

【Linux】动态库与静态库

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.为什么要有库&…

电脑分辨率怎么调,电脑分辨率怎么调整

随着电脑的普及以及网络的发展,我们现在在工作中都离不开对电脑的使用,今天小编教大家设置电脑分辨率,现在我们先了解这个分辨率是什么?通常电脑的显示分辨率就是屏幕分辨率,显示屏大小固定时,显示分辨率越高图像越清…

EVM Layer2 主流解决方案

深度解析主流 EVM Layer 2 解决方案:zk Rollups 和 Optimistic Rollups 随着以太坊网络的不断演进和 DeFi 生态系统的迅速增长,以太坊 Layer 2 解决方案日益受到关注。 其中,zk Rollups 和 Optimistic Rollups 作为两种备受瞩目的主流 EVM&…

ubuntu18.04 pycharm

一、下载pycharm (1)进入官网下载Download PyCharm: The Python IDE for data science and web development by JetBrains 选择专业版(professional)直接点击下载(download),我下载的是2023.3…

设计模式7--建造者模式

定义 案例一 案例二 优缺点

nodejs基础学习(一)

nodejs逆向python爬虫学习笔记 第一章 nodejs基础 nodejs基础 nodejs逆向python爬虫学习笔记开发环境vscodeF5运行注释js逆向作用变量**1、var全局**2、let块级作用域: {} if while for。。。等等循环中使用3、const 块级作用域,常量,不可以修改/重新定…

智慧公厕四大核心能力,赋能城市公共厕所智能化升级

公共厕所是城市基础设施中不可或缺的一部分,但由于传统的公共厕所在建设与规划上,存在一定的局限性,导致环境卫生差、管理难度大、使用体验不佳等问题,给市民带来了很多不便。而智慧公厕作为城市智能化建设的重要组成部分&#xf…

ElMessage自定义样式

ElMessage自定义样式 默认样式 从顶部出现,3 秒后自动消失。 常用于主动操作后的反馈提示。 import { ElMessage } from element-plusElMessage.success({message: res.data.msg,duration: 300,style: {marginTop: 200px,// 设置提示框的宽度width: 500px, // 设置…

STM32学习和实践笔记(4): 分析和理解GPIO_InitTypeDef GPIO_InitStructure (a)

深入分析及学习一下上面这一段代码的构成与含义。 首先,这个GPIO_InitTypeDef GPIO_InitStructure;其实与int a 是完全类似的语法格式以及含义。 GPIO_InitStructure就相当于a这样一个变量。不过从这个变量的名字可以知道,这是一个用于GPIO初始化的结构…