#
Junjie
2026-01-20 4528e1dff4193f528998a87550e444bff655a5c3
#
2个文件已添加
411 ■■■■■ 已修改文件
docs/WCS部署手册.md 411 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/WCS部署手册.pdf 补丁 | 查看 | 原始文档 | blame | 历史
docs/WCS²¿ÊðÊÖ²á.md
New file
@@ -0,0 +1,411 @@
# WCS ä»“库控制系统部署手册
## ç³»ç»Ÿæ¦‚è¿°
本项目是 **WCS (Warehouse Control System)** ä»“库控制系统,基于 Spring Boot 2.5.14 æž„建,用于控制和协调仓库自动化设备,包括:
* **堆垛机 (Crn/DualCrn)** - è´§ç‰©å­˜å–设备
* **RGV ç©¿æ¢­è½¦** - è½¨é“穿梭运输设备
* **输送站 (Devp)** - ä¼ é€å¸¦è¾“送设备
* **条码扫描仪 (Barcode)** - è´§ç‰©è¯†åˆ«è®¾å¤‡
### æŠ€æœ¯æ ˆ
| ç»„ä»¶           | ç‰ˆæœ¬     | è¯´æ˜Ž      |
| ------------ | ------ | ------- |
| Java         | 1.8    | è¿è¡Œæ—¶çŽ¯å¢ƒ   |
| Spring Boot  | 2.5.14 | åº”用框架    |
| MySQL        | 5.7    | ä¸»æ•°æ®åº“    |
| Redis        | 5.0+   | ç¼“存与消息队列 |
| MyBatis-Plus | 2.3.2  | ORM æ¡†æž¶  |
| Tomcat       | å†…嵌/外置  | Web å®¹å™¨  |
***
## çŽ¯å¢ƒè¦æ±‚
### ç¡¬ä»¶è¦æ±‚
| é¡¹ç›®  | æœ€ä½Žé…ç½®   | æŽ¨èé…ç½®        |
| --- | ------ | ----------- |
| CPU | 4 æ ¸    | 8 æ ¸+        |
| å†…å­˜  | 8 GB   | 16 GB+      |
| ç¡¬ç›˜  | 100 GB | 500 GB+ SSD |
| ç½‘络  | åƒå…†ç½‘卡   | åƒå…†ç½‘卡        |
### è½¯ä»¶è¦æ±‚
| è½¯ä»¶     | ç‰ˆæœ¬          | å¿…需    |
| ------ | ----------- | ----- |
| JDK    | 1.8.x       | âœ…     |
| MySQL  | 5.7+ æˆ– 8.0+ | âœ…     |
| Redis  | 5.0+        | âœ…     |
| Maven  | 3.6+        | âœ… æž„建时 |
| Tomcat | 9.x (可选)    | âŒ     |
### ç½‘络端口
| ç«¯å£   | ç”¨é€”        | åè®®   |
| ---- | --------- | ---- |
| 9090 | WCS åº”用服务  | HTTP |
| 3306 | MySQL æ•°æ®åº“ | TCP  |
| 6379 | Redis ç¼“å­˜  | TCP  |
| è®¾å¤‡ç«¯å£ | PLC/设备通信  | TCP  |
> \[!IMPORTANT]
> ç¡®ä¿é˜²ç«å¢™å¼€æ”¾ä¸Šè¿°ç«¯å£ï¼Œä¸” WCS æœåŠ¡å™¨èƒ½å¤Ÿè®¿é—®æ‰€æœ‰è®¾å¤‡çš„ IP åœ°å€å’Œç«¯å£ã€‚
***
## ä¾èµ–安装
### 1. å®‰è£… JDK 1.8
```bash
# Windows - ä¸‹è½½å¹¶å®‰è£… Oracle JDK æˆ– OpenJDK 1.8
# è®¾ç½®çŽ¯å¢ƒå˜é‡
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_xxx
PATH=%JAVA_HOME%\bin;%PATH%
# éªŒè¯å®‰è£…
java -version
```
### 2. å®‰è£… MySQL
```bash
# å®‰è£… MySQL 5.7+
# åˆ›å»ºæ•°æ®åº“
mysql -u root -p
CREATE DATABASE wcs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
### 3. å®‰è£… Redis
```bash
# Windows: ä¸‹è½½ Redis for Windows
# Linux:
sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server
# éªŒè¯è¿žæŽ¥
redis-cli ping
```
### 4. å®‰è£…自定义框架
项目依赖 `cn.cool:framework:3.4.0`,需手动安装到本地 Maven ä»“库:
```bash
cd version/lib
mvn install:install-file -Dfile=framework-3.4.0.jar -DgroupId=cn.cool -DartifactId=framework -Dversion=3.4.0 -Dpackaging=jar -DgeneratePom=true
```
***
## é…ç½®è¯´æ˜Ž
主配置文件位于 `src/main/resources/application.yml`
### æ ¸å¿ƒé…ç½®é¡¹
```yaml
# === ç³»ç»Ÿç‰ˆæœ¬ ===
app:
  version: 1.0.2.1           # ç³»ç»Ÿç‰ˆæœ¬å·
  version-type: prd           # prd=生产环境, dev=开发环境
