From fdab33a6b12d09c898606f15e40178b44e174721 Mon Sep 17 00:00:00 2001 From: IPC-610 <IPC-610@DESKTOP-6LEOOS3> Date: 星期四, 26 九月 2024 17:00:16 +0800 Subject: [PATCH] 码垛交互流程 --- Admin.NET/WCS.Application/PLC/PLCService.cs | 40 +++++++++++++++++++++++++++++----------- Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 2 +- Admin.NET/WCS.Application/Hub/PlcHub.cs | 18 +++++++++++++++++- 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/Admin.NET/WCS.Application/Hub/PlcHub.cs b/Admin.NET/WCS.Application/Hub/PlcHub.cs index 32b4253..282d65e 100644 --- a/Admin.NET/WCS.Application/Hub/PlcHub.cs +++ b/Admin.NET/WCS.Application/Hub/PlcHub.cs @@ -99,7 +99,23 @@ var ret = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Bit, "DB119", "0", PLCTaskAction.boDemo == true ? "1" : "0"); if (ret.IsSucceed) { - await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value); + if (PLCTaskAction.boDemo) + { + // 鍐欏叆plc鎶撶鍝佺 + var rett = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Short, "DB111", "0", "1"); + if (rett.IsSucceed) + { + await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value); + } + } + else + { + var rett = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Short, "DB111", "0", "0"); + if (rett.IsSucceed) + { + await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value); + } + } } else { diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index 740df09..c9b3ec2 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -1217,8 +1217,8 @@ #endregion } break; - #region 鍑哄簱浜や簰 + #region 鍑哄簱浜や簰 case "420": { #region 鎵樼洏鍒拌揪鎷i�夊伐浣�/鍑哄簱鍙� @@ -1345,6 +1345,20 @@ #endregion + case "50": + // plc鐢宠绌烘墭 + { + // 璋冪敤WMS绌烘墭鍑哄簱鎺ュ彛锛岃繑鍥炲嚭搴撲换鍔″瓨鍏ュ嚭搴撹〃 + + // 鍐欏叆 + } + break; + case "80": + // 绌烘墭鐩樿泛宸插埌浣� + { + + } + break; default: break; } @@ -1415,7 +1429,7 @@ { // 鍐欏叆娴佺▼鎺у埗瀛� 2 var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); - if (retVal.IsSucceed) + if (!retVal.IsSucceed) { Log.Error("婕旂ず妯″紡鍐欏叆鍒嗛亾鍙峰け璐�!"); break; @@ -1614,9 +1628,9 @@ { // 鏍规嵁宸ヤ綅鍙凤紝鑾峰彇鎵樼洏鍙� var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false); - // 鏍规嵁宸ヤ綅鍙疯幏鍙栨墭鐩樼嚎璇ュ伐浣嶅彿鐨勯厤缃俊鎭� - var numModel = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business); - var posModel = PLCTaskAction.plcPositions.First(m => m.DeviceId == numModel.Id && m.Text == "鐩爣宸ヤ綅" && m.IsDelete == false); + // 鏍规嵁宸ヤ綅鍙疯幏鍙� 鎵樼洏绾胯宸ヤ綅鍙风殑閰嶇疆淇℃伅 + var numModel = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId != modDevice.PlcId); + var posModel = PLCTaskAction.plcPositions.First(m => m.DeviceId == numModel.Id && m.Text == "鐩殑宸ヤ綅" && m.IsDelete == false); if (checkTaskMedel == null) { Log.Error(string.Format("缁勬墭澶辫触鏍规嵁鐮佸灈宸ヤ綅{0}锛岃幏鍙栨墭鐩樺彿澶辫触!", modDevice.StationNum)); @@ -1634,13 +1648,14 @@ // 鐮佸灈宸ヤ綅鎵樼洏鍙� string palletNo = checkTaskMedel.PalletNo; + // 鏄惁婕旂ず妯″紡 if (PLCTaskAction.boDemo) { // 鐩存帴绠眞ms鐢宠宸烽亾 var http = new HttpService(); string TaskNo = "", EndLocate = ""; string strMsg = http.RequestRoadWay(palletNo, modDevice.StationNum, "1", "2", ref EndLocate, ref TaskNo); - if (!strMsg.Contains("-1")) + if (strMsg.Contains("-1")) { Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0};鍘熷洜{1}", modDevice.StationNum, strMsg)); break; @@ -1651,13 +1666,14 @@ var taskModel = _db.Queryable<WcsTask>().First(m => m.TaskNo == TaskNo && m.IsDelete == false && m.Status == TaskStatusEnum.Wait); if (taskModel != null) { - // 鍐欏叆鐮佸灈宸ヤ綅鐩爣宸ヤ綅锛屽啓鍏ヤ氦浜掓祦绋嬬粍鎵樻垚鍔� 鎵ц鍏ュ簱 - string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2"); // 鑾峰彇鍏ュ簱鍙栬揣宸ヤ綅 + // 鑾峰彇鍏ュ簱鍙栬揣宸ヤ綅 + string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2"); + // 鍐欏叆鎵樼洏杈撻�佺嚎鐮佸灈宸ヤ綅 鐩殑宸ヤ綅锛屽啓鍏ヤ氦浜掓祦绋嬬粍鎵樻垚鍔� 鎵ц鍏ュ簱{鑻ラ渶瑕佸彲浠ュ啓鍏ヤ换鍔″彿绛夌瓑鍏朵粬淇℃伅} var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, endLocatVlue); if (retVal.IsSucceed) { - // 鍐欏叆缁勬墭鍥炲娴佺▼瀛� + // 鍐欏叆鐮佸灈浜や簰-缁勬墭鍥炲娴佺▼瀛� retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50"); // 灏嗗叆搴撲换鍔$敱姝e湪鎵ц鏀逛负姝e湪鎵ц @@ -1707,8 +1723,10 @@ var taskModel = _db.Queryable<WcsTask>().First(m => m.TaskNo == TaskNo && m.IsDelete == false && m.Status == TaskStatusEnum.Wait); if (taskModel != null) { - // 鍐欏叆鐮佸灈宸ヤ綅鐩爣宸ヤ綅锛屽啓鍏ヤ氦浜掓祦绋嬬粍鎵樻垚鍔� 鎵ц鍏ュ簱 - string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2"); // 鑾峰彇鍏ュ簱鍙栬揣宸ヤ綅 + // 鑾峰彇鍏ュ簱鍙栬揣宸ヤ綅 + string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2"); + + // 鍐欏叆鎵樼洏杈撻�佺嚎鐮佸灈宸ヤ綅 鐩殑宸ヤ綅锛屽啓鍏ヤ氦浜掓祦绋嬬粍鎵樻垚鍔� 鎵ц鍏ュ簱{鑻ラ渶瑕佸彲浠ュ啓鍏ヤ换鍔″彿绛夌瓑鍏朵粬淇℃伅} var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, endLocatVlue); if (retVal.IsSucceed) { diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs index 709db5d..ee3557b 100644 --- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs +++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs @@ -153,7 +153,7 @@ { //Console.WriteLine($"{modPlc.IP}璇诲彇{modDevice.DbNumber}.{modDevice.PlcPos}鐨勫�间负锛歿value}"); //鏃犳祦绋嬭烦鍑� - if (value == 0 && modPlc.Type != PLCTypeEnum.BoxConveyorLine) + if (value == 0 )// && modPlc.Type!= PLCTypeEnum.BoxConveyorLine continue; var dto = modDevice.Adapt<WcsDeviceDto>(); dto.Value = value; -- Gitblit v1.8.0