Merge branch 'develop' of http://112.124.35.216:65000/Sic-Software/MoS2 into develop

This commit is contained in:
hanqiangqiang 2026-08-21 15:25:33 +08:00
commit b335f7aaab
24 changed files with 258 additions and 1224 deletions

View File

@ -727,4 +727,51 @@
<PryoTempCheck id="PryoTempCheck" display="" schematicId="" unit="" scBasePath="PM.{module}.Heater" <PryoTempCheck id="PryoTempCheck" display="" schematicId="" unit="" scBasePath="PM.{module}.Heater"
aoPSUMiddleLoopMode="AO_PSUMiddleLoopMode" aoPSUMiddleTargetSP="AO_PSUMiddleTargetSP"/> aoPSUMiddleLoopMode="AO_PSUMiddleLoopMode" aoPSUMiddleTargetSP="AO_PSUMiddleTargetSP"/>
</PryoTempChecks> </PryoTempChecks>
<RecipeValveActions classType="Aitex.Core.RT.Device.PmDevices.RecipeValveAction" assembly="MECF.Framework.RT.EquipmentLibrary">
<RecipeValveAction id="SHN2H2Switch" display="" schematicId="" unit="">
<Valve Name="V33" N2="false" H2="true"/>
<Valve Name="V66" N2="false" H2="true"/>
<Valve Name="V67" N2="true" H2="false"/>
<Valve Name="V68" N2="true"/>
</RecipeValveAction>
<RecipeValveAction id="MoCO6Flow" display="" schematicId="" unit="">
<Valve Name="V19" Purge="true" Vent="false" Run="false" />
<Valve Name="V18" Purge="false" Vent="true" Run="true" />
<Valve Name="V39" Purge="false" Vent="false" Run="true" />
</RecipeValveAction>
<RecipeValveAction id="MoFlow" display="" schematicId="" unit="">
<Valve Name="V22" Purge="true" Vent="false" Run="false" />
<Valve Name="V21" Purge="false" Vent="true" Run="true" />
<Valve Name="V40" Purge="false" Vent="false" Run="true" />
</RecipeValveAction>
<RecipeValveAction id="WCO6Flow" display="" schematicId="" unit="">
<Valve Name="V45" Purge="true" Vent="false" Run="false" />
<Valve Name="V43" Purge="false" Vent="true" Run="true" />
<Valve Name="V41" Purge="false" Vent="false" Run="true" />
<Valve Name="V42" Purge="true" Vent="true" Run="false" />
</RecipeValveAction>
<RecipeValveAction id="CS2" display="" schematicId="" unit="">
<Valve Name="V49" Purge="true" Vent="false" Run="false" />
<Valve Name="V48" Purge="false" Vent="true" Run="true" />
<Valve Name="V53" Purge="false" Vent="false" Run="true" />
</RecipeValveAction>
<RecipeValveAction id="H2S" display="" schematicId="" unit="">
<Valve Name="V51" Purge="false" Vent="true" Run="true" />
<Valve Name="V54" Purge="false" Vent="false" Run="true" />
</RecipeValveAction>
<RecipeValveAction id="H2Se" display="" schematicId="" unit="">
<Valve Name="V52" Purge="false" Vent="true" Run="true" />
<Valve Name="V55" Purge="false" Vent="false" Run="true" />
<Valve Name="V56" Purge="true" Vent="true" Run="false" />
</RecipeValveAction>
<RecipeValveAction id="O2" display="" schematicId="" unit="">
<Valve Name="V37" Purge="true" Vent="false" Run="false" />
<Valve Name="V47" Purge="false" Vent="false" Run="true" />
</RecipeValveAction>
<RecipeValveAction id="SO2" display="" schematicId="" unit="">
<Valve Name="V58" Purge="false" Vent="true" Run="true" />
<Valve Name="V59" Purge="false" Vent="false" Run="true" />
<Valve Name="V60" Purge="true" Vent="true" Run="false" />
</RecipeValveAction>
</RecipeValveActions>
</DeviceModelDefine> </DeviceModelDefine>

View File

