EquipmentManagerAlarmDefine.cs 28 KB

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