|
@@ -19,13 +19,14 @@ using Venus_Unity;
|
|
|
using MECF.Framework.Common.CommonData.DeviceData;
|
|
|
using System.Windows.Shapes;
|
|
|
using Path = System.IO.Path;
|
|
|
+using MECF.Framework.Common.Equipment;
|
|
|
|
|
|
namespace Venus_MainPages.ViewModels
|
|
|
{
|
|
|
internal class OverKepler2300ViewModel : BindableBase
|
|
|
{
|
|
|
#region 私有字段
|
|
|
- private List<string> m_CurrentModuleRecipes=new List<string>();
|
|
|
+ private List<string> m_CurrentModuleRecipes = new List<string>();
|
|
|
private bool m_PVN21ValveIsOpen;
|
|
|
private bool m_PVN22ValveIsOpen;
|
|
|
private bool m_N2ValveIsOpen;
|
|
@@ -138,12 +139,23 @@ namespace Venus_MainPages.ViewModels
|
|
|
private string m_SelectedRecipe;
|
|
|
|
|
|
private float m_ChillerTempSetpoint;
|
|
|
+
|
|
|
+ private float m_InnerChillerTempSetpoint;
|
|
|
+ private float m_OuterChillerTempSetpoint;
|
|
|
+ private float m_TopChillerTempSetpoint;
|
|
|
+
|
|
|
private float m_WallTempSetpoint;
|
|
|
|
|
|
- private bool m_HeIsPressureMode=true;
|
|
|
+ private bool m_HeIsPressureMode = true;
|
|
|
|
|
|
private bool m_ChillerIsOn;
|
|
|
|
|
|
+ private bool m_InnerChillerIsOn;
|
|
|
+ private bool m_OuterChillerIsOn;
|
|
|
+ private bool m_TopChillerIsOn;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
private float m_ProcessHighPressure;
|
|
|
private float m_ProcessLowPressure;
|
|
|
private float m_ForelinePressurePressure;
|
|
@@ -161,6 +173,11 @@ namespace Venus_MainPages.ViewModels
|
|
|
private bool m_IsLidClosed;
|
|
|
|
|
|
private float m_ChillerTemperature;
|
|
|
+
|
|
|
+ private float m_InnerTemperature;
|
|
|
+ private float m_OuterTemperature;
|
|
|
+ private float m_TopTemperature;
|
|
|
+
|
|
|
//private float m_HVTemperature;
|
|
|
|
|
|
|
|
@@ -182,20 +199,20 @@ namespace Venus_MainPages.ViewModels
|
|
|
|
|
|
private float m_PendulumValvePosition;
|
|
|
|
|
|
- private bool m_IsTurboPumpAtSpeed;
|
|
|
+ private bool m_IsTurboPumpAtSpeed;
|
|
|
private bool m_TurboPumpWaterFlowSwitch;
|
|
|
|
|
|
private bool m_IsHasWafer;
|
|
|
|
|
|
- private Recipe m_CurrentRecipe=new Recipe ();
|
|
|
+ private Recipe m_CurrentRecipe = new Recipe();
|
|
|
|
|
|
- private RecipeResult m_CurrentRecipeResult=new RecipeResult ();
|
|
|
+ private RecipeResult m_CurrentRecipeResult = new RecipeResult();
|
|
|
|
|
|
- private RecipeStep m_CurrentRecipeStep = new RecipeStep();
|
|
|
+ private RecipeStep m_CurrentRecipeStep = new RecipeStep();
|
|
|
|
|
|
private double m_ChamberPressureFeedBack;
|
|
|
|
|
|
- private string m_WaferID;
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 属性
|
|
@@ -239,7 +256,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
public float PendulumValvePosition
|
|
|
{
|
|
|
get { return m_PendulumValvePosition; }
|
|
|
- set{SetProperty(ref m_PendulumValvePosition, value);}
|
|
|
+ set { SetProperty(ref m_PendulumValvePosition, value); }
|
|
|
}
|
|
|
|
|
|
public float BiasMatchC1
|
|
@@ -308,6 +325,30 @@ namespace Venus_MainPages.ViewModels
|
|
|
SetProperty(ref m_ChillerTemperature, value);
|
|
|
}
|
|
|
}
|
|
|
+ public float InnerTemperature
|
|
|
+ {
|
|
|
+ get { return m_InnerTemperature; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ SetProperty(ref m_InnerTemperature, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public float OuterTemperature
|
|
|
+ {
|
|
|
+ get { return m_OuterTemperature; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ SetProperty(ref m_OuterTemperature, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public float TopTemperature
|
|
|
+ {
|
|
|
+ get { return m_TopTemperature; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ SetProperty(ref m_TopTemperature, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
//public float HVTemperature
|
|
|
//{
|
|
|
// get { return m_HVTemperature; }
|
|
@@ -713,8 +754,8 @@ namespace Venus_MainPages.ViewModels
|
|
|
get { return m_RtDataValues; }
|
|
|
set { SetProperty(ref m_RtDataValues, value); }
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public bool PumpIsOpen
|
|
|
{
|
|
@@ -745,7 +786,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
set { SetProperty(ref m_IsVAC, value); }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
//public bool BRFIsOn
|
|
|
//{
|
|
|
// get { return m_BRFIsOn; }
|
|
@@ -767,22 +808,22 @@ namespace Venus_MainPages.ViewModels
|
|
|
get { return m_IsPositionMode; }
|
|
|
set { SetProperty(ref m_IsPositionMode, value); }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
public double HeGasSetpoint
|
|
|
{
|
|
|
get { return m_HeGasSetpoint; }
|
|
|
- set
|
|
|
+ set
|
|
|
{
|
|
|
- SetProperty(ref m_HeGasSetpoint, value);
|
|
|
+ SetProperty(ref m_HeGasSetpoint, value);
|
|
|
}
|
|
|
}
|
|
|
public int HePressureSetpoint
|
|
|
{
|
|
|
get { return m_HePressureSetpoint; }
|
|
|
- set
|
|
|
+ set
|
|
|
{
|
|
|
- SetProperty(ref m_HePressureSetpoint, value);
|
|
|
+ SetProperty(ref m_HePressureSetpoint, value);
|
|
|
}
|
|
|
}
|
|
|
public float SRFFwdPowerSetpoint
|
|
@@ -849,6 +890,22 @@ namespace Venus_MainPages.ViewModels
|
|
|
set { SetProperty(ref m_ChillerTempSetpoint, value); }
|
|
|
}
|
|
|
|
|
|
+ public float InnerChillerTempSetpoint
|
|
|
+ {
|
|
|
+ get { return m_InnerChillerTempSetpoint; }
|
|
|
+ set { SetProperty(ref m_InnerChillerTempSetpoint, value); }
|
|
|
+ }
|
|
|
+ public float OuterChillerTempSetpoint
|
|
|
+ {
|
|
|
+ get { return m_OuterChillerTempSetpoint; }
|
|
|
+ set { SetProperty(ref m_OuterChillerTempSetpoint, value); }
|
|
|
+ }
|
|
|
+ public float TopChillerTempSetpoint
|
|
|
+ {
|
|
|
+ get { return m_TopChillerTempSetpoint; }
|
|
|
+ set { SetProperty(ref m_TopChillerTempSetpoint, value); }
|
|
|
+ }
|
|
|
+
|
|
|
public float WallTempSetpoint
|
|
|
{
|
|
|
get { return m_WallTempSetpoint; }
|
|
@@ -885,12 +942,6 @@ namespace Venus_MainPages.ViewModels
|
|
|
get { return m_ChamberPressureFeedBack; }
|
|
|
set { SetProperty(ref m_ChamberPressureFeedBack, value); }
|
|
|
}
|
|
|
-
|
|
|
- public string WaferID
|
|
|
- {
|
|
|
- get { return m_WaferID; }
|
|
|
- set { SetProperty(ref m_WaferID, value); }
|
|
|
- }
|
|
|
#endregion
|
|
|
|
|
|
#region 命令
|
|
@@ -1021,7 +1072,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
m_IsATM = true;
|
|
|
|
|
|
ModuleName = "PMA";
|
|
|
-
|
|
|
+
|
|
|
CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName)).ToList();
|
|
|
|
|
|
DispatcherTimer timer = new DispatcherTimer();
|
|
@@ -1037,8 +1088,8 @@ namespace Venus_MainPages.ViewModels
|
|
|
{
|
|
|
CommonValveControl commonValveControl = (CommonValveControl)obj;
|
|
|
if (commonValveControl.IsCanEdit == true)
|
|
|
- {
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ControlValve",Convert.ToInt32( commonValveControl.Tag.ToString()), !commonValveControl.Status);
|
|
|
+ {
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ControlValve", Convert.ToInt32(commonValveControl.Tag.ToString()), !commonValveControl.Status);
|
|
|
}
|
|
|
}
|
|
|
private void OnPMInit()
|
|
@@ -1047,35 +1098,35 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
private async void OnGas()
|
|
|
{
|
|
|
- await Task.Run(async () =>
|
|
|
+ await Task.Run(async () =>
|
|
|
{
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas1.SetPoint", MFC1SetPoint);
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas2.SetPoint", MFC2SetPoint);
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas3.SetPoint", MFC3SetPoint);
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas4.SetPoint", MFC4SetPoint);
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas5.SetPoint", MFC5SetPoint);
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas6.SetPoint", MFC6SetPoint);
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas7.SetPoint", MFC7SetPoint);
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas8.SetPoint", MFC8SetPoint);
|
|
|
-
|
|
|
- await Task.Delay(1000);
|
|
|
- object[] mfc = new object[8];
|
|
|
- string[] mfcSetPoint = new string[8];
|
|
|
-
|
|
|
- mfc[0] = MFC1Data.SetPoint;
|
|
|
- mfc[1] = MFC2Data.SetPoint;
|
|
|
- mfc[2] = MFC3Data.SetPoint;
|
|
|
- mfc[3] = MFC4Data.SetPoint;
|
|
|
- mfc[4] = MFC5Data.SetPoint;
|
|
|
- mfc[5] = MFC6Data.SetPoint;
|
|
|
- mfc[6] = MFC7Data.SetPoint;
|
|
|
- mfc[7] = MFC8Data.SetPoint;
|
|
|
-
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.GasFlow}", mfc);
|
|
|
-
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas1.SetPoint", MFC1SetPoint);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas2.SetPoint", MFC2SetPoint);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas3.SetPoint", MFC3SetPoint);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas4.SetPoint", MFC4SetPoint);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas5.SetPoint", MFC5SetPoint);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas6.SetPoint", MFC6SetPoint);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas7.SetPoint", MFC7SetPoint);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas8.SetPoint", MFC8SetPoint);
|
|
|
+
|
|
|
+ await Task.Delay(1000);
|
|
|
+ object[] mfc = new object[8];
|
|
|
+ string[] mfcSetPoint = new string[8];
|
|
|
+
|
|
|
+ mfc[0] = MFC1Data.SetPoint;
|
|
|
+ mfc[1] = MFC2Data.SetPoint;
|
|
|
+ mfc[2] = MFC3Data.SetPoint;
|
|
|
+ mfc[3] = MFC4Data.SetPoint;
|
|
|
+ mfc[4] = MFC5Data.SetPoint;
|
|
|
+ mfc[5] = MFC6Data.SetPoint;
|
|
|
+ mfc[6] = MFC7Data.SetPoint;
|
|
|
+ mfc[7] = MFC8Data.SetPoint;
|
|
|
+
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.GasFlow}", mfc);
|
|
|
+
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
private void OnHe()
|
|
|
{
|
|
@@ -1091,8 +1142,8 @@ namespace Venus_MainPages.ViewModels
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBacksideHePressure", HeGasSetpoint);
|
|
|
}
|
|
|
else
|
|
|
- {
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBacksideHeFlow", HeGasSetpoint);
|
|
|
+ {
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBacksideHeFlow", HeGasSetpoint);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1160,7 +1211,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
private void OnPump()
|
|
|
{
|
|
|
//if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == PMState.Pumping.ToString())
|
|
|
- if (PMCurrentState==PMState.Pumping)
|
|
|
+ if (PMCurrentState == PMState.Pumping)
|
|
|
{
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
|
|
|
return;
|
|
@@ -1183,7 +1234,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
|
|
|
string BasePressureSetPoint = QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.Pump.PumpBasePressure").ToString();
|
|
|
|
|
|
- string PumpLimitSetPoint= QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.Pump.PumpTimeLimit").ToString();
|
|
|
+ string PumpLimitSetPoint = QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.Pump.PumpTimeLimit").ToString();
|
|
|
// 设置底压
|
|
|
double basePressure = string.IsNullOrEmpty(BasePressureSetPoint) ? 0 : Convert.ToDouble(BasePressureSetPoint);
|
|
|
|
|
@@ -1212,7 +1263,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
{
|
|
|
|
|
|
//if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "LaunchingPump")
|
|
|
- if (PMCurrentState==PMState.LaunchingPump)
|
|
|
+ if (PMCurrentState == PMState.LaunchingPump)
|
|
|
{
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
|
|
|
return;
|
|
@@ -1248,11 +1299,11 @@ namespace Venus_MainPages.ViewModels
|
|
|
|
|
|
private void OnOpenPendulumValve()
|
|
|
{
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve",true);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve", true);
|
|
|
}
|
|
|
private void OnClosePendulumValve()
|
|
|
{
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve",false);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve", false);
|
|
|
}
|
|
|
private void OnPinUpDown(object upDown)
|
|
|
{
|
|
@@ -1261,7 +1312,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
private void OnLidUpDown(object upDown)
|
|
|
{
|
|
|
//var value = (bool)upDown;
|
|
|
- if (upDown.ToString()== "Up")
|
|
|
+ if (upDown.ToString() == "Up")
|
|
|
{
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Lid}.{AITCylinderOperation.Open}");
|
|
|
}
|
|
@@ -1271,7 +1322,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
}
|
|
|
private async void OnSetSRf()
|
|
|
- {
|
|
|
+ {
|
|
|
|
|
|
if (SRFData.IsRfOn == true)
|
|
|
{
|
|
@@ -1284,7 +1335,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Match}.{AITRfOperation.SetMatchPosition}", SRFMatchC1, SRFMatchC2);
|
|
|
await Task.Delay(100);
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetSRf", SRFFwdPowerSetpoint, true);
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
private async void OnSetBRf()
|
|
@@ -1301,8 +1352,8 @@ namespace Venus_MainPages.ViewModels
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.BiasMatch}.{AITRfOperation.SetMatchPosition}", BRFMatchC1, BRFMatchC2);
|
|
|
await Task.Delay(100);
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBRf", BRFFwdPowerSetpoint, true);
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void OnPMAbort()
|
|
@@ -1314,15 +1365,15 @@ namespace Venus_MainPages.ViewModels
|
|
|
{
|
|
|
//if (butterflyValveMessageBox == null)
|
|
|
//{
|
|
|
- var _mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is Window) as Window;
|
|
|
- butterflyValveMessageBox = new ButterflyValveView();
|
|
|
- butterflyValveMessageBox.WindowStartupLocation = WindowStartupLocation.Manual;
|
|
|
- butterflyValveMessageBox.Left = 700;
|
|
|
- butterflyValveMessageBox.Top = 600;
|
|
|
- butterflyValveMessageBox.Show();
|
|
|
- butterflyValveMessageBox.Owner = _mainWindow;
|
|
|
+ var _mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is Window) as Window;
|
|
|
+ butterflyValveMessageBox = new ButterflyValveView();
|
|
|
+ butterflyValveMessageBox.WindowStartupLocation = WindowStartupLocation.Manual;
|
|
|
+ butterflyValveMessageBox.Left = 700;
|
|
|
+ butterflyValveMessageBox.Top = 600;
|
|
|
+ butterflyValveMessageBox.Show();
|
|
|
+ butterflyValveMessageBox.Owner = _mainWindow;
|
|
|
//}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
private void OnLoadRecipe()
|
|
|
{
|
|
@@ -1346,11 +1397,11 @@ namespace Venus_MainPages.ViewModels
|
|
|
|
|
|
// });
|
|
|
// }
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//}
|
|
|
private void OnHVSet()
|
|
|
- {
|
|
|
+ {
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetESCHV", ESCVoltage);
|
|
|
|
|
|
}
|
|
@@ -1366,18 +1417,18 @@ namespace Venus_MainPages.ViewModels
|
|
|
ClearData();
|
|
|
var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeName + ".rcp");
|
|
|
CurrentRecipe = Recipe.Load(File.ReadAllText(recipePath));
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}",recipeName);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName);
|
|
|
}
|
|
|
|
|
|
private void OnSetChillerTemp(object obj)
|
|
|
{
|
|
|
float offset;
|
|
|
float setPoint;
|
|
|
- var chillerType= (ChillerType)Enum.Parse(typeof(ChillerType), obj.ToString());
|
|
|
+ var chillerType = (ChillerType)Enum.Parse(typeof(ChillerType), obj.ToString());
|
|
|
switch (chillerType)
|
|
|
{
|
|
|
case ChillerType.Chiller:
|
|
|
- var value = (QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.Chiller.ChillerTemperatureOffset").ToString());
|
|
|
+ var value = (QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.Chiller.ChillerTemperatureOffset").ToString());
|
|
|
float.TryParse(value, out offset);
|
|
|
setPoint = ChillerTempSetpoint;
|
|
|
break;
|
|
@@ -1402,7 +1453,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
//var value = (QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.Chiller.ChillerTemperatureOffset").ToString());
|
|
|
//float x;
|
|
|
//float.TryParse(value, out x);
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.HeatChiller", chillerType.ToString(),setPoint, offset);
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.HeatChiller", chillerType.ToString(), setPoint, offset);
|
|
|
}
|
|
|
|
|
|
private void OnOffChiller(object obj)
|
|
@@ -1430,13 +1481,12 @@ namespace Venus_MainPages.ViewModels
|
|
|
|
|
|
private void OnHeater(object obj)
|
|
|
{
|
|
|
- AITHeaterData heaterData = obj as AITHeaterData;
|
|
|
- var _mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is Window) as Window;
|
|
|
-
|
|
|
- heaterView = new HeaterView(heaterData);
|
|
|
- heaterView.WindowStartupLocation = WindowStartupLocation.CenterScreen;
|
|
|
- heaterView.Owner = _mainWindow;
|
|
|
- heaterView.Show();
|
|
|
+ AITHeaterData heaterData = obj as AITHeaterData;
|
|
|
+ var _mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is Window) as Window;
|
|
|
+ heaterView = new HeaterView(heaterData, ModuleName);
|
|
|
+ heaterView.WindowStartupLocation = WindowStartupLocation.CenterScreen;
|
|
|
+ heaterView.Owner = _mainWindow;
|
|
|
+ heaterView.Show();
|
|
|
}
|
|
|
|
|
|
private void OnEndStep()
|
|
@@ -1473,7 +1523,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
MFC8SetPoint = 0;
|
|
|
|
|
|
}
|
|
|
- private IEnumerable<string> GetFilesNames(string path)
|
|
|
+ private IEnumerable<string> GetFilesNames(string path)
|
|
|
{
|
|
|
return Directory.GetFiles(path, "*.rcp")
|
|
|
.Select(Path.GetFileNameWithoutExtension);
|
|
@@ -1482,25 +1532,25 @@ namespace Venus_MainPages.ViewModels
|
|
|
{
|
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
|
|
|
|
- if (RtDataValues==null)
|
|
|
+ if (RtDataValues == null)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- var N2SetPoint =Convert.ToInt32( QueryDataClient.Instance.Service.GetConfig("System.TurboN2FlowSetPoint"));
|
|
|
+ var N2SetPoint = Convert.ToInt32(QueryDataClient.Instance.Service.GetConfig("System.TurboN2FlowSetPoint"));
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcN2.SetPoint", N2SetPoint);
|
|
|
|
|
|
PVN21ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVN21.IsOpen");
|
|
|
GasFinalValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveGasFinal.IsOpen");
|
|
|
- PV11ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV11.IsOpen");
|
|
|
+ PV11ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV11.IsOpen");
|
|
|
PV12ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV12.IsOpen");
|
|
|
- PV21ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV21.IsOpen");
|
|
|
+ PV21ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV21.IsOpen");
|
|
|
PV22ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV22.IsOpen");
|
|
|
PV31ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV31.IsOpen");
|
|
|
PV32ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV32.IsOpen");
|
|
|
PV41ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV41.IsOpen");
|
|
|
PV42ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePV42.IsOpen");
|
|
|
- MFC1ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc1.IsOpen");
|
|
|
+ MFC1ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc1.IsOpen");
|
|
|
MFC2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc2.IsOpen");
|
|
|
MFC3ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc3.IsOpen");
|
|
|
MFC4ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc4.IsOpen");
|
|
@@ -1508,37 +1558,37 @@ namespace Venus_MainPages.ViewModels
|
|
|
MFC6ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc6.IsOpen");
|
|
|
MFC7ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc7.IsOpen");
|
|
|
MFC8ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveMfc8.IsOpen");
|
|
|
- N2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveN2.IsOpen");
|
|
|
+ N2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveN2.IsOpen");
|
|
|
SoftPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveSoftPump.IsOpen");
|
|
|
- FastPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveFastPump.IsOpen");
|
|
|
- GuageValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveGuage.IsOpen");
|
|
|
- PVHe1ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVHe1.IsOpen");
|
|
|
+ FastPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveFastPump.IsOpen");
|
|
|
+ GuageValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveGuage.IsOpen");
|
|
|
+ PVHe1ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVHe1.IsOpen");
|
|
|
PVHe2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVHe2.IsOpen");
|
|
|
PVN21ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVN21.IsOpen");
|
|
|
- PVN22ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVN22.IsOpen");
|
|
|
+ PVN22ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVN22.IsOpen");
|
|
|
TurboPumpPumpingValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveTurboPumpPumping.IsOpen");
|
|
|
TurboPumpPurgeValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveTurboPumpPurge.IsOpen");
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
PumpIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.PumpIsRunning");
|
|
|
TurboIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.TurboPumpIsRunning");
|
|
|
|
|
|
|
|
|
- LiftPinIsUp= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.LiftPinIsUp");
|
|
|
+ LiftPinIsUp = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.LiftPinIsUp");
|
|
|
IsSlitDoorClosed = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsSlitDoorClosed");
|
|
|
IsLidClosed = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsLidClosed");
|
|
|
|
|
|
- PendulumValvePosition = CommonFunction.GetValue<float>(RtDataValues,$"{ModuleName}.GetPVPosition");
|
|
|
- TurboPumpRotationalSpeed = Convert.ToInt32( RtDataValues[$"{ModuleName}.TurboPumpRotationalSpeed"].ToString());
|
|
|
+ PendulumValvePosition = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.GetPVPosition");
|
|
|
+ TurboPumpRotationalSpeed = Convert.ToInt32(RtDataValues[$"{ModuleName}.TurboPumpRotationalSpeed"].ToString());
|
|
|
|
|
|
PositionValue = -((int)((PendulumValvePosition) * 0.09));
|
|
|
|
|
|
|
|
|
PMCurrentState = (PMState)Enum.Parse(typeof(PMState), RtDataValues[$"{ModuleName}.FsmState"].ToString());
|
|
|
-
|
|
|
+
|
|
|
GasIsFlowing = PMCurrentState == PMState.GasFlowing;
|
|
|
- IsProcessing=PMCurrentState == PMState.Processing;
|
|
|
+ IsProcessing = PMCurrentState == PMState.Processing;
|
|
|
MFC1Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas1");
|
|
|
MFC2Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas2");
|
|
|
MFC3Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas3");
|
|
@@ -1567,35 +1617,40 @@ namespace Venus_MainPages.ViewModels
|
|
|
|
|
|
ChillerTemperature = float.Parse(RtDataValues[$"{ModuleName}.Chiller.Temp"].ToString());
|
|
|
|
|
|
+ InnerTemperature = float.Parse(RtDataValues[$"{ModuleName}.ChillerInnerTemp"].ToString());
|
|
|
+ OuterTemperature = float.Parse(RtDataValues[$"{ModuleName}.ChillerOuterTemp"].ToString());
|
|
|
+ TopTemperature = float.Parse(RtDataValues[$"{ModuleName}.ChillerTopTemp"].ToString());
|
|
|
+
|
|
|
+
|
|
|
//HVTemperature = float.Parse(RtDataValues[$"{ModuleName}.{VenusDevice.ESCHV}.Temp"].ToString());
|
|
|
|
|
|
|
|
|
|
|
|
ChillerIsOn = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.Chiller.IsOn");
|
|
|
|
|
|
- SourceRFFanInterlock= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.SourceRFFanInterlock");
|
|
|
- IsWLK= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsWLK");
|
|
|
- IsWaterFlowOk= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsWaterFlowOk");
|
|
|
- IsTurboPumpInterlock= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsTurboPumpInterlock");
|
|
|
- IsCDAOK= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsCDA_OK");
|
|
|
- SensorGasBoxDoor= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.GasBoxDoorSW.Value");
|
|
|
- SensorGasBoxPressure= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.GasBoxPressureSW.Value");
|
|
|
+ SourceRFFanInterlock = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.SourceRFFanInterlock");
|
|
|
+ IsWLK = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsWLK");
|
|
|
+ IsWaterFlowOk = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsWaterFlowOk");
|
|
|
+ IsTurboPumpInterlock = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsTurboPumpInterlock");
|
|
|
+ IsCDAOK = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsCDA_OK");
|
|
|
+ SensorGasBoxDoor = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.GasBoxDoorSW.Value");
|
|
|
+ SensorGasBoxPressure = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.GasBoxPressureSW.Value");
|
|
|
+
|
|
|
+ IsATM = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsATM");
|
|
|
+ IsVAC = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsVAC");
|
|
|
|
|
|
- IsATM= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsATM");
|
|
|
- IsVAC = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsVAC");
|
|
|
+ ESCHVOutputVoltage = CommonFunction.GetValue<int>(RtDataValues, $"{ModuleName}.ESCHV.OutputVoltage");
|
|
|
|
|
|
- ESCHVOutputVoltage= CommonFunction.GetValue<int>(RtDataValues, $"{ModuleName}.ESCHV.OutputVoltage");
|
|
|
|
|
|
-
|
|
|
- MatchC1 = CommonFunction.GetValue<float>(RtDataValues,$"{ModuleName}.{VenusDevice.Match}.C1");
|
|
|
- MatchC2 = CommonFunction.GetValue<float>(RtDataValues,$"{ModuleName}.{VenusDevice.Match}.C2");
|
|
|
-
|
|
|
+ MatchC1 = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.{VenusDevice.Match}.C1");
|
|
|
+ MatchC2 = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.{VenusDevice.Match}.C2");
|
|
|
+
|
|
|
BiasMatchC1 = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.{VenusDevice.BiasMatch}.C1");
|
|
|
BiasMatchC2 = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.{VenusDevice.BiasMatch}.C2");
|
|
|
TurboPumpWaterFlowSwitch = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.TurboPumpWaterFlowSwitch.Value");
|
|
|
- IsTurboPumpAtSpeed = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsTurboPumpAtSpeed");
|
|
|
- IsHasWafer= CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.HasWafer");
|
|
|
- WaferID = IsHasWafer ? ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].SourceName : "";
|
|
|
+ IsTurboPumpAtSpeed = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.IsTurboPumpAtSpeed");
|
|
|
+ IsHasWafer = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.HasWafer");
|
|
|
+
|
|
|
|
|
|
if (PMCurrentState == PMState.Processing)
|
|
|
{
|
|
@@ -1604,7 +1659,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
{
|
|
|
var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, CurrentRecipeResult.RecipeName + ".rcp");
|
|
|
CurrentRecipe = Recipe.Load(File.ReadAllText(recipePath));
|
|
|
- CurrentRecipeStep = CurrentRecipe.Steps[Convert.ToInt32( CurrentRecipeResult.RecipeStepNumber) - 1];
|
|
|
+ CurrentRecipeStep = CurrentRecipe.Steps[Convert.ToInt32(CurrentRecipeResult.RecipeStepNumber) - 1];
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -1613,15 +1668,15 @@ namespace Venus_MainPages.ViewModels
|
|
|
CurrentRecipeStep = null;
|
|
|
}
|
|
|
|
|
|
- if (Math.Abs(100 - ProcessLowPressure) > 1 && ProcessLowPressure<100)
|
|
|
+ if (Math.Abs(100 - ProcessLowPressure) > 1 && ProcessLowPressure < 100)
|
|
|
{
|
|
|
- ChamberPressureFeedBack = ProcessLowPressure;
|
|
|
+ ChamberPressureFeedBack = ProcessLowPressure;
|
|
|
}
|
|
|
else
|
|
|
- {
|
|
|
- ChamberPressureFeedBack = ProcessHighPressure;
|
|
|
+ {
|
|
|
+ ChamberPressureFeedBack = ProcessHighPressure;
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
public void addDataKeys()
|
|
|
{
|
|
|
m_RtDataKeys.Clear();
|
|
@@ -1635,7 +1690,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
m_RtDataKeys.Add($"{ModuleName}.MfcGas8");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.MfcHe");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.MfcN2");
|
|
|
-
|
|
|
+
|
|
|
|
|
|
m_RtDataKeys.Add($"{ModuleName}.ForelinePressure");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.ProcessHighPressure");
|
|
@@ -1693,7 +1748,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
|
|
|
m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.Match}.C1");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.Match}.C2");
|
|
|
- // m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.Match}.WorkMode");
|
|
|
+ // m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.Match}.WorkMode");
|
|
|
|
|
|
m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.BiasMatch}.C1");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.BiasMatch}.C2");
|
|
@@ -1712,7 +1767,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
//m_RtDataKeys.Add($"{ModuleName}.ESCHV.IsOn");
|
|
|
|
|
|
|
|
|
- m_RtDataKeys.Add($"{ModuleName}.IsWaterFlowOk");
|
|
|
+ m_RtDataKeys.Add($"{ModuleName}.IsWaterFlowOk");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.IsWLK");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.IsCDA_OK");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.SourceRFFanInterlock");
|
|
@@ -1735,6 +1790,12 @@ namespace Venus_MainPages.ViewModels
|
|
|
m_RtDataKeys.Add($"{ModuleName}.HasWafer");
|
|
|
m_RtDataKeys.Add($"{ModuleName}.CurrentRecipeResult");
|
|
|
|
|
|
+ m_RtDataKeys.Add($"{ModuleName}.ChillerInnerTemp");
|
|
|
+ m_RtDataKeys.Add($"{ModuleName}.ChillerOuterTemp");
|
|
|
+ m_RtDataKeys.Add($"{ModuleName}.ChillerTopTemp");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}
|
|
|
#endregion
|