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
2.9 KiB
TODO
已完成
- [✅] HoistServer (端口 5100) — 提升机调度 API,Swagger
/swagger,4 个 Hub 方法 - [✅] HikRoBotServer (端口 5200) — AGV 调度 API,Swagger
/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. 登录与权限
- 登录窗口 + 用户认证
- 菜单权限控制