@ -15,212 +15,218 @@
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="SH Flow->SH Total Flow"> <Group DisplayName="SH Flow->SH Total Flow">
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="1. Ar/H2 Switch" UnitName="" ControlName="SHArH2Switch.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="1.N2/H2 Switch" UnitName="" ControlName="SHN2H2Switch.SetValve" Description="">
<Item DisplayName="Ar" ControlName="Ar" /> <Item DisplayName="N2" ControlName="N2" />
<Item DisplayName="H2" ControlName="H2" /> <Item DisplayName="H2" ControlName="H2" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="2. SH Total Flow" UnitName="sccm" ControlName="SHTotalFlow" InputMode="" Min="0" Max="1000000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="2. SH Total Flow" UnitName="sccm" ControlName="SHTotalFlow" InputMode="" Min="0" Max="1000000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="3. Carry Gas Flow (M40)" UnitName="sccm" ControlName="Mfc40.Ramp" InputMode="" Min="0" Max="1000000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="3. Carry Gas Flow (M40)" UnitName="sccm" ControlName="Mfc40.Ramp" InputMode="" Min="0" Max="1000000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="4. Carry Gas Flow (M41)" UnitName="sccm" ControlName="Mfc41.Ramp" InputMode="" Min="0" Max="1000000" Description=""/> <Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="4. SH Total Flow Split Ratio" UnitName="" ControlName="SHTotalFlowSplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="5. Carry Gas Flow (M42)" UnitName="sccm" ControlName="Mfc42.Ramp" InputMode="" Min="0" Max="1000000" Description=""/> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="5. Flow Set Mode" UnitName="" ControlName="FlowSetMode" Description="">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="6. SH Total Flow Split Ratio" UnitName="" ControlName="SHTotalFlowSplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="7. Flow Set Mode" UnitName="" ControlName="FlowSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" /> <Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" /> <Item DisplayName="Jump" ControlName="Jump" />
</Step> </Step>
</Group> </Group>
<Group DisplayName="Pressure -> Rotation"> <Group DisplayName="Pressure -> Rotation">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="8. Pressure Set" UnitName="mbar" ControlName="TV.SetPressure" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="6. Pressure Set" UnitName="mbar" ControlName="TV.SetPressure" InputMode="" Min="0" Max="10000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="9. Rotation Set" UnitName="rpm" ControlName="PMServo.SetActualSpeed" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="7. Rotation Set" UnitName="rpm" ControlName="PMServo.SetActualSpeed" InputMode="" Min="0" Max="10000" Description=""/>
</Group> </Group>
</Catalog> </Catalog>
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="Temperature -> Control Mode"> <Group DisplayName="Temperature -> Control Mode">
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="10. PSU Control Mode" UnitName="" ControlName="TC1.SetHeaterMode" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="8. PSU Control Mode" UnitName="" ControlName="TC1.SetHeaterMode" Description="">
<Item DisplayName="Power" ControlName="Power" /> <Item DisplayName="Power" ControlName="Power" />
<Item DisplayName="Follow" ControlName="PyroFollow" /> <Item DisplayName="Follow" ControlName="PyroFollow" />
<Item DisplayName="Auto" ControlName="PyroAuto" /> <Item DisplayName="Auto" ControlName="PyroAuto" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="11. PSU Set Mode" UnitName="" ControlName="SusHeaterSetMode" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="9. PSU Set Mode" UnitName="" ControlName="SusHeaterSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" /> <Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" /> <Item DisplayName="Jump" ControlName="Jump" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="12. SCR Control Mode" UnitName="" ControlName="TC2.SetHeaterMode2" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="10. SCR Control Mode" UnitName="" ControlName="TC2.SetHeaterMode2" Description="">
<Item DisplayName="Power" ControlName="Power" /> <Item DisplayName="Power" ControlName="Power" />
<Item DisplayName="Follow" ControlName="PyroFollow" /> <Item DisplayName="Follow" ControlName="PyroFollow" />
<Item DisplayName="Auto" ControlName="PyroAuto" /> <Item DisplayName="Auto" ControlName="PyroAuto" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="13. SCR Set Mode" UnitName="" ControlName="WWHeaterSetMode" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="11. SCR Set Mode" UnitName="" ControlName="WWHeaterSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" /> <Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" /> <Item DisplayName="Jump" ControlName="Jump" />
</Step> </Step>
</Group> </Group>
<Group DisplayName="Temperature -> Temp Setting"> <Group DisplayName="Temperature -> Temp Setting">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="14. PSU Inner Temp Set" UnitName="℃" ControlName="TC1.SetL1TargetSP" InputMode="" Min="0" Max="10000" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="12. PSU Inner Temp Set" UnitName="℃" ControlName="TC1.SetL1TargetSP" InputMode="" Min="0" Max="10000" Description="" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="15. PSU Middle Temp Set" UnitName="℃" ControlName="TC1.SetL2TargetSP" InputMode="" Min="0" Max="10000" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="13. PSU Middle Temp Set" UnitName="℃" ControlName="TC1.SetL2TargetSP" InputMode="" Min="0" Max="10000" Description="" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="16. PSU Outer Temp Set" UnitName="℃" ControlName="TC1.SetL3TargetSP" InputMode="" Min="0" Max="10000" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="14. PSU Outer Temp Set" UnitName="℃" ControlName="TC1.SetL3TargetSP" InputMode="" Min="0" Max="10000" Description="" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="17. SCR Temp Set" UnitName="℃" ControlName="TC2.SetL3TargetSP" InputMode="" Min="0" Max="10000" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="15. SCR Temp Set" UnitName="℃" ControlName="TC2.SetL3TargetSP" InputMode="" Min="0" Max="10000" Description="" />
</Group> </Group>
<Group DisplayName="Temperature -> Heater Output"> <Group DisplayName="Temperature -> Heater Output">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="18. PSU Inner Ratio Set" UnitName="%" ControlName="TC1.RecipeSetL1Ratio" InputMode="" Min="0" Max="100" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="16. PSU Inner Ratio Set" UnitName="%" ControlName="TC1.RecipeSetL1Ratio" InputMode="" Min="0" Max="100" Description="" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="19. PSU Middle Ratio Set" UnitName="%" ControlName="TC1.RecipeSetL2Ratio" InputMode="" Min="0" Max="100" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="17. PSU Middle Ratio Set" UnitName="%" ControlName="TC1.RecipeSetL2Ratio" InputMode="" Min="0" Max="100" Description="" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="20. PSU Outer Ratio Set" UnitName="%" ControlName="TC1.RecipeSetL3Ratio" InputMode="" Min="0" Max="100" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="18. PSU Outer Ratio Set" UnitName="%" ControlName="TC1.RecipeSetL3Ratio" InputMode="" Min="0" Max="100" Description="" />
<!--<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="18. PSU2 Output Limit High" UnitName="%" ControlName="PSU2.SetOutputLimitHighByRecipe" InputMode="" Min="0" Max="100" Description="" />--> <!--<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="18. PSU2 Output Limit High" UnitName="%" ControlName="PSU2.SetOutputLimitHighByRecipe" InputMode="" Min="0" Max="100" Description="" />-->
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="21. SCR Upper Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL1Ratio" InputMode="" Min="0" Max="100" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="19. SCR Upper Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL1Ratio" InputMode="" Min="0" Max="100" Description="" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="22. SCR Middle Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL2Ratio" InputMode="" Min="0" Max="100" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="20. SCR Middle Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL2Ratio" InputMode="" Min="0" Max="100" Description="" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="23. SCR Lower Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL3Ratio" InputMode="" Min="0" Max="100" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="21. SCR Lower Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL3Ratio" InputMode="" Min="0" Max="100" Description="" />
</Group> </Group>
</Catalog> </Catalog>
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="SH Flow->Si Source->Si Source Total Flow"> <Group DisplayName="SH Flow->Source1->Source1 Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="24. Si Source Total Flow" UnitName="sccm" ControlName="SiSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="22. Source1 Total Flow" UnitName="sccm" ControlName="SiSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/>
</Group> </Group>
<Group DisplayName="SH Flow->Si Source->SiH4 Flow"> <Group DisplayName="SH Flow->Source1->Mo(CO)6 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="25. SiH4 Flow Mode" UnitName="" ControlName="SiH4.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="23. Mo(CO)6 Flow Mode" UnitName="" ControlName="MoCO6Flow.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="26. SiH4 Flow (M14)" UnitName="sccm" ControlName="Mfc14.Ramp" InputMode="" Min="0" Max="10000" Description="M14.SiH4Flow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="24. Mo(CO)6 Carrier Flow(M16)" UnitName="sccm" ControlName="Mfc16.Ramp" InputMode="" Min="0" Max="100" Description="M16Flow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="25. Mo(CO)6 Push Flow(M10)" UnitName="sccm" ControlName="Mfc10.Ramp" InputMode="" Min="0" Max="1000" Description="M10Flow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="26. Mo(CO)6 Pressure(PC8)" UnitName="mbar" ControlName="Pressure8.Ramp" InputMode="" Min="0" Max="3000" Description="PC8"/>
</Group> </Group>
<Group DisplayName="SH Flow->Si Source->TCS Flow"> <Group DisplayName="SH Flow->Source1->Mo(Reserve) Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="27. TCS Flow Mode" UnitName="" ControlName="TCS.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="27. Mo Flow Mode" UnitName="" ControlName="MoFlow.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="28. TCS Bubb Low Flow (M11)" UnitName="sccm" ControlName="Mfc11.Ramp" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="28. Mo Carrier Flow(M16)" UnitName="sccm" ControlName="Mfc16.Ramp" InputMode="" Min="0" Max="100" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="29. TCS Bubb High Flow (M10)" UnitName="sccm" ControlName="Mfc10.Ramp" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="29. Mo Push Flow(M17)" UnitName="sccm" ControlName="Mfc17.Ramp" InputMode="" Min="0" Max="1000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="30. TCS Push Flow (M12)" UnitName="sccm" ControlName="Mfc12.Ramp" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="30. Mo Pressure(PC9)" UnitName="mbar" ControlName="Pressure9.Ramp" InputMode="" Min="0" Max="3000" Description="PC9"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="31. TCS Bubb Pressure (PC3)" UnitName="mbar" ControlName="Pressure3.Ramp" InputMode="" Min="0" Max="10000" Description=""/>
</Group> </Group>
<Group DisplayName="SH Flow->Si Source->HCl Flow"> <Group DisplayName="SH Flow->Source1->W(CO)6 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="32. HCl Flow Mode" UnitName="" ControlName="HCl.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="31. W(CO)6 Flow Mode" UnitName="" ControlName="WCO6Flow.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="33. HCl Flow (M13)" UnitName="sccm" ControlName="Mfc13.Ramp" InputMode="" Min="0" Max="10000" Description="M13.HClFlowsccm"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="32. W(CO)6 Carrier Flow(M8)" UnitName="sccm" ControlName="Mfc8.Ramp" InputMode="" Min="0" Max="100" Description=""/>
<!--<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="34. HCL Source Split Ratio" UnitName="" ControlName="HCLSourSplitRatio"/>--> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="33. W(CO)6 Push Flow(M9)" UnitName="sccm" ControlName="Mfc9.Ramp" InputMode="" Min="0" Max="1000" Description=""/>
<!--<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="35. HCl Pre Split Flow (M17)" UnitName="sccm" ControlName="Mfc17.Ramp" InputMode="" Min="0" Max="10000" Description="M17.HClFlowsccm"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="34. W(CO)6 Pressure(PC2)" UnitName="mbar" ControlName="Pressure2.Ramp" InputMode="" Min="0" Max="3000" Description="PC2"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="36. HCl Inner Flow (M45)" UnitName="sccm" ControlName="Mfc45.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M45.HClFlowsccm"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="37. HCl Middle Flow (M44)" UnitName="sccm" ControlName="Mfc44.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M44.HClFlowsccm"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="38. HCl Outer Flow (M43)" UnitName="sccm" ControlName="Mfc43.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M43.HClFlowsccm"/>-->
</Group> </Group>
<Group DisplayName="SH Flow->Si Source->Si Source Split"> <Group DisplayName="SH Flow->Source1->Source1 Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="39. Si Source Split Ratio" UnitName="" ControlName="SiSourSplitRatio"/> <Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="35. Source Split Ratio" UnitName="" ControlName="SourceSplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="40. Si Source Push Pressure (PC6)" UnitName="mbar" ControlName="Pressure6.Ramp" InputMode="" Min="0" Max="10000" Description="PC6.SiSourcePushPressure"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="36. Source1 Push Pressure (PC5)" UnitName="mbar" ControlName="Pressure5.Ramp" InputMode="" Min="0" Max="3000" Description="PC5"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="41. Si Source Inner Flow (M23)" UnitName="sccm" ControlName="Mfc23.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M23.SiSourceInnerFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="37. Source1 Inner Flow (M20)" UnitName="sccm" ControlName="Mfc20.Ramp" InputMode="" Min="0" Max="5000" IsColumnEditable="false" Description="M20"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="42. Si Source Middle Flow (M22)" UnitName="sccm" ControlName="Mfc22.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M22.SiSourceMiddleFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="38. Source1 Middle Flow (M19)" UnitName="sccm" ControlName="Mfc19.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M19"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="43. Si Source Outer Flow (M9)" UnitName="sccm" ControlName="Mfc9.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M9.SiSourceOuterFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="39. Source1 Outer Flow (M18)" UnitName="sccm" ControlName="Mfc18.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M18"/>
</Group> </Group>
<Group DisplayName="SH Flow->C Source->C Source Total Flow"> <Group DisplayName="SH Flow->Source2->Source2 Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="44. C Source Total Flow" UnitName="sccm" ControlName="CSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="40. Source2 Total Flow" UnitName="sccm" ControlName="Source2TotalFlow" InputMode="" Min="0" Max="200000" Description=""/>
</Group> </Group>
<Group DisplayName="SH Flow->C Source->C3H8 Flow"> <Group DisplayName="SH Flow->Source2->CS2 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="45. C3H8 Flow Mode" UnitName="" ControlName="C2H4.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="41. CS2 Flow Mode" UnitName="" ControlName="CS2.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="46. C3H8 Flow (M16)" UnitName="sccm" ControlName="Mfc16.Ramp" InputMode="" Min="0" Max="10000" Description="M16.C3H8Flow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="42. CS2 Carrier Flow(M11)" UnitName="sccm" ControlName="Mfc11.Ramp" InputMode="" Min="0" Max="500" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="43. CS2 Push Flow(M12)" UnitName="sccm" ControlName="Mfc12.Ramp" InputMode="" Min="0" Max="1000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="44. CS2 Pressure(PC3)" UnitName="mbar" ControlName="Pressure3.Ramp" InputMode="" Min="0" Max="3000" Description="PC3"/>
</Group> </Group>
<Group DisplayName="SH Flow->C Source->C Source Split"> <Group DisplayName="SH Flow->Source2->H2S Flow">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="47. C Source Split Ratio" UnitName="" ControlName="CSourSplitRatio"/> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="45. H2S Flow Mode" UnitName="" ControlName="H2S.SetValve" Description="">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="48. C Source Push Pressure (PC7)" UnitName="mbar" ControlName="Pressure7.Ramp" InputMode="" Min="0" Max="10000" Description="PC7.CSourcePushPressure"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="49. C Source Inner Flow (M26)" UnitName="sccm" ControlName="Mfc26.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M26.CSourceInnerFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="50. C Source Middle Flow (M25)" UnitName="sccm" ControlName="Mfc25.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M25.CSourceMidFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="51. C Source Outer Flow (M15)" UnitName="sccm" ControlName="Mfc15.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M15.CSourceOuterFlow"/>
</Group>
<Group DisplayName="SH Flow->Dope->Dope Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="52. Dope Total Flow" UnitName="sccm" ControlName="DopeTotalFlow" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
<Group DisplayName="SH Flow->Dope->N2 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="53. N2 Flow Mode" UnitName="" ControlName="N2Dilution.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="54. N2 Actual Flow" UnitName="sccm" ControlName="N2ActualFlow" InputMode="" Min="0" Max="10000" Description="N2ActualFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="46. H2S Flow(M13)" UnitName="sccm" ControlName="Mfc13.Ramp" InputMode="" Min="0" Max="200" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="55. N2 Low Flow (M4)" UnitName="sccm" ControlName="Mfc4.Ramp" InputMode="" Min="0" Max="10000" Description="M4.N2lowFlow"/> </Group>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="56. Dilut Flow For N2 (M3)" UnitName="sccm" ControlName="Mfc3.Ramp" InputMode="" Min="0" Max="10000" Description="M3.DiluFlowforN2"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="57. Diluted N2 Flow (M6)" UnitName="sccm" ControlName="Mfc6.Ramp" InputMode="" Min="0" Max="10000" Description="M6.DilutedN2Flow"/> <Group DisplayName="SH Flow->Source2->H2Se Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="58. N2 Post Dilut Pressure (PC1)" UnitName="mbar" ControlName="Pressure1.Ramp" InputMode="" Min="0" Max="10000" Description="PC1.N2PostDiluPres"/> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="47. H2Se Flow Mode" UnitName="" ControlName="H2Se.SetValve" Description="">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="59. N2 High Flow Mode" UnitName="" ControlName="N2HighDoping.SetValve" Description="N2 HIGH FLOW MODE">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="60. N2 High Flow (M5)" UnitName="sccm" ControlName="Mfc5.Ramp" InputMode="" Min="0" Max="10000" Description="M5.N2HighFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="48. H2Se Flow(M14)" UnitName="sccm" ControlName="Mfc14.Ramp" InputMode="" Min="0" Max="200" Description=""/>
</Group> </Group>
<Group DisplayName="SH Flow->Dope->TMA Flow"> <Group DisplayName="SH Flow->Source2->Source2 Split">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="61. TMA Flow Mode" UnitName="" ControlName="TMA.SetValve" Description="TMA FLOW MODE"> <Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="49. Source2 Split Ratio" UnitName="" ControlName="Source2SplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="50. Source2 Push Pressure (PC6)" UnitName="mbar" ControlName="Pressure6.Ramp" InputMode="" Min="0" Max="3000" Description="PC6"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="51. Source2 Inner Flow (M23)" UnitName="sccm" ControlName="Mfc23.Ramp" InputMode="" Min="0" Max="5000" IsColumnEditable="false" Description="M23"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="52. Source2 Middle Flow (M22)" UnitName="sccm" ControlName="Mfc22.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M22"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="53. Source2 Outer Flow (M21)" UnitName="sccm" ControlName="Mfc21.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M21"/>
</Group>
<Group DisplayName="SH Flow->Source3->Source3 Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="54. Source3 Total Flow" UnitName="sccm" ControlName="Source3TotalFlow" InputMode="" Min="0" Max="1000000" Description=""/>
</Group>
<Group DisplayName="SH Flow->Source3->O2 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="55. O2 Flow Mode" UnitName="" ControlName="O2.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="62. TMA Bubb Flow (M7)" UnitName="sccm" ControlName="Mfc7.Ramp" InputMode="" Min="0" Max="10000" Description="M7.TMABubbFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="56. O2 Acutal Flow" UnitName="sccm" ControlName="O2ActualFlow" InputMode="" Min="0" Max="1000000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="63. TMA Push Flow (M8)" UnitName="sccm" ControlName="Mfc8.Ramp" InputMode="" Min="0" Max="10000" Description="M8.TMA Push"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="57. O2 Flow(M4)" UnitName="sccm" ControlName="Mfc4.Ramp" InputMode="" Min="0" Max="100" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="64. TMA Bubb Pressure (PC2)" UnitName="mbar" ControlName="Pressure2.Ramp" InputMode="" Min="0" Max="10000" Description="PC2.TMAPost-DiluPres"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="58. Dilut Flow For Doping(M3)" UnitName="sccm" ControlName="Mfc3.Ramp" InputMode="" Min="0" Max="10000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="59. Diluted O2 Flow(M6)" UnitName="sccm" ControlName="Mfc6.Ramp" InputMode="" Min="0" Max="1000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="60. O2 Dilut Pressure(PC1)" UnitName="mbar" ControlName="Pressure1.Ramp" InputMode="" Min="0" Max="3000" Description="PC1"/>
</Group> </Group>
<Group DisplayName="SH Flow->Dope->Dope Split"> <Group DisplayName="SH Flow->Source3->SO2 Flow">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="65. Dope Split Ratio" UnitName="" ControlName="DopeSplitRatio"/> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="61. SO2 Flow Mode" UnitName="" ControlName="SO2.SetValve" Description="">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="66. Dope Push Pressure (PC5)" UnitName="mbar" ControlName="Pressure5.Ramp" InputMode="" Min="0" Max="10000" Description="PC5.DopePushPressure"/> <Item DisplayName="Purge" ControlName="Purge" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="67. Dope Inner Flow (M20)" UnitName="sccm" ControlName="Mfc20.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M20.DopeInnerFlow"/> <Item DisplayName="Vent" ControlName="Vent" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="68. Dope Middle Flow (M19)" UnitName="sccm" ControlName="Mfc19.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M19.DopeMidFlow"/> <Item DisplayName="Run" ControlName="Run" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="69. Dope Outer Flow (M2)" UnitName="sccm" ControlName="Mfc2.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M2.DopeOuterFlow"/> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="62. SO2 Flow(M15)" UnitName="sccm" ControlName="Mfc15.Ramp" InputMode="" Min="0" Max="500" Description=""/>
</Group>
<Group DisplayName="SH Flow->Source3->Source3 Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="63. Source3 Split Ratio" UnitName="" ControlName="Source3SplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="64. Source3 Push Pressure (PC7)" UnitName="mbar" ControlName="Pressure7.Ramp" InputMode="" Min="0" Max="3000" Description="PC7"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="65. Source3 Inner Flow (M26)" UnitName="sccm" ControlName="Mfc26.Ramp" InputMode="" Min="0" Max="5000" IsColumnEditable="false" Description="M26"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="66. Source3 Middle Flow (M25)" UnitName="sccm" ControlName="Mfc25.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M25"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="67. Source3 Outer Flow (M24)" UnitName="sccm" ControlName="Mfc24.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M24"/>
</Group> </Group>
<Group DisplayName="SH Flow->SH Push Flow"> <Group DisplayName="SH Flow->SH Push Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="70. SH Push Total Flow" UnitName="sccm" ControlName="SHSuppTotalFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="68. SH Push Total Flow" UnitName="sccm" ControlName="SHSuppTotalFlow" InputMode="" Min="0" Max="1000000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="71. SH Inner Flow" UnitName="sccm" ControlName="SHInnerFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="69. SH Inner Flow" UnitName="sccm" ControlName="SHInnerFlow" InputMode="" Min="0" Max="1000000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="72. SH Middle Flow" UnitName="sccm" ControlName="SHMidFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="70. SH Middle Flow" UnitName="sccm" ControlName="SHMidFlow" InputMode="" Min="0" Max="1000000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="73. SH Outer Flow" UnitName="sccm" ControlName="SHOutterFlow" InputMode="" Min="0" Max="10000" DIsColumnEditable="false" escription=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="71. SH Outer Flow" UnitName="sccm" ControlName="SHOutterFlow" InputMode="" Min="0" Max="1000000" DIsColumnEditable="false" escription=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="74. Inner Push Flow (M29)" UnitName="sccm" ControlName="Mfc29.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M29.InnerSuppFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="72. Inner Push Flow (M29)" UnitName="sccm" ControlName="Mfc29.Ramp" InputMode="" Min="0" Max="15000" IsColumnEditable="false" Description="M29.InnerSuppFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="75. Middle Push Flow (M31)" UnitName="sccm" ControlName="Mfc31.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M31.MidSuppFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="73. Middle Push Flow (M31)" UnitName="sccm" ControlName="Mfc31.Ramp" InputMode="" Min="0" Max="20000" IsColumnEditable="false" Description="M31.MidSuppFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="76. Outer Push Flow (M28)" UnitName="sccm" ControlName="Mfc28.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M28.OuterSuppFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="74. Outer Push Flow (M28)" UnitName="sccm" ControlName="Mfc28.Ramp" InputMode="" Min="0" Max="30000" IsColumnEditable="false" Description="M28.OuterSuppFlow"/>
</Group> </Group>
</Catalog> </Catalog>
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="Purge->SH Periphery Purge"> <Group DisplayName="Purge->SH Periphery Purge">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="77. SH Purge Flow (M27)" UnitName="sccm" ControlName="Mfc27.Ramp" InputMode="" Min="0" Max="10000" Description="M27.SHPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="75. SH Purge Flow (M27)" UnitName="sccm" ControlName="Mfc27.Ramp" InputMode="" Min="0" Max="50000" Description="M27.SHPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="78. Optic Purge Flow (M33)" UnitName="sccm" ControlName="Mfc33.Ramp" InputMode="" Min="0" Max="10000" Description="M33.OpticPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="76. Optic Purge Flow (M33)" UnitName="sccm" ControlName="Mfc33.Ramp" InputMode="" Min="0" Max="5000" Description="M33.OpticPurgeFlow"/>
</Group> </Group>
<Group DisplayName="Purge->Chamber Periphery Purge"> <Group DisplayName="Purge->Chamber Periphery Purge">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="79. Chamber Purge Flow (M35)" UnitName="sccm" ControlName="Mfc35.Ramp" InputMode="" Min="0" Max="1000000" Description="M35.ChamberPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="77. GasRing Purge Flow (M32)" UnitName="sccm" ControlName="Mfc32.Ramp" InputMode="" Min="0" Max="1000000" Description="M32.GasRingPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="80. Rotation-Up Purge Flow (M36)" UnitName="sccm" ControlName="Mfc36.Ramp" InputMode="" Min="0" Max="10000" Description="M36.Rotation-upPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="78. Chamber Purge Flow (M35)" UnitName="sccm" ControlName="Mfc35.Ramp" InputMode="" Min="0" Max="1000000" Description="M35.ChamberPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="81. Shutter Purge Flow (M37)" UnitName="sccm" ControlName="Mfc37.Ramp" InputMode="" Min="0" Max="10000" Description="M37.ShutterPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="79. Rotation-Up Purge Flow (M36)" UnitName="sccm" ControlName="Mfc36.Ramp" InputMode="" Min="0" Max="15000" Description="M36.Rotation-upPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="82. Heater-WF Purge Flow (M38)" UnitName="sccm" ControlName="Mfc38.Ramp" InputMode="" Min="0" Max="10000" Description="M38.Heater-WFPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="80. Shutter Purge Flow (M37)" UnitName="sccm" ControlName="Mfc37.Ramp" InputMode="" Min="0" Max="20000" Description="M37.ShutterPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="81. Heater-WF Purge Flow (M38)" UnitName="sccm" ControlName="Mfc38.Ramp" InputMode="" Min="0" Max="30000" Description="M38.Heater-WFPurgeFlow"/>
</Group> </Group>
<Group DisplayName="Purge->Vent Flow"> <Group DisplayName="Purge->Vent Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="83. Total Vent Flow" UnitName="sccm" ControlName="TotalVentFlow" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="82. Total Vent Flow" UnitName="sccm" ControlName="TotalVentFlow" InputMode="" Min="0" Max="1000000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="84. Vent Push Flow (M1)" UnitName="sccm" ControlName="Mfc1.Ramp" InputMode="" Min="0" Max="10000" Description="M1.VentPushFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="83. Vent Push Flow (M1)" UnitName="sccm" ControlName="Mfc1.Ramp" InputMode="" Min="0" Max="10000" Description="M1.VentPushFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="85. Vent Pre-Exhaust Pressure (PC4)" UnitName="mbar" ControlName="Pressure4.Ramp" InputMode="" Min="0" Max="10000" Description="PC4.VentPre-ExhaustPres"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="84. Vent Pre-Exhaust Pressure (PC4)" UnitName="mbar" ControlName="Pressure4.Ramp" InputMode="" Min="0" Max="3000" Description="PC4.VentPre-ExhaustPres"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="86. Vent Push Flow (M18)" UnitName="sccm" ControlName="Mfc18.Ramp" InputMode="" Min="0" Max="10000" Description="M18.VentPushFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="87. Vent Pre-Exhaust Pressure (PC9)" UnitName="mbar" ControlName="Pressure9.Ramp" InputMode="" Min="0" Max="10000" Description="PC9.VentPre-ExhaustPres"/>
</Group> </Group>
</Catalog> </Catalog>

