【御控物联】 IOT异构数据JSON转化(场景案例一)

文章目录

  • 前言
  • 技术资料


前言

随着物联网、大数据、智能制造技术的不断发展,越来越多的企业正在进行工厂的智能化转型升级。转型升级第一步往往是设备的智能化改造,助力设备数据快速上云,实现设备数据共享和场景互联。然而,在生产过程中会通过多种数据采集方式产生大量的数据,由于设备的供应商不同,不同的智能设备可能包括不同的数据类型、格式和通信协议等问题,导致智能工厂中设备之间难以互联互通。

1. 多源异构数据来源

工厂中的多源异构数据来自制造资源生产过程中产生的数据,其主要分为两个方面,分别是设备在生产过程中产生的数据和其他制造资源通过数据采集系统产生的数据。
工厂中设备通过加装传感器具备对自身的状态数据感知能力,如数控设备,可以通过内置传感器获取刀具信息、加工信息、故障信息等,并能够对外提供相关数据,实现信息的交互。
然而,不同厂家设备遵循各自的数据标准和通信标准,缺乏统一的标准,使得工厂对多种数据类型和通信协议下的多源异构数据的采集、解码(对外转发数据泛化处理)、编码(内部数据标准化处理)变得十分困难。

2. 多源异构数据感知现状

在复杂的生产环境下,智能工厂边缘侧面临着多源异构数据感知的问题。多源异构数据感知指的是从不同类型的设备或数据采集系统中收集数据,并整合数据。其难点在于多源异构数据的获取和数据的统一化表示。因此,多源异构数据的感知需要通过多种通信协议访问设备或数据采集系统获取数据,并通过标准的数据格式进行表达。

数据感知过程分为两个阶段,分别是数据采集和数据整合。

数据采集阶段将智能工厂边缘侧制造资源通过多种通信协议建立数据连接,在这方面,边缘网关、数据中间件都能够很好的完成数据采集。

数据整合负责将边缘网关、数据中间件上传的数据进行解码(数据格式标准化),然后,再根据不同的数据格式需求进行编码(泛化),实现与工厂业务系统(MES、WMS、等)、物联网平台(阿里、华为、百度、等)的数据对接。在这方面大部分平台通过集成JS(JavaScript)、Lua等脚本解析器,技术人员编写代码实现数据格式转化,不利于业务人员使用。
3. 多源异构数据交互格式现状
通过数采单元获取的设备数据上传至物联平台或业务系统常采用二进制、XML、JSON方式进行传输。

二进制是一种轻量化的数据交互格式,结构简洁,占用网络带宽小,传输效率高,但是不够直观。

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

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

本文针对JSON格式的异构数据转化提出了一种面向业务人员转化工具,通过此工具可实现各类JSON数据格式互转,包括数据源键(Key)->目标键(Key) 、数据源键(Key)->目标值(Value) 、数据源值(Value)->目标键(Key)、数据源值(Value)->目标值(Value)。
4. 应用案例
本文结合实际实际案例对JSON数据转化进行讲解。
4.1接入配置
通过御控网关采用MODBUS协议实现PLC数据采集,然后将数据上传至华为云IOT平台,实现数据存储和监控,逻辑图如下:

在这里插入图片描述

华为云平台:创建产品->维护物模型(服务+属性)->注册设备->保存MQTT接入密钥

在这里插入图片描述
御控网关:创建PLC设备监控点表(属性)->配置JSON格式转化->配置MQTT转发信息->华为云IOT平台监控。

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

御控网关支持数据编码和数据解码两种功能,其中数据编码可以实现将网关封装的标准JSON数据通过映射关系,将转化后的数据发送给华为云平台;数据解码可以将华为云下发的控制指令通过反向映射将JSON数据转化成网关内置标准的JSON。

在这里插入图片描述
4.2数据转化
其中御控网关采集PLC点表上传的数据格式为:
在这里插入图片描述
华为云平台接受的数据格式为:

在这里插入图片描述
通过JSON数据转化中间件将御控网关上传的“设备编码”、“设备属性值”分别通过数据源键(Key)->目标值(Value)、数据源值(Value)->目标值(Value)两种映射关系实现了数据转化,转化结果如下:

在这里插入图片描述
进入华为云平台查看设备实时监控数据,内容如下:

在这里插入图片描述
在这里插入图片描述
结语
通过JSON数据格式转化工具可方便业务人员快速搭建各业务场景的数据映射,特别适用于物联网网关将数据上传至智能工厂各个业务系统,也支持智能工厂业务系统之间进行数据格式互转的场景,减少业务定制,降低开发成本。
为了更直观体现JSON数据格式转化的功能,特此针对以上场景做了以下DEMO展示。

在这里插入图片描述

技术资料

  • Github:edq-ebara/data-transformation-javascript: 数据转化(javascript) (github.com)
  • 技术探讨QQ群:775932762
  • 工具连接:数据转换工具

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

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

相关文章

爬虫逆向实战(38)-某空气质量平台(反调试,AES,DES,MD5)

一、数据接口分析 主页地址:某空气质量平台 1、抓包 (1) 反调试 该网站对鼠标右击以及F12进行了监听并拦截 虽然该网站无法打开Chrome控制台,导致我们无法抓包,但是道高一尺魔高一丈。既然我们无法在打开该网站的时候打开Chrome控制台&…

高架学习笔记之UML图概要

