更新库文件(Commit ccea5a5),支持报警响应前和响应后三色灯呈现不同状态。

修正Buzzer Off按钮事件,变更为System.AckAllAlarms。
Wafer回到Cassette时,触发PJ_DONE事件,而不是直接调用三色灯。
修改三色灯实体判断逻辑,系统初始化时判断三色灯连接在哪个PLC,其它PLC的三色灯实例自动禁用。
TM点表中增加三色灯DO定义。
Recipe模板文件中增加StepUid列。
EventDefine.xml中新增50,PJ_DONE事件。
修正一些描述错误。
This commit is contained in:
Liang Su 2023-06-25 16:04:34 +08:00
parent d2c2a44682
commit 6e646ad3db
29 changed files with 439 additions and 348 deletions

View File

@ -534,7 +534,7 @@
<SicAETemp id="PMAETemp" module="" display="PMAETemp" schematicId="PMAETemp" doPyroCommunicationError="DO_PyroCommunicationError" EnableLogMessage="True" />
</SicAETemps>
<IoSignalTowers classType="MECF.Framework.RT.EquipmentLibrary.Devices.IoSignalTower" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoSignalTower id="SignalTower" module="PM1" display="SignalTower" schematicId="PMSignalTower" eventFile="PM1_SignalTower.xml"
<IoSignalTower id="SignalTower" module="PM1" display="SignalTower" schematicId="PMSignalTower" eventFile="STEvents.xml"
doGreen="DO_TowerGreen" doYellow="DO_TowerYellow" doRed="DO_TowerRed" doBuzzer="DO_Buzzer"
aoBuzzerBlinkFreq="AO_BuzzerBlinkFreqHz"/>
</IoSignalTowers>

View File

@ -463,7 +463,7 @@
<SicAETemp id="PMAETemp" module="" display="PMAETemp" schematicId="PMAETemp" doPyroCommunicationError="DO_PyroCommunicationError" EnableLogMessage="True" />
</SicAETemps>
<IoSignalTowers classType="Aitex.Core.RT.Device.Devices.IoSignalTower" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoSignalTower id="SignalTower" module="PM2" display="SignalTower" schematicId="PMSignalTower" eventFile="PM1_SignalTower.xml"
<IoSignalTower id="SignalTower" module="PM2" display="SignalTower" schematicId="PMSignalTower" eventFile="STEvents.xml"
doGreen="DO_TowerGreen" doYellow="DO_TowerYellow" doRed="DO_TowerRed" doBuzzer="DO_Buzzer"
aoBuzzerBlinkFreq="AO_BuzzerBlinkFreqHz"/>
</IoSignalTowers>

View File

