| | |
| | | ## ShanMeiXinNengYuan |
| | | |
| | | 陕煤新能源立库 |
| | | |
| | | # ShanMeiXinNengYuan |
| | | |
| | | 陕煤新能源立库(WCS仓库控制系统) |
| | | |
| | | ## 项目简介 |
| | | |
| | | 陕煤新能源立库是一个功能完善的仓库控制系统(WCS),用于自动化立体仓库的设备控制与任务调度。系统支持堆垛机、输送线、机器人等多种仓储设备的实时通信与监控,实现入库、出库、移库等核心仓储业务流程的自动化管理。 |
| | | |
| | | ## 技术架构 |
| | | |
| | | ### 前端技术栈 |
| | | - **框架**: Vue 3 + Vite |
| | | - **UI组件**: Element Plus |
| | | - **路由**: Vue Router |
| | | - **状态管理**: Pinia |
| | | - **图表**: ECharts |
| | | |
| | | ### 后端技术栈 |
| | | - **框架**: ASP.NET Core 7 |
| | | - **ORM**: SqlSugar |
| | | - **任务调度**: Quartz.NET |
| | | - **缓存**: Redis + MemoryCache |
| | | - **通信协议**: 多种工业PLC通信 |
| | | |
| | | ### 支持的设备通信协议 |
| | | - 西门子 S7 / S7200Smart |
| | | - Modbus TCP |
| | | - 欧姆龙 EtherNet/IP |
| | | - 罗克韦尔 Allen Bradley EtherNet/IP |
| | | - 汇川 H5U / AM 系列 |
| | | - 串口通信 |
| | | |
| | | ## 核心功能模块 |
| | | |
| | | ### 任务管理 |
| | | - 入库任务 |
| | | - 出库任务 |
| | | - 移库任务 |
| | | - 机器人任务 |
| | | |
| | | ### 设备管理 |
| | | - 堆垛机控制 |
| | | - 输送线控制 |
| | | - 穿梭车控制 |
| | | - 拘束机控制 |
| | | - 插拔钉机控制 |
| | | |
| | | ### 路由管理 |
| | | - 设备路由配置 |
| | | - 路径规划 |
| | | - 位置管理 |
| | | |
| | | ### 系统管理 |
| | | - 用户权限管理 |
| | | - 角色管理 |
| | | - 部门管理 |
| | | - 字典配置 |
| | | - 日志管理 |
| | | |
| | | ## 项目结构 |
| | | |
| | | ``` |
| | | Code/WCS/ |
| | | ├── WIDESEAWCS_Client/ # 前端项目 |
| | | │ ├── src/ |
| | | │ │ ├── api/ # API请求封装 |
| | | │ │ ├── components/ # 公共组件 |
| | | │ │ ├── extension/ # 业务扩展 |
| | | │ │ ├── router/ # 路由配置 |
| | | │ │ ├── store/ # 状态管理 |
| | | │ │ ├── views/ # 页面视图 |
| | | │ │ └── uitils/ # 工具函数 |
| | | │ └── package.json |
| | | │ |
| | | └── WIDESEAWCS_Server/ # 后端项目 |
| | | ├── WIDESEAWCS_Common/ # 公共枚举/常量 |
| | | ├── WIDESEAWCS_Communicator/ # PLC通信模块 |
| | | ├── WIDESEAWCS_Core/ # 核心框架 |
| | | ├── WIDESEAWCS_DTO/ # 数据传输对象 |
| | | ├── WIDESEAWCS_Model/ # 实体模型 |
| | | ├── WIDESEAWCS_QuartzJob/ # Quartz任务 |
| | | ├── WIDESEAWCS_RedisService/ # Redis服务 |
| | | └── WIDESEAWCS_Server/ # 控制器 |
| | | ``` |
| | | |
| | | ## 环境要求 |
| | | |
| | | ### 前端 |
| | | - Node.js 16+ |
| | | - npm 8+ |
| | | |
| | | ### 后端 |
| | | - .NET 7.0 SDK |
| | | - SQL Server 2019+ |
| | | - Redis 6.0+ |
| | | |
| | | ## 配置说明 |
| | | |
| | | ### 数据库连接配置 |
| | | 在 `appsettings.json` 中配置数据库连接字符串: |
| | | |
| | | ```json |
| | | { |
| | | "ConnectionStrings": { |
| | | "DefaultDb": "Server=localhost;Database=WCS;Uid=sa;Pwd=yourpassword;TrustServerCertificate=true" |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### Redis配置 |
| | | ```json |
| | | { |
| | | "Redis": { |
| | | "Enabled": true, |
| | | "ConnectionString": "127.0.0.1:6379,defaultDatabase=0", |
| | | "InstanceName": "WCS:", |
| | | "DefaultDatabase": 0 |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### 设备通信配置 |
| | | 在数据库 `Dt_DeviceInfo` 表中配置设备信息,包括: |
| | | - 设备编号 |
| | | - 设备名称 |
| | | - 设备类型 |
| | | - IP地址 |
| | | - 端口 |
| | | - PLC型号 |
| | | |
| | | ## 快速开始 |
| | | |
| | | ### 后端启动 |
| | | |
| | | ```bash |
| | | cd Code/WCS/WIDESEAWCS_Server |
| | | |
| | | # 还原依赖 |
| | | dotnet restore |
| | | |
| | | # 构建项目 |
| | | dotnet build |
| | | |
| | | # 启动服务 |
| | | dotnet run |
| | | ``` |
| | | |
| | | ### 前端启动 |
| | | |
| | | ```bash |
| | | cd Code/WCS/WIDESEAWCS_Client |
| | | |
| | | # 安装依赖 |
| | | npm install |
| | | |
| | | # 启动开发服务器 |
| | | npm run dev |
| | | ``` |
| | | |
| | | ## 业务流程 |
| | | |
| | | ### 入库流程 |
| | | 1. WMS系统下发入库任务 |
| | | 2. WCS系统创建入库任务记录 |
| | | 3. 分配堆垛机执行任务 |
| | | 4. 输送线接收货物 |
| | | 5. 堆垛机将货物存入目标库位 |
| | | 6. 任务完成,更新状态 |
| | | |
| | | ### 出库流程 |
| | | 1. WMS系统下发出库任务 |
| | | 2. WCS系统创建出库任务记录 |
| | | 3. 堆垛机从库位取货 |
| | | 4. 输送线运输至出库口 |
| | | 5. 任务完成,更新状态 |
| | | |
| | | ## 任务状态说明 |
| | | |
| | | ### 入库任务状态 |
| | | - `0`: 待执行 |
| | | - `1`: 已分配 |
| | | - `2`: 执行中 |
| | | - `3`: 待确认 |
| | | - `4`: 完成 |
| | | |
| | | ### 出库任务状态 |
| | | - `0`: 待执行 |
| | | - `1`: 已分配 |
| | | - `2`: 执行中 |
| | | - `3`: 已出库 |
| | | - `4`: 完成 |
| | | |
| | | ## 重要说明 |
| | | |
| | | 1. **安全库存**: 系统设置最大任务数为100,超过时拒绝新任务 |
| | | 2. **设备心跳**: 定时检测设备连接状态 |
| | | 3. **任务超时**: 任务配置超时自动处理机制 |
| | | 4. **事务支持**: 关键操作使用事务保证数据一致性 |
| | | |
| | | ## License |
| | | |
| | | 本项目仅供内部使用。 |