wangxinhui
2024-12-26 78b99e5348592a29ca1393a5e13db619cc4eba56
wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWork_JLM.cs
@@ -2,10 +2,12 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using WIDESEA_Common;
using WIDESEA_Common.Tools;
using WIDESEA_Core.Utilities;
using WIDESEA_Services.Services;
using WIDESEA_WCS.WCSClient;
using static FreeSql.Internal.GlobalFilter;
namespace WIDESEA_WCS.SchedulerExecute.AGV
{
@@ -17,12 +19,18 @@
        public static void AgvAndEquiWork_JLM()
        {
            PLCClient agvjrplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
            PLCClient oiplc1F = WCSService.Clients.Find(v => v.PLCName == PLCConst.PLCName1FLKHCJ);
            #region 无线io模块 104卷绕中控 开门信号传递
            int comErr = 0;//自动门掉线  "拆包间卷帘门139", "涂布正负极卷帘门142",
            double doorCode = 2.0; //自动门ID
            double doorState = 24.0;//自动门状态,1门关到位,2 门开到位,3门未到位
            double doorOpen = 26.0; //自动门控制开
            int RKErr = 450;//自动门掉线
            double RKCode = 452.0; //自动门ID
            double RKState = 474.0;//自动门状态,1门关到位,2 门开到位,3门未到位
            double RKOpen = 476.0; //自动门控制开
            try
            {
                if (agvjrplc == null)
@@ -113,6 +121,54 @@
                    doorState += 30;
                    doorOpen += 30;
                }
                //入壳卷帘门 24/12/12新增
                OperateResult<bool> R_RKOpen = agvjrplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1004." + RKOpen);
                if (!R_RKOpen.IsSuccess)
                {
                    return;
                }
                //AGV请求开门
                if (R_RKOpen.Content)
                {
                    OperateResult RKOpenJLM = oiplc1F.ModbusPLCClient.ModbusTcpNetClient.Write("s=2;12",true);
                    if (RKOpenJLM.IsSuccess)
                    {
                        OperateResult<bool> JLMOpen = oiplc1F.ModbusPLCClient.ModbusTcpNetClient.ReadBool("x=2;8612");
                        if (JLMOpen.Content)//开门到位
                        {
                            OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 2);
                        }
                        else//门未到位
                        {
                            OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 3);
                        }
                    }
                    else
                    {
                        OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKErr), true);
                    }
                }
                else
                {
                    //AGV不给开门信号的时候 断开开门信号
                    OperateResult RKOpenJLM = oiplc1F.ModbusPLCClient.ModbusTcpNetClient.Write("s=2;12", false);
                    if (RKOpenJLM.IsSuccess)
                    {
                        OperateResult<bool> JLMOpen = oiplc1F.ModbusPLCClient.ModbusTcpNetClient.ReadBool("x=2;8613");
                        if (JLMOpen.Content)//关门到位
                        {
                            OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 1);
                        }
                        else//门未到位
                        {
                            OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 3);
                        }
                    }
                    else
                    {
                        OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKErr), true);
                    }
                }
            }
            catch (Exception ex)
            {