From 73a926018601d9a5a5a3d3f4c051537f45a8eff4 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期四, 14 三月 2024 09:33:38 +0800 Subject: [PATCH] 优化代码逻辑 --- 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" index 41e68a9..ae4dea4 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" @@ -4,6 +4,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Xml.Linq; +using WIDESEA_Comm.LogInfo; using WIDESEA_Core.BaseProvider; using WIDESEA_Core.FreeDB; using WIDESEA_Entity.DomainModels; @@ -30,6 +32,9 @@ if (Gantry_client == null) throw new Exception("妗佹灦璋冨害鏈嶅姟鏈紑鍚紒"); if (!Gantry_client.IsConnected) throw new Exception("涓庢鏋惰繛鎺ヨ秴鏃讹紒"); var Gantryplc = FreeDB.Select<dt_plcinfohead>().Where(x => x.plcinfo_name == Gantry_client.PLCName).First(); + var Pipeline_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "閾炬潯鏈�"); + if (Pipeline_client == null) throw new Exception("閾炬潯鏈鸿皟搴︽湇鍔℃湭寮�鍚紒"); + if (!Pipeline_client.IsConnected) throw new Exception("涓庨摼鏉℃満杩炴帴瓒呮椂锛�"); List<string> numbers = new List<string>() { "1鍗曞厓闃插憜", "2鍗曞厓闃插憜", "3鍗曞厓闃插憜", "涓婃枡鍖洪槻鍛�" }; var details = FreeDB.Select<dt_plcinfodetail>().Where(x => x.plcdetail_iotype == Gantryplc.plcinfo_iotyep && x.plcdetail_number == numbers[requestin.AreaNr - 1]).ToList(); if (MethodName == "AGVRequestin")//璇锋眰杩涘叆鍖哄煙 @@ -38,6 +43,10 @@ Gantry_client.WriteByOrder("W_AGV_Request_In", true, numbers[requestin.AreaNr - 1]);//鐢宠杩涘叆鍖哄煙 var Release = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Release_In").First(), Gantry_client);//鍏佽杩涘叆鍖哄煙 var Gantry_Out_of_Area = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Gantry_Out_of_Area").First(), Gantry_client);//妗佹灦涓嶅湪璇ュ尯鍩� + #region 鏃ュ織璁板綍 + WriteDBLog.Success("AGV璇锋眰杩涘叆鍖哄煙", $"鍐欏叆妗佹灦淇℃伅锛歕n鍖哄煙鍙凤細{requestin.AreaNr}\n鐢宠杩涘叆鍖哄煙锛歵rue" + + $"\n\n璇诲彇妗佹灦淇℃伅锛歕n鍏佽杩涘叆鍖哄煙锛歿Release}\n妗佹灦涓嶅湪璇ュ尯鍩燂細{Gantry_Out_of_Area}", "AGV"); + #endregion if (!Release) throw new Exception("妗佹灦鏈厑璁歌繘鍏ワ紒"); if (!Gantry_Out_of_Area) throw new Exception("妗佹灦鍦ㄥ尯鍩熷唴锛�"); } @@ -46,16 +55,26 @@ Gantry_client.WriteByOrder("W_AreaNr", (Int16)requestin.AreaNr, numbers[requestin.AreaNr - 1]);//鍖哄煙鍙� if (requestin.Type == 1) { + Pipeline_client.WriteByOrder("W_AGV_Entering", (Int16)1, numbers[requestin.AreaNr - 1]);//鍏夋爡灞忚斀 Gantry_client.WriteByOrder("W_AGV_Leaving", false, numbers[requestin.AreaNr - 1]);//姝e湪绂诲紑 Gantry_client.WriteByOrder("W_AGV_Entering", true, numbers[requestin.AreaNr - 1]);//姝e湪杩涘叆 var Area_Occupied_by_AGV = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Area_Occupied_by_AGV").First(), Gantry_client);//妗佹灦鍙嶉AGV鍗犱綅淇″彿 + #region 鏃ュ織璁板綍 + WriteDBLog.Success("AGV姝e湪杩涘叆鍖哄煙", $"鍐欏叆妗佹灦淇℃伅锛歕n鍖哄煙鍙凤細{requestin.AreaNr}\n姝e湪绂诲紑锛歠alse\n姝e湪杩涘叆锛歵rue\n鍏夋爡灞忚斀锛�1" + + $"\n\n璇诲彇妗佹灦淇℃伅锛歕n鍙嶉AGV鍗犱綅淇″彿锛歿Area_Occupied_by_AGV}", "AGV"); + #endregion if (!Area_Occupied_by_AGV) throw new Exception("妗佹灦鏈弽棣圓GV鍗犱綅淇″彿"); } else if (requestin.Type == 2) { + Pipeline_client.WriteByOrder("W_AGV_Entering", (Int16)2, numbers[requestin.AreaNr - 1]);//鍏夋爡鍚敤 Gantry_client.WriteByOrder("W_AGV_Entering", false, numbers[requestin.AreaNr - 1]);//姝e湪杩涘叆 Gantry_client.WriteByOrder("W_AGV_Leaving", true, numbers[requestin.AreaNr - 1]);//姝e湪绂诲紑 var Area_Occupied_by_AGV = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Area_Occupied_by_AGV").First(), Gantry_client);//妗佹灦鍙嶉AGV鍗犱綅淇″彿 + #region 鏃ュ織璁板綍 + WriteDBLog.Success("AGV姝e湪绂诲紑鍖哄煙", $"鍐欏叆妗佹灦淇℃伅锛歕n鍖哄煙鍙凤細{requestin.AreaNr}\n姝e湪杩涘叆锛歠alse\n姝e湪绂诲紑锛歵rue\n鍏夋爡灞忚斀锛�2" + + $"\n\n璇诲彇妗佹灦淇℃伅锛歕n鍙嶉AGV绂诲紑淇″彿锛歿!Area_Occupied_by_AGV}", "AGV"); + #endregion if (Area_Occupied_by_AGV) throw new Exception("妗佹灦鏈弽棣圓GV绂诲紑淇″彿"); } } @@ -63,10 +82,16 @@ { Gantry_client.WriteByOrder("W_AreaNr", (Int16)requestin.AreaNr, numbers[requestin.AreaNr - 1]);//鍖哄煙鍙� Gantry_client.WriteByOrder("W_AGV_OUT_OF_Area", requestin.OUTOFArea == 1 ? true : false, numbers[requestin.AreaNr - 1]);//AGV涓嶅湪璇ュ尯鍩� + #region 鏃ュ織璁板綍 + WriteDBLog.Success("AGV涓嶅湪鍖哄煙鍐�", $"鍐欏叆妗佹灦淇℃伅锛歕n鍖哄煙鍙凤細{requestin.AreaNr}\nAGV涓嶅湪璇ュ尯鍩燂細{(requestin.OUTOFArea == 1 ? true : false)}", "AGV"); + #endregion } else if (MethodName == "GantryOutofArea")//妗佹灦涓嶅湪鍖哄煙鍐� { var Gantry_Out_of_Area = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Gantry_Out_of_Area").First(), Gantry_client);//妗佹灦涓嶅湪璇ュ尯鍩� + #region 鏃ュ織璁板綍 + WriteDBLog.Success("妗佹灦涓嶅湪鍖哄煙鍐�", $"璇诲彇妗佹灦淇℃伅锛歕n鍖哄煙鍙凤細{requestin.AreaNr}\n妗佹灦涓嶅湪璇ュ尯鍩燂細{Gantry_Out_of_Area}", "AGV"); + #endregion if (!Gantry_Out_of_Area) throw new Exception("妗佹灦鍦ㄥ尯鍩熷唴锛�"); } respone.success = 1; -- Gitblit v1.9.3