|
@@ -41,6 +41,7 @@ using MECF.Framework.Common.DataCenter;
|
|
|
using DocumentFormat.OpenXml.Drawing.Charts;
|
|
|
using MECF.Framework.Common.Utilities;
|
|
|
using System.Threading;
|
|
|
+using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs;
|
|
|
|
|
|
namespace FurnaceRT.Equipments.Jobs
|
|
|
{
|
|
@@ -1311,7 +1312,7 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (!CheckDummyWaferUse(pj))
|
|
|
+ if (!CheckDummyWaferUse(pj, cj))
|
|
|
return;
|
|
|
|
|
|
if (!SC.GetValue<bool>("System.IsEnableDummyWaferDischarge"))
|
|
@@ -5904,7 +5905,7 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
|
|
|
#region dummy use
|
|
|
|
|
|
- private bool CheckDummyWaferUse(ProcessJobInfo pj)
|
|
|
+ private bool CheckDummyWaferUse(ProcessJobInfo pj, ControlJobInfo cj)
|
|
|
{
|
|
|
foreach (var module in Singleton<EquipmentManager>.Instance.Modules.Keys)
|
|
|
{
|
|
@@ -5995,10 +5996,35 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
int EDTimeWarning = DateTimeUtil.GetSecond(maintenanceItemEDWaferUserTime.StartValue);
|
|
|
int EDTimeAlarm = DateTimeUtil.GetSecond(maintenanceItemEDWaferUserTime.LimitValue);
|
|
|
bool IsEnableEDWaferUseTimeWarning = EDTimeWarning > 0;
|
|
|
- if (wafer.WaferType == WaferType.ED && IsEnableEDWaferUseCountWarning && wafer.UseCount > EDCountWarning && wafer.UseCount < EDCountAlarm)
|
|
|
+ if (wafer.WaferType == WaferType.ED && IsEnableEDWaferUseCountWarning && maintenanceItemEDCarrierUseFreq.CurrentValue > EDCountWarning && wafer.UseCount < EDCountAlarm)
|
|
|
{
|
|
|
- Singleton<ScheduleMaintenanceDataManager>.Instance.MaintenanceProcessingCommandExec(maintenanceItemEDCarrierUseFreq.MaintenanceProcessing, Singleton<EquipmentManager>.Instance.EDWaferTypeUseCountWarning.Set, $"more than {EDCountWarning} 次");
|
|
|
- return false;
|
|
|
+ //Singleton<ScheduleMaintenanceDataManager>.Instance.MaintenanceProcessingCommandExec(maintenanceItemEDCarrierUseFreq.MaintenanceProcessing, Singleton<EquipmentManager>.Instance.EDWaferTypeUseCountWarning.Set, $"more than {EDCountWarning} 次");
|
|
|
+ //return false;
|
|
|
+ if (Enum.TryParse<MaintenanceProcessingCommandEnum>(maintenanceItemEDCarrierUseFreq.MaintenanceProcessing, out var command))
|
|
|
+ {
|
|
|
+ switch (command)
|
|
|
+ {
|
|
|
+ case MaintenanceProcessingCommandEnum.None:
|
|
|
+ break;
|
|
|
+ case MaintenanceProcessingCommandEnum.AlarmReport:
|
|
|
+ Singleton<EquipmentManager>.Instance.EDWaferTypeUseCountWarning.Set($"more than {EDCountWarning} 次");
|
|
|
+ break;
|
|
|
+ case MaintenanceProcessingCommandEnum.JobProhibition:
|
|
|
+ break;
|
|
|
+ case MaintenanceProcessingCommandEnum.JobManualStart:
|
|
|
+ break;
|
|
|
+ case MaintenanceProcessingCommandEnum.JobAutoStart:
|
|
|
+
|
|
|
+ Singleton<EquipmentManager>.Instance.EDWaferTypeUseCountWarning.Set($"more than {EDCountWarning} 次");
|
|
|
+ Singleton<EquipmentManager>.Instance.CheckToPostMessage((int)EquipmentManager.MSG.JobAutoStart, cj.Name);
|
|
|
+ var pmModule = Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule;
|
|
|
+ if (pmModule != null)
|
|
|
+ pmModule.Process(maintenanceItemEDCarrierUseFreq.AssociationProcessRecipeName, false, true, out string reson);
|
|
|
+
|
|
|
+ return false;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.ED && IsEnableEDWaferUseTimeWarning && wafer.UseTime > EDTimeWarning && wafer.UseTime < EDTimeAlarm)
|