【御控物联】JSON结构数据转换在物流调度系统中的应用(场景案例三)

news/2024/7/27 8:14:35/文章来源:https://blog.csdn.net/weixin_41728451/article/details/137255157

文章目录

  • 一、前言
  • 二、场景概述
  • 三、解决方案
  • 四、在线转换工具
  • 五、技术资料

一、前言

物流调度是每个生产厂区必不可少的一个环节,主要包括线边物流和智能仓储。线边物流是指将物料定时、定点、定量配送到生产作业一线的环节,其包括从集中仓库到线边仓、从生产线的上游工位到下游工位、从工位到缓冲仓。智能仓储是以信息交互为主线,使用条形码、RFID、传感器、定位系统、智能小车(AGV)等先进的物联网技术,可以实现物料运输、物料入库存储、物料搬运、产品分拣等作业全流程自动化、智能化。

随着越来越多新技术、新产品的出现,很多工厂正在逐步通过引进新产品,对既有产线物流进行升级改造,直接造成系统和系统之间、系统和设备之间交互逻辑越来越多,越来越复杂,从而增大了公司的运维成本。如何利用技术手段减少各系统之间、系统和设备之间交互逻辑的定制开发、降低运维成本、提高管理效率是每个企业亟待解决的问题。

增大运维成本主要受两方面影响,第一,系统与系统之间、系统与设备交互逻辑定制化,比如WMS和WCS,WCS和各种智能设备(AGV、叉车)之间,一旦出现业务变动,各交互系统都需要技术人员更新代码逻辑。第二,数据格式不统一,这一方面也是引起运维成本增加的部分,比如(WMS、WCS)采用的JSON数据格式和(WCS、AGV)之间交互采用的JSON数据格式不一致,这就造成WCS需要针对不同的交互对象维护两套不同的数据格式解析代码,一旦数据格式有调整,将造成成本的无限增加。

针对第一方面影响,工厂可搭建零编程、可拖拽、支持在线调式的规则引擎中间件,此中间件可实现与各业务单元的逻辑交互,减少系统与系统之间、系统与设备之间的交互,进而保证业务逻辑协同化;针对第二方面的影响,工厂应该考虑在系统中集成灵活实现数据格式转化的功能,而且支持业务人员操作,这样可降低开发成本和以后的运维成本。

本文针对第二方面影响提出我们的解决方案,一套JSON数据格式转换代码库(JS),在业务系统集成此库可灵活应对各类JSON数据格式的相互转化,包括从外部系统对接过来的JSON数据,也支持将自己数据编码后转发给其它业务系统或设备,实现JSON数据格式自由转换。目前支持以下映射关系转化:数据源键(Key)->目标键(Key)、数据源键(Key)->目标值(Value)、数据源值(Value)->目标键(Key)、数据源值(Value)->目标值(Value)。

在这里插入图片描述

本文结合案例对JSON格式数据转换进行如下讲解。

二、场景概述

某工厂生产线具备MES、WMS、WCS业务系统,同时配备了AGV小车、立体库等智能设备。具体业务场景如下图所示。工人在组装产品过程中需要A物料,然后通过MES系统将物料信息发送给WMS,WMS系统收到数据后进行解析,找到物料所在位置及数量,WMS系统确认后会给WCS系统下发去C库区001号位置获取物料,WCS反馈物料到位信息;然后WMS会向AGV发送任务指令(拣选、搬运和配送),AGV将物料送至位置后反馈执行状态和进度给WMS,同时MES也会给WMS一条反馈指令,告知物料已到位,形成物料配送闭环。

在这里插入图片描述

以上系统与系统交互、系统与设备交互均采用HTTP通讯方式,数据交互格式采用JSON,由于供应商不同,造成数据交互结构层次各不相同。

WMS与MES交互数据格式如下:
在这里插入图片描述
WMS与WCS交互数据格式如下:
在这里插入图片描述
如果没有我们的JS库,WMS需要针对以上三种数据交互格式定制化开发三套代码,非常不利于产品的打磨,尤其在项目前期,业务变动非常大,一些小的数据格式改动,都会引起大的开发工作,进而提高了开发成本。

