|
@@ -0,0 +1,121 @@
|
|
|
|
+using System;
|
|
|
|
+using System.Collections.Generic;
|
|
|
|
+using System.Linq;
|
|
|
|
+using System.Text;
|
|
|
|
+using System.Threading.Tasks;
|
|
|
|
+
|
|
|
|
+namespace Venus_Core
|
|
|
|
+{
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 设计概述:
|
|
|
|
+ /// 本设计主要目的,为了满足复杂的刻蚀工艺需求(各个工艺参数之间相互关联), 和应对未来不断新增的工艺需求(新的设备、
|
|
|
|
+ /// 新的工艺、新的材料等等), 同时又能对现存的Recipe保持最大的兼容
|
|
|
|
+ ///
|
|
|
|
+ /// 1. 将Process 的每道工艺分解为1个至多个逻辑工艺单元, 每个逻辑工艺单元通过 Class Name 和RT的工艺算法绑定,
|
|
|
|
+ /// 同时也和 GUI Recipe Editor 的页面布局绑定。
|
|
|
|
+ ///
|
|
|
|
+ /// 2. 一个逻辑单元功能调试好, 并且有在客户端使用后, 此逻辑单元想关联的 RT Process 代码和GUI 界面代码,
|
|
|
|
+ /// 不允许再修改, 只能增加新的Class 来实现新的工艺需求
|
|
|
|
+ ///
|
|
|
|
+ /// 3. 通过配置文件里面定义 ProcessUnit Class Name列表, 来定义当前机台支持的工艺功能, 也就是说如果Recipe文件里面保函了
|
|
|
|
+ /// 配置文件里面没有列出的工艺单元, 表明本机台不支持此Recipe, 并报警提示用户
|
|
|
|
+ /// </summary>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 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; }
|
|
|
|
+ }
|
|
|
|
+}
|