|
@@ -257,7 +257,7 @@ namespace Venus_Simulator.Instances
|
|
|
SetAiValue($"{mod}.AI_Process_Pressure_100mt", 100);
|
|
|
//SetAiValue($"{mod}.AI_Chamber_Pressure_10t", ATM_PRESSURE);
|
|
|
SetAiValue($"{mod}.AI_Chamber_Pressure_Virtual", PROCESS_GAUGE);
|
|
|
-
|
|
|
+ SetAiValue($"{mod}.AI_Foreline_Pressure_10t", 5001);
|
|
|
SetAiValue($"{mod}.AI_Chamber_Pressure_10t", 5000);
|
|
|
|
|
|
//// Temperature
|
|
@@ -618,7 +618,7 @@ namespace Venus_Simulator.Instances
|
|
|
case JetChamber.VenusSE:
|
|
|
MonitorPin(item.Key);
|
|
|
//MonitorVenuSESlitDoor(item.Key);
|
|
|
- MonitorPressure_VenusSE(item.Key);
|
|
|
+ MonitorSEPressure(item.Key);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1141,14 +1141,16 @@ namespace Venus_Simulator.Instances
|
|
|
// }
|
|
|
//}
|
|
|
}
|
|
|
-
|
|
|
- void MonitorPressure_Kepler(ModuleName mod)
|
|
|
+ void MonitorSEPressure(ModuleName mod)
|
|
|
{
|
|
|
string sAI_Foreline = "AI_Foreline_Pressure_10t";
|
|
|
+ string sAI_ChamberPressure = "AI_Chamber_Pressure_10t";
|
|
|
+ string sAI_ProcessPressure = "AI_Chamber_Pressure_Virtual";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ // Foreline
|
|
|
|
|
|
if (SkyPumpMockPMA._simPumpStatus == SkyPumpMockPMA.SimPumpStatus.Open || EdwardsPumpMockPMA._simPumpStatus == EdwardsPumpMockPMA.SimEdwardsPumpStatus.Open)
|
|
|
{
|
|
@@ -1160,10 +1162,7 @@ namespace Venus_Simulator.Instances
|
|
|
}
|
|
|
|
|
|
// PLC 模拟量范围[0,4000], 电压[0, 10V], 压力[0, 760Torr]
|
|
|
- string sAI_ChamberPressure = "AI_Chamber_Pressure_10t";
|
|
|
- string sAI_ProcessPressure = "AI_Chamber_Pressure_Virtual";
|
|
|
- //float chamber_pressure = GetMockChamberPressure(mod);
|
|
|
- //float process_pressure = GetAiValue($"{mod}.AI_Chamber_Pressure_Virtual");
|
|
|
+
|
|
|
|
|
|
// soft pump & fast pump
|
|
|
DOAccessor fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve"];
|
|
@@ -1172,78 +1171,76 @@ namespace Venus_Simulator.Instances
|
|
|
|
|
|
if (fast_pump_vlv.Value || soft_pump_vlv.Value || turbo_pump_vlv.Value)
|
|
|
{
|
|
|
+ //任意泵打开
|
|
|
+ float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
|
+ float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
|
|
|
if (fast_pump_vlv.Value && soft_pump_vlv.Value)
|
|
|
- {
|
|
|
- float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
|
- float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
|
|
|
+ {//开双泵
|
|
|
if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
|
|
|
{
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") - 30000);
|
|
|
- //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
|
|
|
+ float targetChamberPressure = getAiValue_ChamberPressure - 30000 > 0 ? getAiValue_ChamberPressure - 30000 : 0;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
|
|
|
+
|
|
|
}
|
|
|
else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
|
|
|
{
|
|
|
- getAiValue_ProcessPressure = getAiValue_ChamberPressure;
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 1500);
|
|
|
- SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 1500);
|
|
|
+ float targetChamberPressure = getAiValue_ProcessPressure - 1500 > 0 ? getAiValue_ProcessPressure - 1500 : 0;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
|
|
|
+ SetAiValue($"{mod}.{sAI_ProcessPressure}", targetChamberPressure);
|
|
|
}
|
|
|
|
|
|
- //SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") - _rd.Next(15000, 16000));
|
|
|
- //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - _rd.Next(150, 160));
|
|
|
}
|
|
|
- else if (fast_pump_vlv.Value)
|
|
|
+ else if (fast_pump_vlv.Value)//开
|
|
|
{
|
|
|
- float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
|
- float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
|
|
|
if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
|
|
|
{
|
|
|
- float targetPressure = getAiValue_ChamberPressure > 26000 ? GetAiValue($"{mod}.{sAI_ChamberPressure}") - 25000 : 20;
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", targetPressure);
|
|
|
+ float targetChamberPressure = getAiValue_ChamberPressure - 25000 > 0 ? getAiValue_ChamberPressure - 25000 : 0;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
|
|
|
//SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
|
|
|
}
|
|
|
else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
|
|
|
{
|
|
|
- getAiValue_ProcessPressure = getAiValue_ChamberPressure;
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 1300);
|
|
|
- SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 1300);
|
|
|
+ float targetChamberPressure = getAiValue_ProcessPressure - 1300 > 0 ? getAiValue_ProcessPressure - 1300 : 0;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
|
|
|
+ SetAiValue($"{mod}.{sAI_ProcessPressure}", targetChamberPressure);
|
|
|
}
|
|
|
- //SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") - _rd.Next(12000, 13000));
|
|
|
- //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - _rd.Next(120, 130));
|
|
|
+
|
|
|
}
|
|
|
else if (soft_pump_vlv.Value)
|
|
|
{
|
|
|
- float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
|
- float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
|
|
|
if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
|
|
|
{
|
|
|
- float targetPressure = getAiValue_ChamberPressure > 23000 ? GetAiValue($"{mod}.{sAI_ChamberPressure}") - 22000 : 20;
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", targetPressure);
|
|
|
+ float targetChamberPressure = getAiValue_ChamberPressure - 10000 > 0 ? getAiValue_ChamberPressure - 10000 : 0;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
|
|
|
//SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
|
|
|
}
|
|
|
else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
|
|
|
{
|
|
|
- getAiValue_ProcessPressure = getAiValue_ChamberPressure;
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 1100);
|
|
|
- SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 1100);
|
|
|
+ float targetChamberPressure = getAiValue_ProcessPressure - 1100 > 0 ? getAiValue_ProcessPressure - 1100 : 0;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", targetChamberPressure);
|
|
|
+ SetAiValue($"{mod}.{sAI_ProcessPressure}", targetChamberPressure);
|
|
|
}
|
|
|
- //SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") - _rd.Next(13000, 14000));
|
|
|
- //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - _rd.Next(100, 110));
|
|
|
}
|
|
|
else if (turbo_pump_vlv.Value)
|
|
|
{
|
|
|
- float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
|
- float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
|
|
|
|
|
|
getAiValue_ProcessPressure = getAiValue_ChamberPressure;
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 500);
|
|
|
- SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 500);
|
|
|
+
|
|
|
+ if ((getAiValue_ChamberPressure - 500) >= 0)
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", getAiValue_ChamberPressure - 500);
|
|
|
+ else
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", 0);
|
|
|
+
|
|
|
+ if ((getAiValue_ProcessPressure - 500) >= 0)
|
|
|
+ SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 500);
|
|
|
+ else
|
|
|
+ SetAiValue($"{mod}.{sAI_ProcessPressure}", 0);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// fast vent & purge
|
|
|
DOAccessor vent_vlv = IO.DO[$"{mod}.DO_N2_Valve"];
|
|
|
-
|
|
|
-
|
|
|
if (vent_vlv.Value)
|
|
|
{
|
|
|
float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
@@ -1263,14 +1260,11 @@ namespace Venus_Simulator.Instances
|
|
|
{
|
|
|
SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + 25000);
|
|
|
}
|
|
|
- //SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + _rd.Next(25000, 30000));
|
|
|
- //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") + _rd.Next(130, 150));
|
|
|
}
|
|
|
|
|
|
|
|
|
// Loadlock Pumping Valve
|
|
|
|
|
|
-
|
|
|
// 压力值越界,复位
|
|
|
float chamber_pressure1 = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
|
if (chamber_pressure1 > ATM_PRESSURE)
|
|
@@ -1306,17 +1300,17 @@ namespace Venus_Simulator.Instances
|
|
|
IO.DI[$"{mod}.DI_ATM_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") > ATM_THRESHOLD;
|
|
|
|
|
|
// VAC switch
|
|
|
- IO.DI[$"{mod}.DI_VAC_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") < VAC_SW_PRESSURE;
|
|
|
+ IO.DI[$"{mod}.DI_PM_VAC_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") < VAC_SW_PRESSURE;
|
|
|
+
|
|
|
|
|
|
}
|
|
|
- void MonitorPressure_VenusSE(ModuleName mod)
|
|
|
+ void MonitorPressure_Kepler(ModuleName mod)
|
|
|
{
|
|
|
string sAI_Foreline = "AI_Foreline_Pressure_10t";
|
|
|
- string sAI_ChamberPressure = "AI_Chamber_Pressure_10t";
|
|
|
- string sAI_ProcessPressure = "AI_Chamber_Pressure_Virtual";
|
|
|
- DOAccessor fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve"];
|
|
|
- DOAccessor soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve"];
|
|
|
- DOAccessor turbo_pump_vlv = IO.DO[$"{mod}.DO_Turbo_Pump_Pumping_Valve"];
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
if (SkyPumpMockPMA._simPumpStatus == SkyPumpMockPMA.SimPumpStatus.Open || EdwardsPumpMockPMA._simPumpStatus == EdwardsPumpMockPMA.SimEdwardsPumpStatus.Open)
|
|
|
{
|
|
@@ -1327,6 +1321,17 @@ namespace Venus_Simulator.Instances
|
|
|
SetAiValue($"{mod}.{sAI_Foreline}", GetAiValue($"{mod}.{sAI_Foreline}") + _rd.Next(500, 600));
|
|
|
}
|
|
|
|
|
|
+ // PLC 模拟量范围[0,4000], 电压[0, 10V], 压力[0, 760Torr]
|
|
|
+ string sAI_ChamberPressure = "AI_Chamber_Pressure_10t";
|
|
|
+ string sAI_ProcessPressure = "AI_Chamber_Pressure_Virtual";
|
|
|
+ //float chamber_pressure = GetMockChamberPressure(mod);
|
|
|
+ //float process_pressure = GetAiValue($"{mod}.AI_Chamber_Pressure_Virtual");
|
|
|
+
|
|
|
+ // soft pump & fast pump
|
|
|
+ DOAccessor fast_pump_vlv = IO.DO[$"{mod}.DO_Fast_Pumping_Valve"];
|
|
|
+ DOAccessor soft_pump_vlv = IO.DO[$"{mod}.DO_Soft_Pumping_Valve"];
|
|
|
+ DOAccessor turbo_pump_vlv = IO.DO[$"{mod}.DO_Turbo_Pump_Pumping_Valve"];
|
|
|
+
|
|
|
if (fast_pump_vlv.Value || soft_pump_vlv.Value || turbo_pump_vlv.Value)
|
|
|
{
|
|
|
if (fast_pump_vlv.Value && soft_pump_vlv.Value)
|
|
@@ -1354,7 +1359,8 @@ namespace Venus_Simulator.Instances
|
|
|
float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
|
|
|
if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
|
|
|
{
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") - 25000);
|
|
|
+ float targetPressure = getAiValue_ChamberPressure > 26000 ? GetAiValue($"{mod}.{sAI_ChamberPressure}") - 25000 : 20;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", targetPressure);
|
|
|
//SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
|
|
|
}
|
|
|
else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
|
|
@@ -1372,7 +1378,8 @@ namespace Venus_Simulator.Instances
|
|
|
float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
|
|
|
if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
|
|
|
{
|
|
|
- SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") - 22000);
|
|
|
+ float targetPressure = getAiValue_ChamberPressure > 23000 ? GetAiValue($"{mod}.{sAI_ChamberPressure}") - 22000 : 20;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", targetPressure);
|
|
|
//SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
|
|
|
}
|
|
|
else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
|
|
@@ -1394,6 +1401,38 @@ namespace Venus_Simulator.Instances
|
|
|
SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 500);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // fast vent & purge
|
|
|
+ DOAccessor vent_vlv = IO.DO[$"{mod}.DO_N2_Valve"];
|
|
|
+
|
|
|
+
|
|
|
+ if (vent_vlv.Value)
|
|
|
+ {
|
|
|
+ float getAiValue_ChamberPressure = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
|
+ float getAiValue_ProcessPressure = GetAiValue($"{mod}.{sAI_ProcessPressure}");
|
|
|
+ if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure > 10000)
|
|
|
+ {
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + 25000);
|
|
|
+ //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") - 150);
|
|
|
+ }
|
|
|
+ else if (getAiValue_ProcessPressure <= 10000 && getAiValue_ChamberPressure <= 10000)
|
|
|
+ {
|
|
|
+ getAiValue_ProcessPressure = getAiValue_ChamberPressure;
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") + 1300);
|
|
|
+ SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") + 1300);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + 25000);
|
|
|
+ }
|
|
|
+ //SetAiValue($"{mod}.{sAI_ChamberPressure}", GetAiValue($"{mod}.{sAI_ChamberPressure}") + _rd.Next(25000, 30000));
|
|
|
+ //SetAiValue($"{mod}.{sAI_ProcessPressure}", GetAiValue($"{mod}.{sAI_ProcessPressure}") + _rd.Next(130, 150));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // Loadlock Pumping Valve
|
|
|
+
|
|
|
+
|
|
|
// 压力值越界,复位
|
|
|
float chamber_pressure1 = GetAiValue($"{mod}.{sAI_ChamberPressure}");
|
|
|
if (chamber_pressure1 > ATM_PRESSURE)
|
|
@@ -1429,8 +1468,10 @@ namespace Venus_Simulator.Instances
|
|
|
IO.DI[$"{mod}.DI_ATM_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") > ATM_THRESHOLD;
|
|
|
|
|
|
// VAC switch
|
|
|
- IO.DI[$"{mod}.DI_PM_VAC_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") < VAC_SW_PRESSURE;
|
|
|
+ IO.DI[$"{mod}.DI_VAC_Switch"].Value = GetAiValue($"{mod}.{sAI_ChamberPressure}") < VAC_SW_PRESSURE;
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
void MonitorPressure_Kepler2200A(ModuleName mod)
|
|
|
{
|
|
|
string sAI_Foreline = "AI_Foreline_Pressure_10t";
|