添加文件

This commit is contained in:
葛林强 2024-07-24 11:28:14 +08:00
commit 9548bd8516
16 changed files with 14887 additions and 0 deletions

3
2024-06-04 会议.md Normal file
View File

@ -0,0 +1,3 @@
+ 箱子增加方位码
+ 箱子使用二维码
+

606
WMS_WCS交互协议 R4.0.md Normal file
View File

@ -0,0 +1,606 @@
# WMS_WCS交互协议
> 基础文档版本号:`R4.2`
>
> 更新时间:`2024年7月20日`
>
> 更新人:葛林强
>
> 江苏菲达宝开电气股份有限公司
>
> 内部资料,未经本公司书面授权禁止外泄
## 统一返回:
> 接口定义中标注统一返回的均按照下面方式返回。
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 备注 |
| ---------- | -------- | -------- | ---- | -------- | ------------------------------------------------- |
| code | 返回码 | int | 4 | 是 | 操作正常返回 0 ,数据重复返回 200其他为异常代码 |
| message | 说明信息 | string | 255 | 是 | |
| returnData | 返回数据 | object | | 否 | 在需要返回数据的时候带出数据 |
## 堆垛机:
### 1、WMS发送堆垛机任务给WCS
>客户端WMS
>
>服务端WCS
>
>调用方式POST
>
>接口地址:/api/wms/stacker/setStackerTask
`使用场景:`WMS在需要WMS执行任务时调用此接口发送需要执行的任务
**请求数据格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ---- | ------- | -------- | ---- | -------- | -------- | -------------- |
| | WMS任务 | List | | 是 | | 发送的任务数组 |
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ----------- | ----------- | -------- | ------ | -------- | -------- | ------------------------------------------------------------ |
| taskId | WMS任务编号 | string | 64 | 是 | 是 | 唯一任务号作为WCS上报任务凭证 |
| taskType | 任务类型 | int | | 是 | 否 | 1入库<br />2出库<br />4拣选<br />9移库 |
| priority | 任务优先级 | int | | 是 | 否 | 数字越大 |
| origin | 任务起点 | string | 32 | 是 | 否 | |
| midpoint | 任务中间点 | string | 32 | 否 | 否 | 预留点,特殊情况需要 |
| destination | 任务终点 | string | 32 | 否 | 否 | 入库:<br /> 必填,终点一般为库位<br />出库:<br /> 若填写则Wcs按照填写的位置出库<br /> 若不填Wcs寻找空闲出库站台出库<br />移库:<br /> 必填,终点一般为库位 |
| vehicleNo | 载具编号 | string | 32 | 是 | 否 | |
| vehicleSize | 载具尺寸 | int | | 是 | 否 | 若没有则填 0 |
| weight | 总重量 | decimal | (10,2) | 是 | 否 | 若没有则填 0单位KG |
**返回数据格式**
<u>同上数据格式,当数据有异常时返回</u>
请求示例:
```json
[
{
"taskId":"12345aaabbb",
"taskType":"1",
"priority":0,
"origin":"101",
"midpoint":null,
"destination":"A-2-5-1",
"vehicleNo":"TP999",
"vehicleSize":0,
"weight":2.00,
}
]
// 这些数据中只要有一个存在问题,都会返回错误,所有任务就都无效
```
返回示例:
```json
{
"code":0,
"message":"任务创建成功"
}
```
```json
{
"code":0,
"message":"任务创建成功",
"returnData":[
{
"taskId":"12345aaabbb",
"taskType":"1",
"priority":0,
"origin":"101",
"midpoint":null,
"destination":"A-2-5-1",
"vehicleNo":"TP999",
"vehicleSize":0,
"weight":2.00,
}
]
}
```
### 2、WMS请求变更任务状态
> 客户端WMS
>
> 服务端WCS
>
> 调用方式POST
>
> 接口地址:/api/wms/stacker/changeTaskStatus
`使用场景:`WMS系统内任务状态发生变更并且需要通知WCS时调用此接口
**请求格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ---------- | ----------- | -------- | ---- | -------- | -------- | ------------------------------------------------------------ |
| taskId | WMS任务编号 | string | 64 | 是 | 是 | 唯一任务号,下发任务时使用的 |
| taskStatus | 任务状态 | int | 4 | 是 | 否 | 0重新执行任务<br />1取消/删除任务<br />2完成任务<br />`注意:`变更状态后若任务正在执行则设备可能仍然继续执行任务 |
请求示例:
```json
{
"taskId":"12423452345",
"taskStatus":1
}
```
响应示例:
```json
{
"code":0,
"message":"任务取消成功"
}
```
### 3、WCS反馈WMS任务状态
>客户端WCS
>
>服务端WMS
>
>调用方式POST
>
>接口地址:
`使用场景:`WCS在任务执行的时间节点通知WMS任务状态
`注意:`该接口WCS会尝试多次若多次未调用成功或WMS返回异常则不再调用
**请求格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ----------- | ----------- | -------- | ---- | -------- | -------- | ------------------------------------------------------------ |
| taskId | WMS任务编号 | string | 64 | 是 | 是 | 唯一任务号,下发任务时使用的 |
| taskStatus | 任务状态 | int | 4 | 是 | 否 | 1任务排队中<br />2任务开始执行<br />3任务已经离开初始位置<br />4任务到达中间点<br />5任务到达目的地<br />100任务完成<br />998任务取消<br />999任务异常 |
| vehicleNo | 载具号 | string | 32 | 是 | 否 | |
| destination | 任务终点 | string | 32 | 是 | 否 | 入库任务填库位,出库任务填出库站台 |
| message | 任务信息 | string | 128 | 否 | 否 | 一般用作异常时填写信息 |
请求示例:
```json
{
"taskId":"235345634534",
"taskStatus":2,
"destination":"102",
"vehicleNo":"T112233"
"message":"任务已经开始执行"
}
```
响应示例:
```json
{
"code":0,
"message":"成功"
}
```
### 4、WCS请求载具入库
> 客户端WCS
>
> 服务端WMS
>
> 调用方式POST
>
> 接口地址:
`使用场景:`WCS在扫码入库/盘点回库等情况下需要向WMS发送请求信号WMS收到此信号后若正常则通过任务下发接口下发任务给WCS
**请求格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ----------- | -------- | -------- | ---- | -------- | -------- | -------------------------------------------------------- |
| point | 点位 | string | 32 | 是 | 否 | |
| vehicleNo | 载具编号 | string | 32 | 是 | 否 | |
| codeMessage | 条码信息 | string | 512 | 否 | 否 | 若条码含物料信息或者其他需要一并传递的信息将会出现在此处 |
| remark | 备注 | string | 256 | 否 | 否 | |
**响应格式(returnData)**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ------- | -------- | -------- | ---- | -------- | -------- | -------- |
| inStand | 入库站台 | string | 64 | 否 | 否 | 入库站台 |
| remark | 备注信息 | string | 128 | 否 | 否 | |
请求示例:
```json
{
"point":"101",
"vehicleNo":"TP1001",
"codeMessage":"010001@03423423@手榴弹@100@枚",
"remark":""
}
```
响应示例:
```json
{
"code":0,
"message":"请求成功",
"returnData":{
"inStand":"101",
"reamrk":""
}
}
```
### 5、WMS向WCS推送新的目的地
>客户端WMS
>
>服务端WCS
>
>调用方式POST
>
>接口地址:/api/wms/stacker/setStackerTaskNewDestination
`使用场景:`WMS在设备重复入库时推送新终点任务给WCS
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ----------- | ----------- | -------- | ---- | -------- | -------- | ---------------------------------------- |
| taskId | WMS任务编号 | string | 64 | 是 | 是 | 唯一任务号,和卸货位置有货时的任务号一致 |
| destination | 任务终点 | string | 32 | 是 | 否 | |
| vehicleNo | 载具编号 | string | 32 | 是 | 否 | |
请求示例:
```json
{
"taskId":"12334534",
"destination": "010101",
"vehicleNo":"T0001"
}
```
## 箱式线:
### 1、WMS向WCS发送输送任务
>客户端WMS
>
>服务端WCS
>
>调用方式POST
>
>接口地址:/api/wms/convey/setConveyTask
`使用场景:`WMS推送拣选任务给WCS
**请求格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ---- | ---- | -------- | ---- | -------- | -------- | ---- |
| | 列表 | list | | | | |
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| --------- | ---------- | -------- | ---- | -------- | -------- | ------------------------------------------------------------ |
| taskGroup | 任务组编号 | string | 40 | 否 | 否 | 不填的情况下WCS自动生成 |
| vehicleNo | 载具号 | string | 32 | 是 | 否 | |
| taskType | 任务类型 | int | | 是 | 否 | 任务类型:<br />1拣选<br />2补货<br />3发货<br />4复核 |
| location | 点位 | List | 128 | 是 | 否 | |
| remark | 备注 | string | 256 | 否 | 否 | |
请求示例:
```json
[
{
"taskGroup":"q231231231432",
"vehicleNo":"TP1001",
"taskType": 1,
"location":["2001","2002"],
"remark":""
}
]
```
响应示例:
```json
{
"code":0,
"message":"请求成功"
}
```
```json
{
"code":1,
"message":"请求失败,当前任务未全部完结"
}
```
### 2、WCS向WMS上报箱子到达
>客户端WCS
>
>服务端WMS
>
>调用方式POST
>
>接口地址:
`使用场景:`WCS向WMS上报箱子到达
**请求格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| --------- | ---------- | -------- | ---- | -------- | -------- | ---- |
| taskGroup | 任务组编号 | string | 4 | 是 | 否 | |
| vehicleNo | 载具号 | string | 32 | 是 | 否 | |
| location | 点位 | string | 32 | 是 | 否 | |
| remark | 备注 | string | 256 | 否 | 否 | |
请求示例:
```json
{
"taskGroup":"q231231231432",
"vehicleNo":"TP1001",
"location":"2001",
"remark":""
}
```
响应示例:
```json
{
"code":0,
"message":"请求成功"
}
```
### 3、WMS请求输送线释放箱子
>客户端WMS
>
>服务端WCS
>
>调用方式POST
>
>接口地址:
`使用场景:`WCS向WMS上报箱子到达
**请求格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| -------- | ---- | -------- | ---- | -------- | -------- | ------- |
| location | 点位 | string | | 是 | 否 | P1 ~ P9 |
请求示例:
```json
{
"location":"P3"
}
```
响应示例:
```json
{
"code":0,
"message":"请求成功"
}
```
## 电子标签
### 1、WMS向WCS发送电子标签任务
> 客户端WMS
>
> 服务端WCS
>
> 请求方式POST
>
> 接口地址:
**请求格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| --------- | -------- | -------- | ---- | -------- | -------- | ------------------------------------------------------- |
| taskGroup | 任务组 | string | 40 | 否 | 否 | 不填情况下由WCS自动生成<br />每次发送任务时必须都不一样 |
| taskType | 任务类型 | int | | 是 | 否 | 任务类型:<br />1拣选/配件<br />2存储任务 |
| vehicleNo | 载具号 | string | 32 | 是 | 否 | 箱号 |
| orderId | 订单号 | string | 32 | 否 | 否 | |
| taskData | 任务数据 | List | | 是 | 否 | 任务数据列表 |
**taskData 数据**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| --------- | -------- | -------- | ---- | -------- | -------- | ---------------------------- |
| taskId | 任务号 | string | 40 | 否 | 是 | 不填情况下由WCS自动生成 |
| location | 点位 | string | 32 | 是 | 否 | 需要拣选或者存储的点位 |
| goodsId | 物料编号 | string | 32 | 否 | 否 | |
| goodsName | 物料名称 | string | 64 | 否 | 否 | |
| needNum | 需求数量 | int | | 是 | 否 | 部分情况下若不需要数量请填 0 |
请求示例:
```json
{
"taskGroup":"Boom1234345",
"taskType": 1,
"vehicleNo": "P0001",
"orderId":"DFG1121312312",
"taskData":[
{
"taskId":"T231231",
"location":"1-L-001",
"goodsId":"B0001",
"goodsName":"宝开牌手榴弹",
"needNum": 20
},
{
"taskId":"T243534553453453451",
"location":"1-L-040",
"goodsId":"R0801",
"goodsName":"火箭筒",
"needNum": 13
}
]
}
```
响应示例:
```json
{
"code":0,
"message":"请求成功"
}
```
### 2、WCS向WMS反馈电子标签确认
> 客户端WCS
>
> 服务端WMS
>
> 请求方式POST
>
> 请求地址:
**请求格式:**
| 键名 | 名称 | 数据类型 | 长度 | 是否必填 | 是否主键 | 备注 |
| ---------- | -------- | -------- | ---- | -------- | -------- | --------------------------------------------- |
| taskGroup | 任务组 | string | 40 | 否 | 否 | |
| taskType | 任务类型 | int | | 是 | 否 | 任务类型:<br />1拣选/配件<br />2存储任务 |
| vehicleNo | 载具号 | string | 32 | 是 | 否 | 箱号 |
| orderId | 订单号 | string | 32 | 否 | 否 | |
| taskId | 任务号 | string | 40 | 否 | 是 | |
| location | 点位 | string | 32 | 是 | 否 | 需要拣选或者存储的点位 |
| goodsId | 物料编号 | string | 32 | 否 | 否 | |
| goodsName | 物料名称 | string | 64 | 否 | 否 | |
| needNum | 需求数量 | int | | 是 | 否 | 部分情况下若不需要数量请填 0 |
| confirmNum | 确认数量 | int | | 是 | 否 | 电子标签的按下确认时显示的数量 |
| | | | | | | |
请求示例:
```json
{
"taskGroup":"123123123",
"taskType": 1,
"vehicleNo":"V12123",
"orderId":"234213",
"taskId":"456456",
"location":"1-L-231",
"goodsId":"7867867",
"goodsName":"宝开牌迫击炮",
"needNum": 34,
"confirmNum": 12
}
```
响应示例:
```json
{
"code":0,
"message":"请求成功"
}
```