# === æœåŠ¡é…ç½® ===
server:
  port: 9090                  # æœåŠ¡ç«¯å£
  servlet:
    context-path: /wcs        # ä¸Šä¸‹æ–‡è·¯å¾„
  shutdown: graceful          # ä¼˜é›…关闭
# === æ•°æ®åº“配置 ===
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/wcs?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root            # ä¿®æ”¹ä¸ºå®žé™…用户名
    password: root            # ä¿®æ”¹ä¸ºå®žé™…密码
# === Redis é…ç½® ===
  redis:
    host: 127.0.0.1           # Redis åœ°å€
    port: 6379                # Redis ç«¯å£
    database: 0               # æ•°æ®åº“索引
    # password: 123456        # å¦‚有密码,取消注释
# === æ—¥å¿—配置 ===
logging:
  file:
    path: /stock/out/wcs/logs  # æ—¥å¿—存储路径
# === Swagger API æ–‡æ¡£ ===
swagger:
  enable: false               # ç”Ÿäº§çŽ¯å¢ƒå»ºè®®å…³é—­
# === License é…ç½® ===
license:
  subject: crnWcsDev
  publicAlias: publicCert
  storePass: public_zhongyang_123456789
  licensePath: license.lic
  publicKeysStorePath: publicCerts.keystore
# === è®¾å¤‡æ—¥å¿—配置 ===
deviceLogStorage:
  type: file                  # mysql æˆ– file
  loggingPath: /stock/out/wcs/deviceLogs
  expireDays: 7               # æ—¥å¿—保留天数
