123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- using Aitex.Core.Common;
- using MECF.Framework.Common.CommonData;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.RecipeCenter;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.Serialization;
- using System.Text;
- using System.Threading.Tasks;
- namespace MECF.Framework.Common.WaferHolder
- {
- public enum WaferHolderStatus
- {
- Disabled = 0,
- Empty = 1,
- Normal = 2,
- Processing = 3,
- Completed=4,
- Failed=5,
- MisProcessed=6
- }
- [DataContract]
- public class WaferHolderInfo : NotifiableItem
- {
- [DataMember]
- public string Id { get; set; }
- /// <summary>
- /// 创建时所在buffer Id
- /// </summary>
- [DataMember]
- public Int32 BufferId { get; set; }
- /// <summary>
- /// 类型
- /// </summary>
- [DataMember]
- public string CrsType { get; set; }
- /// <summary>
- /// Wafer尺寸
- /// </summary>
- [DataMember]
- public Int32 WaferSize { get; set; }
- /// <summary>
- /// 可用性
- /// </summary>
- [DataMember]
- public Boolean Enabled { get; set; }
- /// <summary>
- /// 化学用剂
- /// </summary>
- [DataMember]
- public string Chemistry { get; set; }
- /// <summary>
- /// CRS-A Id
- /// </summary>
- [DataMember]
- public string CrsAId { get; set; }
- /// <summary>
- /// CRS-A总次数
- /// </summary>
- [DataMember]
- public int CrsATotalUses { get; set; }
- /// <summary>
- /// CRS-A pad清理后次数
- /// </summary>
- [DataMember]
- public int CrsAUsesSincePadClean { get; set; }
- /// <summary>
- /// CRS-A seal清理后次数
- /// </summary>
- [DataMember]
- public int CrsAUsesSinceSealClean { get; set; }
- /// <summary>
- /// CRS-B Id
- /// </summary>
- [DataMember]
- public string CrsBId { get; set; }
- /// <summary>
- /// CRS-A总次数
- /// </summary>
- [DataMember]
- public int CrsBTotalUses { get; set; }
- /// <summary>
- /// CRS-A pad清理后次数
- /// </summary>
- [DataMember]
- public int CrsBUsesSincePadClean { get; set; }
- /// <summary>
- /// CRS-A seal清理后次数
- /// </summary>
- [DataMember]
- public int CrsBUsesSinceSealClean { get; set; }
- /// <summary>
- /// 所有使用次数
- /// </summary>
- [DataMember]
- public int TotalUses { get; set; }
- /// <summary>
- /// 所有生产片使用次数
- /// </summary>
- [DataMember]
- public int TotalProductWafers { get; set; }
- /// <summary>
- /// Dummy Wafes数量
- /// </summary>
- [DataMember]
- public int TotalDummyWafers { get; set; }
- /// <summary>
- /// 当前位置
- /// </summary>
- [DataMember]
- public string CurrentLocation { get; set; }
- /// <summary>
- /// Wafer A ID
- /// </summary>
- [DataMember]
- public string WaferAId { get; set; }
- /// <summary>
- /// Wafer A类型
- /// </summary>
- [DataMember]
- public int WaferAType { get; set; }
- /// <summary>
- /// Wafer B ID
- /// </summary>
- [DataMember]
- public string WaferBId { get; set; }
- /// <summary>
- /// Wafer B 类型
- /// </summary>
- [DataMember]
- public int WaferBType { get; set; }
- /// <summary>
- /// 当前ProcessJob
- /// </summary>
- [DataMember]
- public string CurrentProcessJobId { get; set; }
- /// <summary>
- /// 当前ControlJob
- /// </summary>
- [DataMember]
- public string CurrentControlJobId { get; set; }
- /// <summary>
- /// 当前LotID
- /// </summary>
- [DataMember]
- public string LotId { get; set; }
- /// <summary>
- /// 状态
- /// </summary>
- [DataMember]
- public WaferHolderStatus Status { get; set; }
- /// <summary>
- /// 创建时间
- /// </summary>
- [DataMember]
- public DateTime CreateTime { get; set; }
- /// <summary>
- /// 最后一次更新时间
- /// </summary>
- [DataMember]
- public DateTime LastUpdateTime { get; set; }
- /// <summary>
- /// Sequence Id
- /// </summary>
- public string SequenceId { get; set; }
- /// <summary>
- /// Sequence Recipe
- /// </summary>
- [DataMember]
- public SequenceRecipe SequenceRecipe { get; set; }
- /// <summary>
- /// Metal模块名称
- /// </summary>
- public ModuleName MetalModuleName { get; set; }
- /// <summary>
- /// 调度经过所有过程
- /// </summary>
- public List<string> SchedulerModules { get; set; } = new List<string>();
- /// <summary>
- /// 是否可以去Loader
- /// </summary>
- public bool IsToLoader { get; set; } = true;
- /// <summary>
- /// 上一个Metal Recipe完成时间
- /// </summary>
- public DateTime LastMetalRecipeCompleteTime { get; set; }
- /// <summary>
- /// 起始的位置
- /// </summary>
- public string OriginalBuffer { get; set; }
- /// <summary>
- /// 初始化Wafer信息
- /// </summary>
- /// <param name="waferCapacity"></param>
- /// <param name="waferSize"></param>
- public void InitWaferInfo(int waferSize)
- {
- this.WaferSize = waferSize;
- }
- /// <summary>
- /// 克隆
- /// </summary>
- /// <param name="info"></param>
- public void Clone(WaferHolderInfo info)
- {
- this.Id= info.Id;
- this.CrsType = info.CrsType;
- this.WaferSize = info.WaferSize;
- this.Enabled = info.Enabled;
- this.CrsAId = info.CrsAId;
- this.CrsATotalUses = info.CrsATotalUses;
- this.CrsAUsesSinceSealClean = info.CrsAUsesSinceSealClean;
- this.CrsAUsesSincePadClean = info.CrsAUsesSincePadClean;
- this.CrsBId = info.CrsBId;
- this.CrsBTotalUses = info.CrsBTotalUses;
- this.CrsBUsesSinceSealClean = info.CrsBUsesSinceSealClean;
- this.CrsBUsesSincePadClean = info.CrsBUsesSincePadClean;
- this.Chemistry = info.Chemistry;
- this.TotalUses = info.TotalUses;
- this.TotalProductWafers = info.TotalProductWafers;
- this.CurrentLocation = info.CurrentLocation;
- this.CurrentProcessJobId = info.CurrentProcessJobId;
- this.CurrentControlJobId = info.CurrentControlJobId;
- this.Status = info.Status;
- this.WaferAId= info.WaferAId;
- this.WaferBId= info.WaferBId;
- this.SequenceId = info.SequenceId;
- this.SequenceRecipe = info.SequenceRecipe;
- }
- /// <summary>
- /// 克隆
- /// </summary>
- /// <param name="info"></param>
- public void CloneBaseInfo(WaferHolderInfo info)
- {
- this.Id = info.Id;
- this.BufferId = info.BufferId;
- this.CrsType = info.CrsType;
- this.WaferSize = info.WaferSize;
- this.Enabled = info.Enabled;
- this.CrsATotalUses = info.CrsATotalUses;
- this.CrsAUsesSinceSealClean = info.CrsAUsesSinceSealClean;
- this.CrsAUsesSincePadClean = info.CrsAUsesSincePadClean;
- this.CrsBTotalUses = info.CrsBTotalUses;
- this.CrsBUsesSinceSealClean = info.CrsBUsesSinceSealClean;
- this.CrsBUsesSincePadClean = info.CrsBUsesSincePadClean;
- this.TotalUses = info.TotalUses;
- this.TotalProductWafers = info.TotalProductWafers;
- this.CurrentLocation = info.CurrentLocation;
- this.Chemistry=info.Chemistry;
- this.WaferAId = info.WaferAId;
- this.WaferBId = info.WaferBId;
- }
- }
- }
|