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

# Conflicts:
#	App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml
#	App/Modules/SicModules/Config/PM/PM2/_ioDefinePM2.xml
#	App/SicSimulator/Config/_ioDefinePM.xml
This commit is contained in:
hanqiangqiang 2026-08-03 16:38:06 +08:00
commit c5e0b04413
7 changed files with 107 additions and 133 deletions

View File

@ -257,8 +257,21 @@
</DoSensors>
<SicServos classType="Aitex.Core.RT.Device.Devices.SicServo" assembly="MECF.Framework.RT.EquipmentLibrary">
<SicServo id="PMServo" module="" display="PMServo" schematicId="PMServo" unit="" aioType="float" aiActualSpeed="AI_ActualSpeed" aiActualCurrent="AI_ActualCurrent" aiAccSpeed="AI_ActualspeedACC" aiDecSpeed="AI_ActualspeedDEC" aoActualSpeedSetPoint="AO_SpindleSpeed" aoAccSpeedSetPoint="AO_SpindleACC" aoDecSpeedSetPoint="AO_SpindleDEC" diServoReady="DI_ServoReady" diServoError="DI_ServoDriverFaultSW" doServoEnable="DO_ServoEnable" doServoInital="DO_ServoInitial" doServoReset="DO_ServoReset" />
<SicServo id="PMServo" module="" display="PMServo" schematicId="PMServo" unit="" aioType="float"
aiActualSpeed="AI_ActualSpeed"
aiActualCurrent="AI_ActualCurrent"
aiAccSpeed="AI_ActualspeedACC"
aiDecSpeed="AI_ActualspeedDEC"
aoActualSpeedSetPoint="AO_SpindleSpeed"
aoAccSpeedSetPoint="AO_SpindleACC"
aoDecSpeedSetPoint="AO_SpindleDEC"
diServoReady="DI_ServoReady"
diServoError="DI_ServoDriverFaultSW"
doServoEnable="DO_ServoEnable"
doServoInital="DO_ServoInitial"
doServoReset="DO_ServoReset" />
</SicServos>
<IoSignalTowers classType="MECF.Framework.RT.EquipmentLibrary.Devices.IoSignalTower" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoSignalTower id="SignalTower" module="PM1" display="SignalTower" schematicId="PMSignalTower"
eventFile="STEvents.xml"

View File

@ -747,9 +747,9 @@
<AO_ITEM Index="114" Name="AO_PressCtrl7" BufferOffset="114" Addr="114" Description="" />
<AO_ITEM Index="115" Name="AO_PressCtrl8" BufferOffset="115" Addr="115" Description="" />
<AO_ITEM Index="116" Name="AO_PressCtrl9" BufferOffset="116" Addr="116" Description="" />
<AO_ITEM Index="118" Name="AO_Setpointspeed" BufferOffset="118" Addr="118" Description="" />
<AO_ITEM Index="120" Name="AO_SetpointACC" BufferOffset="120" Addr="120" Description="" />
<AO_ITEM Index="121" Name="AO_SetpointDEC" BufferOffset="121" Addr="121" Description="" />
<AO_ITEM Index="118" Name="AO_SpindleSpeed" BufferOffset="118" Addr="118" Description="" />
<AO_ITEM Index="120" Name="AO_SpindleACC" BufferOffset="120" Addr="120" Description="" />
<AO_ITEM Index="121" Name="AO_SpindleDEC" BufferOffset="121" Addr="121" Description="" />
<AO_ITEM Index="123" Name="AO_ConfinementRingMode" BufferOffset="123" Addr="123" Description="" />
<AO_ITEM Index="124" Name="AO_ConfinementRingSpeed" BufferOffset="124" Addr="124" Description="" />
<AO_ITEM Index="125" Name="AO_ConfinementRingDistance" BufferOffset="125" Addr="125" Description="" />

View File