@ -1,278 +1,279 @@
<?xml version="1.0" encoding="utf-8"?>
<Aitex>
<TableRecipeFormat RecipeChamberType="Sic" RecipeVersion="1.0">
<TableRecipeFormat RecipeChamberType="Sic" RecipeVersion="1.0">
<!--###########################################-->
<Catalog DisplayName="StepInfo">
<Group DisplayName="Step Information">
<Step ModuleName="" DeviceType="" InputType="ReadOnly" DisplayName="Step" UnitName="" ControlName="StepNo" />
<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="Growth Rate" UnitName="μm/h" ControlName="GrowthRate" InputMode="" Min="0" Max="10000" Description="" />
</Group>
</Catalog>
<!--###########################################-->
<Catalog DisplayName="StepInfo">
<Group DisplayName="Step Information">
<Step ModuleName="" DeviceType="" InputType="ReadOnly" DisplayName="Uid" UnitName="" ControlName="StepUid" />
<Step ModuleName="" DeviceType="" InputType="ReadOnly" DisplayName="Step" UnitName="" ControlName="StepNo" />
<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="Growth Rate" UnitName="μm/h" ControlName="GrowthRate" InputMode="" Min="0" Max="10000" Description="" />
</Group>
</Catalog>
<Catalog DisplayName="StepInfo">
<Group DisplayName="SH Flow->SH Total Flow">
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="1. Ar/H2 Switch" UnitName="" ControlName="SHArH2Switch.SetValve" Description="">
<Item DisplayName="Ar" ControlName="Ar" />
<Item DisplayName="H2" ControlName="H2" />
</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="3. Carray Gas Flow (M40)" UnitName="sccm" ControlName="Mfc40.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="ReadOnlySelection" DisplayName="5. Flow Set Mode" UnitName="" ControlName="FlowSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" />
</Step>
</Group>
<Catalog DisplayName="StepInfo">
<Group DisplayName="SH Flow->SH Total Flow">
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="1. Ar/H2 Switch" UnitName="" ControlName="SHArH2Switch.SetValve" Description="">
<Item DisplayName="Ar" ControlName="Ar" />
<Item DisplayName="H2" ControlName="H2" />
</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="3. Carray Gas Flow (M40)" UnitName="sccm" ControlName="Mfc40.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="ReadOnlySelection" DisplayName="5. Flow Set Mode" UnitName="" ControlName="FlowSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" />
</Step>
</Group>
<Group DisplayName="Pressure -> Rotation">
<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="7. Rotation Set" UnitName="rpm" ControlName="PMServo.SetActualSpeed" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
</Catalog>
<Group DisplayName="Pressure -> Rotation">
<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="7. Rotation Set" UnitName="rpm" ControlName="PMServo.SetActualSpeed" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
</Catalog>
<Catalog DisplayName="StepInfo">
<Group DisplayName="Temperature -> Control Mode">
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="8. PSU Control Mode" UnitName="" ControlName="TC1.SetHeaterMode" Description="">
<Item DisplayName="Power" ControlName="Power" />
<Item DisplayName="Pyro" ControlName="Pyro" />
</Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="9. PSU Set Mode" UnitName="" ControlName="SusHeaterSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" />
</Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="10. SCR Control Mode" UnitName="" ControlName="TC2.SetHeaterMode2" Description="">
<Item DisplayName="Power" ControlName="Power" />
<Item DisplayName="Pyro" ControlName="Pyro" />
</Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="11. SCR Set Mode" UnitName="" ControlName="WWHeaterSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" />
</Step>
</Group>
<Catalog DisplayName="StepInfo">
<Group DisplayName="Temperature -> Control Mode">
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="8. PSU Control Mode" UnitName="" ControlName="TC1.SetHeaterMode" Description="">
<Item DisplayName="Power" ControlName="Power" />
<Item DisplayName="Pyro" ControlName="Pyro" />
</Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="9. PSU Set Mode" UnitName="" ControlName="SusHeaterSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" />
</Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="10. SCR Control Mode" UnitName="" ControlName="TC2.SetHeaterMode2" Description="">
<Item DisplayName="Power" ControlName="Power" />
<Item DisplayName="Pyro" ControlName="Pyro" />
</Step>
<Step ModuleName="" DeviceType="" InputType="ReadOnlySelection" DisplayName="11. SCR Set Mode" UnitName="" ControlName="WWHeaterSetMode" Description="">
<Item DisplayName="Ramp" ControlName="Ramp" />
<Item DisplayName="Jump" ControlName="Jump" />
</Step>
</Group>
<Group DisplayName="Temperature -> Temp Setting">
<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="13. PSU Middle Temp Set" UnitName="℃" ControlName="TC1.SetL2TargetSP" 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="15. SCR Temp Set" UnitName="℃" ControlName="TC2.SetL3TargetSP" InputMode="" Min="0" Max="10000" Description="" />
</Group>
<Group DisplayName="Temperature -> Temp Setting">
<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="13. PSU Middle Temp Set" UnitName="℃" ControlName="TC1.SetL2TargetSP" 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="15. SCR Temp Set" UnitName="℃" ControlName="TC2.SetL3TargetSP" InputMode="" Min="0" Max="10000" Description="" />
</Group>
<Group DisplayName="Temperature -> Heater Output">
<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="17. PSU Middle Ratio Set" UnitName="%" ControlName="TC1.RecipeSetL2Ratio" 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="" />
<Group DisplayName="Temperature -> Heater Output">
<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="17. PSU Middle Ratio Set" UnitName="%" ControlName="TC1.RecipeSetL2Ratio" 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="19. SCR Upper Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL1Ratio" 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="21. SCR Lower Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL3Ratio" InputMode="" Min="0" Max="100" Description="" />
</Group>
<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="20. SCR Middle Ratio Set" UnitName="%" ControlName="TC2.RecipeSetL2Ratio" 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>
</Catalog>
</Catalog>
<Catalog DisplayName="StepInfo">
<Catalog DisplayName="StepInfo">
<Group DisplayName="SH Flow->Si Source->Si Source Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="22. Si Source Total Flow" UnitName="sccm" ControlName="SiSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
<Group DisplayName="SH Flow->Si Source->Si Source Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="22. Si Source Total Flow" UnitName="sccm" ControlName="SiSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
<Group DisplayName="SH Flow->Si Source->SiH4 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="23. SiH4 Flow Mode" UnitName="" ControlName="SiH4.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="24. SiH4 Flow (M14)" UnitName="sccm" ControlName="Mfc14.Ramp" InputMode="" Min="0" Max="10000" Description="M14.SiH4Flow"/>
</Group>
<Group DisplayName="SH Flow->Si Source->SiH4 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="23. SiH4 Flow Mode" UnitName="" ControlName="SiH4.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="24. SiH4 Flow (M14)" UnitName="sccm" ControlName="Mfc14.Ramp" InputMode="" Min="0" Max="10000" Description="M14.SiH4Flow"/>
</Group>
<Group DisplayName="SH Flow->Si Source->TCS Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="25. TCS Flow Mode" UnitName="" ControlName="TCS.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</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="27. TCS Bubb High Flow (M10)" UnitName="sccm" ControlName="Mfc10.Ramp" InputMode="" Min="0" Max="10000" 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="29. TCS Bubb Pressure (PC3)" UnitName="mbar" ControlName="Pressure3.Ramp" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
<Group DisplayName="SH Flow->Si Source->TCS Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="25. TCS Flow Mode" UnitName="" ControlName="TCS.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</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="27. TCS Bubb High Flow (M10)" UnitName="sccm" ControlName="Mfc10.Ramp" InputMode="" Min="0" Max="10000" 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="29. TCS Bubb Pressure (PC3)" UnitName="mbar" ControlName="Pressure3.Ramp" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
<Group DisplayName="SH Flow->Si Source->HCl Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="30. HCl Flow Mode" UnitName="" ControlName="HCl.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="31. HCl Flow (M13)" UnitName="sccm" ControlName="Mfc13.Ramp" InputMode="" Min="0" Max="10000" Description="M13.HClFlowsccm"/>
</Group>
<Group DisplayName="SH Flow->Si Source->HCl Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="30. HCl Flow Mode" UnitName="" ControlName="HCl.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="31. HCl Flow (M13)" UnitName="sccm" ControlName="Mfc13.Ramp" InputMode="" Min="0" Max="10000" Description="M13.HClFlowsccm"/>
</Group>
<Group DisplayName="SH Flow->Si Source->Si Source Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="32. Si Source Split Ratio" UnitName="" ControlName="SiSourSplitRatio"/>
<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="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="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="36. Si Source Outer Flow (M9)" UnitName="sccm" ControlName="Mfc9.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M9.SiSourceOuterFlow"/>
</Group>
<Group DisplayName="SH Flow->Si Source->Si Source Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="32. Si Source Split Ratio" UnitName="" ControlName="SiSourSplitRatio"/>
<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="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="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="36. Si Source Outer Flow (M9)" UnitName="sccm" ControlName="Mfc9.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M9.SiSourceOuterFlow"/>
</Group>
<Group DisplayName="SH Flow->C Source->C Source Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="37. C Source Total Flow" UnitName="sccm" ControlName="CSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
<Group DisplayName="SH Flow->C Source->C2H4 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="38. C2H4 Flow Mode" UnitName="" ControlName="C2H4.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="39. C2H4 Flow (M16)" UnitName="sccm" ControlName="Mfc16.Ramp" InputMode="" Min="0" Max="10000" Description="M16.C2H4Flow"/>
</Group>
<Group DisplayName="SH Flow->C Source->C Source Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="37. C Source Total Flow" UnitName="sccm" ControlName="CSourTotalFlow" InputMode="" Min="0" Max="10000" Description=""/>
</Group>
<Group DisplayName="SH Flow->C Source->C Source Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="42. C Source Split Ratio" UnitName="" ControlName="CSourSplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="43. C Source Push Pressure (PC7)" UnitName="mbar" ControlName="Pressure7.Ramp" InputMode="" Min="0" Max="10000" Description="PC7.CSourcePushPressure"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="44. 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="45. 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="46. 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->C Source->C2H4 Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="38. C2H4 Flow Mode" UnitName="" ControlName="C2H4.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="39. C2H4 Flow (M16)" UnitName="sccm" ControlName="Mfc16.Ramp" InputMode="" Min="0" Max="10000" Description="M16.C2H4Flow"/>
<Group DisplayName="SH Flow->Dope->Dope Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="47. 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="48. N2 Flow Mode" UnitName="" ControlName="N2Dilution.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="49. N2 Actual Flow" UnitName="sccm" ControlName="N2ActualFlow" InputMode="" Min="0" Max="10000" Description="N2ActualFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="50. N2 Low Flow (M4)" UnitName="sccm" ControlName="Mfc4.Ramp" InputMode="" Min="0" Max="10000" Description="M4.N2lowFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="51. Dilut Flow For N2 (M3)" UnitName="sccm" ControlName="Mfc3.Ramp" InputMode="" Min="0" Max="10000" Description="M3.DiluFlowforN2"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="52. Diluted N2 Flow (M6)" UnitName="sccm" ControlName="Mfc6.Ramp" InputMode="" Min="0" Max="10000" Description="M6.DilutedN2Flow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="53. N2 Post Dilut Pressure (PC1)" UnitName="mbar" ControlName="Pressure1.Ramp" InputMode="" Min="0" Max="10000" Description="PC1.N2PostDiluPres"/>
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="54. N2 High Flow Mode" UnitName="" ControlName="N2HighDoping.SetValve" Description="N2 HIGH FLOW MODE">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="55. N2 High Flow (M5)" UnitName="sccm" ControlName="Mfc5.Ramp" InputMode="" Min="0" Max="10000" Description="M5.N2HighFlow"/>
</Group>
<Group DisplayName="SH Flow->Dope->TMA Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="56. TMA Flow Mode" UnitName="" ControlName="TMA.SetValve" Description="TMA FLOW MODE">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="57. TMA Bubb Flow (M7)" UnitName="sccm" ControlName="Mfc7.Ramp" InputMode="" Min="0" Max="10000" Description="M7.TMABubbFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="58. TMA Push Flow (M8)" UnitName="sccm" ControlName="Mfc8.Ramp" InputMode="" Min="0" Max="10000" Description="M8.TMA Push"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="59. TMA Bubb Pressure (PC2)" UnitName="mbar" ControlName="Pressure2.Ramp" InputMode="" Min="0" Max="10000" Description="PC2.TMAPost-DiluPres"/>
</Group>
</Group>
<Group DisplayName="SH Flow->Dope->Dope Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="60. Dope Split Ratio" UnitName="" ControlName="DopeSplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="64. Dope Push Pressure (PC5)" UnitName="mbar" ControlName="Pressure5.Ramp" InputMode="" Min="0" Max="10000" Description="PC5.DopePushPressure"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="62. Dope Inner Flow (M20)" UnitName="sccm" ControlName="Mfc20.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M20.DopeInnerFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="63. Dope Middle Flow (M19)" UnitName="sccm" ControlName="Mfc19.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M19.DopeMidFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="61. Dope Outer Flow (M2)" UnitName="sccm" ControlName="Mfc2.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M2.DopeOuterFlow"/>
</Group>
<Group DisplayName="SH Flow->C Source->C Source Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="42. C Source Split Ratio" UnitName="" ControlName="CSourSplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="43. C Source Push Pressure (PC7)" UnitName="mbar" ControlName="Pressure7.Ramp" InputMode="" Min="0" Max="10000" Description="PC7.CSourcePushPressure"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="44. 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="45. 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="46. 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->SH Push Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="65. SH Push Total Flow" UnitName="sccm" ControlName="SHSuppTotalFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="66. SH Inner Flow" UnitName="sccm" ControlName="SHInnerFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="67. SH Middle Flow" UnitName="sccm" ControlName="SHMidFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="68. SH Outer Flow" UnitName="sccm" ControlName="SHOutterFlow" InputMode="" Min="0" Max="10000" DIsColumnEditable="false" escription=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="69. 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="70. 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="71. Outer Push Flow (M28)" UnitName="sccm" ControlName="Mfc28.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M28.OuterSuppFlow"/>
</Group>
</Catalog>
<Group DisplayName="SH Flow->Dope->Dope Total Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="47. 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="48. N2 Flow Mode" UnitName="" ControlName="N2Dilution.SetValve" Description="">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="49. N2 Actual Flow" UnitName="sccm" ControlName="N2ActualFlow" InputMode="" Min="0" Max="10000" Description="N2ActualFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="50. N2 Low Flow (M4)" UnitName="sccm" ControlName="Mfc4.Ramp" InputMode="" Min="0" Max="10000" Description="M4.N2lowFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="51. Dilut Flow For N2 (M3)" UnitName="sccm" ControlName="Mfc3.Ramp" InputMode="" Min="0" Max="10000" Description="M3.DiluFlowforN2"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="52. Diluted N2 Flow (M6)" UnitName="sccm" ControlName="Mfc6.Ramp" InputMode="" Min="0" Max="10000" Description="M6.DilutedN2Flow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="53. N2 Post Dilut Pressure (PC1)" UnitName="mbar" ControlName="Pressure1.Ramp" InputMode="" Min="0" Max="10000" Description="PC1.N2PostDiluPres"/>
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="54. N2 High Flow Mode" UnitName="" ControlName="N2HighDoping.SetValve" Description="N2 HIGH FLOW MODE">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="55. N2 High Flow (M5)" UnitName="sccm" ControlName="Mfc5.Ramp" InputMode="" Min="0" Max="10000" Description="M5.N2HighFlow"/>
</Group>
<Catalog DisplayName="StepInfo">
<Group DisplayName="Purge->SH Periphery Purge">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="72. SH Purge Flow (M27)" UnitName="sccm" ControlName="Mfc27.Ramp" InputMode="" Min="0" Max="10000" Description="M27.SHPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="73. Optic Purge Flow (M33)" UnitName="sccm" ControlName="Mfc33.Ramp" InputMode="" Min="0" Max="10000" Description="M33.OpticPurgeFlow"/>
</Group>
<Group DisplayName="SH Flow->Dope->TMA Flow">
<Step ModuleName="" DeviceType="" InputType="FlowModeSelection" DisplayName="56. TMA Flow Mode" UnitName="" ControlName="TMA.SetValve" Description="TMA FLOW MODE">
<Item DisplayName="Purge" ControlName="Purge" />
<Item DisplayName="Vent" ControlName="Vent" />
<Item DisplayName="Run" ControlName="Run" />
</Step>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="57. TMA Bubb Flow (M7)" UnitName="sccm" ControlName="Mfc7.Ramp" InputMode="" Min="0" Max="10000" Description="M7.TMABubbFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="58. TMA Push Flow (M8)" UnitName="sccm" ControlName="Mfc8.Ramp" InputMode="" Min="0" Max="10000" Description="M8.TMA Push"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="59. TMA Bubb Pressure (PC2)" UnitName="mbar" ControlName="Pressure2.Ramp" InputMode="" Min="0" Max="10000" Description="PC2.TMAPost-DiluPres"/>
</Group>
<Group DisplayName="Purge->Chamber Periphery Purge">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="74. GasRing Purge Flow (M32)" UnitName="sccm" ControlName="Mfc32.Ramp" InputMode="" Min="0" Max="1000000" Description="M32.GasRingPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="75. Chamber Purge Flow (M35)" UnitName="sccm" ControlName="Mfc35.Ramp" InputMode="" Min="0" Max="1000000" Description="M35.ChamberPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="76. 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="77. Shutter Purge Flow (M37)" UnitName="sccm" ControlName="Mfc37.Ramp" InputMode="" Min="0" Max="10000" Description="M37.ShutterPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="78. Heater-WF Purge Flow (M38)" UnitName="sccm" ControlName="Mfc38.Ramp" InputMode="" Min="0" Max="10000" Description="M38.Heater-WFPurgeFlow"/>
</Group>
<Group DisplayName="SH Flow->Dope->Dope Split">
<Step ModuleName="" DeviceType="" InputType="Set3RatioInput" DisplayName="60. Dope Split Ratio" UnitName="" ControlName="DopeSplitRatio"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="64. Dope Push Pressure (PC5)" UnitName="mbar" ControlName="Pressure5.Ramp" InputMode="" Min="0" Max="10000" Description="PC5.DopePushPressure"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="62. Dope Inner Flow (M20)" UnitName="sccm" ControlName="Mfc20.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M20.DopeInnerFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="63. Dope Middle Flow (M19)" UnitName="sccm" ControlName="Mfc19.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M19.DopeMidFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="61. Dope Outer Flow (M2)" UnitName="sccm" ControlName="Mfc2.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M2.DopeOuterFlow"/>
</Group>
<Group DisplayName="Purge->Vent Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="79. Total Vent Flow" UnitName="sccm" ControlName="TotalVentFlow" InputMode="" Min="0" Max="10000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="80. Vent Push Flow (M1)" UnitName="sccm" ControlName="Mfc1.Ramp" InputMode="" Min="0" Max="10000" Description="M1.VentPushFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="81. Vent Pre-Exhaust Pressure (PC4)" UnitName="mbar" ControlName="Pressure4.Ramp" InputMode="" Min="0" Max="10000" Description="PC4.VentPre-ExhaustPres"/>
</Group>
</Catalog>
<Group DisplayName="SH Flow->SH Push Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="65. SH Push Total Flow" UnitName="sccm" ControlName="SHSuppTotalFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="66. SH Inner Flow" UnitName="sccm" ControlName="SHInnerFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="67. SH Middle Flow" UnitName="sccm" ControlName="SHMidFlow" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="68. SH Outer Flow" UnitName="sccm" ControlName="SHOutterFlow" InputMode="" Min="0" Max="10000" DIsColumnEditable="false" escription=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="69. 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="70. 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="71. Outer Push Flow (M28)" UnitName="sccm" ControlName="Mfc28.Ramp" InputMode="" Min="0" Max="10000" IsColumnEditable="false" Description="M28.OuterSuppFlow"/>
</Group>
</Catalog>
<!--*************************************************************-->
<ProcessConfig DisplayName="ProcessConfig">
<Configs DisplayName="Process Config">
</Configs>
</ProcessConfig>
<Catalog DisplayName="StepInfo">
<Group DisplayName="Purge->SH Periphery Purge">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="72. SH Purge Flow (M27)" UnitName="sccm" ControlName="Mfc27.Ramp" InputMode="" Min="0" Max="10000" Description="M27.SHPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="73. Optic Purge Flow (M33)" UnitName="sccm" ControlName="Mfc33.Ramp" InputMode="" Min="0" Max="10000" Description="M33.OpticPurgeFlow"/>
</Group>
</TableRecipeFormat>
<Group DisplayName="Purge->Chamber Periphery Purge">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="74. GasRing Purge Flow (M32)" UnitName="sccm" ControlName="Mfc32.Ramp" InputMode="" Min="0" Max="1000000" Description="M32.GasRingPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="75. Chamber Purge Flow (M35)" UnitName="sccm" ControlName="Mfc35.Ramp" InputMode="" Min="0" Max="1000000" Description="M35.ChamberPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="76. 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="77. Shutter Purge Flow (M37)" UnitName="sccm" ControlName="Mfc37.Ramp" InputMode="" Min="0" Max="10000" Description="M37.ShutterPurgeFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="78. Heater-WF Purge Flow (M38)" UnitName="sccm" ControlName="Mfc38.Ramp" InputMode="" Min="0" Max="10000" Description="M38.Heater-WFPurgeFlow"/>
</Group>
<TableRecipeSchema>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="processType">
<xs:restriction base="xs:string">
<xs:enumeration value="Process" />
<xs:enumeration value="Clean" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="booleanType">
<xs:restriction base="xs:string">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
<xs:enumeration value="False" />
<xs:enumeration value="True" />
<xs:enumeration value="false" />
<xs:enumeration value="true" />
</xs:restriction>
</xs:simpleType>
<xs:element name="TableRecipeData">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Step">
<xs:complexType>
<xs:sequence>
<Group DisplayName="Purge->Vent Flow">
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="79. Total Vent Flow" UnitName="sccm" ControlName="TotalVentFlow" InputMode="" Min="0" Max="10000" Description=""/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="80. Vent Push Flow (M1)" UnitName="sccm" ControlName="Mfc1.Ramp" InputMode="" Min="0" Max="10000" Description="M1.VentPushFlow"/>
<Step ModuleName="" DeviceType="" InputType="DoubleInput" DisplayName="81. Vent Pre-Exhaust Pressure (PC4)" UnitName="mbar" ControlName="Pressure4.Ramp" InputMode="" Min="0" Max="10000" Description="PC4.VentPre-ExhaustPres"/>
</Group>
</Catalog>
<xs:element name="Mfc">
<xs:complexType>
<xs:attribute name="Flow.Gas1" type="xs:double" use="optional" />
<xs:attribute name="Flow.Gas2" type="xs:double" use="optional" />
<xs:attribute name="Flow.Gas3" type="xs:double" use="optional" />
<xs:attribute name="Flow.Gas4" type="xs:double" use="optional" />
</xs:complexType>
</xs:element>
<!--*************************************************************-->
<ProcessConfig DisplayName="ProcessConfig">
<Configs DisplayName="Process Config">
</Configs>
</ProcessConfig>
</xs:sequence>
<xs:attribute name="StepNo" type="xs:string" use="required" />
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="Loop" type="xs:string" use="required" />
<xs:attribute name="Type" type="xs:string" use="required" />
<xs:attribute name="StepTime" type="xs:time" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="RecipeChamberType" type="xs:string" fixed="Strip" use="required" />
<xs:attribute name="RecipeProcessType" type="xs:string" use="required" />
<xs:attribute name="RecipeVersion" type="xs:string" fixed="1.0" use="required" />
<xs:attribute name="CreatedBy" type="xs:string" use="required" />
<xs:attribute name="CreationTime" type="xs:dateTime" use="required" />
<xs:attribute name="LastRevisedBy" type="xs:string" use="required" />
<xs:attribute name="LastRevisionTime" type="xs:dateTime" use="required" />
<xs:attribute name="Description" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
</TableRecipeSchema>
</TableRecipeFormat>
<TableRecipeSchema>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="processType">
<xs:restriction base="xs:string">
<xs:enumeration value="Process" />
<xs:enumeration value="Clean" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="booleanType">
<xs:restriction base="xs:string">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
<xs:enumeration value="False" />
<xs:enumeration value="True" />
<xs:enumeration value="false" />
<xs:enumeration value="true" />
</xs:restriction>
</xs:simpleType>
<xs:element name="TableRecipeData">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Step">
<xs:complexType>
<xs:sequence>
<xs:element name="Mfc">
<xs:complexType>
<xs:attribute name="Flow.Gas1" type="xs:double" use="optional" />
<xs:attribute name="Flow.Gas2" type="xs:double" use="optional" />
<xs:attribute name="Flow.Gas3" type="xs:double" use="optional" />
<xs:attribute name="Flow.Gas4" type="xs:double" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="StepNo" type="xs:string" use="required" />
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="Loop" type="xs:string" use="required" />
<xs:attribute name="Type" type="xs:string" use="required" />
<xs:attribute name="StepTime" type="xs:time" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="RecipeChamberType" type="xs:string" fixed="Strip" use="required" />
<xs:attribute name="RecipeProcessType" type="xs:string" use="required" />
<xs:attribute name="RecipeVersion" type="xs:string" fixed="1.0" use="required" />
<xs:attribute name="CreatedBy" type="xs:string" use="required" />
<xs:attribute name="CreationTime" type="xs:dateTime" use="required" />
<xs:attribute name="LastRevisedBy" type="xs:string" use="required" />
<xs:attribute name="LastRevisionTime" type="xs:dateTime" use="required" />
<xs:attribute name="Description" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
</TableRecipeSchema>
</Aitex>

