EquipmentManagerAlarmDefine.cs 29 KB

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