View File

@ -0,0 +1,434 @@
WMS_WCS交互协议
基础文档版本号:`R4.0
更新时间: 2024年5月20日
更新人:葛林强
江苏菲达宝开电气股份有限公司
内部资料,未经本公司书面授权禁止外泄
统一返回:
接口定义中标注统一返回的均按照下面方式返回。
键名 名称 数据类型 长度 是否必填 备注
code 返回码 int 4 是 操作正常返回 0 ,数据重复返回 200其他为异常代码
message 说明信息 string 255 是
returnData 返回数据 object 否 在需要返回数据的时候带出数据
堆垛机:
1、WMS发送堆垛机任务给WCS
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/setStackerTask
使用场景: WMS在需要WMS执行任务时调用此接口发送需要执行的任务
键名 名称 数据类型 长度 是否必填 是否主键 备注
WMS任务 List 是 发送的任务数组
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是 唯一任务号作为WCS上报任务凭证
任务类型 1入库
taskType int 是 否 2出库
任务优先级 4拣选
priority 任务起点 int 是 否 9移库
origin 任务中间点 string 数字越大
midpoint string 32 是 否
任务终点 预留点,特殊情况需要
destination string 32 否 否 入库:
载具编号 必填,终点一般为库位
vehicleNo 载具尺寸 string 32 否 否 出库:
vehicleSize 总重量 int 若填写则Wcs按照填写的位置出库
weight decimal 32 是 否 若不填Wcs寻找空闲出库站台出库
移库:
是 否 必填,终点一般为库位
(10,2) 是 否 若没有则填 0
若没有则填 0单位KG
请求示例:
[
{
"taskId":"12345aaabbb",
"taskType":"1",
"priority":0,
"origin":"101",
"midpoint":null,
"destination":"A-2-5-1",
"vehicleNo":"TP999",
"vehicleSize":0,
"weight":2.00,
}
]
// 这些数据中只要有一个存在问题,都会返回错误,所有任务就都无效
返回示例:
{
"code":0,
"message":"任务创建成功"
}
2、WMS请求变更任务状态
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/changeTaskStatus
使用场景: WMS系统内任务状态发生变更并且需要通知WCS时调用此接口
请求格式:
键名 名称 数据类 长 是否必 是否主 备注
型 度 填 键
taskId WMS任务编 string 64 是 是 唯一任务号,下发任务时使用的
0重新执行任务
1取消/删除任务
taskStatus 任务状态 int 4 是 否 2完成任务
注意: 变更状态后若任务正在执行则设备可能仍然继
续执行任务
请求示例:
{
"taskId":"12423452345",
"taskStatus":1
}
响应示例:
{
"code":0,
"message":"任务取消成功"
}
3、WCS反馈WMS任务状态
客户端WCS
服务端WMS
调用方式POST
接口地址:
使用场景: WCS在任务执行的时间节点通知WMS任务状态
注意: 该接口WCS会尝试多次若多次未调用成功或WMS返回异常则不再调用
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是
唯一任务号,下发任务时使用的
taskStatus 任务状态 int 4 是 否
1任务排队中
destination 任务终点 string 32 是 否 2任务开始执行
message 任务信息 string 否 3任务已经离开初始位置
128 否 4任务到达中间点
5任务到达目的地
100任务完成
998任务取消
999任务异常
入库任务填库位,出库任务填出库站台
一般用作异常时填写信息
请求示例:
{
"taskId":"235345634534",
"taskStatus":2,
"destination":"102",
"message":"任务已经开始执行"
}
响应示例:
{
"code":0,
"message":"成功"
}
4、WCS请求载具入库
客户端WCS
服务端WMS
调用方式POST
接口地址:
使用场景: WCS在扫码入库/盘点回库等情况下需要向WMS发送请求信号WMS收到此信号后若正常则通过任务下发接口下发任务给WCS
请求格式:
键名 名称 数据类 长 是否必 是否主 备注
string 度 填 键
string
point 点位 32 是 否
vehicleNo string
codeMessage 载具编 string 32 是 否
remark 号
512 否 否 若条码含物料信息或者其他需要一并传递的信息将会出
条码信
息 现在此处
备注 256 否 否
响应格式(returnData)
键名 名称 数据类型 长度 是否必填 是否主键 备注
inStand 入库站台 string 64 否 否 入库站台
remark 备注信息 string 128 否 否
请求示例:
{
"point":"101",
"vehicleNo":"TP1001",
"codeMessage":"010001@03423423@手榴弹@100@枚",
"remark":""
}
响应示例:
{
"code":0,
"message":"请求成功",
"returnData":{
"inStand":"101",
"reamrk":""
}
}
5、WMS向WCS推送新的目的地
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/setStackerTaskNewDestination
使用场景: WMS在设备重复入库时推送新终点任务给WCS
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是 唯一任务号,和卸货位置有货时的任务号一致
destination 任务终点 string 32 是 否
vehicleNo 载具编号 string 32 是 否
请求示例:
{
"taskId":"12334534",
"destination": "010101",
"vehicleNo":"T0001"
}
箱式线:
1、WMS向WCS发送输送任务
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/convey/setConveyTask
使用场景: WMS推送拣选任务给WCS
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组编号 string 40 否 否 不填的情况下WCS自动生成
vehicleNo 载具号 string 32 是 否
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskType 任务类型 int 是 否 任务类型:
1拣选
否 2补货
否 3发货
4复核
location 点位 List 128 是
remark 备注 string
256 否
请求示例:
{
"taskGroup":"q231231231432",
"vehicleNo":"TP1001",
"taskType": 1,
"location":["2001","2002"],
"remark":""
}
响应示例:
{
"code":0,
"message":"请求成功"
}
{
"code":1,
"message":"请求失败,当前任务未全部完结"
}
2、WCS向WMS上报箱子到达
客户端WMS
服务端WCS
调用方式POST
接口地址:
使用场景: WCS向WMS上报箱子到达
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组编号 string 4 是 否
vehicleNo 载具号 string 32 是 否
location 点位 string 32 是 否
remark 备注 string 256 否 否
请求示例:
{
"taskGroup":"q231231231432",
"vehicleNo":"TP1001",
"location":"2001",
"remark":""
}
响应示例:
{
"code":0,
"message":"请求成功"
}
电子标签
1、WMS向WCS发送电子标签任务
客户端WMS
服务端WCS
请求方式POST
接口地址:
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
否 否 不填情况下由WCS自动生成
taskGroup 任务组 string 40 每次发送任务时必须都不一样
否 任务类型:
taskType 任务类型 int 是 1拣选/配件
否 2存储任务
vehicleNo 载具号 string 32 是 否 箱号
否 否
orderId 订单号 string 32 是 任务数据列表
是否主键
taskData 任务数据 List 是否必填 是 备注
否 否 不填情况下由WCS自动生成
taskData 数据 是 否 需要拣选或者存储的点位
否 否
键名 名称 数据类型 长度 否 否 部分情况下若不需要数量请填 0
taskId 任务号 string 40 是
location 点位 string 32
goodsId 物料编号 string 32
goodsName 物料名称 string 64
needNum 需求数量 int
请求示例:
{
"taskGroup":"Boom1234345",
"taskType": 1,
"vehicleNo": "P0001",
"orderId":"DFG1121312312",
"taskData":[
{
"taskId":"T231231",
"location":"1-L-001",
"goodsId":"B0001",
"goodsName":"宝开牌手榴弹",
"needNum": 20
},
{
"taskId":"T243534553453453451",
"location":"1-L-040",
"goodsId":"R0801",
"goodsName":"火箭筒",
"needNum": 13
}
]
}
响应示例:
{
"code":0,
"message":"请求成功"
}
2、WCS向WMS反馈电子标签确认
客户端WCS
服务端WMS
请求方式POST
请求地址:
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组 string 40 否 否
任务类型:
taskType 任务类型 int 是 否 1拣选/配件
2存储任务
vehicleNo 载具号 string 32 是 否 箱号
orderId 订单号 string 否
taskId 任务号 string 32 否 是 需要拣选或者存储的点位
location 点位 string 否
goodsId 物料编号 string 40 否 否 部分情况下若不需要数量请填 0
goodsName 物料名称 string 否 电子标签的按下确认时显示的数量
needNum 需求数量 int 32 是 否
confirmNum 确认数量 int 否
32 否
64 否
请求示例:
{
"taskGroup":"123123123",
"taskType": 1,
"vehicleNo":"V12123",
"orderId":"234213",
"taskId":"456456",
"location":"1-L-231",
"goodsId":"7867867",
"goodsName":"宝开牌迫击炮",
"needNum": 34,
"confirmNum": 12
}
响应示例:
{
"code":0,
"message":"请求成功"
}

View File

@ -0,0 +1,481 @@
WMS_WCS交互协议
基础文档版本号:`R4.1
更新时间: 2024年6月15日
更新人:葛林强
江苏菲达宝开电气股份有限公司
内部资料,未经本公司书面授权禁止外泄
统一返回:
接口定义中标注统一返回的均按照下面方式返回。
键名 名称 数据类型 长度 是否必填 备注
code 返回码 int 4 是 操作正常返回 0 ,数据重复返回 200其他为异常代码
message 说明信息 string 255 是
returnData 返回数据 object 否 在需要返回数据的时候带出数据
堆垛机:
1、WMS发送堆垛机任务给WCS
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/setStackerTask
使用场景: WMS在需要WMS执行任务时调用此接口发送需要执行的任务
请求数据格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
WMS任务 List 是 发送的任务数组
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是 唯一任务号作为WCS上报任务凭证
任务类型 1入库
taskType int 是 否 2出库
任务优先级 4拣选
priority 任务起点 int 是 否 9移库
origin 任务中间点 string 数字越大
midpoint string 32 是 否
任务终点 预留点,特殊情况需要
destination string 32 否 否 入库:
载具编号 必填,终点一般为库位
vehicleNo 载具尺寸 string 32 否 否 出库:
vehicleSize 总重量 int 若填写则Wcs按照填写的位置出库
weight decimal 32 是 否 若不填Wcs寻找空闲出库站台出库
移库:
是 否 必填,终点一般为库位
(10,2) 是 否 若没有则填 0
若没有则填 0单位KG
返回数据格式:
同上数据格式,当数据有异常时返回
请求示例:
[
{
"taskId":"12345aaabbb",
"taskType":"1",
"priority":0,
"origin":"101",
"midpoint":null,
"destination":"A-2-5-1",
"vehicleNo":"TP999",
"vehicleSize":0,
"weight":2.00,
}
]
// 这些数据中只要有一个存在问题,都会返回错误,所有任务就都无效
返回示例:
{
"code":0,
"message":"任务创建成功"
}
{
"code":0,
"message":"任务创建成功",
"returnData":[
{
"taskId":"12345aaabbb",
"taskType":"1",
"priority":0,
"origin":"101",
"midpoint":null,
"destination":"A-2-5-1",
"vehicleNo":"TP999",
"vehicleSize":0,
"weight":2.00,
}
]
}
2、WMS请求变更任务状态
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/changeTaskStatus
使用场景: WMS系统内任务状态发生变更并且需要通知WCS时调用此接口
请求格式:
键名 名称 数据类 长 是否必 是否主 备注
型 度 填 键
taskId WMS任务编 string 64 是 是 唯一任务号,下发任务时使用的
0重新执行任务
1取消/删除任务
taskStatus 任务状态 int 4 是 否 2完成任务
注意: 变更状态后若任务正在执行则设备可能仍然继
续执行任务
请求示例:
{
"taskId":"12423452345",
"taskStatus":1
}
响应示例:
{
"code":0,
"message":"任务取消成功"
}
3、WCS反馈WMS任务状态
客户端WCS
服务端WMS
调用方式POST
接口地址:
使用场景: WCS在任务执行的时间节点通知WMS任务状态
注意: 该接口WCS会尝试多次若多次未调用成功或WMS返回异常则不再调用
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是
唯一任务号,下发任务时使用的
taskStatus 任务状态 int 4 是 否
1任务排队中
destination 任务终点 string 32 是 否 2任务开始执行
message 任务信息 string 否 3任务已经离开初始位置
128 否 4任务到达中间点
5任务到达目的地
100任务完成
998任务取消
999任务异常
入库任务填库位,出库任务填出库站台
一般用作异常时填写信息
请求示例:
{
"taskId":"235345634534",
"taskStatus":2,
"destination":"102",
"message":"任务已经开始执行"
}
响应示例:
{
"code":0,
"message":"成功"
}
4、WCS请求载具入库
客户端WCS
服务端WMS
调用方式POST
接口地址:
使用场景: WCS在扫码入库/盘点回库等情况下需要向WMS发送请求信号WMS收到此信号后若正常则通过任务下发接口下发任务给WCS
请求格式:
键名 名称 数据类 长 是否必 是否主 备注
string 度 填 键
string
point 点位 32 是 否
vehicleNo string
codeMessage 载具编 string 32 是 否
remark 号
512 否 否 若条码含物料信息或者其他需要一并传递的信息将会出
条码信
息 现在此处
备注 256 否 否
响应格式(returnData)
键名 名称 数据类型 长度 是否必填 是否主键 备注
inStand 入库站台 string 64 否 否 入库站台
remark 备注信息 string 128 否 否
请求示例:
{
"point":"101",
"vehicleNo":"TP1001",
"codeMessage":"010001@03423423@手榴弹@100@枚",
"remark":""
}
响应示例:
{
"code":0,
"message":"请求成功",
"returnData":{
"inStand":"101",
"reamrk":""
}
}
5、WMS向WCS推送新的目的地
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/setStackerTaskNewDestination
使用场景: WMS在设备重复入库时推送新终点任务给WCS
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是 唯一任务号,和卸货位置有货时的任务号一致
destination 任务终点 string 32 是 否
vehicleNo 载具编号 string 32 是 否
请求示例:
{
"taskId":"12334534",
"destination": "010101",
"vehicleNo":"T0001"
}
箱式线:
1、WMS向WCS发送输送任务
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/convey/setConveyTask
使用场景: WMS推送拣选任务给WCS
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组编号 string 40 否 否 不填的情况下WCS自动生成
vehicleNo 载具号 string 32 是 否
任务类型:
taskType 任务类型 int 是 否 1拣选
2补货
否 3发货
否 4复核
location 点位 List 128 是
remark 备注 string
256 否
请求示例:
{
"taskGroup":"q231231231432",
"vehicleNo":"TP1001",
"taskType": 1,
"location":["2001","2002"],
"remark":""
}
响应示例:
{
"code":0,
"message":"请求成功"
}
{
"code":1,
"message":"请求失败,当前任务未全部完结"
}
2、WCS向WMS上报箱子到达
客户端WCS
服务端WMS
调用方式POST
接口地址:
使用场景: WCS向WMS上报箱子到达
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组编号 string 4 是 否
vehicleNo 载具号 string 32 是 否
location 点位 string 32 是 否
remark 备注 string 256 否 否
请求示例:
{
"taskGroup":"q231231231432",
"vehicleNo":"TP1001",
"location":"2001",
"remark":""
}
响应示例:
{
"code":0,
"message":"请求成功"
}
3、WMS请求输送线释放箱子
客户端WMS
服务端WCS
调用方式POST
接口地址:
使用场景: WCS向WMS上报箱子到达
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
location 点位 string 是 否 P1 ~ P9
请求示例:
{
"location":"P3"
}
响应示例:
{
"code":0,
"message":"请求成功"
}
电子标签
1、WMS向WCS发送电子标签任务
客户端WMS
服务端WCS
请求方式POST
接口地址:
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
否 否 不填情况下由WCS自动生成
taskGroup 任务组 string 40 每次发送任务时必须都不一样
否 任务类型:
taskType 任务类型 int 是 否 1拣选/配件
否 2存储任务
vehicleNo 载具号 string 32 是 否 箱号
orderId 订单号 string
taskData 任务数据 List 32 否 任务数据列表
taskData 数据
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId 任务号 string 40 否 是 不填情况下由WCS自动生成
location 点位 string 32 是 否 需要拣选或者存储的点位
goodsId 物料编号 string 32 否 否
goodsName 物料名称 string 64 否 否 部分情况下若不需要数量请填 0
needNum 需求数量 int 是 否
请求示例:
{
"taskGroup":"Boom1234345",
"taskType": 1,
"vehicleNo": "P0001",
"orderId":"DFG1121312312",
"taskData":[
{
"taskId":"T231231",
"location":"1-L-001",
"goodsId":"B0001",
"goodsName":"宝开牌手榴弹",
"needNum": 20
},
{
"taskId":"T243534553453453451",
"location":"1-L-040",
"goodsId":"R0801",
"goodsName":"火箭筒",
"needNum": 13
}
]
}
响应示例:
{
"code":0,
"message":"请求成功"
}
2、WCS向WMS反馈电子标签确认
客户端WCS
服务端WMS
请求方式POST
请求地址:
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组 string 40 否 否 任务类型:
1拣选/配件
taskType 任务类型 int 是 否 2存储任务
箱号
vehicleNo 载具号 string 32 是 否
orderId 订单号 string 否 需要拣选或者存储的点位
taskId 任务号 string 32 否 是
location 点位 string 否 部分情况下若不需要数量请填 0
goodsId 物料编号 string 40 否 否
goodsName 物料名称 string 否
needNum 需求数量 int 32 是 否
32 否
64 否
键名 名称 数据类型 长度 是否必填 是否主键 备注
confirmNum 确认数量 int 是 否 电子标签的按下确认时显示的数量
请求示例:
{
"taskGroup":"123123123",
"taskType": 1,
"vehicleNo":"V12123",
"orderId":"234213",
"taskId":"456456",
"location":"1-L-231",
"goodsId":"7867867",
"goodsName":"宝开牌迫击炮",
"needNum": 34,
"confirmNum": 12
}
响应示例:
{
"code":0,
"message":"请求成功"
}