View File

@ -5,8 +5,8 @@
<!--###########################################--> <!--###########################################-->
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="Step Information"> <Group DisplayName="Step Information">
<Step ModuleName="" DeviceType="" InputType="ReadOnly" DisplayName="Uid" UnitName="" ControlName="StepUid" /> <Step ModuleName="" DeviceType="" InputType="ReadOnly" DisplayName="Uid" UnitName="" ControlName="StepUid" />
<Step ModuleName="" DeviceType="" InputType="ReadOnly" DisplayName="Step" UnitName="" ControlName="StepNo" /> <Step ModuleName="" DeviceType="" InputType="ReadOnly" DisplayName="Step" UnitName="" ControlName="StepNo" />
<Step ModuleName="" DeviceType="" InputType="TextInput" DisplayName="Name" UnitName="" ControlName="Name" /> <Step ModuleName="" DeviceType="" InputType="TextInput" DisplayName="Name" UnitName="" ControlName="Name" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="Time" UnitName="s" ControlName="Time" InputMode="" Min="0" Max="10000" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="Time" UnitName="s" ControlName="Time" InputMode="" Min="0" Max="10000" Description="" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="Growth Rate" UnitName="μm/h" ControlName="GrowthRate" InputMode="" Min="0" Max="10000" Description="" /> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="Growth Rate" UnitName="μm/h" ControlName="GrowthRate" InputMode="" Min="0" Max="10000" Description="" />
@ -15,8 +15,8 @@
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="SH Flow->SH Total Flow"> <Group DisplayName="SH Flow->SH Total Flow">
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="1. Ar/H2 Switch" UnitName="" ControlName="SHArH2Switch.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="1.N2/H2 Switch" UnitName="" ControlName="SHN2H2Switch.SetValve" Description="">
<Item DisplayName="Ar" ControlName="Ar" /> <Item DisplayName="N2" ControlName="N2" />
<Item DisplayName="H2" ControlName="H2" /> <Item DisplayName="H2" ControlName="H2" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="2. SH Total Flow" UnitName="sccm" ControlName="SHTotalFlow" InputMode="" Min="0" Max="1000000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="2. SH Total Flow" UnitName="sccm" ControlName="SHTotalFlow" InputMode="" Min="0" Max="1000000" Description=""/>
@ -37,18 +37,18 @@
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="Temperature -> Control Mode"> <Group DisplayName="Temperature -> Control Mode">
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="8. PSU Control Mode" UnitName="" ControlName="TC1.SetHeaterMode" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="8. PSU Control Mode" UnitName="" ControlName="TC1.SetHeaterMode" Description="">
<Item DisplayName="Power" ControlName="Power" /> <Item DisplayName="Power" ControlName="Power" />
<Item DisplayName="Auto" ControlName="PyroAuto" /> <Item DisplayName="Follow" ControlName="PyroFollow" />
<Item DisplayName="Follow" ControlName="PyroFollow" /> <Item DisplayName="Auto" ControlName="PyroAuto" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="9. PSU Set Mode" UnitName="" ControlName="SusHeaterSetMode" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="9. PSU Set Mode" UnitName="" ControlName="SusHeaterSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" /> <Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" /> <Item DisplayName="Jump" ControlName="Jump" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="10. SCR Control Mode" UnitName="" ControlName="TC2.SetHeaterMode2" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="10. SCR Control Mode" UnitName="" ControlName="TC2.SetHeaterMode2" Description="">
<Item DisplayName="Power" ControlName="Power" /> <Item DisplayName="Power" ControlName="Power" />
<Item DisplayName="Auto" ControlName="PyroAuto" /> <Item DisplayName="Follow" ControlName="PyroFollow" />
<Item DisplayName="Follow" ControlName="PyroFollow" /> <Item DisplayName="Auto" ControlName="PyroAuto" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="11. SCR Set Mode" UnitName="" ControlName="WWHeaterSetMode" Description=""> <Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="11. SCR Set Mode" UnitName="" ControlName="WWHeaterSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" /> <Item DisplayName="Ramp" ControlName="Ramp" />
@ -78,144 +78,155 @@
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="SH Flow->Si Source->Si Source Total Flow"> <Group DisplayName="SH Flow->Source1->Source1 Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="22. Si Source Total Flow" UnitName="sccm" ControlName="SiSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="22. Source1 Total Flow" UnitName="sccm" ControlName="SiSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/>
</Group> </Group>
<Group DisplayName="SH Flow->N Source->PN2 Flow"> <Group DisplayName="SH Flow->Source1->Mo(CO)6 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="23. PN2 Flow Mode" UnitName="" ControlName="SiH4.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="23. Mo(CO)6 Flow Mode" UnitName="" ControlName="MoCO6Flow.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="24. PN2 Flow (M14)" UnitName="sccm" ControlName="Mfc14.Ramp" InputMode="" Min="0" Max="10000" Description="M14.SiH4Flow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="24. Mo(CO)6 Carrier Flow(M16)" UnitName="sccm" ControlName="Mfc16.Ramp" InputMode="" Min="0" Max="100" Description="M16Flow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="25. Mo(CO)6 Push Flow(M10)" UnitName="sccm" ControlName="Mfc10.Ramp" InputMode="" Min="0" Max="1000" Description="M10Flow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="26. Mo(CO)6 Pressure(PC8)" UnitName="mbar" ControlName="Pressure8.Ramp" InputMode="" Min="0" Max="3000" Description="PC8"/>
</Group> </Group>
<Group DisplayName="SH Flow->Si Source->TCS Flow"> <Group DisplayName="SH Flow->Source1->Mo(Reserve) Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="25. TCS Flow Mode" UnitName="" ControlName="TCS.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="27. Mo Flow Mode" UnitName="" ControlName="MoFlow.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="26. TCS Bubb Low Flow (M11)" UnitName="sccm" ControlName="Mfc11.Ramp" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="28. Mo Carrier Flow(M16)" UnitName="sccm" ControlName="Mfc16.Ramp" InputMode="" Min="0" Max="100" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="27. TCS Bubb High Flow (M10)" UnitName="sccm" ControlName="Mfc10.Ramp" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="29. Mo Push Flow(M17)" UnitName="sccm" ControlName="Mfc17.Ramp" InputMode="" Min="0" Max="1000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="28. TCS Push Flow (M12)" UnitName="sccm" ControlName="Mfc12.Ramp" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="30. Mo Pressure(PC9)" UnitName="mbar" ControlName="Pressure9.Ramp" InputMode="" Min="0" Max="3000" Description="PC9"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="29. TCS Bubb Pressure (PC3)" UnitName="mbar" ControlName="Pressure3.Ramp" InputMode="" Min="0" Max="10000" Description=""/>
</Group> </Group>
<Group DisplayName="SH Flow->Si Source->HCl Flow"> <Group DisplayName="SH Flow->Source1->W(CO)6 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="30. HCl Flow Mode" UnitName="" ControlName="HCl.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="31. W(CO)6 Flow Mode" UnitName="" ControlName="WCO6Flow.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="31. HCl Flow (M13)" UnitName="sccm" ControlName="Mfc13.Ramp" InputMode="" Min="0" Max="10000" Description="M13.HClFlowsccm"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="32. W(CO)6 Carrier Flow(M8)" UnitName="sccm" ControlName="Mfc8.Ramp" InputMode="" Min="0" Max="100" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="33. W(CO)6 Push Flow(M9)" UnitName="sccm" ControlName="Mfc9.Ramp" InputMode="" Min="0" Max="1000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="34. W(CO)6 Pressure(PC2)" UnitName="mbar" ControlName="Pressure2.Ramp" InputMode="" Min="0" Max="3000" Description="PC2"/>
</Group> </Group>
<Group DisplayName="SH Flow->Si Source->Si Source Split"> <Group DisplayName="SH Flow->Source1->Source1 Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="32. Si Source Split Ratio" UnitName="" ControlName="SiSourSplitRatio"/> <Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="35. Source Split Ratio" UnitName="" ControlName="SourceSplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="33. Si Source Push Pressure (PC6)" UnitName="mbar" ControlName="Pressure6.Ramp" InputMode="" Min="0" Max="10000" Description="PC6.SiSourcePushPressure"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="36. Source1 Push Pressure (PC5)" UnitName="mbar" ControlName="Pressure5.Ramp" InputMode="" Min="0" Max="3000" Description="PC5"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="34. Si Source Inner Flow (M23)" UnitName="sccm" ControlName="Mfc23.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M23.SiSourceInnerFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="37. Source1 Inner Flow (M20)" UnitName="sccm" ControlName="Mfc20.Ramp" InputMode="" Min="0" Max="5000" IsColumnEditable="false" Description="M20"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="35. Si Source Middle Flow (M22)" UnitName="sccm" ControlName="Mfc22.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M22.SiSourceMiddleFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="38. Source1 Middle Flow (M19)" UnitName="sccm" ControlName="Mfc19.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M19"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="36. Si Source Outer Flow (M9)" UnitName="sccm" ControlName="Mfc9.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M9.SiSourceOuterFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="39. Source1 Outer Flow (M18)" UnitName="sccm" ControlName="Mfc18.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M18"/>
</Group> </Group>
<Group DisplayName="SH Flow->C Source->C Source Total Flow"> <Group DisplayName="SH Flow->Source2->Source2 Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="37. C Source Total Flow" UnitName="sccm" ControlName="CSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="40. Source2 Total Flow" UnitName="sccm" ControlName="Source2TotalFlow" InputMode="" Min="0" Max="200000" Description=""/>
</Group> </Group>
<Group DisplayName="SH Flow->C Source->C2H4 Flow"> <Group DisplayName="SH Flow->Source2->CS2 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="38. C2H4 Flow Mode" UnitName="" ControlName="C2H4.SetValve" Description=""> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="41. CS2 Flow Mode" UnitName="" ControlName="CS2.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="40. C2H4 Flow (M16)" UnitName="sccm" ControlName="Mfc16.Ramp" InputMode="" Min="0" Max="10000" Description="M16.C2H4Flow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="42. CS2 Carrier Flow(M11)" UnitName="sccm" ControlName="Mfc11.Ramp" InputMode="" Min="0" Max="500" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="43. CS2 Push Flow(M12)" UnitName="sccm" ControlName="Mfc12.Ramp" InputMode="" Min="0" Max="1000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="44. CS2 Pressure(PC3)" UnitName="mbar" ControlName="Pressure3.Ramp" InputMode="" Min="0" Max="3000" Description="PC3"/>
</Group> </Group>
<Group DisplayName="SH Flow->C Source->C Source Split"> <Group DisplayName="SH Flow->Source2->H2S Flow">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="40. C Source Split Ratio" UnitName="" ControlName="CSourSplitRatio"/> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="45. H2S Flow Mode" UnitName="" ControlName="H2S.SetValve" Description="">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="41. C Source Push Pressure (PC7)" UnitName="mbar" ControlName="Pressure7.Ramp" InputMode="" Min="0" Max="10000" Description="PC7.CSourcePushPressure"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="42. C Source Inner Flow (M26)" UnitName="sccm" ControlName="Mfc26.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M26.CSourceInnerFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="43. C Source Middle Flow (M25)" UnitName="sccm" ControlName="Mfc25.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M25.CSourceMidFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="44. C Source Outer Flow (M15)" UnitName="sccm" ControlName="Mfc15.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M15.CSourceOuterFlow"/>
</Group>
<Group DisplayName="SH Flow->Dope->Dope Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="45. Dope Total Flow" UnitName="sccm" ControlName="DopeTotalFlow" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
<Group DisplayName="SH Flow->Dope->N2 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="46. N2 Flow Mode" UnitName="" ControlName="N2Dilution.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="47. N2 Actual Flow" UnitName="sccm" ControlName="N2ActualFlow" InputMode="" Min="0" Max="10000" Description="N2ActualFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="46. H2S Flow(M13)" UnitName="sccm" ControlName="Mfc13.Ramp" InputMode="" Min="0" Max="200" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="48. N2 Low Flow (M4)" UnitName="sccm" ControlName="Mfc4.Ramp" InputMode="" Min="0" Max="10000" Description="M4.N2lowFlow"/> </Group>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="49. Dilut Flow For N2 (M3)" UnitName="sccm" ControlName="Mfc3.Ramp" InputMode="" Min="0" Max="10000" Description="M3.DiluFlowforN2"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="50. Diluted N2 Flow (M6)" UnitName="sccm" ControlName="Mfc6.Ramp" InputMode="" Min="0" Max="10000" Description="M6.DilutedN2Flow"/> <Group DisplayName="SH Flow->Source2->H2Se Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="51. N2 Post Dilut Pressure (PC1)" UnitName="mbar" ControlName="Pressure1.Ramp" InputMode="" Min="0" Max="10000" Description="PC1.N2PostDiluPres"/> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="47. H2Se Flow Mode" UnitName="" ControlName="H2Se.SetValve" Description="">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="52. N2 High Flow Mode" UnitName="" ControlName="N2HighDoping.SetValve" Description="N2 HIGH FLOW MODE">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="53. N2 High Flow (M5)" UnitName="sccm" ControlName="Mfc5.Ramp" InputMode="" Min="0" Max="10000" Description="M5.N2HighFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="48. H2Se Flow(M14)" UnitName="sccm" ControlName="Mfc14.Ramp" InputMode="" Min="0" Max="200" Description=""/>
</Group> </Group>
<Group DisplayName="SH Flow->Dope->TMA Flow"> <Group DisplayName="SH Flow->Source2->Source2 Split">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="54. TMA Flow Mode" UnitName="" ControlName="TMA.SetValve" Description="TMA FLOW MODE"> <Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="49. Source2 Split Ratio" UnitName="" ControlName="Source2SplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="50. Source2 Push Pressure (PC6)" UnitName="mbar" ControlName="Pressure6.Ramp" InputMode="" Min="0" Max="3000" Description="PC6"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="51. Source2 Inner Flow (M23)" UnitName="sccm" ControlName="Mfc23.Ramp" InputMode="" Min="0" Max="5000" IsColumnEditable="false" Description="M23"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="52. Source2 Middle Flow (M22)" UnitName="sccm" ControlName="Mfc22.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M22"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="53. Source2 Outer Flow (M21)" UnitName="sccm" ControlName="Mfc21.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M21"/>
</Group>
<Group DisplayName="SH Flow->Source3->Source3 Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="54. Source3 Total Flow" UnitName="sccm" ControlName="Source3TotalFlow" InputMode="" Min="0" Max="1000000" Description=""/>
</Group>
<Group DisplayName="SH Flow->Source3->O2 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="55. O2 Flow Mode" UnitName="" ControlName="O2.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" /> <Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" /> <Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" /> <Item DisplayName="Run" ControlName="Run" />
</Step> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="55. TMA Bubb Flow (M7)" UnitName="sccm" ControlName="Mfc7.Ramp" InputMode="" Min="0" Max="10000" Description="M7.TMABubbFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="56. O2 Acutal Flow" UnitName="sccm" ControlName="O2ActualFlow" InputMode="" Min="0" Max="1000000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="56. TMA Push Flow (M8)" UnitName="sccm" ControlName="Mfc8.Ramp" InputMode="" Min="0" Max="10000" Description="M8.TMA Push"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="57. O2 Flow(M4)" UnitName="sccm" ControlName="Mfc4.Ramp" InputMode="" Min="0" Max="100" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="57. TMA Bubb Pressure (PC2)" UnitName="mbar" ControlName="Pressure2.Ramp" InputMode="" Min="0" Max="10000" Description="PC2.TMAPost-DiluPres"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="58. Dilut Flow For Doping(M3)" UnitName="sccm" ControlName="Mfc3.Ramp" InputMode="" Min="0" Max="10000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="59. Diluted O2 Flow(M6)" UnitName="sccm" ControlName="Mfc6.Ramp" InputMode="" Min="0" Max="1000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="60. O2 Dilut Pressure(PC1)" UnitName="mbar" ControlName="Pressure1.Ramp" InputMode="" Min="0" Max="3000" Description="PC1"/>
</Group> </Group>
<Group DisplayName="SH Flow->Dope->Dope Split"> <Group DisplayName="SH Flow->Source3->SO2 Flow">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="58. Dope Split Ratio" UnitName="" ControlName="DopeSplitRatio"/> <Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="61. SO2 Flow Mode" UnitName="" ControlName="SO2.SetValve" Description="">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="59. Dope Push Pressure (PC5)" UnitName="mbar" ControlName="Pressure5.Ramp" InputMode="" Min="0" Max="10000" Description="PC5.DopePushPressure"/> <Item DisplayName="Purge" ControlName="Purge" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="60. Dope Inner Flow (M20)" UnitName="sccm" ControlName="Mfc20.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M20.DopeInnerFlow"/> <Item DisplayName="Vent" ControlName="Vent" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="61. Dope Middle Flow (M19)" UnitName="sccm" ControlName="Mfc19.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M19.DopeMidFlow"/> <Item DisplayName="Run" ControlName="Run" />
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="62. Dope Outer Flow (M2)" UnitName="sccm" ControlName="Mfc2.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M2.DopeOuterFlow"/> </Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="62. SO2 Flow(M15)" UnitName="sccm" ControlName="Mfc15.Ramp" InputMode="" Min="0" Max="500" Description=""/>
</Group>
<Group DisplayName="SH Flow->Source3->Source3 Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="63. Source3 Split Ratio" UnitName="" ControlName="Source3SplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="64. Source3 Push Pressure (PC7)" UnitName="mbar" ControlName="Pressure7.Ramp" InputMode="" Min="0" Max="3000" Description="PC7"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="65. Source3 Inner Flow (M26)" UnitName="sccm" ControlName="Mfc26.Ramp" InputMode="" Min="0" Max="5000" IsColumnEditable="false" Description="M26"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="66. Source3 Middle Flow (M25)" UnitName="sccm" ControlName="Mfc25.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M25"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="67. Source3 Outer Flow (M24)" UnitName="sccm" ControlName="Mfc24.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M24"/>
</Group> </Group>
<Group DisplayName="SH Flow->SH Push Flow"> <Group DisplayName="SH Flow->SH Push Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="63. SH Push Total Flow" UnitName="sccm" ControlName="SHSuppTotalFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="68. SH Push Total Flow" UnitName="sccm" ControlName="SHSuppTotalFlow" InputMode="" Min="0" Max="1000000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="64. SH Inner Flow" UnitName="sccm" ControlName="SHInnerFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="69. SH Inner Flow" UnitName="sccm" ControlName="SHInnerFlow" InputMode="" Min="0" Max="1000000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="65. SH Middle Flow" UnitName="sccm" ControlName="SHMidFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="70. SH Middle Flow" UnitName="sccm" ControlName="SHMidFlow" InputMode="" Min="0" Max="1000000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="66. SH Outer Flow" UnitName="sccm" ControlName="SHOutterFlow" InputMode="" Min="0" Max="10000" DIsColumnEditable="false" escription=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="71. SH Outer Flow" UnitName="sccm" ControlName="SHOutterFlow" InputMode="" Min="0" Max="1000000" DIsColumnEditable="false" escription=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="67. Inner Push Flow (M29)" UnitName="sccm" ControlName="Mfc29.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M29.InnerSuppFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="72. Inner Push Flow (M29)" UnitName="sccm" ControlName="Mfc29.Ramp" InputMode="" Min="0" Max="15000" IsColumnEditable="false" Description="M29.InnerSuppFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="68. Middle Push Flow (M31)" UnitName="sccm" ControlName="Mfc31.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M31.MidSuppFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="73. Middle Push Flow (M31)" UnitName="sccm" ControlName="Mfc31.Ramp" InputMode="" Min="0" Max="20000" IsColumnEditable="false" Description="M31.MidSuppFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="69. Outer Push Flow (M28)" UnitName="sccm" ControlName="Mfc28.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M28.OuterSuppFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="74. Outer Push Flow (M28)" UnitName="sccm" ControlName="Mfc28.Ramp" InputMode="" Min="0" Max="30000" IsColumnEditable="false" Description="M28.OuterSuppFlow"/>
</Group> </Group>
</Catalog> </Catalog>
<Catalog DisplayName="StepInfo"> <Catalog DisplayName="StepInfo">
<Group DisplayName="Purge->SH Periphery Purge"> <Group DisplayName="Purge->SH Periphery Purge">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="70. SH Purge Flow (M27)" UnitName="sccm" ControlName="Mfc27.Ramp" InputMode="" Min="0" Max="10000" Description="M27.SHPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="75. SH Purge Flow (M27)" UnitName="sccm" ControlName="Mfc27.Ramp" InputMode="" Min="0" Max="50000" Description="M27.SHPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="71. Optic Purge Flow (M33)" UnitName="sccm" ControlName="Mfc33.Ramp" InputMode="" Min="0" Max="10000" Description="M33.OpticPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="76. Optic Purge Flow (M33)" UnitName="sccm" ControlName="Mfc33.Ramp" InputMode="" Min="0" Max="5000" Description="M33.OpticPurgeFlow"/>
</Group> </Group>
<Group DisplayName="Purge->Chamber Periphery Purge"> <Group DisplayName="Purge->Chamber Periphery Purge">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="72. GasRing Purge Flow (M32)" UnitName="sccm" ControlName="Mfc32.Ramp" InputMode="" Min="0" Max="1000000" Description="M32.GasRingPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="77. GasRing Purge Flow (M32)" UnitName="sccm" ControlName="Mfc32.Ramp" InputMode="" Min="0" Max="1000000" Description="M32.GasRingPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="73. Chamber Purge Flow (M35)" UnitName="sccm" ControlName="Mfc35.Ramp" InputMode="" Min="0" Max="1000000" Description="M35.ChamberPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="78. Chamber Purge Flow (M35)" UnitName="sccm" ControlName="Mfc35.Ramp" InputMode="" Min="0" Max="1000000" Description="M35.ChamberPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="74. Rotation-Up Purge Flow (M36)" UnitName="sccm" ControlName="Mfc36.Ramp" InputMode="" Min="0" Max="10000" Description="M36.Rotation-upPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="79. Rotation-Up Purge Flow (M36)" UnitName="sccm" ControlName="Mfc36.Ramp" InputMode="" Min="0" Max="15000" Description="M36.Rotation-upPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="75. Shutter Purge Flow (M37)" UnitName="sccm" ControlName="Mfc37.Ramp" InputMode="" Min="0" Max="10000" Description="M37.ShutterPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="80. Shutter Purge Flow (M37)" UnitName="sccm" ControlName="Mfc37.Ramp" InputMode="" Min="0" Max="20000" Description="M37.ShutterPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="76. Heater-WF Purge Flow (M38)" UnitName="sccm" ControlName="Mfc38.Ramp" InputMode="" Min="0" Max="10000" Description="M38.Heater-WFPurgeFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="81. Heater-WF Purge Flow (M38)" UnitName="sccm" ControlName="Mfc38.Ramp" InputMode="" Min="0" Max="30000" Description="M38.Heater-WFPurgeFlow"/>
</Group> </Group>
<Group DisplayName="Purge->Vent Flow"> <Group DisplayName="Purge->Vent Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="77. Total Vent Flow" UnitName="sccm" ControlName="TotalVentFlow" InputMode="" Min="0" Max="10000" Description=""/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="82. Total Vent Flow" UnitName="sccm" ControlName="TotalVentFlow" InputMode="" Min="0" Max="1000000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="78. Vent Push Flow (M1)" UnitName="sccm" ControlName="Mfc1.Ramp" InputMode="" Min="0" Max="10000" Description="M1.VentPushFlow"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="83. Vent Push Flow (M1)" UnitName="sccm" ControlName="Mfc1.Ramp" InputMode="" Min="0" Max="10000" Description="M1.VentPushFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="79. Vent Pre-Exhaust Pressure (PC4)" UnitName="mbar" ControlName="Pressure4.Ramp" InputMode="" Min="0" Max="10000" Description="PC4.VentPre-ExhaustPres"/> <Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="84. Vent Pre-Exhaust Pressure (PC4)" UnitName="mbar" ControlName="Pressure4.Ramp" InputMode="" Min="0" Max="3000" Description="PC4.VentPre-ExhaustPres"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="80. Vent Push Flow (M17)" UnitName="sccm" ControlName="Mfc17.Ramp" InputMode="" Min="0" Max="10000" Description="M17.VentPushFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="81. Vent Push Flow (M18)" UnitName="sccm" ControlName="Mfc18.Ramp" InputMode="" Min="0" Max="10000" Description="M18.VentPushFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="82. PN2 Bubb Pressure (PC8)" UnitName="mbar" ControlName="Pressure8.Ramp" InputMode="" Min="0" Max="10000" Description=""/>
</Group> </Group>
</Catalog> </Catalog>

