EquipmentManagerAlarmDefine.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613
  1. using System;
  2. using System.Collections.Generic;
  3. using Aitex.Core.RT.Event;
  4. using MECF.Framework.Common.Event;
  5. namespace FurnaceRT.Equipments.Systems
  6. {
  7. public partial class EquipmentManager
  8. {
  9. private List<AlarmEventItem> _triggeredAlarmList = new List<AlarmEventItem>();
  10. public AlarmEventItem PLCDisconnectAlarm { get; set; }
  11. public AlarmEventItem PLCConnectRecoveryWarning { get; set; }
  12. public AlarmEventItem MoveWaferFailedWarning { get; set; }
  13. public AlarmEventItem ReturnWaferFailedWarning { get; set; }
  14. public AlarmEventItem DeleteWaferFailedWarning { get; set; }
  15. public AlarmEventItem CreateWaferFailedWarning { get; set; }
  16. public AlarmEventItem SetLotIDFailedWarning { get; set; }
  17. public AlarmEventItem ChargeProcessDischargeStartFailedWarning { get; set; }
  18. public AlarmEventItem LoadProcessStockerStartFailedWarning { get; set; }
  19. public AlarmEventItem LoadProcessUnloadStartFailedWarning { get; set; }
  20. public AlarmEventItem ExpertChargeProcessDischargeStartFailedWarning { get; set; }
  21. public AlarmEventItem ExpertChargeProcessStartFailedWarning { get; set; }
  22. public AlarmEventItem LoadCassetteJobStartFailedWarning { get; set; }
  23. public AlarmEventItem UnloadCassetteJobStartFailedWarning { get; set; }
  24. public AlarmEventItem ChargeWaferJobStartFailedWarning { get; set; }
  25. public AlarmEventItem ReturnAllWaferJobStartFailedWarning { get; set; }
  26. public AlarmEventItem ChargeWaferJobMonitorFailedAlarm { get; set; }
  27. public AlarmEventItem DischargeWaferJobMonitorFailedAlarm { get; set; }
  28. public AlarmEventItem SDWaferTypeUseCountWarning { get; set; }
  29. public AlarmEventItem SDWaferTypeUseCountAlarm { get; set; }
  30. public AlarmEventItem SDWaferTypeUseTimeWarning { get; set; }
  31. public AlarmEventItem SDWaferTypeUseTimeAlarm { get; set; }
  32. public AlarmEventItem SDWaferTypeThicknessWarning { get; set; }
  33. public AlarmEventItem SDWaferTypeThicknessAlarm { get; set; }
  34. public AlarmEventItem FDWaferTypeUseCountWarning { get; set; }
  35. public AlarmEventItem FDWaferTypeUseCountAlarm { get; set; }
  36. public AlarmEventItem FDWaferTypeUseTimeWarning { get; set; }
  37. public AlarmEventItem FDWaferTypeUseTimeAlarm { get; set; }
  38. public AlarmEventItem FDWaferTypeThicknessWarning { get; set; }
  39. public AlarmEventItem FDWaferTypeThicknessAlarm { get; set; }
  40. public AlarmEventItem EquipmentEmergencyStopAlarm { get; set; }
  41. public AlarmEventItem TransferJobStartFailedWarning { get; set; }
  42. #region MyRegion
  43. public AlarmEventItem RecipeExecuteFreqAlarm { get; set; }
  44. public AlarmEventItem RecipeExecuteFreqWarning { get; set; }
  45. public AlarmEventItem RecipeThicknessAlarm { get; set; }
  46. public AlarmEventItem RecipeThicknessWarning { get; set; }
  47. public AlarmEventItem BoatRecipeThicknessAlarm { get; set; }
  48. public AlarmEventItem BoatRecipeThicknessWarning { get; set; }
  49. public AlarmEventItem ReatorStepRunFreqWarning { get; set; }
  50. public AlarmEventItem ReatorStepRunFreqAlarm { get; set; }
  51. public AlarmEventItem ReatorStepRunTimeWarning { get; set; }
  52. public AlarmEventItem ReatorStepRunTimeAlarm { get; set; }
  53. public AlarmEventItem ReatorStepThicknessAlarm { get; set; }
  54. public AlarmEventItem ReatorStepThicknessWarning { get; set; }
  55. #endregion
  56. private void InitAlarmDefine()
  57. {
  58. PLCDisconnectAlarm = SubscribeAlarm(new AlarmEventItem()
  59. {
  60. EventEnum = $"{Name}.PLCDisconnectAlarm",
  61. Description = $"PLC disconnect ",
  62. Solution = "No information available. Press[Clear] to delete alarm message.",
  63. Explaination = "No information available.",
  64. AutoRecovery = false,
  65. Level = EventLevel.Alarm,
  66. Action = EventAction.Clear,
  67. Category = "SystemAlarm",
  68. }, () => { return true; });
  69. PLCConnectRecoveryWarning = SubscribeAlarm(new AlarmEventItem()
  70. {
  71. EventEnum = $"{Name}.PLCConnectRecoveryWarning",
  72. Description = $"PLC connect recovery ",
  73. Solution = "No information available. Press[Clear] to delete alarm message.",
  74. Explaination = "No information available.",
  75. AutoRecovery = false,
  76. Level = EventLevel.Warning,
  77. Action = EventAction.Clear,
  78. Category = "SystemAlarm",
  79. }, () => { return true; });
  80. MoveWaferFailedWarning = SubscribeAlarm(new AlarmEventItem()
  81. {
  82. EventEnum = $"{Name}.MoveWaferFailedWarning",
  83. Description = $"{Name} move wafer failed ",
  84. Solution = "No information available. Press[Clear] to delete alarm message.",
  85. Explaination = "No information available.",
  86. AutoRecovery = false,
  87. Level = EventLevel.Warning,
  88. Action = EventAction.Clear,
  89. Category = "SystemAlarm",
  90. }, () => { return true; });
  91. ReturnWaferFailedWarning = SubscribeAlarm(new AlarmEventItem()
  92. {
  93. EventEnum = $"{Name}.ReturnWaferFailedWarning",
  94. Description = $"{Name} return wafer failed ",
  95. Solution = "No information available. Press[Clear] to delete alarm message.",
  96. Explaination = "No information available.",
  97. AutoRecovery = false,
  98. Level = EventLevel.Warning,
  99. Action = EventAction.Clear,
  100. Category = "SystemAlarm",
  101. }, () => { return true; });
  102. DeleteWaferFailedWarning = SubscribeAlarm(new AlarmEventItem()
  103. {
  104. EventEnum = $"{Name}.DeleteWaferFailedWarning",
  105. Description = $"{Name} delete wafer failed ",
  106. Solution = "No information available. Press[Clear] to delete alarm message.",
  107. Explaination = "No information available.",
  108. AutoRecovery = false,
  109. Level = EventLevel.Warning,
  110. Action = EventAction.Clear,
  111. Category = "SystemAlarm",
  112. }, () => { return true; });
  113. CreateWaferFailedWarning = SubscribeAlarm(new AlarmEventItem()
  114. {
  115. EventEnum = $"{Name}.CreateWaferFailedWarning",
  116. Description = $"{Name} create wafer failed ",
  117. Solution = "No information available. Press[Clear] to delete alarm message.",
  118. Explaination = "No information available.",
  119. AutoRecovery = false,
  120. Level = EventLevel.Warning,
  121. Action = EventAction.Clear,
  122. Category = "SystemAlarm",
  123. }, () => { return true; });
  124. SetLotIDFailedWarning = SubscribeAlarm(new AlarmEventItem()
  125. {
  126. EventEnum = $"{Name}.SetLotIDFailedWarning",
  127. Description = $"{Name} set lotID failed ",
  128. Solution = "No information available. Press[Clear] to delete alarm message.",
  129. Explaination = "No information available.",
  130. AutoRecovery = false,
  131. Level = EventLevel.Warning,
  132. Action = EventAction.Clear,
  133. Category = "SystemAlarm",
  134. }, () => { return true; });
  135. ChargeProcessDischargeStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  136. {
  137. EventEnum = $"{Name}.ChargeProcessDischargeStartFailedWarning",
  138. Description = $"{Name} ChargeProcessDischarge start failed ",
  139. Solution = "No information available. Press[Clear] to delete alarm message.",
  140. Explaination = "No information available.",
  141. AutoRecovery = false,
  142. Level = EventLevel.Warning,
  143. Action = EventAction.Clear,
  144. Category = "SystemAlarm",
  145. }, () => { return true; });
  146. LoadProcessStockerStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  147. {
  148. EventEnum = $"{Name}.LoadProcessStockerStartFailedWarning",
  149. Description = $"{Name} LoadProcessStocker start failed ",
  150. Solution = "No information available. Press[Clear] to delete alarm message.",
  151. Explaination = "No information available.",
  152. AutoRecovery = false,
  153. Level = EventLevel.Warning,
  154. Action = EventAction.Clear,
  155. Category = "SystemAlarm",
  156. }, () => { return true; });
  157. LoadProcessUnloadStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  158. {
  159. EventEnum = $"{Name}.LoadProcessUnloadStartFailedWarning",
  160. Description = $"{Name} LoadProcessUnload start failed ",
  161. Solution = "No information available. Press[Clear] to delete alarm message.",
  162. Explaination = "No information available.",
  163. AutoRecovery = false,
  164. Level = EventLevel.Warning,
  165. Action = EventAction.Clear,
  166. Category = "SystemAlarm",
  167. }, () => { return true; });
  168. ExpertChargeProcessDischargeStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  169. {
  170. EventEnum = $"{Name}.ExpertChargeProcessDischargeStartFailedWarning",
  171. Description = $"{Name} Expert ChargeProcessDischarge start failed ",
  172. Solution = "No information available. Press[Clear] to delete alarm message.",
  173. Explaination = "No information available.",
  174. AutoRecovery = false,
  175. Level = EventLevel.Warning,
  176. Action = EventAction.Clear,
  177. Category = "SystemAlarm",
  178. }, () => { return true; });
  179. ExpertChargeProcessStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  180. {
  181. EventEnum = $"{Name}.ExpertChargeProcessStartFailedWarning",
  182. Description = $"{Name} Expert ChargeProcess start failed ",
  183. Solution = "No information available. Press[Clear] to delete alarm message.",
  184. Explaination = "No information available.",
  185. AutoRecovery = false,
  186. Level = EventLevel.Warning,
  187. Action = EventAction.Clear,
  188. Category = "SystemAlarm",
  189. }, () => { return true; });
  190. LoadCassetteJobStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  191. {
  192. EventEnum = $"{Name}.LoadCassetteJobStartFailedWarning",
  193. Description = $"{Name} LoadCassette job start failed ",
  194. Solution = "No information available. Press[Clear] to delete alarm message.",
  195. Explaination = "No information available.",
  196. AutoRecovery = false,
  197. Level = EventLevel.Warning,
  198. Action = EventAction.Clear,
  199. Category = "SystemAlarm",
  200. }, () => { return true; });
  201. UnloadCassetteJobStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  202. {
  203. EventEnum = $"{Name}.UnloadCassetteJobStartFailedWarning",
  204. Description = $"{Name} UnloadCassette job start failed ",
  205. Solution = "No information available. Press[Clear] to delete alarm message.",
  206. Explaination = "No information available.",
  207. AutoRecovery = false,
  208. Level = EventLevel.Warning,
  209. Action = EventAction.Clear,
  210. Category = "SystemAlarm",
  211. }, () => { return true; });
  212. ChargeWaferJobStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  213. {
  214. EventEnum = $"{Name}.ChargeWaferJobStartFailedWarning",
  215. Description = $"{Name} ChargeWafer job start failed ",
  216. Solution = "No information available. Press[Clear] to delete alarm message.",
  217. Explaination = "No information available.",
  218. AutoRecovery = false,
  219. Level = EventLevel.Warning,
  220. Action = EventAction.Clear,
  221. Category = "SystemAlarm",
  222. }, () => { return true; });
  223. ReturnAllWaferJobStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  224. {
  225. EventEnum = $"{Name}.ReturnAllWaferJobStartFailedWarning",
  226. Description = $"{Name} ReturnAllWafer job start failed ",
  227. Solution = "No information available. Press[Clear] to delete alarm message.",
  228. Explaination = "No information available.",
  229. AutoRecovery = false,
  230. Level = EventLevel.Warning,
  231. Action = EventAction.Clear,
  232. Category = "SystemAlarm",
  233. }, () => { return true; });
  234. ChargeWaferJobMonitorFailedAlarm = SubscribeAlarm(new AlarmEventItem()
  235. {
  236. EventEnum = $"{Name}.ChargeWaferJobMonitorFailedAlarm",
  237. Description = $"{Name} ChargeWafer job monitor start failed ",
  238. Solution = "No information available. Press[Clear] to delete alarm message.",
  239. Explaination = "No information available.",
  240. AutoRecovery = false,
  241. Level = EventLevel.Alarm,
  242. Action = EventAction.Clear,
  243. Category = "SystemAlarm",
  244. }, () => { return true; });
  245. DischargeWaferJobMonitorFailedAlarm = SubscribeAlarm(new AlarmEventItem()
  246. {
  247. EventEnum = $"{Name}.DischargeWaferJobMonitorFailedAlarm",
  248. Description = $"{Name} DischargeWafer job monitor start failed ",
  249. Solution = "No information available. Press[Clear] to delete alarm message.",
  250. Explaination = "No information available.",
  251. AutoRecovery = false,
  252. Level = EventLevel.Alarm,
  253. Action = EventAction.Clear,
  254. Category = "SystemAlarm",
  255. }, () => { return true; });
  256. RecipeExecuteFreqWarning = SubscribeAlarm(new AlarmEventItem()
  257. {
  258. EventEnum = $"{Name}.RecipeExecuteFreqWarning",
  259. Description = $"",
  260. Solution = "No information available. Press[Clear] to delete alarm message.",
  261. Explaination = "No information available.",
  262. AutoRecovery = false,
  263. Level = EventLevel.Warning,
  264. Action = EventAction.Clear,
  265. Category = "SystemAlarm",
  266. }, () => { return true; });
  267. RecipeExecuteFreqAlarm = SubscribeAlarm(new AlarmEventItem()
  268. {
  269. EventEnum = $"{Name}.RecipeExecuteFreqAlarm",
  270. Description = $"",
  271. Solution = "No information available. Press[Clear] to delete alarm message.",
  272. Explaination = "No information available.",
  273. AutoRecovery = false,
  274. Level = EventLevel.Alarm,
  275. Action = EventAction.Clear,
  276. Category = "SystemAlarm",
  277. }, () => { return true; });
  278. RecipeThicknessWarning = SubscribeAlarm(new AlarmEventItem()
  279. {
  280. EventEnum = $"{Name}.RecipeThicknessWarning",
  281. Description = $"",
  282. Solution = "No information available. Press[Clear] to delete alarm message.",
  283. Explaination = "No information available.",
  284. AutoRecovery = false,
  285. Level = EventLevel.Warning,
  286. Action = EventAction.Clear,
  287. Category = "SystemAlarm",
  288. }, () => { return true; });
  289. RecipeThicknessAlarm = SubscribeAlarm(new AlarmEventItem()
  290. {
  291. EventEnum = $"{Name}.RecipeThicknessAlarm",
  292. Description = $"",
  293. Solution = "No information available. Press[Clear] to delete alarm message.",
  294. Explaination = "No information available.",
  295. AutoRecovery = false,
  296. Level = EventLevel.Alarm,
  297. Action = EventAction.Clear,
  298. Category = "SystemAlarm",
  299. }, () => { return true; });
  300. BoatRecipeThicknessWarning = SubscribeAlarm(new AlarmEventItem()
  301. {
  302. EventEnum = $"{Name}.BoatRecipeThicknessWarning",
  303. Description = $"",
  304. Solution = "No information available. Press[Clear] to delete alarm message.",
  305. Explaination = "No information available.",
  306. AutoRecovery = false,
  307. Level = EventLevel.Warning,
  308. Action = EventAction.Clear,
  309. Category = "SystemAlarm",
  310. }, () => { return true; });
  311. BoatRecipeThicknessAlarm = SubscribeAlarm(new AlarmEventItem()
  312. {
  313. EventEnum = $"{Name}.BoatRecipeThicknessAlarm",
  314. Description = $"",
  315. Solution = "No information available. Press[Clear] to delete alarm message.",
  316. Explaination = "No information available.",
  317. AutoRecovery = false,
  318. Level = EventLevel.Alarm,
  319. Action = EventAction.Clear,
  320. Category = "SystemAlarm",
  321. }, () => { return true; });
  322. ReatorStepRunTimeWarning = SubscribeAlarm(new AlarmEventItem()
  323. {
  324. EventEnum = $"{Name}.ReatorStepRunTimeWarning",
  325. Description = $"",
  326. Solution = "No information available. Press[Clear] to delete alarm message.",
  327. Explaination = "No information available.",
  328. AutoRecovery = false,
  329. Level = EventLevel.Warning,
  330. Action = EventAction.Clear,
  331. Category = "SystemAlarm",
  332. }, () => { return true; });
  333. ReatorStepRunTimeAlarm = SubscribeAlarm(new AlarmEventItem()
  334. {
  335. EventEnum = $"{Name}.ReatorStepRunTimeAlarm",
  336. Description = $"",
  337. Solution = "No information available. Press[Clear] to delete alarm message.",
  338. Explaination = "No information available.",
  339. AutoRecovery = false,
  340. Level = EventLevel.Alarm,
  341. Action = EventAction.Clear,
  342. Category = "SystemAlarm",
  343. }, () => { return true; });
  344. ReatorStepRunFreqWarning = SubscribeAlarm(new AlarmEventItem()
  345. {
  346. EventEnum = $"{Name}.ReatorStepRunFreqWarning",
  347. Description = $"",
  348. Solution = "No information available. Press[Clear] to delete alarm message.",
  349. Explaination = "No information available.",
  350. AutoRecovery = false,
  351. Level = EventLevel.Warning,
  352. Action = EventAction.Clear,
  353. Category = "SystemAlarm",
  354. }, () => { return true; });
  355. ReatorStepRunFreqAlarm = SubscribeAlarm(new AlarmEventItem()
  356. {
  357. EventEnum = $"{Name}.ReatorStepRunFreqAlarm",
  358. Description = $"",
  359. Solution = "No information available. Press[Clear] to delete alarm message.",
  360. Explaination = "No information available.",
  361. AutoRecovery = false,
  362. Level = EventLevel.Alarm,
  363. Action = EventAction.Clear,
  364. Category = "SystemAlarm",
  365. }, () => { return true; });
  366. ReatorStepThicknessWarning = SubscribeAlarm(new AlarmEventItem()
  367. {
  368. EventEnum = $"{Name}.ReatorStepThicknessWarning",
  369. Description = $"",
  370. Solution = "No information available. Press[Clear] to delete alarm message.",
  371. Explaination = "No information available.",
  372. AutoRecovery = false,
  373. Level = EventLevel.Warning,
  374. Action = EventAction.Clear,
  375. Category = "SystemAlarm",
  376. }, () => { return true; });
  377. ReatorStepThicknessAlarm = SubscribeAlarm(new AlarmEventItem()
  378. {
  379. EventEnum = $"{Name}.ReatorStepThicknessAlarm",
  380. Description = $"",
  381. Solution = "No information available. Press[Clear] to delete alarm message.",
  382. Explaination = "No information available.",
  383. AutoRecovery = false,
  384. Level = EventLevel.Alarm,
  385. Action = EventAction.Clear,
  386. Category = "SystemAlarm",
  387. }, () => { return true; });
  388. SDWaferTypeUseCountWarning = SubscribeAlarm(new AlarmEventItem()
  389. {
  390. EventEnum = $"{Name}.SDWaferTypeUseCountWarning",
  391. Description = $"SD wafer useCount warning ",
  392. Solution = "No information available. Press[Clear] to delete alarm message.",
  393. Explaination = "No information available.",
  394. AutoRecovery = false,
  395. Level = EventLevel.Warning,
  396. Action = EventAction.Clear,
  397. Category = "SystemAlarm",
  398. }, () => { return true; });
  399. SDWaferTypeUseCountAlarm = SubscribeAlarm(new AlarmEventItem()
  400. {
  401. EventEnum = $"{Name}.SDWaferTypeUseCountAlarm",
  402. Description = $"SD wafer useCount alarm ",
  403. Solution = "No information available. Press[Clear] to delete alarm message.",
  404. Explaination = "No information available.",
  405. AutoRecovery = false,
  406. Level = EventLevel.Alarm,
  407. Action = EventAction.Clear,
  408. Category = "SystemAlarm",
  409. }, () => { return true; });
  410. SDWaferTypeUseTimeWarning = SubscribeAlarm(new AlarmEventItem()
  411. {
  412. EventEnum = $"{Name}.SDWaferTypeUseTimeWarning",
  413. Description = $"SD wafer useTime warning ",
  414. Solution = "No information available. Press[Clear] to delete alarm message.",
  415. Explaination = "No information available.",
  416. AutoRecovery = false,
  417. Level = EventLevel.Warning,
  418. Action = EventAction.Clear,
  419. Category = "SystemAlarm",
  420. }, () => { return true; });
  421. SDWaferTypeUseTimeAlarm = SubscribeAlarm(new AlarmEventItem()
  422. {
  423. EventEnum = $"{Name}.SDWaferTypeUseTimeAlarm",
  424. Description = $"SD wafer type use time alarm ",
  425. Solution = "No information available. Press[Clear] to delete alarm message.",
  426. Explaination = "No information available.",
  427. AutoRecovery = false,
  428. Level = EventLevel.Alarm,
  429. Action = EventAction.Clear,
  430. Category = "SystemAlarm",
  431. }, () => { return true; });
  432. SDWaferTypeThicknessWarning = SubscribeAlarm(new AlarmEventItem()
  433. {
  434. EventEnum = $"{Name}.SDWaferTypeThicknessWarning",
  435. Description = $"SD wafer thickness warning ",
  436. Solution = "No information available. Press[Clear] to delete alarm message.",
  437. Explaination = "No information available.",
  438. AutoRecovery = false,
  439. Level = EventLevel.Warning,
  440. Action = EventAction.Clear,
  441. Category = "SystemAlarm",
  442. }, () => { return true; });
  443. SDWaferTypeThicknessAlarm = SubscribeAlarm(new AlarmEventItem()
  444. {
  445. EventEnum = $"{Name}.SDWaferTypeThicknessAlarm",
  446. Description = $"SD wafer thickness alarm ",
  447. Solution = "No information available. Press[Clear] to delete alarm message.",
  448. Explaination = "No information available.",
  449. AutoRecovery = false,
  450. Level = EventLevel.Alarm,
  451. Action = EventAction.Clear,
  452. Category = "SystemAlarm",
  453. }, () => { return true; });
  454. FDWaferTypeUseCountWarning = SubscribeAlarm(new AlarmEventItem()
  455. {
  456. EventEnum = $"{Name}.FDWaferTypeUseCountWarning",
  457. Description = $"FD wafer useCount warning ",
  458. Solution = "No information available. Press[Clear] to delete alarm message.",
  459. Explaination = "No information available.",
  460. AutoRecovery = false,
  461. Level = EventLevel.Warning,
  462. Action = EventAction.Clear,
  463. Category = "SystemAlarm",
  464. }, () => { return true; });
  465. FDWaferTypeUseCountAlarm = SubscribeAlarm(new AlarmEventItem()
  466. {
  467. EventEnum = $"{Name}.FDWaferTypeUseCountAlarm",
  468. Description = $"FD wafer useCount alarm ",
  469. Solution = "No information available. Press[Clear] to delete alarm message.",
  470. Explaination = "No information available.",
  471. AutoRecovery = false,
  472. Level = EventLevel.Alarm,
  473. Action = EventAction.Clear,
  474. Category = "SystemAlarm",
  475. }, () => { return true; });
  476. FDWaferTypeUseTimeWarning = SubscribeAlarm(new AlarmEventItem()
  477. {
  478. EventEnum = $"{Name}.FDWaferTypeUseTimeWarning",
  479. Description = $"FD wafer useTime warning ",
  480. Solution = "No information available. Press[Clear] to delete alarm message.",
  481. Explaination = "No information available.",
  482. AutoRecovery = false,
  483. Level = EventLevel.Warning,
  484. Action = EventAction.Clear,
  485. Category = "SystemAlarm",
  486. }, () => { return true; });
  487. FDWaferTypeUseTimeAlarm = SubscribeAlarm(new AlarmEventItem()
  488. {
  489. EventEnum = $"{Name}.FDWaferTypeUseTimeAlarm",
  490. Description = $"FD wafer useTime alarm ",
  491. Solution = "No information available. Press[Clear] to delete alarm message.",
  492. Explaination = "No information available.",
  493. AutoRecovery = false,
  494. Level = EventLevel.Alarm,
  495. Action = EventAction.Clear,
  496. Category = "SystemAlarm",
  497. }, () => { return true; });
  498. FDWaferTypeThicknessWarning = SubscribeAlarm(new AlarmEventItem()
  499. {
  500. EventEnum = $"{Name}.FDWaferTypeThicknessWarning",
  501. Description = $"FD wafer thickness warning ",
  502. Solution = "No information available. Press[Clear] to delete alarm message.",
  503. Explaination = "No information available.",
  504. AutoRecovery = false,
  505. Level = EventLevel.Warning,
  506. Action = EventAction.Clear,
  507. Category = "SystemAlarm",
  508. }, () => { return true; });
  509. FDWaferTypeThicknessAlarm = SubscribeAlarm(new AlarmEventItem()
  510. {
  511. EventEnum = $"{Name}.FDWaferTypeThicknessAlarm",
  512. Description = $"FD wafer thickness alarm ",
  513. Solution = "No information available. Press[Clear] to delete alarm message.",
  514. Explaination = "No information available.",
  515. AutoRecovery = false,
  516. Level = EventLevel.Alarm,
  517. Action = EventAction.Clear,
  518. Category = "SystemAlarm",
  519. }, () => { return true; });
  520. EquipmentEmergencyStopAlarm = SubscribeAlarm(new AlarmEventItem()
  521. {
  522. EventEnum = $"{Name}.EquipmentEmergencyStopAlarm",
  523. Description = $"{Name} equipment emergency stop alarm ",
  524. Solution = "No information available. Press[Clear] to delete alarm message.",
  525. Explaination = "No information available.",
  526. AutoRecovery = false,
  527. Level = EventLevel.Alarm,
  528. Action = EventAction.Clear,
  529. Category = "SystemAlarm",
  530. }, () => { return true; });
  531. TransferJobStartFailedWarning = SubscribeAlarm(new AlarmEventItem()
  532. {
  533. EventEnum = $"{Name}.TransferJobStartFailedWarning",
  534. Description = $"Transfer job start failed ",
  535. Solution = "No information available. Press[Clear] to delete alarm message.",
  536. Explaination = "No information available.",
  537. AutoRecovery = false,
  538. Level = EventLevel.Warning,
  539. Action = EventAction.Clear,
  540. Category = "SystemAlarm",
  541. }, () => { return true; });
  542. }
  543. public void OnModuleDeviceAlarmStateChanged(string deviceId, AlarmEventItem alarmItem)
  544. {
  545. if (alarmItem.IsTriggered)
  546. {
  547. EventLevel level = alarmItem.Level;
  548. _triggeredAlarmList.Add(alarmItem);
  549. if (level == EventLevel.Alarm)
  550. {
  551. try
  552. {
  553. EV.PostAlarmLog(Module, alarmItem);
  554. }
  555. catch (Exception ex)
  556. {
  557. EV.WriteEvent(ex.Message.ToString());
  558. }
  559. }
  560. else
  561. {
  562. EV.PostWarningLog(Module, alarmItem);
  563. }
  564. }
  565. else
  566. {
  567. }
  568. }
  569. }
  570. }