wangxinhui
2024-11-06 8f392cc88b0768b74efca3b68785cf5aa1c38e70
wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/heartbeatFJGF.cs
@@ -14,2368 +14,2649 @@
{
    public partial class heartbeatFJGF
    {
        public static async void heartbeatWork()
        private static int lockObj1 = 0;
        public static 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<Task> taskList = new List<Task>();
            var tokenSource = new CancellationTokenSource();
            var token = tokenSource.Token;
            #region 负级辊分机信号传递
            #region 负级辊分机一号信号传递
            await Task.Run(() =>
            if (lockObj1 == 0)
            {
                try
                lockObj1 = 1;
                {
                    var tbsb = "辊分机负极1";
                    string tbsb = "辊分机负极1";
                    #region 负级辊分机信号心跳
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            Thread.Sleep(200);
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                if (agvplc == null)
                                {
                                    continue;
                                }
                    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<bool> 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<bool> 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;
                    }
                                #region 负级辊分机一号信号心跳
                                WriteLog.GetLog().Write($"--------------{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                                //// 读取辊分机正极1号设备心跳
                                OperateResult<bool> 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<bool> 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}心跳传递");
                                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
                            }
                            catch (Exception ex) { }
                        }
                    });
                    #endregion
                    #region 上料口
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}上料口信息传递");
                    //辊分机1号口报警
                    OperateResult<bool> GYC_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5492.0");
                    if (GYC_RBJ.IsSuccess)
                    Task.Run(() =>
                    {
                        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<bool> AGVC_RBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1992");
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (agvplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度");
                                if (agvplcF == null)
                                {
                                    continue;
                                }
                                #region 上料口
                                WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}上料口信息传递");
                                //辊分机1号口报警
                                OperateResult<bool> 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<bool> 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;
                    }
                                //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;
                    }
                                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<bool> 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<short> 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<bool> 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<bool> 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<UInt16> 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<Int16> 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}上料口信息传递");
                                ////获取辊分设备上料口偏移方向
                                OperateResult<bool> 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<short> 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<bool> 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<bool> 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<UInt16> 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<Int16> 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
                            }
                            catch (Exception ex)
                            {
                            }
                            Thread.Sleep(200);
                        }
                    });
                    #endregion
                    #region 下料口
                    #region 设备下料一号信号通讯
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递");
                    //辊分机1号口报警
                    OperateResult<bool> GYR_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5692.0");
                    if (GYR_RBJ.IsSuccess)
                    Task.Run(() =>
                    {
                        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<bool> AGV_RBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1792");
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (agvplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度");
                                if (agvplcF == null)
                                {
                                    continue;
                                }
                                #region 下料口
                                #region 设备下料一号信号通讯
                                WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递");
                                //辊分机1号口报警
                                OperateResult<bool> 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<bool> 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;
                    }
                                //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<bool> 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<bool> 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<bool> 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<bool> 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<float> 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<UInt16> 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}下料一口信息传递");
                                ////获取// 辊分设备下料口1偏移量
                                OperateResult<float> 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<UInt16> 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<Int16> 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<bool> 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<bool> AGV_RBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1992");
                                //}
                                //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<Int16> 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<bool> 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<bool> 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;
                    }
                                //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<bool> 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<float> 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<bool> 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<UInt16> R_Down1_bzR2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.1990"); //// 读取agv下料口2逻辑
                                ////获取// 辊分设备下料口2偏移方向
                                OperateResult<bool> 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<float> 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<bool> 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<UInt16> 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;
                    }
                                //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<Int16> 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;
                    }
                                //// 读取辊压机下料口1 是否允许AGV请求进入
                                OperateResult<Int16> 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}下料二口信息传递");
                                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
                                #endregion
                            }
                            catch (Exception ex) { }
                            Thread.Sleep(200);
                        }
                    });
                    #endregion
                }
                catch (Exception)
                {
                    string tbsb = "辊分机负极2";
                    #region 负级辊分机信号心跳
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            Thread.Sleep(200);
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                if (agvplc == null)
                                {
                                    continue;
                                }
                    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<bool> 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<bool> 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}心跳传递");
                                #region 负级辊分机二号信号心跳
                                WriteLog.GetLog().Write($"--------------{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                                //// 读取辊分机正极2号设备心跳
                                OperateResult<bool> 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<bool> 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
                            }
                            catch (Exception ex) { }
                        }
                    });
                    #endregion
                    #region 上料口
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递");
                    OperateResult<bool> GYC_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5492.0");
                    if (GYC_RBJ.IsSuccess)
                    Task.Run(() =>
                    {
                        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<bool> AGVC_RBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2192");
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (agvplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度");
                                if (agvplcF == null)
                                {
                                    continue;
                                }
                                #region 上料口
                                WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递");
                                OperateResult<bool> 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<bool> 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;
                    }
                                //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<bool> 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<short> 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<bool> 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<bool> 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<UInt16> 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<Int16> 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}上料口信息传递");
                                ////获取辊分设备上料口偏移方向
                                OperateResult<bool> 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<short> 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<bool> 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<bool> 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<UInt16> 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<Int16> 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
                            }
                            catch (Exception ex)
                            {
                            }
                            Thread.Sleep(200);
                        }
                    });
                    #endregion
                    #region 下料口
                    #region 设备下料一号信号通讯
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递");
                    //辊分机1号口报警
                    OperateResult<bool> GYR_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5692.0");
                    if (GYR_RBJ.IsSuccess)
                    Task.Run(() =>
                    {
                        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<bool> AGV_RBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2192");
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (agvplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度");
                                if (agvplcF == null)
                                {
                                    continue;
                                }
                                #region 下料口
                                #region 设备下料一号信号通讯
                                WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递");
                                //辊分机1号口报警
                                OperateResult<bool> 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<bool> 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;
                    }
                                //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<bool> 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<bool> 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<bool> 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<bool> 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<float> 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<UInt16> 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<Int16> 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}下料一口信息传递");
                                ////获取// 辊分设备下料口1偏移量
                                OperateResult<float> 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<UInt16> 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<Int16> 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<bool> 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<bool> 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<bool> 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<float> 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<bool> 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<UInt16> 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<Int16> 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 ex) { }
                            Thread.Sleep(200);
                        }
                    });
                    #endregion
                    #region  设备下料二号信号通讯
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料二口信息传递");
                    //辊分机2号口报警
                    OperateResult<bool> 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<bool> 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<bool> 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<float> 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<bool> 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<UInt16> 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<Int16> 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)
                {
                    string tbsb = "辊分机负极3";
                    #region 负级辊分机信号心跳
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                Thread.Sleep(200);
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                if (agvplc == null)
                                {
                                    continue;
                                }
                    throw;
                }
                                #region  负级辊分机三号信号心跳
                                WriteLog.GetLog().Write($"--------------{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                                //// 读取辊分机正极3号设备心跳
                                OperateResult<bool> 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<bool> 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;
                                //}
            }, 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<bool> 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<bool> 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}心跳传递");
                                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
                            }
                            catch (Exception ex) { }
                        }
                    });
                    #endregion
                    #region 上料口
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递");
                    OperateResult<bool> GYC_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5492.0");
                    if (GYC_RBJ.IsSuccess)
                    Task.Run(() =>
                    {
                        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<bool> AGVC_RBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2392");
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (agvplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度");
                                if (agvplcF == null)
                                {
                                    continue;
                                }
                                #region 上料口
                                WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递");
                                OperateResult<bool> 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<bool> 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;
                    }
                                //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<bool> 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<short> 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<bool> 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<bool> 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<UInt16> 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<Int16> 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}上料口信息传递");
                                //////获取辊分设备上料口偏移方向
                                OperateResult<bool> 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<short> 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<bool> 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<bool> 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<UInt16> 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<Int16> 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
                            }
                            catch (Exception ex)
                            {
                            }
                            Thread.Sleep(200);
                        }
                    });
                    #endregion
                    #region 下料口
                    #region 设备下料一号信号通讯
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递");
                    //辊分机1号口报警
                    OperateResult<bool> GYR_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5692.0");
                    if (GYR_RBJ.IsSuccess)
                    Task.Run(() =>
                    {
                        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<bool> AGV_RBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2592");
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (agvplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度");
                                if (agvplcF == null)
                                {
                                    continue;
                                }
                                #region 下料口
                                #region 设备下料一号信号通讯
                                WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} --------------", $"{tbsb}下料一口信息传递");
                                //辊分机1号口报警
                                OperateResult<bool> 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<bool> 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;
                    }
                                //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<bool> 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<bool> 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<bool> 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<bool> 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<float> 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<UInt16> 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<Int16> 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}下料一口信息传递");
                                //////获取// 辊分设备下料口1偏移量
                                OperateResult<float> 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<UInt16> 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<Int16> 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<bool> 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<bool> 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<bool> 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<float> 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<bool> 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<UInt16> 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<Int16> 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 ex) { }
                            Thread.Sleep(200);
                        }
                    });
                    #endregion
                    #region  设备下料二号信号通讯
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}下料二口信息传递");
                    //辊分机2号口报警
                    OperateResult<bool> 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<bool> 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<bool> 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<float> 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<bool> 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<UInt16> 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<Int16> 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)
                {
                    string tbsb = "辊分机负极4";
                    #region 负级辊分机信号心跳
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                Thread.Sleep(200);
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                if (agvplc == null)
                                {
                                    continue;
                                }
                    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<bool> 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<bool> 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}心跳传递");
                                #region 负级辊分机四号信号心跳
                                WriteLog.GetLog().Write($"--------------{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                                //读取辊分机正极4号设备心跳
                                OperateResult<bool> 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<bool> 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
                            }
                            catch (Exception ex) { }
                        }
                    });
                    #endregion
                    #region 上料口
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (agvplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度");
                                if (agvplcF == null)
                                {
                                    continue;
                                }
                                #region 上料口
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递");
                    OperateResult<bool> 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<bool> AGVC_RBJ = agvplcF.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2592");
                                WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}上料口信息传递");
                                OperateResult<bool> 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<bool> 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;
                    }
                                //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<bool> 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<short> 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<bool> 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<bool> 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<UInt16> 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<Int16> 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}上料口信息传递");
                                //////获取辊分设备上料口偏移方向
                                OperateResult<bool> 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<short> 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<bool> 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<bool> 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<UInt16> 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<Int16> 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
                            }
                            catch (Exception ex)
                            {
                            }
                            Thread.Sleep(200);
                        }
                    });
                    #endregion
                    #region 下料口
                    #region 设备下料一号信号通讯
                    WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}下料一口信息传递");
                    //辊分机1号口报警
                    OperateResult<bool> GYR_RBJ = tbplc.MelsecPLCClient.MelsecMcNetClient.ReadBool("D5692.0");
                    if (GYR_RBJ.IsSuccess)
                    Task.Run(() =>
                    {
                        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<bool> AGV_RBJ = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.2992");
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
                                if (agvplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcF = WCSService.Clients.Find(v => v.PLCName == "负极AGV调度");
                                if (agvplcF == null)
                                {
                                    continue;
                                }
                                #region 下料口
                                #region 设备下料一号信号通讯
                                WriteLog.GetLog().Write($"--------------{tbsb}信息传递开始,时间:{DateTime.Now} -------------- ", $"{tbsb}下料一口信息传递");
                                //辊分机1号口报警
                                OperateResult<bool> 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<bool> 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;
                    }
                                //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<bool> 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<bool> 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<bool> 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<bool> 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<float> 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<UInt16> 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<Int16> 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<bool> 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<bool> AGV_RBJ2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.3192");
                                //////获取// 辊分设备下料口1偏移量
                                OperateResult<float> 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<UInt16> 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<Int16> 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<bool> 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<bool> 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;
                    }
                                //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<bool> 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<float> 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<bool> 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<UInt16> R_Down1_bzR2 = agvplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1002.3190"); //// 读取agv下料口2逻辑
                                //////获取// 辊分设备下料口2偏移方向
                                OperateResult<bool> 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<float> 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<bool> 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<UInt16> 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;
                    }
                                //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<Int16> 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;
                    }
                                ////// 读取辊压机下料口1 是否允许AGV请求进入
                                OperateResult<Int16> 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
                                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 ex) { }
                            Thread.Sleep(200);
                        }
                    });
                    #endregion
                }
                catch (Exception)
                {
                    throw;
                }
            }, token);
            #endregion
            #endregion
            }
        }
    }
}