using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Venus_Core { /// /// 设计概述: /// 本设计主要目的,为了满足复杂的刻蚀工艺需求(各个工艺参数之间相互关联), 和应对未来不断新增的工艺需求(新的设备、 /// 新的工艺、新的材料等等), 同时又能对现存的Recipe保持最大的兼容 /// /// 1. 将Process 的每道工艺分解为1个至多个逻辑工艺单元, 每个逻辑工艺单元通过 Class Name 和RT的工艺算法绑定, /// 同时也和 GUI Recipe Editor 的页面布局绑定。 /// /// 2. 一个逻辑单元功能调试好, 并且有在客户端使用后, 此逻辑单元想关联的 RT Process 代码和GUI 界面代码, /// 不允许再修改, 只能增加新的Class 来实现新的工艺需求 /// /// 3. 通过配置文件里面定义 ProcessUnit Class Name列表, 来定义当前机台支持的工艺功能, 也就是说如果Recipe文件里面保函了 /// 配置文件里面没有列出的工艺单元, 表明本机台不支持此Recipe, 并报警提示用户 /// public partial class PressureUnitByPressureMode : ProcessUnitBase { public string UnitName { get; set; } = "PressureUnitByPressureMode"; public bool EnableRamp { get; set; } public int StartPressure { get; set; } public int TargetPressure { get; set; } public int ValvePositionPreset { get; set; } public int HoldTime { get; set; } } public class PressureUnitByValveMode : ProcessUnitBase { public string UnitName { get; set; } = "PressureUnitByValveMode"; public bool EnableRamp { get; set; } public int StartPosition { get; set; } public int TargetPosition { get; set; } public int HoldTime { get; set; } } public class TCPUnit : ProcessUnitBase { public string UnitName { get; set; } = "TCPUnit"; public bool EnableRamp { get; set; } public int RFPower { get; set; } public int StartPower { get; set; } public int TargetPower { get; set; } public int HoldTime { get; set; } public int TuneCapPreset { get; set; } public int LoadCapPreset { get; set; } public int MaxReflectedPower { get; set; } } public class BiasUnit : ProcessUnitBase { public string UnitName { get; set; } = "BiasUnit"; public int BiasRFPower { get; set; } public bool EnableRamp { get; set; } public int StartBiasRFPower { get; set; } public int TargetBiasRFPower { get; set; } public int BiasRFHoldTime { get; set; } public int BiasTuneCapPreset { get; set; } public int BiasLoadCapPreset { get; set; } public int BiasMaxReflectedPower { get; set; } public GeneratorMode BiasGeneratorMode { get; set; } public int PulseRateFreq { get; set; } public int PulseDutyCycle { get; set; } } public class GasControlUnit : ProcessUnitBase { public string UnitName { get; set; } = "GasControlUnit"; public bool EnableRamp { get; set; } public int Gas1 { get; set; } public int Gas1Target { get; set; } public int Gas2 { get; set; } public int Gas2Target { get; set; } public int Gas3 { get; set; } public int Gas3Target { get; set; } public int Gas4 { get; set; } public int Gas4Target { get; set; } public int Gas5 { get; set; } public int Gas5Target { get; set; } public int Gas6 { get; set; } public int Gas6Target { get; set; } public int Gas7 { get; set; } public int Gas7Target { get; set; } public int Gas8 { get; set; } public int Gas8Target { get; set; } public int FlowRatie { get; set; } } public class ESCHVUnit : ProcessUnitBase { public string UnitName { get; set; } = "ESCHVUnit"; public int BacksideHelum { get; set; } public int MaxHeFlow { get; set; } public int MinHeFlow { get; set; } public int ESCClampValtage { get; set; } public int Temperature { get; set; } } public class ProcessKitUnit : ProcessUnitBase { public string UnitName { get; set; } = "ProcessKitUnit"; public MovementPosition LiftPinPostion { get; set; } public MovementPosition WeprBasrPinPosition { get; set; } } }