View File

@ -0,0 +1,490 @@
WMS_WCS交互协议
基础文档版本号: R4.2
更新时间: 2024年7月20日
更新人:葛林强
江苏菲达宝开电气股份有限公司
内部资料,未经本公司书面授权禁止外泄
统一返回:
接口定义中标注统一返回的均按照下面方式返回。
键名 名称 数据类型 长度 是否必填 备注
code 返回码 int 4 是 操作正常返回 0 ,数据重复返回 200其他为异常代码
message 说明信息 string 255 是
returnData 返回数据 object 否 在需要返回数据的时候带出数据
堆垛机:
1、WMS发送堆垛机任务给WCS
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/setStackerTask
使用场景: WMS在需要WMS执行任务时调用此接口发送需要执行的任务
请求数据格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
WMS任务 List 是 发送的任务数组
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是 唯一任务号作为WCS上报任务凭证
任务类型 1入库
taskType int 是 否 2出库
任务优先级 4拣选
priority 任务起点 int 是 否 9移库
origin 任务中间点 string 数字越大
midpoint string 32 是 否
任务终点 预留点,特殊情况需要
destination string 32 否 否 入库:
载具编号 必填,终点一般为库位
vehicleNo 载具尺寸 string 32 否 否 出库:
vehicleSize 总重量 int 若填写则Wcs按照填写的位置出库
weight decimal 32 是 否 若不填Wcs寻找空闲出库站台出库
移库:
是 否 必填,终点一般为库位
(10,2) 是 否 若没有则填 0
若没有则填 0单位KG
返回数据格式:
同上数据格式,当数据有异常时返回
请求示例:
[
{
"taskId":"12345aaabbb",
"taskType":"1",
"priority":0,
"origin":"101",
"midpoint":null,
"destination":"A-2-5-1",
"vehicleNo":"TP999",
"vehicleSize":0,
"weight":2.00,
}
]
// 这些数据中只要有一个存在问题,都会返回错误,所有任务就都无效
返回示例:
{
"code":0,
"message":"任务创建成功"
}
{
"code":0,
"message":"任务创建成功",
"returnData":[
{
"taskId":"12345aaabbb",
"taskType":"1",
"priority":0,
"origin":"101",
"midpoint":null,
"destination":"A-2-5-1",
"vehicleNo":"TP999",
"vehicleSize":0,
"weight":2.00,
}
]
}
2、WMS请求变更任务状态
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/changeTaskStatus
使用场景: WMS系统内任务状态发生变更并且需要通知WCS时调用此接口
请求格式:
键名 名称 数据类 长 是否必 是否主 备注
型 度 填 键
taskId WMS任务编 string 64 是 是 唯一任务号,下发任务时使用的
0重新执行任务
1取消/删除任务
taskStatus 任务状态 int 4 是 否 2完成任务
注意: 变更状态后若任务正在执行则设备可能仍然继
续执行任务
请求示例:
{
"taskId":"12423452345",
"taskStatus":1
}
响应示例:
{
"code":0,
"message":"任务取消成功"
}
3、WCS反馈WMS任务状态
客户端WCS
服务端WMS
调用方式POST
接口地址:
使用场景: WCS在任务执行的时间节点通知WMS任务状态
注意: 该接口WCS会尝试多次若多次未调用成功或WMS返回异常则不再调用
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是
唯一任务号,下发任务时使用的
taskStatus 任务状态 int 4 是 否
1任务排队中
vehicleNo 载具号 string 32 是 否 2任务开始执行
destination 任务终点 string 否 3任务已经离开初始位置
message 任务信息 string 32 是 否 4任务到达中间点
5任务到达目的地
128 否 100任务完成
998任务取消
999任务异常
入库任务填库位,出库任务填出库站台
一般用作异常时填写信息
请求示例:
{
"taskId":"235345634534",
"taskStatus":2,
"destination":"102",
"vehicleNo":"T112233"
"message":"任务已经开始执行"
}
响应示例:
{
"code":0,
"message":"成功"
}
4、WCS请求载具入库
客户端WCS
服务端WMS
调用方式POST
接口地址:
使用场景: WCS在扫码入库/盘点回库等情况下需要向WMS发送请求信号WMS收到此信号后若正常则通过任务下发接口下发任务给WCS
请求格式:
键名 名称 数据类 长 是否必 是否主 备注
string 度 填 键
string
point 点位 32 是 否
vehicleNo string
codeMessage 载具编 string 32 是 否
remark 号
512 否 否 若条码含物料信息或者其他需要一并传递的信息将会出
条码信
息 现在此处
备注 256 否 否
响应格式(returnData)
键名 名称 数据类型 长度 是否必填 是否主键 备注
inStand 入库站台 string 64 否 否 入库站台
remark 备注信息 string 128 否 否
请求示例:
{
"point":"101",
"vehicleNo":"TP1001",
"codeMessage":"010001@03423423@手榴弹@100@枚",
"remark":""
}
响应示例:
{
"code":0,
"message":"请求成功",
"returnData":{
"inStand":"101",
"reamrk":""
}
}
5、WMS向WCS推送新的目的地
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/stacker/setStackerTaskNewDestination
使用场景: WMS在设备重复入库时推送新终点任务给WCS
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskId WMS任务编号 string 64 是 是 唯一任务号,和卸货位置有货时的任务号一致
destination 任务终点 string 32 是 否
vehicleNo 载具编号 string 32 是 否
请求示例:
{
"taskId":"12334534",
"destination": "010101",
"vehicleNo":"T0001"
}
箱式线:
1、WMS向WCS发送输送任务
客户端WMS
服务端WCS
调用方式POST
接口地址:/api/wms/convey/setConveyTask
使用场景: WMS推送拣选任务给WCS
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
列表 list
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组编号 string 40 否 否 不填的情况下WCS自动生成
vehicleNo 载具号 string 32 是 否
任务类型:
taskType 任务类型 int 是 否 1拣选
2补货
否 3发货
否 4复核
location 点位 List 128 是
remark 备注 string
256 否
请求示例:
[
{
"taskGroup":"q231231231432",
"vehicleNo":"TP1001",
"taskType": 1,
"location":["2001","2002"],
"remark":""
}
]
响应示例:
{
"code":0,
"message":"请求成功"
}
{
"code":1,
"message":"请求失败,当前任务未全部完结"
}
2、WCS向WMS上报箱子到达
客户端WCS
服务端WMS
调用方式POST
接口地址:
使用场景: WCS向WMS上报箱子到达
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组编号 string 4 是 否
键名 名称 数据类型 长度 是否必填 是否主键 备注
vehicleNo 载具号 string 32 是 否
location 点位 string 32 是 否
remark 备注 string 256 否 否
请求示例:
{
"taskGroup":"q231231231432",
"vehicleNo":"TP1001",
"location":"2001",
"remark":""
}
响应示例:
{
"code":0,
"message":"请求成功"
}
3、WMS请求输送线释放箱子
客户端WMS
服务端WCS
调用方式POST
接口地址:
使用场景: WCS向WMS上报箱子到达
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
location 点位 string 是 否 P1 ~ P9
请求示例:
{
"location":"P3"
}
响应示例:
{
"code":0,
"message":"请求成功"
}
电子标签
1、WMS向WCS发送电子标签任务
客户端WMS
服务端WCS
请求方式POST
接口地址:
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组 string 40 否 否 不填情况下由WCS自动生成
每次发送任务时必须都不一样
taskType 任务类型 int 是 否 任务类型:
1拣选/配件
vehicleNo 载具号 string 32 是 否 2存储任务
否 否 箱号
orderId 订单号 string 32 是 否
任务数据列表
taskData 任务数据 List 是否必填 是否主键
否 是 备注
taskData 数据 是 否 不填情况下由WCS自动生成
否 否 需要拣选或者存储的点位
键名 名称 数据类型 长度 否 否
taskId 任务号 string 40 是 否 部分情况下若不需要数量请填 0
location 点位 string 32
goodsId 物料编号 string 32
goodsName 物料名称 string 64
needNum 需求数量 int
请求示例:
{
"taskGroup":"Boom1234345",
"taskType": 1,
"vehicleNo": "P0001",
"orderId":"DFG1121312312",
"taskData":[
{
"taskId":"T231231",
"location":"1-L-001",
"goodsId":"B0001",
"goodsName":"宝开牌手榴弹",
"needNum": 20
},
{
"taskId":"T243534553453453451",
"location":"1-L-040",
"goodsId":"R0801",
"goodsName":"火箭筒",
"needNum": 13
}
]
}
响应示例:
{
"code":0,
"message":"请求成功"
}
2、WCS向WMS反馈电子标签确认
客户端WCS
服务端WMS
请求方式POST
请求地址:
请求格式:
键名 名称 数据类型 长度 是否必填 是否主键 备注
taskGroup 任务组 string 40 否 否
键名 名称 数据类型 长度 是否必填 是否主键 备注
任务类型:
taskType 任务类型 int 是 否 1拣选/配件
2存储任务
vehicleNo 载具号 string 32 是 否 箱号
orderId 订单号 string 否
taskId 任务号 string 32 否 是 需要拣选或者存储的点位
location 点位 string 否
goodsId 物料编号 string 40 否 否 部分情况下若不需要数量请填 0
goodsName 物料名称 string 否 电子标签的按下确认时显示的数量
needNum 需求数量 int 32 是 否
confirmNum 确认数量 int 否
32 否
64 否
请求示例:
{
"taskGroup":"123123123",
"taskType": 1,
"vehicleNo":"V12123",
"orderId":"234213",
"taskId":"456456",
"location":"1-L-231",
"goodsId":"7867867",
"goodsName":"宝开牌迫击炮",
"needNum": 34,
"confirmNum": 12
}
响应示例:
{
"code":0,
"message":"请求成功"
}

