From 8ff069bc70aaf3338052b5eb5d3f0f188c66e56b Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 16 四月 2026 14:58:53 +0800
Subject: [PATCH] 优化海康跨楼层任务,以及处理提升机异常信号问题
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs | 19 +++--
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs | 124 +++++++++++++++++++++++++++++------------
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs | 12 +++
3 files changed, 108 insertions(+), 47 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
index 4ad2f40..606617e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs"
@@ -254,10 +254,18 @@
try
{
var tasktype = (TaskTypeEnum)Enum.GetValues(typeof(TaskTypeEnum)).GetValue(task.TaskType - 1);
-
hIKROBOTTaskSubmit.initPriority = task.Grade;
+ if (task.PalletCode== "MR-Q3-600LE-D(M)")
+ {
+ hIKROBOTTaskSubmit.robotType = "19"; //娴峰悍 杞繍杞�
+ }
+ else if (task.PalletCode == "MR-Q3-600LE-D(M)(YWGP)")
+ {
+ hIKROBOTTaskSubmit.robotType = "20"; //娴峰悍 绌烘墭鐩樿溅锛屼竴妤煎埌鍏ゼ锛�6妤煎埌涓�妤�
+ }
+ hIKROBOTTaskSubmit.taskType = tasktype.ToString();
+ ExtraDto extraDto = new ExtraDto();
hIKROBOTTaskSubmit.robotTaskCode = task.WMSTaskNum;
- hIKROBOTTaskSubmit.taskType = tasktype.ToString(); ExtraDto extraDto = new ExtraDto();
if (task.TaskType != (int)TaskTypeEnum.MOVE && task.TaskType != (int)TaskTypeEnum.Q3RK && task.TaskType != (int)TaskTypeEnum.Q3CK && task.TaskType != (int)TaskTypeEnum.F01)
{
CarrierInfoDto carrierInfoDto = new CarrierInfoDto()
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
index f234fcb..12f5f2d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs"
@@ -3,6 +3,7 @@
using NetTaste;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
@@ -141,21 +142,30 @@
else
{
bool Work = false;
- if (device.IsConnected)
+ try
{
- int i = 0;
- while (!Work && i <= 3)
+ if (device.IsConnected)
{
- i++;
- Work = device.SetValue(HoistEnum.Outboundboxon, 1, task.SourceAddress);//鍑哄簱瀹屾垚
- Thread.Sleep(500);
+ int i = 0;
+ while (!Work && i <= 3)
+ {
+ i++;
+ Work = device.SetValue(HoistEnum.Outboundboxon, 1, task.SourceAddress);//鍑哄簱瀹屾垚
+ Thread.Sleep(500);
+ }
+ }
+ if (!Work)
+ {
+ task.ExceptionMessage = $"銆恵task.SourceAddress}銆戝啓鍏�3妤煎嚭搴撶鏀惧埌浣嶅け璐�";
+ task.Remark = $"{device.DeviceCode}_Outboundboxon_{1}_{task.SourceAddress}";
}
}
- if (!Work)
+ catch (Exception ex)
{
task.ExceptionMessage = $"銆恵task.SourceAddress}銆戝啓鍏�3妤煎嚭搴撶鏀惧埌浣嶅け璐�";
- task.Remark = $"{device.DeviceCode}_Outboundboxon_{1}_{task.SourceAddress}";
+ task.Remark = $"{device.DeviceCode}_Outboundboxon_{1}_{task.SourceAddress}"; throw;
}
+
}
BaseDal.UpdateData(task);
}
@@ -167,21 +177,31 @@
else
{
bool Work = false;
- if (device.IsConnected)
+ try
{
- int i = 0;
- while (!Work && i <= 3)
+ if (device.IsConnected)
{
- i++;
- Work = device.SetValue(HoistEnum.Emptyboxplacedinposition, 1, task.TargetAddress);
- Thread.Sleep(500);
+ int i = 0;
+ while (!Work && i <= 3)
+ {
+ i++;
+ Work = device.SetValue(HoistEnum.Emptyboxplacedinposition, 1, task.TargetAddress);
+ Thread.Sleep(500);
+ }
+ }
+ if (!Work)
+ {
+ task.ExceptionMessage = $"銆恵task.TargetAddress}銆戝啓鍏�4妤肩┖绠辨斁鍒颁綅澶辫触";
+ task.Remark = $"{device.DeviceCode}_Emptyboxplacedinposition_{1}_{task.TargetAddress}";
}
}
- if (!Work)
+ catch (Exception ex)
{
+
task.ExceptionMessage = $"銆恵task.TargetAddress}銆戝啓鍏�4妤肩┖绠辨斁鍒颁綅澶辫触";
task.Remark = $"{device.DeviceCode}_Emptyboxplacedinposition_{1}_{task.TargetAddress}";
}
+
}
BaseDal.UpdateData(task);
}
@@ -193,21 +213,31 @@
else
{
bool Work = false;
- if (device.IsConnected)
+ try
{
- int i = 0;
- while (!Work && i <= 3)
+ if (device.IsConnected)
{
- i++;
- Work = device.SetValue(HoistEnum.Outboundboxretrievalcompleted, 1, task.SourceAddress);
- Thread.Sleep(500);
+ int i = 0;
+ while (!Work && i <= 3)
+ {
+ i++;
+ Work = device.SetValue(HoistEnum.Outboundboxretrievalcompleted, 1, task.SourceAddress);
+ Thread.Sleep(500);
+ }
+ }
+ if (!Work)
+ {
+ task.ExceptionMessage = $"銆恵task.SourceAddress}銆戝啓鍏�4妤煎嚭搴撳彇绠卞畬鎴愬け璐�";
+ task.Remark = $"{device.DeviceCode}_Outboundboxretrievalcompleted_{1}_{task.SourceAddress}";
}
}
- if (!Work)
+ catch (Exception ex)
{
+
task.ExceptionMessage = $"銆恵task.SourceAddress}銆戝啓鍏�4妤煎嚭搴撳彇绠卞畬鎴愬け璐�";
task.Remark = $"{device.DeviceCode}_Outboundboxretrievalcompleted_{1}_{task.SourceAddress}";
}
+
}
BaseDal.UpdateData(task);
}
@@ -220,21 +250,31 @@
{
bool Wok = false;
var Address = task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? task.TargetAddress : task.SourceAddress;
- if (device.IsConnected)
+ try
{
- int i = 0;
- while (!Wok && i <= 3)
+ if (device.IsConnected)
{
- i++;
- Wok = device.SetValue(QualityInspectionCommandEnum.RequestToEnter, false, Address);
- Thread.Sleep(500);
+ int i = 0;
+ while (!Wok && i <= 3)
+ {
+ i++;
+ Wok = device.SetValue(QualityInspectionCommandEnum.RequestToEnter, false, Address);
+ Thread.Sleep(500);
+ }
+ }
+ if (!Wok)
+ {
+ task.ExceptionMessage = $"銆恵Address}銆戝叧闂姹傝繘鍏ュけ璐ワ紒";
+ task.Remark = $"{device.DeviceCode}_RequestToEnter_{false}_{Address}";
}
}
- if (!Wok)
+ catch (Exception ex)
{
+
task.ExceptionMessage = $"銆恵Address}銆戝叧闂姹傝繘鍏ュけ璐ワ紒";
task.Remark = $"{device.DeviceCode}_RequestToEnter_{false}_{Address}";
}
+
}
BaseDal.UpdateData(task);
}
@@ -254,21 +294,31 @@
else
{
bool Wok = false;
- if (device.IsConnected)
+ try
{
- int i = 0;
- while (!Wok && i <= 3)
+ if (device.IsConnected)
{
- i++;
- Wok = device.SetValue<HoistEnum, short>(HoistEnum.Codereadingtriggered, 1, "TSJR3F");
- Thread.Sleep(500);
+ int i = 0;
+ while (!Wok && i <= 3)
+ {
+ i++;
+ Wok = device.SetValue<HoistEnum, short>(HoistEnum.Codereadingtriggered, 1, "TSJR3F");
+ Thread.Sleep(500);
+ }
+ }
+ if (!Wok)
+ {
+ task.ExceptionMessage = $"銆怲SJR3F銆�3妤艰鐮佽Е鍙戝け璐ワ紒";
+ task.Remark = $"{device.DeviceCode}_Codereadingtriggered_{1}_TSJR3F";
}
}
- if (!Wok)
+ catch (Exception ex)
{
+
task.ExceptionMessage = $"銆怲SJR3F銆�3妤艰鐮佽Е鍙戝け璐ワ紒";
task.Remark = $"{device.DeviceCode}_Codereadingtriggered_{1}_TSJR3F";
}
+
}
task.TaskState = (int)TaskStatusEnum.CheckPalletCodeing;
BaseDal.UpdateData(task);
@@ -634,7 +684,7 @@
{
if (locationStatusEnum == LocationStatusEnum.Free) //濡傛灉璧风偣瀹屾垚灏辩粰璐т綅璧嬪�兼墭鐩樺彿
{
- stationManger.Remark = "";
+ stationManger.Remark ="";
stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt();
}
else
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
index bf4cffe..169dd92 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs"
@@ -63,7 +63,6 @@
// Q3CK 鏄疉A鈫扚F鐨勮法妤煎眰浠诲姟锛屽彧鑳戒娇鐢ㄤ笓鐢ㄥ皬杞�
var code = item.TaskType == (int)TaskTypeEnum.Q3CK ? "AA" : "FF";
var specialCarInAA = dataList.FirstOrDefault(d => d.mapCode == code);
-
if (specialCarInAA != null)
{
// 鏈夊湪1妤肩殑灏忚溅锛岀洿鎺ユ墽琛屼换鍔�
@@ -107,7 +106,6 @@
{
// F01浠诲姟澶勭悊锛氭牴鎹洰鏍囧湴鍧�鍒ゆ柇闇�瑕佸摢涓ゼ灞傜殑灏忚溅
var result = _agvcartInfoService.CheckTheCar("MR-Q3-600LE-D(M)");
-
if (result != null && result.Status)
{
var dataList = result.Data as List<HIKROBOTQueryData>;
@@ -194,12 +192,17 @@
var currentFloorInfo = FloorMapping.FloorMap[currentMapCode];
var targetFloorInfo = FloorMapping.FloorMap[targetMapCode];
- // 璁剧疆浠诲姟淇℃伅
- //task.SourceAddress = currentFloorInfo.PointCode; // 璧风偣锛氬皬杞﹀綋鍓嶄綅缃殑鐐逛綅
- //task.CurrentAddress = currentFloorInfo.PointCode; // 褰撳墠浣嶇疆锛氬皬杞﹀綋鍓嶄綅缃殑鐐逛綅
- //task.TargetAddress = targetFloorInfo.PointCode; // 鐩爣鐐癸細鐩爣妤煎眰鐐逛綅
- //task.NextAddress = targetFloorInfo.PointCode; // 璁板綍鐩爣妤煎眰浠g爜
+ // 璁板綍浣跨敤鐨凙GV灏忚溅鍨嬪彿鍒颁换鍔′腑
+ var carType= "";
+ if (task.TaskType==(int)TaskTypeEnum.F01)
+ {
+ carType = "MR-Q3-600LE-D(M)";
+ }
+ else// 1-6/6-1鐨勪换鍔�
+ {
+ carType = "MR-Q3-600LE-D(M)(YWGP)";
+ }
Dt_Task newTask = new Dt_Task
{
WMSTaskNum = "HK_" + task.WMSTaskNum, // 鐢熸垚鍞竴鐨刉MS浠诲姟鍙�
@@ -210,7 +213,7 @@
NextAddress = targetFloorInfo.PointCode,
TaskType = (int)TaskTypeEnum.MOVE,
Grade = task.Grade,
- PalletCode = "",
+ PalletCode = carType,
TaskState = (int)TaskStatusEnum.CallingHKtransportation,
// 澶嶅埗鍏朵粬蹇呰瀛楁
CreateDate = DateTime.Now,
--
Gitblit v1.9.3