# 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: jsxswcs1 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)