From cdf20a4525a2ff9f6fe2c1e9b69fa2854c5848fd Mon Sep 17 00:00:00 2001 From: zxx <Zxx@HanInfo> Date: 星期二, 27 五月 2025 17:17:03 +0800 Subject: [PATCH] 巨石 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/TaskProcess.cs | 438 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 287 insertions(+), 151 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/TaskProcess.cs index 42fc845..20db7c6 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/TaskProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/TaskProcess.cs @@ -23,6 +23,9 @@ using System.Threading; using static HH.WCS.JuShi.dispatch.NDC; using static HH.WCS.JuShi.util.Settings; +using System.ComponentModel; +using Newtonsoft.Json.Linq; +using S7.Net; namespace HH.WCS.JuShi.process { @@ -106,16 +109,16 @@ { CacheBitUpdate(mst, true); //鎷嗘墭鏈哄畨鍏ㄤ氦浜�- ctjSafe(mst); + //ctjSafe(mst); } if (state == 6)//鍗歌揣瀹屾垚 { CacheBitUpdate(mst, false); - //rgv瀹夊叏浜や簰 - rgvSafe(mst); - //鎷嗘墭鏈哄畨鍏ㄤ氦浜�- ctjSafe(mst); + ////rgv瀹夊叏浜や簰 + //rgvSafe(mst); + ////鎷嗘墭鏈哄畨鍏ㄤ氦浜�+ //ctjSafe(mst); } if (state == 7) @@ -127,96 +130,104 @@ private static void rgvSafe(WCSTask mst) { //rgv瀹夊叏浜や簰 鏍规嵁缁堢偣璐т綅鎵惧埌鏄摢涓猺gv - var reservoir = Settings.ReservoirAreas.Where(a => a.areaName == "RGV搴撳尯").FirstOrDefault(); + var reservoir = Settings.ReservoirAreas.Where(a => a.areaName == "绔嬪簱鍏ュ簱鍖�).FirstOrDefault(); if (mst.S_END_AREA.Equals(reservoir.areaCode)) { var safeInteractions = Settings.SafeInteractions.Where(a => a.location == mst.S_END_LOC).FirstOrDefault(); - - var safelists = JsonConvert.DeserializeObject<List<SafeInteraction>>(DeviceProcess.rgvSafeInteraction); - - if (safelists.Any()) + var rgvSafeInteraction = DeviceProcess.rgvSafeInteraction; + //澶勭悊淇″彿 + var startsub = safeInteractions.code; + var res = rgvSafeInteraction.Substring((startsub - 1) * 2 + 1, 1); + //var safelists = JsonConvert.DeserializeObject<List<SafeInteraction>>(DeviceProcess.rgvSafeInteraction); + LogHelper.Info($"RGV瀹夊叏浜や簰缂撳瓨淇″彿{rgvSafeInteraction}"); + //涓嶇瓑浜�2鍗歌揣瀹屾垚纭淇″彿 灏辨帴鐫�彂 + if (res != "2") { - var safelist = safelists.Where(s => s.ip == safeInteractions.ip).First(); - LogHelper.Info($"RGV瀹夊叏浜や簰鍙傛暟{safelist}"); - //涓嶇瓑浜�2鍗歌揣瀹屾垚纭淇″彿 灏辨帴鐫�彂 - if (safelist.data != "2") - { - string datastr = "3F00102030400D0A"; - // 杩斿洖淇″彿 - switch (safeInteractions.pointCode) - { - case "RGV1": - datastr = datastr.Replace("10", "11"); - break; - case "RGV2": - datastr = datastr.Replace("20", "21"); - break; - case "RGV3": - datastr = datastr.Replace("30", "31"); - break; - case "RGV4": - datastr = datastr.Replace("40", "41"); - break; - } - LogHelper.Info($"RGV瀹夊叏浜や簰鍙戦�淇″彿{safelist.ip},{datastr}"); - PlcHelper.SendHex(safelist.ip, datastr); - //浼戠湢3绉掑啀璋�- Thread.Sleep(3000); - rgvSafe(mst); - } - else - { - LogHelper.Info($"RGV瀹夊叏浜や簰鍙戦�淇″彿{safelist.ip},3F00102030400D0A"); - //鏃犵姸鎬佷俊鍙�- PlcHelper.SendHex(safelist.ip, "3F00102030400D0A"); + string datastr = "3f001020304050600d0a"; + string a = ((startsub - 1) * 2).ToString(); + //杩斿洖淇″彿澶勭悊 + datastr = datastr.Replace(a + "0", a + "1"); - } + LogHelper.Info($"RGV瀹夊叏浜や簰鍙戦�淇″彿{safeInteractions.ip},{datastr}"); + PlcHelper.SendHex(safeInteractions.ip, datastr); + //浼戠湢3绉掑啀璋�+ Thread.Sleep(3000); + rgvSafe(mst); + } + else + { + //浼戠湢10绉掑啀鍙戜俊鍙�锛堢粰鐜板満璁惧鍚稿悎鏃堕棿璇存槸锛�+ Thread.Sleep(10000); + LogHelper.Info($"RGV瀹夊叏浜や簰鍙戦�淇″彿{safeInteractions.ip},3f001020304050600d0a"); + //鏃犵姸鎬佷俊鍙�+ PlcHelper.SendHex(safeInteractions.ip, "3f001020304050600d0a"); + } } } //鎷嗘墭鏈哄畨鍏ㄤ氦浜� private static void ctjSafe(WCSTask mst) { - PlcDeviceTable plcDeviceTable = null; + PlcDeviceTable plcDeviceTable = S7Helper.plcDeviceTables; + string deviceno = null;//绾夸綋 //鎵惧埌绾夸綋 鏍规嵁绾夸綋鎵惧唴瀛橀噷鐨勭姸鎬� var rkreservoirs = Settings.ConveyorLinesInfos.Where(s => s.location == mst.S_END_LOC).FirstOrDefault(); var ckreservoirs = Settings.ConveyorLinesInfos.Where(s => s.location == mst.S_START_LOC).FirstOrDefault(); + //鍏ュ彛 if (rkreservoirs != null) { - plcDeviceTable = S7Helper.plcDeviceTables.Find(a => a.DeviceNo == rkreservoirs.code); + if (rkreservoirs.deviceNo == "1") + { + deviceno = "1"; + } + else if (rkreservoirs.deviceNo == "2") + { + deviceno = "4"; + } } + //鍑哄彛 else if (ckreservoirs != null) { - plcDeviceTable = S7Helper.plcDeviceTables.Find(a => a.DeviceNo == ckreservoirs.code); - } - LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑啓鍏ュ弬鏁皗plcDeviceTable}"); - if (plcDeviceTable != null) - { - //s7鍐欏叆 - double addr = 0; //鍋忕Щ閲�- string deviceNo = null;//鎷嗘墭鏈哄彿 - if (plcDeviceTable.DeviceNo == 1003) + if (ckreservoirs.deviceNo == "1") { - addr = 90.1; + deviceno = "3"; + } + else if (rkreservoirs.deviceNo == "2") + { + deviceno = "6"; + } + } + LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑啓鍏ュ弬鏁皗deviceno},{JsonConvert.SerializeObject(plcDeviceTable)}"); + if (plcDeviceTable != null && deviceno != null) + { + //var plcDeviceTables = S7Helper.plcDeviceTables.Where(s => s.DeviceNo == plcDeviceTable.DeviceNo); + + //s7鍐欏叆 + int addr = 182; //鍋忕Щ閲�+ int offsetAddr = 0; //鍋忕Щ閲�+ string deviceNo = null;//鎷嗘墭鏈哄彿 + if (deviceno == "3") + { + offsetAddr = 1; deviceNo = "1"; } - else if (plcDeviceTable.DeviceNo == 1006) + else if (deviceno == "6") { - addr = 180.1; + offsetAddr = 3; deviceNo = "2"; } - else if (plcDeviceTable.DeviceNo == 1001) + else if (deviceno == "1") { - addr = 30.0; + offsetAddr = 0; deviceNo = "1"; } - else if (plcDeviceTable.DeviceNo == 1004) + else if (deviceno == "4") { - addr = 120.0; + offsetAddr = 2; deviceNo = "2"; } LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑啓鍏deviceNo}锛寋addr}"); - S7Helper.WriteDouble(deviceNo, 9, addr, 1); + S7Helper.WriteDouble(deviceNo, 9, addr, offsetAddr, 1); } } @@ -795,7 +806,7 @@ { //鏌ヨ杩欎釜搴撳尯鐨勭┖鎵樼洏涓庢弧鎵樼洏 var list = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == area).OrderByDescending(a => a.N_ROW).ToList(); - //LogHelper.Info($"鏌ヨ杩欎釜搴撳尯鐨勭┖鎵樼洏涓庢弧鎵樼洏锛歿JsonConvert.SerializeObject(list)}"); + LogHelper.Info($"鏌ヨ杩欎釜搴撳尯鐨勭┖鎵樼洏涓庢弧鎵樼洏锛歿JsonConvert.SerializeObject(list)}"); if (list.Count > 0) { List<string> loca = new List<string>(); @@ -812,7 +823,6 @@ { list.RemoveAll(s => loca.Contains(s.S_CODE)); } - //绗﹀悎鏉′欢鐨勬帓搴忛�绗竴涓� 鍏堟壘绗竴涓� if (list.Count > 0) { @@ -1383,7 +1393,7 @@ internal static Results UpdateFullStatus(List<CameraMonitor> models) { var result = new Results() { Code = "0", Message = "鎿嶄綔鎴愬姛", Data = null }; - var db = new SqlHelper<Location>().GetInstance(); + var db = new SqlHelper<object>().GetInstance(); //鏍¢獙涓庡唴瀛樻槸鍚︿竴鑷� if (monitorStatus != null) { @@ -1469,40 +1479,50 @@ //鎽勫儚澶寸洃娴嬬┖鎵樼紦瀛樺尯 private static void ProcessEmptyTrayAreas(SqlSugar.ISqlSugarClient db, Location loc, string areaCode1, string areaCode2) { - var plcDeviceTable = new PlcDeviceTable(); - string endLoc = null; - if (loc.S_AREA_CODE.Equals(areaCode1)) + var plcDeviceTable = S7Helper.plcDeviceTables; + if (plcDeviceTable != null) { - plcDeviceTable = S7Helper.plcDeviceTables.Find(s => s.DeviceNo == 1001); - endLoc = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault().inLoca; - } - else if (loc.S_AREA_CODE.Equals(areaCode2))//鍏绌烘墭 - { - plcDeviceTable = S7Helper.plcDeviceTables.Find(s => s.DeviceNo == 1004); - endLoc = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault().inLoca; - } - //鍒ゆ柇鏄惁鍏佽鏀炬 - if (plcDeviceTable.workMode == 1 && plcDeviceTable.lightAction == 0 && plcDeviceTable.requestPut) - { - //鍒涘缓浠诲姟 浠庣┖鎵樼紦瀛樺尯鍙変釜鏂欏埌鎷嗘墭鏈�- var list = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == loc.S_AREA_CODE - && a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0).OrderByDescending(a => a.N_ROW) - .OrderByDescending(a => a.N_COL).First(); - var startLoc = list.S_CODE; - - string trayCode = ContainerHelper.GenerateCntrNo(); - - LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc}缁堢偣:{endLoc}", "鎷嗘墭"); - var res = TaskProcess.CreateTransport(startLoc, endLoc, "鎷嗘墭", trayCode, 1, 1); - if (res) + string endLoc = null; + bool request = false; + if (loc.S_AREA_CODE.Equals(areaCode1)) { - LogHelper.Info($"璧风偣:{startLoc}缁堢偣:{endLoc}浠诲姟鍒涘缓鎴愬姛", "鎷嗘墭"); + request = plcDeviceTable.requestPut1; + endLoc = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault().inLoca; } - else + else if (loc.S_AREA_CODE.Equals(areaCode2))//鍏绌烘墭 { - LogHelper.Info($"璧风偣:{startLoc}缁堢偣:{endLoc}浠诲姟鍒涘缓澶辫触", "鎷嗘墭"); + request = plcDeviceTable.requestPut2; + endLoc = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault().inLoca; + } + //鍒ゆ柇鏄惁鍏佽鏀炬 + if (request) + { + //鍒涘缓浠诲姟 浠庣┖鎵樼紦瀛樺尯鍒版媶鎵樻満 + var list = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == loc.S_AREA_CODE + && a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0).OrderByDescending(a => a.N_ROW) + .OrderByDescending(a => a.N_COL).First(); + var startLoc = list.S_CODE; + + string trayCode = ContainerHelper.GenerateCntrNo(); + + LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc}缁堢偣:{endLoc}", "鎷嗘墭"); + var res = TaskProcess.CreateTransport(startLoc, endLoc, "鎷嗘墭", trayCode, 1, 1); + if (res) + { + LogHelper.Info($"璧风偣:{startLoc}缁堢偣:{endLoc}浠诲姟鍒涘缓鎴愬姛", "鎷嗘墭"); + } + else + { + LogHelper.Info($"璧风偣:{startLoc}缁堢偣:{endLoc}浠诲姟鍒涘缓澶辫触", "鎷嗘墭"); + } } } + else + { + LogHelper.Info($"鏈鍙栧埌鎷嗘墭鏈轰俊鍙�, "鎷嗘墭"); + + } + } /// <summary> /// 鎶芥涓诲姩鍛煎彨 璧风偣锛氶�妫�紦瀛樺尯 @@ -1551,15 +1571,21 @@ /// <summary> /// 涓诲姩鐗╂枡缁戝畾 /// </summary> - /// <param name="model.S_ITEM_CODE">鐗╂枡缂栫爜</param> + /// <param name="model.S_ITEM_CODE">鐗╂枡缂栫爜(閫夊~)</param> /// <param name="model.BIND_LOC">缁戝畾璐т綅</param> /// <returns></returns> internal static Results bindMaterial(GetSubmitCheck model) { var result = new Results() { Code = "0", Message = "鐗╂枡缁戝畾鎴愬姛锛�, Data = null }; - var db = new SqlHelper<Location>().GetInstance(); + var db = new SqlHelper<object>().GetInstance(); try { + var loc = db.Queryable<Location>().Where(a => a.S_CODE == model.BIND_LOC).First(); + if (loc == null || loc.N_LOCK_STATE != 0) + { + return new Results { Code = "1", Message = $"缁戝畾璐т綅涓嶅瓨鍦ㄦ垨宸茶閿�, Data = null }; + + } string cntrStr = ContainerHelper.GenerateCntrNo(); var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.BIND_LOC).First(); if (locCntrRel != null) @@ -1571,6 +1597,12 @@ { return new Results { Code = "1", Message = $"鐗╂枡{model.S_ITEM_CODE}璐т綅{model.BIND_LOC}缁戝畾澶辫触", Data = null }; } + loc.N_CURRENT_NUM++; + var res2 = db.Updateable(loc).UpdateColumns(it => it.N_CURRENT_NUM).ExecuteCommand() > 0; + if (!res2) + { + return new Results { Code = "1", Message = $"璐т綅{model.BIND_LOC}褰撳墠鏁伴噺鑷澶辫触", Data = null }; + } return result; } catch (Exception ex) @@ -1579,6 +1611,42 @@ LogHelper.Error("bindMaterial:" + ex.Message, ex); throw; } + } + /// <summary> + /// 鏁存帓鐗╂枡缁戝畾 + /// </summary> + /// <param name="bondLoc">缁戝畾璐т綅</param> + /// <returns></returns> + internal static Results multBindMaterial(string bondLoc) + { + var result = new Results() { Code = "0", Message = "鏁存帓鐗╂枡缁戝畾鎴愬姛锛�, Data = null }; + var db = new SqlHelper<object>().GetInstance(); + try + { + var location = db.Queryable<Location>().Where(a => a.S_CODE == bondLoc).First(); + //鏌ュ嚭杩欎竴鎺掔殑璐т綅 + var loclist = db.Queryable<Location>() + .Where(a => a.S_AREA_CODE == location.S_AREA_CODE && a.N_ROW == location.N_ROW).ToList(); + foreach (var loc in loclist) + { + //娌¢攣鐨勪笖娌¤揣鐨勬墠缁�+ if (loc.N_LOCK_STATE == 0 && loc.N_CURRENT_NUM < loc.N_CAPACITY) + { + + + } + + } + } + catch (Exception ex) + { + Console.WriteLine("multBindMaterial:" + ex.Message + ex.StackTrace); + LogHelper.Error("multBindMaterial:" + ex.Message, ex); + throw; + } + + + return result; } /// <summary> /// 鎸夐挳鐩掕皟鐢ㄤ笅绾�@@ -1684,47 +1752,52 @@ var result = new safeResult() { code = "1", msg = "success" }; try { - var reservoirs = Settings.SafeInteractions.Where(s => s.pointCode == model.STATION_NAME).FirstOrDefault();//y0-0000 y1-0001 on-FF00 off-0000 - var rgvSafeInteraction = DeviceProcess.rgvSafeInteraction; - //RGV - if (reservoirs.type.Equals("RGV")) + var reservoirs = Settings.SafeInteractions.Where(s => s.location == model.STATION_NAME).FirstOrDefault();//y0-0000 y1-0001 on-FF00 off-0000 + //var rgvSafeInteraction = DeviceProcess.rgvSafeInteraction; + var plcDeviceTable = S7Helper.plcDeviceTables; + if (plcDeviceTable != null) { - LogHelper.Info($"RGV瀹夊叏浜や簰 璇锋眰鐐逛綅锛歿model.STATION_NAME}璇锋眰鐮侊細{model.APPLY_CODE}"); - //鍗歌揣璇锋眰杩涘叆 - if (model.APPLY_CODE.Equals("5")) + //RGV + if (reservoirs.type.Equals("RGV")) { + LogHelper.Info($"RGV瀹夊叏浜や簰 璇锋眰鐐逛綅锛歿model.STATION_NAME}璇锋眰鐮侊細{model.APPLY_CODE}"); //鏍规嵁ip璇荤姸鎬�- if (rgvSafeInteraction != null) + LogHelper.Info($"RGV瀹夊叏浜や簰缂撳瓨淇″彿{JsonConvert.SerializeObject(plcDeviceTable.RGVAllowUnload)}"); + //澶勭悊淇″彿 + var res = plcDeviceTable.RGVAllowUnload[reservoirs.code]; + //鍗歌揣璇锋眰杩涘叆 + if (model.APPLY_CODE.Equals("5")) { - LogHelper.Info($"RGV瀹夊叏浜や簰鍙傛暟{JsonConvert.SerializeObject(rgvSafeInteraction)}"); - var safelist = JsonConvert.DeserializeObject<List<SafeInteraction>>(rgvSafeInteraction); - if (safelist.Any()) + //1鍏佽鍗歌揣 + if (res == 1) { - var safedata = safelist.Where(s => s.ip == reservoirs.ip).First(); - //1鍏佽鍗歌揣 2鍗歌揣瀹屾垚纭 - if (safedata.data == "1") - { - LogHelper.Info($"RGV瀹夊叏浜や簰 鍏佽鍗歌揣"); - return new safeResult() { code = "0", msg = "success" }; - } + LogHelper.Info($"RGV瀹夊叏浜や簰 鍏佽鍗歌揣"); + return new safeResult() { code = "0", msg = "success" }; } } + //鍗歌揣鍚庡凡绂诲紑 + else if (model.APPLY_CODE.Equals("8")) + { + safeAssistant(reservoirs.code,res); + LogHelper.Info($"RGV瀹夊叏浜や簰 鍗歌揣瀹屾垚"); + return new safeResult() { code = "0", msg = "success" }; + } + + } - } - //鎷嗘墭鏈�- else if (reservoirs.type.Equals("CTJ")) - { - LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜� 璇锋眰鐐逛綅锛歿model.STATION_NAME}璇锋眰鐮侊細{model.APPLY_CODE}"); - //鎵惧埌绾夸綋 鏍规嵁绾夸綋鎵惧唴瀛橀噷鐨勭姸鎬�- var reservoirs1 = Settings.ConveyorLinesInfos.Where(s => s.location == model.STATION_NAME).FirstOrDefault(); - var plcDeviceTable = S7Helper.plcDeviceTables.Find(a => a.DeviceNo == reservoirs1.code); - if (plcDeviceTable != null) + //鎷嗘墭鏈�+ else if (reservoirs.type.Equals("CTJ")) { + LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜� 璇锋眰鐐逛綅锛歿model.STATION_NAME}璇锋眰鐮侊細{model.APPLY_CODE}"); + //鎵惧埌绾夸綋 鏍规嵁绾夸綋鎵惧唴瀛橀噷鐨勭姸鎬�+ var reservoirs1 = Settings.ConveyorLinesInfos.Where(s => s.location == model.STATION_NAME).FirstOrDefault(); + LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑弬鏁皗JsonConvert.SerializeObject(plcDeviceTable)}"); if (model.APPLY_CODE.Equals("1")) { //0-鑴辨満鐘舵�锛�-寰呮満鐘舵�锛�-杩愯涓� 寰呮満涓旀湁鎵樼洏涓旇姹傚彇妗嗘墠璧�- if (plcDeviceTable.workMode == 1 && plcDeviceTable.lightAction == 1 && plcDeviceTable.requestTake) + if ((reservoirs1.deviceNo == "1" && plcDeviceTable.requestTake1) || + (reservoirs1.deviceNo == "2" && plcDeviceTable.requestTake2)) { LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜�鍏佽鍙栨"); return new safeResult() { code = "0", msg = "success" }; @@ -1734,40 +1807,50 @@ else if (model.APPLY_CODE.Equals("5")) { //0-鑴辨満鐘舵�锛�-寰呮満鐘舵�锛�-杩愯涓� 寰呮満涓旀棤鎵樼洏涓斿厑璁告斁妗嗘墠璧�- if (plcDeviceTable.workMode == 1 && plcDeviceTable.lightAction == 0 && plcDeviceTable.requestPut) + if ((reservoirs1.deviceNo == "1" && plcDeviceTable.requestPut1) || + (reservoirs1.deviceNo == "2" && plcDeviceTable.requestPut2)) { LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜�鍏佽鏀炬"); return new safeResult() { code = "0", msg = "success" }; } } + //鍙栬揣绂诲紑 + else if (model.APPLY_CODE.Equals("4")) + { + int offsetAddr = 8; + if (reservoirs1.deviceNo == "1") + { + offsetAddr = 1; + } + else if (reservoirs1.deviceNo == "2") + { + offsetAddr = 3; + } + LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑啓鍏reservoirs1.deviceNo}锛寋offsetAddr}"); + S7Helper.WriteDouble(reservoirs1.deviceNo, 9, 182, offsetAddr, 1); + LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜�鍙栨绂诲紑"); + return new safeResult() { code = "0", msg = "success" }; + } + //鍗歌揣绂诲紑 + else if (model.APPLY_CODE.Equals("8")) + { + int offsetAddr = 8;//闅忎究缁欎竴涓�+ if (reservoirs1.deviceNo == "1") + { + offsetAddr = 0; + } + else if (reservoirs1.deviceNo == "2") + { + offsetAddr = 2; + } + LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜掑啓鍏reservoirs1.deviceNo}锛寋offsetAddr}"); + S7Helper.WriteDouble(reservoirs1.deviceNo, 9, 182, offsetAddr, 1); + LogHelper.Info($"鎷嗘墭鏈哄畨鍏ㄤ氦浜�鍙栨绂诲紑"); + return new safeResult() { code = "0", msg = "success" }; + } + } } - - //TcpClient tcpClient = new TcpClient(); - ////鍙戦�淇″彿鍐欒姹傚紑闂�- //var str = tcpClient.WriteSingleRegisterRtu("01050000FF008C3A", reservoirs.ip, int.Parse(reservoirs.port)); - ////鍙戦�淇″彿璇婚棬鐘舵� - //var x0bool = tcpClient.ReadInputRegistersRtu("010200000001B9CA", reservoirs.ip, int.Parse(reservoirs.port)); - ////濡傛灉寮�棬鍒颁綅 - //if (x0bool) - //{ - // return new safeResult() { code = "0", msg = "success" }; - //} - ////璇锋眰绂诲紑 - //else if (model.APPLY_CODE.Equals("8")) - //{ - // ////鍙戦�淇″彿鍐欒姹傚叧闂�- // //var str = tcpClient.WriteSingleRegisterRtu("010500000000CDCA", reservoirs.ip, int.Parse(reservoirs.port)); - // //var str2 = tcpClient.WriteSingleRegisterRtu("01050001FF00DDFA", reservoirs.ip, int.Parse(reservoirs.port)); - // ////鍙戦�淇″彿璇婚棬鐘舵� - // //var x0bool = tcpClient.ReadInputRegistersRtu("010200010001E80A", reservoirs.ip, int.Parse(reservoirs.port)); - // ////濡傛灉闂ㄥ凡鍏�- // //if (x0bool) - // //{ - // // return new safeResult() { code = "0", msg = "success" }; - // //} - - //} return result; } catch (Exception ex) @@ -1778,6 +1861,59 @@ } } + private static void safeAssistant(int code,int res) { + //2鍗歌揣瀹屾垚纭 + if (res != 2) + { + //鍗歌揣瀹屾垚淇″彿 + S7Helper.WriteInt(50, 0, (short)(code * 10 + 1)); + Thread.Sleep(3000); + safeAssistant(code,res); + } + else + { + S7Helper.WriteInt(50, 0, (short)(code * 10)); + } + + } + + /// <summary> + /// 鎸夐挳鎺у埗鏈嶅姟寮�叧 + /// </summary> + /// <param name="isusing.S_STATUS">鏈嶅姟鐘舵�</param> + /// <param name="isusing.S_TYPE">鏈嶅姟绫诲瀷</param> + /// <returns></returns> + internal static Results switchButton(Isusing isusing) + { + var db = new SqlHelper<object>().GetInstance(); + var result = new Results() { Code = "1", Message = $"鏈嶅姟鐘舵�澶辫触锛�, Data = null }; + var isusinglist = db.Queryable<Isusing>().Where(a => a.S_TYPE == isusing.S_TYPE).First(); + isusinglist.S_STATUS = isusing.S_STATUS; + var res = db.Updateable(isusinglist).UpdateColumns(it => it.S_STATUS).ExecuteCommand() > 0; + if (res) + { + return new Results() { Code = "0", Message = $"鏈嶅姟鐘舵�淇敼鎴愬姛锛�, Data = null }; + + } + return result; + } + //tcp鍙戦�淇″彿 娴嬭瘯鐢�+ internal static Results tcpSend(string str) + { + var reservoirs = Settings.SafeInteractions.Where(s => s.code == 1).FirstOrDefault(); + //娴嬭瘯鐢�+ LogHelper.Info($"RGV瀹夊叏浜や簰鍙戦�淇″彿{reservoirs.ip},{str}"); + //鏃犵姸鎬佷俊鍙�+ bool res = PlcHelper.SendHex(reservoirs.ip, str); + if (res) + { + return new Results() { Code = "0", Message = $"鍙戦�鎴愬姛", Data = null }; + } + + return new Results() { Code = "1", Message = $"鍙戦�澶辫触", Data = null }; + } + + } } -- Gitblit v1.9.1