View File

@ -850,16 +850,6 @@
<DependentUpon>DataGridRecipe.xaml</DependentUpon> <DependentUpon>DataGridRecipe.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="RecipeEditorLib\DGExtension\XDataGrid.cs" /> <Compile Include="RecipeEditorLib\DGExtension\XDataGrid.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_10GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_11GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_12GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_13GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_14GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_15GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_16GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_17GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_18GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_1GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\IRecipeGasFlowCalculator.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\IRecipeGasFlowCalculator.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\Params\Base\NumParamBase.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\Params\Base\NumParamBase.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\Params\Base\Param.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\Params\Base\Param.cs" />
@ -882,18 +872,8 @@
<Compile Include="RecipeEditorLib\RecipeModel\Params\StringParam.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\Params\StringParam.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeData.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\RecipeData.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeFormatBuilder.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\RecipeFormatBuilder.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_3GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_4GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_5GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_6GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_7GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_8GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_9GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\RecipeGasFlowCalculatorBase.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\RecipeGasFlowCalculatorBase.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\RecipeGasFlowCalculatorFactory.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\RecipeGasFlowCalculatorFactory.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\NH3_2GasFlow.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\RecipeGasFlowM1ToM17.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGasFlowCalculators\RecipeGasFlowM1ToM17_NoneSiH4.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeGlobalDefs.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\RecipeGlobalDefs.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeHistory.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\RecipeHistory.cs" />
<Compile Include="RecipeEditorLib\RecipeModel\RecipeProvider.cs" /> <Compile Include="RecipeEditorLib\RecipeModel\RecipeProvider.cs" />

