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/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs | 4 project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs | 97 ++++--- project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs | 9 project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs | 241 ++++++++++--------- project/后台管理/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs | 314 ++++++++++++------------- 5 files changed, 331 insertions(+), 334 deletions(-) diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs index eb8ae10..d8acad0 100644 --- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs +++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs @@ -29,11 +29,11 @@ WebResponseContent PersonnelMonitoring(PaginationDTO pagination); /// <summary> - /// 鏇存敼鐘舵�侊紝杩愯杩涘叆妫�淇� + /// 鏇存敼鐘舵�侊紝寮哄埗涓嬬嚎 /// </summary> /// <param name="id"></param> /// <returns></returns> - WebResponseContent RunOperation(int id,string ispossible); + WebResponseContent RunOperation(int id, string LocalIP); WebResponseContent ChangeTasState(int id); diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs index 1a89567..06a69fe 100644 --- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs +++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs @@ -44,15 +44,16 @@ /// <summary> - /// 鏇存敼鐘舵�侊紝杩愯杩涘叆妫�淇� + /// 鏇存敼鐘舵�侊紝寮哄埗涓嬬嚎 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpPost, Route("RunOperation"), AllowAnonymous] - public WebResponseContent RunOperation(int id, string ispossible) + public WebResponseContent RunOperation(int id, string LocalIP) { - // - return Service.RunOperation(id, ispossible); + var userIp = HttpContext.GetUserIp();//鐢ㄦ埛鐢佃剳ip + var reslut = userIp.Replace("::ffff:", " "); + return Service.RunOperation(id, LocalIP); } /// <summary> diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs index 0454faa..a99fa9d 100644 --- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs +++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs @@ -148,6 +148,7 @@ a.UserTrueName, a.Userteam,//鐝粍 a.Unit,//鍗曚綅 + b.ID,//id b.MaintenanceStatus,//妫�淇姸鎬� b.CreateDate,//鏃ユ湡 b.MaintenancStartTime,//寮�濮嬫椂闂� @@ -177,43 +178,38 @@ /// <summary> - /// 鏇存柊鐘舵�佹槸鍚﹀厑璁歌繘鍏ユ淇紙娣诲姞浜嗘淇褰曪級 + /// 鏇存柊鐘舵�佸己鍒朵笅绾匡紙娣诲姞浜嗘淇褰曪級 /// </summary> /// <param name="id"></param> /// <param name="ispossible"></param> /// <returns></returns> - public WebResponseContent RunOperation(int id, string ispossible) + public WebResponseContent RunOperation(int id,string LocalIP) { try { - var mon = BaseDal.QueryFirst(x => x.ID == id); - if (mon == null) + var user = BaseDal.QueryData();//妫�淇〃 + + var maint = user.Where(x => x.ID == id).FirstOrDefault(); //鍦ㄦ淇〃涓厛鎵惧埌璇ョ敤鎴� + var sysuer = _user.QueryData(x => x.UserName == maint.UserAccount).FirstOrDefault(); + if (maint == null ||sysuer==null) { - return new WebResponseContent { Status = false, Message = "鏃犳硶鏇存敼锛屾病鏈夋壘鍒拌鐢ㄦ埛" }; + return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" }; } - var sysuer = _user.QueryData(x => x.UserName == mon.UserAccount).FirstOrDefault(); - if (ispossible == "true") + maint.MaintenanceStatus = 0;//鏀瑰彉鐘舵�佸己鍒朵笅绾� + BaseDal.UpdateData(maint); + //鎻掑叆璁板綍琛� + var recording = new Dt_MaintenanceTeam //娣诲姞璁板綍 { - mon.IsPossible = "true"; - mon.MaintenanceDate = DateTime.Now; - BaseDal.UpdateData(mon); - var recording = new Dt_MaintenanceTeam //娣诲姞璁板綍 - { - OperatorName = sysuer.UserTrueName, - TeamName = sysuer.RoleName, - DistributionTime = DateTime.Now, - Creater = "admin", - CreateDate = DateTime.Now, + Account = maint.UserAccount, + MaintenanceStatus = 0, + OperatorName = sysuer.UserTrueName, + TeamName = sysuer.RoleName, + DistributionTime = DateTime.Now, + IPAddress = LocalIP, + }; + _team.AddData(recording); - }; - _team.AddData(recording); - } - else - { - mon.IsPossible = "false"; - BaseDal.UpdateData(mon); - } - return new WebResponseContent { Status = true, Data = mon }; + return new WebResponseContent { Status = true,Message="寮哄埗涓嬬嚎鎴愬姛", Data = recording }; } catch (Exception ex) { @@ -606,19 +602,19 @@ } } - /// <summary> /// 缁撴潫妫�淇� - /// </summary>MaintenanceStatus 0浠h〃妫�淇畬鎴� 1浠h〃妫�淇腑 + /// </summary> /// <param name="account"></param> /// <returns></returns> public WebResponseContent StopMaintenanceTask(string account) { try { - var user = BaseDal.QueryData();//妫�淇〃 + var user = BaseDal.QueryData(); // 妫�淇〃 var maint = user.Where(x => x.UserAccount == account).FirstOrDefault(); - var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//鐢ㄦ埛琛� + var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault(); // 鐢ㄦ埛琛� + if (maint == null || sysuer == null) { return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" }; @@ -626,33 +622,46 @@ // 鏌ユ壘璇ョ敤鎴峰湪 _team 琛ㄤ腑鐨勬渶鏂颁竴鏉¤褰� var lastRecord = _team.QueryData(x => x.Account == account) - .OrderByDescending(x => x.CreateDate) - .FirstOrDefault(); + .OrderByDescending(x => x.CreateDate) + .FirstOrDefault(); if (lastRecord == null || lastRecord.MaintenanceStatus != 1) { return new WebResponseContent { Status = false, Message = "浣犺繕娌℃湁寮�濮嬫淇紝璇峰厛鐐瑰嚮寮�濮嬫淇�" }; } - if (maint.IsLeader == 1)//濡傛灉璇ョ敤鎴锋槸鐝暱锛岄偅涔堣绛夊叏閮ㄤ汉閮芥淇畬鎴愶紝浠栨墠鍙互缁撴潫妫�淇� + // 妫�鏌ユ槸鍚﹁嚦灏戞湁涓�涓粍闀垮湪鍦� + var activeLeaders = user.Where(x => x.IsLeader == 1 && x.MaintenanceStatus == 1).ToList(); + + // 濡傛灉褰撳墠鐢ㄦ埛鏄粍闀� + if (maint.IsLeader == 1) { - //鍏堟煡鎵炬墍鏈夌敤鎴风殑缁勬槸閭d釜缁勭殑锛岀粍鍛樼姸鎬佹湁涓�涓笉鏄�1 - // 鏌ユ壘鍚岀粍鏈畬鎴愮殑缁勫憳锛圛sLeader=0 && MaintenanceStatus=1锛� - var hasUnfinishedMembers = user.Where(x =>x.IsLeader == 0 &&x.MaintenanceStatus == 1).ToList(); //锛欰ny()鏈変竴涓弧瓒冲氨杩斿洖true琛ㄧず瀛樺湪婊¤冻鏉′欢鐨勮褰� - if (hasUnfinishedMembers.Count>0) + // 濡傛灉鏄渶鍚庝竴涓湪鍦虹殑缁勯暱 + if (activeLeaders.Count == 1 && activeLeaders[0].UserAccount == account) { - return new WebResponseContent { Status = false, Message = "杩樻湁缁勫憳鏈畬鎴愬綋鍓嶆壒娆℃淇�" }; + // 妫�鏌ユ槸鍚﹁繕鏈夋湭瀹屾垚鐨勭粍鍛� + var unfinishedMembers = user.Where(x => x.IsLeader == 0 && x.MaintenanceStatus == 1).Any(); + if (unfinishedMembers) + { + return new WebResponseContent + { + Status = false, + Message = "鎮ㄦ槸鏈�鍚庝竴涓湪鍦虹殑缁勯暱锛岃绛夊緟鎵�鏈夌粍鍛樺畬鎴愭淇悗鍐嶇粨鏉�" + }; + } } } - //濡傛灉婊¤冻涓嬮潰鐨勬潯浠跺氨寮�濮� - maint.MaintenancEendTime = DateTime.Now;//璁板綍缁撴潫鏃堕棿 - maint.MaintenanceStatus = 0;//鏇存敼鐘舵�� + + // 鏇存柊褰撳墠鐢ㄦ埛鐨勬淇姸鎬� + maint.MaintenancEendTime = DateTime.Now; // 璁板綍缁撴潫鏃堕棿 + maint.MaintenanceStatus = 0; // 鏇存敼鐘舵�� BaseDal.UpdateData(maint); - ////鎻掑叆璁板綍琛� - var recording = new Dt_MaintenanceTeam //娣诲姞璁板綍 + + // 鎻掑叆璁板綍琛� + var recording = new Dt_MaintenanceTeam // 娣诲姞璁板綍 { Account = account, - MaintenanceStatus=0, + MaintenanceStatus = 0, OperatorName = sysuer.UserTrueName, TeamName = sysuer.RoleName, EndTime = DateTime.Now, diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs index 68f1eda..8704a1d 100644 --- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs +++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs @@ -15,6 +15,7 @@ using WIDESEAWCS_ITelescopicService; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; +using static WIDESEAWCS_Common.Face.TH_Faces; namespace WIDESEAWCS_TelescopicService @@ -37,6 +38,7 @@ /// <returns></returns> public WebResponseContent automation(string ExtendedState) { + try { @@ -56,54 +58,27 @@ int ret = (int)para.RetractionSpeed;//鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害 int liftPosition = (int)para.LeftPosition;//宸︿几鍑轰綅缃� int rigtpostition = (int)para.RightPosition;//鍙充几鍑轰綅缃� - bool canLeftWork = true; - bool canRightWork = true; string message = ""; - try - { - var leftorigin = devices.Value.left.Communicator.Read<bool>("M115"); //鍒拌揪鍘熺偣浣嶇疆 - if (leftorigin) - { - canLeftWork = false; - message += "宸LC宸插埌鍘熺偣锛�"; - } - } - catch (Exception) - { - } - try - { - var rightorigin = devices.Value.right.Communicator.Read<bool>("M115"); - if (rightorigin) - { - canRightWork = false; - message += "鍙砅LC宸插埌鍘熺偣锛�"; - } - } - catch (Exception) - { - } try { - var lefttarget = devices.Value.left.Communicator.Read<bool>("M116"); //鍒拌揪鏈�澶т綅缃� - - if (lefttarget) + if (devices.Value.left.Communicator.Read<bool>("M117")) { - canLeftWork = false; - message += "宸LC宸插埌鏈�澶у�硷紱"; + + return new WebResponseContent { Status = true, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; } - + } - catch { } + catch (Exception) + { + } try { - var righttarget = devices.Value.right.Communicator.Read<bool>("M116"); - if (righttarget) + if (devices.Value.right.Communicator.Read<bool>("M117")) { - canRightWork = false; - message += "鍙砅LC宸插埌鏈�澶у�硷紱"; + return new WebResponseContent { Status = true, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; } + } catch (Exception) { @@ -111,51 +86,79 @@ if (ExtendedState == "浼稿嚭") { - if (canLeftWork) - { + try { - devices.Value.left.Communicator.Write<int>("D1001", ext);//宸LC鑷姩鍔ㄤ几鍑虹缉鍥為�熷害 + if (devices.Value.left.Communicator.Read<float>("D80")>= liftPosition-5)//鍒拌揪鏈�澶т綅缃�) + { + message += "宸LC宸插埌鏈�澶т綅缃紱"; + } + else + { + devices.Value.left.Communicator.Write<int>("D1022", liftPosition);//浼稿嚭浣嶇疆 + devices.Value.left.Communicator.Write<int>("D1002", ext);//宸LC鑷姩鍔ㄤ几鍑虹缉鍥為�熷害 devices.Value.left.Communicator.Write<bool>("M102", true);//浼稿嚭鎸夐挳 - devices.Value.left.Communicator.Write<int>("D1002", liftPosition);//浼稿嚭浣嶇疆 + + } } catch { } - } - - if (canRightWork) - { + try { - devices.Value.right.Communicator.Write<int>("D1001", ret); - devices.Value.right.Communicator.Write<bool>("M102", true); - devices.Value.right.Communicator.Write<int>("D1002", rigtpostition); + if (devices.Value.right.Communicator.Read<float>("D80") >= rigtpostition-5) + { + message += "鍙砅LC宸插埌鏈�澶т綅缃紱"; } + else + { + devices.Value.right.Communicator.Write<int>("D1022", rigtpostition); + devices.Value.right.Communicator.Write<int>("D1002", ret); + devices.Value.right.Communicator.Write<bool>("M102", true); + + } } catch { } - } + } else if (ExtendedState == "缂╁洖") { - if (canLeftWork) - { + try { - devices.Value.left.Communicator.Write<int>("D1001", ext);//宸LC鑷姩浼�=缂╁洖鍑虹缉鍥為�熷害 + if (devices.Value.left.Communicator.Read<bool>("M115")) //鍒拌揪鍘熺偣浣� + { + message += "宸︿几缂╂潌宸插埌鍘熺偣锛�"; + } + else + { + devices.Value.left.Communicator.Write<int>("D1022", liftPosition); + devices.Value.left.Communicator.Write<int>("D1002", ext);//宸LC鑷姩浼�=缂╁洖鍑虹缉鍥為�熷害 devices.Value.left.Communicator.Write<bool>("M103", true);//宸lc缂╁洖鎸夐挳 - } - catch { } + + } } + catch { } - if (canRightWork) - { + try { - devices.Value.right.Communicator.Write<int>("D1001", ret); + if (devices.Value.right.Communicator.Read<bool>("M115")) + { + message += "鍙充几缂╂潌宸插埌鍘熺偣锛�"; + } + else + { + devices.Value.right.Communicator.Write<int>("D1022", rigtpostition); + devices.Value.right.Communicator.Write<int>("D1002", ret); devices.Value.right.Communicator.Write<bool>("M103", true); + + + } + } catch { } - } + } else { @@ -165,8 +168,8 @@ return new WebResponseContent { Status = true, - Message = string.IsNullOrEmpty(message) ? "鎵ц鎴愬姛" : $"閮ㄥ垎PLC鏈墽琛岋細{message}", - Data = new { ExtendSpeed = ext, RetractionSpeed = ret } + Message = string.IsNullOrEmpty(message) ? "鎵ц鎴愬姛" : $"{message}", + Data = new { ExtendSpeed = ext, RetractionSpeed = ret,liftweiz= liftPosition,rightweiz= rigtpostition } }; } @@ -207,114 +210,112 @@ int ret = (int)para.ManualRetraction;//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 int liftPosition = (int)para.LeftPosition;//宸︿几鍑轰綅缃� int rigtpostition = (int)para.RightPosition;//鍙充几鍑轰綅缃� - bool canLeft = true, - canRight = true; + //bool canLeft = true, + // canRight = true; string message = ""; try { - var leftOrigin = devices.Value.left.Communicator.Read<bool>("M115"); - + if (devices.Value.left.Communicator.Read<bool>("M117")) //榛樿鏄痜lase + { - if (leftOrigin) - { - message += "宸LC宸插埌鍘熺偣锛�"; - canLeft=false; + return new WebResponseContent { Status = true, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; } - - } - catch (Exception ) - { } - try - { - var rightOrigin = devices.Value.right.Communicator.Read<bool>("M115"); - if (rightOrigin) - { - message += "鍙砅LC宸插埌鍘熺偣锛�"; - canRight = false; - } + } catch (Exception) { } - try { - try + if (devices.Value.right.Communicator.Read<bool>("M117")) { - var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//宸lc鍒拌揪鐩爣浣嶇疆 - if (lefttarget) - { - message += "宸lc鍒拌揪鐩爣浣嶇疆锛�"; - canLeft = false; - } + return new WebResponseContent { Status = false, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; } - catch (Exception) - { - } - try - { - var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//鍙硃lc鍒拌揪鐩爣浣嶇疆 - if (righttarget) - { - message += "鍙硃lc鍒拌揪鐩爣浣嶇疆锛�"; - canRight = false; - } - } - catch (Exception) - { - } } - catch (Exception ) - { } - if (canLeft) //娌℃湁鍒板師鐐规垨鏈�澶у�肩殑鏃跺�欐墠鎵ц涓嬮潰鐨勮鍙� + catch (Exception) { - if (position == "宸�" && ExtendedState == "浼稿嚭") + } + if (position == "宸�" && ExtendedState == "浼稿嚭") + { + 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); // 閲婃斁鎸夐挳 - devices.Value.left.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ext}"); - } - else if (position == "宸�" && ExtendedState == "缂╁洖") + + } + else if (position == "宸�" && ExtendedState == "缂╁洖") + { + 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}"); } + } - if (canRight) + if (position == "鍙�" && ExtendedState == "浼稿嚭") { - - if (position == "鍙�" && ExtendedState == "浼稿嚭") + 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); // 閲婃斁鎸夐挳 - devices.Value.right.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ret}"); - } - else if (position == "鍙�" && ExtendedState == "缂╁洖") + + + } + else if (position == "鍙�" && ExtendedState == "缂╁洖") + { + 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}"); } - } - return new WebResponseContent { Status = true, - Message = string.IsNullOrEmpty(message) ? "鎵ц鎴愬姛" : $"鎵ц澶辫触锛歿message}", + + } + + + + return new WebResponseContent + { + Status = true, + Message = string.IsNullOrEmpty(message) ? "鎵ц鎴愬姛" : $"{message}", Data = new { ManualExtend = ext, @@ -323,6 +324,8 @@ } }; } + + catch (Exception ex) { return new WebResponseContent { Status = false, Message = ex.Message }; 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 d40bdc8..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" @@ -67,54 +67,23 @@ int liftPos = (int)para.LeftPosition; int rightPos = (int)para.RightPosition; - // 鐙珛鍒ゆ柇宸�/鍙虫槸鍚﹀彲鎵ц - bool canLeft = true, canRight = true; - try { - var leftOrigin = devices.Value.left.Communicator.Read<bool>("M115");//鍒拌揪鍘熺偣 - if (leftOrigin) + if (devices.Value.left.Communicator.Read<bool>("M117")) { - messages.Add($"{deptId}杞ㄩ亾宸LC宸插埌鍘熺偣"); - canLeft = false; + + return new WebResponseContent { Status = false, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; } } catch (Exception) - { } - try - { - var rightOrigin = devices.Value.right.Communicator.Read<bool>("M115"); - if (rightOrigin) - { - messages.Add($"{deptId}杞ㄩ亾鍙砅LC宸插埌鍘熺偣"); - canRight = false; - } - } - catch (Exception) - { - } - - - try - { - var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//宸lc鍒拌揪鐩爣浣嶇疆 - if (lefttarget) - { - messages.Add($"{deptId}杞ㄩ亾宸lc鍒拌揪鐩爣浣嶇疆"); - canLeft = false; - } - } - catch (Exception) { } try { - var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//鍙硃lc鍒拌揪鐩爣浣嶇疆 - if (righttarget) + if (devices.Value.right.Communicator.Read<bool>("M117")) { - messages.Add($"{deptId}杞ㄩ亾鍙硃lc鍒拌揪鐩爣浣嶇疆"); - canRight = false; + return new WebResponseContent { Status = false, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; } } @@ -124,71 +93,83 @@ if (extendedState == "浼稿嚭") { - if (canLeft) - { - try - { - devices.Value.left.Communicator.Write<int>("D1001", ext); - devices.Value.left.Communicator.Write<bool>("M102", true); - devices.Value.left.Communicator.Write<int>("D1002", liftPos); - } - catch (Exception) - { - - - } - - - } - - if (canRight) - { - try - { - - devices.Value.right.Communicator.Write<int>("D1001", ret); - devices.Value.right.Communicator.Write<bool>("M102", true); - devices.Value.right.Communicator.Write<int>("D1002", rightPos); - } - catch (Exception) - { - - } - - } - } - else if (extendedState == "缂╁洖") + + try { - if (canLeft) - { - try - { - devices.Value.left.Communicator.Write<int>("D1001", ext); - devices.Value.left.Communicator.Write<bool>("M103", true); - } - catch (Exception) - { - - - } - - - } - - if (canRight) - { - try - { - devices.Value.right.Communicator.Write<int>("D1001", ret); - devices.Value.right.Communicator.Write<bool>("M103", true); - } - catch (Exception) - { - - - } - } + 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 { } + + + + 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 = "鏈煡鎿嶄綔鍛戒护" }; @@ -232,144 +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; + //bool canLeft = true, + // canRight = true; string message = ""; try { - var leftOrigin = devices.Value.left.Communicator.Read<bool>("M115"); - - - if (leftOrigin) + if (devices.Value.left.Communicator.Read<bool>("M117")) //榛樿鏄痜lase { - message += "宸LC宸插埌鍘熺偣锛�"; - canLeft = false; + + return new WebResponseContent { Status = true, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; } } catch (Exception) - { } + { + } try { - var rightOrigin = devices.Value.right.Communicator.Read<bool>("M115"); - if (rightOrigin) + if (devices.Value.right.Communicator.Read<bool>("M117")) { - message += "鍙砅LC宸插埌鍘熺偣锛�"; - canRight = false; + return new WebResponseContent { Status = false, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; } + } catch (Exception) { } - - - try - { - var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//宸lc鍒拌揪鐩爣浣嶇疆 - if (lefttarget) - { - message += "宸lc鍒拌揪鐩爣浣嶇疆锛�"; - canLeft = false; - } - } - catch (Exception) - { - } - try - { - var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//鍙硃lc鍒拌揪鐩爣浣嶇疆 - if (righttarget) - { - message += "鍙硃lc鍒拌揪鐩爣浣嶇疆锛�"; - canRight = false; - } - - } - catch (Exception) - { - } - - - if (canLeft) + if (position == "宸�" && ExtendedState == "浼稿嚭") { - if (position == "宸�" && ExtendedState == "浼稿嚭") + 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); // 閲婃斁鎸夐挳 - devices.Value.left.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� + + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ext}"); } - else if (position == "宸�" && ExtendedState == "缂╁洖") + + } + else if (position == "宸�" && ExtendedState == "缂╁洖") + { + 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}"); } + } - if (canRight) + + if (position == "鍙�" && ExtendedState == "浼稿嚭") { - if (position == "鍙�" && ExtendedState == "浼稿嚭") + 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); // 閲婃斁鎸夐挳 - devices.Value.right.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ret}"); } - else if (position == "鍙�" && ExtendedState == "缂╁洖") + + + } + else if (position == "鍙�" && ExtendedState == "缂╁洖") + { + 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 = string.IsNullOrEmpty(message) ? "鎵ц鎴愬姛" : $"鎵ц澶辫触锛歿message}", + Status = true, + Message = string.IsNullOrEmpty(message) ? "鎵ц鎴愬姛" : $"{message}", Data = new { ManualExtend = ext, ManualRetraction = ret, message } - }; - } + + catch (Exception ex) { return new WebResponseContent { Status = false, Message = ex.Message }; } + } -- Gitblit v1.9.3