@ -3,22 +3,22 @@
<VersionID Name="V2.2.3.0" />
<Dig_In>
<Block Index="0">
<DI_ITEM Index="0" Name="DI_ChamLidClosed" BufferOffset="0" Addr="0" Description="" />
<DI_ITEM Index="0" Name="DI_ChamberCloseDone" BufferOffset="0" Addr="0" Description="" />
<DI_ITEM Index="3" Name="DI_ChamCabDoorClosed" BufferOffset="3" Addr="3" Description="" />
<DI_ITEM Index="4" Name="DI_ChamPressAboveATMSW" BufferOffset="4" Addr="4" Description="" />
<DI_ITEM Index="5" Name="DI_ChamAtSafeProcessPressSW" BufferOffset="5" Addr="5" Description="" />
<DI_ITEM Index="6" Name="DI_DORPressVacSW" BufferOffset="6" Addr="6" Description="" />
<DI_ITEM Index="7" Name="DI_DORPressATMSW" BufferOffset="7" Addr="7" Description="" />
<DI_ITEM Index="6" Name="DI_DORPressVac" BufferOffset="6" Addr="6" Description="" />
<DI_ITEM Index="7" Name="DI_DORPressATM" BufferOffset="7" Addr="7" Description="" />
<DI_ITEM Index="8" Name="DI_PMH2SDetectorAlarm" BufferOffset="8" Addr="8" Description="" />
<DI_ITEM Index="9" Name="DI_PMATMSW" BufferOffset="9" Addr="9" Description="" />
<DI_ITEM Index="10" Name="DI_HeaterTempUpLimitAlarm" BufferOffset="10" Addr="10" Description="" />
<DI_ITEM Index="11" Name="DI_HeaterTempLowLimitSW" BufferOffset="11" Addr="11" Description="" />
<DI_ITEM Index="11" Name="DI_HeaterTempLowLimitAlarm" BufferOffset="11" Addr="11" Description="" />
<DI_ITEM Index="12" Name="DI_ConfinementRingUp" BufferOffset="12" Addr="12" Description="" />
<DI_ITEM Index="13" Name="DI_RotaryMotorSafeSpeed" BufferOffset="13" Addr="13" Description="" />
<DI_ITEM Index="14" Name="DI_PMH2SeDetectorAlarm" BufferOffset="14" Addr="14" Description="" />
<DI_ITEM Index="15" Name="DI_SHFlowLowAlarm" BufferOffset="15" Addr="15" Description="" />
<DI_ITEM Index="16" Name="DI_ChamTopFlowSW" BufferOffset="16" Addr="16" Description="" />
<DI_ITEM Index="17" Name="DI_ChamMiddleFlow1SW" BufferOffset="17" Addr="17" Description="" />
<DI_ITEM Index="16" Name="DI_ChamTopFlowLowAlarm" BufferOffset="16" Addr="16" Description="" />
<DI_ITEM Index="17" Name="DI_ChamMiddleFlow1LowAlarm" BufferOffset="17" Addr="17" Description="" />
<DI_ITEM Index="18" Name="DI_ChamBottomFlowLowAlarm" BufferOffset="18" Addr="18" Description="" />
<DI_ITEM Index="19" Name="DI_Foreline1FlowLowAlarm" BufferOffset="19" Addr="19" Description="" />
<DI_ITEM Index="20" Name="DI_PowerRod1FlowLowAlarm" BufferOffset="20" Addr="20" Description="" />
@ -33,7 +33,7 @@
<DI_ITEM Index="30" Name="DI_PMH2DetectorAlarm" BufferOffset="30" Addr="30" Description="" />
<DI_ITEM Index="31" Name="DI_GBH2SDetectorAlarm" BufferOffset="31" Addr="31" Description="" />
<DI_ITEM Index="32" Name="DI_GBExhaustDPLowAlarm" BufferOffset="32" Addr="32" Description="" />
<DI_ITEM Index="33" Name="DI_GBDoorClosed" BufferOffset="33" Addr="33" Description="" />
<DI_ITEM Index="33" Name="DI_GBDoorCloseDone" BufferOffset="33" Addr="33" Description="" />
<DI_ITEM Index="34" Name="DI_GBSO2DetectorAlarm" BufferOffset="34" Addr="34" Description="" />
<DI_ITEM Index="35" Name="DI_GasPipeTempCtrlAlarm" BufferOffset="35" Addr="35" Description="" />
<DI_ITEM Index="36" Name="DI_DryPump1Alarm" BufferOffset="36" Addr="36" Description="" />
@ -42,30 +42,30 @@
<DI_ITEM Index="40" Name="DI_PumpExhaustDPLowAlarm" BufferOffset="40" Addr="40" Description="" />
<DI_ITEM Index="41" Name="DI_ScrubberIntlk" BufferOffset="41" Addr="41" Description="" />
<DI_ITEM Index="42" Name="DI_FacilityIntlk" BufferOffset="42" Addr="42" Description="" />
<DI_ITEM Index="45" Name="DI_RotaryMotorAlarm" BufferOffset="45" Addr="45" Description="" />
<DI_ITEM Index="48" Name="DI_ReactorWaterLeakSW" BufferOffset="48" Addr="48" Description="" />
<DI_ITEM Index="49" Name="DI_ChamLidPushButtonLocal" BufferOffset="49" Addr="49" Description="" />
<DI_ITEM Index="45" Name="DI_ServoDriverFaultSW" BufferOffset="45" Addr="45" Description="" />
<DI_ITEM Index="48" Name="DI_ReactorWaterLeakAlarm" BufferOffset="48" Addr="48" Description="" />
<DI_ITEM Index="49" Name="DI_ChamLidPushButtonRemote" BufferOffset="49" Addr="49" Description="" />
<DI_ITEM Index="50" Name="DI_ConfinementRingDown" BufferOffset="50" Addr="50" Description="" />
<DI_ITEM Index="51" Name="DI_ReactorSuspectorCheck" BufferOffset="51" Addr="51" Description="" />
<DI_ITEM Index="52" Name="DI_PMSO2DetectorAlarm" BufferOffset="52" Addr="52" Description="" />
<DI_ITEM Index="55" Name="DI_GN2InletPressSW" BufferOffset="55" Addr="55" Description="" />
<DI_ITEM Index="55" Name="DI_GN2InletPressAlarm" BufferOffset="55" Addr="55" Description="" />
<DI_ITEM Index="56" Name="DI_ArInletPressAlarm" BufferOffset="56" Addr="56" Description="" />
<DI_ITEM Index="57" Name="DI_H2PressureAlarm" BufferOffset="57" Addr="57" Description="" />
<DI_ITEM Index="59" Name="DI_GBH2DetectorAlarm" BufferOffset="59" Addr="59" Description="" />
<DI_ITEM Index="60" Name="DI_GBWaterLeakSW" BufferOffset="60" Addr="60" Description="" />
<DI_ITEM Index="63" Name="DI_H2PressureSW" BufferOffset="63" Addr="63" Description="" />
<DI_ITEM Index="60" Name="DI_GBWaterLeakAlarm" BufferOffset="60" Addr="60" Description="" />
<DI_ITEM Index="63" Name="DI_GBH2SeDetectorAlarm" BufferOffset="63" Addr="63" Description="" />
<DI_ITEM Index="65" Name="DI_DryPump1Running" BufferOffset="65" Addr="65" Description="" />
<DI_ITEM Index="67" Name="DI_DryPump1Warning" BufferOffset="67" Addr="67" Description="" />
<DI_ITEM Index="70" Name="DI_EMOStatusAlarm" BufferOffset="70" Addr="70" Description="" />
<DI_ITEM Index="71" Name="DI_PumpCabDoorCloseDone" BufferOffset="71" Addr="71" Description="" />
<DI_ITEM Index="72" Name="DI_FacilityWarningSW" BufferOffset="72" Addr="72" Description="" />
<DI_ITEM Index="72" Name="DI_FacilityWarning" BufferOffset="72" Addr="72" Description="" />
<DI_ITEM Index="76" Name="DI_MainCBStatusSW" BufferOffset="76" Addr="76" Description="" />
<DI_ITEM Index="77" Name="DI_PowerRackWaterLeakAlarm" BufferOffset="77" Addr="77" Description="" />
<DI_ITEM Index="78" Name="DI_UPS1Enable" BufferOffset="78" Addr="78" Description="" />
<DI_ITEM Index="79" Name="DI_UPS1Bypass" BufferOffset="79" Addr="79" Description="" />
<DI_ITEM Index="80" Name="DI_UPS1Online" BufferOffset="80" Addr="80" Description="" />
<DI_ITEM Index="81" Name="DI_ProcessStop" BufferOffset="81" Addr="81" Description="" />
<DI_ITEM Index="83" Name="DI_TransformerOTSW" BufferOffset="83" Addr="83" Description="" />
<DI_ITEM Index="83" Name="DI_TransformerOTAlarm" BufferOffset="83" Addr="83" Description="" />
<DI_ITEM Index="84" Name="DI_UPS1LowBattery" BufferOffset="84" Addr="84" Description="" />
<DI_ITEM Index="85" Name="DI_UPS2LowBattery" BufferOffset="85" Addr="85" Description="" />
<DI_ITEM Index="88" Name="DI_ManualLidOPLocal" BufferOffset="88" Addr="88" Description="" />
@ -418,7 +418,7 @@
<DO_ITEM Index="170" Name="DO_ReactorATMTransferReady" BufferOffset="170" Addr="170" Description="" />
<DO_ITEM Index="171" Name="DO_ReactorVACTransferReady" BufferOffset="171" Addr="171" Description="" />
<DO_ITEM Index="172" Name="DO_PurgeRoutineSuscessed" BufferOffset="172" Addr="172" Description="" />
<DO_ITEM Index="173" Name="DO_CleanRoutineSucceed" BufferOffset="173" Addr="173" Description="" />
<DO_ITEM Index="173" Name="DO_CleanRoutineSuscessed" BufferOffset="173" Addr="173" Description="" />
<DO_ITEM Index="174" Name="DO_ProcessRunning" BufferOffset="174" Addr="174" Description="" />
<DO_ITEM Index="175" Name="DO_PreprocessRunning" BufferOffset="175" Addr="175" Description="" />
<DO_ITEM Index="176" Name="DO_CyclePurgeRoutineRunning" BufferOffset="176" Addr="176" Description="" />
@ -727,13 +727,13 @@
<AO_ITEM Index="112" Name="AO_PC5MoWRunPressureSV" BufferOffset="112" Addr="112" Description="" />
<AO_ITEM Index="113" Name="AO_PC6CS2H2SSeRunPressureSV" BufferOffset="113" Addr="113" Description="" />
<AO_ITEM Index="114" Name="AO_PC7O2SO2RunPressureSV" BufferOffset="114" Addr="114" Description="" />
<AO_ITEM Index="118" Name="AO_Setpointspeed" BufferOffset="118" Addr="118" Description="" />
<AO_ITEM Index="120" Name="AO_SetpointACC" BufferOffset="120" Addr="120" Description="" />
<AO_ITEM Index="121" Name="AO_SetpointDEC" BufferOffset="121" Addr="121" Description="" />
<AO_ITEM Index="118" Name="AO_SpindleSpeed" BufferOffset="118" Addr="118" Description="" />
<AO_ITEM Index="120" Name="AO_SpindleACC" BufferOffset="120" Addr="120" Description="" />
<AO_ITEM Index="121" Name="AO_SpindleDEC" BufferOffset="121" Addr="121" Description="" />
<AO_ITEM Index="123" Name="AO_ConfinementRingMode" BufferOffset="123" Addr="123" Description="" />
<AO_ITEM Index="124" Name="AO_ConfinementRingSpeed" BufferOffset="124" Addr="124" Description="" />
<AO_ITEM Index="125" Name="AO_ConfinementRingDistance" BufferOffset="125" Addr="125" Description="" />
<AO_ITEM Index="127" Name="AO_ValveModeSetpoint" BufferOffset="127" Addr="127" Description="" />
<AO_ITEM Index="127" Name="AO_ValvemodeSetpoint" BufferOffset="127" Addr="127" Description="" />
<AO_ITEM Index="128" Name="AO_SetpointPositon" BufferOffset="128" Addr="128" Description="" />
<AO_ITEM Index="129" Name="AO_SetpointPressure" BufferOffset="129" Addr="129" Description="" />
<AO_ITEM Index="130" Name="AO_HeartBeat" BufferOffset="130" Addr="130" Description="" />