三、解决方案

如果系统引入JSON数据格式转换JS库后,只需要业务人员根据不同厂家的数据结构进行关系映射,即可应对各类数据格式变换的场景,无需技术人员修改代码。

WMS与MES建立映射关系如下:

在这里插入图片描述

WMS与WCS建立映射关系如下:
在这里插入图片描述

通过JSON数据格式转化JS库可方便业务人员快速搭建各业务场景的数据映射,特别适用于不同厂家系统和设备的数据交互,减少业务定制,降低开发成本。

为了更直观体现JSON数据格式转化的功能,特此做了一套转化工具,以下为DEMO展示,可实现值对值映射,键和值映射,对象和数组内容映射

在这里插入图片描述

四、在线转换工具

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

工具地址:数据转换工具

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

五、技术资料

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

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

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

相关文章

Java接口与继承实践:Ether通信系统的构建(day16)

创建一个接口Icontroller, 再创建一个接口IReceiver, 创建一个子类实现IReceiver, 创建一个子类实现IContrller, 创建一个类Ether 创建一个Signal类 创建一个类Radiosignal继承Signal 创建一个用户User 最后创建一个Main类 今日总结&#xff1a…

Unity类银河恶魔城学习记录11-18 p120 Buff item effect源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Buff_Effcet.cs using System.Collections; using System.Collections.Gene…

【读书笔记】时间统计法——让你人生开挂般前进

序言 介绍柳比歇夫 这个方法来源于柳比歇夫。他是一位前苏联昆虫学家,生前发表了 70 来部学术著作。内容涉及生物分类学,昆虫学,数学,哲学,历史与艺术,这些著作在国外被广泛翻译出版。 你可能认为他一定是…

ESP32 引脚分配

请注意,以下引脚分配参考适用于流行的 30 引脚ESP32 devkit v1开发板。 仅输入引脚 GPIO34~39是GPIs–仅输入的管脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些管脚用作输入:GPIO 34、GPIO 35、GPIO 36、GPIO 39 S…

鸿蒙(HarmonyOS)ArkTs语言基础教程开发准备

本文档适用于HarmonyOS应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用(如下图所示),快速了解工程目录的主要文件,熟悉HarmonyOS应用开发流程。 在开始之前,您需要了解有关HarmonyOS应用的一些基本概…

HarmonyOS 应用开发之ArkData标准化数据定义

标准化数据定义概述 设备、应用交互的核心在于数据的互通,高效的数据互通基础是共识。为了降低应用/业务数据交互成本,促进数据生态建设,统一数据管理框架(UDMF)提供了标准化数据定义作为统一的OpenHarmony数据语言&a…

皓学IT:WEB07_ JSP

一、Jsp基础语法 1.1. JSP模板元素 JSP页面中的HTML内容称之为JSP模版元素。 JSP模版元素定义了网页的基本骨架&#xff0c;即定义了页面的结构和外观。 1.2. JSP脚本片段 JSP脚本片断用于在JSP页面中编写多行Java代码&#xff08;在<%%>不能定义方法&#xff09;。…

翔云身份证实名认证接口-PHP调用方法

网络平台集成实名认证接口&#xff0c;是顺应当下网络实名制规定&#xff0c;有效规避法律风险。互联网平台若没有实名认证功能&#xff0c;那么便无法保证网民用户身份的真实性&#xff0c;很有可能被虚假用户攻击&#xff0c;特别是在当网络平台产生垃圾信息乃至是违法信息时…

每天学点儿Python(3) -- for循环

for循环结构格式如下 for 循环变量 in 遍历对象:语句块 举例一、 for i in "Hello"print(i) 执行结果如下 举例二、 #打印100-999之间的水仙花数 #注意&#xff1a;Python中 / 除法&#xff0c;运输后为浮点数, // 为取除法后的整数&#xff0c;而不是C/C中的注释…

苹果开发者账号注册步骤中的常见疑问解答与技巧分享

