| | |
| | | var ZXJdevice = Storage.Devices.Find(v => v.DeviceName == "鳿æ´å½¢æº"); |
| | | //è§æ´æºPLC对象 |
| | | var GZJevice = Storage.Devices.Find(v => v.DeviceName == "é³æè§æ´æº"); |
| | | if (!device.Communicator.IsConnected || !ZXJdevice.Communicator.IsConnected || !GZJevice.Communicator.IsConnected) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | //if (!device.Communicator.IsConnected || !ZXJdevice.Communicator.IsConnected || !GZJevice.Communicator.IsConnected) |
| | | //{ |
| | | // return Task.CompletedTask; |
| | | //} |
| | | try |
| | | { |
| | | #region å¤©è½¦å®æä»»å¡é»è¾ |
| | |
| | | { |
| | | throw new Exception(string.Format("天车åè´§å®æä»»å¡æªæ¥è¯¢å°ä»»å¡å·{0}", oHTReadData.R_TaskNumber)); |
| | | } |
| | | //å
¥åº |
| | | if (nawtask.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | { |
| | | //妿任å¡çç¶ææ¯å¤©è½¦å
¥åºåè´§æ§è¡ä¸ |
| | | //妿任å¡çç¶ææ¯å¦æ¯å¤©è½¦å
¥åºåè´§æ§è¡ä¸ |
| | | if (nawtask.TaskState == (int)TaskInStatusEnum.Line_InGrabExecuting) |
| | | { |
| | | //ä¿®æ¹ç¶æ |
| | | WebResponseContent result = _taskService.UpdateTaskStatusToLine_Ingrab(nawtask); |
| | | if (result.Status) |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | //åºåº |
| | | else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | //妿任å¡ç¶ææ¯å¤©è½¦åºåºåè´§æ§è¡ä¸ |
| | | //妿任å¡ç¶ææ¯å¦æ¯å¤©è½¦åºåºåè´§æ§è¡ä¸ |
| | | if (nawtask.TaskState == (int)TaskOutStatusEnum.Line_OutGrabExecuting) |
| | | { |
| | | //ä¿®æ¹ç¶æ |
| | | WebResponseContent result = _taskService.UpdateTaskStatusToLine_Outgrab(nawtask); |
| | | if (result.Status) |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | //ç´æ¥åºåº |
| | | else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.OutInventory) |
| | | { |
| | | //ä¿®æ¹ç¶æ |
| | | WebResponseContent result = _taskService.UpdateTaskStatusToLine_Outgrab(nawtask); |
| | | if (result.Status) |
| | | { |
| | |
| | | { |
| | | if (oHTReadData.R_RunState == (int)RunStateEnum.Standby) |
| | | { |
| | | Dt_Task? task = GetTask(InorOut); |
| | | if (task != null) |
| | | //æ¥ç任塿± 䏿¯å¦å卿§è¡ä¸çä»»å¡ |
| | | var tasking = _taskService.QueryTasking(); |
| | | if (tasking==null) |
| | | { |
| | | OHTTaskCommand? oHTTaskCommand = ConvertToOHTTaskCommand(task); |
| | | if (oHTTaskCommand != null) |
| | | Dt_Task? task = GetTask(InorOut); |
| | | if (task != null) |
| | | { |
| | | //ç»å¤©è½¦ä¸åä»»å¡ä¹åå°æ¤å¼å0 |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 0); |
| | | //todoï¼åå
¥ä»»å¡å½ä»¤ |
| | | device.SetValue(DeviceDBName.W_Task_Type, oHTTaskCommand.W_Task_Type); |
| | | device.SetValue(DeviceDBName.W_Pick_Line, oHTTaskCommand.W_Pick_Line); |
| | | device.SetValue(DeviceDBName.W_Pick_Column, oHTTaskCommand.W_Pick_Column); |
| | | device.SetValue(DeviceDBName.W_Put_Line, oHTTaskCommand.W_Put_Line); |
| | | device.SetValue(DeviceDBName.W_Put_Column, oHTTaskCommand.W_Put_Column); |
| | | device.SetValue(DeviceDBName.W_Catch_1, oHTTaskCommand.W_Catch_1); |
| | | device.SetValue(DeviceDBName.W_Catch_2, oHTTaskCommand.W_Catch_2); |
| | | device.SetValue(DeviceDBName.W_TaskNumber, oHTTaskCommand.W_TaskNumber); |
| | | device.SetValue(DeviceDBName.W_CheckValue, oHTTaskCommand.W_CheckValue); |
| | | //确认信å·åå
¥1ï¼ä»»å¡ä¸è¾¾å®æ |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 1); |
| | | Thread.Sleep(500); |
| | | //WCSæ£æµå°å¤©è½¦çR_TaskState=1ï¼éè¿W_ConfirmSignalç½®2表示让天车å¼å§æ§è¡ä»»å¡ |
| | | int R_TaskState = device.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState); |
| | | if (R_TaskState == 1) |
| | | OHTTaskCommand? oHTTaskCommand = ConvertToOHTTaskCommand(task); |
| | | if (oHTTaskCommand != null) |
| | | { |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 2); |
| | | //ç»å¤©è½¦ä¸åä»»å¡ä¹åå°æ¤å¼å0 |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 0); |
| | | //todoï¼åå
¥ä»»å¡å½ä»¤ |
| | | device.SetValue(DeviceDBName.W_Task_Type, oHTTaskCommand.W_Task_Type); |
| | | device.SetValue(DeviceDBName.W_Pick_Line, oHTTaskCommand.W_Pick_Line); |
| | | device.SetValue(DeviceDBName.W_Pick_Column, oHTTaskCommand.W_Pick_Column); |
| | | device.SetValue(DeviceDBName.W_Put_Line, oHTTaskCommand.W_Put_Line); |
| | | device.SetValue(DeviceDBName.W_Put_Column, oHTTaskCommand.W_Put_Column); |
| | | device.SetValue(DeviceDBName.W_Catch_1, oHTTaskCommand.W_Catch_1); |
| | | device.SetValue(DeviceDBName.W_Catch_2, oHTTaskCommand.W_Catch_2); |
| | | device.SetValue(DeviceDBName.W_TaskNumber, oHTTaskCommand.W_TaskNumber); |
| | | device.SetValue(DeviceDBName.W_CheckValue, oHTTaskCommand.W_CheckValue); |
| | | //确认信å·åå
¥1ï¼ä»»å¡ä¸è¾¾å®æ |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 1); |
| | | Thread.Sleep(500); |
| | | //WCSæ£æµå°å¤©è½¦çR_TaskState=1ï¼éè¿W_ConfirmSignalç½®2表示让天车å¼å§æ§è¡ä»»å¡ |
| | | int R_TaskState = device.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState); |
| | | if (R_TaskState == 1) |
| | | { |
| | | device.SetValue(DeviceDBName.W_ConfirmSignal, 2); |
| | | } |
| | | //ä¸åæåï¼ä¿®æ¹ä»»å¡ç¶æ |
| | | _taskService.UpdateTaskStatus(task.TaskId, oHTTaskCommand.W_Task_Type); |
| | | } |
| | | //ä¸åæåï¼ä¿®æ¹ä»»å¡ç¶æ |
| | | _taskService.UpdateTaskStatus(task.TaskNum, oHTTaskCommand.W_Task_Type); |
| | | } |
| | | } |
| | | } |