From 5a8af645c7e36595e218d8ffc36d4f74eab63a32 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期五, 04 七月 2025 17:27:06 +0800
Subject: [PATCH] 111

---
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs |   71 +++++++++++++++++++++++++----------
 1 files changed, 51 insertions(+), 20 deletions(-)

diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs
index 16352e4..6383b91 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs
@@ -132,6 +132,14 @@
                 string TRow = string.IsNullOrEmpty(end.CN_S_FLOOR) ? "1" : end.CN_S_FLOOR;
                 CMMLog.Info($"浠诲姟鎺ㄩ�锛氳揣浣嶇紪鐮侊細璧风偣淇℃伅:{JsonConvert.SerializeObject(start)},缁堢偣淇℃伅:{JsonConvert.SerializeObject(end)}锛涗换鍔′俊鎭細{JsonConvert.SerializeObject(mst)}");
 
+                var trayInfo = MongoDBSingleton.Instance.FindOne<trayTypeTable>(Query.EQ("locCode", mst.CN_S_START_BIT), "trayTypeTable");
+                if (trayInfo != null && trayInfo.trayType == "2")
+                {
+                    start.CN_N_AGV_LOCATION = start.CN_N_AGV_LOCATION + 400;
+                    end.CN_N_AGV_LOCATION = end.CN_N_AGV_LOCATION + 400;
+                    CMMLog.Info($"浠诲姟鎺ㄩ�锛氱敯瀛楁墭璧风偣缁堢偣 绔欑偣鏇存敼锛岃捣鐐癸細{start.CN_N_AGV_LOCATION}锛岀粓鐐癸細{end.CN_N_AGV_LOCATION}");
+                }
+
                 if (mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋�)
                 {
                     CMMLog.Info($"浠诲姟鎺ㄩ�鐗规畩浠诲姟澶勭悊-3妤煎绉板叆缂撳瓨鏋讹細浠诲姟鍙凤細{mst.CN_S_TASK_NO},鍑嗗鑾峰彇 sendBit 閰嶇疆鏁版嵁銆傚娉細姝や换鍔$被鍨嬩粎鑾峰彇璧风偣銆�);
@@ -154,6 +162,10 @@
                         if (emp != null)
                         {
                             start.CN_N_AGV_LOCATION = agvLoc.Site[emp.Quantity - 1];
+                        }
+                        if(agvLoc.trayType == 2)
+                        {
+                            end.CN_N_AGV_LOCATION = MongoDBSingleton.Instance.FindOne<STOCK_LOCATION_Two>(Query.EQ("CN_S_LOCATION_CODE", mst.CN_S_END_BIT), "STOCK_LOCATION_Two").CN_N_AGV_LOCATION;
                         }
                     }
                 }
@@ -242,6 +254,7 @@
                     if (mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌�) PLCControl.PackingLineComplete(plc.ip);
                     if (mst.CN_S_BUSS_TYPE == "鐢垫鍙栬揣") PLCControl.LiftAction(plc, mst.CN_S_TASK_NO,false);
                     if (mst.CN_S_BUSS_TYPE == "鍥涢挻鎴愬搧鍑哄簱" || mst.CN_S_BUSS_TYPE == "鍥涢挻杈呮潗鍑哄簱") PLCControl.productOutWare(mst.CN_S_END_BIT, mst.CN_S_TASK_NO, false);
+                    if (mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵�) PLCControl.CacheStackingMouth6(plc,mst.CN_S_TASK_NO);
                 }
             }
         }
@@ -288,7 +301,7 @@
                     //if (mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋�) PLCControl.SecondWeightInCache1012(plc.deviceType, mst.CN_S_TASK_NO);//浜屾湡锛氱洿鎺ユ敼鍙傛暟
                     if (mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵�) TSHelper.GoToAGV(mst.CN_S_TASK_NO, 10, 1);
                     if (mst.CN_S_BUSS_TYPE == "3妤煎彔鐩樹笅绾�) PLCControl.StackingReqUnload(plc.deviceType, mst.CN_S_TASK_NO);
-                    if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�) PLCControl.PackingLineUnload1012(plc.ip, mst.CN_S_TASK_NO);
+                    if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�) PLCControl.PackingLineUnload1012(plc.ip, mst.CN_S_TASK_NO,plc.port);
                     if (mst.CN_S_BUSS_TYPE == "鍥涢挻杈呮潗鍏ュ簱") PLCControl.productInWare(mst.CN_S_START_BIT, mst.CN_S_TASK_NO, true);
                 }
                 if (code == 4)
@@ -297,7 +310,7 @@
                     if (mst.CN_S_BUSS_TYPE.Contains("3妤煎寘瑁呭彇鏂�)) PLCControl.PickUpFullDoorComplete(plc.ip, mst.CN_S_TASK_NO);
                     if (mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋禢G") PLCControl.SecondWeightInCache4(plc.deviceType, mst.CN_S_TASK_NO);
                     if (mst.CN_S_BUSS_TYPE == "3妤煎彔鐩樹笅绾�) PLCControl.StackingComplete(plc.deviceType, mst.CN_S_TASK_NO);
-                    if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�) PLCControl.PackingLineComplete4(plc.ip, mst.CN_S_SOURCE_NO);
+                    if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�) PLCControl.PackingLineComplete4(plc.ip, mst.CN_S_SOURCE_NO,plc.port);
                     if (mst.CN_S_BUSS_TYPE != "3妤煎寘瑁呭彇鏂�) WMSHelper.ExecuteState(mst.CN_S_SOURCE_NO, 4);
                     if (mst.CN_S_BUSS_TYPE == "鍥涢挻杈呮潗鍏ュ簱") PLCControl.productInWare(mst.CN_S_START_BIT, mst.CN_S_TASK_NO, false);
                 }
@@ -394,6 +407,7 @@
                     result = true;
                 }
             }
