|
@@ -437,7 +437,7 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
var pm = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule);
|
|
|
foreach (var wafer in wafers)
|
|
|
{
|
|
|
- if (wafer==null||wafer.IsEmpty || (wafer.WaferType != WaferType.SD && wafer.WaferType != WaferType.ED))
|
|
|
+ if (wafer == null || wafer.IsEmpty || (wafer.WaferType != WaferType.SD && wafer.WaferType != WaferType.ED))
|
|
|
continue;
|
|
|
#region New
|
|
|
var isScheduleMaintenance = SC.ContainsItem("System.EnableScheduleMaintenance") && SC.GetValue<bool>("System.EnableScheduleMaintenance");
|
|
@@ -464,7 +464,7 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
if (wafer.WaferType == WaferType.SD && IsEnableSDWaferUseCountWarning && wafer.UseCount > SDCountWarning && wafer.UseCount < SDCountAlarm)
|
|
|
{
|
|
|
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemSDCarrierUseFreq.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeUseCountWarning.Set, $"more than {SDCountWarning} 次"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemSDCarrierUseFreq, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeUseCountWarning.Set, $"more than {SDCountWarning} 次"));
|
|
|
|
|
|
}
|
|
|
|
|
@@ -472,19 +472,19 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
{
|
|
|
DateTimeUtil.ConvertSecondsToHoursAndMinutes(SDTimeWarning, out var hours, out var minutes);
|
|
|
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemSDWaferUserTime.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeUseTimeWarning.Set, $"more than {hours} hour {minutes} min"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemSDWaferUserTime, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeUseTimeWarning.Set, $"more than {hours} hour {minutes} min"));
|
|
|
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.SD && IsEnableSDWaferThicknessWarning && wafer.UseThick > SDThicknessWarning && wafer.UseThick < SDThicknessAlarm)
|
|
|
{
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemSDWaferThickness.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeThicknessWarning.Set, $"more than {SDThicknessWarning} nm"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemSDWaferThickness, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeThicknessWarning.Set, $"more than {SDThicknessWarning} nm"));
|
|
|
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.SD && IsEnableSDWaferUseCountWarning && wafer.UseCount >= SDCountAlarm)
|
|
|
{
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemSDCarrierUseFreq.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeUseCountAlarm.Set, $"more than {SDCountAlarm} 次"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemSDCarrierUseFreq, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeUseCountAlarm.Set, $"more than {SDCountAlarm} 次"));
|
|
|
|
|
|
return false;
|
|
|
}
|
|
@@ -493,14 +493,14 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
{
|
|
|
|
|
|
DateTimeUtil.ConvertSecondsToHoursAndMinutes(SDTimeAlarm, out var hours, out var minutes);
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemSDWaferUserTime.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeUseTimeAlarm.Set, $"more than {hours} hour {minutes}"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemSDWaferUserTime, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeUseTimeAlarm.Set, $"more than {hours} hour {minutes}"));
|
|
|
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.SD && IsEnableSDWaferThicknessWarning && wafer.UseThick >= SDThicknessAlarm)
|
|
|
{
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemSDWaferThickness.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeThicknessAlarm.Set, $"more than {SDThicknessAlarm} nm"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemSDWaferThickness, new AlarmReportItem(Singleton<EquipmentManager>.Instance.SDWaferTypeThicknessAlarm.Set, $"more than {SDThicknessAlarm} nm"));
|
|
|
|
|
|
return false;
|
|
|
}
|
|
@@ -525,42 +525,44 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
bool IsEnableEDWaferUseTimeWarning = EDTimeWarning > 0;
|
|
|
if (wafer.WaferType == WaferType.ED && IsEnableEDWaferUseCountWarning && maintenanceItemEDCarrierUseFreq.CurrentValue > EDCountWarning && wafer.UseCount < EDCountAlarm)
|
|
|
{
|
|
|
- pm.MaintenanceProcessingCommandExec(
|
|
|
- maintenanceItemEDCarrierUseFreq.MaintenanceProcessing,
|
|
|
- new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeUseCountWarning.Set, $"more than {EDCountWarning} 次")
|
|
|
- );
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemEDCarrierUseFreq, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeUseCountWarning.Set));
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.ED && IsEnableEDWaferUseTimeWarning && wafer.UseTime > EDTimeWarning && wafer.UseTime < EDTimeAlarm)
|
|
|
{
|
|
|
- DateTimeUtil.ConvertSecondsToHoursAndMinutes(EDTimeWarning, out var hours, out var minutes);
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemEDWaferUserTime.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeUseTimeWarning.Set, $"more than {hours} hour {minutes} min"));
|
|
|
+ var currentValue = DateTimeUtil.SecondToHHmmss(maintenanceItemEDWaferUserTime.CurrentValue.ToString());
|
|
|
+ var startValue = DateTimeUtil.SecondToHHmmss(maintenanceItemEDWaferUserTime.StartValue.ToString());
|
|
|
+ var limitValue = DateTimeUtil.SecondToHHmmss(maintenanceItemEDWaferUserTime.LimitValue.ToString());
|
|
|
+
|
|
|
+
|
|
|
+ var msg = $"{maintenanceItemEDWaferUserTime.Item}-{maintenanceItemEDWaferUserTime.Display} {maintenanceItemEDWaferUserTime.AdditionInformationDisplay} {currentValue} limit is ({startValue}~{limitValue}) {maintenanceItemEDWaferUserTime.Unit}";
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemEDWaferUserTime, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeUseTimeWarning.Set, msg));
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.ED && IsEnableEDWaferThicknessWarning && wafer.UseThick > EDThicknessWarning && wafer.UseThick < EDThicknessAlarm)
|
|
|
{
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemEDWaferThickness.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeThicknessWarning.Set, $"more than {EDThicknessWarning} nm"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemEDWaferThickness, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeThicknessWarning.Set, $"more than {EDThicknessWarning} nm"));
|
|
|
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.ED && IsEnableEDWaferUseCountWarning && wafer.UseCount >= EDCountAlarm)
|
|
|
{
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemEDCarrierUseFreq.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeUseCountAlarm.Set, $"more than {EDCountAlarm} 次"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemEDCarrierUseFreq, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeUseCountAlarm.Set, $"more than {EDCountAlarm} 次"));
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.ED && IsEnableEDWaferUseTimeWarning && wafer.UseTime >= EDTimeAlarm)
|
|
|
{
|
|
|
DateTimeUtil.ConvertSecondsToHoursAndMinutes(EDTimeAlarm, out var hours, out var minutes);
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemEDWaferUserTime.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeUseTimeAlarm.Set, $"more than {hours} hour {minutes}"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemEDWaferUserTime, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeUseTimeAlarm.Set, $"more than {hours} hour {minutes}"));
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (wafer.WaferType == WaferType.ED && IsEnableEDWaferThicknessWarning && wafer.UseThick >= EDThicknessAlarm)
|
|
|
{
|
|
|
- pm.MaintenanceProcessingCommandExec(maintenanceItemEDWaferThickness.MaintenanceProcessing, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeThicknessAlarm.Set, $"more than {EDThicknessAlarm} nm"));
|
|
|
+ pm.MaintenanceProcessingCommandExec(maintenanceItemEDWaferThickness, new AlarmReportItem(Singleton<EquipmentManager>.Instance.EDWaferTypeThicknessAlarm.Set, $"more than {EDThicknessAlarm} nm"));
|
|
|
return false;
|
|
|
}
|
|
|
#endregion
|