View File

@ -1,15 +0,0 @@
using MECF.Framework.Common.DataCenter;
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_10GasFlow: RecipeGasFlowM1ToM17
{
public override string NameN2HighFlowMode => "N2NH3_10HighFlowMode.SetValve";
}
}

View File

@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_11GasFlow : RecipeGasFlowM1ToM17
{
public override string NameN2HighFlowMode => "N2NH3_11HighFlowMode.SetValve";
}
}

View File

@ -1,77 +0,0 @@
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_12GasFlow : RecipeGasFlowM1ToM17_NoneSiH4
{
public override string NameN2FlowMode => "NH3_2Dilution.SetValve";
public override string NameN2HighFlowMode => "N2NH3_2Doping.SetValve";
public override string NameN2ActualFlow => "NH3_2ActualFlow";
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
}
}

View File

@ -1,19 +0,0 @@
using MECF.Framework.Common.DataCenter;
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_13GasFlow : RecipeGasFlowM1ToM17_NoneSiH4
{
public override string NameN2HighFlowMode => "N2NH3_8HighFlowMode.SetValve";
public override string NameN2FlowMode => "N2NH3_13Doping.SetValve";
public override string NameTmaFlowMode => "TMANH3_13.SetValve";
}
}

View File

@ -1,45 +0,0 @@
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_14GasFlow: RecipeGasFlowM1ToM17_NoneSiH4
{
protected override void CalVentFlow(RecipeStep currentStep, string chamberName)
{
var currentTotalVentFlow = ((DoubleParam)currentStep.FindParamByControlName(NameTotalVentFlow)).Value;
var currentHClFlow = ((DoubleParam)currentStep.FindParamByControlName(NameHclFlow)).Value;
var currentC2H4Flow = ((DoubleParam)currentStep.FindParamByControlName(NameCxHxFlow)).Value;
var m30Flow = ((DoubleParam)currentStep.FindParamByControlName(Mfc30Flow)).Value;
var v47Value = ((ComboxParam)currentStep.FindParamByControlName(V47Value)).Value;
var currentTcsFlowMode = (currentStep.FindParamByControlName(NameTcsFlowMode) as ComboxParam)?.Value;
var currentHClFlowMode = (currentStep.FindParamByControlName(NameHclFlowMode) as ComboxParam)?.Value;
var currentC2H4FlowMode = (currentStep.FindParamByControlName(NameCxHxFlowMode) as ComboxParam)?.Value;
var tcsFlow = GetTcsFlow(currentStep, chamberName);
var currentSiSourTotalFlowForPurge = (currentTcsFlowMode != null && currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? tcsFlow
: 0d) +
(currentHClFlowMode != null && currentHClFlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentHClFlow
: 0d);
var currentCSourTotalFlowForPurge =
currentC2H4FlowMode != null && currentC2H4FlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentC2H4Flow
: 0d;
m30Flow = v47Value.ToString() == "false" ? m30Flow : 0d;
var currentVentPushFlow = currentTotalVentFlow - currentSiSourTotalFlowForPurge - currentCSourTotalFlowForPurge - m30Flow;
((DoubleParam)currentStep.FindParamByControlName(NameVentPushFlow_M17)).Value = Math.Round(currentVentPushFlow, 1);
}
}
}