View File

@ -71,6 +71,8 @@ namespace SicModules.PMs
{
Final1,
Final2,
M1to17,
M18to40No303439,
M1to16,
M5M21,
M17,
@ -86,6 +88,7 @@ namespace SicModules.PMs
M32toM38,
M36,
M28293140,
M18toM26,
M19toM26,
All,
M32M35M37,
@ -983,23 +986,23 @@ namespace SicModules.PMs
}
else if (eGroupName == IoGroupName.A)
{
lst = new List<string>() { "V33s" };
lst = new List<string>() { "V33s", "V67", "V68" };
}
else if (eGroupName == IoGroupName.B)
{
lst = new List<string>() { "V33" };
lst = new List<string>() { "V33", "V66" };
}
else if (eGroupName == IoGroupName.C)
{
lst = new List<string>() { "V43", "V48" };
lst = new List<string>() { "V18", "V21", "V43", "V48" };
}
else if (eGroupName == IoGroupName.D)
{
lst = new List<string>() { "V45", "V49" };
lst = new List<string>() { "V19", "V22", "V45", "V49" };
}
else if (eGroupName == IoGroupName.E)
{
lst = new List<string>() { "V46", "V50" };
lst = new List<string>() { "V20", "V23", "V46", "V50" };
}
else if (eGroupName == IoGroupName.F)
{
@ -1016,11 +1019,11 @@ namespace SicModules.PMs
else if (eGroupName == IoGroupName.I)
{
lst = new List<string>()
{ "V87", "V88", "V89", "V97", "V90", "V91", "V92", "V93", "V94", "V95", "V96" };
{ "V87", "V88", "V89", "V90", "V91", "V92", "V93", "V94", "V95", "V96", "V97" };
}
else if (eGroupName == IoGroupName.J)
{
lst = new List<string>() { "V57", "V61", "V62", "V63" };
lst = new List<string>() { "V61", "V62", "V63" };
}
else if (eGroupName == IoGroupName.K)
{
@ -1036,7 +1039,7 @@ namespace SicModules.PMs
}
else if (eGroupName == IoGroupName.Final2)
{
lst = new List<string>() { "V87", "V88", "V97", "V90", "V89", "V91" };
lst = new List<string>() { "V87", "V88", "V89", "V90", "V91", "V97" };
}
else if (eGroupName == IoGroupName.GasIn1)
{
@ -1148,12 +1151,20 @@ namespace SicModules.PMs
}
else if (mGroupName == MfcGroupName.Final2)
{
lst = new List<int>() { 27, 28, 29, 40, 33, 32, 31 };
lst = new List<int>() { 27, 28, 29, 31, 33, 40 };
}
else if (mGroupName == MfcGroupName.M1to16)
{
lst = new List<int>() { 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 30 };//新增 30
}
else if (mGroupName == MfcGroupName.M1to17)
{
lst = new List<int>() { 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17 };
}
else if (mGroupName == MfcGroupName.M18to40No303439)
{
lst = new List<int>() { 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32,33,35,36,37,38,40 };//无30 34 39
}
else if (mGroupName == MfcGroupName.M5M21)
{
lst = new List<int>() { 5,21 };
@ -1190,6 +1201,10 @@ namespace SicModules.PMs
{
lst = new List<int>() { 19, 20, 22, 23, 25, 26, 2, 15, 9 };
}
else if (mGroupName == MfcGroupName.M18toM26)
{
lst = new List<int>() { 18, 19, 20, 21, 22, 23, 24, 25, 26 };
}
else if (mGroupName == MfcGroupName.M19toM26)
{
lst = new List<int>() { 19, 20, 21, 22, 23, 24, 25, 26 };

View File

@ -41,7 +41,7 @@ namespace SicModules.PMs.Routines
SetM17M18,
SetPC,
SetGroupJ,
SetM2toM40,
SetM18toM40,
SetPC567Close,
SetPC567Default,
@ -54,7 +54,7 @@ namespace SicModules.PMs.Routines
SetGasIn1, //V68
OpenFinal1, //V91-96
SetMfcFinal1, //M32-38
SetM291519to26,
SetM18toM26,
SetTVCloseMode,
SetTvPositionToZero,
@ -292,107 +292,84 @@ namespace SicModules.PMs.Routines
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
//旋转停止
//2、 旋转停止,加热停止(根据配置,配置加热就不需要停止加热,没有配置加热时停止加热) 。
//SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
//打开V103,关闭V105
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
//打开V31,打开V32
//3、 打开 V31H2.Supply、 V32(Ar.Supply
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
//打开V35,打开V36
//4、 打开 V35(H2N2.Line1)、 V36(H2N2.Line2),关闭 B/C/E/F/H/KValves,打开 D/G Valves。
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
//关闭B/C/E/F/H/K 阀门
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
//打开D/G 阀门
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
//打开V65
SetIoValueByGroup((int)RoutineStep.SetV65, IoGroupName.V65, true, _IoValueOpenCloseTimeout);
//设置MFC和PC的模式
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
//5、 M1-M17 设定为 default 值,所有 PC 设定为 default 值(PC1-PC9)。
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.M1to17);
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
//M1-M16设定为default值(M2、M9、M15除外)
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
//设置所有PC到默认值
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
//6、 M18-M40除 M30\M34\M39 MFC 5s ramp 到 0。
SetMfcByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18to40No303439, 0, 5);
////M2、M9、M15、M19-M40 MFC 5s ramp 到0
//SetMfcByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 0, 5);
//打开EPV2
//7、 打开 EPV2。
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, true, _IoValueOpenCloseTimeout);
TimeDelay((int)RoutineStep.TimeDelay1, 3);
//打开Final2阀
//8 、打 开 V87 SHPurge.Final )、 V88 OuterGas.Final、 V89 InnerGas.Final )、 V90MiddleGas.Final、 V91OpticPurge.Final、 V97CarryGas.Final
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
//Final2阀对应的MFC 3s Ramp到Default值
//9、 M27、 M28、 M29、 M31、 M33、 M40 依次设定 3S ramp 到 default 值
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
//10、打开 V92GasRingPurge.Final、 V93ChamberPurge.Final、 V95ConfinementRing.Final等待 3S
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
TimeDelay((int)RoutineStep.TimeDelay2, 3);
//11、 M32、 M35、 M37 依次设定 3S ramp 到 default 值 等待 3S打开 V68ChamBody.N2.Purge
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 3);
//打开V68
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
//12、打开 V94RotationUpPurge.Final、 M36 设定 5S ramp 到 default 值;等待 3S打开V96HeaterWF.Final M38 依次设定 5S ramp 到 default 值
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 5);
TimeDelay((int)RoutineStep.TimeDelay3, 3);
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 5);
TimeDelay((int)RoutineStep.TimeDelay4, 3);
//打开J Valves
//13、打开 J Valves 设置 M18-M26 3s ramp 到 default 值。
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM26, MfcGroupName.M18toM26, 3);
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
//设置蝶阀Enable
//14、 打开 TV enable, 压力模式,伺服压力默认设定为 1050mbar
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable, _IoThrottle, 5);
//设置蝶阀为压力模式
SetThrottleToPressModeAndWait((int)RoutineStep.SetTVPressMode, _IoThrottle, 5);
//伺服压力设定值到1050mbar
SetThrottleToTargetAndNoWait((int)RoutineStep.SetTV, _IoThrottle, 1050);
//打开V72
//15、打开 V72(GasBox.Vent.Pump 关闭 V25(GasBox.Vent.Bypass) 反应腔压力伺服到300mbar可配置
SetIoValueByGroup((int)RoutineStep.SetV72, IoGroupName.VentPump, true, _IoValueOpenCloseTimeout);
TimeDelay((int)RoutineStep.TimeDelay5, 1);
//关闭V25
SetIoValueByGroup((int)RoutineStep.SetV25, IoGroupName.V25, false, _IoValueOpenCloseTimeout);
//蝶阀调整到300
SetPressureUpOrDown((int)RoutineStep.SetPressUpOrDown1, PressureUpOrDown.Dowing);
SetThrottleToTargetAndNoWait((int)RoutineStep.SetPressureDown, _IoThrottle, _throttleFinalPressure);
WaitThrottleToPressureAndSetMfcSpecial((int)RoutineStep.SetTVto300, _IoThrottle, _throttleFinalPressure, _pmPressureMaxDiff, _throttleTimeout);
//TimeDelay((int)RoutineStep.TimeDelay8, 3);
//转速Enable,加热Enable, 电流功率可配置
//16、设定转速可配置
EnableRotation((int)RoutineStep.EnableRotation, 5);
SetRotationValveAndNoWait((int)RoutineStep.SetRotation1, _rotationSpeed);
//17、加热使能PSU 和 SCR可配置
if (_psuHeatEnable)
{
//打开PSU加热

View File

@ -1,12 +1,13 @@
using System.Collections.Generic;
using System.Diagnostics;
using Aitex.Core.RT.Device;
using Aitex.Core.RT.Device;
using Aitex.Core.RT.Device.Devices;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Routine;
using Aitex.Core.RT.SCCore;
using MECF.Framework.Common.Equipment;
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.MFCs;
using SicModules.PMs.Routines.Base;
using System.Collections.Generic;
using System.Diagnostics;
namespace SicModules.PMs.Routines
{
@ -34,7 +35,7 @@ namespace SicModules.PMs.Routines
SetM1to16,
SetM17M18,
SetM2toM40,
SetM18toM40,
SetPC,
SetM291519to38,
SetGroupJ,
@ -164,7 +165,7 @@ namespace SicModules.PMs.Routines
{
CheckRoutineTimeOut();
//关闭V76,打开V75
//DOR Pump 抽真空。关闭V76,打开V75
SetIoValueByGroup((int)RoutineStep.SetV76, IoGroupName.V76, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetV75, IoGroupName.V75, true, _IoValueOpenCloseTimeout);
@ -175,95 +176,63 @@ namespace SicModules.PMs.Routines
//关闭V72,打开V25
SetIoValueByGroup((int)RoutineStep.VentPumpClose, IoGroupName.VentPump, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupV25, IoGroupName.V25, true, _IoValueOpenCloseTimeout);
//打开V103,关闭V105
SetIoValueByGroup((int)RoutineStep.SetV103, IoGroupName.V103, true, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetV105, IoGroupName.V105, false, _IoValueOpenCloseTimeout);
//打开V31,打开V32
SetIoValueByGroup((int)RoutineStep.SetV31, IoGroupName.V31, true, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetV32, IoGroupName.V32, true, _IoValueOpenCloseTimeout);
//打开V35,打开V36
//5、 打开 V35(H2N2.Line1)、 V36H2N2.Line2 , 关闭 B/ C / E / F / H / K Valves,打开 D/ G Valves 。
SetIoValueByGroup((int)RoutineStep.SetV35V36, IoGroupName.V35V36, true, _IoValueOpenCloseTimeout);
//关闭B/C/E/F/H/K 阀门
SetIoValueByGroup((int)RoutineStep.SetGroupB, IoGroupName.B, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupC, IoGroupName.C, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupE, IoGroupName.E, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupF, IoGroupName.F, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupH, IoGroupName.H, false, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupK, IoGroupName.K, false, _IoValueOpenCloseTimeout);
//打开D/G 阀门
SetIoValueByGroup((int)RoutineStep.SetGroupD, IoGroupName.D, true, _IoValueOpenCloseTimeout);
SetIoValueByGroup((int)RoutineStep.SetGroupG, IoGroupName.G, true, _IoValueOpenCloseTimeout);
//设置MFC和PC的模式
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.All);
SetPcModeToNormal((int)RoutineStep.SetPCMode, _lstPcList);
//M1-M16设定为default值(M2、M9、M15除外)
SetMfcToDefaultByGroup((int)RoutineStep.SetM1to16, MfcGroupName.M1to16, 0);
SetMfcToDefaultByGroup((int)RoutineStep.SetM17M18, MfcGroupName.M17M18, 0);
//设置所有PC到默认值
//6、 M1-M17 设定为 default 值, 所有 PC 设定为 default 值PC1-PC9 M18 - M40除 M30\M34\M39 MFC 5s ramp 到 0。
SetMfcModeToNormalByGroup((int)RoutineStep.SetMFCMode, MfcGroupName.M1to17);
SetPcToDefault((int)RoutineStep.SetPC, _lstPcList);
SetMfcToDefaultByGroup((int)RoutineStep.SetM18toM40, MfcGroupName.M18to40No303439, 5);
//M2、M9、M15、M19-M40 MFC 3s ramp 到默认值
SetMfcToDefaultByGroup((int)RoutineStep.SetM2toM40, MfcGroupName.M2toM42, 3);
//关闭蝶阀
//7、 关闭蝶阀, 再关闭 EPV2
SetThrottleToCloseMode((int)RoutineStep.SetTVCloseMode, _IoThrottle, 8);
SetThrottleDisable((int)RoutineStep.SetTvPositionToZero, _IoThrottle, 8);
TimeDelay((int)RoutineStep.TimeDelay1, 1);
//关闭EPV2
SetIoValueByGroup((int)RoutineStep.SetEPV2, IoGroupName.EPV2, false, _IoValueOpenCloseTimeout);
//打开A 组阀
//8、 打开 A ValvesV33S(SH.H2/N2 Switch); V67、 V68(N2.Supply ).
SetIoValueByGroup((int)RoutineStep.SetGroupA, IoGroupName.A, true, _IoValueOpenCloseTimeout);
//Final2阀对应的MFC 3s Ramp到Default值
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
//打开Final2阀
//9 、 打 开 V87 SHPurge.Final )、 V88 OuterGas.Final )、 V89 InnerGas.Final )、 V90MiddleGas.Final 、 V91OpticPurge.Final、 V97CarryGas.Final
//M27、 M28、 M29、 M31、 M33、 M40 依次设定 3S ramp 到 default 值
SetIoValueByGroup((int)RoutineStep.OpenFinal2, IoGroupName.Final2, true, _IoValueOpenCloseTimeout);
//Final2阀对应的MFC 3s Ramp到Default值
SetMfcToDefaultByGroup((int)RoutineStep.SetMfcFinal2, MfcGroupName.Final2, 3);
//10、 打开 V92GasRingPurge.Final、 V93ChamberPurge.Final、 V95ConfinementRing.Final等待 3S
SetIoValueByGroup((int)RoutineStep.SetV92V93V95, IoGroupName.V92V93V95, true, _IoValueOpenCloseTimeout);
TimeDelay((int)RoutineStep.TimeDelay2, 3);
//11、 M32、 M35、 M37 依次设定 3S ramp 到 default 值 等待 3S
SetMfcToDefaultByGroup((int)RoutineStep.SetM32M35M37, MfcGroupName.M32M35M37, 3);
//打开V68
SetIoValueByGroup((int)RoutineStep.SetV68, IoGroupName.GasIn1, true, _IoValueOpenCloseTimeout);
//打开J Valves
//12、 打开 J Valves ;设置 M18-M26 3s ramp 到 default 值。
//等到腔体压力达到 900 mbar打开 V94RotationUpPurge.Final、 M36 设定 5S ramp 到 default 值;
//等待 3S打开 V96HeaterWF.Final M38 设定 5S ramp 到 default 值;
SetIoValueByGroup((int)RoutineStep.SetGroupJOpen, IoGroupName.J, true, _IoValueOpenCloseTimeout);
//设置M2,M9,M15,M19-M26 3s ramp 到default 值
SetMfcToDefaultByGroup((int)RoutineStep.SetM291519to26, MfcGroupName.M2toM26, 3);
//开V94,V96需等到腔体压力大于950
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp1, 950, _waitPMPressureUpTimeout);
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp1, 900, _waitPMPressureUpTimeout);
SetIoValueByGroup((int)RoutineStep.SetV94, IoGroupName.V94, true, _IoValueOpenCloseTimeout);
SetMfcToDefaultByGroup((int)RoutineStep.SetM36, MfcGroupName.M36, 5);
TimeDelay((int)RoutineStep.TimeDelay3, 3);
SetIoValueByGroup((int)RoutineStep.SetV96, IoGroupName.V96, true, _IoValueOpenCloseTimeout);
SetMfcToDefaultByGroup((int)RoutineStep.SetM38, MfcGroupName.M38, 5);
TimeDelay((int)RoutineStep.TimeDelay4, 3);
//等待反应腔压力到达1020
//13、 压力达到 1020结束
NotifyInfo((int)RoutineStep.Notify1, $"Wait pm pressure to {_ventBasePressure} mbar!");
WaitPMPressureAndSetMfcSpecial((int)RoutineStep.WaitPmPressureUp, _ventBasePressure, _waitPMPressureUpTimeout); //等待反应腔压力大于1000
//设置M28,M29,M31,M40 3s ramp 到default 值
SetMfcToDefaultByGroup((int)RoutineStep.SetMfc28to40Default, MfcGroupName.M28293140, 3);
_pmIoInterLock.SetPMVentRoutineRunning(false, out _);
}