View File

@ -42,6 +42,15 @@
<WcfPlc id="MainPLC" module="TM" display="" schematicId="" unit="" option="true" />
</WcfPlcs>
<IoSignalTowers classType="MECF.Framework.RT.EquipmentLibrary.Devices.IoSignalTower" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoSignalTower id="SignalTower" module="TM" display="SignalTower" schematicId="TMSignalTower"
eventFile="STEvents.xml"
doGreen="DO_TowerGreen"
doYellow="DO_TowerYellow"
doRed="DO_TowerRed"
doBuzzer="DO_Buzzer" />
</IoSignalTowers>
<IoSensors classType="Aitex.Core.RT.Device.Devices.IoSensor" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoSensor id="LLWaferPlaced" module="TM" display="" schematicId="" unit="" di="DI_LoadWaferPlaced" textOutTrigValue="true" warningText="" alarmText="" />
<IoSensor id="ForelineBasePressureReady" module="TM" display="" schematicId="" unit="" di="DI_ForelineBasePressureReady" textOutTrigValue="true" warningText="" alarmText="" />

View File

@ -212,6 +212,12 @@
<DO_ITEM Index="46" Name="DO_UnloadStationLifterCYDown" BufferOffset="46" Addr="46" Description="" />
<DO_ITEM Index="47" Name="DO_TMToPMABanlance(V70_1)" BufferOffset="47" Addr="47" Description="" />
<DO_ITEM Index="48" Name="DO_TMToPMBBanlance(V70_2)" BufferOffset="48" Addr="48" Description="" />
<DO_ITEM Index="55" Name="DO_TowerGreen" BufferOffset="55" Addr="55" Description="" />
<DO_ITEM Index="56" Name="DO_TowerYellow" BufferOffset="56" Addr="56" Description="" />
<DO_ITEM Index="57" Name="DO_TowerRed" BufferOffset="57" Addr="57" Description="" />
<DO_ITEM Index="58" Name="DO_Buzzer" BufferOffset="58" Addr="58" Description="" />
<DO_ITEM Index="61" Name="DO_UnloadFastPump" BufferOffset="61" Addr="61" Description="V122" />
<DO_ITEM Index="62" Name="DO_UnloadSlowPump" BufferOffset="62" Addr="62" Description="V123" />
<DO_ITEM Index="64" Name="DO_ReactorAATMTransferReady" BufferOffset="64" Addr="64" Description="" />

