From f44c5df9cc045644982f578fb0b3c3e60b88eb68 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期三, 25 九月 2024 18:54:17 +0800 Subject: [PATCH] 修改分拣任务读取 --- Admin.NET/WCS.Application/PLC/PLCService.cs | 148 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 142 insertions(+), 6 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index 5582658..74c5438 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -10,6 +10,7 @@ using System; using System.Data; using System.Reflection.Emit; +using WCS.Application.Entity; using WCS.Application.Util; namespace WCS.Application; @@ -26,16 +27,16 @@ switch (mod.Type) { case PLCTypeEnum.StackingMachine: - StackingMachine(mod); + StackingMachine(mod); // 璺烘満 break; case PLCTypeEnum.ConveyorLine: - ConveyorLine(mod); + ConveyorLine(mod); // 鎵樼洏杈撻�佺嚎 break; case PLCTypeEnum.AGV: - AGV(mod); + AGV(mod); // AGV璋冨害 break; - case PLCTypeEnum.PalletMachine: - PalletMachine(mod); + case PLCTypeEnum.RobotPalletizer: + RobotPalletizer(mod); // 鐮佸灈鏈哄櫒浜� break; case PLCTypeEnum.StackingRobot: PalletMachine(mod); @@ -850,7 +851,6 @@ } } - /// <summary> /// 杈撻�佺嚎涓氬姟澶勭悊 /// </summary> @@ -1362,7 +1362,143 @@ /// <param name="modDevice"></param> private static void PalletMachine(WcsDeviceDto modDevice) { + var plcConn = modDevice.PLCUtil; + switch (modDevice.Value.ToString()) + { + case "220": + // 娉ㄩ噴1 + { + + } + break; + case "230": + // 娉ㄩ噴2 + { + + } + break; + case "240": + { + } + break; + default: break; + } + } + + /// <summary> + /// 鐮佸灈鏈哄櫒浜轰笟鍔″鐞� + /// </summary> + /// <param name="modDevice"></param> + private static void RobotPalletizer(WcsDeviceDto modDevice) + { + var plcConn = modDevice.PLCUtil; + switch (modDevice.Value.ToString()) + { + case "1": + // 涓绘壂鐢宠鍒嗛亾 wcs鍐欏叆2 + { + + var taskModel = ""; + // 鍒ゆ柇鏄惁婕旂ず妯″紡 + if (PLCTaskAction.boDemo) + { + // 婕旂ず妯″紡 + taskModel = "1"; + + // 鐩存帴 + } + else + { + // 閫氶亾鍙� + var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "閫氶亾鍙�"); + + // 璇诲彇plc绠辩爜 + var modBoxNo = modDevice.listStation.FirstOrDefault(m => m.Text == "绠辩爜"); + var (res, boxNo) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modBoxNo.PlcPos); + if (string.IsNullOrWhiteSpace(boxNo.ToString())) + { + // 绠辩爜涓簄ull鍐欏叆鍓旈櫎閫氶亾鍙� + var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0"); + if (ret.IsSucceed) + { + // 鍐欏叆娴佺▼鎺у埗瀛� 2 + var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); + if (retVal.IsSucceed) + { + Log.Error("绠辩爜涓簄ull杩涜鍓旈櫎"); + break; + } + } + } + else + { + // 鏍规嵁绠辩爜鑾峰彇绠卞唴淇℃伅 + string boxNoVal = boxNo.ToString(); + var boxInfo = _db.Queryable<WcsBoxInfo>().First(w => w.IsDelete == false && w.BoxNo == boxNoVal && string.IsNullOrEmpty(w.PalletNo)); + if (boxInfo == null) + { + // 绠变俊鎭负null鍐欏叆鍓旈櫎閫氶亾鍙� + var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0"); + if (ret.IsSucceed) + { + // 鍐欏叆娴佺▼鎺у埗瀛� 2 + var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); + if (retVal.IsSucceed) + { + Log.Error("绠辩爜涓簄ull鎴栧凡缁戝畾鎵樼洏锛岃繘琛屽墧闄ゃ��"); + break; + } + } + } + // 鏍规嵁绠卞唴鍝佺鍙疯幏鍙栫爜韬茬粦瀹氬伐浣嶅強瀵瑰簲鐨勫垎閬撳彿 + var checkTaskInfo = _db.Queryable<WcsCheckTask>().First(w => w.SkuNo == boxInfo.SkuNo && w.SkuName == boxInfo.SkuName && w.LotNo == boxInfo.LotNo); + if (checkTaskInfo == null) + { + // 缁戝畾淇℃伅涓簄ull鍐欏叆鍓旈櫎閫氶亾鍙� + var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0"); + if (ret.IsSucceed) + { + // 鍐欏叆娴佺▼鎺у埗瀛� 2 + var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); + if (retVal.IsSucceed) + { + Log.Error("绠辩爜鏈粦瀹氬垎鎷d换鍔★紝杩涜鍓旈櫎銆�"); + break; + } + } + } + else + { + // 涓巔lc浜や簰鍐欏叆鍒嗛亾鍙峰拰娴佺▼鎺у埗瀛� + var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, checkTaskInfo.RoboatNo); + if (ret.IsSucceed) + { + // 鍐欏叆娴佺▼鎺у埗瀛� 2 + var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); + if (retVal.IsSucceed) + { + break; + } + } + } + } + } + } + break; + case "230": + // 娉ㄩ噴2 + { + + } + break; + case "240": + { + + } + break; + default: break; + } } /// <summary> -- Gitblit v1.8.0