using HslCommunication; using Newtonsoft.Json; using System; using System.Collections.Generic; using WIDESEA_Common.Tools; using WIDESEA_Core.Utilities; using WIDESEA_Services.Services; using WIDESEA_WCS.WCSClient; namespace WIDESEA_WCS.SchedulerExecute.AGV { public partial class AGVSchedulerExecute { /// /// 传递AGV与卷帘门信号 /// public static void AgvAndEquiWork_JLM() { PLCClient agvjrplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度"); #region 无线io模块 104卷绕中控 开门信号传递 int comErr = 0;//自动门掉线 "拆包间卷帘门139", "涂布正负极卷帘门142", double doorCode = 2.0; //自动门ID double doorState = 24.0;//自动门状态,1门关到位,2 门开到位,3门未到位 double doorOpen = 26.0; //自动门控制开 try { if (agvjrplc == null) { return; } List Door = new List { "负极库前门", "正极库前门", "负极库后门", "正极库后门", "正级库223门", "组装风铃门前门", "组装风铃门后门", "组装226门", "组装227门", "组装228门", "组装229门" }; foreach (var item in Door) { OperateResult R_comErr = agvjrplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1004." + doorOpen); if (!R_comErr.IsSuccess) { continue; } //AGV请求开门 if (R_comErr.Content) { Dictionary Doorsignal = new Dictionary(); Doorsignal.Add("R_comErr", R_comErr.Content.ToString());//true Doorsignal.Add("DoorName", item.ToString());//item.ToString() string wificont = WIFIAPIInvoke.Doorsignal(Doorsignal); WebResponseContent wificontent = JsonConvert.DeserializeObject(wificont); //if (item == "组装风铃门前门") //{ // Console.WriteLine(wificontent.Status); //} if (wificontent.Status) { //if (item == "组装风铃门前门") //{ // Console.WriteLine(Convert.ToUInt16(wificontent.Data) ); //} if (Convert.ToBoolean(wificontent.Data) == false)//自动门掉线 { OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true); } else if (Convert.ToUInt16(wificontent.Data) == 2)//开门到位 { OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent.Data)); } else if (Convert.ToUInt16(wificontent.Data) == 3)//门未到位 { OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent.Data)); } } } else { //OperateResult R_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1004." + doorState); //if (R_stationDockSteps.Content == 1)//关门到位 //{ // comErr += 30; // doorCode += 30; // doorState += 30; // doorOpen += 30; // continue; //} //else //{ // WIDESEA_Common.Tools.WriteLog.GetLog("断开开门信号").Write($"Info:{item}+{DateTime.Now}", "断开开门信号"); //AGV不给开门信号的时候 断开开门信号 Dictionary Doorsigna1 = new Dictionary(); Doorsigna1.Add("R_comErr", R_comErr.Content.ToString()); Doorsigna1.Add("DoorName", item.ToString()); string wificont = WIFIAPIInvoke.Doorsignal(Doorsigna1); WebResponseContent wificontent2 = JsonConvert.DeserializeObject(wificont); if (wificontent2.Status) { if (Convert.ToBoolean(wificontent2.Data) == false)//自动门掉线 { OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true); } ////else if (Convert.ToUInt16(wificontent2.Data) == 1)//关门到位 ////{ //// OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data)); ////} else { //关门未到位 OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data)); } } //} } comErr += 30; doorCode += 30; doorState += 30; doorOpen += 30; } } catch (Exception ex) { WriteLog.GetLog().Write("传递组装AGV与卷帘门信号异常" + ex.Message.ToString() + DateTime.Now, "传递组装AGV与卷帘门信号"); } #endregion // WIDESEA_Common.Tools.WriteLog.GetLog("信号传递").Write($"Info:{DateTime.Now}", "信号传递"); } } }