NoPosPolicy.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Sorter.Common;
  3. using athosRT.Devices.EFEM.Task;
  4. using MECF.Framework.Common.Equipment;
  5. using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.LoadPortBase;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace athosRT.Devices.EFEM.ABS
  12. {
  13. public class NoPosPolicy : CheckImp, IPolicy
  14. {
  15. public bool Check(string device, out string reason)
  16. {
  17. reason = string.Empty;
  18. this.GetEntity(device);
  19. if (ModuleHelper.IsLoadLock((ModuleName)Enum.Parse(typeof(ModuleName), device)))
  20. {
  21. LoadPortBaseDevice device1 = DEVICE.GetDevice<LoadPortBaseDevice>(ModuleName.LP1.ToString());
  22. if (device1.DoorState == FoupDoorState.Close && device1.ClampState == FoupClampState.Open)
  23. {
  24. reason = "NOPOS";
  25. return false;
  26. }
  27. }
  28. return true;
  29. }
  30. }
  31. }