```
> \[!WARNING]
> **生产环境部署前必须修改:**
>
> * æ•°æ®åº“用户名和密码
>
> * Redis å¯†ç ï¼ˆå¦‚有)
>
> * `swagger.enable` è®¾ç½®ä¸º `false`
>
> * `app.version-type` è®¾ç½®ä¸º `prd`
***
## æ•°æ®åº“配置
### 1. åˆ›å»ºæ•°æ®åº“
```sql
CREATE DATABASE wcs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wcs'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wcs.* TO 'wcs'@'%';
FLUSH PRIVILEGES;
```
### 2. å¯¼å…¥æ•°æ®åº“结构
数据库备份文件位于 `src/main/resources/sql/` ç›®å½•(.nb3 æ ¼å¼ï¼Œä½¿ç”¨ Navicat å¯¼å…¥ï¼‰ã€‚
### 3. æ ¸å¿ƒæ•°æ®è¡¨
| è¡¨å                  | è¯´æ˜Ž     |
| ------------------- | ------ |
| `rcs_device_config` | è®¾å¤‡é…ç½®è¡¨  |
| `sys_user`          | ç³»ç»Ÿç”¨æˆ·è¡¨  |
| `sys_config`        | ç³»ç»Ÿé…ç½®è¡¨  |
| `wrk_mast`          | å·¥ä½œä»»åŠ¡ä¸»è¡¨ |
| `loc_mast`          | åº“位主表   |
| `bas_*`             | åŸºç¡€æ•°æ®è¡¨  |
### 4. è®¾å¤‡é…ç½®è¡¨ (rcs\_device\_config)
部署时需要在 `rcs_device_config` è¡¨ä¸­é…ç½®è®¾å¤‡ä¿¡æ¯ï¼š
| å­—段            | è¯´æ˜Ž               | ç¤ºä¾‹                   |
| ------------- | ---------------- | -------------------- |
| `ip`          | è®¾å¤‡ IP åœ°å€         | 192.168.1.100        |
| `port`        | è®¾å¤‡ç«¯å£             | 502                  |
| `device_type` | è®¾å¤‡ç±»åž‹             | Crn/DualCrn/Rgv/Devp |
| `device_no`   | è®¾å¤‡ç¼–号             | 1                    |
| `thread_impl` | çº¿ç¨‹å®žçŽ°ç±»            | ZySiemensCrnThread   |
| `fake`        | æ˜¯å¦è™šæ‹Ÿè®¾å¤‡ (1=是,0=否) | 0                    |
**设备类型与线程实现对照:**
| è®¾å¤‡ç±»åž‹             | çº¿ç¨‹å®žçŽ°ç±»                               |
| ---------------- | ----------------------------------- |
| Crn (堆垛机)        | ZySiemensCrnThread                  |
| DualCrn (双工位堆垛机) | ZySiemensDualCrnThread              |
| Rgv (穿梭车)        | ZyRgvThread                         |
| Devp (输送站)       | ZyStationThread / ZyStationV3Thread |
***
## æž„建与部署
### æ–¹å¼ä¸€ï¼šWAR åŒ…部署(推荐生产环境)
```bash
# 1. æž„建 WAR åŒ…
cd zy-wcs-master
mvn clean package -DskipTests
# 2. WAR åŒ…生成位置
target/wcs.war
# 3. éƒ¨ç½²åˆ° Tomcat
cp target/wcs.war $TOMCAT_HOME/webapps/
# 4. å¯åЍ Tomcat
$TOMCAT_HOME/bin/startup.sh    # Linux
$TOMCAT_HOME/bin/startup.bat   # Windows
```
### æ–¹å¼äºŒï¼šå†…嵌 Tomcat å¯åŠ¨ï¼ˆå¼€å‘/测试)
```bash
# ç›´æŽ¥è¿è¡Œæ‰“包后的 WAR
java -jar target/wcs.war
```
***
## å¯åŠ¨ä¸ŽéªŒè¯
### 1. å¯åŠ¨é¡ºåº
```
1. MySQL æ•°æ®åº“
2. Redis æœåŠ¡
3. WCS åº”用服务
```
### 2. éªŒè¯æœåŠ¡
```bash
# æ£€æŸ¥æœåŠ¡ç«¯å£
netstat -tlnp | grep 9090
# è®¿é—®å¥åº·æ£€æŸ¥æŽ¥å£
curl http://localhost:9090/wcs/views/index.html
```
### 3. è®¿é—®ç³»ç»Ÿ
打开浏览器访问:`http://<服务器IP>:9090/wcs`
***
## æ—¥å¿—与监控
### æ—¥å¿—文件位置
| æ—¥å¿—类型 | è·¯å¾„                              |
| ---- | ------------------------------- |
| åº”用日志 | `/stock/out/wcs/logs/info.log`  |
| é”™è¯¯æ—¥å¿— | `/stock/out/wcs/logs/error.log` |
| è®¾å¤‡æ—¥å¿— | `/stock/out/wcs/deviceLogs/`    |
### æ—¥å¿—配置
日志通过 `logback-spring.xml` é…ç½®ï¼š
* **日志级别:** INFO
* **单文件大小:** 10MB
* **保留历史:** 10 å¤©
* **设备日志过期:** 7 å¤© (可在 application.yml ä¸­é…ç½®)
***
## åˆå§‹åŒ–设备配置
配置需要的设备IP、端口等信息,如需使用仿真,则启用仿真。设备配置修改过后,需要重启程序!
![image-20260120141341652](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120141341652.png)
## å¯¼å…¥åœ°å›¾
使用标准Excel地图进行导入,导入完成后进行初始化库位(输入楼层),系统会自动初始化库位信息
![image-20260120141800632](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120141800632.png)
![image-20260120141817524](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120141817524.png)
## å †åž›æœºå‚数设置
设置堆垛机控制排号、深库位排号(单深则设置空数组)
入站、出站参数Demo:
stationId:站点编号
deviceNo:站点PLC编号
deviceRow:堆垛机执行排
deviceBay:堆垛机执行列
deviceLev:堆垛机执行层
```bash
[{"stationId":1003,"deviceNo":1,"deviceRow":1,"deviceBay":1,"deviceLev":1}]
```
![image-20260120141949020](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120141949020.png)
注意:双工位堆垛机配置相似
## ç«™ç‚¹è®¾å¤‡åŒºåŸŸç»‘定
站点与堆垛机进行入库关联绑定,如设置了绑定关系则WCS会优先上报该区域设备。未设置的区域按默认规则上报
![image-20260120142549744](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120142549744.png)
## å‡ºåº“区域绑定
出库站与出库区域绑定配置,设置绑定区域关联后,允许WMS系统出库任务下发区域编号。默认未设置区域绑定关联时,WMS系统出库任务下发必须携带出库站点编号
![image-20260120142715026](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120142715026.png)
## ä¸»æŽ§ç›‘控画面
支持拖拽移动、缩放大小、点击交互。左侧信息区域可查看设备信息、下发控制指令
![image-20260120142931270](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120142931270.png)
## WCS上报配置
WCS上报WMS(第三方系统)需要配置消息通知Uri和消息通知Path,消息通知内容格式见WCS API文档
![image-20260120143826263](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120143826263.png)
## WCS入库请求配置
WCS请求WMS(第三方系统)进行入库接口配置
![image-20260120144007095](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120144007095.png)
## AI功能
WCS默认支持AI功能。AI能力具备一键诊断系统和通过自然语言与WCS系统进行对话。
一键诊断系统:AI会调用WCS开放的数据,针对设备实时日志、任务状态、设备状态等情况综合分析系统运行情况
对话:可咨询AI关于WCS系统问题
![image-20260120143030511](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120143030511.png)
![image-20260120143043956](C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20260120143043956.png)
docs/WCS²¿ÊðÊÖ²á.pdf
Binary files differ