+
             var bussTypeInfo = Settings.GetHouWeiCodeo().Where(a => a.location == mst.Ext1).FirstOrDefault();
             if (bussTypeInfo != null)
             {
@@ -451,15 +465,14 @@
             try
             {
                 string endMachLoc = "";
-                string endLoc = "";
                 //1銆佸垽鏂笂鏂欏钩鍙版槸鍚︾┖闂诧紝鑻ョ┖闂叉洿鏀圭粓鐐瑰埌涓婃枡骞冲彴
-                var plc = Settings.GetPlcInfo().Where(a => a.deviceType == "18" && a.enable == 1).ToList();
+                var plc = Settings.GetPlcInfo().Where(a => a.deviceType == "51" && a.enable == 1).ToList();
                 if (plc.Count > 0)
                 {
                     #region 鍒ゆ柇杈撻�绾挎ā寮�鍙樻洿娉ㄩ噴
-                    bool action = true;
-                    plc.ForEach(a =>
+                    foreach(var a in plc)
                     {
+                        bool action = false;
                         var modeResult = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
                         {
                             dataNum = 1,
@@ -469,11 +482,11 @@
                         });
                         if (modeResult != null && modeResult.errCode == 0)
                         {
-                            CMMLog.Debug($"OutWareTask锛氳鍙栨粴绛掓満{a.ip}閫氶亾鍙蜂负锛歿a.readAddr}鐨勫�涓猴細{modeResult.result[0]}");
+                            CMMLog.Debug($"OutWareTask锛氳鍙栨粴绛掓満ip:{a.ip},绔彛锛歿a.port}閫氶亾鍙蜂负锛歿a.readAddr}鐨勫�涓猴細{modeResult.result[0]}");
                             if (modeResult.result[0] == 2)
                             {
-                                action = false;
                                 CMMLog.Debug($"OutWareTask:杈撻�绾夸负 鍏ュ簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿a.location}");
+                                break;
                             }
                             else
                             {
@@ -483,22 +496,33 @@
                                 {
                                     if (modelInfo.Mode == "鍏ュ簱妯″紡")
                                     {
-                                        action = false;
-                                        CMMLog.Debug($"OutWareTask:涓棿琛�ModeList涓�鍏ュ簱妯″紡");
+                                        CMMLog.Debug($"OutWareTask:涓棿琛�ModeList 婊氱瓛绾挎ā寮忎笉姝g‘");
+                                    }
+                                    else
+                                    {
+                                        action = true;
+                                        int[] num = new int[1] { 1 };
+                                        var writeRes = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
+                                        {
+                                            host = a.ip,
+                                            addr = a.writeAddr,
+                                            data = num,
+                                            port = a.port
+                                        });
                                     }
                                 }
                                 else
                                 {
-                                    action = false;
                                     CMMLog.Debug("OutWareTask:涓棿琛�ModeList 涓虹┖");
                                 }
                             }
                         }
-                    });
-                    if (!action)
-                    {
-                        return false;
-                    }
+                        if (!action)
+                        {
+                            return false;
+                        }
+                    };
+                    
                     #endregion
 
                     CMMLog.Info($"OutWareTask 11111");
@@ -581,7 +605,6 @@
             //鍏ュ簱杈撻�绾夸笂鏈変袱涓緭閫佸彛
 
             //鍒ゆ柇杈撻�绾挎ā寮忓拰涓棿琛ㄦā寮忛兘鏄叆搴撴ā寮�-
             try
             {
                 string endMachLoc = "";
@@ -600,7 +623,7 @@
                     });
                     if (modeResult != null && modeResult.errCode == 0)
                     {
-                        CMMLog.Debug($"InWareTask锛氳鍙栨粴绛掓満{plc.ip}閫氶亾鍙蜂负锛歿plc.readAddr}鐨勫�涓猴細{modeResult.result[0]}");
+                        CMMLog.Debug($"InWareTask锛氳鍙栨粴绛掓満{plc.ip}閫氶亾鍙蜂负锛歿plc.readAddr}鐨勫�涓猴細{JsonConvert.SerializeObject(modeResult.result)}");
                         if (modeResult.result[0] == 1)
                         {
                             action = false;
@@ -615,10 +638,18 @@
                                 if (modelInfo.Mode == "鍑哄簱妯″紡")
                                 {
                                     action = false;
-                                    CMMLog.Debug($"InWareTask:涓棿琛�ModeList涓�鍑哄簱妯″紡");
+                                    CMMLog.Debug($"InWareTask:涓棿琛�ModeList 婊氱瓛绾挎ā寮忎笉姝g‘");
                                 }
                                 else
                                 {
+                                    int[] num = new int[1] { 2 };
+                                    var writeRes = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
+                                    {
+                                        host = plc.ip,
+                                        addr = plc.writeAddr,
+                                        data = num,
+                                        port = plc.port
+                                    });
                                     return true;
                                 }
                             }
@@ -647,7 +678,7 @@
 
         public class ModeList
         {
-            public ObjectId id { get; set; }
+            public ObjectId _id { get; set; }
             /// <summary>
             /// 妯″紡
             /// </summary>

--
Gitblit v1.9.1