chengsc
2024-09-12 d59da24ddf642f6a50d8134ad082eda90dc3dc1e
优化输送线交互逻辑
1个文件已修改
23 ■■■■■ 已修改文件
Admin.NET/WCS.Application/PLC/PLCService.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -670,6 +670,10 @@
                    // 获取工位托盘码信息
                    var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "托盘码");
                    var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
                    if (!res.IsSucceed)
                    {
                        break;
                    }
                    var http = new HttpService();
                    string TaskNo = "", EndLocate = "";
                    strMsg = http.RequestRoadWay(palletVal, modDevice.StationNum, taskModel, louCeng, ref EndLocate, ref TaskNo);
@@ -722,6 +726,10 @@
                    // 获取工位托盘码信息
                    var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "托盘码");
                    var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
                    if (!res.IsSucceed)
                    {
                        break;
                    }
                    string pallet = palletVal.ToString();
                    // 获取任务信息
                    var modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.PalletNo == pallet && (s.Status == TaskStatusEnum.Wait || s.Status == TaskStatusEnum.Doing) && s.TaskType == TaskTypeEnum.In && s.StartRoadway == modDevice.StationNum);
@@ -813,6 +821,10 @@
                    // 获取工位托盘码信息
                    var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "托盘码");
                    var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
                    if (!res.IsSucceed)
                    {
                        break;
                    }
                    var http = new HttpService();
                    string TaskNo = "";
                    // 向WMS申请储位信息
@@ -868,6 +880,10 @@
                    // 获取工位托盘码信息
                    var modPosTaskNo = modDevice.listStation.FirstOrDefault(m => m.Text == "任务号");
                    var (taskRes, taskNoVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTaskNo.PlcPos);
                    if (!res.IsSucceed || !taskRes.IsSucceed )
                    {
                        break;
                    }
                    string pallet = palletVal.ToString();
                    string taskNo = taskNoVal.ToString();
                    // 获取任务信息
@@ -881,7 +897,9 @@
                    var sInfo = PLCCommon.GetStokePlc(modTask.EndRoadway, louCeng);
                    if (string.IsNullOrWhiteSpace(sInfo.Ip))
                    {
                        throw new Exception("根据巷道获取跺机IP失败,请联系管理员");
                        //需加上LED显示
                        Log.Error(string.Format($"根据巷道获取跺机IP失败,请联系管理员"));
                        break;
                    }
                    // 跺机连接
                    var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == sInfo.Ip);
@@ -907,7 +925,8 @@
                        // 获取跺机当前状态
                        var (djRes, djVal) = plcStackeConn.GetPlcDBValue(djMod.PosType, djMod.DbNumber, djMod.PlcPos);
                        if (djVal != "820")
                        if (!djRes.IsSucceed || djVal != "820")
                        {
                            // 跺机非空闲等待
                            break;