View File

@ -22,6 +22,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -30,6 +31,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWithoutCopyFiles|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
@ -37,7 +39,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<LangVersion>7.3</LangVersion>
<LangVersion>latest</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>

View File

@ -192,6 +192,14 @@
</DetailDesc>
<Solution />
</EventDefinition>
<EventDefinition>
<Id>50</Id>
<Description>Process Job Done, Please check wafer at {0} slot {1}</Description>
<Level>Warning</Level>
<EventEnum>PJ_DONE</EventEnum>
<DetailDesc>ProcessJob结束Wafer返回到Cassette有EFEM或Wafer返回LL无EFEM</DetailDesc>
<Solution />
</EventDefinition>
<!-- PM Information -->
<EventDefinition>
<Id>1000</Id>

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<STEvents>
<STPatterns>
<!--注意:"JobDone"为系统保留模式,请仅更改"pattern",其余属性请勿修改 -->
<STPattern name="JobDone" pattern="--.........." cycles="-1" priority="-1" part="Buzzer" />
<STPattern name="Alarm" pattern="-----.." cycles="-1" priority="0"/>
<STPattern name="Warning" pattern="-----......." cycles="-1" priority="5"/>
<STPattern name="Blink" pattern="----------.........." cycles="-1" priority="10"/>
</STPatterns>
<STEvents>
<STEvent name ="PM1.IsAlarm" Red="On" Yellow="Off" Green="Off" Buzzer="Alarm"/>
<STEvent name ="TM.IsAlarm" Red="On" Yellow="Off" Green="Off" Buzzer="Alarm"/>
<STEvent name ="LoadLock.IsAlarm" Red="On" Yellow="Off" Green="Off" Buzzer="Alarm"/>
<STEvent name ="UnLoad.IsAlarm" Red="On" Yellow="Off" Green="Off" Buzzer="Alarm"/>
<STEvent name ="Aligner.IsAlarm" Red="On" Yellow="Off" Green="Off" Buzzer="Alarm"/>
<STEvent name ="WaferRobot.IsAlarm" Red="On" Yellow="Off" Green="Off" Buzzer="Alarm"/>
<STEvent name ="TrayRobot.IsAlarm" Red="On" Yellow="Off" Green="Off" Buzzer="Alarm"/>
<STEvent name ="PM1.IsWarning" Red="Off" Yellow="On" Green="Off" Buzzer="Warning"/>
<STEvent name ="TM.IsWarning" Red="Off" Yellow="On" Green="Off" Buzzer="Warning"/>
<STEvent name ="PM1.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="TM.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="LoadLock.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="UnLoad.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="Aligner.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="WaferRobot.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="TrayRobot.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="System.IsAutoRunning" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
</STEvents>
</STEvents>

