|
@@ -41,10 +41,13 @@ namespace Venus_RT.Modules.PMs
|
|
|
private RecipeToleranceChecker _RFToleranceChecker;
|
|
|
private RecipeToleranceChecker _BiasRFToleranceChecker;
|
|
|
|
|
|
+
|
|
|
private bool _isEnableMatchC1C2Offset;
|
|
|
private int _matchC1C2OffsetValue;
|
|
|
private bool _isEnableBiasMatchC1C2Offset;
|
|
|
private int _biasMatchC1C2OffsetValue;
|
|
|
+
|
|
|
+
|
|
|
public ProcessHelper(JetPMBase pm)
|
|
|
{
|
|
|
Chamber = pm;
|
|
@@ -203,7 +206,6 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
private RState TCPUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
-
|
|
|
_isEnableMatchC1C2Offset = SC.GetValue<bool>($"{Module}.Match.EnableC1C2StepOffset");
|
|
|
_matchC1C2OffsetValue = SC.GetValue<int>($"{Module}.Match.C1C2StepOffsetValue");
|
|
|
|
|
@@ -335,6 +337,7 @@ namespace Venus_RT.Modules.PMs
|
|
|
_isEnableBiasMatchC1C2Offset = SC.GetValue<bool>($"{Module}.BiasMatch.EnableC1C2StepOffset");
|
|
|
_biasMatchC1C2OffsetValue = SC.GetValue<int>($"{Module}.BiasMatch.C1C2StepOffsetValue");
|
|
|
|
|
|
+
|
|
|
var ProcessUnit = unit as BiasUnit;
|
|
|
|
|
|
int p1;
|
|
@@ -355,14 +358,11 @@ namespace Venus_RT.Modules.PMs
|
|
|
{
|
|
|
p2 = ProcessUnit.AutoBiasC2;
|
|
|
}
|
|
|
-
|
|
|
if (_isEnableBiasMatchC1C2Offset == false || Math.Abs(Chamber.BiasRFMatchC1 - p1) > _biasMatchC1C2OffsetValue || Math.Abs(Chamber.BiasRFMatchC2 - p2) > _biasMatchC1C2OffsetValue)
|
|
|
{
|
|
|
Chamber.SetBiasMatchPosition(p1, p2);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
if (ProcessUnit.BiasRFPower > 5)
|
|
|
{
|
|
|
Chamber.GeneratorBiasPowerOn(true);
|
|
@@ -371,6 +371,11 @@ namespace Venus_RT.Modules.PMs
|
|
|
Chamber.GeneratorBiasSetpower(ProcessUnit.BiasRFPower);
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Chamber.GeneratorBiasPowerOn(false);
|
|
|
+ Chamber.GeneratorBiasSetpower(0);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
if (ProcessUnit.BiasMatchWorkMode == MatchWorkMode.Auto)
|
|
@@ -454,8 +459,8 @@ namespace Venus_RT.Modules.PMs
|
|
|
private void BiasUnit_End(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
var ProcessUnit = unit as BiasUnit;
|
|
|
- Chamber.GeneratorBiasSetpower(0);
|
|
|
- Chamber.GeneratorBiasPowerOn(false);
|
|
|
+
|
|
|
+
|
|
|
if (biasRfMatchC1.Count >= 6)
|
|
|
{
|
|
|
float allValue = 0;
|
|
@@ -493,60 +498,75 @@ namespace Venus_RT.Modules.PMs
|
|
|
if (ProcessUnit.Gas1 >= 1)
|
|
|
{
|
|
|
Chamber.OpenValve(ValveType.PV11, true);
|
|
|
- if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
- {
|
|
|
- toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
Chamber.FlowGas(1, ProcessUnit.Gas2);
|
|
|
if (ProcessUnit.Gas2 >= 1)
|
|
|
{
|
|
|
Chamber.OpenValve(ValveType.PV21, true);
|
|
|
- if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
- {
|
|
|
- toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
Chamber.FlowGas(2, ProcessUnit.Gas3);
|
|
|
if (ProcessUnit.Gas3 >= 1)
|
|
|
{
|
|
|
Chamber.OpenValve(ValveType.PV31, true);
|
|
|
- if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
- {
|
|
|
- toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
Chamber.FlowGas(3, ProcessUnit.Gas4);
|
|
|
if (ProcessUnit.Gas4 >= 1)
|
|
|
{
|
|
|
Chamber.OpenValve(ValveType.PV41, true);
|
|
|
- if (ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
- {
|
|
|
- toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
Chamber.FlowGas(4, ProcessUnit.Gas5);
|
|
|
Chamber.FlowGas(5, ProcessUnit.Gas6);
|
|
|
Chamber.FlowGas(6, ProcessUnit.Gas7);
|
|
|
Chamber.FlowGas(7, ProcessUnit.Gas8);
|
|
|
- if (ProcessUnit.Gas5 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (ProcessUnit.ToleranceMode != ToleranceMode.None)
|
|
|
{
|
|
|
+ toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
+ toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
+ toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
+ toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas4, ProcessUnit.Gas4WarningRange, ProcessUnit.Gas4AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
toleranceObjects.Add(new ToleranceObject("Gas5", ProcessUnit.Gas5, ProcessUnit.Gas5WarningRange, ProcessUnit.Gas5AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
- if (ProcessUnit.Gas6 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
- {
|
|
|
toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
-
|
|
|
- }
|
|
|
- if (ProcessUnit.Gas7 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
- {
|
|
|
toleranceObjects.Add(new ToleranceObject("Gas7", ProcessUnit.Gas7, ProcessUnit.Gas7WarningRange, ProcessUnit.Gas7AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
-
|
|
|
- }
|
|
|
- if (ProcessUnit.Gas8 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
- {
|
|
|
toleranceObjects.Add(new ToleranceObject("Gas8", ProcessUnit.Gas8, ProcessUnit.Gas8WarningRange, ProcessUnit.Gas8AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
}
|
|
|
+
|
|
|
if (ProcessUnit.ToleranceMode != ToleranceMode.None)
|
|
|
{
|
|
|
_GasFlowToleranceChecker.Start(toleranceObjects);
|
|
@@ -601,48 +621,40 @@ namespace Venus_RT.Modules.PMs
|
|
|
if (ProcessUnit.Gas1 >= 1)
|
|
|
{
|
|
|
Chamber.OpenValve(ValveType.PV11, true);
|
|
|
- if (ProcessUnit.ToleranceMode != ToleranceMode.None)
|
|
|
- {
|
|
|
- toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
}
|
|
|
Chamber.FlowGas(1, ProcessUnit.Gas2);
|
|
|
if (ProcessUnit.Gas2 >= 1)
|
|
|
{
|
|
|
Chamber.OpenValve(ValveType.PV21, true);
|
|
|
- if (ProcessUnit.ToleranceMode != ToleranceMode.None)
|
|
|
- {
|
|
|
- toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
}
|
|
|
Chamber.FlowGas(2, ProcessUnit.Gas3);
|
|
|
if (ProcessUnit.Gas3 >= 1)
|
|
|
{
|
|
|
Chamber.OpenValve(ValveType.PV31, true);
|
|
|
- if (ProcessUnit.ToleranceMode != ToleranceMode.None)
|
|
|
- {
|
|
|
- toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
}
|
|
|
Chamber.FlowGas(3, ProcessUnit.Gas4);
|
|
|
if (ProcessUnit.Gas4 >= 1)
|
|
|
{
|
|
|
Chamber.OpenValve(ValveType.PV41, true);
|
|
|
- if (ProcessUnit.ToleranceMode != ToleranceMode.None)
|
|
|
- {
|
|
|
- toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas4, ProcessUnit.Gas4WarningRange, ProcessUnit.Gas4AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
}
|
|
|
+
|
|
|
Chamber.FlowGas(4, ProcessUnit.Gas5);
|
|
|
Chamber.FlowGas(5, ProcessUnit.Gas6);
|
|
|
- if (ProcessUnit.Gas5 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
+
|
|
|
+ if (ProcessUnit.ToleranceMode != ToleranceMode.None)
|
|
|
{
|
|
|
+ toleranceObjects.Add(new ToleranceObject("Gas1", ProcessUnit.Gas1, ProcessUnit.Gas1WarningRange, ProcessUnit.Gas1AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
+ toleranceObjects.Add(new ToleranceObject("Gas2", ProcessUnit.Gas2, ProcessUnit.Gas2WarningRange, ProcessUnit.Gas2AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
+ toleranceObjects.Add(new ToleranceObject("Gas3", ProcessUnit.Gas3, ProcessUnit.Gas3WarningRange, ProcessUnit.Gas3AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
+ toleranceObjects.Add(new ToleranceObject("Gas4", ProcessUnit.Gas4, ProcessUnit.Gas4WarningRange, ProcessUnit.Gas4AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
toleranceObjects.Add(new ToleranceObject("Gas5", ProcessUnit.Gas5, ProcessUnit.Gas5WarningRange, ProcessUnit.Gas5AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
- }
|
|
|
- if (ProcessUnit.Gas6 >= 1 && ProcessUnit.ToleranceMode != ToleranceMode.None && ProcessUnit.ToleranceDelayTime_ms > 0)
|
|
|
- {
|
|
|
toleranceObjects.Add(new ToleranceObject("Gas6", ProcessUnit.Gas6, ProcessUnit.Gas6WarningRange, ProcessUnit.Gas6AlarmRange, ProcessUnit.ToleranceDelayTime_ms, ProcessUnit.ToleranceMode));
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
+ if (ProcessUnit.ToleranceMode != ToleranceMode.None)
|
|
|
+ {
|
|
|
+ _GasFlowToleranceChecker.Start(toleranceObjects);
|
|
|
}
|
|
|
return RState.Running;
|
|
|
}
|
|
@@ -816,36 +828,37 @@ namespace Venus_RT.Modules.PMs
|
|
|
|
|
|
|
|
|
|
|
|
- private RState HeaterUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
|
+ private RState RFBoxUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
- var ProcessUnit = unit as HeaterUnit;
|
|
|
- var position = (HighTemperatureHeaterPosition)Enum.Parse(typeof(HighTemperatureHeaterPosition), ProcessUnit.SuspectPosition.ToString());
|
|
|
- Chamber.HighTemperatureHeaterGotoPosition(position);
|
|
|
- Chamber.SetHighTemperatureHeaterTemperature(ProcessUnit.HeaterTemp);
|
|
|
- Chamber.SetHighTemperatureHeaterRatio(ProcessUnit.HeaterRatio);
|
|
|
return RState.Running;
|
|
|
}
|
|
|
|
|
|
- private RState HeaterUnit_Check(ProcessUnitBase unit, RecipeStep step)
|
|
|
+ private RState RFBoxUnit_Check(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
return RState.Running;
|
|
|
}
|
|
|
|
|
|
- private void HeaterUnit_End(ProcessUnitBase unit, RecipeStep step)
|
|
|
+ private void RFBoxUnit_End(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
- private RState RFBoxUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
|
+
|
|
|
+ private RState HeaterUnit_Start(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
+ var ProcessUnit = unit as HeaterUnit;
|
|
|
+ var position = (HighTemperatureHeaterPosition)Enum.Parse(typeof(HighTemperatureHeaterPosition), ProcessUnit.SuspectPosition.ToString());
|
|
|
+ Chamber.HighTemperatureHeaterGotoPosition(position);
|
|
|
+ Chamber.SetHighTemperatureHeaterTemperature(ProcessUnit.HeaterTemp);
|
|
|
+ Chamber.SetHighTemperatureHeaterRatio(ProcessUnit.HeaterRatio);
|
|
|
return RState.Running;
|
|
|
}
|
|
|
|
|
|
- private RState RFBoxUnit_Check(ProcessUnitBase unit, RecipeStep step)
|
|
|
+ private RState HeaterUnit_Check(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
return RState.Running;
|
|
|
}
|
|
|
|
|
|
- private void RFBoxUnit_End(ProcessUnitBase unit, RecipeStep step)
|
|
|
+ private void HeaterUnit_End(ProcessUnitBase unit, RecipeStep step)
|
|
|
{
|
|
|
|
|
|
}
|