目录 零、什么是UML图 一、类图 二、对象图 三、构件图 四、部署图 五、制品图 六、包图 七、组合结构图 八、用例图 九、序列图 十、通信图 十一、状态图 十二、活动图 十三、定时图 十四、交互概览图 零、什么是UML图 统一建模语言(Unified Modeli…

【Qt】:坐标

坐标 一.常用快捷键二.使用帮助文档三.Qt坐标体系1.理论2.代码 一.常用快捷键 注释:ctrl / • 运⾏:ctrl R • 编译:ctrl B • 字体缩放:ctrl ⿏标滑轮 • 查找:ctrl F • 整⾏移动:ctrl shift ⬆/…

protobuf学习笔记(二):结合grpc生成客户端和服务端

上一篇文章大概讲了如何将自定义的protobuf类型的message转换成相应的go文件,这次就结合grpc写一个比较认真的客户端和服务器端例子 一、项目结构 client存放rpc服务的客户端文件 server存放rpc服务的服务端文件 protobuf存放自定义的proto文件 grpc存放生成的g…

代码随想录训练营Day36:● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

435. 无重叠区间 题目链接 https://leetcode.cn/problems/non-overlapping-intervals/description/ 题目描述 思路 直接统计重叠区间的个数,就是需要删除的个数 public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,b)-> Intege…

【电子取证篇】哈希校验值的变与不变

【电子取证篇】哈希校验值的变与不变 哈希值(散列值)是针对电子数据内容来计算的,内容变则哈希变;但计算对象的文件名、文件时间等属性改变不会影响散列值!!!—【蘇小沐】 (一&…

点点数据K参数加密逆向分析(RPC方案跟加密算法还原)

文章目录 1. 写在前面2. 接口分析3. 断点分析4. RPC调用5. 算法还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长…

【论文通读】UFO:A UI-Focused Agent for Windows OS Interaction

UFO:A UI-Focused Agent for Windows OS Interaction 前言AbstractMotivationMethodsExperimentConclusion 前言 Windows客户端第一个JARVIS,利用GPT4 Vision识别截图信息辅助智能体自动化执行操作,作为微软大肆宣传的一篇工作,其…

什么是齐纳二极管?齐纳二极管1SMB5944BT3G参数详解+应用方案

关于齐纳二极管基本知识: 齐纳二极管,又称稳压二极管。利用PN结的反向击穿状态,电流变化范围大,电压基本不变。制作了具有稳压功能的二极管。这种二极管是一个高电阻半导体器件,直到临界反向击穿电压。在这个临界击穿…

如何将Maven与TestNG集成

我们已经讨论了如何在maven中执行单元测试用例,但那些是JUnit测试用例,而不是TestNG。当maven使用“mvn test”命令进入测试阶段时,这些用例被执行。 本文将介绍如何将Maven与TestNG集成,并在maven进入测试阶段时执行TestNG测试。…

【数据结构】树tree

树的遍历 广度遍历Breadth-first traversal Breadth-first traversal is the traversal strategy used in the binary tree.Breadth first traversal, also known as level order traversal is the traversal strategy used in a binary tree. It involves visiting all the …

《HelloGitHub》第 96 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …

ZYNQ学习之Ubuntu下Linux文件系统与用户权限

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Linux 文件系统 1.1 Linux 文件系统简介以及类型 操作系统的基本功能之一就是文件管…

JavaScript练手小技巧:仿米哈游官网人物跟随鼠标位移效果

最近&#xff0c;有同学找到我&#xff0c;说&#xff1a;老师&#xff0c;我想模仿米哈游官网。 我说&#xff1a;可以&#xff0c;很不错的。 她说&#xff1a;有些效果有点难&#xff0c;能不能帮我看下。 于是&#xff0c;我就简单大概粗糙的讲解了下大致的原理&#xf…

2024 ccfcsp认证打卡 2022 06 01 归一化处理

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 输入数字的个数int[] a new int[1010]; // 创建一个数组来存储输入的数字double sum 0; // 用于计算所有输入数字的总…

Android开发 OCR:通过Tesseract实现图片文字识别

下面是整个详解步骤过程 效果图一、OCR的含义二、什么是Tesseract三、前提准备1、添加依赖2、数据文件下载路径 四、实际代码案例Demo如下&#xff1a;Main.xmlMain.java 效果图 流程&#xff1a;获取assets中的图片显示到页面&#xff0c;提取照片内的文字 一、OCR的含义 o…

综合实验1

一、配置IP地址 [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [AR1-GigabitEthernet0/0/0]int se4/0/0 [AR1-Serial4/0/0]ip add 15.1.1.1 24 [AR1-Serial4/0/0] [AR2]int g0/0/0 [AR2-GigabitEthernet0/0/0]ip add 192.168.2.254 24 [AR2-Giga…

Android 12.0 mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现

1.前言 在12.0的系统rom定制化开发中,usb连接pc端的时候有好几种模式,在做otg连接pc端的时候,改成mtp模式的时候,在pc端可以看到产品设备 的显示的文件夹的内容,对于产品设备里面的文件在pc端禁止做删除重命名拷贝等操作功能的实现 2.mtp模式下连接pc后显示的文件夹禁止删…

Docker 容器编排利器 Docker Compose

文章目录 一、Docker Compose 简介二、Docker Compose 安装2.1 Mac、Windows 平台默认支持2.2 Linux 安装(通过包管理)2.2.1 安装2.2.2 测试2.2.3 卸载 2.3 使用PIP 安装与卸载2.3.1 PIP安装2.3.2 PIP 卸载 三、基本使用3.1 术语3.2 部署Flask 应用 四、Compose 常用命令4.1 命…

机器学习——LightGBM算法

机器学习——LightGBM算法 摘要&#xff1a; LightGBM是一种高效的梯度提升框架&#xff0c;它在处理大规模数据时表现出色&#xff0c;并且具有较快的训练速度和较低的内存消耗。本文将介绍LightGBM算法的原理、特点以及与传统GBDT算法的区别&#xff0c;并使用Python对其进行…