From 9f3858dd723a69c56dbab909e0c7e6c5ef8b85a8 Mon Sep 17 00:00:00 2001 From: yanjinhui <3306209981@qq.com> Date: 星期一, 09 六月 2025 20:27:19 +0800 Subject: [PATCH] 修改plc信息,以及进入检修接口 --- project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs | 354 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 275 insertions(+), 79 deletions(-) diff --git "a/project/\345\220\216\345\217\260\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs" "b/project/\345\220\216\345\217\260\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs" index 8f64b67..566e4f4 100644 --- "a/project/\345\220\216\345\217\260\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs" +++ "b/project/\345\220\216\345\217\260\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs" @@ -36,72 +36,170 @@ /// <returns></returns> public WebResponseContent automation(string extendedState) { + var messages = new List<string>(); + //string message = ""; try { for (int deptId = 1; deptId <= 5; deptId++) { - var devices = GetDevicesByDeptId(deptId); - if (devices == null) + try { - Console.WriteLine($"DeptId={deptId} 鏈壘鍒拌澶囷紝璺宠繃"); - continue; + var devices = GetDevicesByDeptId(deptId); + if (devices == null) + { + messages.Add($"DeptId={deptId} 鏈壘鍒拌澶囷紝璺宠繃"); + continue; + } + + var para = BaseDal.QueryData() + .Where(x => x.Deptid == deptId) + .OrderByDescending(x => x.CreateDate) + .FirstOrDefault(); + + if (para == null) + { + messages.Add($"DeptId={deptId} 鏈壘鍒板弬鏁伴厤缃紝璺宠繃"); + continue; + } + + int ext = (int)para.ExtendSpeed; + int ret = (int)para.RetractionSpeed; + int liftPos = (int)para.LeftPosition; + int rightPos = (int)para.RightPosition; + + try + { + if (devices.Value.left.Communicator.Read<bool>("M117")) + { + + return new WebResponseContent { Status = false, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; + } + + } + catch (Exception) + { + } + try + { + if (devices.Value.right.Communicator.Read<bool>("M117")) + { + return new WebResponseContent { Status = false, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; + } + + } + catch (Exception) + { + } + + if (extendedState == "浼稿嚭") + { + + try + { + if (devices.Value.left.Communicator.Read<float>("D80")>= liftPos-5)//鍒拌揪鏈�澶т綅缃�) + { + messages.Add($"杞ㄩ亾绔檣deptId}宸︿几缂╂潌宸插埌鏈�澶т綅缃�"); + + } + else + { + devices.Value.left.Communicator.Write<int>("D1022", liftPos);//浼稿嚭浣嶇疆 + devices.Value.left.Communicator.Write<int>("D1002", ext);//宸LC鑷姩鍔ㄤ几鍑虹缉鍥為�熷害 + devices.Value.left.Communicator.Write<bool>("M102", true);//浼稿嚭鎸夐挳 + + } + } + catch { } + + try + { + if (devices.Value.left.Communicator.Read<float>("D80") >=rightPos-5) + { + messages.Add($"杞ㄩ亾绔檣deptId}鍙充几缂╂潌宸插埌鏈�澶т綅缃�"); + + } + else + { + devices.Value.right.Communicator.Write<int>("D1022", rightPos); + devices.Value.right.Communicator.Write<int>("D1002", ret); + devices.Value.right.Communicator.Write<bool>("M102", true); + + } } + catch { } + + } + else if (extendedState == "缂╁洖") + { + + try + { + if (devices.Value.left.Communicator.Read<bool>("M115")) //鍒拌揪鍘熺偣浣� + { + messages.Add($"杞ㄩ亾绔檣deptId}宸︿几缂╂潌宸插埌鍘熺偣"); + + } + else + { + devices.Value.left.Communicator.Write<int>("D1022", liftPos);//浼稿嚭浣嶇疆 + devices.Value.left.Communicator.Write<int>("D1002", ext);//宸LC鑷姩浼�=缂╁洖鍑虹缉鍥為�熷害 + devices.Value.left.Communicator.Write<bool>("M103", true);//宸lc缂╁洖鎸夐挳 + + } } + catch { } + - var para = BaseDal.QueryData() - .Where(x => x.Deptid == deptId) - .OrderByDescending(x => x.CreateDate) - .FirstOrDefault(); + + try + { + if (devices.Value.right.Communicator.Read<bool>("M115")) + { + messages.Add($"杞ㄩ亾绔檣deptId}鍙充几缂╂潌宸插埌鍘熺偣"); + + } + else + { + devices.Value.right.Communicator.Write<int>("D1022", rightPos); + devices.Value.right.Communicator.Write<int>("D1002", ret); + devices.Value.right.Communicator.Write<bool>("M103", true); + + } + + + } + catch { } + + } + else + { + return new WebResponseContent { Status = false, Message = "鏈煡鎿嶄綔鍛戒护" }; + } - if (para == null) - { - Console.WriteLine($"DeptId={deptId} 鏈壘鍒板弬鏁伴厤缃紝璺宠繃"); - continue; + } - - int ext = (int)para.ExtendSpeed;//宸LC鑷姩浼稿嚭缂╁洖閫熷害 - int ret = (int)para.RetractionSpeed;//鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害 - int liftPosition = (int)para.LeftPosition;//宸︿几鍑轰綅缃� - int rigtpostition = (int)para.RightPosition;//鍙充几鍑轰綅缃� - - - - if (extendedState == "浼稿嚭") + catch (Exception exDept) { - devices.Value.left.Communicator.Write<int>("D1001", ext);//宸LC鑷姩浼稿嚭缂╁洖閫熷害 - devices.Value.left.Communicator.Write<bool>("M102", true);//浼稿嚭鎸夐挳 - devices.Value.right.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� - - - devices.Value.right.Communicator.Write<int>("D1001", ret); //鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害 - devices.Value.right.Communicator.Write<bool>("M102", true); - devices.Value.right.Communicator.Write<int>("D1002", rigtpostition);//鍙充几鍑轰綅缃� - - Console.WriteLine($"DeptId={deptId} 锛屽乏閫熷害={ext}锛屽彸閫熷害={ret}"); - } - else if (extendedState == "缂╁洖") - { - devices.Value.left.Communicator.Write<int>("D1001", ext);//缂╁洖閫熷害 - devices.Value.left.Communicator.Write<bool>("M103", true);//缂╁洖鎸夐挳 - - devices.Value.right.Communicator.Write<int>("D1001", ret); - devices.Value.right.Communicator.Write<bool>("M103", true); - - Console.WriteLine($"DeptId={deptId} 缂╁洖鎿嶄綔锛屽乏閫熷害={ext}锛屽彸閫熷害={ret}"); - } - else - { - return new WebResponseContent { Status = false, Message = "鏈煡鐨勬搷浣滃懡浠�" }; + messages.Add($"DeptId={deptId} 寮傚父锛歿exDept.Message}"); } } - return new WebResponseContent { Status = true, Message = "鍏ㄩ儴璁惧鎿嶄綔瀹屾垚", + return new WebResponseContent + { + Status = true, + Message = messages.Count == 0 ? "鎵ц鎴愬姛" : "閮ㄥ垎鎵ц澶辫触锛�" + string.Join("锛�", messages), + Data = messages }; } catch (Exception ex) { - return new WebResponseContent { Status = false, Message = $"鎿嶄綔寮傚父锛歿ex.Message}" }; + return new WebResponseContent + { + Status = false, + Message = $"鑷姩鎺у埗寮傚父锛歿ex.Message}" + }; } } + @@ -115,66 +213,147 @@ /// <param name="DeptId">鑲¢亾鍙�</param> /// <returns></returns> public WebResponseContent ManualOperation(string position, string ExtendedState,int DeptId) - { + { try { + if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + { + return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; + } + var devices = GetDevicesByDeptId(deid); - var devices = GetDevicesByDeptId(DeptId); - if (devices == null) - return new WebResponseContent { Status = false, Message = "璁惧鏈壘鍒�" }; + //淇╀釜plc宸﹀彸鍚勪竴涓� + //OtherDevice liftotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == "SSG001"); + //OtherDevice rightotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == "SSG002"); - var para = BaseDal.QueryData(x=>x.Deptid== DeptId).OrderByDescending(x => x.CreateDate).FirstOrDefault(); - if (para == null) - return new WebResponseContent { Status = false, Message = "鍙傛暟鏈厤缃�" }; - + //鎵惧埌Dt_Parameters涓殑鏈�鏂颁竴鏉℃暟鎹牴鎹綋鍓嶇殑deid + var para = BaseDal.QueryData().Where(x => x.Deptid == deid).OrderByDescending(x => x.CreateDate).FirstOrDefault(); int ext = (int)para.ManualExtend;//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 int ret = (int)para.ManualRetraction;//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 + int liftPosition = (int)para.LeftPosition;//宸︿几鍑轰綅缃� + int rigtpostition = (int)para.RightPosition;//鍙充几鍑轰綅缃� + //bool canLeft = true, + // canRight = true; + string message = ""; + try + { + if (devices.Value.left.Communicator.Read<bool>("M117")) //榛樿鏄痜lase + { + + return new WebResponseContent { Status = true, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; + } + + } + catch (Exception) + { + } + try + { + if (devices.Value.right.Communicator.Read<bool>("M117")) + { + return new WebResponseContent { Status = false, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; + } + + } + catch (Exception) + { + } if (position == "宸�" && ExtendedState == "浼稿嚭") { - devices.Value.left.Communicator.Write<int>("D1000", ext);//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 - devices.Value.left.Communicator.Write<bool>("M100", true);//浼稿嚭鎸夐挳 - Console.WriteLine($"{position}宸LC鑷姩浼稿嚭缂╁洖閫熷害{ext}"); + if (devices.Value.left.Communicator.Read<float>("D80") >= liftPosition - 5) //鍒拌揪鐩爣浣嶇疆 + { + message += "宸︿几缂╂潌鍒拌揪鐩爣浣嶇疆锛�"; + } + else + { + devices.Value.left.Communicator.Write<int>("D1004", liftPosition);//宸︿几鍑轰綅缃� + devices.Value.left.Communicator.Write<int>("D1000", ext);//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 + devices.Value.left.Communicator.Write<bool>("M100", true);//浼稿嚭鎸夐挳 + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.left.Communicator.Write<bool>("M100", false); // 閲婃斁鎸夐挳 + + + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ext}"); + } + } else if (position == "宸�" && ExtendedState == "缂╁洖") { - devices.Value.left.Communicator.Write<int>("D1000", ext);//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 - devices.Value.left.Communicator.Write<bool>("M101", true); - Console.WriteLine($"{position}宸LC鑷姩浼稿嚭缂╁洖閫熷害{ext}"); + if (devices.Value.left.Communicator.Read<bool>("M115"))//缂╁洖鐨勬椂鍊欏垽鏂�) + { + message += "宸LC宸插埌鍘熺偣锛�"; + } + else + { + devices.Value.left.Communicator.Write<int>("D1004", liftPosition);//浼稿嚭浣嶇疆 + devices.Value.left.Communicator.Write<int>("D1000", ext);//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 + devices.Value.left.Communicator.Write<bool>("M101", true); + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.left.Communicator.Write<bool>("M101", false); // 閲婃斁鎸夐挳 + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄧ缉鍥瀧ext}"); + } + } - else if (position == "鍙�" && ExtendedState == "浼稿嚭") + + if (position == "鍙�" && ExtendedState == "浼稿嚭") { - devices.Value.right.Communicator.Write<int>("D1000", ret);//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 - devices.Value.right.Communicator.Write<bool>("M100", true); - Console.WriteLine($"{position}鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害{ext}"); + if (devices.Value.right.Communicator.Read<float>("D80") >= rigtpostition - 5) + { + message += "鍙充几缂╂潌鍒拌揪鐩爣浣嶇疆锛�"; + } + else + { + devices.Value.right.Communicator.Write<int>("D1004", rigtpostition);//鍙充几鍑轰綅缃� + devices.Value.right.Communicator.Write<int>("D1000", ret);//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 + devices.Value.right.Communicator.Write<bool>("M100", true); + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.right.Communicator.Write<bool>("M100", false); // 閲婃斁鎸夐挳 + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ret}"); + } + + } else if (position == "鍙�" && ExtendedState == "缂╁洖") { - devices.Value.right.Communicator.Write<int>("D1000", ret);//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 - devices.Value.right.Communicator.Write<bool>("M101", true); - Console.WriteLine($"{position}鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害{ret}"); + if (devices.Value.right.Communicator.Read<bool>("M115")) + { + message += "鍙充几缂╂潌宸插埌鍘熺偣锛�"; + } + else + { + devices.Value.right.Communicator.Write<int>("D1004", rigtpostition);//浼稿嚭浣嶇疆 + devices.Value.right.Communicator.Write<int>("D1000", ret);//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 + devices.Value.right.Communicator.Write<bool>("M101", true); + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.right.Communicator.Write<bool>("M101", false); // 閲婃斁鎸夐挳 + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄧ缉鍥瀧ret}"); + } + } - else + + + return new WebResponseContent { - return new WebResponseContent { Status = false, Message = "鐘舵�佸弬鏁伴敊璇�" }; - } - - return new WebResponseContent { Status = true, Message = "鎴愬姛", + Status = true, + Message = string.IsNullOrEmpty(message) ? "鎵ц鎴愬姛" : $"{message}", Data = new { ManualExtend = ext, - ManualRetraction = ret + ManualRetraction = ret, + message } - }; - } + + catch (Exception ex) { return new WebResponseContent { Status = false, Message = ex.Message }; } + } @@ -188,8 +367,25 @@ { //鏍规嵁int.TryParse(AppSettings.Get("DepartmentID")璇诲彇鍒板綋鍓嶆槸杞ㄩ亾鍑狅紝鎵�鏈変汉閮藉彧鑳芥搷浣滃綋鍓� var devices = GetDevicesByDeptId(deptid); - devices.Value.left.Communicator.Write<bool>("M104", true); - devices.Value.right.Communicator.Write<bool>("M104", true); + try + { + devices.Value.left.Communicator.Write<bool>("M104", true); + } + catch (Exception) + { + + throw; + } + + try + { + devices.Value.right.Communicator.Write<bool>("M104", true); + } + catch (Exception) + { + + throw; + } return new WebResponseContent { Status = true, Message = "鏆傚仠鎴愬姛", Data = devices }; } catch (Exception ex) @@ -201,7 +397,7 @@ /// <summary> - /// 浼哥缉鏉嗗綋鍓嶄綅缃� + /// 浼哥缉鏉嗗綋鍓嶄綅缃�(杩欎釜娌℃湁鐢�) /// <param name="deptid">杞ㄩ亾绔欏彿</param> public WebResponseContent CurrentLocation(int deptid) { -- Gitblit v1.9.3