using HslCommunication; using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using WIDESEA_Common.Tools; using WIDESEA_Core.EFDbContext; using WIDESEA_Services.IRepositories; using WIDESEA_Services.Repositories; using WIDESEA_WCS.WCSClient; namespace WIDESEA_WCS.SchedulerExecute.AGV { public partial class heartbeatFJGF { public static async void heartbeatWork() { WriteLog.GetLog().Write($"开始时间:{DateTime.Now} --------------", $"心跳时间"); VOLContext Context = new VOLContext(); Idt_plcinfodetailRepository plcdetailRep = new dt_plcinfodetailRepository(Context); Idt_plcinfoheadRepository plcheadRep = new dt_plcinfoheadRepository(Context); PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度"); PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度"); PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度"); List taskList = new List(); var tokenSource = new CancellationTokenSource(); var token = tokenSource.Token; #region 负级辊分机信号传递 #region 负级辊分机一号信号传递 await Task.Run(() => { try { var tbsb = "辊分机负极1"; if (WCSService.Clients == null) { return; } PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb); if (tbplc == null) { return; } if (agvplc == null) { return; } #region 负级辊分机一号信号心跳 WriteLog.GetLog().Write($"--------------{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递"); //// 读取辊分机正极1号设备心跳 OperateResult R_TBR_XT = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5400.0"); if (R_TBR_XT.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D5400.0, 读取值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}信息传递"); } else { WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } //辊分机正极1号设备心跳—写入—》组装AGV调度心跳 OperateResult W_AGV_XT = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1800.0", R_TBR_XT.Content); if (W_AGV_XT.IsSuccess) { WriteLog.GetLog().Write($"写入组装AGV调度心跳信息成功,DB偏移值:DB1002.1800.0, 写入值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } //// 读取组装AGV调度心跳 OperateResult R_AGV_XT = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1900.0"); if (R_AGV_XT.IsSuccess) { WriteLog.GetLog().Write($"// 读取组装AGV调度心跳信息成功,DB偏移值:DB1002.1900.0, 读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } Int16 tf = Convert.ToInt16(R_AGV_XT.Content); //组装AGV调度—写入—》辊分机正极1号设备心跳 OperateResult W_TBR_XT = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5500", tf); if (W_TBR_XT.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D5500, 写入值:{tf},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}心跳传递结束,时间:{DateTime.Now} --------------{Environment.NewLine}", $"{tbsb}心跳传递"); #endregion #region 上料口 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}上料口信息传递"); //辊分机1号口报警 OperateResult GYC_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5492.0"); if (GYC_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5492.0,读取值:{GYC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGVC_WBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1892", GYC_RBJ.Content); if (AGVC_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口1报警信号成功,DB偏移值:DB1002.1892,写入值:{GYC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } // AGV报警信号 OperateResult AGVC_RBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1992"); if (AGVC_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplcF.PLCName},{tbsb}号设备上料料口1对接报警信号成功,DB偏移值:DB1002.1992,读取值:{AGVC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } int RBJ = Convert.ToInt32(AGVC_RBJ.Content); //辊分机获取AGV报警信号 OperateResult GFC_WBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5592", RBJ); if (GFC_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备上料口1AGV报警信号成功,DB偏移值:D5592,写入值:{AGVC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } ////获取辊分设备上料口偏移方向 OperateResult GYR_RFX_Up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5493.2"); if (GYR_RFX_Up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口偏移方向信息成功,DB偏移值:D5493.2,读取值:{GYR_RFX_Up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //辊分设备上料口偏移方向写入至AGV OperateResult GYR_WFX_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1893.2", GYR_RFX_Up.Content); if (GYR_WFX_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口偏移方向信息成功,DB偏移值:DB1002.1893.2,写入值:{GYR_RFX_Up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } ////获取辊分设备上料口偏移量 OperateResult GFR_PYL_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5494"); if (GFR_PYL_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口偏移量信息成功,DB偏移值:D5494,读取值:{GFR_PYL_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } int py = Convert.ToInt32(GFR_PYL_up.Content / 10); Byte a3 = Convert.ToByte(py); OperateResult W_ProcessSteps_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1894", a3);////写入辊分设备偏移量 if (W_ProcessSteps_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName}辊分设备上料口偏移量信息成功,DB偏移值:DB1002.1894,写入值:{a3},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //获取辊分上料口运行状态 OperateResult GFR_Run_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("M2309"); if (GFR_Run_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口运行状态信息成功,DB偏移值:M2309,读取值:{GFR_Run_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //将辊分上料口运行状态写入AGV中 OperateResult AGV_WRun_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1892.2", GFR_Run_up.Content); if (AGV_WRun_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口1运行状态成功,DB偏移值:DB1002.1892.2,写入值:{GFR_Run_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //AB轴 OperateResult R_up_AB = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5493.1"); if (R_up_AB.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口AB轴方向信息成功,DB偏移值:D5493.1,读取值:{R_up_AB.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } OperateResult W_AB3 = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1893.1", R_up_AB.Content); if (W_AB3.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName}辊分设备上料口AB轴信息成功,DB偏移值:DB1002.1893.1,写入值:{R_up_AB.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 读取agv上料口逻辑 OperateResult R_up_bzR = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.1990"); if (R_up_bzR.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplcF.PLCName}辊分设备上料口AGV请求进入信息成功,DB偏移值:DB1002.1990,读取值:{R_up_bzR.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 写入辊压机上料口对接流程步骤 OperateResult W_ProcessStep_up = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5590", R_up_bzR.Content); if (W_ProcessStep_up.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D5590,写入值:{R_up_bzR.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 读取辊压步序 OperateResult R_ProcessSteps_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5490"); if (R_ProcessSteps_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D5490,读取值:{R_ProcessSteps_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 将步序写入agv OperateResult W_stationDockSteps_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1890", R_ProcessSteps_up.Content); if (W_stationDockSteps_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.1890,写入值:{R_ProcessSteps_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); #endregion #region 下料口 #region 设备下料一号信号通讯 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递"); //辊分机1号口报警 OperateResult GYR_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5692.0"); if (GYR_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5692.0,读取值:{GYR_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGV_WBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1692", GYR_RBJ.Content); if (AGV_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1报警信号成功,DB偏移值:DB1002.1692,写入值:{GYR_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } // AGV报警信号 OperateResult AGV_RBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1792"); if (AGV_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplc.PLCName},{tbsb}号设备下料口1对接报警信号成功,DB偏移值:DB1002.1792,读取值:{AGV_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } int WBJ = Convert.ToInt32(AGV_RBJ.Content); //辊分机获取AGV报警信号 OperateResult GFR_WBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5792", WBJ); if (GFR_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV报警信号成功,DB偏移值:D5792,写入值:{AGV_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1偏移方向 OperateResult GYR_RFX = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5693.2"); if (GYR_RFX.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1偏移方向信息成功,DB偏移值:D5693.2,读取值:{GYR_RFX.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 辊分设备下料口1偏移方向写入至AGV OperateResult GYR_WFX = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1693.2", GYR_RFX.Content); if (GYR_WFX.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1偏移方向信息成功,DB偏移值:DB1002.1693.2,写入值:{GYR_RFX.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1AB轴方向 OperateResult R_Down1_AB = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5693.1"); if (R_Down1_AB.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1AB轴方向信息成功,DB偏移值:D5693.1,读取值:{R_Down1_AB.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 辊分设备下料口1AB轴方向写入至AGV OperateResult W_AB = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1693.1", R_Down1_AB.Content); if (W_AB.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口1AB轴信息成功,DB偏移值:DB1002.1693.1,写入值:{R_Down1_AB.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1偏移量 OperateResult GFR_PYL = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadFloat("D5694"); if (GFR_PYL.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1偏移量信息成功,DB偏移值:D5694,读取值:{GFR_PYL.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } Byte a = Convert.ToByte(GFR_PYL.Content); OperateResult W_ProcessSteps = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1694", a);////写入辊分设备偏移量 if (W_ProcessSteps.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口1偏移量信息成功,DB偏移值:DB1002.1694,写入值:{a},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// // 读取agv下料口1请求进入 OperateResult R_Down1_bzR = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.1790"); if (R_Down1_bzR.IsSuccess) { WriteLog.GetLog().Write($"读取组装AGV调度// 辊分设备下料口1AGV请求进入信息成功,DB偏移值:DB1002.1790,读取值:{R_Down1_bzR.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 写入辊压机下料口1 AGV请求进入 OperateResult W_ProcessSteps1 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5790", R_Down1_bzR.Content); if (W_ProcessSteps1.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV请求进入信息成功,DB偏移值:D5790,写入值:{R_Down1_bzR.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 读取辊压机下料口1 是否允许AGV请求进入 OperateResult R_ProcessSteps1 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5690"); if (R_ProcessSteps1.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1允许AGV请求进入信息成功,DB偏移值:D5690,读取值:{R_ProcessSteps1.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } OperateResult W_stationDockSteps1 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1690", R_ProcessSteps1.Content); if (W_stationDockSteps1.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1允许AGV进入信息成功,DB偏移值:DB1002.1690,写入值:{R_ProcessSteps1.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} --------------{Environment.NewLine}", $"{tbsb}下料一口信息传递"); #endregion #region 设备下料二号信号通讯 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料二口信息传递"); //辊分机2号口报警 OperateResult GYR_RBJ2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5892.0"); if (GYR_RBJ2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5892.0,读取值:{GYR_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGV_WBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1892", GYR_RBJ2.Content); if (AGV_WBJ2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1报警信号成功,DB偏移值:DB1002.1892,写入值:{GYR_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } // AGV报警信号 OperateResult AGV_RBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1992"); if (AGV_RBJ2.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplc.PLCName},{tbsb}号设备下料口1对接报警信号成功,DB偏移值:DB1002.1992,读取值:{AGV_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } int WBJ2 = Convert.ToInt32(AGV_RBJ2.Content); //辊分机获取AGV报警信号 OperateResult GFR_WBJ2 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5992", WBJ2); if (GFR_WBJ2.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV报警信号成功,DB偏移值:D5992,写入值:{AGV_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////获取// 辊分设备下料口2偏移方向 OperateResult GYR_RFX2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5893.2"); if (GYR_RFX2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2偏移方向信息成功,DB偏移值:D5893.2,读取值:{GYR_RFX2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////写入// 辊分设备下料口2偏移方向至AGV OperateResult GYR_WFX2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1893.2", GYR_RFX2.Content); if (GYR_WFX2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2偏移方向信息成功,DB偏移值:DB1002.1893.2,写入值:{GYR_RFX2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////获取// 辊分设备下料口2偏移量 OperateResult GFR_PYL2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadFloat("D5894"); if (GFR_PYL2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2偏移量信息成功,DB偏移值:D5894,读取值:{GFR_PYL2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } Byte a2 = Convert.ToByte(GFR_PYL2.Content); OperateResult W_ProcessSteps2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.294", a2);////写入辊分设备偏移量 if (W_ProcessSteps2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口2偏移量信息成功,DB偏移值:DB1002.294,写入值:{a2},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //AB轴 OperateResult R_Down1_AB2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5893.1"); if (R_Down1_AB2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2// AB轴方向信息成功,DB偏移值:D5893.1,读取值:{R_Down1_AB2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } OperateResult W_AB2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1893.1", R_Down1_AB2.Content); if (W_AB2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}辊分设备下料口2 AB轴信息成功,DB偏移值:DB1002.1893.1,写入值:{R_Down1_AB2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 读取agv下料口2请求进入 OperateResult R_Down1_bzR2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.1990"); //// 读取agv下料口2逻辑 if (R_Down1_bzR2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2允许AGV请求进入信息成功,DB偏移值:DB1002.1990,读取值:{R_Down1_bzR2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 写入辊压机下料口2 AGV请求进入 OperateResult W_ProcessSteps3 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5990", R_Down1_bzR2.Content); if (W_ProcessSteps3.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2允许AGV进入信息成功,DB偏移值:D5990,写入值:{R_Down1_bzR2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 读取辊压机下料口1 是否允许AGV请求进入 OperateResult R_ProcessSteps2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5890"); if (R_ProcessSteps2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2允许AGV请求进入信息成功,DB偏移值:D5890,读取值:{R_ProcessSteps2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } OperateResult W_stationDockSteps2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1890", R_ProcessSteps2.Content); if (W_stationDockSteps2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2允许AGV进入信息成功,DB偏移值:DB1002.1890,写入值:{R_ProcessSteps2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} --------------{Environment.NewLine}", $"{tbsb}下料二口信息传递"); #endregion #endregion } catch (Exception) { throw; } }, token); #endregion #region 负级辊分机二号信号传递 await Task.Run(() => { try { var tbsb = "辊分机负极2"; if (WCSService.Clients == null) { return; } PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb); if (tbplc == null) { return; } if (agvplc == null) { return; } #region 负级辊分机二号信号心跳 WriteLog.GetLog().Write($"--------------{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递"); //// 读取辊分机正极2号设备心跳 OperateResult R_TBR_XT = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5400.0"); if (R_TBR_XT.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,读取值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } //辊分机正极1号设备心跳—写入—》组装AGV调度心跳 OperateResult W_AGV_XT = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2000.0", R_TBR_XT.Content); if (W_AGV_XT.IsSuccess) { WriteLog.GetLog().Write($"写入组装AGV调度心跳信息成功,写入值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } //// 读取组装AGV调度心跳 OperateResult R_AGV_XT = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2100.0"); if (R_AGV_XT.IsSuccess) { WriteLog.GetLog().Write($"// 读取组装AGV调度心跳信息成功,写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } Int16 tf = Convert.ToInt16(R_AGV_XT.Content); //组装AGV调度—写入—》辊分机正极1号设备心跳 OperateResult W_TBR_XT = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5500", tf); if (W_TBR_XT.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,写入值:{tf},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}心跳传递结束,时间:{DateTime.Now} --------------{Environment.NewLine}", $"{tbsb}心跳传递"); #endregion #region 上料口 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递"); OperateResult GYC_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5492.0"); if (GYC_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5492.0,读取值:{GYC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGVC_WBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2092", GYC_RBJ.Content); if (AGVC_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口1报警信号成功,DB偏移值:DB1002.2092,写入值:{GYC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } // AGV报警信号 OperateResult AGVC_RBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2192"); if (AGVC_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplcF.PLCName},{tbsb}号设备上料料口1对接报警信号成功,DB偏移值:DB1002.2192,读取值:{AGVC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } int RBJ = Convert.ToInt32(AGVC_RBJ.Content); //辊分机获取AGV报警信号 OperateResult GFC_WBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5592", RBJ); if (GFC_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备上料口1AGV报警信号成功,DB偏移值:D5592,写入值:{AGVC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } ////获取辊分设备上料口偏移方向 OperateResult GYR_RFX_Up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5493.2"); if (GYR_RFX_Up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口偏移方向信息成功,DB偏移值:D5493.2,读取值:{GYR_RFX_Up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //辊分设备上料口偏移方向写入至AGV OperateResult GYR_WFX_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2093.2", GYR_RFX_Up.Content); if (GYR_WFX_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口偏移方向信息成功,DB偏移值:DB1002.2093.2,写入值:{GYR_RFX_Up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } ////获取辊分设备上料口偏移量 OperateResult GFR_PYL_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5494"); if (GFR_PYL_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口偏移量信息成功,DB偏移值:D5494,读取值:{GFR_PYL_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } int py = Convert.ToInt32(GFR_PYL_up.Content / 10); Byte a3 = Convert.ToByte(py); OperateResult W_ProcessSteps_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2094", a3);////写入辊分设备偏移量 if (W_ProcessSteps_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName}辊分设备上料口偏移量信息成功,DB偏移值:DB1002.2094,写入值:{a3},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //获取辊分上料口运行状态 OperateResult GFR_Run_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("M2309"); if (GFR_Run_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口运行状态信息成功,DB偏移值:M2309,读取值:{GFR_Run_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //将辊分上料口运行状态写入AGV中 OperateResult AGV_WRun_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2092.2", GFR_Run_up.Content); if (AGV_WRun_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口1运行状态成功,DB偏移值:DB1002.2092.2,写入值:{GFR_Run_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //AB轴 OperateResult R_up_AB = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5493.1"); if (R_up_AB.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口AB轴方向信息成功,DB偏移值:D5493.1,读取值:{R_up_AB.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } OperateResult W_AB3 = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2093.1", R_up_AB.Content); if (W_AB3.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName}辊分设备上料口AB轴信息成功,DB偏移值:DB1002.2093.1,写入值:{R_up_AB.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 读取agv上料口逻辑 OperateResult R_up_bzR = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.2190"); if (R_up_bzR.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplcF.PLCName}辊分设备上料口AGV请求进入信息成功,DB偏移值:DB1002.2190,读取值:{R_up_bzR.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 写入辊压机上料口对接流程步骤 OperateResult W_ProcessStep_up = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5590", R_up_bzR.Content); if (W_ProcessStep_up.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D5590,写入值:{R_up_bzR.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 读取辊压步序 OperateResult R_ProcessSteps_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5490"); if (R_ProcessSteps_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D5490,读取值:{R_ProcessSteps_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 将步序写入agv OperateResult W_stationDockSteps_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2090", R_ProcessSteps_up.Content); if (W_stationDockSteps_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.2090,写入值:{R_ProcessSteps_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); #endregion #region 下料口 #region 设备下料一号信号通讯 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递"); //辊分机1号口报警 OperateResult GYR_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5692.0"); if (GYR_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5692.0,读取值:{GYR_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGV_WBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2092", GYR_RBJ.Content); if (AGV_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1报警信号成功,DB偏移值:DB1002.2092,写入值:{GYR_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } // AGV报警信号 OperateResult AGV_RBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2192"); if (AGV_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplc.PLCName},{tbsb}号设备下料口1对接报警信号成功,DB偏移值:DB1002.2192,读取值:{AGV_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } int WBJ = Convert.ToInt32(AGV_RBJ.Content); //辊分机获取AGV报警信号 OperateResult GFR_WBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5792", WBJ); if (GFR_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV报警信号成功,DB偏移值:D5792,写入值:{AGV_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1偏移方向 OperateResult GYR_RFX = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5693.2"); if (GYR_RFX.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1偏移方向信息成功,DB偏移值:D5693.2,读取值:{GYR_RFX.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 辊分设备下料口1偏移方向写入至AGV OperateResult GYR_WFX = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2093.2", GYR_RFX.Content); if (GYR_WFX.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1偏移方向信息成功,DB偏移值:DB1002.2093.2,写入值:{GYR_RFX.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1AB轴方向 OperateResult R_Down1_AB = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5693.1"); if (R_Down1_AB.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1AB轴方向信息成功,DB偏移值:D5693.1,读取值:{R_Down1_AB.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 辊分设备下料口1AB轴方向写入至AGV OperateResult W_AB = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2093.1", R_Down1_AB.Content); if (W_AB.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口1AB轴信息成功,DB偏移值:DB1002.2093.1,写入值:{R_Down1_AB.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1偏移量 OperateResult GFR_PYL = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadFloat("D5694"); if (GFR_PYL.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1偏移量信息成功,DB偏移值:D5694,读取值:{GFR_PYL.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } Byte a = Convert.ToByte(GFR_PYL.Content); OperateResult W_ProcessSteps = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2094", a);////写入辊分设备偏移量 if (W_ProcessSteps.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口1偏移量信息成功,DB偏移值:DB1002.2094,写入值:{a},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// // 读取agv下料口1请求进入 OperateResult R_Down1_bzR = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.2190"); if (R_Down1_bzR.IsSuccess) { WriteLog.GetLog().Write($"读取组装AGV调度// 辊分设备下料口1AGV请求进入信息成功,DB偏移值:DB1002.2190,读取值:{R_Down1_bzR.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 写入辊压机下料口1 AGV请求进入 OperateResult W_ProcessSteps1 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5790", R_Down1_bzR.Content); if (W_ProcessSteps1.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV请求进入信息成功,DB偏移值:D5790,写入值:{R_Down1_bzR.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 读取辊压机下料口1 是否允许AGV请求进入 OperateResult R_ProcessSteps1 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5690"); if (R_ProcessSteps1.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1允许AGV请求进入信息成功,DB偏移值:D5690,读取值:{R_ProcessSteps1.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } OperateResult W_stationDockSteps1 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2090", R_ProcessSteps1.Content); if (W_stationDockSteps1.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1允许AGV进入信息成功,DB偏移值:DB1002.2090,写入值:{R_ProcessSteps1.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); #endregion #region 设备下料二号信号通讯 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料二口信息传递"); //辊分机2号口报警 OperateResult GYR_RBJ2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5892.0"); if (GYR_RBJ2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5892.0,读取值:{GYR_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGV_WBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2292", GYR_RBJ2.Content); if (AGV_WBJ2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1报警信号成功,DB偏移值:DB1002.2292,写入值:{GYR_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } // AGV报警信号 OperateResult AGV_RBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2392"); if (AGV_RBJ2.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplc.PLCName},{tbsb}号设备下料口1对接报警信号成功,DB偏移值:DB1002.2392,读取值:{AGV_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } int WBJ2 = Convert.ToInt32(AGV_RBJ2.Content); //辊分机获取AGV报警信号 OperateResult GFR_WBJ2 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5992", WBJ2); if (GFR_WBJ2.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV报警信号成功,DB偏移值:D5992,写入值:{AGV_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////获取// 辊分设备下料口2偏移方向 OperateResult GYR_RFX2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5893.2"); if (GYR_RFX2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2偏移方向信息成功,DB偏移值:D5893.2,读取值:{GYR_RFX2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////写入// 辊分设备下料口2偏移方向至AGV OperateResult GYR_WFX2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2293.2", GYR_RFX2.Content); if (GYR_WFX2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2偏移方向信息成功,DB偏移值:DB1002.2293.2,写入值:{GYR_RFX2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////获取// 辊分设备下料口2偏移量 OperateResult GFR_PYL2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadFloat("D5894"); if (GFR_PYL2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2偏移量信息成功,DB偏移值:D5894,读取值:{GFR_PYL2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } Byte a2 = Convert.ToByte(GFR_PYL2.Content); OperateResult W_ProcessSteps2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2294", a2);////写入辊分设备偏移量 if (W_ProcessSteps2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口2偏移量信息成功,DB偏移值:DB1002.2294,写入值:{a2},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //AB轴 OperateResult R_Down1_AB2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5893.1"); if (R_Down1_AB2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2 AB轴方向信息成功,DB偏移值:D5893.1,读取值:{R_Down1_AB2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } OperateResult W_AB2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2293.1", R_Down1_AB2.Content); if (W_AB2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName} 辊分设备下料口2 AB轴信息成功,DB偏移值:DB1002.2293.1,写入值:{R_Down1_AB2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 读取agv下料口2请求进入 /// OperateResult R_Down1_bzR2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.2390"); //// 读取agv下料口2逻辑 if (R_Down1_bzR2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2允许AGV请求进入信息成功,DB偏移值:DB1002.2390,读取值:{R_Down1_bzR2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); } //// 写入辊压机下料口2 AGV请求进入 OperateResult W_ProcessSteps3 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5990", R_Down1_bzR2.Content); if (W_ProcessSteps3.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2允许AGV进入信息成功,DB偏移值:D5990,写入值:{R_Down1_bzR2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); } //// 读取辊压机下料口1 是否允许AGV请求进入 OperateResult R_ProcessSteps2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5890"); if (R_ProcessSteps2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2允许AGV请求进入信息成功,DB偏移值:D5890,读取值:{R_ProcessSteps2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); } OperateResult W_stationDockSteps2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2290", R_ProcessSteps2.Content); if (W_stationDockSteps2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2允许AGV进入信息成功,DB偏移值:DB1002.2290,写入值:{R_ProcessSteps2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); #endregion #endregion } catch (Exception) { throw; } }, token); #endregion #region 负级辊分机三号信号传递 await Task.Run(() => { try { var tbsb = "辊分机负极3"; if (WCSService.Clients == null) { return; } PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb); if (tbplc == null) { return; } if (agvplc == null) { return; } #region 负级辊分机三号信号心跳 WriteLog.GetLog().Write($"--------------{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递"); //// 读取辊分机正极3号设备心跳 OperateResult R_TBR_XT = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5400.0"); if (R_TBR_XT.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D5400.0,读取值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } //辊分机正极1号设备心跳—写入—》组装AGV调度心跳 OperateResult W_AGV_XT = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2200.0", R_TBR_XT.Content); if (W_AGV_XT.IsSuccess) { WriteLog.GetLog().Write($"写入组装AGV调度心跳信息成功,DB偏移值:DB1002.2200.0,写入值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } //// 读取组装AGV调度心跳 OperateResult R_AGV_XT = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2300.0"); if (R_AGV_XT.IsSuccess) { WriteLog.GetLog().Write($"// 读取组装AGV调度心跳信息成功,DB偏移值:DB1002.2300.0,写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } Int16 tf = Convert.ToInt16(R_AGV_XT.Content); //组装AGV调度—写入—》辊分机正极1号设备心跳 OperateResult W_TBR_XT = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5500", tf); if (W_TBR_XT.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D5500,写入值:{tf},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}心跳传递结束,时间:{DateTime.Now} --------------{Environment.NewLine}", $"{tbsb}心跳传递"); #endregion #region 上料口 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递"); OperateResult GYC_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5492.0"); if (GYC_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5492.0,读取值:{GYC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGVC_WBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2292", GYC_RBJ.Content); if (AGVC_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口1报警信号成功,DB偏移值:DB1002.2292,写入值:{GYC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } // AGV报警信号 OperateResult AGVC_RBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2392"); if (AGVC_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplcF.PLCName},{tbsb}号设备上料料口1对接报警信号成功,DB偏移值:DB1002.2392,读取值:{AGVC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } int RBJ = Convert.ToInt32(AGVC_RBJ.Content); //辊分机获取AGV报警信号 OperateResult GFC_WBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5592", RBJ); if (GFC_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备上料口1AGV报警信号成功,DB偏移值:D5592,写入值:{AGVC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } ////获取辊分设备上料口偏移方向 OperateResult GYR_RFX_Up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5493.2"); if (GYR_RFX_Up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口偏移方向信息成功,DB偏移值:D5493.2,读取值:{GYR_RFX_Up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //辊分设备上料口偏移方向写入至AGV OperateResult GYR_WFX_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2293.2", GYR_RFX_Up.Content); if (GYR_WFX_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口偏移方向信息成功,DB偏移值:DB1002.2293.2,写入值:{GYR_RFX_Up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } ////获取辊分设备上料口偏移量 OperateResult GFR_PYL_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5494"); if (GFR_PYL_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口偏移量信息成功,DB偏移值:D5494,读取值:{GFR_PYL_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } int py = Convert.ToInt32(GFR_PYL_up.Content / 10); Byte a3 = Convert.ToByte(py); OperateResult W_ProcessSteps_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2294", a3);////写入辊分设备偏移量 if (W_ProcessSteps_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName}辊分设备上料口偏移量信息成功,DB偏移值:DB1002.2294,写入值:{a3},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //获取辊分上料口运行状态 OperateResult GFR_Run_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("M2309"); if (GFR_Run_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口运行状态信息成功,DB偏移值:M2309,读取值:{GFR_Run_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //将辊分上料口运行状态写入AGV中 OperateResult AGV_WRun_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2292.2", GFR_Run_up.Content); if (AGV_WRun_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口1运行状态成功,DB偏移值:DB1002.2292.2,写入值:{GFR_Run_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //AB轴 OperateResult R_up_AB = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5493.1"); if (R_up_AB.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口AB轴方向信息成功,DB偏移值:D5493.1,读取值:{R_up_AB.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } OperateResult W_AB3 = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2293.1", R_up_AB.Content); if (W_AB3.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName}辊分设备上料口AB轴信息成功,DB偏移值:DB1002.2293.1,写入值:{R_up_AB.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 读取agv上料口逻辑 OperateResult R_up_bzR = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.2390"); if (R_up_bzR.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplcF.PLCName}辊分设备上料口AGV请求进入信息成功,DB偏移值:DB1002.2390,读取值:{R_up_bzR.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 写入辊压机上料口对接流程步骤 OperateResult W_ProcessStep_up = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5590", R_up_bzR.Content); if (W_ProcessStep_up.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D5590,写入值:{R_up_bzR.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 读取辊压步序 OperateResult R_ProcessSteps_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5490"); if (R_ProcessSteps_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D5490,读取值:{R_ProcessSteps_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 将步序写入agv OperateResult W_stationDockSteps_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2290", R_ProcessSteps_up.Content); if (W_stationDockSteps_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.2290,写入值:{R_ProcessSteps_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); #endregion #region 下料口 #region 设备下料一号信号通讯 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递"); //辊分机1号口报警 OperateResult GYR_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5692.0"); if (GYR_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5692.0,读取值:{GYR_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGV_WBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2492", GYR_RBJ.Content); if (AGV_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1报警信号成功,DB偏移值:DB1002.2492,写入值:{GYR_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } // AGV报警信号 OperateResult AGV_RBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2592"); if (AGV_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplc.PLCName},{tbsb}号设备下料口1对接报警信号成功,DB偏移值:DB1002.2592,读取值:{AGV_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } int WBJ = Convert.ToInt32(AGV_RBJ.Content); //辊分机获取AGV报警信号 OperateResult GFR_WBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5792", WBJ); if (GFR_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV报警信号成功,DB偏移值:D5792,写入值:{AGV_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1偏移方向 OperateResult GYR_RFX = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5693.2"); if (GYR_RFX.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1偏移方向信息成功,DB偏移值:D5693.2,读取值:{GYR_RFX.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 辊分设备下料口1偏移方向写入至AGV OperateResult GYR_WFX = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2493.2", GYR_RFX.Content); if (GYR_WFX.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1偏移方向信息成功,DB偏移值:DB1002.2493.2,写入值:{GYR_RFX.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1AB轴方向 OperateResult R_Down1_AB = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5693.1"); if (R_Down1_AB.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1AB轴方向信息成功,DB偏移值:D5693.1,读取值:{R_Down1_AB.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 辊分设备下料口1AB轴方向写入至AGV OperateResult W_AB = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2493.1", R_Down1_AB.Content); if (W_AB.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口1AB轴信息成功,DB偏移值:DB1002.2493.1,写入值:{R_Down1_AB.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1偏移量 OperateResult GFR_PYL = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadFloat("D5694"); if (GFR_PYL.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1偏移量信息成功,DB偏移值:D5694,读取值:{GFR_PYL.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } Byte a = Convert.ToByte(GFR_PYL.Content); OperateResult W_ProcessSteps = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2494", a);////写入辊分设备偏移量 if (W_ProcessSteps.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口1偏移量信息成功,DB偏移值:DB1002.2494,写入值:{a},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// // 读取agv下料口1请求进入 OperateResult R_Down1_bzR = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.2590"); if (R_Down1_bzR.IsSuccess) { WriteLog.GetLog().Write($"读取组装AGV调度// 辊分设备下料口1AGV请求进入信息成功,DB偏移值:DB1002.2590,读取值:{R_Down1_bzR.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 写入辊压机下料口1 AGV请求进入 OperateResult W_ProcessSteps1 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5790", R_Down1_bzR.Content); if (W_ProcessSteps1.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV请求进入信息成功,DB偏移值:D5790,写入值:{R_Down1_bzR.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 读取辊压机下料口1 是否允许AGV请求进入 OperateResult R_ProcessSteps1 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5690"); if (R_ProcessSteps1.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1允许AGV请求进入信息成功,DB偏移值:D5690,读取值:{R_ProcessSteps1.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } OperateResult W_stationDockSteps1 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2490", R_ProcessSteps1.Content); if (W_stationDockSteps1.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1允许AGV进入信息成功,DB偏移值:DB1002.2490,写入值:{R_ProcessSteps1.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); #endregion #region 设备下料二号信号通讯 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}下料二口信息传递"); //辊分机2号口报警 OperateResult GYR_RBJ2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5892.0"); if (GYR_RBJ2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5892.0,读取值:{GYR_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGV_WBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2692", GYR_RBJ2.Content); if (AGV_WBJ2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1报警信号成功,DB偏移值:DB1002.2692,写入值:{GYR_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } // AGV报警信号 OperateResult AGV_RBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2792"); if (AGV_RBJ2.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplc.PLCName},{tbsb}号设备下料口1对接报警信号成功,DB偏移值:DB1002.2792,读取值:{AGV_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } int WBJ2 = Convert.ToInt32(AGV_RBJ2.Content); //辊分机获取AGV报警信号 OperateResult GFR_WBJ2 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5992", WBJ2); if (GFR_WBJ2.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV报警信号成功,DB偏移值:D5992,写入值:{AGV_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////获取// 辊分设备下料口2偏移方向 OperateResult GYR_RFX2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5893.2"); if (GYR_RFX2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2偏移方向信息成功,DB偏移值:D5893.2,读取值:{GYR_RFX2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////写入// 辊分设备下料口2偏移方向至AGV OperateResult GYR_WFX2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2693.2", GYR_RFX2.Content); if (GYR_WFX2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2偏移方向信息成功,DB偏移值:DB1002.2693.2,写入值:{GYR_RFX2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////获取// 辊分设备下料口2偏移量 OperateResult GFR_PYL2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadFloat("D5894"); if (GFR_PYL2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2偏移量信息成功,DB偏移值:D5894,读取值:{GFR_PYL2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } Byte a2 = Convert.ToByte(GFR_PYL2.Content); OperateResult W_ProcessSteps2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2694", a2);////写入辊分设备偏移量 if (W_ProcessSteps2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口2偏移量信息成功,DB偏移值:DB1002.2694,写入值:{a2},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //AB轴 OperateResult R_Down1_AB2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5893.1"); if (R_Down1_AB2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2// AB轴方向信息成功,DB偏移值:D5893.1,读取值:{R_Down1_AB2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } OperateResult W_AB2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2693.1", R_Down1_AB2.Content); if (W_AB2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口2// AB轴信息成功,DB偏移值:DB1002.2693.1,写入值:{R_Down1_AB2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 读取agv下料口2请求进入 OperateResult R_Down1_bzR2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.2790"); //// 读取agv下料口2逻辑 if (R_Down1_bzR2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2允许AGV请求进入信息成功,DB偏移值:DB1002.2790,读取值:{R_Down1_bzR2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 写入辊压机下料口2 AGV请求进入 OperateResult W_ProcessSteps3 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5990", R_Down1_bzR2.Content); if (W_ProcessSteps3.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2允许AGV进入信息成功,DB偏移值:D5990,写入值:{R_Down1_bzR2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 读取辊压机下料口1 是否允许AGV请求进入 OperateResult R_ProcessSteps2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5890"); if (R_ProcessSteps2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2允许AGV请求进入信息成功,DB偏移值:D5890,读取值:{R_ProcessSteps2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } OperateResult W_stationDockSteps2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2690", R_ProcessSteps2.Content); if (W_stationDockSteps2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2允许AGV进入信息成功,DB偏移值:DB1002.2690,写入值:{R_ProcessSteps2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); #endregion #endregion } catch (Exception) { throw; } }, token); #endregion #region 负级辊分机四号信号传递 await Task.Run(() => { try { var tbsb = "辊分机负极4"; if (WCSService.Clients == null) { return; } PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb); if (tbplc == null) { return; } if (agvplc == null) { return; } #region 负级辊分机四号信号心跳 WriteLog.GetLog().Write($"--------------{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递"); //读取辊分机正极4号设备心跳 OperateResult R_TBR_XT = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5400.0"); if (R_TBR_XT.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D5400.0,读取值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } //辊分机正极1号设备心跳—写入—》组装AGV调度心跳 OperateResult W_AGV_XT = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2400.0", R_TBR_XT.Content); if (W_AGV_XT.IsSuccess) { WriteLog.GetLog().Write($"写入组装AGV调度心跳信息成功,DB偏移值:DB1002.2400.0,写入值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } //// 读取组装AGV调度心跳 OperateResult R_AGV_XT = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2500.0"); if (R_AGV_XT.IsSuccess) { WriteLog.GetLog().Write($"// 读取组装AGV调度心跳信息成功,DB偏移值:DB1002.2500.0,写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } Int16 tf = Convert.ToInt16(R_AGV_XT.Content); //组装AGV调度—写入—》辊分机正极1号设备心跳 OperateResult W_TBR_XT = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5500", tf); if (W_TBR_XT.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D5500,写入值:{tf},时间:{DateTime.Now}", $"{tbsb}心跳传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}心跳传递结束,时间:{DateTime.Now} --------------{Environment.NewLine}", $"{tbsb}心跳传递"); #endregion #region 上料口 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递"); OperateResult GYC_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5492.0"); if (GYC_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5492.0,读取值:{GYC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGVC_WBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2492", GYC_RBJ.Content); if (AGVC_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口1报警信号成功,DB偏移值:DB1002.2492,写入值:{GYC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } // AGV报警信号 OperateResult AGVC_RBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2592"); if (AGVC_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplcF.PLCName},{tbsb}号设备上料料口1对接报警信号成功,DB偏移值:DB1002.2592, 读取值:{AGVC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } int RBJ = Convert.ToInt32(AGVC_RBJ.Content); //辊分机获取AGV报警信号 OperateResult GFC_WBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5592", RBJ); if (GFC_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备上料口1AGV报警信号成功,DB偏移值:D5592,写入值:{AGVC_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } ////获取辊分设备上料口偏移方向 OperateResult GYR_RFX_Up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5493.2"); if (GYR_RFX_Up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口偏移方向信息成功,DB偏移值:D5493.2,读取值:{GYR_RFX_Up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //辊分设备上料口偏移方向写入至AGV OperateResult GYR_WFX_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2493.2", GYR_RFX_Up.Content); if (GYR_WFX_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口偏移方向信息成功,DB偏移值:DB1002.2493.2,写入值:{GYR_RFX_Up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } ////获取辊分设备上料口偏移量 OperateResult GFR_PYL_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5494"); if (GFR_PYL_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口偏移量信息成功,DB偏移值:D5494,读取值:{GFR_PYL_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } int py = Convert.ToInt32(GFR_PYL_up.Content / 10); Byte a3 = Convert.ToByte(py); OperateResult W_ProcessSteps_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2494", a3);////写入辊分设备偏移量 if (W_ProcessSteps_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName}辊分设备上料口偏移量信息成功,DB偏移值:DB1002.2494,写入值:{a3},时间:{DateTime.Now}", $"{tbsb}信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //获取辊分上料口运行状态 OperateResult GFR_Run_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("M2309"); if (GFR_Run_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口运行状态信息成功,DB偏移值:M2309,读取值:{GFR_Run_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //将辊分上料口运行状态写入AGV中 OperateResult AGV_WRun_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2492.2", GFR_Run_up.Content); if (AGV_WRun_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口1运行状态成功,DB偏移值:DB1002.2492.2,写入值:{GFR_Run_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //AB轴 OperateResult R_up_AB = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5493.1"); if (R_up_AB.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口AB轴方向信息成功,DB偏移值:D5493.1,读取值:{R_up_AB.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } OperateResult W_AB3 = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2493.1", R_up_AB.Content); if (W_AB3.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName}辊分设备上料口AB轴信息成功,DB偏移值:DB1002.2493.1,写入值:{R_up_AB.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 读取agv上料口逻辑 OperateResult R_up_bzR = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.2590"); if (R_up_bzR.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplcF.PLCName}辊分设备上料口AGV请求进入信息成功,DB偏移值:DB1002.2590,读取值:{R_up_bzR.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 写入辊压机上料口对接流程步骤 OperateResult W_ProcessStep_up = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5590", R_up_bzR.Content); if (W_ProcessStep_up.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D5590,写入值:{R_up_bzR.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 读取辊压步序 OperateResult R_ProcessSteps_up = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5490"); if (R_ProcessSteps_up.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D5490,读取值:{R_ProcessSteps_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } //// 将步序写入agv OperateResult W_stationDockSteps_up = agvplcF.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2490", R_ProcessSteps_up.Content); if (W_stationDockSteps_up.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplcF.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.2490,写入值:{R_ProcessSteps_up.Content},时间:{DateTime.Now}", $"{tbsb}上料口信息传递"); } else { WriteLog.GetLog().Write($"{agvplcF.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}上料口信息传递"); #endregion #region 下料口 #region 设备下料一号信号通讯 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}下料一口信息传递"); //辊分机1号口报警 OperateResult GYR_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5692.0"); if (GYR_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5692.0,读取值:{GYR_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGV_WBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2892", GYR_RBJ.Content); if (AGV_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1报警信号成功,DB偏移值:DB1002.2892,写入值:{GYR_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } // AGV报警信号 OperateResult AGV_RBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2992"); if (AGV_RBJ.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplc.PLCName},{tbsb}号设备下料口1对接报警信号成功,DB偏移值:DB1002.2992,读取值:{AGV_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } int WBJ = Convert.ToInt32(AGV_RBJ.Content); //辊分机获取AGV报警信号 OperateResult GFR_WBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5792", WBJ); if (GFR_WBJ.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV报警信号成功,DB偏移值:D5792,写入值:{AGV_RBJ.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1偏移方向 OperateResult GYR_RFX = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5693.2"); if (GYR_RFX.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1偏移方向信息成功,DB偏移值:D5693.2,读取值:{GYR_RFX.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 辊分设备下料口1偏移方向写入至AGV OperateResult GYR_WFX = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2893.2", GYR_RFX.Content); if (GYR_WFX.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1偏移方向信息成功,DB偏移值:DB1002.2893.2,写入值:{GYR_RFX.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1AB轴方向 OperateResult R_Down1_AB = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5693.1"); if (R_Down1_AB.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1AB轴方向信息成功,DB偏移值:D5693.1,读取值:{R_Down1_AB.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 辊分设备下料口1AB轴方向写入至AGV OperateResult W_AB = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2893.1", R_Down1_AB.Content); if (W_AB.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口1AB轴信息成功,DB偏移值:DB1002.2893.1,写入值:{R_Down1_AB.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } ////获取// 辊分设备下料口1偏移量 OperateResult GFR_PYL = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadFloat("D5694"); if (GFR_PYL.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1偏移量信息成功,DB偏移值:D5694,读取值:{GFR_PYL.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } Byte a = Convert.ToByte(GFR_PYL.Content); OperateResult W_ProcessSteps = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2894", a);////写入辊分设备偏移量 if (W_ProcessSteps.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口1偏移量信息成功,DB偏移值:DB1002.2894,写入值:{a},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// // 读取agv下料口1请求进入 OperateResult R_Down1_bzR = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.2990"); if (R_Down1_bzR.IsSuccess) { WriteLog.GetLog().Write($"读取组装AGV调度// 辊分设备下料口1AGV请求进入信息成功,DB偏移值:DB1002.2990,读取值:{R_Down1_bzR.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 写入辊压机下料口1 AGV请求进入 OperateResult W_ProcessSteps1 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5790", R_Down1_bzR.Content); if (W_ProcessSteps1.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV请求进入信息成功,DB偏移值:D5790,写入值:{R_Down1_bzR.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } //// 读取辊压机下料口1 是否允许AGV请求进入 OperateResult R_ProcessSteps1 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5690"); if (R_ProcessSteps1.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1允许AGV请求进入信息成功,DB偏移值:D5690,读取值:{R_ProcessSteps1.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } OperateResult W_stationDockSteps1 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.2890", R_ProcessSteps1.Content); if (W_stationDockSteps1.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1允许AGV进入信息成功,DB偏移值:DB1002.2890,写入值:{R_ProcessSteps1.Content},时间:{DateTime.Now}", $"{tbsb}下料一口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料一口信息传递"); #endregion #region 设备下料二号信号通讯 WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}下料二口信息传递"); //辊分机2号口报警 OperateResult GYR_RBJ2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5892.0"); if (GYR_RBJ2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口1报警信号成功,DB偏移值:D5892.0,读取值:{GYR_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } // AGV获取辊分机报警信号 OperateResult AGV_WBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.3092", GYR_RBJ2.Content); if (AGV_WBJ2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口1报警信号成功,DB偏移值:DB1002.3092,写入值:{GYR_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } // AGV报警信号 OperateResult AGV_RBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.3192"); if (AGV_RBJ2.IsSuccess) { WriteLog.GetLog().Write($"读取{agvplc.PLCName},{tbsb}号设备下料口1对接报警信号成功,DB偏移值:DB1002.3192,读取值:{AGV_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } int WBJ2 = Convert.ToInt32(AGV_RBJ2.Content); //辊分机获取AGV报警信号 OperateResult GFR_WBJ2 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5992", WBJ2); if (GFR_WBJ2.IsSuccess) { WriteLog.GetLog().Write($"写入{tbsb}号设备下料口1AGV报警信号成功,DB偏移值:D5992,写入值:{AGV_RBJ2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////获取// 辊分设备下料口2偏移方向 OperateResult GYR_RFX2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5893.2"); if (GYR_RFX2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2偏移方向信息成功,DB偏移值:D5893.2,读取值:{GYR_RFX2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////写入// 辊分设备下料口2偏移方向至AGV OperateResult GYR_WFX2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.3093.2", GYR_RFX2.Content); if (GYR_WFX2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2偏移方向信息成功,DB偏移值:DB1002.3093.2,写入值:{GYR_RFX2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } ////获取// 辊分设备下料口2偏移量 OperateResult GFR_PYL2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadFloat("D5894"); if (GFR_PYL2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2偏移量信息成功,DB偏移值:D5894,读取值:{GFR_PYL2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } Byte a2 = Convert.ToByte(GFR_PYL2.Content); OperateResult W_ProcessSteps2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.3094", a2);////写入辊分设备偏移量 if (W_ProcessSteps2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}// 辊分设备下料口2偏移量信息成功,DB偏移值:DB1002.3094,写入值:{a2},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //AB轴 OperateResult R_Down1_AB2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5893.1"); if (R_Down1_AB2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2// AB轴方向信息成功,DB偏移值:D5893.1,读取值:{R_Down1_AB2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{tbsb}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } OperateResult W_AB2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.3093.1", R_Down1_AB2.Content); if (W_AB2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName}辊分设备下料口2 AB轴信息成功,DB偏移值:DB1002.3093.1,写入值:{R_Down1_AB2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 读取agv下料口2请求进入 OperateResult R_Down1_bzR2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.3190"); //// 读取agv下料口2逻辑 if (R_Down1_bzR2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2允许AGV请求进入信息成功,DB偏移值:DB1002.3190,读取值:{R_Down1_bzR2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 写入辊压机下料口2 AGV请求进入 OperateResult W_ProcessSteps3 = tbplc.MelsecPLCClient.MelsecMcNetClient.Write("D5990", R_Down1_bzR2.Content); if (W_ProcessSteps3.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2允许AGV进入信息成功,DB偏移值:D5990,写入值:{R_Down1_bzR2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } //// 读取辊压机下料口1 是否允许AGV请求进入 OperateResult R_ProcessSteps2 = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadInt16("D5890"); if (R_ProcessSteps2.IsSuccess) { WriteLog.GetLog().Write($"读取{tbsb}号设备下料口2允许AGV请求进入信息成功,DB偏移值:D5890,读取值:{R_ProcessSteps2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } OperateResult W_stationDockSteps2 = agvplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.3090", R_ProcessSteps2.Content); if (W_stationDockSteps2.IsSuccess) { WriteLog.GetLog().Write($"写入{agvplc.PLCName},{tbsb}号设备下料口2允许AGV进入信息成功,DB偏移值:DB1002.3090,写入值:{R_ProcessSteps2.Content},时间:{DateTime.Now}", $"{tbsb}下料二口信息传递"); } else { WriteLog.GetLog().Write($"{agvplc.PLCName}断开连接 时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); return; } WriteLog.GetLog().Write($"--------------{tbsb}信息传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}下料二口信息传递"); #endregion #endregion } catch (Exception) { throw; } }, token); #endregion #endregion } } }