Administrator
2025-06-10 13a442afefdddf1ec9ecd1e22c81735bf5c6a465
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -332,7 +332,7 @@
                        Thread.Sleep(5000);
                        Thread.Sleep(2000);
                    }
                    catch (OperationCanceledException)
                    {
@@ -407,29 +407,31 @@
                        var text = "";
                        var devStation = "";
                        var ip = "";
                        var carcon = new carConverModel();
                        if (carcon.conveyorBei.Keys.Contains(endLocate))
                        {
                            text = "输送线北";
                            ip = "10.26.254.10";
                            devStation = carcon.conveyorBei[endLocate];
                        }
                        else if (carcon.conveyorNan.Keys.Contains(endLocate))
                        {
                            text = "输送线南";
                            ip = "10.26.254.11";
                            devStation = carcon.conveyorNan[endLocate];
                        }
                        if (text != "")
                        {
                            var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Text == text);
                            var modConn = new PLCUtil(modPlc);
                            //var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Text == text);
                            //var modConn = new PLCUtil(modPlc);
                            var modConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == ip);
                            var modDevice = PLCTaskAction.plcDevices.First(s => s.StationNum == devStation);
                            var (plcResult, palletVal) = modConn.GetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.PlcPos);
                            if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) != 720)
                            {
                                continue;//放货工位没有读取成功或不是空闲
                            }
                            modConn.Close();
                            var gongwei = carcon.conveyorRuKu[endLocate];
                            //判断任务
@@ -493,6 +495,12 @@
                                        break; //暂缓分配,防止同层小车关机或失联导致阻挡路径
                                    }
                                }
                                var modCarPall = plcPosition.FirstOrDefault(s => s.Text == "托盘检测");
                                var (resultPall, valuePall) = modbusUtil.GetDBValue(modCarPall.PosType, modCarPall.PlcPos);
                                if (resultPall.IsSucceed && valuePall  == 1)  //1有托盘 2无托盘
                                {
                                    break; //暂缓分配
                                }
                                //小车空闲加入集合
                                if (value == 1)
                                {