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); 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> 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代表æ£ä¿®å®æ 1代表æ£ä¿®ä¸ /// </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) { //å æ¥æ¾ææç¨æ·çç»æ¯é£ä¸ªç»çï¼ç»åç¶ææä¸ä¸ªä¸æ¯1 // æ¥æ¾åç»æªå®æçç»åï¼IsLeader=0 && MaintenanceStatus=1ï¼ var hasUnfinishedMembers = user.Where(x =>x.IsLeader == 0 &&x.MaintenanceStatus == 1).ToList(); //ï¼Any()æä¸ä¸ªæ»¡è¶³å°±è¿å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, 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;//å³PLCèªå¨ä¼¸åºç¼©åé度 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 += "å·¦PLCå·²å°åç¹ï¼"; } } catch (Exception) { } try { var rightorigin = devices.Value.right.Communicator.Read<bool>("M115"); if (rightorigin) { canRightWork = false; message += "å³PLCå·²å°åç¹ï¼"; } } 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 += "å·¦PLC已尿大å¼ï¼"; return new WebResponseContent { Status = true, Message = "ç°å¨æ£å¨è¿è¡ä¸ï¼çå¾ æä½å®æ" }; } } 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 += "å³PLC已尿大å¼ï¼"; return new WebResponseContent { Status = true, Message = "ç°å¨æ£å¨è¿è¡ä¸ï¼çå¾ æä½å®æ" }; } } catch (Exception) { @@ -111,51 +86,79 @@ if (ExtendedState == "伸åº") { if (canLeftWork) { try { devices.Value.left.Communicator.Write<int>("D1001", ext);//å·¦PLCèªå¨å¨ä¼¸åºç¼©åé度 if (devices.Value.left.Communicator.Read<float>("D80")>= liftPosition-5)//å°è¾¾æå¤§ä½ç½®) { message += "å·¦PLC已尿大ä½ç½®ï¼"; } else { devices.Value.left.Communicator.Write<int>("D1022", liftPosition);//伸åºä½ç½® devices.Value.left.Communicator.Write<int>("D1002", ext);//å·¦PLCèªå¨å¨ä¼¸åºç¼©åé度 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 += "å³PLC已尿大ä½ç½®ï¼"; } 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);//å·¦PLCèªå¨ä¼¸=缩ååºç¼©åé度 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);//å·¦PLCèªå¨ä¼¸=缩ååºç¼©åé度 devices.Value.left.Communicator.Write<bool>("M103", true);//å·¦plc缩åæé® } 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;//å³PLCæå¨ä¼¸åºç¼©åé度 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")) //é»è®¤æ¯flase { if (leftOrigin) { message += "å·¦PLCå·²å°åç¹ï¼"; canLeft=false; return new WebResponseContent { Status = true, Message = "ç°å¨æ£å¨è¿è¡ä¸ï¼çå¾ æä½å®æ" }; } } catch (Exception ) { } try { var rightOrigin = devices.Value.right.Communicator.Read<bool>("M115"); if (rightOrigin) { message += "å³PLCå·²å°åç¹ï¼"; canRight = false; } } catch (Exception) { } try { try if (devices.Value.right.Communicator.Read<bool>("M117")) { var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//å·¦plcå°è¾¾ç®æ ä½ç½® if (lefttarget) { message += "å·¦plcå°è¾¾ç®æ ä½ç½®ï¼"; canLeft = false; } return new WebResponseContent { Status = false, Message = "ç°å¨æ£å¨è¿è¡ä¸ï¼çå¾ æä½å®æ" }; } catch (Exception) { } try { var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//å³plcå°è¾¾ç®æ ä½ç½® if (righttarget) { message += "å³plcå°è¾¾ç®æ ä½ç½®ï¼"; 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);//å·¦PLCæå¨ä¼¸åºç¼©åé度 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 += "å·¦PLCå·²å°åç¹ï¼"; } else { devices.Value.left.Communicator.Write<int>("D1004", liftPosition);//伸åºä½ç½® devices.Value.left.Communicator.Write<int>("D1000", ext);//å·¦PLCæå¨ä¼¸åºç¼©åé度 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);//å³PLCæå¨ä¼¸åºç¼©åé度 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);//å³PLCæå¨ä¼¸åºç¼©åé度 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 }; project/ºǫ́¹ÜÀí/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}轨éå·¦PLCå·²å°åç¹"); canLeft = false; return new WebResponseContent { Status = false, Message = "ç°å¨æ£å¨è¿è¡ä¸ï¼çå¾ æä½å®æ" }; } } catch (Exception) { } try { var rightOrigin = devices.Value.right.Communicator.Read<bool>("M115"); if (rightOrigin) { messages.Add($"{deptId}轨éå³PLCå·²å°åç¹"); canRight = false; } } catch (Exception) { } try { var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//å·¦plcå°è¾¾ç®æ ä½ç½® if (lefttarget) { messages.Add($"{deptId}轨éå·¦plcå°è¾¾ç®æ ä½ç½®"); canLeft = false; } } catch (Exception) { } try { var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//å³plcå°è¾¾ç®æ ä½ç½® if (righttarget) if (devices.Value.right.Communicator.Read<bool>("M117")) { messages.Add($"{deptId}轨éå³plcå°è¾¾ç®æ ä½ç½®"); canRight = false; return new WebResponseContent { Status = false, Message = "ç°å¨æ£å¨è¿è¡ä¸ï¼çå¾ æä½å®æ" }; } } @@ -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);//å·¦PLCèªå¨å¨ä¼¸åºç¼©åé度 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);//å·¦PLCèªå¨ä¼¸=缩ååºç¼©åé度 devices.Value.left.Communicator.Write<bool>("M103", true);//å·¦plc缩åæé® } } 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;//å·¦PLCæå¨ä¼¸åºç¼©åé度 int ret = (int)para.ManualRetraction;//å³PLCæå¨ä¼¸åºç¼©åé度 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")) //é»è®¤æ¯flase { message += "å·¦PLCå·²å°åç¹ï¼"; canLeft = false; return new WebResponseContent { Status = true, Message = "ç°å¨æ£å¨è¿è¡ä¸ï¼çå¾ æä½å®æ" }; } } catch (Exception) { } { } try { var rightOrigin = devices.Value.right.Communicator.Read<bool>("M115"); if (rightOrigin) if (devices.Value.right.Communicator.Read<bool>("M117")) { message += "å³PLCå·²å°åç¹ï¼"; canRight = false; return new WebResponseContent { Status = false, Message = "ç°å¨æ£å¨è¿è¡ä¸ï¼çå¾ æä½å®æ" }; } } catch (Exception) { } try { var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//å·¦plcå°è¾¾ç®æ ä½ç½® if (lefttarget) { message += "å·¦plcå°è¾¾ç®æ ä½ç½®ï¼"; canLeft = false; } } catch (Exception) { } try { var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//å³plcå°è¾¾ç®æ ä½ç½® if (righttarget) { message += "å³plcå°è¾¾ç®æ ä½ç½®ï¼"; 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);//å·¦PLCæå¨ä¼¸åºç¼©åé度 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 += "å·¦PLCå·²å°åç¹ï¼"; } else { devices.Value.left.Communicator.Write<int>("D1004", liftPosition);//伸åºä½ç½® devices.Value.left.Communicator.Write<int>("D1000", ext);//å·¦PLCæå¨ä¼¸åºç¼©åé度 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);//å³PLCæå¨ä¼¸åºç¼©åé度 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);//å³PLCæå¨ä¼¸åºç¼©åé度 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 }; } }