From f735e389c01eed24d6b9792b35d2f98d15f3ecbb Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期六, 14 九月 2024 08:06:45 +0800
Subject: [PATCH] Merge branch 'master' of http://47.95.120.53:8083/r/WCSNet6

---
 Admin.NET/WCS.Application/PLC/PLCService.cs |   65 +++++++++++++++++++++++++++-----
 1 files changed, 54 insertions(+), 11 deletions(-)

diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index d1253f1..aefbb9f 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -42,6 +42,9 @@
                 case PLCTypeEnum.PalletMachine:
                     PalletMachine(mod);
                     break;
+                case PLCTypeEnum.StackingRobot:
+                    PalletMachine(mod);
+                    break;
                 default:
                     break;
             }
@@ -653,7 +656,7 @@
     private static void ConveyorLine(WcsDeviceDto modDevice)
     {
         var plcConn = modDevice.PLCUtil;
-        // 鑾峰彇妤煎眰鏁�
+        // 鑾峰彇妤煎眰鏁癱eshi
         var louCeng = PLCCommon.GetRoadwayByStationNew(modDevice.StationNum);
         switch (modDevice.Value.ToString())
         {
@@ -670,6 +673,10 @@
                     // 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
                     var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
                     var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
+                    if (!res.IsSucceed)
+                    {
+                        break;
+                    }
                     var http = new HttpService();
                     string TaskNo = "", EndLocate = "";
                     strMsg = http.RequestRoadWay(palletVal, modDevice.StationNum, taskModel, louCeng, ref EndLocate, ref TaskNo);
@@ -722,9 +729,13 @@
                     // 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
                     var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
                     var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
+                    if (!res.IsSucceed)
+                    {
+                        break;
+                    }
                     string pallet = palletVal.ToString();
                     // 鑾峰彇浠诲姟淇℃伅
-                    var modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.PalletNo == pallet && (s.Status == TaskStatusEnum.Wait || s.Status == TaskStatusEnum.Doing) && s.TaskType == TaskTypeEnum.In && s.StartRoadway == modDevice.StationNum);
+                    var modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.PalletNo == pallet && (s.Status == TaskStatusEnum.Wait || s.Status == TaskStatusEnum.Doing) && s.TaskType == TaskTypeEnum.In);
                     if (modTask == null)
                     {
                         // 姝ゆ墭鐩樻病鏈夊搴旂殑杞Щ浠诲姟 led鏄剧ず
@@ -738,8 +749,9 @@
                     // 浠诲姟鍙枫�佷换鍔$被鍨嬨�佹墭鐩樺彿
                     var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
                     listResult.Add(plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, modTask.TaskNo));
-                    var modPosTaskType = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
-                    listResult.Add(plcConn.SetPlcDBValue(modPosTaskType.PosType, modDevice.DbNumber, modPosTaskType.PlcPos, modTask.TaskType.ToString()));
+                    var modPosTaskType = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
+                    var taskTypeStr = (int)modTask.TaskType;
+                    listResult.Add(plcConn.SetPlcDBValue(modPosTaskType.PosType, modDevice.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString()));
                     var modPosPalletNo = modDevice.listStation.FirstOrDefault(s => s.Text == "鎵樼洏鐮�");
                     listResult.Add(plcConn.SetPlcDBValue(modPosPalletNo.PosType, modDevice.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo));
                     // 璧峰宸ヤ綅銆佺洰鐨勫伐浣�
@@ -813,6 +825,10 @@
                     // 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
                     var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
                     var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
+                    if (!res.IsSucceed)
+                    {
+                        break;
+                    }
                     var http = new HttpService();
                     string TaskNo = "";
                     // 鍚慦MS鐢宠鍌ㄤ綅淇℃伅
@@ -865,9 +881,13 @@
                     // 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
                     var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
                     var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
-                    // 鑾峰彇宸ヤ綅鎵樼洏鐮佷俊鎭�
+                    // 鑾峰彇宸ヤ綅浠诲姟鍙蜂俊鎭�
                     var modPosTaskNo = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
                     var (taskRes, taskNoVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTaskNo.PlcPos);
+                    if (!res.IsSucceed || !taskRes.IsSucceed )
+                    {
+                        break;
+                    }
                     string pallet = palletVal.ToString();
                     string taskNo = taskNoVal.ToString();
                     // 鑾峰彇浠诲姟淇℃伅