View File

@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.RecipeGasFlowCalculators
{
public class NH3_15GasFlow : RecipeGasFlowM1ToM17
{
}
}

View File

@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_16GasFlow : RecipeGasFlowM1ToM17
{
public override string NameN2HighFlowMode => "N2NH3_16HighFlowMode.SetValve";
}
}

View File

@ -1,77 +0,0 @@
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_17GasFlow : RecipeGasFlowM1ToM17_NoneSiH4
{
public override string NameN2FlowMode => "NH3_2Dilution.SetValve";
public override string NameN2HighFlowMode => "N2NH3_2Doping.SetValve";
public override string NameN2ActualFlow => "NH3_2ActualFlow";
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
}
}

View File

@ -1,77 +0,0 @@
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_18GasFlow : RecipeGasFlowM1ToM17_NoneSiH4
{
public override string NameN2FlowMode => "NH3_2Dilution.SetValve";
public override string NameN2HighFlowMode => "N2NH3_2Doping.SetValve";
public override string NameN2ActualFlow => "NH3_2ActualFlow";
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
}
}

View File

@ -1,72 +0,0 @@
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_1GasFlow : RecipeGasFlowM1ToM17
{
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow ;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
}
}

View File

@ -1,84 +0,0 @@
using MECF.Framework.Common.DataCenter;
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.MECF.Framework.Common.Utilities;
using Aitex.Core.RT.SCCore;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
/// <summary>
/// 配方步骤气体流量计算器基类。
/// <br/>
/// 同时,该类也作为默认计算器使用;如果构造<see cref="RecipeData"/>时没有指定
/// 计算器对象实例,则默认使用此计算器。
/// </summary>
public class NH3_2GasFlow : RecipeGasFlowM1ToM17_NoneSiH4
{
public override string NameN2FlowMode => "NH3_2Dilution.SetValve";
public override string NameN2HighFlowMode => "N2NH3_2Doping.SetValve";
public override string NameN2ActualFlow => "NH3_2ActualFlow";
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
}
}

