|
@@ -454,7 +454,6 @@ namespace Venus_MainPages.ViewModels
|
|
|
timer.Tick += Timer_Tick;
|
|
|
timer.Start();
|
|
|
|
|
|
- addDataKeys();
|
|
|
string allModules = QueryDataClient.Instance.Service.GetConfig($"System.InstalledModules").ToString();
|
|
|
PMAIsInstalled = allModules.Contains("PMA");
|
|
|
PMBIsInstalled = allModules.Contains("PMB");
|
|
@@ -464,8 +463,9 @@ namespace Venus_MainPages.ViewModels
|
|
|
LLBIsInstalled = allModules.Contains("LLB");
|
|
|
EFEMIsInstalled = allModules.Contains("EFEM");
|
|
|
TMIsInstalled = allModules.Contains("TM");
|
|
|
+ addDataKeys();
|
|
|
+
|
|
|
|
|
|
-
|
|
|
|
|
|
SwitchFlag = false;
|
|
|
|
|
@@ -793,6 +793,32 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
+ #region Rotating
|
|
|
+ if (oldValue.Action == RobotAction.None && (newValue.Action == RobotAction.Rotating))
|
|
|
+ {
|
|
|
+ var TMRobotMoveActionBladeTarget = newValue.BladeTarget;
|
|
|
+ if (TMRobotMoveActionBladeTarget != null)
|
|
|
+ {
|
|
|
+ RobotTarget = TMRobotMoveActionBladeTarget.ToString();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var values = RobotTarget.Split('.');
|
|
|
+ var arm = values[0];
|
|
|
+ var module = values[1];
|
|
|
+ if (arm == "ArmA")
|
|
|
+ {
|
|
|
+ Robot1TAction = (WaferRobotTAction)Enum.Parse(typeof(WaferRobotTAction), module, true);
|
|
|
+ }
|
|
|
+ else if (arm == "ArmB")
|
|
|
+ {
|
|
|
+ Robot2TAction = (WaferRobotTAction)Enum.Parse(typeof(WaferRobotTAction), module, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
}
|
|
|
private async void EFEMRobotMoveInfoChanged(RobotMoveInfo oldValue, RobotMoveInfo newValue)
|
|
|
{
|
|
@@ -920,15 +946,68 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
private void addDataKeys()
|
|
|
{
|
|
|
- m_RtDataKeys.Add("PMA.IsSlitDoorClosed");
|
|
|
- m_RtDataKeys.Add("PMB.IsSlitDoorClosed");
|
|
|
- m_RtDataKeys.Add("PMC.IsSlitDoorClosed");
|
|
|
- m_RtDataKeys.Add("PMD.IsSlitDoorClosed");
|
|
|
+ if (PMAIsInstalled == true)
|
|
|
+ {
|
|
|
+ m_RtDataKeys.Add("PMA.IsSlitDoorClosed");
|
|
|
+ m_RtDataKeys.Add("PMA.CurrentRecipeResult");
|
|
|
+
|
|
|
+ m_RtDataKeys.Add("PMA.IsOnline");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (PMBIsInstalled == true)
|
|
|
+ {
|
|
|
+ m_RtDataKeys.Add("PMB.IsSlitDoorClosed");
|
|
|
+ m_RtDataKeys.Add("PMB.CurrentRecipeResult");
|
|
|
+
|
|
|
+ m_RtDataKeys.Add("PMB.IsOnline");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (PMCIsInstalled == true)
|
|
|
+ {
|
|
|
+ m_RtDataKeys.Add("PMC.IsSlitDoorClosed");
|
|
|
+ m_RtDataKeys.Add("PMC.CurrentRecipeResult");
|
|
|
+
|
|
|
+ m_RtDataKeys.Add("PMC.IsOnline");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (PMDIsInstalled == true)
|
|
|
+ {
|
|
|
+ m_RtDataKeys.Add("PMD.IsSlitDoorClosed");
|
|
|
+ m_RtDataKeys.Add("PMD.CurrentRecipeResult");
|
|
|
+
|
|
|
+ m_RtDataKeys.Add("PMD.IsOnline");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (TMIsInstalled == true)
|
|
|
+ {
|
|
|
+ m_RtDataKeys.Add("TM.LLATSlitDoor.IsClosed");
|
|
|
+ m_RtDataKeys.Add("TM.LLBTSlitDoor.IsClosed");
|
|
|
+ m_RtDataKeys.Add("TM.LLAESlitDoor.IsClosed");
|
|
|
+ m_RtDataKeys.Add("TM.LLBESlitDoor.IsClosed");
|
|
|
+ m_RtDataKeys.Add("TM.IsOnline");
|
|
|
+
|
|
|
+ }
|
|
|
+ if (LLAIsInstalled == true)
|
|
|
+ {
|
|
|
+ m_RtDataKeys.Add("LLA.IsOnline");
|
|
|
+ }
|
|
|
+ if (LLBIsInstalled == true)
|
|
|
+ {
|
|
|
+ m_RtDataKeys.Add("LLB.IsOnline");
|
|
|
+ }
|
|
|
+ if (EFEMIsInstalled == true)
|
|
|
+ {
|
|
|
+ m_RtDataKeys.Add("LP1.IsLoaded");
|
|
|
+ m_RtDataKeys.Add("LP2.IsLoaded");
|
|
|
+ m_RtDataKeys.Add("LP3.IsLoaded");
|
|
|
+
|
|
|
+ m_RtDataKeys.Add("LP1.CassettePlaced");
|
|
|
+ m_RtDataKeys.Add("LP2.CassettePlaced");
|
|
|
+ m_RtDataKeys.Add("LP3.CassettePlaced");
|
|
|
+ m_RtDataKeys.Add("EFEM.IsOnline");
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- m_RtDataKeys.Add("TM.LLATSlitDoor.IsClosed");
|
|
|
- m_RtDataKeys.Add("TM.LLBTSlitDoor.IsClosed");
|
|
|
- m_RtDataKeys.Add("TM.LLAESlitDoor.IsClosed");
|
|
|
- m_RtDataKeys.Add("TM.LLBESlitDoor.IsClosed");
|
|
|
m_RtDataKeys.Add("System.IsAutoMode");
|
|
|
|
|
|
m_RtDataKeys.Add("Scheduler.CycledCount");
|
|
@@ -936,19 +1015,6 @@ namespace Venus_MainPages.ViewModels
|
|
|
m_RtDataKeys.Add("Scheduler.CycleSetPoint");
|
|
|
m_RtDataKeys.Add("Scheduler.Throughput");
|
|
|
|
|
|
- m_RtDataKeys.Add("LP1.IsLoaded");
|
|
|
- m_RtDataKeys.Add("LP2.IsLoaded");
|
|
|
- m_RtDataKeys.Add("LP3.IsLoaded");
|
|
|
-
|
|
|
- m_RtDataKeys.Add("LP1.CassettePlaced");
|
|
|
- m_RtDataKeys.Add("LP2.CassettePlaced");
|
|
|
- m_RtDataKeys.Add("LP3.CassettePlaced");
|
|
|
-
|
|
|
- m_RtDataKeys.Add("PMA.CurrentRecipeResult");
|
|
|
- m_RtDataKeys.Add("PMB.CurrentRecipeResult");
|
|
|
- m_RtDataKeys.Add("PMC.CurrentRecipeResult");
|
|
|
- m_RtDataKeys.Add("PMD.CurrentRecipeResult");
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private void AssociateSequence(WaferAssociationInfo info, bool flag, int slot = -1)
|