From d4beffac7005967f3eeb5b175170de20ab963781 Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期五, 13 九月 2024 11:35:00 +0800 Subject: [PATCH] PLC添加禁用,修改写入bug --- Admin.NET/WCS.Application/PLC/PLCService.cs | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 44 insertions(+), 3 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index d1253f1..4856b54 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -42,6 +42,9 @@ case PLCTypeEnum.PalletMachine: PalletMachine(mod); break; + case PLCTypeEnum.StackingRobot: + PalletMachine(mod); + break; default: break; } @@ -670,6 +673,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 +729,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 +824,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 = ""; // 鍚慦MS鐢宠鍌ㄤ綅淇℃伅 @@ -868,6 +883,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 +900,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); @@ -902,12 +923,13 @@ var djMod = PLCTaskAction.plcDevices.First(m => m.StationNum == modTask.EndRoadway && m.DeviceType == DeviceTypeEnum.Business && m.IsDelete == false); - var djInfos = PLCTaskAction.plcStation.Where(m => m.IsDelete == false && m.DeviceId == djMod.Id).ToList(); + var djInfos = PLCTaskAction.plcPositions.Where(m => m.IsDelete == false && m.DeviceId == djMod.Id).ToList(); var djInfo = djInfos.First(m => m.Text == "PLC娴佺▼瀛�"); // 鑾峰彇璺烘満褰撳墠鐘舵�� var (djRes, djVal) = plcStackeConn.GetPlcDBValue(djMod.PosType, djMod.DbNumber, djMod.PlcPos); - if (djVal != "820") + + if (!djRes.IsSucceed || djVal != "820") { // 璺烘満闈炵┖闂茬瓑寰� break; @@ -1104,6 +1126,25 @@ } + /// <summary> + /// 鎷嗗灈鏈哄櫒浜轰笟鍔″鐞� + /// </summary> + /// <param name="modDevice"></param> + private static void StackingRobot(WcsDeviceDto modDevice) + { + var plcConn = modDevice.PLCUtil; + switch (modDevice.Value.ToString()) + { + case "0": + { + // 鑻ユ媶鍨涘伐浣嶄负绌洪棽锛屾煡璇换鍔¤〃鏄惁鏈夋湭缁戝畾鐨勫嚭搴撲换鍔★紝鍋氱粦瀹氭搷浣� + } + break; + default: + break; + } + } + private static void Test(WcsDeviceDto modDevice) { //鍐欐娴嬭瘯璇籹tring -- Gitblit v1.8.0