using HslCommunication; using System; using System.Collections.Generic; using System.Text; using WIDESEA_Core.EFDbContext; using WIDESEA_Services.IRepositories; using WIDESEA_Services.Repositories; using WIDESEA_WCS.WCSClient; namespace WIDESEA_WCS.SchedulerExecute.AGV { public partial class AGVSchedulerExecute { public static void AgvAndEquiWorkThree() { VOLContext Context = new VOLContext(); Idt_plcinfodetailRepository plcdetailRep = new dt_plcinfodetailRepository(Context); Idt_plcinfoheadRepository plcheadRep = new dt_plcinfoheadRepository(Context); //PLCClient agvplcthree = WCSService.Clients.Find(v => v.PLCName == "正极1号AGV"); //PLCClient fagvplcthree = WCSService.Clients.Find(v => v.PLCName == "负极1号AGV"); PLCClient agvthreeplcthree = WCSService.Clients.Find(v => v.PLCName == "正极2号AGV"); PLCClient fagvthreeplcthree = WCSService.Clients.Find(v => v.PLCName == "负极2号AGV"); //int Rheat = 0; //int RequNo = 2; //int Rinmatertype = 24; //int RinboxNo = 26; //int Rbarcode = 58; //int Rbz = 90; //double Rerror = 92.0; //double R92_1 = 92.1; //double R92_2 = 92.2; //double R92_3 = 92.3; //double R92_4 = 92.4; //double R92_5 = 92.5; //double R92_6 = 92.6; //double R92_7 = 92.7; //double R93_0 = 93.0; //double R93_1 = 93.1; //double R93_2 = 93.2; //double R93_3 = 93.3; //double R93_4 = 93.4; //double R93_5 = 93.5; //double R93_6 = 93.6; //double R93_7 = 93.7; //int R94 = 94; //int R95 = 95; //int R96 = 96; //int R97 = 97; //int R98 = 98; //int R99 = 99; #region 正极1-2烘烤设备信号传递 int fornum = 0; double agvthreedbaZFGT1 = 8093.6; double agvthreedbaZFGT2 = 8093.7; double agvthreedbaZFGT3 = 3493.6; double agvthreedbaZFGT4 = 3493.7; double agvdba = 8094.0; double agvdbb = 8095.0; double agvdbc = 8096.0; double agvdbd = 8097.0; double agvdbe = 8098.0; double agvdbf = 8194.0; double agvdbg = 8195.0; double agvdbh = 8196.0; double agvdbi = 8197.0; double agvdbj = 3494.0; double agvdbk = 3495.0; double agvdbl = 3496.0; double agvdbm = 3594.0; double agvdbq = 3595.0; double agvdbr = 3596.0; double agvdbs = 3597.0; double agvdbt = 3598.0; double agvdbx = 3599.0; double agvdby = 8192.2; double agvdbz = 3592.2; List ZHKFQSBMegS = new List { "正极1号烘烤机", "正极2号烘烤机" }; foreach (var ZHKSB in ZHKFQSBMegS) { PLCClient ZHSSBone = WCSService.Clients.Find(v => v.PLCName == ZHKSB); if (ZHSSBone == null) { fornum += 400; continue; } //读烘烤滚筒是否转动 OperateResult RHKupZFGTZ1 = ZHSSBone.MelsecPLCClient.readWriteNet.ReadBool("YC"); OperateResult RHKupZFGTZ2 = ZHSSBone.MelsecPLCClient.readWriteNet.ReadBool("YD"); OperateResult RHKupZFGTZ3 = ZHSSBone.MelsecPLCClient.readWriteNet.ReadBool("YE"); OperateResult RHKupZFGTZ4 = ZHSSBone.MelsecPLCClient.readWriteNet.ReadBool("YF"); //写AGV滚筒转动 OperateResult WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZFGT1 + fornum), RHKupZFGTZ1.Content); WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZFGT2 + fornum), RHKupZFGTZ2.Content); WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZFGT3 + fornum), RHKupZFGTZ3.Content); WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZFGT4 + fornum), RHKupZFGTZ4.Content); //入料口读烘箱 OperateResult RHKupa = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960"); if (!RHKupa.IsSuccess) { continue; } OperateResult RHKupb = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D15"); OperateResult RHKupc = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1961"); OperateResult RHKupd = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1950"); OperateResult RHKupe = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1951"); //入料口写AGV OperateResult Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdba + fornum), byte.Parse(RHKupa.Content.ToString())); Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbb + fornum), byte.Parse(RHKupb.Content.ToString())); Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbc + fornum), byte.Parse(RHKupc.Content.ToString())); Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbd + fornum), byte.Parse(RHKupd.Content.ToString())); Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbe + fornum), byte.Parse(RHKupe.Content.ToString())); //入料口读agv OperateResult RAGVa = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbf + fornum)); OperateResult RAGVb = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbg + fornum)); OperateResult RAGVc = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbh + fornum)); OperateResult RAGVd = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbi + fornum)); OperateResult RAGVe = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvdby + fornum)); //入料口写烘箱 OperateResult Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVa.Content); Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVb.Content); Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1955", RAGVc.Content); Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1956", RAGVd.Content); Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M691", RAGVe.Content); //下料口读烘箱 OperateResult RHKdowna = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960"); OperateResult RHKdownb = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D35"); OperateResult RHKdownc = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1962"); //下料口写AGV OperateResult Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbj + fornum), byte.Parse(RHKdowna.Content.ToString())); Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbk + fornum), byte.Parse(RHKdownb.Content.ToString())); Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbl + fornum), byte.Parse(RHKdownc.Content.ToString())); //下料口读AGV OperateResult RAGVdowna = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbm + fornum)); OperateResult RAGVdownb = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbq + fornum)); OperateResult RAGVdownc = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbr + fornum)); OperateResult RAGVdownd = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbs + fornum)); OperateResult RAGVdowne = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbt + fornum)); OperateResult RAGVdownf = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbx + fornum)); OperateResult RAGVdowng = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvdbz + fornum)); //下料口写烘箱 OperateResult Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVdowna.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVdownb.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1957", RAGVdownc.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1952", RAGVdownd.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1953", RAGVdowne.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1958", RAGVdownf.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M692", RAGVdowng.Content); fornum += 400; } #endregion #region 正极3-10烘烤设备信号传递 int fornumthree = 0; double agvthreedbaZGT1 = 1693.6; double agvthreedbaZGT2 = 1693.7; double agvthreedbaZGT3 = 293.6; double agvthreedbaZGT4 = 293.6; double agvthreedba = 1694.0; double agvthreedbb = 1695.0; double agvthreedbc = 1696.0; double agvthreedbd = 1697.0; double agvthreedbe = 1698.0; double agvthreedbf = 1794.0; double agvthreedbg = 1795.0; double agvthreedbh = 1796.0; double agvthreedbi = 1797.0; double agvthreedbj = 294.0; double agvthreedbk = 295.0; double agvthreedbl = 296.0; double agvthreedbm = 394.0; double agvthreedbq = 395.0; double agvthreedbr = 396.0; double agvthreedbs = 397.0; double agvthreedbt = 398.0; double agvthreedbx = 399.0; double agvthreedby = 1792.2; double agvthreedbz = 392.2; List ZHKFQSBMegthree = new List { "正极3号烘烤机", "正极4号烘烤机" ,"正极5号烘烤机" , "正极6号烘烤机" , "正极7号烘烤机", "正极8号烘烤机", "正极9号烘烤机", "正极10号烘烤机" }; foreach (var ZHKSBthree in ZHKFQSBMegthree) { PLCClient ZHSSBone = WCSService.Clients.Find(v => v.PLCName == ZHKSBthree); if (ZHSSBone == null) { fornumthree += 400; continue; } //读烘烤滚筒是否转动 OperateResult RHKupGTZ1 = ZHSSBone.MelsecPLCClient.readWriteNet.ReadBool("YC"); OperateResult RHKupGTZ2 = ZHSSBone.MelsecPLCClient.readWriteNet.ReadBool("YD"); OperateResult RHKupGTZ3 = ZHSSBone.MelsecPLCClient.readWriteNet.ReadBool("YE"); OperateResult RHKupGTZ4 = ZHSSBone.MelsecPLCClient.readWriteNet.ReadBool("YF"); //写AGV滚筒转动 OperateResult WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT1 + fornumthree), RHKupGTZ1.Content); WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT2 + fornumthree), RHKupGTZ2.Content); WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT3 + fornumthree), RHKupGTZ3.Content); WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT4 + fornumthree), RHKupGTZ4.Content); //入料口读烘箱 OperateResult RHKupa = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960"); OperateResult RHKupb = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D15"); OperateResult RHKupc = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1961"); OperateResult RHKupd = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1950"); OperateResult RHKupe = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1951"); //入料口写AGV OperateResult Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedba + fornumthree), byte.Parse(RHKupa.Content.ToString())); Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbb + fornumthree), byte.Parse(RHKupb.Content.ToString())); Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbc + fornumthree), byte.Parse(RHKupc.Content.ToString())); Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbd + fornumthree), byte.Parse(RHKupd.Content.ToString())); Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbe + fornumthree), byte.Parse(RHKupe.Content.ToString())); //入料口读agv OperateResult RAGVa = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbf + fornumthree)); OperateResult RAGVb = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbg + fornumthree)); OperateResult RAGVc = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbh + fornumthree)); OperateResult RAGVd = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbi + fornumthree)); OperateResult RAGVe = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvthreedby + fornumthree)); //入料口写烘箱 OperateResult Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVa.Content); Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVb.Content); Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1955", RAGVc.Content); Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1956", RAGVd.Content); Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M691", RAGVe.Content); //下料口读烘箱 OperateResult RHKdowna = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960"); OperateResult RHKdownb = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D35"); OperateResult RHKdownc = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1962"); //下料口写AGV OperateResult Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbj + fornumthree), byte.Parse(RHKdowna.Content.ToString())); Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbk + fornumthree), byte.Parse(RHKdownb.Content.ToString())); Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbl + fornumthree), byte.Parse(RHKdownc.Content.ToString())); //下料口读AGV OperateResult RAGVdowna = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbm + fornumthree)); OperateResult RAGVdownb = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbq + fornumthree)); OperateResult RAGVdownc = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbr + fornumthree)); OperateResult RAGVdownd = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbs + fornumthree)); OperateResult RAGVdowne = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbt + fornumthree)); OperateResult RAGVdownf = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbx + fornumthree)); OperateResult RAGVdowng = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvthreedbz + fornumthree)); //下料口写烘箱 OperateResult Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVdowna.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVdownb.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1957", RAGVdownc.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1952", RAGVdownd.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1953", RAGVdowne.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1958", RAGVdownf.Content); Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M692", RAGVdowng.Content); fornumthree += 400; } #endregion WIDESEA_Common.Tools.WriteLog.GetLog("信号传递sssss").Write($"Info:{DateTime.Now}" + "烘烤设备一次循环完成", "信号传递sssss"); } } }