wangxinhui
2024-11-06 8f392cc88b0768b74efca3b68785cf5aa1c38e70
wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/heartbeatZJTB.cs
@@ -14,1269 +14,1492 @@
{
    public partial class heartbeatZJTB
    {
        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";
                    if (WCSService.Clients == null)
                    string tbsb = "涂布机正极1";
                    Task.Run(() =>
                    {
                        return;
                    }
                    PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                    if (tbplc == null)
                    {
                        return;
                    }
                    if (agvplcZ == null)
                    {
                        return;
                    }
                    #region 涂布机正极1号设备心跳
                    WriteLog.GetLog().Write($"{tbsb}心跳传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}心跳传递");
                    //读取涂布机正极1号设备心跳
                    OperateResult<bool> R_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11000.00");
                    if (R_TBR_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D11000.00,读取值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                        return;
                    }
                    //涂布机正极1号设备心跳—写入—》正极AGV调度心跳
                    OperateResult W_AGV_XT = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.200.0", R_TBR_XT.Content);
                    if (W_AGV_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}心跳信息成功,DB偏移值:DB1002.200.0, 写入值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    //读取正极AGV调度心跳
                    OperateResult<bool> R_AGV_XT = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.300.0");
                    if (R_AGV_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}心跳信息成功,DB偏移值:DB1002.300.0, 读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    //正极AGV调度—写入—》涂布机正极1号设备心跳
                    OperateResult W_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11100.00", R_AGV_XT.Content);
                    if (W_TBR_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D11100.00, 写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    WriteLog.GetLog().Write($"{tbsb}心跳传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                    #endregion
                    #region 涂布机正极1号上料口
                    WriteLog.GetLog().Write($"{tbsb}号上料口传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                    //读取agv报警信号
                    OperateResult<bool> R_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.392.0");
                    if (R_AGV_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}上料口报警信息成功,DB偏移值:DB1002.392.0, 读取值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入涂布设备
                    OperateResult W_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.00", R_AGV_BJ.Content);
                    if (W_TBR_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号上料口报警信息成功,DB偏移值:D11192.00, 写入值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取设备报警信号
                    OperateResult<bool> R_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.00");
                    if (R_TBR_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号上料口报警信息成功,DB偏移值:D11092.00, 读取值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入agv
                    OperateResult W_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.292.0", R_TBR_BJ.Content);
                    if (W_AGV_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}报警信息成功,DB偏移值:DB1002.292.0, 写入值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取agv对接步骤流程
                    OperateResult<Int16> R_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.390");
                    if (R_AGV_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}上料口AGV请求进入信息成功,DB偏移值:DB1002.390, 读取值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入涂布设备
                    OperateResult W_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11190", R_AGV_DJLC.Content);
                    if (W_TBR_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D11190,写入值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取涂布设备对接流程
                    OperateResult<Int16> R_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11090");
                    if (R_TBR_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D11090, 读取值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入agv
                    OperateResult W_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.290", R_TBR_DJLC.Content);
                    if (W_AGV_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.290, 写入值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                        WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    #endregion
                    #region 涂布机正极1号下料口
                    WriteLog.GetLog().Write($"{tbsb}号下料口传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}号下料口传递");
                    //读取涂布报警
                    OperateResult<bool> R_tbBJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11292.00");
                    if (R_tbBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号下料口报警信息成功,DB偏移值:D11292.00, 读取值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //报警信号写入agv
                    OperateResult W_tbBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.493.2", R_tbBJ.Content);
                    if (W_tbBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ}报警信息成功,DB偏移值:DB1002.493.2, 写入值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //读取agv报警
                    OperateResult<bool> R_agvBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.592.0");
                    if (R_agvBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ}下料口AGV报警信息成功,DB偏移值:DB1002.592.0, 读取值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //报警信号写入涂布机
                    OperateResult W_agvBJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11392.00", R_agvBJ.Content);
                    if (W_agvBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ}号下料口报警信息成功,DB偏移值:D11392.00, 写入值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //读取agv步骤
                    OperateResult<Int16> R_agvBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.590.0");
                    if (R_agvBZ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}号下料口AGV请求进入信息成功,DB偏移值:DB1002.590.0, 读取值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    if (R_agvBZ.Content > 0)
                    {
                        OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", true);//请求涂布机开门
                        if (W_TB1_OpenDoor.IsSuccess)
                        while (true)
                        {
                            WriteLog.GetLog().Write($"请求{tbsb}号下料口开门,DB偏移值:D11192.05, 写入值:true, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                            OperateResult<bool> R_TB_IsOpen = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.06");//涂布机开门完成信号
                            if (R_TB_IsOpen.IsSuccess)
                            try
                            {
                                WriteLog.GetLog().Write($"读取 {tbsb}号下料口门信息成功,DB偏移值:D11092.06, 读取值:{R_TB_IsOpen.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                if (R_TB_IsOpen.Content)
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极1号设备心跳
                                WriteLog.GetLog().Write($"{tbsb}心跳传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}心跳传递");
                                //读取涂布机正极1号设备心跳
                                OperateResult<bool> R_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11000.00");
                                //if (R_TBR_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D11000.00,读取值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                                //    return;
                                //}
                                ////涂布机正极1号设备心跳—写入—》正极AGV调度心跳
                                OperateResult W_AGV_XT = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.200.0", R_TBR_XT.Content);
                                //if (W_AGV_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}心跳信息成功,DB偏移值:DB1002.200.0, 写入值:{R_TBR_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //    return;
                                //}
                                ////读取正极AGV调度心跳
                                OperateResult<bool> R_AGV_XT = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.300.0");
                                //if (R_AGV_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}心跳信息成功,DB偏移值:DB1002.300.0, 读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //    return;
                                //}
                                ////正极AGV调度—写入—》涂布机正极1号设备心跳
                                OperateResult W_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11100.00", R_AGV_XT.Content);
                                //if (W_TBR_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D11100.00, 写入值:{R_AGV_XT.Content},时间:{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) { }
                            Thread.Sleep(200);
                        }
                    });
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极1号上料口
                                WriteLog.GetLog().Write($"{tbsb}号上料口传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                //读取agv报警信号
                                OperateResult<bool> R_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.392.0");
                                //if (R_AGV_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}上料口报警信息成功,DB偏移值:DB1002.392.0, 读取值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入涂布设备
                                OperateResult W_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.00", R_AGV_BJ.Content);
                                //if (W_TBR_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号上料口报警信息成功,DB偏移值:D11192.00, 写入值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取设备报警信号
                                OperateResult<bool> R_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.00");
                                //if (R_TBR_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号上料口报警信息成功,DB偏移值:D11092.00, 读取值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入agv
                                OperateResult W_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.292.0", R_TBR_BJ.Content);
                                //if (W_AGV_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}报警信息成功,DB偏移值:DB1002.292.0, 写入值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取agv对接步骤流程
                                OperateResult<Int16> R_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.390");
                                //if (R_AGV_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}上料口AGV请求进入信息成功,DB偏移值:DB1002.390, 读取值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入涂布设备
                                OperateResult W_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11190", R_AGV_DJLC.Content);
                                //if (W_TBR_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D11190,写入值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取涂布设备对接流程
                                OperateResult<Int16> R_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11090");
                                //if (R_TBR_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D11090, 读取值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入agv
                                OperateResult W_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.290", R_TBR_DJLC.Content);
                                //if (W_AGV_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.290, 写入值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //    WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                #endregion
                            }
                            catch (Exception ex)
                            {
                            }
                            Thread.Sleep(200);
                        }
                    });
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极1号下料口
                                WriteLog.GetLog().Write($"{tbsb}号下料口传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}号下料口传递");
                                //读取涂布报警
                                OperateResult<bool> R_tbBJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11292.00");
                                //if (R_tbBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号下料口报警信息成功,DB偏移值:D11292.00, 读取值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////报警信号写入agv
                                OperateResult W_tbBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.493.2", R_tbBJ.Content);
                                //if (W_tbBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ}报警信息成功,DB偏移值:DB1002.493.2, 写入值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////读取agv报警
                                OperateResult<bool> R_agvBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.592.0");
                                //if (R_agvBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ}下料口AGV报警信息成功,DB偏移值:DB1002.592.0, 读取值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////报警信号写入涂布机
                                OperateResult W_agvBJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11392.00", R_agvBJ.Content);
                                //if (W_agvBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ}号下料口报警信息成功,DB偏移值:D11392.00, 写入值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////读取agv步骤
                                OperateResult<Int16> R_agvBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.590.0");
                                //if (R_agvBZ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}号下料口AGV请求进入信息成功,DB偏移值:DB1002.590.0, 读取值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                if (R_agvBZ.Content > 0)
                                {
                                    OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", true);//请求涂布机开门
                                                                                                                                    //if (W_TB1_OpenDoor.IsSuccess)
                                                                                                                                    //{
                                                                                                                                    //    WriteLog.GetLog().Write($"请求{tbsb}号下料口开门,DB偏移值:D11192.05, 写入值:true, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    OperateResult<bool> R_TB_IsOpen = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.06");//涂布机开门完成信号
                                                                                                                                    //if (R_TB_IsOpen.IsSuccess)
                                                                                                                                    //{
                                                                                                                                    //    WriteLog.GetLog().Write($"读取 {tbsb}号下料口门信息成功,DB偏移值:D11092.06, 读取值:{R_TB_IsOpen.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    if (R_TB_IsOpen.Content)
                                    {
                                        //写给涂布机
                                        OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                        //if (W_agvBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390, 写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}信息传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                                        //}
                                        //读取设备步骤
                                        OperateResult<Int16> R_tbBZ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11290");
                                        //if (R_tbBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"读取{tbsb}号设备下料口允许AGV请求进入信息成功,DB偏移值:D11290, 读取值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}信息传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                                        //}
                                        //步骤信号写入agv
                                        OperateResult W_tbBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.490.0", R_tbBZ.Content);
                                        //            if (W_tbBZ.IsSuccess)
                                        //            {
                                        //                WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备下料口允许AGV进入信息成功,DB偏移值:DB1002.490.0, 写入值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}信息传递");
                                        //                WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                        //            }
                                        //            else
                                        //            {
                                        //                WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                                        //            }
                                        //        }
                                        //        else
                                        //        {
                                        //            WriteLog.GetLog().Write($"{tbsb}号下料口门当前未开门到位,此回话结束,等待开门到位", $"{tbsb}号下料口传递");
                                        //            WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                        //            return;
                                        //        }
                                        //    }
                                        //    else
                                        //    {
                                        //        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //        return;
                                        //    }
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                                        //    return;
                                    }
                                }
                                else if (R_agvBZ.Content == 0)
                                {
                                    //写给涂布机
                                    OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                    if (W_agvBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390, 写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}信息传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                                    }
                                    //读取设备步骤
                                    OperateResult<Int16> R_tbBZ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11290");
                                    if (R_tbBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"读取{tbsb}号设备下料口允许AGV请求进入信息成功,DB偏移值:D11290, 读取值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}信息传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                                    }
                                    //步骤信号写入agv
                                    OperateResult W_tbBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.490.0", R_tbBZ.Content);
                                    if (W_tbBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备下料口允许AGV进入信息成功,DB偏移值:DB1002.490.0, 写入值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}信息传递");
                                        WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                                    }
                                    //if (W_agvBZ.IsSuccess)
                                    //{
                                    //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390, 写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    //}
                                    //else
                                    //{
                                    //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    //    return;
                                    //}
                                    OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", false);//请求涂布机关门
                                                                                                                                     //if (W_TB1_OpenDoor.IsSuccess)
                                                                                                                                     //{
                                                                                                                                     //    WriteLog.GetLog().Write($"请求{tbsb}号下料口关门,DB偏移值:D11192.05, 写入值:false, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                                                                                                                     //    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                                                                                                                     //}
                                                                                                                                     //else
                                                                                                                                     //{
                                                                                                                                     //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                                                                                                                     //    return;
                                                                                                                                     //}
                                }
                                else
                                //else
                                {
                                    WriteLog.GetLog().Write($"{tbsb}号下料口门当前未开门到位,此回话结束,等待开门到位", $"{tbsb}号下料口传递");
                                    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                    return;
                                    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                }
                                #endregion
                            }
                            else
                            catch (Exception ex) { }
                            Thread.Sleep(200);
                        }
                    });
                }
                {
                    string tbsb = "涂布机正极2";
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                return;
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极2号设备心跳
                                WriteLog.GetLog().Write($"{tbsb}心跳传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}心跳传递");
                                //读取涂布机正极2号设备心跳
                                OperateResult<bool> R_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11000.00");
                                //if (R_TBR_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D11000.00, 读取值:{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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.600.0", R_TBR_XT.Content);
                                //if (W_AGV_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入正极AGV调度心跳信息成功,DB偏移值:DB1002.600.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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.700.0");
                                //if (R_AGV_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取正极AGV调度心跳信息成功,DB偏移值:DB1002.700.0, 读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //    return;
                                //}
                                ////正极AGV调度—写入—》涂布机正极1号设备心跳
                                OperateResult W_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11100.00", R_AGV_XT.Content);
                                //if (W_TBR_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D11100.00, 写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //    WriteLog.GetLog().Write($"{tbsb}心跳传递结束,时间:{DateTime.Now}  --------------  {Environment.NewLine}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //    return;
                                //}
                                WriteLog.GetLog().Write($"{tbsb}心跳传递结束,时间:{DateTime.Now}  -------------- ", $"{tbsb}心跳传递");
                                #endregion
                            }
                            catch (Exception ex) { }
                            Thread.Sleep(200);
                        }
                        else
                    });
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}信息传递");
                            return;
                        }
                    }
                    else if (R_agvBZ.Content == 0)
                    {
                        //写给涂布机
                        OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                        if (W_agvBZ.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390, 写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                            return;
                        }
                        OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", false);//请求涂布机关门
                        if (W_TB1_OpenDoor.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"请求{tbsb}号下料口关门,DB偏移值:D11192.05, 写入值:false, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                            WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                            return;
                        }
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    WriteLog.GetLog().Write($"通讯异常,内容:{ex.Message},时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"涂布机正极1号下料口传递");
                }
            });
            #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 (agvplcZ == null)
                    {
                        return;
                    }
                    #region 涂布机正极2号设备心跳
                    WriteLog.GetLog().Write($"{tbsb}心跳传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}心跳传递");
                    //读取涂布机正极2号设备心跳
                    OperateResult<bool> R_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11000.00");
                    if (R_TBR_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D11000.00, 读取值:{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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.600.0", R_TBR_XT.Content);
                    if (W_AGV_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入正极AGV调度心跳信息成功,DB偏移值:DB1002.600.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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.700.0");
                    if (R_AGV_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取正极AGV调度心跳信息成功,DB偏移值:DB1002.700.0, 读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    //正极AGV调度—写入—》涂布机正极1号设备心跳
                    OperateResult W_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11100.00", R_AGV_XT.Content);
                    if (W_TBR_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D11100.00, 写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                        WriteLog.GetLog().Write($"{tbsb}心跳传递结束,时间:{DateTime.Now}  --------------  {Environment.NewLine}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    #endregion
                    #region 涂布机正极2号上料口
                    WriteLog.GetLog().Write($"{tbsb}号上料口传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                    //读取agv报警信号
                    OperateResult<bool> R_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.792.0");
                    if (R_AGV_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}上料口报警信息成功,DB偏移值:DB1002.792.0, 读取值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入涂布设备
                    OperateResult W_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.00", R_AGV_BJ.Content);
                    if (W_TBR_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号报警信息成功,DB偏移值:D11192.00, 写入值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取设备报警信号
                    OperateResult<bool> R_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.00");
                    if (R_TBR_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备报警信息成功,DB偏移值:D11092.00, 读取值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入agv
                    OperateResult W_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.692.0", R_TBR_BJ.Content);
                    if (W_AGV_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}报警信息成功,DB偏移值:DB1002.692.0, 写入值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取agv对接步骤流程
                    OperateResult<Int16> R_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.790");
                    if (R_AGV_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}上料口AGV请求进入信息成功,DB偏移值:DB1002.790, 读取值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                    }
                    //写入涂布设备
                    OperateResult W_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11190", R_AGV_DJLC.Content);
                    if (W_TBR_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D11190, 写入值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                    }
                    //读取涂布设备对接流程
                    OperateResult<Int16> R_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11090");
                    if (R_TBR_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D11090, 读取值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                    }
                    //写入agv
                    OperateResult W_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.690", R_TBR_DJLC.Content);
                    if (W_AGV_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.690, 写入值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                        WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now}  --------------  {Environment.NewLine}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                    }
                    #endregion
                    #region 涂布机正极2号下料口
                    WriteLog.GetLog().Write($"{tbsb}号下料口传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                    //读取涂布报警
                    OperateResult<bool> R_tbBJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11292.00");
                    if (R_tbBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号下料口报警信息成功,DB偏移值:D11292.00, 读取值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //报警信号写入agv
                    OperateResult W_tbBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.893.2", R_tbBJ.Content);
                    if (W_tbBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ}报警信息成功,DB偏移值:DB1002.893.2,写入值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //读取agv报警
                    OperateResult<bool> R_agvBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.992.0");
                    if (R_agvBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ}下料口AGV报警信息成功,DB偏移值:DB1002.992.0,读取值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //报警信号写入涂布机
                    OperateResult W_agvBJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11392.00", R_agvBJ.Content);
                    if (W_agvBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ}号下料口报警信息成功,DB偏移值:D11392.00,写入值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //读取agv步骤
                    OperateResult<Int16> R_agvBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.990.0");
                    if (R_agvBZ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}下料口AGV请求进入信息成功,DB偏移值:DB1002.990.0,读取值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    if (R_agvBZ.Content > 0)
                    {
                        OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", true);//请求涂布机开门
                        if (W_TB1_OpenDoor.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"请求{tbsb}号下料口开门,DB偏移值:D11192.05, 写入值:true, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                            OperateResult<bool> R_TB_IsOpen = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.06");//涂布机开门完成信号
                            if (R_TB_IsOpen.IsSuccess)
                            try
                            {
                                WriteLog.GetLog().Write($"读取 {tbsb}号下料口门信息成功,DB偏移值:D11092.06, 读取值:{R_TB_IsOpen.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                if (R_TB_IsOpen.Content)
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极2号上料口
                                WriteLog.GetLog().Write($"{tbsb}号上料口传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                //读取agv报警信号
                                OperateResult<bool> R_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.792.0");
                                //if (R_AGV_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}上料口报警信息成功,DB偏移值:DB1002.792.0, 读取值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入涂布设备
                                OperateResult W_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.00", R_AGV_BJ.Content);
                                //if (W_TBR_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号报警信息成功,DB偏移值:D11192.00, 写入值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取设备报警信号
                                OperateResult<bool> R_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.00");
                                //if (R_TBR_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备报警信息成功,DB偏移值:D11092.00, 读取值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入agv
                                OperateResult W_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.692.0", R_TBR_BJ.Content);
                                //if (W_AGV_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}报警信息成功,DB偏移值:DB1002.692.0, 写入值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取agv对接步骤流程
                                OperateResult<Int16> R_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.790");
                                //if (R_AGV_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}上料口AGV请求进入信息成功,DB偏移值:DB1002.790, 读取值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //}
                                ////写入涂布设备
                                OperateResult W_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11190", R_AGV_DJLC.Content);
                                //if (W_TBR_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D11190, 写入值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //}
                                ////读取涂布设备对接流程
                                OperateResult<Int16> R_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11090");
                                //if (R_TBR_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D11090, 读取值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //}
                                ////写入agv
                                OperateResult W_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.690", R_TBR_DJLC.Content);
                                //if (W_AGV_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.690, 写入值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //    WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now}  --------------  {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //}
                                WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                #endregion
                            }
                            catch (Exception ex)
                            {
                            }
                            Thread.Sleep(200);
                        }
                    });
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极2号下料口
                                WriteLog.GetLog().Write($"{tbsb}号下料口传递开始,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                //读取涂布报警
                                OperateResult<bool> R_tbBJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11292.00");
                                //if (R_tbBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号下料口报警信息成功,DB偏移值:D11292.00, 读取值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////报警信号写入agv
                                OperateResult W_tbBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.893.2", R_tbBJ.Content);
                                //if (W_tbBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ}报警信息成功,DB偏移值:DB1002.893.2,写入值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////读取agv报警
                                OperateResult<bool> R_agvBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.992.0");
                                //if (R_agvBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ}下料口AGV报警信息成功,DB偏移值:DB1002.992.0,读取值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////报警信号写入涂布机
                                OperateResult W_agvBJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11392.00", R_agvBJ.Content);
                                //if (W_agvBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ}号下料口报警信息成功,DB偏移值:D11392.00,写入值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////读取agv步骤
                                OperateResult<Int16> R_agvBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.990.0");
                                //if (R_agvBZ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}下料口AGV请求进入信息成功,DB偏移值:DB1002.990.0,读取值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                if (R_agvBZ.Content > 0)
                                {
                                    OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", true);//请求涂布机开门
                                                                                                                                    //if (W_TB1_OpenDoor.IsSuccess)
                                                                                                                                    //{
                                                                                                                                    //    WriteLog.GetLog().Write($"请求{tbsb}号下料口开门,DB偏移值:D11192.05, 写入值:true, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    OperateResult<bool> R_TB_IsOpen = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.06");//涂布机开门完成信号
                                                                                                                                    //if (R_TB_IsOpen.IsSuccess)
                                                                                                                                    //{
                                                                                                                                    //    WriteLog.GetLog().Write($"读取 {tbsb}号下料口门信息成功,DB偏移值:D11092.06, 读取值:{R_TB_IsOpen.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    if (R_TB_IsOpen.Content)
                                    {
                                        //写给涂布机
                                        OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                        //if (W_agvBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                        //}
                                        //读取设备步骤
                                        OperateResult<Int16> R_tbBZ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11290");
                                        //if (R_tbBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"读取{tbsb}号设备下料口允许AGV请求进入信息成功,DB偏移值:D11290,读取值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                        //}
                                        //步骤信号写入agv
                                        OperateResult W_tbBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.890.0", R_tbBZ.Content);
                                        //            if (W_tbBZ.IsSuccess)
                                        //            {
                                        //                WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备下料口允许AGV进入信息成功,DB偏移值:DB1002.890.0,写入值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //                WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- ", $"{tbsb}号下料口传递");
                                        //            }
                                        //            else
                                        //            {
                                        //                WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //                return;
                                        //            }
                                        //        }
                                        //        else
                                        //        {
                                        //            WriteLog.GetLog().Write($"{tbsb}号下料口门当前未开门到位,此回话结束,等待开门到位", $"{tbsb}号下料口传递");
                                        //            WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------  {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //            return;
                                        //        }
                                        //    }
                                        //    else
                                        //    {
                                        //        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //        return;
                                        //    }
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                    }
                                }
                                else if (R_agvBZ.Content == 0)
                                {
                                    //写给涂布机
                                    OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                    if (W_agvBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        return;
                                    }
                                    //读取设备步骤
                                    OperateResult<Int16> R_tbBZ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11290");
                                    if (R_tbBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"读取{tbsb}号设备下料口允许AGV请求进入信息成功,DB偏移值:D11290,读取值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        return;
                                    }
                                    //步骤信号写入agv
                                    OperateResult W_tbBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.890.0", R_tbBZ.Content);
                                    if (W_tbBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备下料口允许AGV进入信息成功,DB偏移值:DB1002.890.0,写入值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- ", $"{tbsb}号下料口传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        return;
                                    }
                                    //if (W_agvBZ.IsSuccess)
                                    //{
                                    //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    //}
                                    //else
                                    //{
                                    //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    //    return;
                                    //}
                                    OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", false);//请求涂布机关门
                                                                                                                                     //if (W_TB1_OpenDoor.IsSuccess)
                                                                                                                                     //{
                                                                                                                                     //    WriteLog.GetLog().Write($"请求{tbsb}号下料口关门,DB偏移值:D11192.05, 写入值:false, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                                                                                                                     //    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                                                                                                                     //}
                                                                                                                                     //else
                                                                                                                                     //{
                                                                                                                                     //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                                                                                                                     //    return;
                                                                                                                                     //}
                                }
                                else
                                {
                                    WriteLog.GetLog().Write($"{tbsb}号下料口门当前未开门到位,此回话结束,等待开门到位", $"{tbsb}号下料口传递");
                                    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------  {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    return;
                                }
                                WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                #endregion
                            }
                            else
                            catch (Exception ex) { }
                            Thread.Sleep(200);
                        }
                    });
                }
                {
                    string tbsb = "涂布机正极3";
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                return;
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极3号设备心跳
                                WriteLog.GetLog().Write($"{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                                //读取涂布机正极3号设备心跳
                                OperateResult<bool> R_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11000.00");
                                //if (R_TBR_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D11000.00, 读取值:{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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1000.0", R_TBR_XT.Content);
                                //if (W_AGV_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入正极AGV调度心跳信息成功,DB偏移值:DB1002.1000.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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1100.0");
                                //if (R_AGV_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取正极AGV调度心跳信息成功,DB偏移值:DB1002.1100.0,读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //    return;
                                //}
                                ////正极AGV调度—写入—》涂布机正极1号设备心跳
                                OperateResult W_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11100.00", R_AGV_XT.Content);
                                //if (W_TBR_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D11100.00,写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //    WriteLog.GetLog().Write($"{tbsb}心跳传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //    return;
                                //}
                                WriteLog.GetLog().Write($"{tbsb}心跳传递结束,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                                #endregion
                            }
                            catch (Exception ex) { }
                            Thread.Sleep(200);
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                            return;
                        }
                    }
                    else if (R_agvBZ.Content == 0)
                    {
                        //写给涂布机
                        OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                        if (W_agvBZ.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                            return;
                        }
                        OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", false);//请求涂布机关门
                        if (W_TB1_OpenDoor.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"请求{tbsb}号下料口关门,DB偏移值:D11192.05, 写入值:false, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                            WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                            return;
                        }
                    }
                    #endregion
                }
                catch (Exception)
                {
                    throw;
                }
                    });
            });
            #endregion
            #region 正级涂布机三号信号传递
            await Task.Run(() =>
            {
                try
                {
                    var tbsb = "涂布机正极3";
                    if (WCSService.Clients == null)
                    Task.Run(() =>
                    {
                        return;
                    }
                    PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                    if (tbplc == null)
                    {
                        return;
                    }
                    if (agvplcZ == null)
                    {
                        return;
                    }
                    #region 涂布机正极3号设备心跳
                    WriteLog.GetLog().Write($"{tbsb}心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                    //读取涂布机正极3号设备心跳
                    OperateResult<bool> R_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11000.00");
                    if (R_TBR_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D11000.00, 读取值:{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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1000.0", R_TBR_XT.Content);
                    if (W_AGV_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入正极AGV调度心跳信息成功,DB偏移值:DB1002.1000.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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1100.0");
                    if (R_AGV_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取正极AGV调度心跳信息成功,DB偏移值:DB1002.1100.0,读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    //正极AGV调度—写入—》涂布机正极1号设备心跳
                    OperateResult W_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11100.00", R_AGV_XT.Content);
                    if (W_TBR_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D11100.00,写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                        WriteLog.GetLog().Write($"{tbsb}心跳传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    #endregion
                    #region 涂布机正极3号上料口
                    WriteLog.GetLog().Write($"{tbsb}号上料口传递开始,时间:{DateTime.Now} --------------", $"{tbsb}号上料口传递");
                    //读取agv报警信号
                    OperateResult<bool> R_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1192.0");
                    if (R_AGV_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}上料口报警信息成功,DB偏移值:DB1002.1192.0,读取值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入涂布设备
                    OperateResult W_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.00", R_AGV_BJ.Content);
                    if (W_TBR_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号报警信息成功,DB偏移值:,写入值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取设备报警信号
                    OperateResult<bool> R_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.00");
                    if (R_TBR_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备报警信息成功,DB偏移值:D11092.00,读取值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入agv
                    OperateResult W_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1092.0", R_TBR_BJ.Content);
                    if (W_AGV_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}报警信息成功,DB偏移值:DB1002.1092.0,写入值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取agv对接步骤流程
                    OperateResult<Int16> R_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.1190");
                    if (R_AGV_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}上料口AGV请求进入信息成功,DB偏移值:DB1002.1190,读取值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                    }
                    //写入涂布设备
                    OperateResult W_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11190", R_AGV_DJLC.Content);
                    if (W_TBR_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D11190,写入值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取涂布设备对接流程
                    OperateResult<Int16> R_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11090");
                    if (R_TBR_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D11090,读取值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入agv
                    OperateResult W_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1090", R_TBR_DJLC.Content);
                    if (W_AGV_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.1090,写入值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                        WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    #endregion
                    #region 涂布机正极3号下料口
                    WriteLog.GetLog().Write($"{tbsb}号下料口传递开始,时间:{DateTime.Now} --------------", $"{tbsb}号下料口传递");
                    //读取涂布报警
                    OperateResult<bool> R_tbBJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11292.00");
                    if (R_tbBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号下料口报警信息成功,DB偏移值:D11292.00,读取值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //报警信号写入agv
                    OperateResult W_tbBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1293.2", R_tbBJ.Content);
                    if (W_tbBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ}报警信息成功,DB偏移值:DB1002.1293.2,写入值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //读取agv报警
                    OperateResult<bool> R_agvBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1392.0");
                    if (R_agvBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ}下料口AGV报警信息成功,DB偏移值:DB1002.1392.0,读取值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //报警信号写入涂布机
                    OperateResult W_agvBJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11392.00", R_agvBJ.Content);
                    if (W_agvBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ}号下料口报警信息成功,DB偏移值:D11392.00,写入值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //读取agv步骤
                    OperateResult<Int16> R_agvBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.1390.0");
                    if (R_agvBZ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}下料口AGV请求进入信息成功,DB偏移值:DB1002.1390.0,读取值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                    }
                    if (R_agvBZ.Content > 0)
                    {
                        OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", true);//请求涂布机开门
                        if (W_TB1_OpenDoor.IsSuccess)
                        while (true)
                        {
                            WriteLog.GetLog().Write($"写入{tbsb}号设备下料口开门信息成功,DB偏移值:D11192.05,写入值:true,时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                            OperateResult<bool> R_TB_IsOpen = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.06");//涂布机开门完成信号
                            if (R_TB_IsOpen.Content)
                            try
                            {
                                WriteLog.GetLog().Write($"读取 {tbsb}号设备下料口门信息成功,DB偏移值:D11192.06,读取值:{R_TB_IsOpen.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //写给涂布机
                                OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                if (W_agvBZ.IsSuccess)
                                if (WCSService.Clients == null)
                                {
                                    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    continue;
                                }
                                else
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    return;
                                    continue;
                                }
                                //读取设备步骤
                                OperateResult<Int16> R_tbBZ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11290");
                                if (R_tbBZ.IsSuccess)
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    WriteLog.GetLog().Write($"读取{tbsb}号设备下料口允许AGV请求进入信息成功,DB偏移值:D11290,读取值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    continue;
                                }
                                else
                                {
                                    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    return;
                                }
                                //步骤信号写入agv
                                OperateResult W_tbBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1290.0", R_tbBZ.Content);
                                if (W_tbBZ.IsSuccess)
                                {
                                    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备下料口允许AGV进入信息成功,DB偏移值:DB1002.1290.0,写入值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                }
                                else
                                {
                                    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    return;
                                }
                                #region 涂布机正极3号上料口
                                WriteLog.GetLog().Write($"{tbsb}号上料口传递开始,时间:{DateTime.Now} --------------", $"{tbsb}号上料口传递");
                                //读取agv报警信号
                                OperateResult<bool> R_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1192.0");
                                //if (R_AGV_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}上料口报警信息成功,DB偏移值:DB1002.1192.0,读取值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入涂布设备
                                OperateResult W_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.00", R_AGV_BJ.Content);
                                //if (W_TBR_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号报警信息成功,DB偏移值:,写入值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取设备报警信号
                                OperateResult<bool> R_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.00");
                                //if (R_TBR_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备报警信息成功,DB偏移值:D11092.00,读取值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入agv
                                OperateResult W_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1092.0", R_TBR_BJ.Content);
                                //if (W_AGV_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}报警信息成功,DB偏移值:DB1002.1092.0,写入值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取agv对接步骤流程
                                OperateResult<Int16> R_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.1190");
                                //if (R_AGV_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}上料口AGV请求进入信息成功,DB偏移值:DB1002.1190,读取值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //}
                                ////写入涂布设备
                                OperateResult W_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11190", R_AGV_DJLC.Content);
                                //if (W_TBR_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D11190,写入值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取涂布设备对接流程
                                OperateResult<Int16> R_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11090");
                                //if (R_TBR_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D11090,读取值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入agv
                                OperateResult W_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1090", R_TBR_DJLC.Content);
                                //if (W_AGV_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.1090,写入值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //    WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                WriteLog.GetLog().Write($"{tbsb}号上料口传递结束,时间:{DateTime.Now} --------------", $"{tbsb}号上料口传递");
                                #endregion
                            }
                        }
                    }
                    else if (R_agvBZ.Content == 0)
                    {     //写给涂布机
                        OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                        if (W_agvBZ.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                            return;
                        }
                        OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", false);//请求涂布机关门
                        if (W_TB1_OpenDoor.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"请求{tbsb}号下料口关门,DB偏移值:D11192.05, 写入值:false, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                            WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                            return;
                        }
                    }
                    #endregion
                }
                catch (Exception)
                {
                    throw;
                }
            });
            #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 (agvplcZ == null)
                    {
                        return;
                    }
                    #region 涂布机正极4号设备心跳
                    WriteLog.GetLog().Write($"{tbsb}号心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                    //读取涂布机正极4号设备心跳
                    OperateResult<bool> R_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11000.00");
                    if (R_TBR_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D11000.00,读取值:{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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1400.0", R_TBR_XT.Content);
                    if (W_AGV_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入正极AGV调度心跳信息成功,DB偏移值:DB1002.1400.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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1500.0");
                    if (R_AGV_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取正极AGV调度心跳信息成功,DB偏移值:DB1002.1500.0,读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    //正极AGV调度—写入—》涂布机正极1号设备心跳
                    OperateResult W_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11100.00", R_AGV_XT.Content);
                    if (W_TBR_XT.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D11100.00,写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                        WriteLog.GetLog().Write($"{tbsb}号心跳传递借,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                        return;
                    }
                    #endregion
                    #region 涂布机正极4号上料口
                    WriteLog.GetLog().Write($"{tbsb}号上料口传递开始  时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                    //读取agv报警信号
                    OperateResult<bool> R_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1592.0");
                    if (R_AGV_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}上料口报警信息成功,DB偏移值:DB1002.1592.0,读取值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入涂布设备
                    OperateResult W_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.00", R_AGV_BJ.Content);
                    if (W_TBR_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号报警信息成功,DB偏移值:D11192.00,写入值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取设备报警信号
                    OperateResult<bool> R_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.00");
                    if (R_TBR_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备报警信息成功,DB偏移值:D11092.00,读取值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入agv
                    OperateResult W_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1492.0", R_TBR_BJ.Content);
                    if (W_AGV_BJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}报警信息成功,DB偏移值:DB1002.1492.0,写入值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取agv对接步骤流程
                    OperateResult<Int16> R_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.1590");
                    if (R_AGV_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}上料口AGV请求进入信息成功,DB偏移值:DB1002.1590,读取值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入涂布设备
                    OperateResult W_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11190", R_AGV_DJLC.Content);
                    if (W_TBR_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D11190,写入值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //读取涂布设备对接流程
                    OperateResult<Int16> R_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11090");
                    if (R_TBR_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D11090,读取值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    //写入agv
                    OperateResult W_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1490", R_TBR_DJLC.Content);
                    if (W_AGV_DJLC.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.1490,写入值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                        WriteLog.GetLog().Write($"{tbsb}号上料口传递结束  时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                        return;
                    }
                    #endregion
                    #region 涂布机正极4号下料口
                    WriteLog.GetLog().Write($"{agvplcZ.PLCName}号下料口传递开始  时间:{DateTime.Now}  -------------- ", $"{tbsb}号下料口传递");
                    //读取涂布报警
                    OperateResult<bool> R_tbBJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11292.00");
                    if (R_tbBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{tbsb}号下料口报警信息成功,偏移值:D11292.00, 读取值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //报警信号写入agv
                    OperateResult W_tbBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1693.2", R_tbBJ.Content);
                    if (W_tbBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ}报警信息成功,DB偏移值:DB1002.1693.2,写入值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //读取agv报警
                    OperateResult<bool> R_agvBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1792.0");
                    if (R_agvBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ}下料口AGV报警信息成功,DB偏移值:DB1002.1792.0,读取值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //报警信号写入涂布机
                    OperateResult W_agvBJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11392.00", R_agvBJ.Content);
                    if (W_agvBJ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"写入{agvplcZ}号下料口报警信息成功,DB偏移值:D11392.00,写入值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    //读取agv步骤
                    OperateResult<Int16> R_agvBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.1790.0");
                    if (R_agvBZ.IsSuccess)
                    {
                        WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}下料口AGV请求进入信息成功,DB偏移值:DB1002.1790.0,读取值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                    }
                    else
                    {
                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        return;
                    }
                    if (R_agvBZ.Content > 0)
                    {
                        OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", true);//请求涂布机开门
                        if (W_TB1_OpenDoor.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"写入{tbsb}号设备下料口开门信息成功,DB偏移值:D11192.05,写入值:true,时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                            OperateResult<bool> R_TB_IsOpen = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.06");//涂布机开门完成信号
                            if (R_TB_IsOpen.IsSuccess)
                            catch (Exception ex)
                            {
                                WriteLog.GetLog().Write($"读取 {tbsb}号设备下料口开信息成功,DB偏移值:D11092.06,读取值:{R_TB_IsOpen.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                if (R_TB_IsOpen.Content)
                                {         //写给涂布机
                            }
                            Thread.Sleep(200);
                        }
                    });
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极3号下料口
                                WriteLog.GetLog().Write($"{tbsb}号下料口传递开始,时间:{DateTime.Now} --------------", $"{tbsb}号下料口传递");
                                //读取涂布报警
                                OperateResult<bool> R_tbBJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11292.00");
                                //if (R_tbBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号下料口报警信息成功,DB偏移值:D11292.00,读取值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////报警信号写入agv
                                OperateResult W_tbBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1293.2", R_tbBJ.Content);
                                //if (W_tbBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ}报警信息成功,DB偏移值:DB1002.1293.2,写入值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////读取agv报警
                                OperateResult<bool> R_agvBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1392.0");
                                //if (R_agvBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ}下料口AGV报警信息成功,DB偏移值:DB1002.1392.0,读取值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////报警信号写入涂布机
                                OperateResult W_agvBJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11392.00", R_agvBJ.Content);
                                //if (W_agvBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ}号下料口报警信息成功,DB偏移值:D11392.00,写入值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////读取agv步骤
                                OperateResult<Int16> R_agvBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.1390.0");
                                //if (R_agvBZ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}下料口AGV请求进入信息成功,DB偏移值:DB1002.1390.0,读取值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //}
                                if (R_agvBZ.Content > 0)
                                {
                                    OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", true);//请求涂布机开门
                                                                                                                                    //if (W_TB1_OpenDoor.IsSuccess)
                                                                                                                                    //{
                                                                                                                                    //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口开门信息成功,DB偏移值:D11192.05,写入值:true,时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    OperateResult<bool> R_TB_IsOpen = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.06");//涂布机开门完成信号
                                    if (R_TB_IsOpen.Content)
                                    {
                                        //    WriteLog.GetLog().Write($"读取 {tbsb}号设备下料口门信息成功,DB偏移值:D11192.06,读取值:{R_TB_IsOpen.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //写给涂布机
                                        OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                        //if (W_agvBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                        //}
                                        //读取设备步骤
                                        OperateResult<Int16> R_tbBZ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11290");
                                        //if (R_tbBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"读取{tbsb}号设备下料口允许AGV请求进入信息成功,DB偏移值:D11290,读取值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                        //}
                                        //步骤信号写入agv
                                        OperateResult W_tbBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1290.0", R_tbBZ.Content);
                                        //if (W_tbBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备下料口允许AGV进入信息成功,DB偏移值:DB1002.1290.0,写入值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                        //}
                                        //    }
                                    }
                                }
                                else if (R_agvBZ.Content == 0)
                                {     //写给涂布机
                                    OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                    if (W_agvBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        return;
                                    }
                                    //读取设备步骤
                                    OperateResult<Int16> R_tbBZ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11290");
                                    if (R_tbBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"读取{tbsb}号设备下料口允许AGV请求进入信息成功,DB偏移值:D11290,读取值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        return;
                                    }
                                    //步骤信号写入agv
                                    OperateResult W_tbBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1690.0", R_tbBZ.Content);
                                    if (W_tbBZ.IsSuccess)
                                    {
                                        WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备下料口允许AGV进入信息成功,DB偏移值:DB1002.1690.0,写入值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    }
                                    else
                                    {
                                        WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        return;
                                    }
                                    //if (W_agvBZ.IsSuccess)
                                    //{
                                    //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    //}
                                    //else
                                    //{
                                    //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    //    return;
                                    //}
                                    OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", false);//请求涂布机关门
                                                                                                                                     //if (W_TB1_OpenDoor.IsSuccess)
                                                                                                                                     //{
                                                                                                                                     //    WriteLog.GetLog().Write($"请求{tbsb}号下料口关门,DB偏移值:D11192.05, 写入值:false, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                                                                                                                     //    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  --------------{Environment.NewLine} ", $"{tbsb}号下料口传递");
                                                                                                                                     //}
                                                                                                                                     //else
                                                                                                                                     //{
                                                                                                                                     //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                                                                                                                     //    return;
                                                                                                                                     //}
                                }
                                WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now} --------------", $"{tbsb}号下料口传递");
                                #endregion
                            }
                            else
                            {
                                WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                return;
                            }
                            catch (Exception ex) { }
                            Thread.Sleep(200);
                        }
                    }
                    else if (R_agvBZ.Content == 0)
                    {     //写给涂布机
                        OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                        if (W_agvBZ.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        }
                        OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", false);//请求涂布机关门
                        if (W_TB1_OpenDoor.IsSuccess)
                        {
                            WriteLog.GetLog().Write($"请求{tbsb}号下料口关门,DB偏移值:D11192.05, 写入值:false, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                            WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                        }
                        else
                        {
                            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                            return;
                        }
                    }
                    #endregion
                    });
                }
                catch (Exception)
                {
                    string tbsb = "涂布机正极4";
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极4号设备心跳
                                WriteLog.GetLog().Write($"{tbsb}号心跳传递开始,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                                //读取涂布机正极4号设备心跳
                                OperateResult<bool> R_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11000.00");
                                //if (R_TBR_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备心跳信息成功,DB偏移值:D11000.00,读取值:{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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1400.0", R_TBR_XT.Content);
                                //if (W_AGV_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入正极AGV调度心跳信息成功,DB偏移值:DB1002.1400.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 = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1500.0");
                                //if (R_AGV_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取正极AGV调度心跳信息成功,DB偏移值:DB1002.1500.0,读取值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //    return;
                                //}
                                ////正极AGV调度—写入—》涂布机正极1号设备心跳
                                OperateResult W_TBR_XT = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11100.00", R_AGV_XT.Content);
                                //if (W_TBR_XT.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号设备心跳信息成功,DB偏移值:D11100.00,写入值:{R_AGV_XT.Content},时间:{DateTime.Now}", $"{tbsb}心跳传递");
                                //    WriteLog.GetLog().Write($"{tbsb}号心跳传递借,时间:{DateTime.Now} -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbsb}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}心跳传递");
                                //    return;
                                //}
                                WriteLog.GetLog().Write($"{tbsb}号心跳传递结束,时间:{DateTime.Now} --------------", $"{tbsb}心跳传递");
                                #endregion
                            }
                            catch (Exception ex) { }
                            Thread.Sleep(200);
                        }
                    throw;
                    });
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极4号上料口
                                WriteLog.GetLog().Write($"{tbsb}号上料口传递开始  时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                //读取agv报警信号
                                OperateResult<bool> R_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1592.0");
                                //if (R_AGV_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName}上料口报警信息成功,DB偏移值:DB1002.1592.0,读取值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入涂布设备
                                OperateResult W_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.00", R_AGV_BJ.Content);
                                //if (W_TBR_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号报警信息成功,DB偏移值:D11192.00,写入值:{R_AGV_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取设备报警信号
                                OperateResult<bool> R_TBR_BJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.00");
                                //if (R_TBR_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备报警信息成功,DB偏移值:D11092.00,读取值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入agv
                                OperateResult W_AGV_BJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1492.0", R_TBR_BJ.Content);
                                //if (W_AGV_BJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName}报警信息成功,DB偏移值:DB1002.1492.0,写入值:{R_TBR_BJ.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取agv对接步骤流程
                                OperateResult<Int16> R_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.1590");
                                //if (R_AGV_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}上料口AGV请求进入信息成功,DB偏移值:DB1002.1590,读取值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入涂布设备
                                OperateResult W_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11190", R_AGV_DJLC.Content);
                                //if (W_TBR_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{tbsb}号设备上料口AGV请求进入信息成功,DB偏移值:D11190,写入值:{R_AGV_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////读取涂布设备对接流程
                                OperateResult<Int16> R_TBR_DJLC = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11090");
                                //if (R_TBR_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号设备上料口允许AGV请求进入信息成功,DB偏移值:D11090,读取值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                ////写入agv
                                OperateResult W_AGV_DJLC = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1490", R_TBR_DJLC.Content);
                                //if (W_AGV_DJLC.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备上料口允许AGV进入信息成功,DB偏移值:DB1002.1490,写入值:{R_TBR_DJLC.Content},时间:{DateTime.Now}", $"{tbsb}号上料口传递");
                                //    WriteLog.GetLog().Write($"{tbsb}号上料口传递结束  时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号上料口传递");
                                //    return;
                                //}
                                WriteLog.GetLog().Write($"{tbsb}号上料口传递结束  时间:{DateTime.Now}  -------------- ", $"{tbsb}号上料口传递");
                                #endregion
                            }
                            catch (Exception ex)
                            {
                            }
                            Thread.Sleep(200);
                        }
                    });
                    Task.Run(() =>
                    {
                        while (true)
                        {
                            try
                            {
                                if (WCSService.Clients == null)
                                {
                                    continue;
                                }
                                PLCClient tbplc = WCSService.Clients.Find(v => v.PLCName == tbsb);
                                if (tbplc == null)
                                {
                                    continue;
                                }
                                PLCClient agvplcZ = WCSService.Clients.Find(v => v.PLCName == "正极AGV调度");
                                if (agvplcZ == null)
                                {
                                    continue;
                                }
                                #region 涂布机正极4号下料口
                                WriteLog.GetLog().Write($"{agvplcZ.PLCName}号下料口传递开始  时间:{DateTime.Now}  -------------- ", $"{tbsb}号下料口传递");
                                //读取涂布报警
                                OperateResult<bool> R_tbBJ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11292.00");
                                //if (R_tbBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{tbsb}号下料口报警信息成功,偏移值:D11292.00, 读取值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{tbplc.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////报警信号写入agv
                                OperateResult W_tbBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1693.2", R_tbBJ.Content);
                                //if (W_tbBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ}报警信息成功,DB偏移值:DB1002.1693.2,写入值:{R_tbBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////读取agv报警
                                OperateResult<bool> R_agvBJ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002.1792.0");
                                //if (R_agvBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ}下料口AGV报警信息成功,DB偏移值:DB1002.1792.0,读取值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////报警信号写入涂布机
                                OperateResult W_agvBJ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11392.00", R_agvBJ.Content);
                                //if (W_agvBJ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"写入{agvplcZ}号下料口报警信息成功,DB偏移值:D11392.00,写入值:{R_agvBJ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                ////读取agv步骤
                                OperateResult<Int16> R_agvBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.1790.0");
                                //if (R_agvBZ.IsSuccess)
                                //{
                                //    WriteLog.GetLog().Write($"读取{agvplcZ.PLCName} {tbsb}下料口AGV请求进入信息成功,DB偏移值:DB1002.1790.0,读取值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                //}
                                //else
                                //{
                                //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                //    return;
                                //}
                                if (R_agvBZ.Content > 0)
                                {
                                    OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", true);//请求涂布机开门
                                                                                                                                    //if (W_TB1_OpenDoor.IsSuccess)
                                                                                                                                    //{
                                                                                                                                    //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口开门信息成功,DB偏移值:D11192.05,写入值:true,时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    OperateResult<bool> R_TB_IsOpen = tbplc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11092.06");//涂布机开门完成信号
                                                                                                                                    //if (R_TB_IsOpen.IsSuccess)
                                                                                                                                    //{
                                                                                                                                    //    WriteLog.GetLog().Write($"读取 {tbsb}号设备下料口开信息成功,DB偏移值:D11092.06,读取值:{R_TB_IsOpen.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    if (R_TB_IsOpen.Content)
                                    {         //写给涂布机
                                        OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                        //if (W_agvBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                        //}
                                        //读取设备步骤
                                        OperateResult<Int16> R_tbBZ = tbplc.OmronPLCClient.OmronFinsNetClient.ReadInt16("D11290");
                                        //if (R_tbBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"读取{tbsb}号设备下料口允许AGV请求进入信息成功,DB偏移值:D11290,读取值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                        //}
                                        //步骤信号写入agv
                                        OperateResult W_tbBZ = agvplcZ.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1690.0", R_tbBZ.Content);
                                        //if (W_tbBZ.IsSuccess)
                                        //{
                                        //    WriteLog.GetLog().Write($"写入{agvplcZ.PLCName},{tbsb}号设备下料口允许AGV进入信息成功,DB偏移值:DB1002.1690.0,写入值:{R_tbBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                        //    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //}
                                        //else
                                        //{
                                        //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                        //    return;
                                    }
                                    //}
                                    //        }
                                    //        else
                                    //        {
                                    //            WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    //            return;
                                    //        }
                                    //    }
                                }
                                else if (R_agvBZ.Content == 0)
                                {     //写给涂布机
                                    OperateResult W_agvBZ = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11390", R_agvBZ.Content);
                                    //if (W_agvBZ.IsSuccess)
                                    //{
                                    //    WriteLog.GetLog().Write($"写入{tbsb}号设备下料口AGV请求进入信息成功,DB偏移值:D11390,写入值:{R_agvBZ.Content},时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                    //}
                                    //else
                                    //{
                                    //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                    //}
                                    OperateResult W_TB1_OpenDoor = tbplc.OmronPLCClient.OmronFinsNetClient.Write("D11192.05", false);//请求涂布机关门
                                                                                                                                     //if (W_TB1_OpenDoor.IsSuccess)
                                                                                                                                     //{
                                                                                                                                     //    WriteLog.GetLog().Write($"请求{tbsb}号下料口关门,DB偏移值:D11192.05, 写入值:false, 时间:{DateTime.Now}", $"{tbsb}号下料口传递");
                                                                                                                                     //    WriteLog.GetLog().Write($"{tbsb}号下料口传递结束,时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                                                                                                                     //}
                                                                                                                                     //else
                                                                                                                                     //{
                                                                                                                                     //    WriteLog.GetLog().Write($"{agvplcZ.PLCName}断开连接  时间:{DateTime.Now}  -------------- {Environment.NewLine}", $"{tbsb}号下料口传递");
                                                                                                                                     //    return;
                                                                                                                                     //}
                                }
                                WriteLog.GetLog().Write($"{agvplcZ.PLCName}号下料口传递结束  时间:{DateTime.Now}  -------------- ", $"{tbsb}号下料口传递");
                                #endregion
                            }
                            catch (Exception ex) { }
                            Thread.Sleep(200);
                        }
                    });
                }
            });
            #endregion
            #endregion
            }
        }
    }
}