14171
wcs_kate_suzhou.sql Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

View File

@ -0,0 +1,107 @@
# 苏州卡特PLC交互地址
## 箱式线:
### 前置约定
+ 读码失败返回NoRead
+ 没有箱子的时候条码反馈为空字符串
### 1、箱式线写心跳
WCS每隔一秒向PLC指定地址写入int16格式的0
【箱式线写心跳】
### 2、入库站台允许取货
> 数据格式int16INT
>
> 返回值: 0 - 不允许取货1 - 允许取货
>
> 备注:当堆垛机开始取货时,箱式线应该互锁返回不允许取货
【箱式线允许取货1】 ---- 1号堆垛机入库口允许取货
【箱式线允许取货2】 ---- 2号堆垛机入库口允许取货
【箱式线允许取货3】 ---- 3号堆垛机入库口允许取货
【箱式线允许取货4】 ---- 4号堆垛机入库口允许取货
【箱式线允许取货5】 ---- 5号堆垛机入库口允许取货
### 3、出库站台允许卸货
> 数据格式int16INT
>
> 返回值: 0 - 不允许卸货1 - 允许卸货
>
> 当有货或者正在运转或者故障时应该反馈不允许卸货
【箱式线允许卸货1】
【箱式线允许卸货2】
【箱式线允许卸货3】
【箱式线允许卸货4】
【箱式线允许卸货5】
## 堆垛机
### 1、写任务
【堆垛机写任务1-1】
【堆垛机写任务1-2】
【堆垛机写任务2-1】
【堆垛机写任务2-2】
【堆垛机写任务3-1】
【堆垛机写任务3-2】
【堆垛机写任务4-1】
【堆垛机写任务4-2】
【堆垛机写任务5-1】
【堆垛机写任务5-2】
### 2、状态反馈
【堆垛机状态反馈1】
【堆垛机状态反馈2】
【堆垛机状态反馈3】
【堆垛机状态反馈4】
【堆垛机状态反馈5】
### 3、堆垛机写入完成
> 写 1 表示任务写入完成
【堆垛机写任务确认1】
【堆垛机写任务确认2】
【堆垛机写任务确认3】
【堆垛机写任务确认4】
【堆垛机写任务确认5】

Binary file not shown.

Binary file not shown.

Binary file not shown.