39
SicRT/Config/STEvents.xml Normal file
View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8" ?>
<STEvents>
<STPatterns>
<!--注意:"JobDone"为系统保留模式,请仅更改"pattern",其余属性请勿修改 -->
<STPattern name="JobDone" pattern="--.........." cycles="-1" priority="-1" part="Buzzer" />
<STPattern name="AlarmWithoutAck" pattern="----------" cycles="-1" priority="0"/>
<STPattern name="AlarmAcked" pattern="-----.." cycles="-1" priority="1"/>
<STPattern name="AlarmBuzzer" pattern="-----.." cycles="-1" priority="2"/>
<STPattern name="WarningWithoutAck" pattern="----------" cycles="-1" priority="5"/>
<STPattern name="WarningAcked" pattern="-----......." cycles="-1" priority="6"/>
<STPattern name="WarningBuzzer" pattern="-----......." cycles="-1" priority="7"/>
<STPattern name="Blink" pattern="----------.........." cycles="-1" priority="10"/>
</STPatterns>
<STEvents>
<STEvent name="System.HasActiveAlarmEvent" Red="AlarmWithoutAck" Yellow="Off" Green="Off" Buzzer="AlarmBuzzer" />
<STEvent name="System.HasAckedAlarmEvent" Red="AlarmAcked" Yellow="Off" Green="Off" Buzzer="Off"/>
<STEvent name="System.HasActiveWarningEvent" Red="Off" Yellow="WarningWithoutAck" Green="Off" Buzzer="WarningBuzzer" />
<STEvent name="System.HasAckedWarningEvent" Red="Off" Yellow="WarningAcked" Green="Off" Buzzer="Off" />
<STEvent name="PM1.IsProcessing" Red="Off" Yellow="Off" Green="On" Buzzer="Off" />
<STEvent name="PM2.IsProcessing" Red="Off" Yellow="Off" Green="On" Buzzer="Off" />
<STEvent name ="PM1.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="PM2.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="TM.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="LoadLock.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="UnLoad.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="Aligner.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="WaferRobot.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="TrayRobot.IsBusy" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
<STEvent name ="System.IsAutoRunning" Red="Off" Yellow="Off" Green="On" Buzzer="Off"/>
</STEvents>
</STEvents>