View File

@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_3GasFlow : RecipeGasFlowM1ToM17
{
}
}

View File

@ -1,63 +0,0 @@
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_4GasFlow : RecipeGasFlowM1ToM17
{
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
}
}

View File

@ -1,13 +0,0 @@
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_5GasFlow: RecipeGasFlowM1ToM17
{
}
}

View File

@ -1,111 +0,0 @@
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_6GasFlow: NH3_1GasFlow
{
public string V100 => "V100Value.SetValve";
public string M21 => "Mfc21.Ramp";
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var v100 = ((ComboxParam)currentStep.FindParamByControlName(V100)).Value;
double currentDilutedN2Flow = 0;
//if (v100.ToString() == "Open")
//{
// var m7 = ((DoubleParam)currentStep.FindParamByControlName(NameTmaBubbleFlow)).Value;
// var m8 = ((DoubleParam)currentStep.FindParamByControlName(NameTmaPushFlow)).Value;
// var m21 = ((DoubleParam)currentStep.FindParamByControlName(M21)).Value;
// currentN2LowFlow = m7 + m8 + m21;
//}
currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalVentFlow(RecipeStep currentStep, string chamberName)
{
var currentTotalVentFlow = ((DoubleParam)currentStep.FindParamByControlName(NameTotalVentFlow)).Value;
var currentHClFlow = ((DoubleParam)currentStep.FindParamByControlName(NameHclFlow)).Value;
var currentC2H4Flow = ((DoubleParam)currentStep.FindParamByControlName(NameCxHxFlow)).Value;
var currentTcsFlowMode = (currentStep.FindParamByControlName(NameTcsFlowMode) as ComboxParam)?.Value;
var currentHClFlowMode = (currentStep.FindParamByControlName(NameHclFlowMode) as ComboxParam)?.Value;
var currentC2H4FlowMode = (currentStep.FindParamByControlName(NameCxHxFlowMode) as ComboxParam)?.Value;
var tcsFlow = GetTcsFlow(currentStep, chamberName);
var currentSiSourTotalFlowForPurge = (currentTcsFlowMode != null && currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? tcsFlow
: 0d) +
(currentHClFlowMode != null && currentHClFlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentHClFlow
: 0d);
var currentCSourTotalFlowForPurge =
currentC2H4FlowMode != null && currentC2H4FlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentC2H4Flow
: 0d;
var currentVentPushFlow = currentTotalVentFlow - currentSiSourTotalFlowForPurge - currentCSourTotalFlowForPurge;
((DoubleParam)currentStep.FindParamByControlName(NameVentPushFlow_M17)).Value = Math.Round(currentVentPushFlow, 1);
}
}
}

View File

@ -1,78 +0,0 @@
using MECF.Framework.Common.DataCenter;
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_7GasFlow : RecipeGasFlowM1ToM17_NoneSiH4
{
public override string NameN2FlowMode => "NH3_2Dilution.SetValve";
public override string NameN2HighFlowMode => "N2NH3_2Doping.SetValve";
public override string NameN2ActualFlow => "NH3_2ActualFlow";
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
}
}

View File

