From cb385f0b515c738b503c5c75c9d7efcec323716d Mon Sep 17 00:00:00 2001 From: duyongjia <adu_555@163.com> Date: 星期五, 28 二月 2025 09:12:40 +0800 Subject: [PATCH] 数据库脚本提交 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 182 +++++++++++++++++++++++++++++++-------------- 1 files changed, 125 insertions(+), 57 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" index 427ab45..eb3ac10 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" @@ -8,7 +8,9 @@ using System.Linq; using System.Reflection.Metadata; using System.Text; +using System.Threading; using System.Threading.Tasks; +using WIDESEAWCS_Common.LocationEnum; using WIDESEAWCS_Common.ServiceLog; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Communicator; @@ -51,29 +53,31 @@ public Task Execute(IJobExecutionContext context) { - WriteDebug("澶у爢鍨涙満杩愯鏃ュ織", "寮�濮嬫椂闂�" + DateTime.Now); - WriteDebug("澶у爢鍨涙満杩愯鏃ュ織", $"澶у爢鍨涙満浠诲姟鎵ц涓�..."); - //CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); - CommonStackerCrane commonStackerCrane = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC01") as CommonStackerCrane; + + //WriteDebug("绾跨▼缁熻鏃ュ織", "绾跨▼鏁�" + ThreadPool.ThreadCount); + + //CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); + CommonStackerCrane commonStackerCrane = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC01") as CommonStackerCrane; try - { + { if (commonStackerCrane != null) { - if (!commonStackerCrane.IsEventSubscribed) - { - commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢 - } + //WriteDebug("澶у爢鍨涙満杩愯鏃ュ織", $"澶у爢鍨涙満浠诲姟鎵ц涓�..."); + //if (!commonStackerCrane.IsEventSubscribed) + //{ + // commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢 + //} if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal) { - commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆� + // commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆� if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) { Dt_Task? task = GetTask(commonStackerCrane); if (task != null) - { - WriteDebug("澶у爢鍨涙満杩愯鏃ュ織", $"澶у爢鍨涙満浠诲姟鍙穥task.TaskNum}"); + { + WriteDebug(nameof(CommonStackerCraneJob), $"澶у爢鍨涙満浠诲姟鍙穥task.TaskNum}"); StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); if (stackerCraneTaskCommand != null) { @@ -95,8 +99,12 @@ //绌鸿溅鍑哄簱鍛戒护鍙戦�佹垚鍔熷悗锛屽洖浼� status=1锛� if (task.TaskType == (int)TaskOutboundTypeEnum.OutPick) { + Dt_LocationInfo srcLocation = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); + srcLocation.LocationStatus = (int)LocationStatusEnum.Free; + _locationInfoRepository.UpdateData(srcLocation); MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 1 }; MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); + WriteDebug(nameof(CommonStackerCraneJob), $"鍫嗗灈鏈哄洖浼燬tatus:1,鐢ㄤ簬鐢熸垚鍑哄簱浠诲姟,浠诲姟鍙穥task.TaskNum}"); } } else @@ -109,6 +117,10 @@ } } } + else + { + WriteDebug(nameof(DoubleStackerCraneJob), "鏈煡璇㈠埌褰撳墠鍙互鎵ц涓婃枡浠诲姟鐨勫ぇ鍫嗗灈鏈猴紒"); + } } catch (Exception ex) { @@ -116,14 +128,56 @@ } - //鏌ヨ鎻愬崌鏈�/缁勭珛鏈轰俊鍙� - //Task.Run(delegate - //{ + try { if (commonStackerCrane != null) { + //璇诲彇澶у爢鍨涙満浠诲姟鍙峰拰浠诲姟瀹屾垚纭鐘舵�侊紙鍥犱负灏佽鐨勪簨浠剁粡甯镐笉瑙﹀彂锛屾墍浠ュ姞涓洿鎺ヨ鐨勯�昏緫锛屼互鍏嶅嚭鐜板爢鍨涙満涓�鐩存帴澶勪簬绛夊緟wcs纭锛� + byte IsOver = commonStackerCrane.Communicator.Read<byte>("DB106.22"); + int tasknum = commonStackerCrane.Communicator.Read<int>("DB106.18"); + //WriteDebug(nameof(CommonStackerCraneJob), $"澶у爢鍨涙満SC01浠诲姟鍙峰爢鍨涙満浠诲姟鍙凤細{tasknum}鐘舵�侊細{IsOver}"); + if (IsOver == 6) + { + if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) + { + _taskService.StackCraneTaskCompleted(tasknum); + Console.Out.WriteLine("TaskCompleted" + tasknum); + bool issuccess = commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); + if(issuccess) + { + WriteDebug(nameof(CommonStackerCraneJob), $"澶у爢鍨涙満SC01浠诲姟鍙峰爢鍨涙満浠诲姟鍙凤細{tasknum},鍥炲啓5鎴愬姛"); + //鏌ヨ褰撳墠浠诲姟鍙凤紝鏄笉鏄嚭搴擄紙姝e父搴撲綅-->鏆傚瓨浣嶏級 + Dt_Task tasktemp = _taskService.QueryStackerCraneTaskByRelotion(tasknum); + if (tasktemp != null&&!string.IsNullOrEmpty(tasktemp.Remark.Trim())) + { + //鏍规嵁浠诲姟鐩爣鍦板潃纭畾鍐欏叆PLC浣嶇疆 Depth + Dt_LocationInfo location = _locationInfoRepository.QueryFirst(x => x.LocationCode == tasktemp.TargetAddress); + if (commonStackerCrane != null && location != null) + { + bool issuccess2 = commonStackerCrane.Communicator.Write<short>("DB28." + location.Depth + ".0", 9); + if (issuccess2) + { + ServiceLogger.WriteDebug("TaskService", $"鍘熸枡鍑哄簱鍚庡啓鍏ユ爣璇嗘垚鍔燂紒"); + } + else + { + ServiceLogger.WriteDebug("TaskService", $"鍘熸枡鍑哄簱鍚庡啓鍏ユ爣璇嗗け璐ワ紒"); + } + } + } + } + else + { + WriteDebug(nameof(CommonStackerCraneJob), $"澶у爢鍨涙満SC01浠诲姟鍙峰爢鍨涙満浠诲姟鍙凤細{tasknum},鍥炲啓5澶辫触"); + } + } + } + + + + //鎻愬崌鏈轰氦浜� Dt_Task? task1001 = _taskService.QueryStackerCraneTaskByAGVRequest("SC01"); if (task1001 != null) { @@ -137,22 +191,24 @@ { IsAllow = commonStackerCrane.Communicator.Read<short>("DB2.8.0"); } - if (IsAllow == 1)//濡傛灉涓�1锛屽垯鍏佽AGV杩涘叆锛屽洖浼燱MS + //鏌ヨ浠诲姟鏍囪涓�1鐨勪换鍔′负绌烘墠鍏佽鍥炰紶 + WriteDebug(nameof(CommonStackerCraneJob), $"浠诲姟鍙�:{task1001.TaskNum}-鏄惁鍏佽:{IsAllow}"); + Dt_Task? taskAgvIning = _taskService.QueryStackerCraneTaskByAGVIning("SC01"); + if (IsAllow == 1&&taskAgvIning==null)//濡傛灉涓�1锛屽垯鍏佽AGV杩涘叆锛屽洖浼燱MS { + _taskService.UpdateTaskAllowIn(task1001.TaskNum, 1); + WriteDebug(nameof(CommonStackerCraneJob), $"鏇存柊鏄惁杩涘叆鍗囬檷鏈烘爣蹇楀��1锛屼换鍔″彿{task1001.TaskNum}"); + IsAllow = 0;//鏇存柊鎴愬姛锛岀疆0涓嶅厑璁� MESSendCMD sendcmd = new MESSendCMD { cmd = 2001, task_id = task1001.TaskNum, status = 6 }; MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); - if (res != null && res.code != 0) - { - WriteDebug(nameof(CommonStackerCraneJob), $"鍏佽AGV杩涘叆鎻愬崌鏈猴紝鍥炰紶WMS澶辫触锛佷换鍔″彿{task1001.TaskNum}"); - } - else - { - WriteDebug(nameof(CommonStackerCraneJob), $"鍏佽AGV杩涘叆鎻愬崌鏈猴紝鍥炰紶WMS鎴愬姛锛佷换鍔″彿{task1001.TaskNum}"); - } - } - else - { - WriteDebug(nameof(CommonStackerCraneJob), $"鏈鍙栧埌鎻愬崌鏈哄厑璁¤繘鍏ヤ俊鍙凤紝鏆備笉鍏佽AGV杩涘叆鎻愬崌鏈猴紝浠诲姟鍙穥task1001.TaskNum}"); + + //if (res != null && res.code == 0)//鍥炰紶2001鎴愬姛 + //{ + //WCS璇诲埌鍏佽淇″彿鍚庝换鍔℃爣璁�1,琛ㄧずAGV宸茶繘鍏ユ彁鍗囨満,Dt_Task 涓殑CurrentAddress鍋氫负鏍囪瀛楁 + //_taskService.UpdateTaskAllowIn(task1001.TaskNum, 1); + //WriteDebug(nameof(CommonStackerCraneJob), $"鏇存柊鏄惁杩涘叆鍗囬檷鏈烘爣蹇楀��1锛屼换鍔″彿{task1001.TaskNum}"); + //} + } } Dt_Task? task3001 = _taskService.QueryStackerCraneTaskByAGVPutFinish("SC01"); @@ -164,58 +220,66 @@ if (task3001.SourceAddress == "SC01-002-000-001")//WMS 1001绔欑偣 { //鎻愬崌鏈烘槸鍚﹀浜庡氨缁姸鎬� - int IsReady = commonStackerCrane.Communicator.Read<short>("DB2.0.0"); - WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈虹姸鎬侊細{IsReady}浠诲姟鍙凤細{task3001.TaskNum}"); + WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈烘槸鍚﹀氨缁姸鎬侊細{IsReady}浠诲姟鍙凤細{task3001.TaskNum}"); //鍐欏叆鎻愬崌淇℃伅 IsWriteOne = commonStackerCrane.Communicator.Read<short>("DB1.0.0"); if (IsWriteOne == 0 && IsReady == 1) { commonStackerCrane.Communicator.Write<short>("DB1.0.0", 1); - } - else - { - WriteDebug(nameof(CommonStackerCraneJob), $"鏈啓鍏ユ彁鍗囦俊鍙凤紝鍙兘鏄凡鍐欏叆鎴栬�呮彁鍗囨満鏈鐞嗗氨缁姸鎬�,浠诲姟鍙凤細{task3001.TaskNum}"); - } + } //璇诲彇鎻愬崌鏈轰俊鍙凤紝纭畾鏄惁鎻愬崌瀹屾垚 - IsFinish = commonStackerCrane.Communicator.Read<short>("DB2.2.0"); + } else if (task3001.SourceAddress == "SC01-002-000-002")//WMS 1002绔欑偣 { //鎻愬崌鏈烘槸鍚﹀浜庡氨缁姸鎬� - int IsReady = commonStackerCrane.Communicator.Read<short>("DB2.0.0"); - WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈虹姸鎬侊細{IsReady}浠诲姟鍙凤細{task3001.TaskNum}"); + WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈烘槸鍚﹀氨缁姸鎬侊細{IsReady}浠诲姟鍙凤細{task3001.TaskNum}"); //鍐欏叆鎻愬崌淇℃伅 IsWriteTwo = commonStackerCrane.Communicator.Read<short>("DB1.6.0"); if (IsWriteTwo == 0 && IsReady == 1) { commonStackerCrane.Communicator.Write<short>("DB1.6.0", 1); } - else - { - WriteDebug(nameof(CommonStackerCraneJob), $"鏈啓鍏ユ彁鍗囦俊鍙凤紝鍙兘鏄俊鍙峰凡鍐欏叆鎴栬�呮彁鍗囨満鏈鐞嗗氨缁姸鎬侊紝浠诲姟鍙凤細{task3001.TaskNum}"); - } + //璇诲彇鎻愬崌鏈轰俊鍙凤紝纭畾鏄惁鎻愬崌瀹屾垚 IsFinish = commonStackerCrane.Communicator.Read<short>("DB2.10.0"); + } + if (IsFinish == 1)//濡傛灉涓�1锛屽垯琛ㄧず鎻愬崌瀹屾垚锛屽洖浼燱MS { - MESSendCMD sendcmd = new MESSendCMD { cmd = 2002, task_id = task3001.TaskNum, status = 6 }; - MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); - string inparam = JsonConvert.SerializeObject(sendcmd); - WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈烘彁鍗囧畬鎴愶紝鍥炰紶WMS,鍏ュ弬锛歿inparam}"); - - if (res != null && res.code != 0) + if (task3001.WMSId == 3)// WCS浜哄伐鍏ュ簱 { - WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈烘彁鍗囧畬鎴愶紝鍥炰紶WMS澶辫触锛佷换鍔″彿{task3001.TaskNum}"); + MESTaskDTO taskDTO = new MESTaskDTO(); + taskDTO.weight = task3001.TaskNum;//鏃т换鍔″彿 + taskDTO.cmd = 101; + _taskService.ReceiveWCSTask(taskDTO); + } + else + { + MESSendCMD sendcmd = new MESSendCMD { cmd = 2002, task_id = task3001.TaskNum, status = 6 }; + MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); + string inparam = JsonConvert.SerializeObject(sendcmd); + WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈烘彁鍗囧畬鎴愶紝鍥炰紶WMS,鍏ュ弬锛歿inparam}"); + + + if (res != null && res.code == 0) + { + + _taskService.UpdateTaskAllowIn(task3001.TaskNum, 0); + WriteDebug(nameof(CommonStackerCraneJob), $"鏇存柊鏄惁杩涘叆鍗囬檷鏈烘爣蹇楀��0锛屼换鍔″彿{task3001.TaskNum}"); + + } + else + { + WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈烘彁鍗囧畬鎴愶紝鍥炰紶WMS澶辫触锛佷换鍔″彿{task3001.TaskNum}"); + } } } - else - { - WriteDebug(nameof(CommonStackerCraneJob), $"鎻愬崌鏈烘彁鍗囦腑...锛屼换鍔″彿锛歿task3001.TaskNum}"); - } + } //灏忓爢鍨涙満鍑哄簱瀹屾垚浠诲姟 @@ -293,14 +357,14 @@ } + + } } catch (Exception ex) { - WriteError(nameof(CommonStackerCraneJob), "鏌ヨ鎴栧啓鍏LC鐘舵�佸け璐ワ紒", ex); + WriteError(nameof(CommonStackerCraneJob), "鎵ц寮傚父锛�", ex); } - WriteDebug("澶у爢鍨涙満杩愯鏃ュ織", "缁撴潫鏃堕棿" + DateTime.Now); - //}); return Task.CompletedTask; } @@ -318,7 +382,11 @@ { Console.Out.WriteLine("TaskCompleted" + e.TaskNum); _taskService.StackCraneTaskCompleted(e.TaskNum); - commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); + bool issuccess=commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); + if (issuccess) + { + WriteDebug(nameof(CommonStackerCraneJob), $"浠诲姟鍙峰啓鍏ヤ换鍔″畬鎴愮‘璁ゅ��5鎴愬姛{e.TaskNum}"); + } } } } -- Gitblit v1.9.3