From 4d7c377173784d6ec495b2c4178395a65f4e2a76 Mon Sep 17 00:00:00 2001
From: zhangchengsong <zhangchengsong@hnkhzn.com>
Date: 星期三, 22 四月 2026 19:55:18 +0800
Subject: [PATCH] 1
---
项目代码/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 89 ++++++++++++++++----------------------------
1 files changed, 32 insertions(+), 57 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
index c549912..f90cde9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
@@ -60,32 +60,6 @@
}
private static readonly Dictionary<string, bool> _deviceLastStatus = new Dictionary<string, bool>();
public string urlWMSdeverror = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSdeverror"];
- private static readonly Dictionary<string, string> _stackerFaultMap = new Dictionary<string, string>
- {
- { "DB107.26.0", "杞借揣鍙拌揣鐗╄秴瀹�" },{ "DB107.26.1", "杞借揣鍙拌揣鐗╄秴闀�" },{ "DB107.26.2", "杞借揣鍙拌揣鐗╄秴楂�" },
- { "DB107.26.3", "杞借揣鍙拌揣鐗╂娴嬩紶鎰熷櫒寮傚父" },{ "DB107.26.4", "璐у弶缂栫爜鍣ㄥ�奸敊璇�" },{ "DB107.26.5", "璐у弶鍔ㄤ綔瓒呮椂" },
- { "DB107.26.6", "璐у弶缂栫爜鍣ㄥ�间笌涓綅淇″彿涓嶄竴鑷�" },{ "DB107.26.7", "鏃犳晥鐨勪换鍔$被鍨�" },{ "DB107.27.0", "鏃犳晥鐨勪綔涓氬湴鍧�" },
- { "DB107.27.1", "閲嶅叆搴�" },{ "DB107.27.2", "绌哄嚭搴�" },{ "DB107.27.3", "璐х墿楂樺害涓庤揣浣嶄笉鍖归厤" },
- { "DB107.27.4", "鍙栬揣閫氶亾鍫靛" },{ "DB107.27.5", "鏀捐揣閫氶亾鍫靛" },{ "DB107.27.6", "鏀捐揣瀹屾垚鍚庤浇璐у彴浠嶇劧鏈夎揣" },
- { "DB107.27.7", "浠诲姟鏈畬鎴愯秴鏃舵姤璀�" },{ "DB107.28.0", "灏卞湴鏌滄�ュ仠瑙﹀彂" },{ "DB107.28.1", "鏈鸿浇鏌滄�ュ仠瑙﹀彂" },
- { "DB107.28.2", "杩滅▼鎬ュ仠瑙﹀彂" },{ "DB107.28.3", "瀹夊叏闂ㄨ鎵撳紑" },{ "DB107.28.4", "瀹夊叏缁х數鍣ㄦ柇寮�" },
- { "DB107.28.5", "鏉剧怀妫�娴�" },{ "DB107.28.6", "瓒呴�熶繚鎶�" },{ "DB107.28.7", "琛岃蛋鍙橀鍣ㄦ晠闅�" },
- { "DB107.29.0", "鍗囬檷鍙橀鍣ㄦ晠闅�" },{ "DB107.29.1", "璐у弶1鍙橀鍣ㄦ晠闅�" },{ "DB107.29.2", "璐у弶2鍙橀鍣ㄦ晠闅�" },
- { "DB107.29.3", "鍗囬檷琛岃蛋瀹氫綅瓒呮椂" },{ "DB107.29.4", "璐у弶1缂栫爜鍣ㄥ�间笌涓綅淇″彿涓嶄竴鑷�" },{ "DB107.29.5", "璐у弶2缂栫爜鍣ㄥ�间笌涓綅淇″彿涓嶄竴鑷�" },
- { "DB107.29.6", "琛岃蛋婵�鍏夊�奸敊璇�" },{ "DB107.29.7", "鍗囬檷婵�鍏夊�奸敊璇�" },{ "DB107.30.0", "鍓嶈繘鏋侀檺琛岀▼" },
- { "DB107.30.1", "鍚庨��鏋侀檺琛岀▼" },{ "DB107.30.2", "涓婂崌鏋侀檺琛岀▼" },{ "DB107.30.3", "涓嬮檷鏋侀檺琛岀▼" },
- { "DB107.30.4", "璐у弶1宸︽瀬闄愯绋�" },{ "DB107.30.5", "璐у弶1鍙虫瀬闄愯绋�" },{ "DB107.30.6", "璐у弶2宸︽瀬闄愯绋�" },
- { "DB107.30.7", "璐у弶2鍙虫瀬闄愯绋�" },{ "DB107.31.0", "鍓嶈繘婵�鍏夋瀬闄愪繚鎶�" },{ "DB107.31.1", "鍚庨��婵�鍏夋瀬闄愪繚鎶�" },
- { "DB107.31.2", "涓婂崌婵�鍏夋瀬闄愪繚鎶�" },{ "DB107.31.3", "涓嬮檷婵�鍏夋瀬闄愪繚鎶�" },{ "DB107.31.4", "璐у弶1宸﹁蒋鏋侀檺" },
- { "DB107.31.5", "璐у弶1鍙宠蒋鏋侀檺" },{ "DB107.31.6", "璐у弶2宸﹁蒋鏋侀檺" },{ "DB107.31.7", "璐у弶2鍙宠蒋鏋侀檺" },
- { "DB107.32.0", "涓庡湴闈㈢珯缃戠粶鏂紑" },{ "DB107.32.1", "涓庤緭閫佺嚎缃戠粶鏂紑" },{ "DB107.32.2", "涓嶹CS缃戠粶鏂紑" },
- { "DB107.32.3", "鏃犳晥鍛戒护:鍫嗗灈鏈烘湁璐�" },{ "DB107.32.4", "鏃犳晥鍛戒护:鍫嗗灈鏈烘棤璐�" },{ "DB107.32.5", "娑堥槻璇姤" },
- { "DB107.32.6", "鍓嶈繘闆疯揪鎶ヨ" },{ "DB107.32.7", "鍚庨��闆疯揪鎶ヨ" },{ "DB107.33.0", "宸﹂槻鐏棬瓒呮椂" },
- { "DB107.33.1", "鍙抽槻鐏棬瓒呮椂" },{ "DB107.33.2", "鏇跨姜缇婃娴嬫姤璀�" },{ "DB107.33.3", "杩戝弶杩愯寮傚父" },
- { "DB107.33.4", "杩滃弶杩愯寮傚父" },{ "DB107.33.5", "姘村钩杩愯寮傚父" },{ "DB107.33.6", "鍗囬檷杩愯寮傚父" },
- { "DB107.34.0", "鍗囬檷鍒硅溅寮傚父" },{ "DB107.34.1", "琛岃蛋鍒硅溅寮傚父" },{ "DB107.34.2", "杩戝弶鍒硅溅寮傚父" },
- { "DB107.34.3", "杩滃弶鍒硅溅寮傚父" },{ "DB107.34.4", "宸︿晶杩囪浇" },{ "DB107.34.5", "鍙充晶杩囪浇" }
- };
public Task Execute(IJobExecutionContext context)
@@ -95,7 +69,7 @@
CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
if (commonStackerCrane != null)
{
- WriteLog.Write_Log("鍫嗗灈鏈哄綋鍓嶇姸鎬佷俊鎭�", $"{commonStackerCrane.DeviceCode}搴撳爢鍨涙満褰撳墠鐘舵��",
+ WriteLog.Write_Log("鍫嗗灈鏈哄綋鍓嶇姸鎬佷俊鎭�", $"{commonStackerCrane.DeviceCode}搴撳爢鍨涙満褰撳墠鐘舵��",
$"鍫嗗灈鏈鸿澶囩姸鎬佸湴鍧�:銆怐B105.2.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneAutoStatusDes}銆慭n" +
$"鍫嗗灈鏈哄伐浣滄ā寮忓湴鍧�:銆怐B105.3.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneStatusDes}銆慭n" +
$"鍫嗗灈鏈轰綔涓氱姸鎬佸湴鍧�:銆怐B105.22.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneWorkStatusDes}銆慭n" +
@@ -150,7 +124,7 @@
WebResponseContent webResponse = _taskService.StackCraneTaskCompleted(commonStackerCrane.CurrentTaskNum, PalletCode);
if (webResponse.Status)
{
- WriteLog.Write_Log("鍫嗗灈鏈轰换鍔′笂鎶ュ畬鎴愪俊鎭�", "鍫嗗灈鏈轰换鍔′笂鎶ュ畬鎴愪俊鎭�", $"銆恵commonStackerCrane.DeviceCode}銆戝簱鍫嗗灈鏈轰笂鎶ヤ换鍔″彿:銆恵commonStackerCrane.CurrentTaskNum}銆戝畬鎴愪俊鍙凤紒");
+ Task.Run(() => WriteLog.Write_Log("鍫嗗灈鏈轰换鍔′笂鎶ュ畬鎴愪俊鎭�", "鍫嗗灈鏈轰换鍔′笂鎶ュ畬鎴愪俊鎭�", $"銆恵commonStackerCrane.DeviceCode}銆戝簱鍫嗗灈鏈轰笂鎶ヤ换鍔″彿:銆恵commonStackerCrane.CurrentTaskNum}銆戝畬鎴愪俊鍙凤紒"));
bool ddjfk = commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
}
@@ -196,7 +170,7 @@
/// <summary>
/// 鏁呴殰涓婃姤锛堟敼涓篴wait璋冪敤锛屼慨澶嶅紓姝UG锛�
/// </summary>
- private async Task SendDevError(CommonStackerCrane crane, string errorcode, string dealType, string errorInfo = "")
+ public void SendDevError(CommonStackerCrane crane, string errorcode, string dealType, string errorInfo = "")
{
CommandResult commandResult = new CommandResult();
try
@@ -221,8 +195,7 @@
psd = "akjfapjfpadaoif",
};
- // 鍚屾HTTP鏀逛负寮傛锛堟帹鑽愶級锛屼繚鎸佷綘鍘熸湁浠g爜涔熷彲浠�
- commandResult = await Task.Run(() => HttpHelper.Post<CommandResult>(urlWMSdeverror, deviceErrorRequest, "璁惧鏁呴殰鍥炶皟"));
+ commandResult = HttpHelper.Post<CommandResult>(urlWMSdeverror, deviceErrorRequest, "璁惧鏁呴殰鍥炶皟");
WriteLog.Write_Log("鍚屾缁欎笂娓歌澶囨晠闅滀俊鎭�", "璁惧鏁呴殰淇℃伅", $"璁惧id锛氥�恵crane.DeviceCode}銆戯紝鎴愬姛", $"璁惧鍥炶皟鐘舵�侊細銆恵dealType}銆戯紝寮傚父淇℃伅锛氥�恵errorInfo}銆慭n" +
$"璋冪敤涓婃父杩斿洖缁撴灉淇℃伅锛氥�恵commandResult?.ToJsonString() ?? "杩斿洖缁撴灉涓簄ull"}銆�");
}
@@ -258,9 +231,9 @@
return taskItem;
}
}
- else if (taskItem.TaskType == (int)TaskTypeEnum.Inbound || taskItem.TaskType == (int)TaskTypeEnum.Inventorybound)
+ else if ((InTaskStationIsOccupied(taskItem.SourceAddress, taskItem.Roadway) && taskItem.TaskType == (int)TaskTypeEnum.Inbound) || taskItem.TaskType == (int)TaskTypeEnum.Inventorybound)
{
- InTaskStationIsOccupied(taskItem.SourceAddress, taskItem.Roadway);
+
return taskItem;
}
}
@@ -284,12 +257,9 @@
{
try
{
- CommonConveyorLine? conveyorLine = null;
- lock (Storage.Devices)
- {
+ CommonConveyorLine? conveyorLine = null;
string deviceCode = Roadway == "C" ? "1004" : "1003";
conveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceCode == deviceCode) as CommonConveyorLine;
- }
if (conveyorLine == null) return false;
DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == NextAddress && x.DeviceProParamName == "StationNum");
@@ -299,44 +269,42 @@
int StationNum = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress);
int HandShake = conveyorLine.Communicator.Read<ushort>(HandShakeprodto.DeviceProAddress);
- Task.Run(() => WriteLog.Write_Log("鍑哄簱搴撳彛鐘舵�佷俊鎭�", "鍑哄簱搴撳彛鐘舵�佷俊鎭�", $"搴撳彛鏄�恵NextAddress}銆戯紝鐢宠鐘舵�佸湴鍧�锛氥�恵HandShakeprodto.DeviceProAddress}銆�,璇诲彇鐨勬暟鎹細銆恵HandShake}銆慭n搴撳彛鏄惁鏈夎揣鐘舵�佸湴鍧�锛氥�恵deviceProDTO.DeviceProAddress}銆戯紝璇诲彇鐨勬暟鎹�恵StationNum}銆�"));
-
- if (Roadway == "C") return StationNum == 0 && HandShake == 0;
- return (StationNum == 1 && HandShake == 0 && Roadway == "B") || (StationNum == 0 && HandShake == 0);
+ WriteLog.Write_Log("鍑哄簱搴撳彛鐘舵�佷俊鎭�", "鍑哄簱搴撳彛鐘舵�佷俊鎭�", $"搴撳彛鏄�恵NextAddress}銆戯紝鐢宠鐘舵�佸湴鍧�锛氥�恵HandShakeprodto.DeviceProAddress}銆�,璇诲彇鐨勬暟鎹細銆恵HandShake}銆慭n搴撳彛鏄惁鏈夎揣鐘舵�佸湴鍧�锛氥�恵deviceProDTO.DeviceProAddress}銆戯紝璇诲彇鐨勬暟鎹�恵StationNum}銆�");
+ if (Roadway == "C" || Roadway == "G") return StationNum == 0 && HandShake == 0;
+ return (StationNum == 1 && HandShake == 0 && Roadway == "B");
}
catch (Exception ex)
{
- Task.Run(() => Console.WriteLine("璇诲彇绔欏彴淇℃伅閿欒锛�" + ex.Message));
+ Console.WriteLine("璇诲彇绔欏彴淇℃伅閿欒锛�" + ex.Message);
return false;
}
}
/// <summary>
/// 鍏ュ簱浠诲姟搴撳彛鏈夎揣鏃犺揣鐘舵��
/// </summary>
- private void InTaskStationIsOccupied(string SourceAddress, string Roadway)
+ public bool InTaskStationIsOccupied(string SourceAddress, string Roadway)
{
try
{
+
CommonConveyorLine? conveyorLine = null;
- lock (Storage.Devices)
- {
string deviceCode = Roadway == "C" ? "1004" : "1003";
conveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceCode == deviceCode) as CommonConveyorLine;
- }
- if (conveyorLine == null) return;
+ if (conveyorLine == null) return false;
DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == SourceAddress && x.DeviceProParamName == "StationNum");
DeviceProDTO? HandShakeprodto = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == SourceAddress && x.DeviceProParamName == "HandShake");
- if (deviceProDTO == null || HandShakeprodto == null) return;
+ if (deviceProDTO == null || HandShakeprodto == null) return false;
int StationNum = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress);
int HandShake = conveyorLine.Communicator.Read<ushort>(HandShakeprodto.DeviceProAddress);
-
- Task.Run(() => WriteLog.Write_Log("鍏ュ簱搴撳彛鐘舵�佷俊鎭�", "鍏ュ簱搴撳彛鐘舵�佷俊鎭�", $"搴撳彛鏄�恵SourceAddress}銆戯紝鐢宠鐘舵�佸湴鍧�锛氥�恵HandShakeprodto.DeviceProAddress}銆�,璇诲彇鐨勬暟鎹細銆恵HandShake}銆慭n搴撳彛鏄惁鏈夎揣鐘舵�佸湴鍧�锛氥�恵deviceProDTO.DeviceProAddress}銆戯紝璇诲彇鐨勬暟鎹�恵StationNum}銆�"));
+ WriteLog.Write_Log("鍏ュ簱搴撳彛鐘舵�佷俊鎭�", "鍏ュ簱搴撳彛鐘舵�佷俊鎭�", $"搴撳彛鏄�恵SourceAddress}銆戯紝鐢宠鐘舵�佸湴鍧�锛氥�恵HandShakeprodto.DeviceProAddress}銆�,璇诲彇鐨勬暟鎹細銆恵HandShake}銆慭n搴撳彛鏄惁鏈夎揣鐘舵�佸湴鍧�锛氥�恵deviceProDTO.DeviceProAddress}銆戯紝璇诲彇鐨勬暟鎹�恵StationNum}銆�");
+ return StationNum == 1;
}
catch (Exception ex)
{
- Task.Run(() => Console.WriteLine("璇诲彇绔欏彴淇℃伅閿欒锛�" + ex.Message));
+ Console.WriteLine("璇诲彇绔欏彴淇℃伅閿欒锛�" + ex.Message);
+ return false;
}
}
@@ -534,17 +502,24 @@
/// </summary>
public string ReadStackerFaults(CommonStackerCrane crane)
{
-
- string activeFaults = "";
try
{
- foreach (var fault in _stackerFaultMap)
+ foreach (StackerFault fault in Enum.GetValues(typeof(StackerFault)))
{
- try { bool isFault = crane.Communicator.Read<bool>(fault.Key); if (isFault) { activeFaults = fault.Value; break; } } catch { }
+ try
+ {
+ bool isFault = crane.Communicator.Read<bool>(fault.ToPlcAddress());
+ if (isFault)
+ return fault.GetDesc();
+ }
+ catch { }
}
}
- catch (Exception ex) { WriteLog.Write_Log("DB107鏁呴殰璇诲彇寮傚父", "閿欒", ex.ToString()); }
- return activeFaults;
+ catch (Exception ex)
+ {
+ WriteLog.Write_Log("DB107鏁呴殰璇诲彇寮傚父", "閿欒", ex.ToString());
+ }
+ return string.Empty;
}
}
}
--
Gitblit v1.9.3