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.

2.9 KiB

TODO

已完成

  • [] HoistServer (端口 5100) — 提升机调度 APISwagger /swagger4 个 Hub 方法
  • [] HikRoBotServer (端口 5200) — AGV 调度 APISwagger /swagger
  • [] UI 引擎启停控制 — 系统监控页分别启动/停止两个服务器进程
  • [] 码垛机 HMI 页面 — 静态界面,手动操作区带开关按钮
  • [] 删除确认弹窗 — 所有删除操作弹出 ConfirmDialog
  • [] 浅色/深色主题 — 一键切换,全视图适配

待完成

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

2. 任务执行引擎(分组并行方案)

  • 包材入库逻辑测试
  • 包材出库、成品入库、成品出库逻辑测试
  • 任务执行引擎抽象,优化代码结构

3. UI 优化

  • 码垛机 HMI 接入实时 PLC 数据
  • 任务页面添加"下发"按钮(调用 HoistServer/HikRoBotServer API

4. 登录与权限

  • 登录窗口 + 用户认证
  • 菜单权限控制