View File

@ -81,24 +81,11 @@ namespace SicRT.Modules.Schedulers
var ret = base.StopWaitTransfer(robot);
if (ret)
{
// 传盘结束后如果上个动作是PlaceWafer回到Cassette则响蜂鸣器进行提示。
if (_lastTransferAction == TaskType.Place)
// 当Wafer返回到Cassette时触发警告响蜂鸣器
if (_lastTransferAction == TaskType.Place
&& WaferManager.Instance.CheckHasWafer(_module, _lastTransferSlot))
{
// PM1一定存在PM2不一定如果PM2不存在则默认使用PM1的三色灯
var pmOfSt = _pm1;
// 判断最后一次放的Wafer在哪个PM做的工艺则点亮对应PM的蜂鸣器
var wi = GetWaferInfo(_lastTransferSlot);
var whichPmName = wi.SubstHists.FirstOrDefault(x => x.locationID.Contains("PM"));
if (whichPmName != null)
{
if (whichPmName.locationID.ToUpper() == "PM2" && _pm2 != null)
pmOfSt = _pm2;
}
// 触发蜂鸣器
if (pmOfSt?.CreateProcessDoneSignal(out var reason) == false)
EV.PostWarningLog(Module.ToString(), reason);
EV.PostMessage(Module.ToString(), EventEnum.PJ_DONE, _module, _lastTransferSlot.ToString());
}
}

