| | |
| | | using HslCommunication; |
| | | using Microsoft.AspNetCore.Components.Routing; |
| | | using Newtonsoft.Json; |
| | | using Quartz; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | _locationInfoRepository = locationInfoRepository; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | |
| | | CommonStackerCrane? stackerCraneOne = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC02") as CommonStackerCrane; |
| | | CommonStackerCrane? stackerCraneTwo = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC03") as CommonStackerCrane; |
| | | |
| | | try |
| | | { |
| | | CommonStackerCrane? stackerCraneOne = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC02") as CommonStackerCrane; |
| | | CommonStackerCrane? stackerCraneTwo = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC03") as CommonStackerCrane; |
| | | |
| | | //Dt_DeviceInfo deviceSC02= _deviceInfoRepository.QueryFirst(x => x.DeviceCode == "SC02"); |
| | | //Dt_DeviceInfo deviceSC03 = _deviceInfoRepository.QueryFirst(x => x.DeviceCode == "SC03"); |
| | | //if(deviceSC02.DeviceStatus=="0") |
| | | //{ |
| | | // stackerCraneOne = null; |
| | | //} |
| | | //if(deviceSC03.DeviceStatus=="0") |
| | | //{ |
| | | // stackerCraneTwo = null; |
| | | //} |
| | | stackerCraneOne.CheckStackerCraneTaskCompleted(); |
| | | |
| | | Dt_Task? task = GetTask(); |
| | | |
| | | if (task != null) |
| | | { |
| | | CommonStackerCrane? StackerCrane= GetStrackerCrane(task, stackerCraneOne, stackerCraneTwo); |
| | | if(StackerCrane != null) |
| | | { |
| | | CommonStackerCrane? StackerCrane = GetStrackerCrane(task, stackerCraneOne, stackerCraneTwo); |
| | | if (StackerCrane != null) |
| | | { |
| | | WriteDebug(nameof(DoubleStackerCraneJob), $"å°å åæºä»»å¡å·{task.TaskNum}--{StackerCrane.DeviceCode}"); |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, "å åæºæ§è¡ä»»å¡å½ä»¤å¤±è´¥ï¼"); |
| | | WriteDebug(nameof(CommonStackerCraneJob), "å åæºæ§è¡ä»»å¡å½ä»¤å¤±è´¥ï¼"); |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, "å åæºåéä»»å¡å½ä»¤å¤±è´¥ï¼"); |
| | | WriteDebug(nameof(DoubleStackerCraneJob), $"å åæºåéä»»å¡å½ä»¤å¤±è´¥ï¼{task.TaskNum}"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | WriteDebug(nameof(CommonStackerCraneJob), "æªæ¥è¯¢å°å½åå¯ä»¥æ§è¡ä¸æä»»å¡çå°å åæºï¼"); |
| | | WriteDebug(nameof(DoubleStackerCraneJob), "æªæ¥è¯¢å°å½åå¯ä»¥æ§è¡ä¸æä»»å¡çå°å åæºï¼"); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError(nameof(CommonStackerCraneJob), "å°å åæºæ§è¡ä»»å¡å¼å¸¸ï¼", ex); |
| | | WriteError(nameof(DoubleStackerCraneJob), "å°å åæºæ§è¡ä»»å¡å¼å¸¸ï¼", ex); |
| | | } |
| | | |
| | | |
| | | |
| | | try |
| | | { |
| | | if (stackerCraneOne != null)//SC02 |
| | | { |
| | | byte IsOver = stackerCraneOne.Communicator.Read<byte>("DB106.22"); |
| | | int tasknum = stackerCraneOne.Communicator.Read<int>("DB106.18"); |
| | | WriteDebug(nameof(DoubleStackerCraneJob), $"å°å åæºSC02ä»»å¡å·å åæºä»»å¡å·ï¼{tasknum}ç¶æï¼{IsOver}"); |
| | | if (IsOver == 6) |
| | | { |
| | | if (stackerCraneOne.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | | { |
| | | _taskService.StackCraneTaskCompleted(tasknum); |
| | | Console.Out.WriteLine("TaskCompleted" + tasknum); |
| | | bool issuccess = stackerCraneOne.SetValue(StackerCraneDBName.WorkType, 5); |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (stackerCraneTwo != null)//SC03 |
| | | { |
| | | //读åå åæºä»»å¡å·åä»»å¡å®æç¡®è®¤ç¶æ |
| | | byte IsOver = stackerCraneTwo.Communicator.Read<byte>("DB106.22"); |
| | | int tasknum = stackerCraneTwo.Communicator.Read<int>("DB106.18"); |
| | | WriteDebug(nameof(DoubleStackerCraneJob), $"å°å åæºSC03ä»»å¡å·å åæºä»»å¡å·ï¼{tasknum}ç¶æï¼{IsOver}"); |
| | | if (IsOver == 6) |
| | | { |
| | | if (stackerCraneTwo.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | | { |
| | | _taskService.StackCraneTaskCompleted(tasknum); |
| | | Console.Out.WriteLine("TaskCompleted" + tasknum); |
| | | bool issuccess = stackerCraneTwo.SetValue(StackerCraneDBName.WorkType, 5); |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError(nameof(DoubleStackerCraneJob), "æ§è¡å¼å¸¸ï¼", ex); |
| | | } |
| | | |
| | | |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | |
| | | { |
| | | if (stackerCraneOne != null) |
| | | { |
| | | if (!stackerCraneOne.IsEventSubscribed) |
| | | { |
| | | stackerCraneOne.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | |
| | | if (stackerCraneOne.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneOne.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | stackerCraneOne.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | if (stackerCraneOne.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | return stackerCraneOne; |
| | |
| | | |
| | | if (deviceSC02.DeviceStatus=="0"&& stackerCraneTwo != null) |
| | | { |
| | | if (!stackerCraneTwo.IsEventSubscribed) |
| | | { |
| | | stackerCraneTwo.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | //if (!stackerCraneTwo.IsEventSubscribed) |
| | | //{ |
| | | // stackerCraneTwo.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | //} |
| | | if (stackerCraneTwo.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneTwo.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | stackerCraneTwo.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | //stackerCraneTwo.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | if (stackerCraneTwo.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | //todo:ä»»å¡è¡¨ä¸çRoadWayåæ¢ä¸ºSC03 |
| | | |
| | | return stackerCraneTwo; |
| | | } |
| | | } |
| | |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if(stackerCraneTwo != null) |
| | | { |
| | | if (stackerCraneTwo.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneTwo.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | if (stackerCraneTwo.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | //todo:ä»»å¡è¡¨ä¸çRoadWayåæ¢ä¸ºSC03 |
| | | |
| | | return stackerCraneTwo; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | else if (task.Roadway=="SC03") |
| | | { |
| | | if (stackerCraneTwo != null) |
| | | { |
| | | if (!stackerCraneTwo.IsEventSubscribed) |
| | | { |
| | | stackerCraneTwo.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | { |
| | | // if (!stackerCraneTwo.IsEventSubscribed) |
| | | // { |
| | | // stackerCraneTwo.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | // } |
| | | if (stackerCraneTwo.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneOne.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | stackerCraneTwo.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | //stackerCraneTwo.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | if (stackerCraneTwo.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | return stackerCraneTwo; |
| | |
| | | Dt_DeviceInfo deviceSC03 = _deviceInfoRepository.QueryFirst(x => x.DeviceCode == "SC03"); |
| | | if (deviceSC03.DeviceStatus=="0"&&stackerCraneOne != null) |
| | | { |
| | | if (!stackerCraneOne.IsEventSubscribed) |
| | | { |
| | | stackerCraneOne.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | //if (!stackerCraneOne.IsEventSubscribed) |
| | | //{ |
| | | // stackerCraneOne.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | //} |
| | | if (stackerCraneOne.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneTwo.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | stackerCraneOne.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | //stackerCraneOne.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | if (stackerCraneOne.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | //todoï¼ä»»å¡è¡¨ä¸çRoadWayåæ¢ä¸ºSC03 |
| | | return stackerCraneOne; |
| | | } |
| | | } |
| | |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if(stackerCraneOne != null) |
| | | { |
| | | if (stackerCraneOne.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneOne.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | if (stackerCraneOne.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | return stackerCraneOne; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | return null; |