| | |
| | | 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; |
| | |
| | | |
| | | 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("大å åæºè¿è¡æ¥å¿", "å¼å§æ¶é´" + DateTime.Now); |
| | | Console.WriteLine("å½åçº¿ç¨æ°"+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) |
| | | { |
| | |
| | | Dt_Task? task = GetTask(commonStackerCrane); |
| | | if (task != null) |
| | | { |
| | | |
| | | WriteDebug("大å åæºè¿è¡æ¥å¿", $"大å åæºä»»å¡å·{task.TaskNum}"); |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | |
| | | //空车åºåºå½ä»¤åéæååï¼åä¼ 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), $"å åæºåä¼ Status:1,ç¨äºçæåºåºä»»å¡,ä»»å¡å·{task.TaskNum}"); |
| | | } |
| | | } |
| | | else |
| | |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | WriteDebug(nameof(DoubleStackerCraneJob), "æªæ¥è¯¢å°å½åå¯ä»¥æ§è¡ä¸æä»»å¡ç大å åæºï¼"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | //æ¥è¯¢æåæº/ç»ç«æºä¿¡å· |
| | | |
| | | //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ä»»å¡å®æä¿¡å·å¼:{IsOver} ä»»å¡å·ï¼{tasknum}"); |
| | | 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ä»»å¡å·åå
¥ä»»å¡å®æç¡®è®¤å¼5æå{tasknum}"); |
| | | } |
| | | else |
| | | { |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"大å åæºSC01ä»»å¡å·åå
¥ä»»å¡å®æç¡®è®¤å¼5失败{tasknum}"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | //æåæºäº¤äº |
| | | Dt_Task? task1001 = _taskService.QueryStackerCraneTaskByAGVRequest("SC01"); |
| | | if (task1001 != null) |
| | | { |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError(nameof(CommonStackerCraneJob), "æ¥è¯¢æåå
¥PLCç¶æå¤±è´¥ï¼", ex); |
| | | } |
| | | WriteDebug("大å åæºè¿è¡æ¥å¿", "ç»ææ¶é´" + DateTime.Now); |
| | | // WriteDebug("大å åæºè¿è¡æ¥å¿", "ç»ææ¶é´" + DateTime.Now); |
| | | //}); |
| | | return Task.CompletedTask; |
| | | } |
| | |
| | | { |
| | | 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}"); |
| | | } |
| | | } |
| | | } |
| | | } |