|
@@ -1,4 +1,5 @@
|
|
|
using Aitex.Core.RT.Log;
|
|
|
+using ExcelLibrary.BinaryFileFormat;
|
|
|
using MECF.Framework.Common.CommonData;
|
|
|
using MECF.Framework.Common.DataCenter;
|
|
|
using MECF.Framework.Common.Equipment;
|
|
@@ -119,10 +120,51 @@ namespace Venus_MainPages.ViewModels
|
|
|
private string m_PMCChamberType;
|
|
|
private string m_PMDChamberType;
|
|
|
|
|
|
+
|
|
|
+ private bool m_LP1Loaded;
|
|
|
+ private bool m_LP2Loaded;
|
|
|
+ private bool m_LP3Loaded;
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 属性
|
|
|
|
|
|
+ public bool LP1Loaded
|
|
|
+ {
|
|
|
+ get { return m_LP1Loaded; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ if (m_LP1Loaded != value)
|
|
|
+ {
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"LP1.ReadCarrierId");
|
|
|
+ }
|
|
|
+ SetProperty(ref m_LP1Loaded, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public bool LP2Loaded
|
|
|
+ {
|
|
|
+ get { return m_LP2Loaded; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ if (m_LP2Loaded != value)
|
|
|
+ {
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"LP2.ReadCarrierId");
|
|
|
+ }
|
|
|
+ SetProperty(ref m_LP2Loaded, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public bool LP3Loaded
|
|
|
+ {
|
|
|
+ get { return m_LP3Loaded; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ if (m_LP3Loaded != value)
|
|
|
+ {
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"LP3.ReadCarrierId");
|
|
|
+ }
|
|
|
+ SetProperty(ref m_LP3Loaded, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
public string PMAChamberType
|
|
|
{
|
|
|
get { return m_PMAChamberType; }
|
|
@@ -250,9 +292,9 @@ namespace Venus_MainPages.ViewModels
|
|
|
public NiceGuangChuanWaferRobotTAction BladeNiceGuangChuanWaferRobotTAction
|
|
|
{
|
|
|
get { return m_BladeNiceGuangChuanWaferRobotTAction; }
|
|
|
- set
|
|
|
- {
|
|
|
- SetProperty(ref m_BladeNiceGuangChuanWaferRobotTAction, value);
|
|
|
+ set
|
|
|
+ {
|
|
|
+ SetProperty(ref m_BladeNiceGuangChuanWaferRobotTAction, value);
|
|
|
}
|
|
|
}
|
|
|
//public NiceGuangChuanWaferRobotTAction Blade2NiceGuangChuanWaferRobotTAction
|
|
@@ -404,33 +446,33 @@ namespace Venus_MainPages.ViewModels
|
|
|
public bool ButtonIsEnableLP1
|
|
|
{
|
|
|
get { return m_ButtonIsEnableLP1; }
|
|
|
- set
|
|
|
+ set
|
|
|
{
|
|
|
- if (m_ButtonIsEnableLP1 == false && value == true && LP1WaferAssociation!=null)
|
|
|
+ if (m_ButtonIsEnableLP1 == false && value == true && LP1WaferAssociation != null)
|
|
|
{
|
|
|
LP1WaferAssociation.IsEnableCycle = false;
|
|
|
LP1WaferAssociation.CycleNumber = 1;
|
|
|
}
|
|
|
- SetProperty(ref m_ButtonIsEnableLP1, value);
|
|
|
+ SetProperty(ref m_ButtonIsEnableLP1, value);
|
|
|
}
|
|
|
}
|
|
|
public bool ButtonIsEnableLP2
|
|
|
{
|
|
|
get { return m_ButtonIsEnableLP2; }
|
|
|
- set
|
|
|
+ set
|
|
|
{
|
|
|
if (m_ButtonIsEnableLP2 == false && value == true && LP2WaferAssociation != null)
|
|
|
{
|
|
|
LP2WaferAssociation.IsEnableCycle = false;
|
|
|
LP2WaferAssociation.CycleNumber = 1;
|
|
|
}
|
|
|
- SetProperty(ref m_ButtonIsEnableLP2, value);
|
|
|
+ SetProperty(ref m_ButtonIsEnableLP2, value);
|
|
|
}
|
|
|
}
|
|
|
public bool ButtonIsEnableLP3
|
|
|
{
|
|
|
get { return m_ButtonIsEnableLP3; }
|
|
|
- set
|
|
|
+ set
|
|
|
{
|
|
|
if (m_ButtonIsEnableLP3 == false && value == true && LP3WaferAssociation != null)
|
|
|
{
|
|
@@ -663,7 +705,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
|
timer.Tick += Timer_Tick;
|
|
|
timer.Start();
|
|
|
-
|
|
|
+
|
|
|
|
|
|
if (PMAIsInstalled)
|
|
|
{
|
|
@@ -875,7 +917,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
Dictionary<string, object> param = new Dictionary<string, object>()
|
|
|
{
|
|
|
{"JobId", info.JobID},
|
|
|
- {"LotId", info.LotId},
|
|
|
+ {"LotId", info.LotId},
|
|
|
{"Module", info.ModuleData.ModuleID},
|
|
|
{"SlotSequence", slotSequence.ToArray()},
|
|
|
{"AutoStart", true},
|
|
@@ -915,7 +957,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
EfemRobotMoveInfo = (RobotMoveInfo)QueryDataClient.Instance.Service.GetData("EFEM.RobotMoveAction");
|
|
|
|
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
|
- if (RtDataValues == null || RtDataValues.Count==0)
|
|
|
+ if (RtDataValues == null || RtDataValues.Count == 0)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
@@ -927,7 +969,10 @@ namespace Venus_MainPages.ViewModels
|
|
|
BladeAWafer = ModuleManager.ModuleInfos["EfemRobot"].WaferManager.Wafers[0];
|
|
|
BladeBWafer = ModuleManager.ModuleInfos["EfemRobot"].WaferManager.Wafers[1];
|
|
|
|
|
|
-
|
|
|
+ LP1Loaded = CommonFunction.GetValue<bool>(RtDataValues, $"LP1.CassettePlaced");
|
|
|
+ LP2Loaded = CommonFunction.GetValue<bool>(RtDataValues, $"LP2.CassettePlaced");
|
|
|
+ LP3Loaded = CommonFunction.GetValue<bool>(RtDataValues, $"LP3.CassettePlaced");
|
|
|
+
|
|
|
|
|
|
if (LLAIsInstalled == true)
|
|
|
{
|
|
@@ -982,7 +1027,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- ButtonIsEnableLP1= false;
|
|
|
+ ButtonIsEnableLP1 = false;
|
|
|
UPdateWaferAssociation(LP1WaferAssociation, lp1Cj);
|
|
|
}
|
|
|
ControlJobInfo lp2Cj = CommonFunction.GetValue<ControlJobInfo>(RtDataValues, "LP2.CurrentControlJob");
|
|
@@ -1007,7 +1052,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
//LP1WaferCount = LP1ModuleInfo.WaferManager.Wafers.Where(x => x.WaferStatus != 0).Count();
|
|
|
//LP2WaferCount = LP2ModuleInfo.WaferManager.Wafers.Where(x => x.WaferStatus != 0).Count();
|
|
|
//LP3WaferCount = LP3ModuleInfo.WaferManager.Wafers.Where(x => x.WaferStatus != 0).Count();
|
|
@@ -1027,9 +1072,9 @@ namespace Venus_MainPages.ViewModels
|
|
|
/// <param name="cjInfo"></param>
|
|
|
private void UPdateWaferAssociation(WaferAssociationInfo info, ControlJobInfo cjInfo)
|
|
|
{
|
|
|
- if(info==null)
|
|
|
+ if (info == null)
|
|
|
{
|
|
|
- return;
|
|
|
+ return;
|
|
|
}
|
|
|
if (cjInfo != null)
|
|
|
{
|
|
@@ -1061,7 +1106,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
private async void TMRobotMoveInfoChanged(RobotMoveInfo oldValue, RobotMoveInfo newValue)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
string RobotTarget;
|
|
|
if (oldValue == null || newValue == null)
|
|
|
{
|
|
@@ -1090,7 +1135,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//if (arm == "ArmA")
|
|
|
//{
|
|
|
//}
|
|
@@ -1158,13 +1203,13 @@ namespace Venus_MainPages.ViewModels
|
|
|
//if (waferRobotTAction != Blade2NiceXinSongWaferRobotTAction)
|
|
|
//{
|
|
|
//}
|
|
|
- await Task.Delay(600);
|
|
|
+ await Task.Delay(600);
|
|
|
Blade2NiceXinSongWaferRobotXAction = NiceXinSongWaferRobotXAction.Extend2;
|
|
|
|
|
|
while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
|
|
|
{
|
|
|
await Task.Delay(100);
|
|
|
- }
|
|
|
+ }
|
|
|
Blade2NiceXinSongWaferRobotXAction = NiceXinSongWaferRobotXAction.Retract2;
|
|
|
|
|
|
}
|
|
@@ -1196,12 +1241,12 @@ namespace Venus_MainPages.ViewModels
|
|
|
//var waferRobotTAction = (NiceXinSongWaferRobotTAction)Enum.Parse(typeof(NiceXinSongWaferRobotTAction), module, true);
|
|
|
//BladeNiceXinSongWaferRobotTAction = waferRobotTAction;
|
|
|
if (arm == "ArmA")
|
|
|
- {
|
|
|
+ {
|
|
|
await Task.Delay(600);
|
|
|
Blade1NiceXinSongWaferRobotXAction = NiceXinSongWaferRobotXAction.Extend1;
|
|
|
}
|
|
|
else if (arm == "ArmB")
|
|
|
- {
|
|
|
+ {
|
|
|
await Task.Delay(600);
|
|
|
Blade2NiceXinSongWaferRobotXAction = NiceXinSongWaferRobotXAction.Extend2;
|
|
|
}
|
|
@@ -1239,9 +1284,9 @@ namespace Venus_MainPages.ViewModels
|
|
|
Blade1NiceXinSongWaferRobotXAction = NiceXinSongWaferRobotXAction.Retract1;
|
|
|
Blade2NiceXinSongWaferRobotXAction = NiceXinSongWaferRobotXAction.Retract2;
|
|
|
|
|
|
- await Task.Delay(2000);
|
|
|
+ await Task.Delay(2000);
|
|
|
BladeNiceXinSongWaferRobotTAction = NiceXinSongWaferRobotTAction.T_Origin;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
@@ -1270,7 +1315,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
var values = RobotTarget.Split('.');
|
|
|
var arm = values[0];
|
|
|
var module = values[1];
|
|
|
-
|
|
|
+
|
|
|
if (arm == "ArmA")
|
|
|
{
|
|
|
|
|
@@ -1437,6 +1482,9 @@ namespace Venus_MainPages.ViewModels
|
|
|
m_RtDataKeys.Add("LLA.CoolingTime");
|
|
|
m_RtDataKeys.Add("LLB.CoolingTime");
|
|
|
|
|
|
+ m_RtDataKeys.Add("LP1.CarrierId");
|
|
|
+ m_RtDataKeys.Add("LP2.CarrierId");
|
|
|
+ m_RtDataKeys.Add("LP3.CarrierId");
|
|
|
|
|
|
}
|
|
|
private void AssociateSequence(WaferAssociationInfo info, bool flag, int slot = -1)
|