@@ -881,7 +901,9 @@
                     var sInfo = PLCCommon.GetStokePlc(modTask.EndRoadway, louCeng);
                     if (string.IsNullOrWhiteSpace(sInfo.Ip))
                     {
-                        throw new Exception("鏍规嵁宸烽亾鑾峰彇璺烘満IP澶辫触锛岃鑱旂郴绠$悊鍛�");
+                        //闇�鍔犱笂LED鏄剧ず
+                        Log.Error(string.Format($"鏍规嵁宸烽亾鑾峰彇璺烘満IP澶辫触锛岃鑱旂郴绠$悊鍛�"));
+                        break; 
                     }
                     // 璺烘満杩炴帴
                     var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == sInfo.Ip);
@@ -902,12 +924,13 @@
 
                         var djMod = PLCTaskAction.plcDevices.First(m => m.StationNum == modTask.EndRoadway
                             && m.DeviceType == DeviceTypeEnum.Business && m.IsDelete == false);
-                        var djInfos = PLCTaskAction.plcStation.Where(m => m.IsDelete == false && m.DeviceId == djMod.Id).ToList();
+                        var djInfos = PLCTaskAction.plcPositions.Where(m => m.IsDelete == false && m.DeviceId == djMod.Id).ToList();
                         var djInfo = djInfos.First(m => m.Text == "PLC娴佺▼瀛�");
 
                         // 鑾峰彇璺烘満褰撳墠鐘舵��
                         var (djRes, djVal) = plcStackeConn.GetPlcDBValue(djMod.PosType, djMod.DbNumber, djMod.PlcPos);
-                        if (djVal != "820")
+                        
+                        if (!djRes.IsSucceed || djVal != "820")
                         {
                             // 璺烘満闈炵┖闂茬瓑寰�
                             break;
@@ -919,12 +942,13 @@
                         var modPosTask = djInfos.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
                         listResult.Add(plcStackeConn.SetPlcDBValue(modPosTask.PosType, djMod.DbNumber, modPosTask.PlcPos, modTask.TaskNo));
                         var modPosTaskType = djInfos.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
-                        listResult.Add(plcStackeConn.SetPlcDBValue(modPosTaskType.PosType, djMod.DbNumber, modPosTaskType.PlcPos, modTask.TaskType.ToString()));
+                        var taskTypeStr = (int)modTask.TaskType;
+                        listResult.Add(plcStackeConn.SetPlcDBValue(modPosTaskType.PosType, djMod.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString()));
                         var modPosPalletNo = djInfos.FirstOrDefault(s => s.Text == "鎵樼洏鍙�");
-                        listResult.Add(plcStackeConn.SetPlcDBValue(modPosPallet.PosType, djMod.DbNumber, modPosPallet.PlcPos, modTask.PalletNo));
+                        listResult.Add(plcStackeConn.SetPlcDBValue(modPosPalletNo.PosType, djMod.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo));
                         
                         //璧峰宸ヤ綅
-                        var modPosStrStationNum = djInfos.FirstOrDefault(s => s.Text == "鍙栬揣鎺�");
+                        var modPosStrStationNum = djInfos.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅");
                         listResult.Add(plcStackeConn.SetPlcDBValue(modPosStrStationNum.PosType, djMod.DbNumber, modPosStrStationNum.PlcPos, modDevice.StationNum));
 
                         //鍙栬揣鎺掋�佸垪銆佸眰
@@ -1104,6 +1128,25 @@
 
     }
 
+    /// <summary>
+    /// 鎷嗗灈鏈哄櫒浜轰笟鍔″鐞�
+    /// </summary>
+    /// <param name="modDevice"></param>
+    private static void StackingRobot(WcsDeviceDto modDevice) 
+    {
+        var plcConn = modDevice.PLCUtil;
+        switch (modDevice.Value.ToString())
+        {
+            case "0":
+                {
+                    // 鑻ユ媶鍨涘伐浣嶄负绌洪棽锛屾煡璇换鍔¤〃鏄惁鏈夋湭缁戝畾鐨勫嚭搴撲换鍔★紝鍋氱粦瀹氭搷浣�
+                }
+                break;
+            default:
+                break;
+        }
+    }
+
     private static void Test(WcsDeviceDto modDevice)
     {
         //鍐欐娴嬭瘯璇籹tring

--
Gitblit v1.8.0