View File

@ -747,9 +747,9 @@
<AO_ITEM Index="114" Name="AO_PressCtrl7" BufferOffset="114" Addr="114" Description="" />
<AO_ITEM Index="115" Name="AO_PressCtrl8" BufferOffset="115" Addr="115" Description="" />
<AO_ITEM Index="116" Name="AO_PressCtrl9" BufferOffset="116" Addr="116" Description="" />
<AO_ITEM Index="118" Name="AO_Setpointspeed" BufferOffset="118" Addr="118" Description="" />
<AO_ITEM Index="120" Name="AO_SetpointACC" BufferOffset="120" Addr="120" Description="" />
<AO_ITEM Index="121" Name="AO_SetpointDEC" BufferOffset="121" Addr="121" Description="" />
<AO_ITEM Index="118" Name="AO_SpindleSpeed" BufferOffset="118" Addr="118" Description="" />
<AO_ITEM Index="120" Name="AO_SpindleACC" BufferOffset="120" Addr="120" Description="" />
<AO_ITEM Index="121" Name="AO_SpindleDEC" BufferOffset="121" Addr="121" Description="" />
<AO_ITEM Index="123" Name="AO_ConfinementRingMode" BufferOffset="123" Addr="123" Description="" />
<AO_ITEM Index="124" Name="AO_ConfinementRingSpeed" BufferOffset="124" Addr="124" Description="" />
<AO_ITEM Index="125" Name="AO_ConfinementRingDistance" BufferOffset="125" Addr="125" Description="" />