【御控物联】 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
- 工具连接:数据转换工具
相关文章:

【御控物联】 IOT异构数据JSON转化(场景案例一)
文章目录 前言技术资料 前言 随着物联网、大数据、智能制造技术的不断发展,越来越多的企业正在进行工厂的智能化转型升级。转型升级第一步往往是设备的智能化改造,助力设备数据快速上云,实现设备数据共享和场景互联。然而,在生产…...

Kubernetes-running app on kube
Docker 安装Docker 首先,您需要在Linux机器上安装Docker。如果您不使用Linux,则需要启动一个Linux虚拟机(VM)并在该虚拟机中运行Docker。如果你使用的是Mac或Windows系统,并按照指令安装Docker, Docker将为你建立一个虚拟机,并在…...
简述如何系统地学习Python
随着人工智能、大数据和云计算等技术的快速发展,编程已经成为了当今社会中不可或缺的一项技能。Python作为一种高级编程语言,因其简洁明了的语法、强大的功能和广泛的应用领域,成为了许多初学者和专业人士的首选。那么,如何系统地…...

bsd猜想 Murmuration of Eliptic Curves(笔记)
BSD Alexey Pozdnyakov (University of Connecticut) YUTUBE视频, B站搬运地址新生代女数学家Nina Zubrilina得到椭圆曲线椋鸟群飞模式精确公式与证明 Arithmetic Geometry算术几何 希尔伯特第十问题 希尔伯特第十问题(Hilbert’s Tenth Problem&#…...

小米汽车正式发布:开启智能电动新篇章
随着科技的不断进步,汽车产业正经历着前所未有的变革。智能电动汽车作为这一变革的重要方向,正吸引着越来越多的目光。在这个充满机遇和挑战的时代,小米汽车凭借其卓越的技术实力和深厚的市场底蕴,终于迈出了坚实的一步。今天&…...
线性代数笔记25--复数矩阵、快速傅里叶变换
1. 复数矩阵 复向量 Z [ z 1 z 2 z 3 z 4 ⋯ ] Z\begin{bmatrix} z_1\\z_2\\z_3\\z_4\\ \cdots \end{bmatrix} Z z1z2z3z4⋯ 复向量的模长 ∣ z ∣ z ‾ ⊤ z [ z ‾ 1 z ‾ 2 z ‾ 3 ] [ z 1 z 2 z 3 ] \lvert z\rvert\overline z^{\top}z \begin{bmatrix…...
洛谷 P8783 [蓝桥杯 2022 省 B] 统计子矩阵
题目描述 给定一个 NM 的矩阵 A,请你统计有多少个子矩阵 (最小 1111, 最大 NM 满足子矩阵中所有数的和不超过给定的整数 K。 输入格式 第一行包含三个整数 N,M 和 K。 之后 N 行每行包含 M 个整数, 代表矩阵 A。 输出格式 一个整数代表答案。 输入输出样例 …...
Rust 实战练习 - 8. 内存,ASM,外挂 【重磅】
目标: C写一个Demo版本的游戏由浅入深,了解外挂原理Linux/Android下实现内存读取ptrace实现内存修改(依赖第三方库) 先准备一个C写的小游戏 #include <stdio.h> #include <string.h>struct Role {float pos_x; // …...

XUbuntu22.04之Typora快捷键Ctrl+5不生效问题(二百二十六)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...

GRE_MGRE综合实验
目录 1、R5为ISP,只能进行IP地址配置,其所有地址均配为公有IP地址。 IP配置 配置公网全网通 2、(1)R1和R5间使用PPP的PAP认证,R5为主认证方。 PAP认证 (2)R2与R5之间使用ppp的CHAP认证&am…...

把组合损失中的权重设置为可学习参数
目前的需求是:有一个模型,准备使用组合损失,其中有2个或者多个损失函数。准备对其进行加权并线性叠加。但想让这些权重进行自我学习,更新迭代成最优加权组合。 目录 1、构建组合损失类 2、调用组合损失类 3、为其构建优化器 …...
用Bat启动jar程序
前情提要:在使用冰蝎、哥斯拉等一些列工具时(PS:一系列需要利用Java环境并打开的jar),我就在想能不能写一段代码点一下,就能打开程序而不用去输入命令 echo off echo 程序启动中... start javaw -noverif…...

网站维护页404源码
网站维护页404源码,布局简洁,上传即可使用。 网站维护页404源码...

jmeter链路压测
比如登录后返回token,业务打印上传的操作需要用到token 线程组中添加登录请求,并执行 1、添加登录并执行,查看结果 2、结果树中下拉选择正则表达式,将token参数和值复制粘贴到下方,将token值改为(.*?)࿰…...

香港服务器怎么看是CN2 GT线路还是CN2 GIA线路?
不知道有没有小伙伴们注意过,很多人在租用香港服务器的时候都习惯性选择 CN2 线路?仿佛香港服务器是否采用 CN2 线路成为个人企业选择香港服务器的一个标准。其实,香港服务器有CN2、优化直连(163)、BGP多线(包含了国际和国内线路),…...

CrossOver软件2024免费 最新版本详细介绍 CrossOver软件好用吗 Mac电脑玩Windows游戏
CrossOver是一款由CodeWeavers公司开发的软件,它可以在Mac和Linux等操作系统上运行Windows软件,而无需在计算机上安装Windows操作系统。这款软件的核心技术是Wine,它是一种在Linux和macOS等操作系统上运行Windows应用程序的开源软件。 Cross…...

harbor api v2.0
harbor api v2.0 v2.0 v2.0 “harbor api v2.0”与原来区别较大,此处harbor也做了https。另外,通过接口拿到的数据也是只能默认1页10个,所以脚本根据实际情况一页页的抓取数据 脚本主要用于统计repo、image,以及所有镜像的tag数&…...
Vue 表单数据双向绑定 v-mode
每一个Vue项目,每一个系统,肯定涉及到表单的双向数据绑定问题,这一部分是 vue 的重中之重,不是因为知识点复杂,而是因为只要参与 vue 项目的开发,那么就必不可少。 单项绑定 :数据变࿰…...

tab切换组件,可横向自适应滑动
示例图: 注:需要引入Jquery <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.tabs-box {width: 100%;height: auto;}.tab-header-box {display: flex;overflow: hidden…...
设计模式---单例模式
目录 一、五种单例模式的实现方式 1.饿汉模式 2.饿汉枚举类型 3.懒汉式 4.双检锁懒汉式 5.内部类懒汉式 二、JDK 中单例的体现 一、五种单例模式的实现方式 1.饿汉模式 public class Singleton1 implements Serializable {private Singleton1() {if (INSTANCE ! null) {thro…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...