ModuleName.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.Serialization;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace MECF.Framework.Common.Equipment
  8. {
  9. /// <summary>
  10. /// 在框架中,Module指具备放置Wafer的单元
  11. /// </summary>
  12. [DataContract]
  13. [Serializable]
  14. public enum ModuleName
  15. {
  16. [EnumMember]
  17. System = 0,
  18. [EnumMember]
  19. LP1,
  20. [EnumMember]
  21. LP2,
  22. [EnumMember]
  23. LP3,
  24. [EnumMember]
  25. LP4,
  26. [EnumMember]
  27. LP5,
  28. [EnumMember]
  29. LP6,
  30. [EnumMember]
  31. LP7,
  32. [EnumMember]
  33. LP8,
  34. [EnumMember]
  35. LP9,
  36. [EnumMember]
  37. LP10,
  38. //robot modules
  39. //[EnumMember]
  40. //Robot,
  41. [EnumMember]
  42. VaccumRobot,
  43. [EnumMember]
  44. LoadRobot,
  45. [EnumMember]
  46. EfemRobot,
  47. [EnumMember]
  48. TMRobot,
  49. //upenders
  50. //[EnumMember]
  51. //Upender,
  52. //efem
  53. [EnumMember]
  54. EFEM,
  55. //aligners
  56. [EnumMember]
  57. Aligner,
  58. //load locks
  59. [EnumMember]
  60. LL1,
  61. [EnumMember]
  62. LL2,
  63. [EnumMember]
  64. LL3,
  65. [EnumMember]
  66. LL4,
  67. //load locks
  68. //[EnumMember]
  69. //LLA,
  70. //[EnumMember]
  71. //LLB,
  72. //[EnumMember]
  73. //LLC,
  74. //[EnumMember]
  75. //LLD,
  76. //[EnumMember]
  77. //LLE,
  78. //[EnumMember]
  79. //LLF,
  80. //[EnumMember]
  81. //LLG,
  82. //[EnumMember]
  83. //LLH,
  84. //[EnumMember]
  85. //VCE1,
  86. //[EnumMember]
  87. //VCE2,
  88. //[EnumMember]
  89. //VCEA,
  90. //transfer modules
  91. [EnumMember]
  92. TM,
  93. [EnumMember]
  94. Cooling1,
  95. [EnumMember]
  96. Cooling2,
  97. //buffers
  98. [EnumMember]
  99. Buffer,
  100. [EnumMember]
  101. Buffer1,
  102. [EnumMember]
  103. Buffer2,
  104. [EnumMember]
  105. Buffer3,
  106. [EnumMember]
  107. Buffer4,
  108. [EnumMember]
  109. Buffer5,
  110. [EnumMember]
  111. Buffer6,
  112. //PMs
  113. [EnumMember]
  114. PM,
  115. [EnumMember]
  116. PM1,
  117. [EnumMember]
  118. PM2,
  119. [EnumMember]
  120. PM3,
  121. [EnumMember]
  122. PM4,
  123. [EnumMember]
  124. PM5,
  125. [EnumMember]
  126. PM6,
  127. [EnumMember]
  128. PM7,
  129. [EnumMember]
  130. PM8,
  131. [EnumMember]
  132. PMA,
  133. [EnumMember]
  134. PMB,
  135. [EnumMember]
  136. PMC,
  137. [EnumMember]
  138. PMD,
  139. [EnumMember]
  140. Robot,
  141. [EnumMember]
  142. Handler,
  143. [EnumMember]
  144. WIDReader1,
  145. [EnumMember]
  146. WIDReader2,
  147. [EnumMember]
  148. TurnOverStation,
  149. [EnumMember]
  150. Host,
  151. [EnumMember]
  152. Cooling,
  153. [EnumMember]
  154. Cassette,
  155. [EnumMember]
  156. CassetteA,
  157. [EnumMember]
  158. CassetteB,
  159. [EnumMember]
  160. LoadLock,
  161. [EnumMember]
  162. SMIFLeft,
  163. [EnumMember]
  164. SMIFRight,
  165. [EnumMember]
  166. SMIFA,
  167. [EnumMember]
  168. SMIFB,
  169. [EnumMember]
  170. CassetteRobot,
  171. [EnumMember]
  172. SignalTower,
  173. [EnumMember]
  174. TurnStation,
  175. [EnumMember]
  176. Stocker1,
  177. [EnumMember]
  178. Stocker2,
  179. [EnumMember]
  180. Stocker3,
  181. [EnumMember]
  182. Stocker4,
  183. [EnumMember]
  184. Stocker5,
  185. [EnumMember]
  186. Stocker6,
  187. [EnumMember]
  188. Stocker7,
  189. [EnumMember]
  190. Stocker8,
  191. [EnumMember]
  192. Stocker9,
  193. [EnumMember]
  194. Stocker10,
  195. [EnumMember]
  196. Stocker11,
  197. [EnumMember]
  198. Stocker12,
  199. [EnumMember]
  200. Stocker13,
  201. [EnumMember]
  202. Stocker14,
  203. [EnumMember]
  204. Stocker15,
  205. [EnumMember]
  206. Stocker16,
  207. [EnumMember]
  208. Stocker17,
  209. [EnumMember]
  210. Stocker18,
  211. [EnumMember]
  212. Stocker19,
  213. [EnumMember]
  214. Stocker20,
  215. [EnumMember]
  216. Stocker21,
  217. [EnumMember]
  218. StageA,
  219. [EnumMember]
  220. StageB,
  221. [EnumMember]
  222. WaferRobot,
  223. [EnumMember]
  224. Boat,
  225. [EnumMember]
  226. CMB,
  227. [EnumMember]
  228. Cassette1,
  229. [EnumMember]
  230. Cassette2,
  231. [EnumMember]
  232. Cassette3,
  233. [EnumMember]
  234. Cassette4,
  235. [EnumMember]
  236. Cassette5,
  237. [EnumMember]
  238. CarrierRobot,
  239. [EnumMember]
  240. FIMS1,
  241. [EnumMember]
  242. FIMS2,
  243. [EnumMember]
  244. Minics,
  245. [EnumMember]
  246. FIMS,
  247. [EnumMember]
  248. LP,
  249. [EnumMember]
  250. Stocker,
  251. [EnumMember]
  252. GaslineHeater,
  253. }
  254. public static class ModuleHelper
  255. {
  256. public static bool IsHeaterBand(string unit)
  257. {
  258. return unit.ToString().Contains(ModuleName.GaslineHeater.ToString());
  259. }
  260. public static bool IsTurnOverStation(ModuleName unit)
  261. {
  262. return unit == ModuleName.TurnOverStation;
  263. }
  264. public static bool IsLoadPort(ModuleName unit)
  265. {
  266. return unit == ModuleName.LP1
  267. || unit == ModuleName.LP2
  268. || unit == ModuleName.LP3
  269. || unit == ModuleName.LP4
  270. || unit == ModuleName.LP5
  271. || unit == ModuleName.LP6
  272. || unit == ModuleName.LP7
  273. || unit == ModuleName.LP8
  274. || unit == ModuleName.LP9
  275. || unit == ModuleName.LP10;
  276. }
  277. public static bool IsCassette(ModuleName unit)
  278. {
  279. return unit == ModuleName.Cassette1
  280. || unit == ModuleName.Cassette2
  281. || unit == ModuleName.Cassette3
  282. || unit == ModuleName.Cassette4
  283. || unit == ModuleName.Cassette5
  284. || unit == ModuleName.Cassette;
  285. }
  286. public static bool IsCOT(string unit)
  287. {
  288. return unit.ToString().Contains( "2_1")
  289. || unit.ToString().Contains("2_2");
  290. }
  291. public static bool IsBuffer(ModuleName unit)
  292. {
  293. return unit == ModuleName.Buffer
  294. || unit == ModuleName.Buffer1
  295. || unit == ModuleName.Buffer2
  296. || unit == ModuleName.Buffer3
  297. || unit == ModuleName.Buffer4
  298. || unit == ModuleName.Buffer5
  299. || unit == ModuleName.Buffer6;
  300. }
  301. public static bool IsBufferStocker(ModuleName unit)
  302. {
  303. return unit == ModuleName.Stocker1
  304. || unit == ModuleName.Stocker2
  305. || unit == ModuleName.Stocker3
  306. || unit == ModuleName.Stocker4
  307. || unit == ModuleName.Stocker5
  308. || unit == ModuleName.Stocker6
  309. || unit == ModuleName.Stocker7
  310. || unit == ModuleName.Stocker8
  311. || unit == ModuleName.Stocker9
  312. || unit == ModuleName.Stocker10
  313. || unit == ModuleName.Stocker11
  314. || unit == ModuleName.Stocker12
  315. || unit == ModuleName.Stocker13
  316. || unit == ModuleName.Stocker14
  317. || unit == ModuleName.Stocker15
  318. || unit == ModuleName.Stocker16;
  319. }
  320. public static bool IsFIMS(ModuleName unit)
  321. {
  322. return unit == ModuleName.FIMS1 || unit == ModuleName.FIMS2;
  323. }
  324. public static bool IsPm(string unit)
  325. {
  326. return IsPm(ModuleHelper.Converter(unit));
  327. }
  328. public static bool IsPm(ModuleName unit)
  329. {
  330. return unit == ModuleName.PM1
  331. || unit == ModuleName.PM2
  332. || unit == ModuleName.PM3
  333. || unit == ModuleName.PM4
  334. || unit == ModuleName.PM5
  335. || unit == ModuleName.PM6
  336. || unit == ModuleName.PM7
  337. || unit == ModuleName.PM8
  338. || unit == ModuleName.PM
  339. || unit == ModuleName.PMA
  340. || unit == ModuleName.PMB
  341. || unit == ModuleName.PMC
  342. || unit == ModuleName.PMD
  343. ;
  344. }
  345. public static bool IsLoadLock(string unit)
  346. {
  347. return IsLoadLock(ModuleHelper.Converter(unit));
  348. }
  349. public static bool IsLoadLock(ModuleName unit)
  350. {
  351. return unit == ModuleName.LoadLock;
  352. }
  353. public static bool IsStocker(ModuleName unit)
  354. {
  355. return unit == ModuleName.Stocker1
  356. || unit == ModuleName.Stocker2
  357. || unit == ModuleName.Stocker3
  358. || unit == ModuleName.Stocker4
  359. || unit == ModuleName.Stocker5
  360. || unit == ModuleName.Stocker6
  361. || unit == ModuleName.Stocker7
  362. || unit == ModuleName.Stocker8
  363. || unit == ModuleName.Stocker9
  364. || unit == ModuleName.Stocker10
  365. || unit == ModuleName.Stocker11
  366. || unit == ModuleName.Stocker12
  367. || unit == ModuleName.Stocker13
  368. || unit == ModuleName.Stocker14
  369. || unit == ModuleName.Stocker15
  370. || unit == ModuleName.Stocker16
  371. || unit == ModuleName.Stocker17
  372. || unit == ModuleName.Stocker18
  373. || unit == ModuleName.Stocker19
  374. || unit == ModuleName.Stocker20
  375. || unit == ModuleName.Stocker21;
  376. }
  377. public static bool IsCooling(string unit)
  378. {
  379. return IsCooling(ModuleHelper.Converter(unit));
  380. }
  381. public static bool IsCooling(ModuleName unit)
  382. {
  383. return unit == ModuleName.Cooling;
  384. }
  385. public static bool IsAligner(string unit)
  386. {
  387. return IsAligner(ModuleHelper.Converter(unit));
  388. }
  389. public static bool IsAligner(ModuleName unit)
  390. {
  391. return unit == ModuleName.Aligner;
  392. }
  393. public static bool IsRobot(string unit)
  394. {
  395. return IsRobot(ModuleHelper.Converter(unit));
  396. }
  397. public static bool IsRobot(ModuleName unit)
  398. {
  399. return unit.ToString().Contains("Robot");
  400. }
  401. public static bool IsEfemRobot(string unit)
  402. {
  403. return IsEfemRobot(ModuleHelper.Converter(unit));
  404. }
  405. public static bool IsEfemRobot(ModuleName unit)
  406. {
  407. return unit == ModuleName.EfemRobot;
  408. }
  409. public static bool IsTMRobot(string unit)
  410. {
  411. return IsTMRobot(ModuleHelper.Converter(unit));
  412. }
  413. public static bool IsTMRobot(ModuleName unit)
  414. {
  415. return unit == ModuleName.TMRobot;
  416. }
  417. public static bool IsTurnStation(ModuleName unit)
  418. {
  419. return unit == ModuleName.TurnStation;
  420. }
  421. public static string GetAbbr(ModuleName module)
  422. {
  423. switch (module)
  424. {
  425. case ModuleName.Aligner: return "PA";
  426. case ModuleName.Robot: return "RB";
  427. default: return module.ToString();
  428. }
  429. }
  430. public static string GetE84LpName(string device)
  431. {
  432. string e84 = string.Empty;
  433. switch(device)
  434. {
  435. case "P1":
  436. case "LP1":
  437. e84 = "Loadport1E84";
  438. break;
  439. case "P2":
  440. case "LP2":
  441. e84 = "Loadport2E84";
  442. break;
  443. case "P3":
  444. case "LP3":
  445. e84 = "Loadport3E84";
  446. break;
  447. case "P4":
  448. case "LP4":
  449. e84 = "Loadport4E84";
  450. break;
  451. case "P5":
  452. case "LP5":
  453. e84 = "Loadport5E84";
  454. break;
  455. case "P6":
  456. case "LP6":
  457. e84 = "Loadport6E84";
  458. break;
  459. case "P7":
  460. case "LP7":
  461. e84 = "Loadport7E84";
  462. break;
  463. case "P8":
  464. case "LP8":
  465. e84 = "Loadport8E84";
  466. break;
  467. case "P9":
  468. case "LP9":
  469. e84 = "Loadport9E84";
  470. break;
  471. case "P10":
  472. case "LP10":
  473. e84 = "Loadport10E84";
  474. break;
  475. }
  476. return e84;
  477. }
  478. public static ModuleName Converter(string module)
  479. {
  480. module = module.Replace("-", "_");
  481. if (module.ToLower().Contains("1_1"))
  482. return ModuleName.Cassette1;
  483. if (module.ToLower().Contains("1_2"))
  484. return ModuleName.Cassette2;
  485. if (module.ToLower().Contains("1_3"))
  486. return ModuleName.Cassette3;
  487. if (module.ToLower().Contains("1_4"))
  488. return ModuleName.Cassette4;
  489. if (module.ToLower().Contains("1_5"))
  490. return ModuleName.Cassette5;
  491. return (ModuleName) Enum.Parse(typeof(ModuleName), module);
  492. }
  493. /// <summary>
  494. ///
  495. /// </summary>
  496. /// <param name="index">0 based</param>
  497. /// <returns></returns>
  498. public static ModuleName GetLoadPort(int index)
  499. {
  500. ModuleName[] lps = new ModuleName[]
  501. {
  502. ModuleName.LP1, ModuleName.LP2, ModuleName.LP3, ModuleName.LP4, ModuleName.LP5,
  503. ModuleName.LP6, ModuleName.LP7, ModuleName.LP8, ModuleName.LP9, ModuleName.LP10,
  504. };
  505. return lps[index];
  506. }
  507. }
  508. public class ModuleNameString
  509. {
  510. public const string System = "System";
  511. public const string LDULD = "LDULD";
  512. public const string BufferOut = "BufferOut";
  513. public const string BufferIn = "BufferIn";
  514. public const string Dryer = "Dryer";
  515. public const string QDR = "QDR";
  516. public const string Robot = "Robot";
  517. public const string Handler = "Handler";
  518. }
  519. }