| | |
| | | { |
| | | PLCClient agvjrplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度"); |
| | | PLCClient oiplc1F = WCSService.Clients.Find(v => v.PLCName == PLCConst.PLCName1FLKHCJ); |
| | | PLCClient oiplcJR = WCSService.Clients.Find(v => v.PLCName == PLCConst.PLCNameJR); |
| | | |
| | | #region 无线io模块 104卷绕中控 开门信号传递 |
| | | int comErr = 0;//自动门掉线 "拆包间卷帘门139", "涂布正负极卷帘门142", |
| | |
| | | OperateResult<bool> R_comErr = agvjrplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1004." + doorOpen); |
| | | if (!R_comErr.IsSuccess) |
| | | { |
| | | comErr += 30; |
| | | doorCode += 30; |
| | | doorState += 30; |
| | | doorOpen += 30; |
| | | continue; |
| | | } |
| | | |
| | | string doorStart = "";//开门 |
| | | string doorOff = "";//关门 |
| | | string doorStarted = "";//开门到位 |
| | | string doorOffed = "";//关门到位 |
| | | switch (item) |
| | | { |
| | | |
| | | case "负极库前门": |
| | | doorStart = "s=2;11"; |
| | | doorOff = "s=2;12"; |
| | | doorStarted = "x=2;14"; |
| | | doorOffed = "x=2;15"; |
| | | break; |
| | | case "负极库后门": |
| | | doorStart = "s=2;27"; |
| | | doorOff = "s=2;28"; |
| | | doorStarted = "x=2;30"; |
| | | doorOffed = "x=2;31"; |
| | | break; |
| | | case "正极库后门": |
| | | doorStart = "s=2;19"; |
| | | doorOff = "s=2;20"; |
| | | doorStarted = "x=2;22"; |
| | | doorOffed = "x=2;23"; |
| | | break; |
| | | } |
| | | //AGV请求开门 |
| | | if (R_comErr.Content) |
| | | { |
| | | Dictionary<string, string> Doorsignal = new Dictionary<string, string>(); |
| | | 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<WebResponseContent>(wificont); |
| | | //if (item == "组装风铃门前门") |
| | | //{ |
| | | // Console.WriteLine(wificontent.Status); |
| | | //} |
| | | if (wificontent.Status) |
| | | if ((item == "负极库前门" || item == "负极库后门" || item == "正极库后门") && oiplcJR != null)// |
| | | { |
| | | //if (item == "组装风铃门前门") |
| | | //{ |
| | | // Console.WriteLine(Convert.ToUInt16(wificontent.Data) ); |
| | | //} |
| | | if (Convert.ToBoolean(wificontent.Data) == false)//自动门掉线 |
| | | OperateResult JROpenJLM1 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorStart, true); |
| | | OperateResult JROpenJLM2 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorStart, true); |
| | | OperateResult JROpenJLM3 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorOff, false); |
| | | OperateResult JROpenJLM4 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorOff, false); |
| | | if (JROpenJLM1.IsSuccess || JROpenJLM2.IsSuccess || JROpenJLM3.IsSuccess || JROpenJLM4.IsSuccess) |
| | | { |
| | | OperateResult<bool> JRJLMOpen1 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.ReadBool(doorStarted); |
| | | OperateResult<bool> JRJLMOpen2 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.ReadBool(doorStarted); |
| | | if (JRJLMOpen1.Content || JRJLMOpen2.Content)//开门到位 |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(2)); |
| | | } |
| | | else//门未到位 |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(3)); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true); |
| | | } |
| | | else if (Convert.ToUInt16(wificontent.Data) == 2)//开门到位 |
| | | } |
| | | else |
| | | { |
| | | Dictionary<string, string> Doorsignal = new Dictionary<string, string>(); |
| | | 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<WebResponseContent>(wificont); |
| | | //if (item == "组装风铃门前门") |
| | | //{ |
| | | // Console.WriteLine(wificontent.Status); |
| | | //} |
| | | if (wificontent.Status) |
| | | { |
| | | 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)); |
| | | //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 |
| | | //{ |
| | | // WIDESEA_Common.Tools.WriteLog.GetLog("断开开门信号").Write($"Info:{item}+{DateTime.Now}", "断开开门信号"); |
| | | //AGV不给开门信号的时候 断开开门信号 |
| | | Dictionary<string, string> Doorsigna1 = new Dictionary<string, string>(); |
| | | Doorsigna1.Add("R_comErr", R_comErr.Content.ToString()); |
| | | Doorsigna1.Add("DoorName", item.ToString()); |
| | | string wificont = WIFIAPIInvoke.Doorsignal(Doorsigna1); |
| | | WebResponseContent wificontent2 = JsonConvert.DeserializeObject<WebResponseContent>(wificont); |
| | | if (wificontent2.Status) |
| | | if ((item == "负极库前门" || item == "负极库后门" || item == "正极库后门") && oiplcJR != null) |
| | | { |
| | | if (Convert.ToBoolean(wificontent2.Data) == false)//自动门掉线 |
| | | //AGV不给开门信号的时候 断开开门信号 |
| | | OperateResult JROpenJLM1 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorStart, false); |
| | | OperateResult JROpenJLM2 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorStart, false); |
| | | //OperateResult JROpenJLM3 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorOff, true); |
| | | //OperateResult JROpenJLM4 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorOff, true); |
| | | if (JROpenJLM1.IsSuccess || JROpenJLM2.IsSuccess) |
| | | { |
| | | OperateResult<bool> JRJLMOpen1 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.ReadBool(doorOffed); |
| | | OperateResult<bool> JRJLMOpen2 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.ReadBool(doorOffed); |
| | | if (JRJLMOpen1.Content || JRJLMOpen2.Content)//关门到位 |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(1)); |
| | | } |
| | | else//门未到位 |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(3)); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | 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 |
| | | } |
| | | else |
| | | { |
| | | //AGV不给开门信号的时候 断开开门信号 |
| | | Dictionary<string, string> Doorsigna1 = new Dictionary<string, string>(); |
| | | Doorsigna1.Add("R_comErr", R_comErr.Content.ToString()); |
| | | Doorsigna1.Add("DoorName", item.ToString()); |
| | | string wificont = WIFIAPIInvoke.Doorsignal(Doorsigna1); |
| | | WebResponseContent wificontent2 = JsonConvert.DeserializeObject<WebResponseContent>(wificont); |
| | | if (wificontent2.Status) |
| | | { |
| | | //关门未到位 |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data)); |
| | | 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)); |
| | | } |
| | | } |
| | | } |
| | | //} |
| | |
| | | OperateResult<bool> JLMOpen = oiplc1F.ModbusPLCClient.ModbusTcpNetClient.ReadBool("x=2;8612"); |
| | | if (JLMOpen.Content)//开门到位 |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 2); |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), Convert.ToUInt16(2)); |
| | | } |
| | | else//门未到位 |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 3); |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), Convert.ToUInt16(3)); |
| | | } |
| | | } |
| | | else |
| | |
| | | OperateResult<bool> JLMOpen = oiplc1F.ModbusPLCClient.ModbusTcpNetClient.ReadBool("x=2;8613"); |
| | | if (JLMOpen.Content)//关门到位 |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 1); |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), Convert.ToUInt16(1)); |
| | | } |
| | | else//门未到位 |
| | | { |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 3); |
| | | OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), Convert.ToUInt16(3)); |
| | | } |
| | | } |
| | | else |