| | |
| | | |
| | | using static HH.WCS.Mobox3.DSZSH.Dtos.Request.AgvRequest; |
| | | using static HH.WCS.Mobox3.DSZSH.Dtos.Response.AgvResponse; |
| | | using System.Threading.Tasks; |
| | | using HH.WCS.Mobox3.DSZSH.ServiceCore; |
| | | |
| | | namespace HH.WCS.Mobox3.DSZSH.Services { |
| | | public class AgvService { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 执行 AGV 任务,查询不到任务返回 <see langword="false"/>(私有方法,内部调用) |
| | | /// 执行 AGV 任务,查询不到任务返回 <see langword="false"/> |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | |
| | | TaskHelper.UpdateStatus(TN_Task, "取货完成"); // 任务状态改成取货完成 |
| | | TaskHelper.OperateStatus(TN_Task, 4); // 起点容器货位解绑,解锁起点 |
| | | |
| | | |
| | | if (TN_Task.S_TYPE == TaskName.成品胶出库) { |
| | | var nextOutboundTask = Task.Run(() => { |
| | | OutboundCore.UpdateTaskState(SpotStateCode.任务执行完成); |
| | | }); |
| | | } |
| | | |
| | | break; |
| | | case AgvStateCode.开始卸货: |
| | |
| | | break; |
| | | case AgvStateCode.完成: |
| | | TaskHelper.End(TN_Task); // 任务状态改成结束 |
| | | |
| | | if (TN_Task.S_TYPE == TaskName.抽检) { |
| | | var checkCompleteTask = Task.Run(() => { |
| | | CheckCore.UpdateTaskState(SpotStateCode.任务执行完成); |
| | | }); |
| | | } |
| | | |
| | | break; |
| | | case AgvStateCode.异常: |
| | | TaskHelper.OperateStatus(TN_Task, 7); // 异常处理 |
| | |
| | | ModbusHelper.Relink(); |
| | | |
| | | try { |
| | | |
| | | |
| | | var prodLineInfo = AppStart.Settings.Config.ProductionLines[0]; |
| | | var prodLineDevice = new ProductionLineDevice(prodLineInfo.PlcIp, prodLineInfo.PlcPort); |
| | | if (!prodLineDevice.LoadDeviceStateOk()) { |
| | | LogHelper.Info("加载设备信息失败"); |
| | | } |
| | | |
| | | var tn_task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.task_no); |
| | | var tn_task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.TaskNo); |
| | | if (tn_task == null) { |
| | | LogHelper.Info($"任务号 '{model.task_no}' 不存在"); |
| | | LogHelper.Info($"任务号 '{model.TaskNo}' 不存在"); |
| | | } |
| | | |
| | | // 待修改:补充不同分支AGV判断 |