using Aitex.Core.Util;
namespace Aitex.Sorter.RT.EFEMs.Servers.ABS
{
///
/// Insufficient vacuum source pressure
///
public class VacPolicy : CheckImp, IPolicy
{
public VacPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (Singleton.Instance.EfemDevice.CheckVacuumError())
{
reason = string.Format("VAC");
return false;
}
return true;
}
}
///
/// AIR Insufficient air source pressure
///
public class AirPolicy : CheckImp, IPolicy
{
public AirPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
//if (DeviceModel.SensorMainAirErrorForRobot.Value || DeviceModel.SensorMainAirErrorForLoadport.Value)
//{
// reason = string.Format("AIR");
// return false;
//}
return true;
}
}
///
/// Motor Stall - Controller detected motor stall.
/// (1) If a wafer is on the finger or aligner, confirm that the wafer is not misaligned.
/// If the wafer is misaligned, retrieve the wafer.
/// (2) After(1) is confirmed, send "SET: ERROR/CLEAR;", "MOV:INIT;" and
/// "MOV:ORGSH;" messages to EFEM to recover.
/// Note: If this error occurs again, maintenance for mechanical and electric
/// sections is required.
///
public class StallPolicy : CheckImp, IPolicy
{
public StallPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("STALL");
return false;
}
return true;
}
}
///
/// LIMIT Limit error
///
public class LIMITPolicy : CheckImp, IPolicy
{
public LIMITPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("LIMIT");
return false;
}
return true;
}
}
///
/// SENSOR Sensor abnormal
///
public class SENSORPolicy : CheckImp, IPolicy
{
public SENSORPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("SENSOR");
return false;
}
return true;
}
}
///
/// POSITION Position error
///
public class POSITIONPolicy : CheckImp, IPolicy
{
public POSITIONPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("POSITION");
return false;
}
return true;
}
}
///
/// Emergency stop
///
public class EMSPolicy : CheckImp, IPolicy
{
public EMSPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("EMS");
return false;
}
return true;
}
}
///
/// Controller Communication
/// Error occurred in communication between the controllers of the unit.
///
public class COMMPolicy : CheckImp, IPolicy
{
public COMMPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("COMM");
return false;
}
return true;
}
}
///
/// COMM2 Module Communication Error
/// Error occurred in communication between modules.
///
public class COMM2Policy : CheckImp, IPolicy
{
public COMM2Policy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("COMM2");
return false;
}
return true;
}
}
///
/// VACON Vacuum ON Error - Load port failed to perform chucking of FOUP door when opening FOUP.
///
public class VACONPolicy : CheckImp, IPolicy
{
public VACONPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("VACON");
return false;
}
return true;
}
}
///
///VACOF Vacuum OFF error - Vacuum solenoid valve at the load port failed.
///
public class VACOFPolicy : CheckImp, IPolicy
{
public VACOFPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("VACOF");
return false;
}
return true;
}
}
///
///CLAMPON Aligner Clamp On Error - Aligner failed clamping wafer when placing wafer on the aligner.
/// Robot Clamp ON Error - Robot failed clamping wafer when picking up the wafer.
///
public class CLAMPONPolicy : CheckImp, IPolicy
{
public CLAMPONPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("CLAMPON");
return false;
}
return true;
}
}
///
///CLAMPOF
///Clamp Off Error - Clamp cylinder of the robot failed
///Clamp sensor of the robot failed
///Clamp cylinder of the aligner failed
///Clamp sensor of the aligner failed.
///
public class CLAMPOFPolicy : CheckImp, IPolicy
{
public CLAMPOFPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("CLAMPOF");
return false;
}
return true;
}
}
///
/// PRTWAF Found Wafer Protrude - Wafer protrusion is detected.
///
public class PRTWAFPolicy : CheckImp, IPolicy
{
public PRTWAFPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("PRTWAF");
return false;
}
return true;
}
}
///
/// COMMAND
/// Command Error - Command error occurred in the communication between controllers.
///
public class COMMANDPolicy : CheckImp, IPolicy
{
public COMMANDPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("COMMAND");
return false;
}
return true;
}
}
///
/// PODNG
/// Pod No-Good Position - FOUP is not properly placed.
///
public class PODNGPolicy : CheckImp, IPolicy
{
public PODNGPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("PODNG");
return false;
}
return true;
}
}
///
/// PODMISMATCH
/// Pod Type Mismatch - Carrier other than FOUP is place on the load port.
/// No cover is on FOUP on the load port.
///
public class PODMISMATCHPolicy : CheckImp, IPolicy
{
public PODMISMATCHPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("PODMISMATCH");
return false;
}
return true;
}
}
///
/// VAC_S
/// Vacuum Sensor Error - Chucking sensor on the load port shows abnormality.
///
public class VAC_SPolicy : CheckImp, IPolicy
{
public VAC_SPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("VAC_S");
return false;
}
return true;
}
}
///
/// CLAMP_S
/// Clamp Sensor Error - Clamp sensor in the robot shows abnormality.
/// Clamp sensor in the aligner shows abnormality.
///
public class CLAMP_SPolicy : CheckImp, IPolicy
{
public CLAMP_SPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("CLAMP_S");
return false;
}
return true;
}
}
///
/// SAFTY
/// Safety Sensor Active - Finger pinch detecting sensor is activated during load port operation.
///
public class SAFTYPolicy : CheckImp, IPolicy
{
public SAFTYPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("SAFTY");
return false;
}
return true;
}
}
///
/// LOCKNG
/// FOUP Lock Fail - FOUP clamp failure on the load port
///
public class LOCKNGPolicy : CheckImp, IPolicy
{
public LOCKNGPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("LOCKNG");
return false;
}
return true;
}
}
///
/// UNLOCKNG
/// FOUP Unlock Fail - FOUP unclamp failure on the load port.
///
public class UNLOCKNGPolicy : CheckImp, IPolicy
{
public UNLOCKNGPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("UNLOCKNG");
return false;
}
return true;
}
}
///
/// L_KEY_LK
/// Latch-Key Lock Fail - Latch key is not properly returned when FOUP is closed on the load port.
///
public class L_KEY_LKPolicy : CheckImp, IPolicy
{
public L_KEY_LKPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("L_KEY_LK");
return false;
}
return true;
}
}
///
/// L_KEY_UL
/// Latch-Key Unlock Fail - Latch key is not properly turned when FOUP is opened on the load port.
///
public class L_KEY_ULPolicy : CheckImp, IPolicy
{
public L_KEY_ULPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("L_KEY_UL");
return false;
}
return true;
}
}
///
/// MAP_S
/// Mapping Sensor Error - Mapping sensor shows abnormality on the load port.
///
public class MAP_SPolicy : CheckImp, IPolicy
{
public MAP_SPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("MAP_S");
return false;
}
return true;
}
}
///
/// MAP_S1
/// Mapping Sensor Error1- Load port failed preparation for mapping sensor.
///
public class MAP_S1Policy : CheckImp, IPolicy
{
public MAP_S1Policy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("MAP_S1");
return false;
}
return true;
}
}
///
/// MAP_S2
/// Mapping Sensor Error2- Load port failed containing of mapping sensor.
///
public class MAP_S2Policy : CheckImp, IPolicy
{
public MAP_S2Policy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("MAP_S2");
return false;
}
return true;
}
}
///
/// WAFLOST Wafer Lost - Wafer presence on the robot finger is lost.
/// Wafer presence on the aligner is lost.
///
public class WAFLOSTPolicy : CheckImp, IPolicy
{
public WAFLOSTPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("WAFLOST");
return false;
}
return true;
}
}
///
///ALIGNNG Alignment Fail - Wafer alignment failed.
///
public class ALIGNNGPolicy : CheckImp, IPolicy
{
public ALIGNNGPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("ALIGNNG");
return false;
}
return true;
}
}
///
///DRIVER Driver Abnormal - Motor control driver shows abnormality.
///Driver abnormality is shown due to drive power failure while motor is operating.
///
public class DRIVERPolicy : CheckImp, IPolicy
{
public DRIVERPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("DRIVER");
return false;
}
return true;
}
}
///
///DRPOWERDOWN
///Driver Power Down - Motion is stopped due to drive power failure.
///
public class DRPOWERDOWNPolicy : CheckImp, IPolicy
{
public DRPOWERDOWNPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("DRPOWERDOWN");
return false;
}
return true;
}
}
///
///HARDWARE Hardware Error - Hardware malfunction occurred on any single unit.
///
public class HARDWAREPolicy : CheckImp, IPolicy
{
public HARDWAREPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("HARDWARE");
return false;
}
return true;
}
}
///
/// INTERNAL
/// Internal Error - Internal error occurred at the section where each unit inside EFEM PC iscontrolled.
///
public class INTERNALPolicy : CheckImp, IPolicy
{
public INTERNALPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("INTERNAL");
return false;
}
return true;
}
}
///
/// CRSWAF Found Cross Wafer- Cross wafer is detected during wafer mapping.
///
public class CRSWAFPolicy : CheckImp, IPolicy
{
public CRSWAFPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("CRSWAF");
return false;
}
return true;
}
}
///
/// THICKWAF Found Thick Wafer- Thicker wafer than the standard is detected during wafer mappi
///
public class THICKWAFPolicy : CheckImp, IPolicy
{
public THICKWAFPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("THICKWAF");
return false;
}
return true;
}
}
///
/// THINWAF Found Thin wafer- Thinner wafer than the standard isdetected during wafer mapping.
///
public class THINWAFPolicy : CheckImp, IPolicy
{
public THINWAFPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("THINWAF");
return false;
}
return true;
}
}
///
/// DBLWAF Found Double Wafer- Two or more wafers in one slot ar detected during wafer mapping. ///
///
public class DBLWAFPolicy : CheckImp, IPolicy
{
public DBLWAFPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("DBLWAF");
return false;
}
return true;
}
}
///
/// BOWWAF Found Bow Wafer- Front bow wafer is detected during wafer mapping.
///
public class BOWWAFPolicy : CheckImp, IPolicy
{
public BOWWAFPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("BOWWAF");
return false;
}
return true;
}
}
///
/// E84_TIMEOUTx E84 Timeout- E84 automated transfer sequence timeout occurred. ///
///
public class E84_TIMEOUTxPolicy : CheckImp, IPolicy
{
public E84_TIMEOUTxPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("E84_TIMEOUTx");
return false;
}
return true;
}
}
///
///E84_CS_VALID E84 Signal Error
/// CS_0,CS_1,VALID signals are changed while E84 automated transfer sequence is processing.
///
public class E84_CS_VALIDPolicy : CheckImp, IPolicy
{
public E84_CS_VALIDPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("E84_CS_VALID");
return false;
}
return true;
}
}
///
///READFAIL ID Read Fail- ID reading failed
///
public class READFAILPolicy : CheckImp, IPolicy
{
public READFAILPolicy()
{
}
public bool Check(string device, out string reason)
{
reason = string.Empty;
if (false)
{
reason = string.Format("READFAIL");
return false;
}
return true;
}
}
}