| | |
| | | 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) |
| | | { |
| | | WriteDebug("å°å åæºè¿è¡æ¥å¿", "å¼å§æ¶é´" + DateTime.Now); |
| | | CommonStackerCrane? stackerCraneOne = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC02") as CommonStackerCrane; |
| | | CommonStackerCrane? stackerCraneTwo = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC03") as CommonStackerCrane; |
| | | WriteDebug(nameof(DoubleStackerCraneJob), $"å°å åæºä»»å¡æ§è¡ä¸..."); |
| | | |
| | | 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) |
| | | WriteDebug("å°å åæºè¿è¡æ¥å¿", $"å°å åæºä»»å¡å·{task.TaskNum}"); |
| | | CommonStackerCrane? StackerCrane = GetStrackerCrane(task, stackerCraneOne, stackerCraneTwo); |
| | | if (StackerCrane != null) |
| | | { |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, "å åæºæ§è¡ä»»å¡å½ä»¤å¤±è´¥ï¼"); |
| | | WriteDebug(nameof(CommonStackerCraneJob), "å åæºæ§è¡ä»»å¡å½ä»¤å¤±è´¥ï¼"); |
| | | WriteDebug(nameof(DoubleStackerCraneJob), "å åæºæ§è¡ä»»å¡å½ä»¤å¤±è´¥ï¼"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | WriteDebug(nameof(CommonStackerCraneJob), "æªæ¥è¯¢å°å½åå¯ä»¥æ§è¡ä¸æä»»å¡çå°å åæºï¼"); |
| | | WriteDebug(nameof(DoubleStackerCraneJob), "æªæ¥è¯¢å°å½åå¯ä»¥æ§è¡ä¸æä»»å¡çå°å åæºï¼"); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | { |
| | | WriteError(nameof(CommonStackerCraneJob), "å°å åæºæ§è¡ä»»å¡å¼å¸¸ï¼", ex); |
| | | } |
| | | |
| | | //读åå åæºä»»å¡å·åä»»å¡å®æç¡®è®¤ç¶æ |
| | | //Task.Run(delegate |
| | | //{ |
| | | |
| | | try |
| | | { |
| | | if (stackerCraneOne != null) |
| | | { |
| | | byte IsFinish = stackerCraneOne.Communicator.Read<byte>("DB106.22"); |
| | | int tasknum = stackerCraneOne.Communicator.Read<int>("DB106.18"); |
| | | if (IsFinish == 6) |
| | | { |
| | | if (stackerCraneOne.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | | { |
| | | //ææ¶ å
å5:å®æç¡®è®¤ ä¿¡å· |
| | | _taskService.StackCraneTaskCompleted(tasknum); |
| | | stackerCraneOne.SetValue(StackerCraneDBName.WorkType, 5); |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (stackerCraneTwo != null) |
| | | { |
| | | //读åå åæºä»»å¡å·åä»»å¡å®æç¡®è®¤ç¶æ |
| | | byte IsFinish = stackerCraneTwo.Communicator.Read<byte>("DB106.22"); |
| | | int tasknum = stackerCraneTwo.Communicator.Read<int>("DB106.18"); |
| | | if (IsFinish == 6) |
| | | { |
| | | if (stackerCraneTwo.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | | { |
| | | _taskService.StackCraneTaskCompleted(tasknum); |
| | | stackerCraneTwo.SetValue(StackerCraneDBName.WorkType, 5); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError(nameof(DoubleStackerCraneJob), "æ¥è¯¢æåå
¥PLCç¶æå¤±è´¥ï¼", ex); |
| | | } |
| | | |
| | | |
| | | //}); |
| | | |
| | | WriteDebug("å°å åæºè¿è¡æ¥å¿", "ç»ææ¶é´" + DateTime.Now); |
| | | 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; |