| | |
| | | { |
| | | Signalinteraction(commonStackerCrane); //åºåºä¿¡å·äº¤äº |
| | | Siganlinteraction2(commonStackerCrane); //å
¥åºä¿¡å·äº¤äº |
| | | if (!commonStackerCrane.IsEventSubscribed) |
| | | /*if (!commonStackerCrane.IsEventSubscribed) |
| | | { |
| | | commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | }*/ |
| | | if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted) |
| | | { |
| | | wcs_PLCto07("ä»»å¡å®æ", $"ä»»å¡å·ï¼{commonStackerCrane.CurrentTaskNum}", $"读åå°å åæºå®æä¿¡å·ï¼ä»»å¡å®æï¼å®ææ¶é´ï¼{DateTime.Now}"); |
| | | //Console.Out.WriteLine("TaskCompleted" + e.TaskNum); |
| | | WebResponseContent webResponse=_taskService.StackCraneTaskCompleted(commonStackerCrane.CurrentTaskNum); |
| | | if (webResponse.Status) |
| | | { |
| | | |
| | | bool ddjfk= commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); |
| | | wcs_PLCto07("ä»»å¡å®æ", $"ä»»å¡å·ï¼{commonStackerCrane.CurrentTaskNum}ï¼ä¿®æ¹ä»»å¡æå", $"ä¿®æ¹ä»»å¡å®æï¼å¹¶åé¦å åå®æä¿¡å·æ¯å¦æåï¼{ddjfk}"); |
| | | } |
| | | else |
| | | { |
| | | WebResponseContent webRespon = _taskService.StackCraneTashty(commonStackerCrane.CurrentTaskNum); |
| | | if (webRespon.Status) |
| | | { |
| | | |
| | | bool fk = commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); |
| | | wcs_PLCto07("ä»»å¡å®æ", $"ä»»å¡å·ï¼{commonStackerCrane.CurrentTaskNum},å岿¥è¯¢ä¿¡æ¯", $"任塿¥æ¾ä»»å¡éï¼å¹¶è¿è¡åé¦ï¼{fk}"); |
| | | } |
| | | else |
| | | { |
| | | wcs_PLCto07("ä»»å¡å®ææ
é", $"ä»»å¡å·ï¼{commonStackerCrane.CurrentTaskNum}ï¼åå²ä»»å¡æ¥è¯¢æ°æ®", $"失败åå ï¼{webResponse.Message}"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | commonStackerCrane.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | //commonStackerCrane.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | |
| | | if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | |
| | | CommonStackerCrane? commonStackerCrane = sender as CommonStackerCrane; |
| | | if (commonStackerCrane != null) |
| | | { |
| | | if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | | if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5 && e.TaskNum !=0) |
| | | { |
| | | Console.Out.WriteLine("TaskCompleted" + e.TaskNum); |
| | | wcs_PLCto07("ä»»å¡å®æ", $"ä»»å¡å·ï¼{e.TaskNum}", $"读åå°å åæºå®æä¿¡å·ï¼ä»»å¡å®æï¼å®ææ¶é´ï¼{DateTime.Now}"); |
| | | //Console.Out.WriteLine("TaskCompleted" + e.TaskNum); |
| | | _taskService.StackCraneTaskCompleted(e.TaskNum); |
| | | commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); |
| | | } |
| | |
| | | /// <returns></returns> |
| | | private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane) |
| | | { |
| | | Dt_Task task; |
| | | /*if (commonStackerCrane.LastTaskType == null) |
| | | try |
| | | { |
| | | task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | else |
| | | { |
| | | if (commonStackerCrane.LastTaskType.GetValueOrDefault().GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | if (task == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | }*/ |
| | | task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); |
| | | // |
| | | if (_taskService.CutStackerCraneTask(commonStackerCrane.DeviceCode) != null) return null; |
| | | //æ¥è¯¢å
¨é¨ä»»å¡ï¼ææ¶é´æåºè¿è¡æ¥è¯¢ |
| | | List<Dt_Task> TasksList = _taskService.CraneTaskList(commonStackerCrane.DeviceCode); |
| | | if (TasksList.Count == 0) return null; |
| | | |
| | | if (task != null && task.TaskType== (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | string[] targetCodes = task.SourceAddress.Split("-"); |
| | | if (targetCodes[4] == "02") |
| | | Dt_Task RELNew= TasksList.Where(x=>x.TaskType== (int)TaskRelocationTypeEnum.Relocation && x.TaskState == (int)TaskOutStatusEnum.ResRestNet).OrderBy(x => x.CreateDate).FirstOrDefault(); |
| | | if( RELNew != null ) |
| | | { |
| | | |
| | | Dt_Task taskst = OutTaskMovelibrary(task); |
| | | if (taskst != null) |
| | | string[] targetCodes = RELNew.TargetAddress.Split("-"); |
| | | |
| | | //å¦æä¸ºæ·±åºä½ï¼åæ¥çæ¯å¦æéè¦æ§è¡çä»»å¡ |
| | | if (targetCodes[4] == "02") |
| | | { |
| | | if(taskst.TaskType == (int)TaskRelocationTypeEnum.Relocation) |
| | | |
| | | Dt_Task taskstrot = InTaskMove(RELNew); |
| | | if (taskstrot != null) |
| | | { |
| | | return taskst; |
| | | return taskstrot; |
| | | } |
| | | else |
| | | { |
| | | if(taskst.TargetAddress== "R02-001-021-001-02" || taskst.TargetAddress == "R02-001-022-001-02") |
| | | { |
| | | return taskst; |
| | | } |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(taskst) != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | else |
| | | { |
| | | if (task.TargetAddress == "R02-001-021-001-02" || task.TargetAddress == "R02-001-022-001-02") |
| | | { |
| | | return task; |
| | | } |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(task) != null) |
| | | { |
| | | return task; |
| | | } |
| | | return RELNew; |
| | | } |
| | | |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | |
| | | |
| | | /*if (OutTaskStationIsOccupied(task) != null) |
| | | foreach (var item in TasksList) |
| | | { |
| | | 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); |
| | | foreach (var item in tasks) |
| | | if (item.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | { |
| | | if (OutTaskStationIsOccupied(task) != null) |
| | | string[] targetCodes = item.TargetAddress.Split("-"); |
| | | if (targetCodes[4] == "01") return item; //å¦ææ¯æµ
åºä½ï¼åç´æ¥è¿åè¯¥ä»»å¡ |
| | | |
| | | //å¦æä¸ºæ·±åºä½ï¼åæ¥çæ¯å¦æéè¦æ§è¡çä»»å¡ |
| | | if (targetCodes[4] == "02") |
| | | { |
| | | return task; |
| | | |
| | | Dt_Task taskst = InTaskMove(item); |
| | | if (taskst != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | } |
| | | //task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | }*/ |
| | | else if (item.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | string[] targetCodes = item.SourceAddress.Split("-");//è¿è¡è§£æè´§ä½ |
| | | if (targetCodes[4] == "02") |
| | | { |
| | | //为深åºä½ |
| | | Dt_Task taskst = OutTaskMovelibrary(item); //夿æ¯å¦éè¦è¿è¡ç§»åº |
| | | if (taskst != null) |
| | | { |
| | | if (taskst.TaskType == (int)TaskRelocationTypeEnum.Relocation) |
| | | { |
| | | return taskst; |
| | | } |
| | | else |
| | | { |
| | | if (taskst.TargetAddress == "R02-001-021-001-02" || taskst.TargetAddress == "R02-001-022-001-02") |
| | | { |
| | | return taskst; |
| | | } |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(taskst) != null) //夿åºåºç«å°æ¯å¦å¯ä¸å |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (item.TargetAddress == "R02-001-021-001-02" || item.TargetAddress == "R02-001-022-001-02") |
| | | { |
| | | return item; |
| | | } |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(item) != null) //夿åºåºç«å°æ¯å¦å¯ä¸å |
| | | { |
| | | return item; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | return task; |
| | | catch (Exception ex) |
| | | { |
| | | WriteLog.Write_Log("å åæºä»»å¡ä¸åæ
é", "æ
é", "æ
é", new { ä¿¡æ¯ = ex.Message }); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å¤æåºåºç«å°æ¯å¦è¢«å ç¨ |
| | |
| | | { |
| | | return task; |
| | | } |
| | | else |
| | | { |
| | | wcs_PLCto08("åºåºä»»å¡", $"ä»»å¡å·ï¼{task.TaskNum}ï¼è¿è¡åºåº", $"读åå°è¾é线ä¸å¯æ¾è´§ä¿¡å·ï¼ä¸å¯è¿è¡ä»»å¡ä¸å"); |
| | | } |
| | | } |
| | | } |
| | | else |
| | |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å¤ææ¯å¦éè¦è¿è¡ç§»åºMove the library |
| | | /// </summary> |
| | |
| | | /// <returns>妿æªè¢«å ç¨ï¼è¿åä¼ å
¥çä»»å¡ä¿¡æ¯ï¼å¦åï¼è¿ånull</returns> |
| | | private Dt_Task? OutTaskMovelibrary([NotNull] Dt_Task task) |
| | | { |
| | | try |
| | | string[] targetCodes = task.SourceAddress.Split("-"); |
| | | if (targetCodes[1] == "001") |
| | | { |
| | | string[] targetCodes = task.SourceAddress.Split("-"); |
| | | if (targetCodes[1] == "001") |
| | | { |
| | | targetCodes[1] = "002"; |
| | | targetCodes[1] = "002"; |
| | | |
| | | } |
| | | else if (targetCodes[1] == "004") |
| | | { |
| | | targetCodes[1] = "003"; |
| | | } |
| | | targetCodes[4] = "01"; |
| | | string SourceAddress = string.Join("-", targetCodes); //ç»è£
æµ
åºä½å°å |
| | | Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); //æ¾æµ
åºä½æ¯å¦æä»»å¡ |
| | | if (tasks != null) |
| | | { |
| | | return tasks; |
| | | } |
| | | else |
| | | { |
| | | //åwmsç³è¯·å¤ææµ
åºä½æ¯å¦æè´§ï¼æ¯å¦éè¦è¿è¡ç§»åº |
| | | Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary(task); |
| | | if (taskst != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | else if (targetCodes[1] == "004") |
| | | { |
| | | |
| | | throw; |
| | | targetCodes[1] = "003"; |
| | | } |
| | | targetCodes[4] = "01"; |
| | | string SourceAddress = string.Join("-", targetCodes); //ç»è£
æµ
åºä½å°å |
| | | Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); //æ¾æµ
åºä½æ¯å¦æä»»å¡ |
| | | if (tasks != null) |
| | | { |
| | | return tasks; |
| | | } |
| | | else |
| | | { |
| | | //åwmsç³è¯·å¤ææµ
åºä½æ¯å¦æè´§ï¼æ¯å¦éè¦è¿è¡ç§»åº |
| | | Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary(task); |
| | | if (taskst != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private Dt_Task? InTaskMove([NotNull] Dt_Task task) |
| | | { |
| | | string[] targetCodes = task.TargetAddress.Split("-"); |
| | | if (targetCodes[1] == "001") |
| | | { |
| | | targetCodes[1] = "002"; |
| | | |
| | | } |
| | | else if (targetCodes[1] == "004") |
| | | { |
| | | targetCodes[1] = "003"; |
| | | } |
| | | targetCodes[4] = "01"; |
| | | string TargetAddress = string.Join("-", targetCodes); //ç¨æ·±åºä½ç»è£
æµ
åºä½ç¼å· |
| | | Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks2(task.Roadway, TargetAddress).FirstOrDefault(); //æ¾æµ
åºä½æ¯å¦æåºåºä»»å¡æç§»åºä»»å¡ |
| | | if(tasks != null) { return tasks; } //妿æï¼åå
ä¸åè³å åæº |
| | | |
| | | //åwmsç³è¯·å¤ææµ
åºä½æ¯å¦æè´§ï¼æ¯å¦éè¦è¿è¡ç§»åº |
| | | Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary2(task); |
| | | if (taskst != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | public void Signalinteraction(CommonStackerCrane commonStackerCrane) |
| | | { |
| | |
| | | |
| | | if (Releasespermitted(commonStackerCrane, task.TargetAddress,true)) //åå
¥å åæºå
许æ¾è´§ä¿¡ |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºå
许æ¾è´§ä¿¡å·æåï¼true", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", "åå
¥å åæºå
许æ¾è´§ä¿¡å·æåï¼true"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºå
许æ¾è´§ä¿¡å·å¤±è´¥", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", "åå
¥å åæºå
许æ¾è´§ä¿¡å·å¤±è´¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (Releasespermitted(commonStackerCrane, task.TargetAddress,false)) //åå
¥å åæºä¸å
许æ¾è´§ä¿¡ |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºä¸å
许æ¾è´§ä¿¡å·æåï¼false", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", "åå
¥å åæºä¸å
许æ¾è´§ä¿¡å·æåï¼false"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºä¸å
许æ¾è´§ä¿¡å·å¤±è´¥", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", "åå
¥å åæºä¸å
许æ¾è´§ä¿¡å·å¤±è´¥"); |
| | | } |
| | | } |
| | | } |
| | |
| | | byte PLCtost = (byte)task.PLCTo; |
| | | if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", PLCtost)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å»åæåï¼å»å为ï¼{PLCtost}", $"åºæå£å»å"); |
| | | |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å»åæåï¼å»å为ï¼{PLCtost}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å»å失败ï¼å»å为ï¼{PLCtost}", $"åºæå£å»å"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å»å失败ï¼å»å为ï¼{PLCtost}"); |
| | | } |
| | | } |
| | | |
| | |
| | | byte PLCtost2 = 0; |
| | | if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", PLCtost2)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æ¸
é¤å»åæå", $"åºæå£å»å"); |
| | | |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æ¸
é¤å»åæå"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æ¸
é¤å»å失败", $"åºæå£å»å"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æ¸
é¤å»å失败"); |
| | | } |
| | | // æ¸
é¤è¾é线 |
| | | if (PLCSignal(conveyorLine, task.TargetAddress, (byte)0)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·æå", $"åºæå£å»å"); |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·æå"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·å¤±è´¥", $"åºæå£å»å"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·å¤±è´¥"); |
| | | } |
| | | //å åæºå宿 |
| | | if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true)) |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·æåï¼true", $"åºæå£å»å"); |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºæ¾ä¸ä¿¡å·æåï¼true"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·å¤±è´¥:true", $"åºæå£å»å"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºæ¾ä¸ä¿¡å·å¤±è´¥:true"); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼å»åæ¯å¯¹ä¸ä¸è´ï¼è¾é线å»å为ï¼{PLCwcstost}ï¼wcsåå
¥å»å为ï¼{task.PLCTo}", $"åºæå£å»å"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"å»åæ¯å¯¹ä¸ä¸è´ï¼è¾é线å»å为ï¼{PLCwcstost}ï¼wcsåå
¥å»å为ï¼{task.PLCTo}"); |
| | | } |
| | | } |
| | | } |
| | |
| | | // æ¸
é¤è¾é线 |
| | | if (PLCSignal(conveyorLine, task.TargetAddress, 0)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·æå", $"ï¼æ¾è´§ï¼è¯»å{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·æå"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·å¤±è´¥", $"ï¼æ¾è´§ï¼è¯»å{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线æ¸
é¤-å åæºæ¾ä¸ä¿¡å·å¤±è´¥"); |
| | | } |
| | | |
| | | //å åæºå宿 |
| | | if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true)) |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·æåï¼true", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºæ¾ä¸ä¿¡å·æåï¼true"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥å åæºæ¾ä¸ä¿¡å·å¤±è´¥:true", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºæ¾ä¸ä¿¡å·å¤±è´¥:true"); |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | // æ¸
é¤è¾é线 |
| | | if (PLCSignal(conveyorLine, task.TargetAddress, 0)) |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æªè¯»åå°è¾é线åé¦å åæºå®æåé¦ä¿¡å·ï¼é置为0", $"ï¼æ¾è´§ï¼è¯»å{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åå°è¾é线åé¦å åæºå®æåé¦ä¿¡å·ï¼é置为0"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æªè¯»åå°è¾é线åé¦å åæºå®æåé¦ä¿¡å·ï¼é置为0", $"ï¼æ¾è´§ï¼è¯»å{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åå°è¾é线åé¦å åæºå®æåé¦ä¿¡å·ï¼é置为0失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("è¾é线").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼åå
¥è¾é线0-å åæºæ¾ä¸ä¿¡å·å¤±è´¥", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线0-å åæºæ¾ä¸ä¿¡å·å¤±è´¥"); |
| | | |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.TargetAddress},ä»»å¡å·ï¼{task.TaskNum},ä¿¡æ¯ï¼æªè¯»åå°å åæºæ¾è´§å®æä¿¡å·", $"ï¼æ¾è´§ï¼åå
¥{task.TargetAddress}"); |
| | | wcs_PLCto06(task.TargetAddress + "é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åå°å åæºæ¾è´§å®æä¿¡å·"); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | if (Releasespermitted2(commonStackerCrane, task.SourceAddress,true)) //åå
¥å åæºå
许åè´§ä¿¡å· |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼åå
¥å åæºå
许åè´§ä¿¡å·æå:true", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress+"ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºå
许åè´§ä¿¡å·æå:true"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼åå
¥å åæºå
许åè´§ä¿¡å·å¤±è´¥", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºå
许åè´§ä¿¡å·æå:true"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (Releasespermitted2(commonStackerCrane, task.SourceAddress,false)) //åå
¥å åæºå
许åè´§ä¿¡å· |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼æªè¯»åå°è¾é线å
许åè´§ä¿¡å·ï¼åå
¥å åæºå
许åè´§ä¿¡å·æå:false", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åå°è¾é线å
许åè´§ä¿¡å·ï¼åå
¥å åæºå
许åè´§ä¿¡å·æå:false"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼æªè¯»åå°è¾é线å
许åè´§ä¿¡å·ï¼åå
¥å åæºå
许åè´§ä¿¡å·å¤±è´¥", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | |
| | | wcs_PLCto05(task.SourceAddress + "ï¼é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åå°è¾é线å
许åè´§ä¿¡å·ï¼åå
¥å åæºå
许åè´§ä¿¡å·å¤±è´¥"); |
| | | } |
| | | |
| | | } |
| | |
| | | { |
| | | if(PLCSignal2(conveyorLine, task.SourceAddress, "W_StackerCranePicked", 1)) //åå
¥è¾é线åè´§å®æä¿¡å· |
| | | { |
| | | wcs_PLCto05(task.SourceAddress + "ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线åè´§å®æä¿¡å·ï¼å°åï¼{conveyorLine}"); |
| | | DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine, task.SourceAddress, "R_StackerCranePicked"); //è¾é线åè®®æ¾è¯»åä¿¡å· |
| | | if (deviceProDTO != null) |
| | | { |
| | |
| | | //åå
¥ç»å åæºï¼è¾é线ç å åæºåèµ° ä¿¡å· |
| | | if(Releasespermitted3(commonStackerCrane, task.SourceAddress,true)) |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼åå
¥å åæºåèµ°ä¿¡å·æå:true", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºåèµ°ä¿¡å·æå:true"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼åå
¥å åæºåèµ°ä¿¡å·å¤±è´¥:true", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºåèµ°ä¿¡å·å¤±è´¥:true"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (Releasespermitted3(commonStackerCrane, task.SourceAddress,false)) |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼æªè¯»åè¾é线çå åæºåèµ°ä¿¡å·ï¼åå
¥å åæºåèµ°ä¿¡å·æå:false", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åè¾é线çå åæºåèµ°ä¿¡å·ï¼åå
¥å åæºåèµ°ä¿¡å·æå:false"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼æªè¯»åè¾é线çå åæºåèµ°ä¿¡å·ï¼åå
¥å åæºåèµ°ä¿¡å·å¤±è´¥:false", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åè¾é线çå åæºåèµ°ä¿¡å·ï¼åå
¥å åæºåèµ°ä¿¡å·å¤±è´¥:false"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcs_PLCto05(task.SourceAddress + "ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线åè´§å®æä¿¡å·å¤±è´¥ï¼å°åï¼{conveyorLine}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (PLCSignal2(conveyorLine, task.SourceAddress, "W_StackerCranePicked", 0)) //åå
¥è¾é线æ¸
é¤ä¿¡å· |
| | | { |
| | | wcs_PLCto05(task.SourceAddress + "ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线æ¸
é¤ä¿¡å·æåï¼å°åï¼{conveyorLine}"); |
| | | DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine, task.SourceAddress, "R_StackerCranePicked"); //è¾é线åè®®æ¾è¯»åä¿¡å· |
| | | if (deviceProDTO != null) |
| | | { |
| | |
| | | //åå
¥ç»å åæºï¼è¾é线ç å åæºåèµ° ä¿¡å· |
| | | if (Releasespermitted3(commonStackerCrane, task.SourceAddress, false)) |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼åå
¥å åæºåèµ°ä¿¡å·æå:true", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºåèµ°ä¿¡å·æå:true"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼åå
¥å åæºåèµ°ä¿¡å·å¤±è´¥:true", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥å åæºåèµ°ä¿¡å·å¤±è´¥:true"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (Releasespermitted3(commonStackerCrane, task.SourceAddress, false)) |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼æªè¯»åè¾é线çå åæºåèµ°ä¿¡å·ï¼åå
¥å åæºåèµ°ä¿¡å·æå:false", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼æåä¿¡æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åè¾é线çå åæºåèµ°ä¿¡å·ï¼åå
¥å åæºåèµ°ä¿¡å·æå:false"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("å åæºä¿¡å·").Write($"ç«å°ç¼å·ï¼{task.SourceAddress},ä¿¡æ¯ï¼æªè¯»åè¾é线çå åæºåèµ°ä¿¡å·ï¼åå
¥å åæºåèµ°ä¿¡å·å¤±è´¥:false", $"ï¼åè´§ï¼åå
¥{task.SourceAddress}"); |
| | | wcs_PLCto05(task.SourceAddress + "ï¼é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"æªè¯»åè¾é线çå åæºåèµ°ä¿¡å·ï¼åå
¥å åæºåèµ°ä¿¡å·å¤±è´¥:false"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcs_PLCto05(task.SourceAddress + "ï¼é误信æ¯", $"ä»»å¡å·ï¼{task.TaskNum}ï¼æçæ¡ç ï¼{task.PalletCode}", $"åå
¥è¾é线æ¸
é¤ä¿¡å·å¤±è´¥ï¼å°åï¼{conveyorLine}"); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | return stackerCraneTaskCommand; |
| | | } |
| | | |
| | | |
| | | public void wcs_PLCto05(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("å
¥åºäº¤äºä¿¡æ¯", SCLLinStack, Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | public void wcs_PLCto06(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("åºåºäº¤äºä¿¡æ¯", SCLLinStack, Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcs_PLCto07(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("ä»»å¡ä¿¡æ¯å®æè®°å½", SCLLinStack, Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | public void wcs_PLCto07_1(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("ä»»å¡ä¿¡æ¯å®æä¿®æ¹è®°å½", SCLLinStack, Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcs_PLCto08(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("åºåºç«å°ä¿¡æ¯", SCLLinStack, Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | } |
| | | } |