View File

@ -176,7 +176,12 @@ namespace SicRT.Equipments.Systems
private IoTC _tc = null;
/// <summary>
/// 主三色灯对象。
/// 主三色灯判断方式参考<see cref="GetMainSignalTower"/>方法。
/// </summary>
private IoSignalTower _mainSignalTower;
public EquipmentManager()
{
Module = "System";
@ -189,6 +194,8 @@ namespace SicRT.Equipments.Systems
{
InitModules();
GetMainSignalTower();
EnumLoop<RtState>.ForEach((item) =>
{
MapState((int)item, item.ToString());
@ -484,7 +491,7 @@ namespace SicRT.Equipments.Systems
DATA.Subscribe("System.IsBusy", () => IsRunning);
DATA.Subscribe("System.IsAutoRunning", () => IsRunning);
DATA.Subscribe("System.Modules", () => _modules);
DATA.Subscribe("System.LiveAlarmEvent", () => EV.GetAlarmEvent());
DATA.Subscribe("System.SignalTowerData", () => _mainSignalTower?.DeviceData);
DATA.Subscribe("System.IsEngMode", () => _isEngMode);
}
@ -653,10 +660,11 @@ namespace SicRT.Equipments.Systems
}
void InitSetPSUY()
private void InitSetPSUY()
{
Task.Delay(2000).ContinueWith(x=> _tc.SetPCPSUY());
}
private void Instance_OnAlarmEvent(EventItem obj)
{
FSM_MSG msg;
@ -678,12 +686,81 @@ namespace SicRT.Equipments.Systems
}
// 产生新的报警时重新启用Buzzer
foreach (var dev in DEVICE.GetAllDevice().Where(x => x is IoSignalTower).ToList())
_mainSignalTower?.SwitchOffBuzzer(false);
}
}
/// <summary>
/// 获取主三色灯对象。
/// </summary>
/// <remarks>
/// 系统设备配置中配置多个三色灯对象,但软件仅控制唯一个三色灯。
/// <br/>
/// 该三色灯定义为主三色灯,其余三色灯对象将被禁用,其工作状态自动跟随主三色灯。
/// <br/>
/// 通常情况下使用PM1的三色灯作为主三色灯。
/// <br/>
/// 如果PM1被卸载则系统自动使用PM2控制的三色灯依此类推。
/// </remarks>
/// <returns></returns>
private void GetMainSignalTower()
{
// 系统配置是否PM控制三色灯
var isPmHostSt = SC.GetValue("System.IsPMHostSignalTower", true);
// 获取三色灯列表,并按名称排序
var sts = DEVICE.GetAllDevice()
.Where(x => x is IoSignalTower)
.OrderBy(x => x.Module)
.Cast<IoSignalTower>()
.ToList();
// 禁用所有三色灯,待确定完主灯后再使能主灯。
foreach (var st in sts)
{
st.IsEnabled = false;
}
// 判断三色灯主灯
if (isPmHostSt)
{
var pmAttachedSts =
sts.Where(x => x.Module.StartsWith("PM"))
.OrderBy(x => x.Module)
.ToList();
if (pmAttachedSts.Any())
{
if (dev is IoSignalTower st)
st?.SwitchOffBuzzer(false);
foreach (var st in pmAttachedSts)
{
if (st != null && Modules.TryGetValue(ModuleHelper.Converter(st.Module), out var module))
{
if (module.IsInstalled)
{
// 找到第一个有效的PM获取其三色灯对象。
_mainSignalTower = st;
break;
}
}
}
}
}
// 如果没找到PM三色灯或系统配置指定使用TM三色灯
// 获取隶属于TM的三色灯对象
_mainSignalTower ??= sts.FirstOrDefault(x => x.Module.StartsWith("TM"));
// 使能三色灯
if (_mainSignalTower != null)
{
LOG.Write($"SignalTower attaches to {_mainSignalTower.Module}");
_mainSignalTower.IsEnabled = true;
}
else
{
LOG.Error("SignalTower object not found");
}
}
#region Init

View File

@ -46,11 +46,10 @@ namespace SicRT.Instances
, RtInstance.DATABASE_NAME
, PathManager.GetCfgDir() + "DBModel.sql");
Singleton<EventManager>.Instance.Initialize(PathManager.GetCfgDir() + "EventDefine.xml");
Singleton<DataManager>.Instance.Initialize();
Singleton<OperationManager>.Instance.Initialize();
Singleton<DataManager>.Instance.Initialize();
Singleton<EventManager>.Instance.Initialize(PathManager.GetCfgDir() + "EventDefine.xml");
RecipeFileManager.Instance.Initialize(new SicRecipeFileContext());
@ -97,10 +96,6 @@ namespace SicRT.Instances
// 若过早的使能DeviceManager被卸载的Module可能产生误报警。
Singleton<DeviceEntity>.Instance.Initialize();
// Singleton<RouteManager>.Instance.Initialize();
//Singleton<FAJobManager>.Instance.Initialize();
Singleton<EventManager>.Instance.SubscribeOperationAndData();
HistoryCoatingManager.Instance.Initialize();
}

View File

@ -41,6 +41,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -50,6 +51,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Resources\MyLogoTray.ico</ApplicationIcon>
@ -64,7 +66,7 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<LangVersion>latest</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
@ -196,7 +198,7 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<SubType>Designer</SubType>
</None>
<None Include="Config\PM1_SignalTower.xml">
<None Include="Config\STEvents.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

