wangxinhui
2024-11-06 8f392cc88b0768b74efca3b68785cf5aa1c38e70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using HslCommunication;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using WIDESEA_Common.Tools;
using WIDESEA_Core.Utilities;
using WIDESEA_Services.Services;
using WIDESEA_WCS.WCSClient;
 
namespace WIDESEA_WCS.SchedulerExecute.AGV
{
    public partial class AGVSchedulerExecute
    {
        /// <summary>
        /// 传递AGV与卷帘门信号
        /// </summary>
        public static void AgvAndEquiWork_JLM()
        {
            PLCClient agvjrplc = WCSService.Clients.Find(v => v.PLCName == "组装AGV调度");
 
            #region 无线io模块 104卷绕中控 开门信号传递
            int comErr = 0;//自动门掉线  "拆包间卷帘门139", "涂布正负极卷帘门142",
            double doorCode = 2.0; //自动门ID
            double doorState = 24.0;//自动门状态,1门关到位,2 门开到位,3门未到位
            double doorOpen = 26.0; //自动门控制开
            try
            {
                if (agvjrplc == null)
                {
                    return;
                }
                List<string> Door = new List<string> { "负极库前门", "正极库前门", "负极库后门", "正极库后门", "正级库223门", "组装风铃门前门", "组装风铃门后门", "组装226门", "组装227门", "组装228门", "组装229门" };
 
                foreach (var item in Door)
                {
                    OperateResult<bool> R_comErr = agvjrplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1004." + doorOpen);
                    if (!R_comErr.IsSuccess)
                    {
                        continue;
                    }
                    //AGV请求开门
                    if (R_comErr.Content)
                    {
                        Dictionary<string, string> Doorsignal = new Dictionary<string, string>();
                        Doorsignal.Add("R_comErr", R_comErr.Content.ToString());//true
                        Doorsignal.Add("DoorName", item.ToString());//item.ToString()
                        string wificont = WIFIAPIInvoke.Doorsignal(Doorsignal);
                        WebResponseContent wificontent = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
                        //if (item == "组装风铃门前门")
                        //{
                        //    Console.WriteLine(wificontent.Status);
                        //}
                        if (wificontent.Status)
                        {
                            //if (item == "组装风铃门前门")
                            //{
                            //    Console.WriteLine(Convert.ToUInt16(wificontent.Data) );
                            //}
                            if (Convert.ToBoolean(wificontent.Data) == false)//自动门掉线
                            {
                                OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true);
                            }
                            else if (Convert.ToUInt16(wificontent.Data) == 2)//开门到位
                            {
                                OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent.Data));
                            }
                            else if (Convert.ToUInt16(wificontent.Data) == 3)//门未到位
                            {
                                OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent.Data));
                            }
                        }
                    }
                    else
                    {
                        //OperateResult<UInt16> R_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.ReadUInt16("DB1004." + doorState);
                        //if (R_stationDockSteps.Content == 1)//关门到位
                        //{
                        //    comErr += 30;
                        //    doorCode += 30;
                        //    doorState += 30;
                        //    doorOpen += 30;
                        //    continue;
                        //}
                        //else
                        //{
                        // WIDESEA_Common.Tools.WriteLog.GetLog("断开开门信号").Write($"Info:{item}+{DateTime.Now}", "断开开门信号");
                        //AGV不给开门信号的时候 断开开门信号
                        Dictionary<string, string> Doorsigna1 = new Dictionary<string, string>();
                        Doorsigna1.Add("R_comErr", R_comErr.Content.ToString());
                        Doorsigna1.Add("DoorName", item.ToString());
                        string wificont = WIFIAPIInvoke.Doorsignal(Doorsigna1);
                        WebResponseContent wificontent2 = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
                        if (wificontent2.Status)
                        {
                            if (Convert.ToBoolean(wificontent2.Data) == false)//自动门掉线
                            {
                                OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true);
                            }
                            ////else if (Convert.ToUInt16(wificontent2.Data) == 1)//关门到位
                            ////{
                            ////    OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data));
                            ////}
                            else
                            {
                                //关门未到位
                                OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data));
                            }
                        }
                        //}
                    }
                    comErr += 30;
                    doorCode += 30;
                    doorState += 30;
                    doorOpen += 30;
                }
            }
            catch (Exception ex)
            {
                WriteLog.GetLog().Write("传递组装AGV与卷帘门信号异常" + ex.Message.ToString() + DateTime.Now, "传递组装AGV与卷帘门信号");
            }
            #endregion
 
           // WIDESEA_Common.Tools.WriteLog.GetLog("信号传递").Write($"Info:{DateTime.Now}", "信号传递");
 
        }
 
 
    }
}