MES机联网4:文档资料
目录信息
- MES机联网1:技术方案
- MES机联网2:采集网关
- MES机联网3:管理后台
- MES机联网4:文档资料
MQ接入文档
1、建立连接
mqtt连接地址: 192.168.0.138
mqtt端口: 1883
mqtt用户名:admin
mqtt密码:123456
2、消息主题
2.1 上行topic(设备->平台)
A 服务端订阅的topic(监听所有上行数据),规则 M2M/up/#
B 设备发布的topic,规则 M2M/up/{mac}
2.2 下行topic(平台->设备)
A 设备端订阅的topic,规则 M2M/down/{mac}
B 服务端发布的topic,规则 M2M/down/{mac}
M2M/up/84F3EBB452BB
M2M/down/84F3EBB452BB
3、消息模板定义
| 名称 | 说明 | 类型 | 备注 |
| c | 【code】简写 | int32 | 通讯指令 |
| m | 【message】简写 | string | 通信内容 |
4、 通讯指令说明
| 值 | 说明 | 发起 |
| 1 | 设备发起OTA升级 | C->S |
| 2 | 服务端发起OTA升级 | S->C |
| 3 | 三色灯变化 | C->S |
| 4 | 计数(产量) | C->S |
| 5 | 完工(节拍、合格数、不合格数) | C->S |
| 6 | 重置计数 | S->C |
5、消息内容定义
5.1 设备主动升级
设备每次开机或重启后向服务器发送版本消息并携带唯一身份标识,服务器根据该标识判断是否进行OTA升级并将结果告知设备
5.1.1 设备上行报文
| 名称 | 说明 | 类型 | 备注 |
| deviceid | 设备Id | string | YD-ZP709 |
| mcuver | 设备版本 | string | 1.0.0 |
| mcutype | 设备类型 | int |
报文示例:
{
"c": 1,
"m": {
"deviceid": "YD-ZP709",
"mcuver": "1.0.0",
"mcutype": 1000
}
}
5.1.2 服务器下行报文
| 名称 | 说明 | 类型 | 备注 |
| errcode | 错误码 | int | 0 : 无 1:查无版本信息 2:版本比对失败 |
| url | 升级包网址 | string |
|
报文示例:
{
"c": 1,
"m": {
"errcode": 0,
"url": "http://192.168.0.138:8601/test.bin"
}
}
5.2 服务器远程升级
需要更新固件时,服务器可远程发送指令告知设备升级。设备收到消息后,走设备主动升级流程
5.2.1 服务器下行报文
{"c":2,"m":""}
5.3 三色灯变化
设备状态变化后主动上报
5.3.1 设备上行报文
| 名称 | 说明 | 类型 | 备注 |
| workshopid | 车间id | string | |
| lineid | 产线id | string | |
| deviceid | 设备id | string | |
| currentstate | 当前三色灯颜色 | string | 000关灯,001绿灯,010黄灯,100红灯 |
| oldstate | 上一个三色灯颜色 | string | |
| periodsec | 持续时长 | int | 单位秒 |
报文示例:
{
"c": 3,
"m": {
"workshopid": "WS001",
"lineid": "DZ01",
"deviceid": "YD-ZP709",
"currentstate": "001",
"oldstate": "000",
"starttime": "2025-02-21T00:00:00",
"endtime": "2025-02-21T00:00:30",
"periodsec": 30
}
}
5.4 计数
IO计数为高电平时主动上报
5.4.1 设备上行报文
| 名称 | 说明 | 类型 | 备注 |
| workshopid | 车间id | string | |
| lineid | 产线id | string | |
| deviceid | 设备id | string | |
| productqty | 产量 | int |
报文示例:
{
"c": 4,
"m": {
"workshopid": "WS001",
"lineid": "DZ01",
"deviceid": "YD-ZP709",
"productqty": 1
}
}
5.5 完工
IO结束(合格/不合格)为高电平时主动上报
5.5.1 设备上行报文
| 名称 | 说明 | 类型 | 备注 |
| workshopid | 车间id | string | |
| lineid | 产线id | string | |
| deviceid | 设备id | string | |
| productqty | 产量 | int | |
| pitchtime | 节拍 | int | |
| passqty | 合格数 | int | |
| ngqty | 不合格数 | int |
报文示例:
{
"c": 5,
"m": {
"workshopid": "WS001",
"lineid": "DZ01",
"deviceid": "YD-ZP709",
"pitchtime": 30,
"productqty": 1,
"passqty": 1,
"ngqty": 0
}
}
5.6 服务器重置计数
复位计数信息,包括,产量,合格数,不合格数,节拍
5.6.1 服务器下行报文
{"c":6,"m":""}
数据库设计
数据库名称factory
| mst_ota_version OTA版本表 | ||
| 字段名 | 类型 | 说明 |
| Id | bigint | 主键、自增Id |
| ota_name | varchar(40) | ota名称 |
| ota_version | varchar(40) | ota版本号 |
| ota_type | int | ota类型 |
| ota_filename | varchar(40) | ota升级文件名 |
| remark | varchar(40) | 备注 |
| create_id | bigint | 创建者ID |
| mst_workshop_info车间表 | ||
| 字段名 | 类型 | 说明 |
| Id | bigint | 主键、自增Id |
| workshop_id | varchar(40) | 车间ID |
| workshop_name | varchar(40) | 车间名称 |
| remark | varchar(40) | 备注 |
| create_id | bigint | 创建者ID |
| mst_line_info产线表 | ||
| 字段名 | 类型 | 说明 |
| Id | bigint | 主键、自增Id |
| line_id | varchar(40) | 产线ID |
| line_name | varchar(40) | 产线名称 |
| workshop_id | varchar(40) | 车间ID |
| remark | varchar(40) | 备注 |
| create_id | bigint | 创建者ID |
| mst_device_info 设备表 | ||
| 字段名 | 类型 | 说明 |
| Id | bigint | 主键、自增Id |
| device_id | varchar(40) | 设备ID |
| device_name | varchar(40) | 设备名称 |
| workshop_id | varchar(40) | 车间ID |
| line_id | varchar(40) | 产线ID |
| status | varchar(40) | 当前状态 |
| product_qty | int | 产量 |
| pitch_time | int | 节拍 |
| pass_qty | int | 合格数 |
| ng_qty | int | 不合格数 |
| mcu_mac | varchar(40) | 设备MAC地址 |
| mcu_version | varchar(40) | 设备固件版本 |
| mcu_online_time | datetime | 设备上线时间 |
| remark | varchar(40) | 备注 |
| create_id | bigint | 创建者ID |
| mst_device_status_history 设备状态历史表 | ||
| 字段名 | 类型 | 说明 |
| Id | bigint | 主键、自增Id |
| workshop_id | varchar(40) | 车间ID |
| line_id | varchar(40) | 产线ID |
| device_id | varchar(40) | 设备ID |
| status | varchar(40) | 状态 |
| start_datetime | datetime | 开始时间 |
| end_datetime | datetime | 结束时间 |
| period_sec | int | 持续时间(秒数) |
| mst_device_process_data 完工记录表 | ||
| 字段名 | 类型 | 说明 |
| Id | bigint | 主键、自增Id |
| workshop_id | varchar(40) | 车间ID |
| line_id | varchar(40) | 产线ID |
| device_id | varchar(40) | 设备ID |
| device_name | varchar(40) | 设备名称 |
| product_qty | int | 产量 |
| pitch_time | int | 节拍 |
| pass_qty | int | 合格数 |
| ng_qty | int | 不合格数 |
| record_datetime | datetime | 记录时间 |
| mst_device_2_user 设备用户关联表 | ||
| 字段名 | 类型 | 说明 |
| Id | bigint | 主键、自增Id |
| device_id | string | 设备ID |
| user_id | bigint | 用户自增ID |
相关文章:
MES机联网4:文档资料
目录信息 MES机联网1:技术方案MES机联网2:采集网关MES机联网3:管理后台MES机联网4:文档资料 MQ接入文档 1、建立连接 mqtt连接地址: 192.168.0.138 mqtt端口: 1883 mqtt用户名:admin mqtt密码:123456 …...
编程考古-Borland历史:《.EXE Interview》对Anders Hejlsberg关于Delphi的采访内容(上)
为了纪念Delphi在2002年2月14日发布的25周年(2020.2.12),这里有一段由.EXE杂志编辑Will Watts于1995年对Delphi首席架构师Anders Hejlsberg进行的采访记录。在这次采访中,Anders讨论了Delphi的设计与发展,以及即将到来的针对Windows 95的32位版本。 问: Delphi是如何从T…...
系统架构设计师—系统架构设计篇—基于体系结构的软件开发方法
文章目录 概述基于体系结构的开发模型-ABSDM体系结构需求体系结构设计体系结构文档化体系结构复审体系结构实现体系结构演化 概述 基于体系结构(架构)的软件设计(Architecture-Based Software Design,ABSD)方法。 AB…...
国产AI智能体manus和deepseek的区别
DeepSeek(深度求索)与Manus(全球首款通用AI助手)是当前中国AI领域的两大代表性产品,但两者的定位、技术路径与应用场景存在显著差异。以下从多个维度进行详细对比: 1. 核心定位与技术架构 DeepSeek 定位&am…...
Maven快速入门指南
Maven快速入门指南:从依赖管理到项目构建全解析 文章目录 Maven快速入门指南:从依赖管理到项目构建全解析一、认识Maven:Java项目的瑞士军刀1.1 什么是Maven?1.2 Maven的三大核心作用 二、快速安装配置2.1 环境准备2.2 安装步骤&a…...
linux 内网下载 yum 依赖问题
1.上传系统镜像 创建系统目录,用户存放镜像,如下: mkdir /mnt/iso上传 iso 文件到 /mnt/iso 文件夹下。 2.挂载系统镜像 安装镜像至 /mnt/cdrom 目录中 mount -o loop /mnt/iso/CentOS-7-x86_64-Minimal-xx.iso /mnt/cdrom3.修改yum源配…...
基于Python+Django的网上招聘管理系统
项目介绍 PythonDjango网上招聘系统的设计与实现(Pycharm Django Vue Mysql) 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。整个平台包括前台和后台两个部分。 - 前台功能包括:首页、岗位详情页、简历中…...
人生意气场概念解析
人生意气场 浅析人生意气场缘起为己之学悠然采菊面相方程组花间流风积分形式与梅易字品微分形式导引修正: 切触形式和结构的数学定义及名词解释切触形式α切触结构ξ 数学定义与解析"反者道之动,弱者道之用"慢道缓行理性人大语言模型量化解析太…...
数据仓库为什么要分层
数据仓库分层架构是数据仓库设计中的一个重要概念,其主要目的是为了更好地组织和管理数据,提高数据仓库的可维护性、可扩展性和性能。分层架构将数据仓库划分为多个层次,每个层次都有其特定的职责和功能。以下是数据仓库分层的主要原因和好处…...
番外篇 - Docker的使用
一、Docker的介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完…...
mapbox开发小技巧
自定义图标 // 1、单个图标 const url ./static/assets/symbols/code24x24/VIDEO.png // 图标路径 map.loadImage(url ,(error, image) > {if (error) throw errormap.addImage(video-icon, image) })// 2、雪碧图利用canvas // json和png图片 function getStyleImage(fil…...
Vue23Web 基礎性拉滿的面試題(2025版)還沒更新完...
Vue2&3 基礎性1. 關於Vue2和Vue3生命週期的差別2. Vue2&3組件之間傳參不同點Vue2 傳遞與接收Vue3 傳遞與接收 (使用script setup語法糖)Vue3 傳遞與接收 (不使用script setup語法糖) 3. Vue2&3 keep-alive 組件Vue2 keep-aliveVue3 keep-alive 進階性爲什麽POST請求…...
GitHub神秘组织3小时极速复刻Manus
一、背景 昨夜科技圈被两个关键词刷屏:Manus激活码炒至6万,GitHub神秘项目OpenManus突然开源。 Manus之所以如此火爆,是因为在演示视频中自主分析股票、筛选简历、规划旅行的能力。同时,想要体验Manus就需要内测邀请码&…...
文件上传漏洞(upload靶场)
目录 Pass-01:前端绕过 方法一:浏览器禁用js 方法二:直接修改或删除js脚本 方法三:修改后缀绕过 Pass-02:服务器检测 Pess-03:黑名单绕过 Pass-04:.htaccess文件 Pass-05:windows特性和user.ini 方法一:php.自动解析为ph…...
苦瓜书盘官网,免费pdf/mobi电子书下载网站
苦瓜书盘(kgbook)是一个专注于提供6英寸PDF和MOBI格式电子书的免费下载平台,专为电子阅读器用户设计。该平台为用户提供了丰富的电子书资源,涵盖文学、历史、科学、技术等多个领域,旨在打造一个全面的电子书资源库。用…...
Linux:理解进程,系统调用,进程,进程切换,调度,分时操作系统和实时操作系统,
操作系统要向上提供对应的服务 操作系统,不相信任何用户或者人;------------银行------窗口 因此提供了系统调用,(函数调用)-->用户和操作系统之间进行某种数据交互 一:系统调用 计算机的各种硬件资…...
深入理解Vue中的Component:构建灵活且可复用的前端模块
在前端开发的世界里,随着应用程序的规模和复杂度不断增加,如何有效地组织和管理代码成为了一个关键问题。Vue.js作为一款流行的前端框架,通过其强大的组件系统为开发者提供了一种优雅且高效的解决方案。本文将深入探讨Vue中的Component(组件),包括其基本概念、创建方式、…...
【javaEE】多线程(基础)
1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…...
vscode - 操作整理
文章目录 vscode - 操作整理概述笔记打开文件后,编码另存为配置指定后缀的文件的语言模式语言模式配置 - Batch 安装eol插件配置文件如果用vscode打开的文件没有显示回车,原因及处理vscode启用了信任模式,需要信任工作区才行。 将打开的文件中…...
linux 基本命令教程,巡查脚本,kali镜像
linux实操 shutdown练习 Shutdown -h 5 意思是五个小时之后进行重启 新用户密码设置, Useradd 用户名 新建用户 Passwd 进行设置密码 覆盖关机时间 Shutdown -c 取消重启设置 top练习 查看进程 僵尸进程 kill:查看jobs号直接杀死 kill %num 查看…...
R语言使用scitable包交互效应深度挖掘一个陌生数据库
很多新手刚才是总是觉得自己没什么可以写的,自己不知道选什么题材进行分析,使用scitable包后这个完全不用担心,选题多到你只会担心你写不完,写得不够快。 今天演示一下使用scitable包深度挖掘一个陌生数据库 先导入R包和数据 li…...
Kali WebDAV 客户端工具——Cadaver 与 Davtest
1. 工具简介 在 WebDAV 服务器管理和安全测试过程中,Cadaver 和 Davtest 是两款常用的命令行工具。 Cadaver 是一个 Unix/Linux 命令行 WebDAV 客户端,主要用于远程文件管理,支持文件上传、下载、移动、复制、删除等操作。Davtest 则是一款…...
QSplashScreen启动画面开发详解
QSplashScreen启动画面 1. 基本概念2. 使用场景3. 基本操作与代码示例3.1 创建简单的启动画面3.2 动态更新启动画面信息4. 自定义启动画面样式4.1 自定义文字和背景5. 高级应用:结合多线程加载6. 注意事项7. 总结其他QT文章推荐QSplashScreen 是 Qt 框架中用于在应用程序启动时…...
线性代数笔记28--奇异值分解(SVD)
1. 奇异值分解 假设矩阵 A A A有 m m m行 n n n列 奇异值分解就是在 A A A的行向量上选取若干对标准正交基,对它作 A A A矩阵变化并投射到了 A A A的列空间上的正交基的若干倍数。 A v → u → σ u → ∈ R m v → ∈ R n A\overrightarrow{v}\overrightarrow{u…...
【记录一下学习】Embedding 与向量数据库
一、向量数据库 向量数据库(Vector Database),也叫矢量数据库,主要用来存储和处理向量数据。 在数学中,向量是有大小和方向的量,可以使用带箭头的线段表示,箭头指向即为向量的方向,…...
面试准备——云相册项目(1)基础
项目概述 云相册项目旨在为用户提供便捷的照片存储、管理和访问服务。通过客户端与服务器的配合,实现照片的上传、下载以及一些基本的命令交互功能,方便用户在不同设备上随时查看和管理自己的相册。 技术要点 编程语言与环境:使用 C 语言开…...
Redis数据结构深度解析:从String到Stream的奇幻之旅(一)
Redis系列文章 《半小时掌握Redis核心操作:从零开始的实战指南》-CSDN博客 Redis数据结构深度解析:从String到Stream的奇幻之旅(一)-CSDN博客 Redis数据结构深度解析:从String到Stream的奇幻之旅(二&…...
Linux - 网络基础(应用层,传输层)
一、应用层 1)发送接收流程 1. 发送文件 write 函数发送数据到 TCP 套接字时,内容不一定会立即通过网络发送出去。这是因为网络通信涉及多个层次的缓冲和处理,TCP 是一个面向连接的协议,它需要进行一定的排队、确认和重传等处理…...
【Linux-网络】从逻辑寻址到物理传输:解构IP协议与ARP协议的跨层协作
🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚前言 📖 IP地址的组成 🔖IPv4 🔖IPv6 📚…...
解锁前端表单数据的秘密旅程:从后端到用户选择!✨
😄 解锁前端表单数据的秘密旅程:从后端到用户选择!✨ 嘿,技术爱好者们!👋 你有没有在开发中遇到过这样的困惑:表单里的数据(比如图片附件、识别点 ID)从哪儿来的&#x…...
