WaferHolderInfo.cs 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. using Aitex.Core.Common;
  2. using MECF.Framework.Common.CommonData;
  3. using MECF.Framework.Common.Equipment;
  4. using MECF.Framework.Common.RecipeCenter;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Runtime.Serialization;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace MECF.Framework.Common.WaferHolder
  12. {
  13. public enum WaferHolderStatus
  14. {
  15. Disabled = 0,
  16. Empty = 1,
  17. Normal = 2,
  18. Processing = 3,
  19. Completed=4,
  20. Failed=5,
  21. MisProcessed=6
  22. }
  23. [DataContract]
  24. public class WaferHolderInfo : NotifiableItem
  25. {
  26. [DataMember]
  27. public string Id { get; set; }
  28. /// <summary>
  29. /// 创建时所在buffer Id
  30. /// </summary>
  31. [DataMember]
  32. public Int32 BufferId { get; set; }
  33. /// <summary>
  34. /// 类型
  35. /// </summary>
  36. [DataMember]
  37. public string CrsType { get; set; }
  38. /// <summary>
  39. /// Wafer尺寸
  40. /// </summary>
  41. [DataMember]
  42. public Int32 WaferSize { get; set; }
  43. /// <summary>
  44. /// 可用性
  45. /// </summary>
  46. [DataMember]
  47. public Boolean Enabled { get; set; }
  48. /// <summary>
  49. /// 化学用剂
  50. /// </summary>
  51. [DataMember]
  52. public string Chemistry { get; set; }
  53. /// <summary>
  54. /// CRS-A Id
  55. /// </summary>
  56. [DataMember]
  57. public string CrsAId { get; set; }
  58. /// <summary>
  59. /// CRS-A总次数
  60. /// </summary>
  61. [DataMember]
  62. public int CrsATotalUses { get; set; }
  63. /// <summary>
  64. /// CRS-A pad清理后次数
  65. /// </summary>
  66. [DataMember]
  67. public int CrsAUsesSincePadClean { get; set; }
  68. /// <summary>
  69. /// CRS-A seal清理后次数
  70. /// </summary>
  71. [DataMember]
  72. public int CrsAUsesSinceSealClean { get; set; }
  73. /// <summary>
  74. /// CRS-B Id
  75. /// </summary>
  76. [DataMember]
  77. public string CrsBId { get; set; }
  78. /// <summary>
  79. /// CRS-A总次数
  80. /// </summary>
  81. [DataMember]
  82. public int CrsBTotalUses { get; set; }
  83. /// <summary>
  84. /// CRS-A pad清理后次数
  85. /// </summary>
  86. [DataMember]
  87. public int CrsBUsesSincePadClean { get; set; }
  88. /// <summary>
  89. /// CRS-A seal清理后次数
  90. /// </summary>
  91. [DataMember]
  92. public int CrsBUsesSinceSealClean { get; set; }
  93. /// <summary>
  94. /// 所有使用次数
  95. /// </summary>
  96. [DataMember]
  97. public int TotalUses { get; set; }
  98. /// <summary>
  99. /// 所有生产片使用次数
  100. /// </summary>
  101. [DataMember]
  102. public int TotalProductWafers { get; set; }
  103. /// <summary>
  104. /// Dummy Wafes数量
  105. /// </summary>
  106. [DataMember]
  107. public int TotalDummyWafers { get; set; }
  108. /// <summary>
  109. /// 当前位置
  110. /// </summary>
  111. [DataMember]
  112. public string CurrentLocation { get; set; }
  113. /// <summary>
  114. /// Wafer A ID
  115. /// </summary>
  116. [DataMember]
  117. public string WaferAId { get; set; }
  118. /// <summary>
  119. /// Wafer A类型
  120. /// </summary>
  121. [DataMember]
  122. public int WaferAType { get; set; }
  123. /// <summary>
  124. /// Wafer B ID
  125. /// </summary>
  126. [DataMember]
  127. public string WaferBId { get; set; }
  128. /// <summary>
  129. /// Wafer B 类型
  130. /// </summary>
  131. [DataMember]
  132. public int WaferBType { get; set; }
  133. /// <summary>
  134. /// 当前ProcessJob
  135. /// </summary>
  136. [DataMember]
  137. public string CurrentProcessJobId { get; set; }
  138. /// <summary>
  139. /// 当前ControlJob
  140. /// </summary>
  141. [DataMember]
  142. public string CurrentControlJobId { get; set; }
  143. /// <summary>
  144. /// 当前LotID
  145. /// </summary>
  146. [DataMember]
  147. public string LotId { get; set; }
  148. /// <summary>
  149. /// 状态
  150. /// </summary>
  151. [DataMember]
  152. public WaferHolderStatus Status { get; set; }
  153. /// <summary>
  154. /// 创建时间
  155. /// </summary>
  156. [DataMember]
  157. public DateTime CreateTime { get; set; }
  158. /// <summary>
  159. /// 最后一次更新时间
  160. /// </summary>
  161. [DataMember]
  162. public DateTime LastUpdateTime { get; set; }
  163. /// <summary>
  164. /// Sequence Id
  165. /// </summary>
  166. public string SequenceId { get; set; }
  167. /// <summary>
  168. /// Sequence Recipe
  169. /// </summary>
  170. [DataMember]
  171. public SequenceRecipe SequenceRecipe { get; set; }
  172. /// <summary>
  173. /// Metal模块名称
  174. /// </summary>
  175. public ModuleName MetalModuleName { get; set; }
  176. /// <summary>
  177. /// 调度经过所有过程
  178. /// </summary>
  179. public List<string> SchedulerModules { get; set; } = new List<string>();
  180. /// <summary>
  181. /// 是否可以去Loader
  182. /// </summary>
  183. public bool IsToLoader { get; set; } = true;
  184. /// <summary>
  185. /// 上一个Metal Recipe完成时间
  186. /// </summary>
  187. public DateTime LastMetalRecipeCompleteTime { get; set; }
  188. /// <summary>
  189. /// 起始的位置
  190. /// </summary>
  191. public string OriginalBuffer { get; set; }
  192. /// <summary>
  193. /// 初始化Wafer信息
  194. /// </summary>
  195. /// <param name="waferCapacity"></param>
  196. /// <param name="waferSize"></param>
  197. public void InitWaferInfo(int waferSize)
  198. {
  199. this.WaferSize = waferSize;
  200. }
  201. /// <summary>
  202. /// 克隆
  203. /// </summary>
  204. /// <param name="info"></param>
  205. public void Clone(WaferHolderInfo info)
  206. {
  207. this.Id= info.Id;
  208. this.CrsType = info.CrsType;
  209. this.WaferSize = info.WaferSize;
  210. this.Enabled = info.Enabled;
  211. this.CrsAId = info.CrsAId;
  212. this.CrsATotalUses = info.CrsATotalUses;
  213. this.CrsAUsesSinceSealClean = info.CrsAUsesSinceSealClean;
  214. this.CrsAUsesSincePadClean = info.CrsAUsesSincePadClean;
  215. this.CrsBId = info.CrsBId;
  216. this.CrsBTotalUses = info.CrsBTotalUses;
  217. this.CrsBUsesSinceSealClean = info.CrsBUsesSinceSealClean;
  218. this.CrsBUsesSincePadClean = info.CrsBUsesSincePadClean;
  219. this.Chemistry = info.Chemistry;
  220. this.TotalUses = info.TotalUses;
  221. this.TotalProductWafers = info.TotalProductWafers;
  222. this.CurrentLocation = info.CurrentLocation;
  223. this.CurrentProcessJobId = info.CurrentProcessJobId;
  224. this.CurrentControlJobId = info.CurrentControlJobId;
  225. this.Status = info.Status;
  226. this.WaferAId= info.WaferAId;
  227. this.WaferBId= info.WaferBId;
  228. this.SequenceId = info.SequenceId;
  229. this.SequenceRecipe = info.SequenceRecipe;
  230. }
  231. /// <summary>
  232. /// 克隆
  233. /// </summary>
  234. /// <param name="info"></param>
  235. public void CloneBaseInfo(WaferHolderInfo info)
  236. {
  237. this.Id = info.Id;
  238. this.BufferId = info.BufferId;
  239. this.CrsType = info.CrsType;
  240. this.WaferSize = info.WaferSize;
  241. this.Enabled = info.Enabled;
  242. this.CrsATotalUses = info.CrsATotalUses;
  243. this.CrsAUsesSinceSealClean = info.CrsAUsesSinceSealClean;
  244. this.CrsAUsesSincePadClean = info.CrsAUsesSincePadClean;
  245. this.CrsBTotalUses = info.CrsBTotalUses;
  246. this.CrsBUsesSinceSealClean = info.CrsBUsesSinceSealClean;
  247. this.CrsBUsesSincePadClean = info.CrsBUsesSincePadClean;
  248. this.TotalUses = info.TotalUses;
  249. this.TotalProductWafers = info.TotalProductWafers;
  250. this.CurrentLocation = info.CurrentLocation;
  251. this.Chemistry=info.Chemistry;
  252. this.WaferAId = info.WaferAId;
  253. this.WaferBId = info.WaferBId;
  254. }
  255. }
  256. }