InitTask.cs 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. using Aitex.Core.Util;
  2. using Aitex.Sorter.Common;
  3. using Aitex.Sorter.RT.EFEMs.Servers;
  4. using MECF.Framework.Common.Equipment;
  5. namespace Aitex.Sorter.RT.EFEMs.Tasks
  6. {
  7. public class InitTask : CheckImp, ITask
  8. {
  9. public InitTask()
  10. {
  11. }
  12. public bool Execute(out string result, params string[] args)
  13. {
  14. result = string.Empty;
  15. string device = Args2Unit(args.Length > 0 ? args[0] : string.Empty);
  16. if (string.IsNullOrEmpty(device))
  17. device = DeviceName.System;
  18. IServerModule entity = GetEntity(device);
  19. if (entity == null || (device == DeviceName.Aligner && !AlignerInstalled))
  20. {
  21. result = PARAM_NG;
  22. return false;
  23. }
  24. if (!Check<InitNoReadyPolicy>(device, out result))
  25. {
  26. return false;
  27. }
  28. if (!Check<InitBusyPolicy>(device, out result))
  29. {
  30. return false;
  31. }
  32. if (!Check<HoldPolicy>(device, out result))
  33. {
  34. return false;
  35. }
  36. if (!Check<RemovePolicy>(device, out result))
  37. {
  38. return false;
  39. }
  40. if (!Check<MaintenancePolicy>(DeviceName.System, out result))
  41. {
  42. return false;
  43. }
  44. if (!Check<LinkPolicy>(device, out result))
  45. {
  46. return false;
  47. }
  48. if (device == DeviceName.System)
  49. {
  50. GetEntity(DeviceName.Robot).Initialized = false;
  51. for (int i = 0; i < LoadPortQuantity; i++)
  52. {
  53. GetEntity($"LP{i + 1}").Initialized = false;
  54. }
  55. if (AlignerInstalled)
  56. {
  57. GetEntity(DeviceName.Aligner).Initialized = false;
  58. }
  59. // GetEntity(DeviceName.System).Initialized = false;
  60. // Singleton<RouteManager>.Instance.CheckToPostMsg(RouteManager.MSG.HOME);
  61. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.System, false);
  62. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.LP1, false);
  63. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.LP2, false);
  64. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.LP3, false);
  65. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.LP4, false);
  66. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.Robot, false);
  67. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.Aligner, false);
  68. }else if (device.StartsWith("LP"))
  69. {
  70. Singleton<EfemEntity>.Instance.SetInitialize(ModuleHelper.Converter(device), false);
  71. }
  72. entity.Initialized = false;
  73. if (!entity.Init(out result))
  74. {
  75. return false;
  76. }
  77. return true;
  78. }
  79. public bool? Monitor(out string result, params string[] args)
  80. {
  81. result = string.Empty;
  82. string device = Args2Unit(args.Length > 0 ? args[0] : string.Empty);
  83. if (string.IsNullOrEmpty(device))
  84. device = DeviceName.System;
  85. IServerModule entity = GetEntity(device);
  86. if (entity.Error)
  87. {
  88. flag1 = ErrorCheckList1.VAC | ErrorCheckList1.AIR | ErrorCheckList1.STALL
  89. | ErrorCheckList1.LIMIT | ErrorCheckList1.SENSOR | ErrorCheckList1.POSITION |
  90. ErrorCheckList1.EMS
  91. | ErrorCheckList1.COMM | ErrorCheckList1.COMM2 | ErrorCheckList1.VACON | ErrorCheckList1.VACOFF
  92. | ErrorCheckList1.CLAMPON | ErrorCheckList1.CLAMPOF;
  93. flag2 = ErrorCheckList2.RRTWAF | ErrorCheckList2.CRSWAF | ErrorCheckList2.THICKWAF |
  94. ErrorCheckList2.THINWAF
  95. | ErrorCheckList2.DBLWAF | ErrorCheckList2.BAOWAF | ErrorCheckList2.COMMAND |
  96. ErrorCheckList2.PODNG
  97. | ErrorCheckList2.PODMISMATCH | ErrorCheckList2.VAC_S | ErrorCheckList2.CLAMP_S |
  98. ErrorCheckList2.SAFTY
  99. | ErrorCheckList2.LOCKNG | ErrorCheckList2.UNLOCKNG | ErrorCheckList2.L_KEY_LK |
  100. ErrorCheckList2.L_KEY_UL;
  101. flag3 = ErrorCheckList3.MAP_S | ErrorCheckList3.MAP_S1 | ErrorCheckList3.MAP_S2 |
  102. ErrorCheckList3.WAFLOST
  103. | ErrorCheckList3.ALIGNNG
  104. | ErrorCheckList3.DRIVER | ErrorCheckList3.DRPOWERDOWN | ErrorCheckList3.HARDWARE
  105. | ErrorCheckList3.INTERNAL | ErrorCheckList3.E84_TIMEOUTx | ErrorCheckList3.E84_CS_VALID |
  106. ErrorCheckList3.READFAIL;
  107. return CheckError(device, out result);
  108. }
  109. if (!entity.Busy)
  110. {
  111. if (device==DeviceName.System)
  112. {
  113. GetEntity(DeviceName.Robot).Initialized = true;
  114. GetEntity(DeviceName.System).Initialized = true;
  115. GetEntity(DeviceName.Robot).OriginSearched = true;
  116. GetEntity(DeviceName.System).OriginSearched = true;
  117. for (int i = 0; i < LoadPortQuantity; i++)
  118. {
  119. GetEntity($"LP{i+1}").Initialized = true;
  120. GetEntity($"LP{i+1}").OriginSearched = true;
  121. //Singleton<EfemEntity>.Instance.SendSigStatEvent(ModuleHelper.Converter($"LP{i + 1}"));
  122. }
  123. if (AlignerInstalled)
  124. {
  125. GetEntity(DeviceName.Aligner).Initialized = true;
  126. GetEntity(DeviceName.Aligner).OriginSearched = true;
  127. }
  128. if (CoolingBufferInstalled)
  129. {
  130. GetEntity(DeviceName.CoolingBuffer1).Initialized = true;
  131. GetEntity(DeviceName.CoolingBuffer1).OriginSearched = true;
  132. GetEntity(DeviceName.CoolingBuffer2).Initialized = true;
  133. GetEntity(DeviceName.CoolingBuffer2).OriginSearched = true;
  134. }
  135. Singleton<EfemEntity>.Instance.EfemDevice.IsEMSStop = false;
  136. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.System, true);
  137. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.LP1, true);
  138. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.LP2, true);
  139. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.LP3, true);
  140. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.LP4, true);
  141. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.Robot, true);
  142. Singleton<EfemEntity>.Instance.SetInitialize(ModuleName.Aligner, true);
  143. entity.Initialized = true;
  144. return true;
  145. }
  146. else if (device.StartsWith("LP"))
  147. {
  148. Singleton<EfemEntity>.Instance.SetInitialize(ModuleHelper.Converter(device), true);
  149. }
  150. entity.Initialized = true;
  151. return true;
  152. }
  153. return null;
  154. }
  155. }
  156. }