PMScheduleMaintenance.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. using Aitex.Core.Common.DeviceData;
  2. using Aitex.Core.RT.DataCenter;
  3. using Aitex.Core.RT.Event;
  4. using Aitex.Core.RT.IOCore;
  5. using Aitex.Core.RT.Log;
  6. using Aitex.Core.RT.OperationCenter;
  7. using Aitex.Core.RT.SCCore;
  8. using Aitex.Core.Util;
  9. using MECF.Framework.Common.DataCenter;
  10. using MECF.Framework.Common.Event;
  11. using MECF.Framework.Common.OperationCenter;
  12. using System;
  13. using System.Collections;
  14. using System.Collections.Generic;
  15. using System.Diagnostics;
  16. using System.Linq;
  17. namespace FurnaceRT.Equipments.PMs
  18. {
  19. public partial class PMModule
  20. {
  21. private Dictionary<string, string> _stepThickness;
  22. private ScheduleMaintenanceData _sdCarrierUseFreq;
  23. private ScheduleMaintenanceData _sdWaferThickness;
  24. private ScheduleMaintenanceData _sdUsableWafer;
  25. private ScheduleMaintenanceData _sdBufferRackStayTime;
  26. private ScheduleMaintenanceData _fdCarrierUseFreq;
  27. private ScheduleMaintenanceData _fdWaferThickness;
  28. private ScheduleMaintenanceData _fdUsableWafer;
  29. private ScheduleMaintenanceData _fdBufferRackStayTime;
  30. private ScheduleMaintenanceData _onBoatDummyWaferUse;
  31. private ScheduleMaintenanceData _onBoatDummyWaferThick;
  32. private ScheduleMaintenanceData _boatRecipeThickness1;
  33. private ScheduleMaintenanceData _boatRecipeThickness2;
  34. private ScheduleMaintenanceData _boatRecipeThickness3;
  35. private ScheduleMaintenanceData _nonOperationTime1;
  36. private ScheduleMaintenanceData _nonOperationTime2;
  37. private ScheduleMaintenanceData _recipeExecuteFreq;
  38. private ScheduleMaintenanceData _recipeThickness;
  39. private ScheduleMaintenanceData _recipeStepExecuteFreq1;
  40. private ScheduleMaintenanceData _recipeStepExecuteFreq2;
  41. private ScheduleMaintenanceData _recipeStepExecuteFreq3;
  42. private ScheduleMaintenanceData _recipeStepExecuteTime1;
  43. private ScheduleMaintenanceData _recipeStepExecuteTime2;
  44. private ScheduleMaintenanceData _recipeStepExecuteTime3;
  45. private ScheduleMaintenanceData _recipeStepExecuteTime4;
  46. private ScheduleMaintenanceData _recipeStepExecuteTime5;
  47. private ScheduleMaintenanceData _recipeStepExecuteTime6;
  48. private ScheduleMaintenanceData _recipeStepExecuteTime7;
  49. private ScheduleMaintenanceData _recipeStepExecuteTime8;
  50. private ScheduleMaintenanceData _recipeStepThickness1;
  51. private ScheduleMaintenanceData _recipeStepThickness2;
  52. private ScheduleMaintenanceData _recipeStepThickness3;
  53. private ScheduleMaintenanceData _recipeStepThickness4;
  54. private ScheduleMaintenanceData _recipeStepThickness5;
  55. private ScheduleMaintenanceData _recipeStepThickness6;
  56. private ScheduleMaintenanceData _recipeStepThickness7;
  57. private ScheduleMaintenanceData _recipeStepThickness8;
  58. private void InitScheduleMaintenance()
  59. {
  60. _sdCarrierUseFreq = new ScheduleMaintenanceData("SDCarrierUseFreq", "SDCarrierUseFreq", "Times", 0, 0, "None", "CarrierWafer.SieDummy", "Carrier Kind", "Side Dummy");
  61. _sdWaferThickness = new ScheduleMaintenanceData("SDWaferThickness", "SDWaferThickness", "Å", 0, 0, "None", "CarrierWafer.SieDummy", "Carrier Kind", "Side Dummy");
  62. _sdUsableWafer = new ScheduleMaintenanceData("SDUsableDummyWafer", "SDWaferRemain", "Sheets", 0, 0, "None", "CarrierWafer.SieDummy", "Carrier Kind", "Side Dummy");
  63. _sdBufferRackStayTime = new ScheduleMaintenanceData("SDBufferRackStayTime", "SDCarrierStay", "h:m", 0, 0, "None", "CarrierWafer.SieDummy", "Carrier Kind", "Side Dummy");
  64. _fdCarrierUseFreq = new ScheduleMaintenanceData("FDCarrierUseFreq", "FDCarrierUseFreq", "Times", 0, 0, "None", "CarrierWafer.FillDummy", "Carrier Kind", "Fill Dummy");
  65. _fdWaferThickness = new ScheduleMaintenanceData("FDWaferThickness", "FDWaferThickness", "Å", 0, 0, "None", "CarrierWafer.FillDummy", "Carrier Kind", "Fill Dummy");
  66. _fdUsableWafer = new ScheduleMaintenanceData("FDUsableDummyWafer", "FDWaferRemain", "Sheets", 0, 0, "None", "CarrierWafer.FillDummy", "Carrier Kind", "Fill Dummy");
  67. _fdBufferRackStayTime = new ScheduleMaintenanceData("FDBufferRackStayTime", "FDCarrierStay", "h:m", 0, 0, "None", "CarrierWafer.FillDummy", "Carrier Kind", "Fill Dummy");
  68. _onBoatDummyWaferUse = new ScheduleMaintenanceData("OnBoatDummyWaferUse", "OnBoatDummyWaferUse", "Times", 0, 0, "None", "Boat", "", "");
  69. _onBoatDummyWaferThick = new ScheduleMaintenanceData("OnBoatDummyWaferThick", "OnBoatDummyWaferThick", "Å", 0, 0, "None", "Boat", "", "");
  70. _boatRecipeThickness1 = new ScheduleMaintenanceData("BoatRecipeThickness1", "BoatRecipeThickness1", "Å", 0, 0, "None", "Boat", "", "");
  71. _boatRecipeThickness2 = new ScheduleMaintenanceData("BoatRecipeThickness2", "BoatRecipeThickness2", "Å", 0, 0, "None", "Boat", "", "");
  72. _boatRecipeThickness3 = new ScheduleMaintenanceData("BoatRecipeThickness3", "BoatRecipeThickness3", "Å", 0, 0, "None", "Boat", "", "");
  73. _nonOperationTime1 = new ScheduleMaintenanceData("NonOperationTime1", "NonOperationTime1", "h:m", 0, 0, "None", "Conditioning", "", "");
  74. _nonOperationTime2 = new ScheduleMaintenanceData("NonOperationTime2", "NonOperationTime2", "h:m", 0, 0, "None", "Conditioning", "", "");
  75. _recipeExecuteFreq = new ScheduleMaintenanceData("RecipeExecuteFreq", "Recipe Run Freq", "Times", 0, 0, "None", "Reactor.Recipe", "", "");
  76. _recipeThickness = new ScheduleMaintenanceData("RecipeThickness", "Recipe Thickness", "Å", 0, 0, "None", "Reactor.Recipe", "", "");
  77. _recipeStepExecuteFreq1 = new ScheduleMaintenanceData("RecipeStepExecuteFreq1", "Recipe StepRunTime1", "Times", 0, 0, "None", "Reactor.StepRunFreq", "Step ID", "");
  78. _recipeStepExecuteFreq2 = new ScheduleMaintenanceData("RecipeStepExecuteFreq2", "Recipe StepRunTime2", "Times", 0, 0, "None", "Reactor.StepRunFreq", "Step ID", "");
  79. _recipeStepExecuteFreq3 = new ScheduleMaintenanceData("RecipeStepExecuteFreq3", "Recipe StepRunTime3", "Times", 0, 0, "None", "Reactor.StepRunFreq", "Step ID", "");
  80. _recipeStepExecuteTime1 = new ScheduleMaintenanceData("RecipeStepExecuteTime1", "Recipe StepRunTime1", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");
  81. _recipeStepExecuteTime2 = new ScheduleMaintenanceData("RecipeStepExecuteTime2", "Recipe StepRunTime2", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");
  82. _recipeStepExecuteTime3 = new ScheduleMaintenanceData("RecipeStepExecuteTime3", "Recipe StepRunTime3", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");
  83. _recipeStepExecuteTime4 = new ScheduleMaintenanceData("RecipeStepExecuteTime4", "Recipe StepRunTime4", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");
  84. _recipeStepExecuteTime5 = new ScheduleMaintenanceData("RecipeStepExecuteTime5", "Recipe StepRunTime5", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");
  85. _recipeStepExecuteTime6 = new ScheduleMaintenanceData("RecipeStepExecuteTime6", "Recipe StepRunTime6", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");
  86. _recipeStepExecuteTime7 = new ScheduleMaintenanceData("RecipeStepExecuteTime7", "Recipe StepRunTime7", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");
  87. _recipeStepExecuteTime8 = new ScheduleMaintenanceData("RecipeStepExecuteTime8", "Recipe StepRunTime8", "h:m", 0, 0, "None", "Reactor.StepRunTime", "Step ID", "");
  88. _recipeStepThickness1 = new ScheduleMaintenanceData("Recipe Thickness1(Step)", "Recipe StepThickness1", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 1");
  89. _recipeStepThickness2 = new ScheduleMaintenanceData("Recipe Thickness2(Step)", "Recipe StepThickness2", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 2");
  90. _recipeStepThickness3 = new ScheduleMaintenanceData("Recipe Thickness3(Step)", "Recipe StepThickness3", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 3");
  91. _recipeStepThickness4 = new ScheduleMaintenanceData("Recipe Thickness4(Step)", "Recipe StepThickness4", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 4");
  92. _recipeStepThickness5 = new ScheduleMaintenanceData("Recipe Thickness5(Step)", "Recipe StepThickness5", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 5");
  93. _recipeStepThickness6 = new ScheduleMaintenanceData("Recipe Thickness6(Step)", "Recipe StepThickness6", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 6");
  94. _recipeStepThickness7 = new ScheduleMaintenanceData("Recipe Thickness7(Step)", "Recipe StepThickness7", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 7");
  95. _recipeStepThickness8 = new ScheduleMaintenanceData("Recipe Thickness8(Step)", "Recipe StepThickness8", "Å", 0, 0, "None", "Reactor.StepThickness", "Step Group", "Group 8");
  96. _stepThickness = new Dictionary<string, string>()
  97. {
  98. {"1","WAIT"},
  99. {"2","Name"},
  100. };
  101. }
  102. public void UpdateRecipeTotalThickness(string recipeName, float thickness)
  103. {
  104. }
  105. public void UpdateRecipeStepThicknessAndTime(string stepName, float thickness, float timeS)
  106. {
  107. if (string.IsNullOrEmpty(stepName))
  108. return;
  109. var checkName = stepName;
  110. var nameParas = stepName.Split(':');
  111. if (nameParas != null && nameParas.Length > 1)
  112. checkName = nameParas[1];
  113. }
  114. public bool CheckScheduleMaintenanceBeforeJobStart(out string reason)
  115. {
  116. reason = "";
  117. return true;
  118. }
  119. private void ProcessMaintenanceProcessingCommand(string command)
  120. {
  121. switch(command)
  122. {
  123. case "None":
  124. break;
  125. case "Alarm Report":
  126. break;
  127. case "JobProhibition":
  128. break;
  129. case "JobManualStart":
  130. break;
  131. case "JobAutoStart":
  132. break;
  133. }
  134. }
  135. }
  136. }