You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
2.9 KiB
Markdown

3 weeks ago
# TODO
## 已完成
- [✅] HoistServer (端口 5100) — 提升机调度 APISwagger `/swagger`4 个 Hub 方法
- [✅] HikRoBotServer (端口 5200) — AGV 调度 APISwagger `/swagger`
- [✅] UI 引擎启停控制 — 系统监控页分别启动/停止两个服务器进程
- [✅] 码垛机 HMI 页面 — 静态界面,手动操作区带开关按钮
- [✅] 删除确认弹窗 — 所有删除操作弹出 ConfirmDialog
- [✅] 浅色/深色主题 — 一键切换,全视图适配
3 weeks ago
## 待完成
### 1.调度逻辑修改
- [✅] 任务明细与操作设备关联:提升机-获取到空闲设备后将确定分配任务的提升机编号存入
- [✅] HoistDispatcher、HikRoBotDispatcher任务下发后需要监控任务执行情况任务执行完成后才可以返回ok给Strategy
- [✅] AGV 任务下发后开始获取任务状态(调用/task/status只有状态为FINISHED/MANUALED完成或手动完成时才可以进行后序任务CANCELLED时终端调度任务后序也不执行
WAIT => 等待步骤执行:筛选提升机、下发提升机任务“参考手动任务执行界面的任务执行事件逻辑”
FINISHED/MANUALED => 完成/手动完成,可以进行后序任务
CANCELLED => 任务取消,终止调度任务
- [] Strategy执行到提升机任务时调用提升机调度中心的接收物料接口“receive-pallet”验证物料并下发提升机启动信号
- [] WCS 任务起始点转换为AGV 定位码:提升机接驳位(根据楼层+提升机编号判断、AGV 等待点(楼层/15 栋判断出入库提升机)
### 任务创建修改
- [✅] 添加手动放、手动取操作,如果是手动放,任务从提升机开始,手动取也是以提升机结束
- [✅] 手动放:任务执行则下发提升机任务
### MaterialInStoreExecutor 优化
- [ ] ExecuteAsync + Thread.Join 阻塞主循环(`:92-114`)—— 改为 Task.Run + WhenAll独立轮询不互相阻塞
- [ ] AGV 状态轮询加超时保护(`:200`)—— 避免 AGV 无终态时线程永久卡死
- [ ] 空闲提升机轮询加超时保护(`:248`)—— 避免 PLC 离线时永久卡死
- [ ] 等待提升机完成轮询加超时保护(`:393`)—— 同上
- [ ] DbWriteLock 全局锁优化(`:24`)—— 改为独立 Scope/Context 避免并发写阻塞
- [ ] new Thread + GetAwaiter 改 Task.Run`:92-111`)—— 减少线程浪费
- [ ] HttpClient 复用(`:173,362,392`)—— 使用 IHttpClientFactory 或静态实例
- [ ] DispatchConveyorAsync 补充输送线逻辑(`:419-422`
3 weeks ago
### 2. 任务执行引擎(分组并行方案)
- [ ] 包材入库逻辑测试
- [ ] 包材出库、成品入库、成品出库逻辑测试
- [ ] 任务执行引擎抽象,优化代码结构
3 weeks ago
### 3. UI 优化
- [ ] 码垛机 HMI 接入实时 PLC 数据
- [ ] 任务页面添加"下发"按钮(调用 HoistServer/HikRoBotServer API
### 4. 登录与权限
- [ ] 登录窗口 + 用户认证
- [ ] 菜单权限控制