| | |
| | | task = OutTaskMovelibrary(task); |
| | | if (task != null) |
| | | { |
| | | return task; |
| | | if (OutTaskStationIsOccupied(task) != null) |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | } |
| | | if (OutTaskStationIsOccupied(task) != null) |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(task) != null) |
| | | { |
| | | return task; |
| | | } |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | |
| | | |
| | | /*if (OutTaskStationIsOccupied(task) != null) |
| | | { |
| | | return task; |
| | | } |
| | | else |
| | | { |
| | | List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList(); |
| | | List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes); |
| | | |
| | | List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode); |
| | | foreach (var item in tasks) |
| | | { |
| | | if (OutTaskStationIsOccupied(task) != null) |
| | |
| | | } |
| | | } |
| | | //task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | }*/ |
| | | } |
| | | |
| | | return task; |
| | | } |
| | | |
| | |
| | | Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); |
| | | if (tasks != null) |
| | | { |
| | | return task; |
| | | return tasks; |
| | | } |
| | | else |
| | | { |
| | |
| | | if (device != null) |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | if (PLCSignal(conveyorLine, task.TargetAddress, 1)) //åå
¥è¾é线 å åæºæ¾è´§ ä¿¡å· |
| | | if (task.TargetAddress == "R02-002-027-011-01" || task.TargetAddress == "R01-002-041-011-01") //åå
¥è¾é线å»å |
| | | { |
| | | byte PLCtost = (byte)task.PLCTo; |
| | | if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", PLCtost)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å»åæåï¼å»å为ï¼{PLCtost}", $"åºæå£å»å"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å»å失败ï¼å»å为ï¼{PLCtost}", $"åºæå£å»å"); |
| | | } |
| | | } |
| | | |
| | | if (PLCSignal(conveyorLine, task.TargetAddress, (byte)1)) //åå
¥è¾é线 å åæºæ¾è´§ ä¿¡å· |
| | | { |
| | | //读åè¾é线åé¦ å åæºæ¾ä¸ä¿¡å· |
| | | DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine, task.TargetAddress, "R_StackerCraneLowered"); //è¾é线åè®®æ¾è¯»åä¿¡å· |
| | |
| | | |
| | | if (B_TAKE == 1) |
| | | { |
| | | |
| | | |
| | | |
| | | //å åæºå宿 |
| | | if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true)) |
| | | if (task.TargetAddress == "R02-002-027-011-01" || task.TargetAddress == "R01-002-041-011-01") |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·æåï¼true", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·å¤±è´¥:true", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | } |
| | | |
| | | if (task.TargetAddress == "R02-002-027-011-01" || task.TargetAddress == "R01-002-041-011-01") //åå
¥è¾é线å»å |
| | | { |
| | | byte PLCtost = (byte)task.PLCTo; |
| | | while (true) |
| | | DeviceProDTO? deviceProDTO3 = GetDeviceProDTO(conveyorLine, task.TargetAddress, "R_Destination"); |
| | | if (deviceProDTO3 != null) |
| | | { |
| | | if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", PLCtost)) |
| | | int PLCwcstost = GetLine(conveyorLine, deviceProDTO3.DeviceProDataBlock); |
| | | if (PLCwcstost == task.PLCTo) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å»åæåï¼å»å为ï¼{PLCtost}", $"åºæå£å»å"); |
| | | DeviceProDTO? deviceProDTO3 = GetDeviceProDTO(conveyorLine, task.TargetAddress, "R_Destination"); |
| | | if (deviceProDTO3 != null) |
| | | byte PLCtost2 = 0; |
| | | if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", PLCtost2)) |
| | | { |
| | | int PLCwcstost = GetLine(conveyorLine, deviceProDTO3.DeviceProDataBlock); |
| | | if (PLCwcstost == PLCtost) |
| | | { |
| | | if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", 0)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æ¸
é¤å»åæå", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æ¸
é¤å»å失败", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼å»åæ¯å¯¹ä¸ä¸è´ï¼è¾é线å»å为ï¼{PLCwcstost}ï¼wcsåå
¥å»å为ï¼{PLCtost}", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | } |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æ¸
é¤å»åæå", $"åºæå£å»å"); |
| | | |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æ¸
é¤å»å失败", $"åºæå£å»å"); |
| | | } |
| | | // æ¸
é¤è¾é线 |
| | | if (PLCSignal(conveyorLine, task.TargetAddress, (byte)0)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·æå", $"åºæå£å»å"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·å¤±è´¥", $"åºæå£å»å"); |
| | | } |
| | | //å åæºå宿 |
| | | if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true)) |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·æåï¼true", $"åºæå£å»å"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·å¤±è´¥:true", $"åºæå£å»å"); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å»å失败ï¼å»å为ï¼{PLCtost}", $"åºæå£å»å"); |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼å»åæ¯å¯¹ä¸ä¸è´ï¼è¾é线å»å为ï¼{PLCwcstost}ï¼wcsåå
¥å»å为ï¼{task.PLCTo}", $"åºæå£å»å"); |
| | | } |
| | | } |
| | | } |
| | | // æ¸
é¤è¾é线 |
| | | if (PLCSignal(conveyorLine, task.TargetAddress, 0)) |
| | | |
| | | if (task.TargetAddress != "R02-002-027-011-01" && task.TargetAddress != "R01-002-041-011-01") |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·æå", $"ï¼æ¾è´§ï¼è¯»å{task.TargetAddress}"); |
| | | // æ¸
é¤è¾é线 |
| | | if (PLCSignal(conveyorLine, task.TargetAddress, 0)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·æå", $"ï¼æ¾è´§ï¼è¯»å{task.TargetAddress}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·å¤±è´¥", $"ï¼æ¾è´§ï¼è¯»å{task.TargetAddress}"); |
| | | } |
| | | |
| | | //å åæºå宿 |
| | | if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true)) |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·æåï¼true", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·å¤±è´¥:true", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·å¤±è´¥", $"ï¼æ¾è´§ï¼è¯»å{task.TargetAddress}"); |
| | | } |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | } |
| | | DeviceProDTO? deviceProDTO6 = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryRequest_A2in"); //空æåºå
¥åº |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | if (GetStacker(commonStackerCrane, deviceProDTO6.DeviceProAddress).Status) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | |
| | | if (deviceProDTO != null) |
| | | { |
| | | if(SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; } |
| | | } |
| | | } |
| | | |
| | | if (Destinationaddress == "R01-002-043-001-01") |
| | | { |
| | | DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryPermission_A2in"); |
| | | if (deviceProDTO != null) |
| | | { |
| | | if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (Destinationaddress == "R01-002-043-001-01") |
| | | { |
| | | DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryCompleted_A2in"); |
| | | if (deviceProDTO != null) |
| | | { |
| | | if (GetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress).Status) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | |
| | | } |
| | |
| | | if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; } |
| | | } |
| | | } |
| | | |
| | | if (Destinationaddress == "R01-002-043-001-01") |
| | | { |
| | | DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryCompletion_A2in"); |
| | | if (deviceProDTO != null) |
| | | { |
| | | if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | |
| | | { |
| | | StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand(); |
| | | |
| | | stackerCraneTaskCommand.Barcode = task.PalletCode; |
| | | stackerCraneTaskCommand.Barcode = ""; /*task.PalletCode;*/ |
| | | stackerCraneTaskCommand.TaskNum = task.TaskNum; |
| | | stackerCraneTaskCommand.WorkType = 1; |
| | | stackerCraneTaskCommand.TrayType = 0; |