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

本文主要是介绍【御控物联】JSON结构数据转换在物流调度系统中的应用(场景案例三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

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

一、前言

物流调度是每个生产厂区必不可少的一个环节,主要包括线边物流和智能仓储。线边物流是指将物料定时、定点、定量配送到生产作业一线的环节,其包括从集中仓库到线边仓、从生产线的上游工位到下游工位、从工位到缓冲仓。智能仓储是以信息交互为主线,使用条形码、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/

这篇关于【御控物联】JSON结构数据转换在物流调度系统中的应用(场景案例三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/873074

相关文章

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

Java轻松实现PDF转换为PDF/A的示例代码

《Java轻松实现PDF转换为PDF/A的示例代码》本文将深入探讨Java环境下,如何利用专业工具将PDF转换为PDF/A格式,为数字文档的永续保存提供可靠方案,文中的示例代码讲解详细,感兴趣的小伙伴... 目录为什么需要将PDF转换为PDF/A使用Spire.PDF for Java进行转换前的准备通过

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程