目录信息
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 |