| | |
| | | using WIDESEAWCS_Core.Helper; |
| | | using HslCommunication.WebSocket; |
| | | using WIDESEAWCS_DTO.Equipment; |
| | | using WIDESEAWCS_QuartzJob.StackerCrane; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | |
| | | commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | commonStackerCrane.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal && commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | |
| | | //è·åå½åå åæºç¶æ |
| | | if (commonStackerCrane.CurrentTaskNum>0 && (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted || commonStackerCrane.Communicator.Read<short>("DB1000.40.0") == 3)) |
| | | { |
| | | StackerCraneTaskCompletedEventArgs e = new StackerCraneTaskCompletedEventArgs(commonStackerCrane.CurrentTaskNum); |
| | | CommonStackerCrane_StackerCraneTaskCompletedEventHandler(commonStackerCrane, e); |
| | | } |
| | | else if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal && commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)//夿ä¸å |
| | | { |
| | | short stackerError = commonStackerCrane.Communicator.Read<short>("DB1000.54.0"); |
| | | if (stackerError == 0) |
| | |
| | | Thread.Sleep(1000); |
| | | } |
| | | } |
| | | } |
| | | ErrorDeviceInfo? deviceInfo = RoadwayError.Roadways.FirstOrDefault(x => x.Code == commonStackerCrane.DeviceCode); |
| | | if (deviceInfo != null) |
| | | { |
| | | RoadwayError.Roadways.Remove(deviceInfo); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ErrorDeviceInfo? deviceInfo = RoadwayError.Roadways.FirstOrDefault(x => x.Code == commonStackerCrane.DeviceCode); |
| | | if (deviceInfo == null) |
| | | { |
| | | RoadwayError.Roadways.Add(new ErrorDeviceInfo() { Code = commonStackerCrane.DeviceCode, Roadway = commonStackerCrane.DeviceCode }); |
| | | } |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e) |
| | | private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender,StackerCraneTaskCompletedEventArgs e) |
| | | { |
| | | CommonStackerCrane? commonStackerCrane = sender as CommonStackerCrane; |
| | | if (commonStackerCrane != null) |
| | |
| | | /// <returns></returns> |
| | | private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane) |
| | | { |
| | | //夿æ¯å¦ææ£æ§è¡çä»»å¡ï¼å¦ææåä¸ä¸å |
| | | Dt_Task? taskOld = _taskRepository.QueryFirst(x => x.DeviceCode == commonStackerCrane.DeviceCode && x.Roadway == commonStackerCrane.DeviceCode && x.TaskState == TaskStatusEnum.SC_Executing.ObjToInt()); |
| | | if (taskOld != null) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | Dt_Task? task; |
| | | if (commonStackerCrane.LastTaskType == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); |
| | | task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | else |
| | | { |
| | |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | if (task == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); |
| | | task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode, TaskTypeGroup.OutbondGroup); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //ä¸ä¸ä¸ªä¸ºå
¥åºåæ¥æ¯å¦åå¨åºåºä»»å¡ äº¤æ¿æ§è¡ |
| | | task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); |
| | | task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode, TaskTypeGroup.OutbondGroup); |
| | | if (task == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | |
| | | { |
| | | task.ExceptionMessage = "åºåºç«å°æ æ³ä¸å"; |
| | | _taskRepository.UpdateData(task); |
| | | WriteInfo(task.DeviceCode, $"åºåºç«å°æ æ³ä¸å"); |
| | | } |
| | | } |
| | | else |
| | |
| | | CommonConveyorLine client = (CommonConveyorLine)device; |
| | | if (client.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.InteractiveSignal, stationManger.StationCode) != 99)//åºåºç«å°æªè¢«å ç¨ |
| | | { |
| | | task.NextAddress = stationManger.StackerCraneStationCode; |
| | | _taskRepository.UpdateData(task); |
| | | //task.NextAddress = stationManger.StackerCraneStationCode; |
| | | //_taskRepository.UpdateData(task); |
| | | return task; |
| | | } |
| | | else |
| | |
| | | YLStackerCraneTaskCommand stackerCraneTaskCommand = new YLStackerCraneTaskCommand(); |
| | | |
| | | stackerCraneTaskCommand.PalletType = Convert.ToInt16(task.PalletType); |
| | | if (task.TaskLength>=1160 && task.TaskLength<1630) |
| | | { |
| | | stackerCraneTaskCommand.PalletType = 3; |
| | | } |
| | | stackerCraneTaskCommand.TaskNum = task.TaskNum; |
| | | stackerCraneTaskCommand.WorkType = 5; |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//夿æ¯å¦æ¯å
¥åºä»»å¡ |