| | |
| | | using Autofac.Core; |
| | | using HslCommunication; |
| | | using HslCommunication.Core; |
| | | using HslCommunication.Enthernet; |
| | | using HslCommunication.WebSocket; |
| | | using Microsoft.Extensions.Hosting; |
| | | using Microsoft.VisualBasic.FileIO; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using Quartz; |
| | | using SixLabors.ImageSharp.PixelFormats; |
| | | using System; |
| | |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Communicator; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DeviceBase; |
| | | using WIDESEAWCS_QuartzJob.StackerCrane.Enum; |
| | | using WIDESEAWCS_TaskInfoService; |
| | | using WIDESEAWCS_Tasks.OHT; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | |
| | | public static OHTReadData oHTReadData = new OHTReadData(); |
| | | private readonly ITaskService _taskService; |
| | | private readonly Idt_ErrormsginfoService _ErrormsginfoService; |
| | | private readonly IRepository<Dt_Task_hty> _taskhtyRepository; |
| | | WebSocketServer _webSocketServer; |
| | | public OHTJob(ITaskService taskService, WebSocketServer webSocketServer, Idt_ErrormsginfoService errormsginfoService) |
| | | OtherDevice devicese; |
| | | OtherDevice deviceses; |
| | | public OHTJob(ITaskService taskService, WebSocketServer webSocketServer, Idt_ErrormsginfoService errormsginfoService, IRepository<Dt_Task_hty> taskhtyRepository) |
| | | { |
| | | _taskService = taskService;//注å
¥ |
| | | _webSocketServer = webSocketServer; |
| | | _ErrormsginfoService = errormsginfoService; |
| | | _taskhtyRepository = taskhtyRepository; |
| | | } |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | |
| | | { |
| | | //天车PLC对象 |
| | | OtherDevice device = (OtherDevice)value; |
| | | OtherDevice zxj = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "鳿æ´å½¢æº"); |
| | | OtherDevice gzj = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "é³æè§æ´æº"); |
| | | devicese = zxj; |
| | | deviceses = gzj; |
| | | |
| | | |
| | | //æ´å½¢æºPLC对象 |
| | | var ZXJdevice = Storage.Devices.Find(v => v.DeviceName == "鳿æ´å½¢æº"); |
| | | //è§æ´æºPLC对象 |
| | |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 3); |
| | | } |
| | | } |
| | | //åé¤åºåº |
| | | else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.TiChuChuKu) |
| | | { |
| | | //ä¿®æ¹ç¶æ |
| | | WebResponseContent result = _taskService.UpdateTaskStatusToLine_Outgrab(nawtask); |
| | | if (result.Status) |
| | | { |
| | | //gzj.SetValue(DeviceDBName.W_GZJ_LockGZJ, true); |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 3); |
| | | } |
| | | } |
| | | //åé¤å
¥åº |
| | | else if (nawtask.TaskType == (int)TaskInboundTypeEnum.TiChuRuKu) |
| | | { |
| | | //ä¿®æ¹ç¶æ |
| | | WebResponseContent result = _taskService.UpdateTaskStatusToLine_Ingrab(nawtask); |
| | | if (result.Status) |
| | | { |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 3); |
| | | } |
| | | } |
| | | //åé¤ç´æ¥åºåº |
| | | else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.TiChuZhiJieChuKu) |
| | | { |
| | | //ä¿®æ¹ç¶æ |
| | | WebResponseContent result = _taskService.UpdateTaskStatusToLine_Outgrab(nawtask); |
| | | if (result.Status) |
| | | { |
| | | //gzj.SetValue(DeviceDBName.W_GZJ_LockGZJ, true); |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 3); |
| | | } |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | else if (oHTReadData.R_RunState == (int)RunStateEnum.PutCompleted && oHTReadData.R_TaskState == (int)TaskStateEnum.TaskComplete) |
| | |
| | | { |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 3); |
| | | } |
| | | |
| | | var nawtask = _taskService.QueryTakNnmTask(oHTReadData.R_TaskNumber); |
| | | if (nawtask == null) |
| | | { |
| | | throw new Exception(string.Format("天车åè´§å®æä»»å¡æªæ¥è¯¢å°ä»»å¡å·{0}", oHTReadData.R_TaskNumber)); |
| | | } |
| | | //åé¤åºåºä¸åé¤ç´æ¥åºåº |
| | | //if (nawtask.TaskType == (int)TaskOutboundTypeEnum.TiChuChuKu || nawtask.TaskType == (int)TaskOutboundTypeEnum.TiChuZhiJieChuKu) |
| | | //{ |
| | | // gzj.SetValue(DeviceDBName.W_GZJ_LockGZJ, false); |
| | | //} |
| | | return Task.CompletedTask; |
| | | } |
| | | else if (oHTReadData.R_RunState == (int)RunStateEnum.MoveCompleted && oHTReadData.R_TaskState == (int)TaskStateEnum.TaskComplete) |
| | |
| | | WebResponseContent result = _taskService.StackCraneTaskCompleted(oHTReadData.R_TaskNumber, oHTReadData.weight); |
| | | if (result.Status) |
| | | { |
| | | //åé¤åºåºãç´æ¥åºåºç»å®æä¿¡å· |
| | | //List<Dt_Task_hty> Task_hty = _taskhtyRepository.QueryData(); |
| | | //int shu = Task_hty.Count - 1; |
| | | //int zhi = Task_hty[shu].TaskId; |
| | | //Dt_Task_hty lishi = _taskhtyRepository.QueryFirst(x => x.TaskId == zhi); |
| | | //if (lishi.TargetAddress == "40-2-1") |
| | | //{ |
| | | // gzj.SetValue(DeviceDBName.W_GZJ_LockGZJ, false); |
| | | //} |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 3); |
| | | } |
| | | return Task.CompletedTask; |
| | |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | { |
| | | _ErrormsginfoService.UpdateErrorMsg(ex.Message, 1); |
| | | } |
| | | } |
| | |
| | | public OHTTaskCommand? ConvertToOHTTaskCommand([NotNull] Dt_Task task) |
| | | { |
| | | OHTTaskCommand oHtTaskCommand = new OHTTaskCommand(); |
| | | |
| | | |
| | | if (task.TaskState == (int)TaskInStatusEnum.InNew || task.TaskState == (int)TaskOutStatusEnum.OutNew) |
| | | { |
| | | oHtTaskCommand.W_Task_Type = 2; |
| | |
| | | oHtTaskCommand.W_Pick_Line = Convert.ToInt16(SourceCodes[0]); |
| | | oHtTaskCommand.W_Pick_Column = Convert.ToInt16(SourceCodes[1]); |
| | | oHtTaskCommand.W_Put_Line = 0; |
| | | oHtTaskCommand.W_Put_Column = 0; |
| | | oHtTaskCommand.W_Put_Column = 0; |
| | | |
| | | //åé¤åºåº(ä¸éè¦åéä¿¡å·) |
| | | //åé¤å
¥åº |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.TiChuRuKu) |
| | | { |
| | | devicese.SetValue(DeviceDBName.W_ZXJ_LockLocation, true); |
| | | } |
| | | //åé¤ç´æ¥åºåº |
| | | else if (task.TaskType == (int)TaskOutboundTypeEnum.TiChuZhiJieChuKu) |
| | | { |
| | | devicese.SetValue(DeviceDBName.W_ZXJ_LockLocation, true); |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | oHtTaskCommand.W_Pick_Column =0; |
| | | oHtTaskCommand.W_Put_Line = Convert.ToInt16(SourceCodes[0]); |
| | | oHtTaskCommand.W_Put_Column = Convert.ToInt16(SourceCodes[1]); |
| | | |
| | | //åé¤åºåº |
| | | //if (task.TaskType == (int)TaskOutboundTypeEnum.TiChuChuKu) |
| | | //{ |
| | | // deviceses.SetValue(DeviceDBName.W_GZJ_LockGZJ, true); |
| | | //} |
| | | //åé¤å
¥åº |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.TiChuRuKu) |
| | | { |
| | | |
| | | devicese.SetValue(DeviceDBName.W_ZXJ_LockLocation, false); |
| | | } |
| | | //åé¤ç´æ¥åºåº |
| | | else if (task.TaskType == (int)TaskOutboundTypeEnum.TiChuZhiJieChuKu) |
| | | { |
| | | |
| | | //deviceses.SetValue(DeviceDBName.W_GZJ_LockGZJ, true); |
| | | devicese.SetValue(DeviceDBName.W_ZXJ_LockLocation, false); |
| | | } |
| | | } |
| | | else |
| | | { |