View File

@ -40,6 +40,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
@ -50,6 +51,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
@ -64,7 +66,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<LangVersion>7.3</LangVersion>
<LangVersion>latest</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>

View File

@ -25,6 +25,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -34,6 +35,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Resources\MyLogoPurple.ico</ApplicationIcon>
@ -44,7 +46,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<LangVersion>latest</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>

View File

@ -38,6 +38,7 @@
<menuItem id="Alarm" resKey="Alarm" AlarmModule="System" >
<menuItem id="Alarm" resKey="Alarm" viewmodel="MECF.Framework.UI.Client.CenterViews.Alarms.Alarm.AlarmViewModel,MECF.Framework.UI.Client" />
<menuItem id="EventDiagnosis" resKey="Event Diagnosis" viewmodel="MECF.Framework.UI.Client.CenterViews.Diagnosis.EventGeneratorViewModel,MECF.Framework.UI.Client" />
</menuItem>
<menuItem id="PM1" resKey="PM1" System="PM1">

View File

@ -858,7 +858,7 @@ namespace SicUI.Client
public void BuzzerOff()
{
InvokeClient.Instance.Service.DoOperation($"PM1.SignalTower.{AITSignalTowerOperation.SwitchOffBuzzer}",true);
InvokeClient.Instance.Service.DoOperation($"System.AckAllAlarms");
}
#region override functions

View File

@ -3,9 +3,13 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:alarm="clr-namespace:MECF.Framework.UI.Client.CenterViews.Alarms.Alarm;assembly=MECF.Framework.UI.Client"
mc:Ignorable="d"
d:DesignHeight="325" d:DesignWidth="1200">
<UserControl.Resources>
<alarm:EventLevelToBackgroundConverter x:Key="EventLevelToBackgroundConverter"/>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="7*" />
@ -27,7 +31,13 @@
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding Type}" Background="{Binding TextColor}" FontSize="12"/>
<Border Background="{Binding Level, Converter={StaticResource EventLevelToBackgroundConverter}}"
Margin="-2">
<TextBlock
Text="{Binding LevelString}"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

View File

@ -1,18 +1,6 @@
using Aitex.Core.UI.View.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using AlarmInfoUi = Aitex.Core.UI.View.Common.AlarmItem;
namespace SicUI.Models.PMs
{
@ -30,9 +18,9 @@ namespace SicUI.Models.PMs
{
if (e.AddedItems.Count == 1)
{
var item = e.AddedItems[0] as AlarmItem;
var item = e.AddedItems[0] as AlarmInfoUi;
AnalysisText.Text = string.Format("Event Type{0}\r\n\r\nEvent Name{1}\r\n\r\nEvent Number{2}\r\n\r\nTime{3}\r\n\r\nDescription{4}\r\n\r\nSolution{5}",
item.Type,
item.Level,
item.EventEnum,
item.EventId,
item.OccuringTime,

View File

@ -1,13 +1,11 @@
using System.Collections.Generic;
using Aitex.Core.Common.DeviceData;
using OpenSEMI.ClientBase;
using System;
using Aitex.Core.Utilities;
using Aitex.Core.UI.View.Common;
using System.Windows.Media;
using MECF.Framework.UI.Client.ClientBase;
using Aitex.Core.RT.Event;
using System.Linq;
using AlarmInfoUi = Aitex.Core.UI.View.Common.AlarmItem;
namespace SicUI.Models.PMs
{
@ -38,9 +36,9 @@ namespace SicUI.Models.PMs
if (item.Source != SystemName)
continue;
var it = new AlarmItem()
var it = new AlarmInfoUi()
{
Type = item.Level == EventLevel.Alarm ? "Alarm" : (item.Level == EventLevel.Information ? "Info" : "Warning"),
Level = item.Level,
OccuringTime = item.OccuringTime.ToString(),//item.OccuringTime.ToString("HH:mm:ss"),
Description = item.Description,
EventEnum = item.EventEnum,
@ -48,12 +46,7 @@ namespace SicUI.Models.PMs
Explaination = item.Explaination,
Solution = item.Solution,
};
switch (item.Level)
{
case EventLevel.Alarm: it.TextColor = Brushes.Red; break;
case EventLevel.Warning: it.TextColor = Brushes.Yellow; break;
default: it.TextColor = Brushes.White; break;
}
alarmEvents.Add(it);
}
if (AlarmEvents == null || (alarmEvents.Count != AlarmEvents.Count))

View File

@ -556,7 +556,7 @@ namespace SicUI.Models.PMs
// 如果配方没变,不需要推送
if (!CurrentRecipe.IsChanged)
{
DialogBox.ShowWarning("The recipe has not changed.");
DialogBox.ShowWarning("The recipe does not change.");
return;
}
@ -589,7 +589,7 @@ namespace SicUI.Models.PMs
// 如果配方没变,不需要推送
if (!CurrentRecipe.IsChanged)
{
DialogBox.ShowInfo("The recipe has not changed.");
DialogBox.ShowInfo("The recipe does not change.");
return;
}

View File

@ -49,6 +49,7 @@ del "$(ProjectDir)..\SicSetup\Packages\SicUI\*.old"
if exist "$(ProjectDir)..\SicSetup\Packages\SicUI\Logs" rd "$(ProjectDir)..\SicSetup\Packages\SicUI\Logs" /s /q
if exist "$(ProjectDir)..\SicSetup\Packages\SicUI\PresetGroups" rd "$(ProjectDir)..\SicSetup\Packages\SicUI\PresetGroups" /s /q</PostBuildEvent>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -58,6 +59,7 @@ if exist "$(ProjectDir)..\SicSetup\Packages\SicUI\PresetGroups" rd "$(ProjectDir
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Themes\MyLogoNormal.ico</ApplicationIcon>
@ -69,7 +71,7 @@ if exist "$(ProjectDir)..\SicSetup\Packages\SicUI\PresetGroups" rd "$(ProjectDir
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<LangVersion>7.3</LangVersion>
<LangVersion>latest</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>

Binary file not shown.