转载&#xff1a;注册苹果开发者账号的方法 在2020年以前&#xff0c;注册苹果开发者账号后&#xff0c;就可以生成证书。 但2020年后&#xff0c;因为注册苹果开发者账号需要使用Apple Developer app注册开发者账号&#xff0c;所以需要缴费才能创建ios证书了。 所以新政策出…

【卷积神经网络进展】

打基础日常记录 基础知识1. 感知机2. DNN 深度神经网络&#xff08;全连接神经网络&#xff09;DNN 与感知机的区别DNN特点&#xff0c;全连接神经网络DNN前向传播和反向传播 3. CNN结构【提取特征分类】 基础知识 1. 感知机 单层感知机就是一个二分类器&#xff0c;接收输入…

基于微信小程序的民宿短租系统设计与实现(论文+源码)_kaic

摘 要 随着社会的发展&#xff0c;出差、旅游成为常态&#xff0c;也就造成民宿短租市场的兴起。人们新到陌生的环境里找民宿一般都是通过中介。中介虽然可以快速找到合适的民宿但会收取大量的中介费用&#xff0c;这对刚到新环境里的人们来说是一笔大的资金支出。也有一些人通…

如何编辑PDF文件?分享一个好用的PDF编辑器

如何编辑PDF文件呢?大家在日常中经常会使用PDF文件,难免在使用的过程中会发现文件出现的错误,更正错误地方最简单有效的方法就是直接在PDF文件上进行编辑,但大家都知道PDF文件不易改动,该如何编辑呢? 在这里推荐给大家一个好用的PDF编辑器 PDFPatcher是一款开源免费的多…

在Windows中使用NVM安装node.js

NVM介绍 Node.js版本管理器&#xff08;Node Version Manager&#xff09;&#xff0c;简称NVM&#xff0c;是一款用于在单个系统上轻松安装和管理多个Node.js版本的命令行工具。它允许用户根据项目需求在不同版本之间自由切换&#xff0c;解决了因为不同项目依赖于不同Node.j…

iOS苹果签名共享签名是什么以及如何获取?

哈喽&#xff0c;大家好呀&#xff0c;咕噜淼淼又来和大家见面啦&#xff0c;最近有很多朋友都来向我咨询共享签名iOS苹果IPA共享签名是什么&#xff0c;针对这个问题&#xff0c;淼淼来解答一下大家的疑惑并告诉大家iOS苹果ipa共享签名需要如何获取。 现在苹果签名在市场上的…

非wpf应用程序项目【类库、用户控件库】中使用HandyControl

文章速览 前言参考文章实现方法1、添加HandyControl包&#xff1b;2、添加资源字典3、修改资源字典内容 坚持记录实属不易&#xff0c;希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区&#xff01; 谢谢~ 前言 wpf应用程序中&#xff0c;在入口项目中…

OpenHarmony实战开发-如何实现一个社交分享类APP

介绍 本示例是一个社交分享类APP&#xff0c;搭建了不同的页面向用户提供获取社交信息等能力。为了减少频繁权限弹窗对用户的干扰&#xff0c;同时提供更小的授权范围&#xff0c;使用了安全控件做临时授权场景。当用户实际点击了某种类型的安全控件时&#xff0c;会由系统弹出…

LeetCode104:二叉树的最大深度

题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 解题思想 可以使用层序遍历 class Solution { public:int maxDepth(TreeNode* root) {if (root nullptr) return 0;queue<TreeNode*>…

Python接口自动化测试-篇1(postman+requests+pytest+allure)

Python接口自动化测试是一种使用Python编程语言来编写脚本以自动执行针对应用程序接口&#xff08;APIs&#xff09;的测试过程。这种测试方法专注于检查系统的不同组件或服务之间的交互&#xff0c;确保它们按照预期规范进行通信&#xff0c;而不涉及用户界面&#xff08;UI&a…

Rust编程(五)终章:查漏补缺

闭包 & 迭代器 闭包&#xff08;Closure&#xff09;通常是指词法闭包&#xff0c;是一个持有外部环境变量的函数。外部环境是指闭包定义时所在的词法作用域。外部环境变量&#xff0c;在函数式编程范式中也被称为自由变量&#xff0c;是指并不是在闭包内定义的变量。将自…