@ -1,15 +0,0 @@
using MECF.Framework.Common.DataCenter;
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_8GasFlow : RecipeGasFlowM1ToM17_NoneSiH4
{
public override string NameN2HighFlowMode => "N2NH3_8HighFlowMode.SetValve";
}
}

View File

@ -1,72 +0,0 @@
using MECF.Framework.Common.DataCenter;
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class NH3_9GasFlow : RecipeGasFlowM1ToM17
{
public override string NameN2HighFlowMode => "N2NH3_10HighFlowMode.SetValve";
protected override void CalDopeFlow(RecipeStep currentStep)
{
var currentN2ActualFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2ActualFlow)).Value;
var currentN2LowFlow = ((DoubleParam)currentStep.FindParamByControlName(NameN2LowFlow)).Value;
var currentDiluFlowForN2 = ((DoubleParam)currentStep.FindParamByControlName(NameDilutionFlowForN2)).Value;
var currentDilutedN2Flow = (currentN2LowFlow + currentDiluFlowForN2) * currentN2ActualFlow / currentN2LowFlow;
((DoubleParam)currentStep.FindParamByControlName(NameDilutedN2Flow)).Value = Math.Round(currentDilutedN2Flow, 1);
}
protected override void CalShSupplementFlow(RecipeStep currentStep)
{
var currentSiSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceTotalFlow)).Value;
var currentCSourTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceTotalFlow)).Value;
var currentShTotalFlow = ((DoubleParam)currentStep.FindParamByControlName(NameShTotalFlow)).Value;
var currentSurroundingFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCarryGasFlow)).Value;
var currentSiSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceInnerFlow)).Value;
var currentSiSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameSiSourceMiddleFlow)).Value;
var currentCSourInnerFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceInnerFlow)).Value;
var currentCSourMidFlow = ((DoubleParam)currentStep.FindParamByControlName(NameCSourceMiddleFlow)).Value;
var currentShTotalFlowSplitRatio = new double[3];
if (currentStep.FindParamByControlName(NameShTotalFlowSplitRatio) is Sets3RatioParam shTotalRatio)
currentShTotalFlowSplitRatio = shTotalRatio.Ratio;
var currentShSuppTotalFlow = currentShTotalFlow - currentSurroundingFlow - currentSiSourTotalFlow -
currentCSourTotalFlow;
var sumShTotalFlowSplitRatio = currentShTotalFlowSplitRatio[0] + currentShTotalFlowSplitRatio[1] +
currentShTotalFlowSplitRatio[2];
var currentShInnerFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[0];
var currentShMidFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[1];
var currentShOutterFlow = (currentShTotalFlow - currentSurroundingFlow) / sumShTotalFlowSplitRatio *
currentShTotalFlowSplitRatio[2];
var currentInnerSuppFlow = currentShInnerFlow - currentSiSourInnerFlow - currentCSourInnerFlow;
var currentMidSuppFlow = currentShMidFlow - currentSiSourMidFlow - currentCSourMidFlow;
var currentOutterSuppFlow = currentShSuppTotalFlow - currentInnerSuppFlow - currentMidSuppFlow;
((DoubleParam)currentStep.FindParamByControlName(NameShPushTotalFlow)).Value = Math.Round(currentShSuppTotalFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShInnerFlow)).Value = Math.Round(currentShInnerFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShMiddleFlow)).Value = Math.Round(currentShMidFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameShOuterFlow)).Value = Math.Round(currentShOutterFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameInnerPushFlow)).Value = Math.Round(currentInnerSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameMiddlePushFlow)).Value = Math.Round(currentMidSuppFlow, 1);
((DoubleParam)currentStep.FindParamByControlName(NameOuterPushFlow)).Value = Math.Round(currentOutterSuppFlow, 1);
}
}
}

View File

@ -1,75 +0,0 @@
using MECF.Framework.Common.DataCenter;
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class RecipeGasFlowM1ToM17 : RecipeGasFlowCalculatorBase
{
public virtual string NameVentPushFlow_M17 => "Mfc17.Ramp";
protected override double GetTcsFlow(RecipeStep step, string chamberName)
{
var currentTcsBubbleHighFlow = ((DoubleParam)step.FindParamByControlName(NameTcsBubbleHighFlow)).Value;
var currentTcsPushFlow = ((DoubleParam)step.FindParamByControlName(NameTcsPushFlow)).Value;
var currentTcsFlowMode = ((ComboxParam)step.FindParamByControlName(NameTcsFlowMode)).Value;
var tcsFlow = 0d;
var tcsEff =
(double)QueryDataClient.Instance.Service.GetConfig($"PM.{chamberName}.Efficiency.TCS-Eff");
if (currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Run)
|| currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Vent))
{
tcsFlow = currentTcsBubbleHighFlow * tcsEff + currentTcsPushFlow;
}
else if (currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Purge))
{
tcsFlow = currentTcsBubbleHighFlow + currentTcsPushFlow;
}
return tcsFlow;
}
protected override void CalVentFlow(RecipeStep currentStep, string chamberName)
{
var currentSiH4Flow = ((DoubleParam)currentStep.FindParamByControlName(NameSiH4Flow)).Value;
var currentTotalVentFlow = ((DoubleParam)currentStep.FindParamByControlName(NameTotalVentFlow)).Value;
var currentHClFlow = ((DoubleParam)currentStep.FindParamByControlName(NameHclFlow)).Value;
var currentC2H4Flow = ((DoubleParam)currentStep.FindParamByControlName(NameCxHxFlow)).Value;
var currentSiH4FlowMode = (currentStep.FindParamByControlName(NameSiH4FlowMode) as ComboxParam)?.Value;
var currentTcsFlowMode = (currentStep.FindParamByControlName(NameTcsFlowMode) as ComboxParam)?.Value;
var currentHClFlowMode = (currentStep.FindParamByControlName(NameHclFlowMode) as ComboxParam)?.Value;
var currentC2H4FlowMode = (currentStep.FindParamByControlName(NameCxHxFlowMode) as ComboxParam)?.Value;
var tcsFlow = GetTcsFlow(currentStep, chamberName);
var currentSiSourTotalFlowForPurge =
(currentSiH4FlowMode != null && currentSiH4FlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentSiH4Flow
: 0d)
+ (currentTcsFlowMode != null && currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? tcsFlow
: 0d) +
(currentHClFlowMode != null && currentHClFlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentHClFlow
: 0d);
var currentCSourTotalFlowForPurge =
currentC2H4FlowMode != null && currentC2H4FlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentC2H4Flow
: 0d;
var currentVentPushFlow = currentTotalVentFlow - currentSiSourTotalFlowForPurge - currentCSourTotalFlowForPurge ;
((DoubleParam)currentStep.FindParamByControlName(NameVentPushFlow_M17)).Value = Math.Round(currentVentPushFlow, 1);
}
}
}

View File

@ -1,67 +0,0 @@
using MECF.Framework.Common.DataCenter;
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
public class RecipeGasFlowM1ToM17_NoneSiH4 : RecipeGasFlowCalculatorBase
{
public virtual string NameVentPushFlow_M17 => "Mfc17.Ramp";
protected override double GetTcsFlow(RecipeStep step, string chamberName)
{
var currentTcsBubbleHighFlow = ((DoubleParam)step.FindParamByControlName(NameTcsBubbleHighFlow)).Value;
var currentTcsPushFlow = ((DoubleParam)step.FindParamByControlName(NameTcsPushFlow)).Value;
var currentTcsFlowMode = ((ComboxParam)step.FindParamByControlName(NameTcsFlowMode)).Value;
var tcsFlow = 0d;
var tcsEff =
(double)QueryDataClient.Instance.Service.GetConfig($"PM.{chamberName}.Efficiency.TCS-Eff");
if (currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Run)
|| currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Vent))
{
tcsFlow = currentTcsBubbleHighFlow * tcsEff + currentTcsPushFlow;
}
else if (currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Purge))
{
tcsFlow = currentTcsBubbleHighFlow + currentTcsPushFlow;
}
return tcsFlow;
}
protected override void CalVentFlow(RecipeStep currentStep, string chamberName)
{
var currentTotalVentFlow = ((DoubleParam)currentStep.FindParamByControlName(NameTotalVentFlow)).Value;
var currentHClFlow = ((DoubleParam)currentStep.FindParamByControlName(NameHclFlow)).Value;
var currentC2H4Flow = ((DoubleParam)currentStep.FindParamByControlName(NameCxHxFlow)).Value;
var currentTcsFlowMode = (currentStep.FindParamByControlName(NameTcsFlowMode) as ComboxParam)?.Value;
var currentHClFlowMode = (currentStep.FindParamByControlName(NameHclFlowMode) as ComboxParam)?.Value;
var currentC2H4FlowMode = (currentStep.FindParamByControlName(NameCxHxFlowMode) as ComboxParam)?.Value;
var tcsFlow = GetTcsFlow(currentStep, chamberName);
var currentSiSourTotalFlowForPurge = (currentTcsFlowMode != null && currentTcsFlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? tcsFlow
: 0d) +
(currentHClFlowMode != null && currentHClFlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentHClFlow
: 0d);
var currentCSourTotalFlowForPurge =
currentC2H4FlowMode != null && currentC2H4FlowMode.Equals(FlowModeParam.FlowModeEnum.Run) == false
? currentC2H4Flow
: 0d;
var currentVentPushFlow = currentTotalVentFlow - currentSiSourTotalFlowForPurge - currentCSourTotalFlowForPurge;
((DoubleParam)currentStep.FindParamByControlName(NameVentPushFlow_M17)).Value = Math.Round(currentVentPushFlow, 1);
}
}
}