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 | 348 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 218 insertions(+), 130 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 e9327e6..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,133 +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) - { - Console.WriteLine($"DeptId={deptId} 鏈壘鍒拌澶囷紝璺宠繃"); - continue; - } - - var para = BaseDal.QueryData() - .Where(x => x.Deptid == deptId) - .OrderByDescending(x => x.CreateDate) - .FirstOrDefault(); - - 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;//鍙充几鍑轰綅缃� - try { - var leftorigin = devices.Value.left.Communicator.Read<bool>("M115");//宸lc鍒板師鐐逛綅缃俊鍙� - var rightorigin = devices.Value.right.Communicator.Read<bool>("M115");//鍙硃lc鍒拌揪鍘熺偣浣嶇疆淇″彿 - if (leftorigin == true || rightorigin == true) + var devices = GetDevicesByDeptId(deptId); + if (devices == null) { - return new WebResponseContent { Status = false, Message = "宸插埌鍘熷鐐�" }; - } - } - catch (Exception) - { - - - } - try - { - var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//宸lc鍒拌揪鐩爣浣嶇疆 - var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//鍙硃lc鍒拌揪鐩爣浣嶇疆 - if (lefttarget == true || righttarget == true) - { - return new WebResponseContent { Status = false, Message = "宸插埌鏈�澶у��" }; + messages.Add($"DeptId={deptId} 鏈壘鍒拌澶囷紝璺宠繃"); + continue; } - } - catch (Exception) - { + 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; - - if (extendedState == "浼稿嚭") - { try { - devices.Value.left.Communicator.Write<int>("D1001", ext);//宸LC鑷姩浼稿嚭缂╁洖閫熷害 - devices.Value.left.Communicator.Write<bool>("M102", true);//浼稿嚭鎸夐挳 - devices.Value.left.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� + 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 { - devices.Value.right.Communicator.Write<int>("D1001", ret); //鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害 + 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); - devices.Value.right.Communicator.Write<int>("D1002", rigtpostition);//鍙充几鍑轰綅缃� - } - catch (Exception) + + } } + catch { } + + } + else if (extendedState == "缂╁洖") + { + + try { - - throw; + if (devices.Value.left.Communicator.Read<bool>("M115")) //鍒拌揪鍘熺偣浣� + { + messages.Add($"杞ㄩ亾绔檣deptId}宸︿几缂╂潌宸插埌鍘熺偣"); + } - - - - Console.WriteLine($"DeptId={deptId} 锛屽乏閫熷害={ext}锛屽彸閫熷害={ret}"); + 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缂╁洖鎸夐挳 + + } } - else if (extendedState == "缂╁洖") - { + catch { } + + + try { - devices.Value.left.Communicator.Write<int>("D1001", ext);//缂╁洖閫熷害 - devices.Value.left.Communicator.Write<bool>("M103", true);//缂╁洖鎸夐挳 - } - catch (Exception) + if (devices.Value.right.Communicator.Read<bool>("M115")) { - - throw; + messages.Add($"杞ㄩ亾绔檣deptId}鍙充几缂╂潌宸插埌鍘熺偣"); + } - - try + else { - devices.Value.right.Communicator.Write<int>("D1001", ret); + 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 (Exception) + catch { } + + } + else { - - throw; + return new WebResponseContent { Status = false, Message = "鏈煡鎿嶄綔鍛戒护" }; } - Console.WriteLine($"DeptId={deptId} 缂╁洖鎿嶄綔锛屽乏閫熷害={ext}锛屽彸閫熷害={ret}"); + + } - else + catch (Exception exDept) { - 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}" + }; } } + @@ -176,96 +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 { - var leftorigin = devices.Value.left.Communicator.Read<bool>("M115");//宸lc鍒板師鐐逛綅缃俊鍙� - var rightorigin = devices.Value.right.Communicator.Read<bool>("M115");//鍙硃lc鍒拌揪鍘熺偣浣嶇疆淇″彿 - if (leftorigin == true || rightorigin == true) + if (devices.Value.left.Communicator.Read<bool>("M117")) //榛樿鏄痜lase { - return new WebResponseContent { Status = false, Message = "宸插埌鍘熷鐐�" }; - } - } - catch (Exception) - { - - } - try - { - var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//宸lc鍒拌揪鐩爣浣嶇疆 - var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//鍙硃lc鍒拌揪鐩爣浣嶇疆 - if (lefttarget == true || righttarget == true) - { - return new WebResponseContent { Status = false, Message = "宸插埌鏈�澶у��" }; + 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 }; } + } -- Gitblit v1.9.3