ProcessUnitDefine.cs 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Converters;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Runtime.InteropServices;
  6. using System.Runtime.Serialization;
  7. using Venus_Core.Attributes;
  8. namespace Venus_Core
  9. {
  10. /// <summary>
  11. /// 设计概述:
  12. /// 本设计主要目的,为了满足复杂的刻蚀工艺需求(各个工艺参数之间相互关联), 和应对未来不断新增的工艺需求(新的设备、
  13. /// 新的工艺、新的材料等等), 同时又能对现存的Recipe保持最大的兼容
  14. ///
  15. /// 1. 将Process 的每道工艺分解为1个至多个逻辑工艺单元, 每个逻辑工艺单元通过 Class Name 和RT的工艺算法绑定,
  16. /// 同时也和 GUI Recipe Editor 的页面布局绑定。
  17. ///
  18. /// 2. 一个逻辑单元功能调试好, 并且有在客户端使用后, 此逻辑单元想关联的 RT Process 代码和GUI 界面代码,
  19. /// 不允许再修改, 只能增加新的Class 来实现新的工艺需求
  20. ///
  21. /// 3. 通过配置文件里面定义 ProcessUnit Class Name列表, 来定义当前机台支持的工艺功能, 也就是说如果Recipe文件里面保函了
  22. /// 配置文件里面没有列出的工艺单元, 表明本机台不支持此Recipe, 并报警提示用户
  23. /// </summary>
  24. public enum VenusUnits
  25. {
  26. PressureByPressureModeUnit,
  27. TCPUnit,
  28. BiasUnit,
  29. GasControlUnit,
  30. ESCHVUnit,
  31. ProcessKitUnit
  32. }
  33. public enum VenusCleanRecipeUnits
  34. {
  35. PressureByPressureModeUnit,
  36. TCPUnit,
  37. GasControlUnit,
  38. ProcessKitUnit
  39. }
  40. public enum Kepler2300Uints
  41. {
  42. PressureByPressureModeUnit,
  43. TCPUnit,
  44. BiasUnit,
  45. GasControlUnit,
  46. ProcessKitUnit
  47. }
  48. public enum Kepler2300CleanRecipeUints
  49. {
  50. PressureByPressureModeUnit,
  51. TCPUnit,
  52. GasControlUnit,
  53. ProcessKitUnit
  54. }
  55. public enum Kepler2200AUnits
  56. {
  57. Kepler2200PressureByPressureModeUnit,
  58. Kepler2200GasControlUnit,
  59. HeaterUnit,
  60. RFUnit
  61. }
  62. public enum Kepler2200BUnits
  63. {
  64. Kepler2200PressureByPressureModeUnit,
  65. Kepler2200GasControlUnit,
  66. HeaterUnit,
  67. RFBoxUnit,
  68. RFUnit
  69. }
  70. public enum VenusSEUnits
  71. {
  72. PressureByPressureModeUnit,
  73. TCPUnit,
  74. BiasUnit,
  75. VenusSEGasControlUnit,
  76. ESCHVUnit,
  77. HeliumPumpUnit,
  78. ProcessKitUnit
  79. }
  80. public enum VenusDEUnits
  81. {
  82. PressureByPressureModeUnit,
  83. MagnetUnit,
  84. BiasUnit,
  85. VenusDEGasControlUnit,
  86. ESCHVUnit,
  87. HeliumPumpUnit,
  88. ProcessKitUnit
  89. }
  90. public enum VenusDE8InchUnits
  91. {
  92. PressureByPressureModeUnit,
  93. MagnetUnit,
  94. BiasUnit,
  95. VenusDEGasControlUnit,
  96. ESCHV8InchUnit,
  97. HeliumPumpUnit,
  98. ProcessKitUnit
  99. }
  100. public partial class PressureByPressureModeUnit : ProcessUnitBase
  101. {
  102. [IsTolerance]
  103. public string UnitName { get; set; } = "PressureModeUnit";
  104. [IsTolerance]
  105. [JsonConverter(typeof(StringEnumConverter))]
  106. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  107. [IsTolerance]
  108. [CustomName("ToleranceDelayTime(ms)")]
  109. public int ToleranceDelayTime { get; set; } = 3000;
  110. [CustomName("PressureMode")]
  111. public PressureUnitMode PressureUnitMode { get; set; }
  112. public float StartValue { get; set; }
  113. [IsTolerance]
  114. public int StartValueWarningRange { get; set; } = 5;
  115. [IsTolerance]
  116. public int StartValueAlarmRange { get; set; } = 10;
  117. public int ValvePositionPreset { get; set; }
  118. [IsCanConfigIgnore]
  119. public bool EnableRamp { get; set; }
  120. public int HoldTime { get; set; }
  121. public float TargetValue { get; set; }
  122. //public event PropertyChangedEventHandler PropertyChanged;
  123. //public void InvokePropertyChanged(string propertyName)
  124. //{
  125. // if (PropertyChanged != null)
  126. // {
  127. // PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
  128. // }
  129. //}
  130. }
  131. public partial class Kepler2200PressureByPressureModeUnit : ProcessUnitBase
  132. {
  133. [IsTolerance]
  134. public string UnitName { get; set; } = "ControlPressureUnit";
  135. [IsTolerance]
  136. [JsonConverter(typeof(StringEnumConverter))]
  137. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  138. [IsTolerance]
  139. [CustomName("ToleranceDelayTime(ms)")]
  140. public int ToleranceDelayTime { get; set; } = 3000;
  141. [CustomName("PressureMode")]
  142. [JsonConverter(typeof(StringEnumConverter))]
  143. public PressureUnitMode PressureUnitMode { get; set; }
  144. public float StartValue { get; set; }
  145. [IsTolerance]
  146. public int StartValueWarningRange { get; set; } = 5;
  147. [IsTolerance]
  148. public int StartValueAlarmRange { get; set; } = 10;
  149. public int ValvePositionPreset { get; set; }
  150. }
  151. public class HeaterUnit : ProcessUnitBase
  152. {
  153. [IsTolerance]
  154. public string UnitName { get; set; } = "HeaterUnit";
  155. [IsTolerance]
  156. [JsonConverter(typeof(StringEnumConverter))]
  157. public ToleranceMode ToleranceMode { get; set; }
  158. [IsTolerance]
  159. [CustomName("ToleranceDelayTime(ms)")]
  160. public int ToleranceDelayTime { get; set; }
  161. [CustomName("Heater Temperature(°C)")]
  162. public int HeaterTemp { get; set; }
  163. [IsTolerance]
  164. public int HeaterTempWarningRange { get; set; }
  165. [IsTolerance]
  166. public int HeaterTempAlarmRange { get; set; }
  167. [CustomName("Heater Ratio")]
  168. public int HeaterRatio { get; set; }
  169. public Suspect SuspectPosition { get; set; }
  170. //public int PositionOffset { get; set; }
  171. }
  172. public class TCPUnit : ProcessUnitBase
  173. {
  174. private string m_UnitName = "TCPUnit";
  175. [IsTolerance]
  176. public string UnitName
  177. {
  178. get { return m_UnitName; }
  179. set { m_UnitName = value; }
  180. }
  181. [IsTolerance]
  182. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  183. [IsTolerance]
  184. [CustomName("ToleranceDelayTime(ms)")]
  185. public int ToleranceDelayTime { get; set; } = 3000;
  186. [CustomName("RF Power(W)")]
  187. public int RFPower { get; set; }
  188. [IsTolerance]
  189. public int RFPowerWarningRange { get; set; } = 5;
  190. [IsTolerance]
  191. public int RFPowerAlarmRange { get; set; } = 10;
  192. [CustomName("C1(%)")]
  193. public float C1 { get; set; }
  194. [CustomName("C2(%)")]
  195. public float C2 { get; set; }
  196. [IsOnlyRead]
  197. [CustomName("AutoC1(%)")]
  198. public float AutoC1 { get; set; }
  199. [IsOnlyRead]
  200. [CustomName("AutoC2(%)")]
  201. public float AutoC2 { get; set; }
  202. [CustomName("RF Max ReflectedPower(W)")]
  203. public int MaxReflectedPower { get; set; }
  204. [JsonConverter(typeof(StringEnumConverter))]
  205. public MatchWorkMode MatchWorkMode { get; set; }
  206. private bool m_EnableRamp;
  207. [IsCanConfigIgnore]
  208. public bool EnableRamp
  209. {
  210. get { return m_EnableRamp; }
  211. set { m_EnableRamp = value; }
  212. }
  213. //public int StartPower { get; set; }
  214. public int TargetRFPower { get; set; }
  215. }
  216. public class BiasUnit : ProcessUnitBase
  217. {
  218. public string UnitName { get; set; } = "BiasUnit";
  219. [IsTolerance]
  220. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  221. [IsTolerance]
  222. [CustomName("ToleranceDelayTime(ms)")]
  223. public int ToleranceDelayTime { get; set; } = 3000;
  224. //public int RFPower { get; set; }
  225. [IsTolerance]
  226. public int RFPowerWarningRange { get; set; } = 5;
  227. [IsTolerance]
  228. public int RFPowerAlarmRange { get; set; } = 10;
  229. [CustomName("BiasRF Power(W)")]
  230. public int BiasRFPower { get; set; }
  231. [CustomName("BiasC1(%)")]
  232. public float BiasC1 { get; set; }
  233. [CustomName("BiasC2(%)")]
  234. public float BiasC2 { get; set; }
  235. [IsOnlyRead]
  236. [CustomName("AutoBiasC1(%)")]
  237. public float AutoBiasC1 { get; set; }
  238. [CustomName("AutoBiasC2(%)")]
  239. [IsOnlyRead]
  240. public float AutoBiasC2 { get; set; }
  241. [CustomName("BiasRF Max ReflectedPower(W)")]
  242. public int BiasMaxReflectedPower { get; set; }
  243. [JsonConverter(typeof(StringEnumConverter))]
  244. public MatchWorkMode BiasMatchWorkMode { get; set; }
  245. [JsonConverter(typeof(StringEnumConverter))]
  246. public GeneratorMode BiasGeneratorMode { get; set; }
  247. public int PulseRateFreq { get; set; }
  248. public int PulseDutyCycle { get; set; }
  249. [IsCanConfigIgnore]
  250. public bool EnableRamp { get; set; }
  251. [JsonConverter(typeof(StringEnumConverter))]
  252. public TargetMode TargetMode { get; set; }
  253. //public int StartBiasRFPower { get; set; }
  254. public int TargetBiasRFPower { get; set; }
  255. }
  256. public class RFUnit : ProcessUnitBase
  257. {
  258. private string m_UnitName = "RFUnit";
  259. [IsTolerance]
  260. public string UnitName
  261. {
  262. get { return m_UnitName; }
  263. set { m_UnitName = value; }
  264. }
  265. [IsTolerance]
  266. [JsonConverter(typeof(StringEnumConverter))]
  267. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  268. [IsTolerance]
  269. [CustomName("ToleranceDelayTime(ms)")]
  270. public int ToleranceDelayTime { get; set; } = 3000;
  271. [CustomName("RF Power(W)")]
  272. public int RFPower { get; set; }
  273. [IsTolerance]
  274. public int RFPowerWarningRange { get; set; } = 5;
  275. [IsTolerance]
  276. public int RFPowerAlarmRange { get; set; } = 10;
  277. [CustomName("C1(%)")]
  278. public float C1 { get; set; }
  279. [CustomName("C2(%)")]
  280. public float C2 { get; set; }
  281. [IsOnlyRead]
  282. [CustomName("AutoC1(%)")]
  283. public float AutoC1 { get; set; }
  284. [IsOnlyRead]
  285. [CustomName("AutoC2(%)")]
  286. public float AutoC2 { get; set; }
  287. [CustomName("RF Max ReflectedPower(W)")]
  288. public int MaxReflectedPower { get; set; }
  289. [JsonConverter(typeof(StringEnumConverter))]
  290. public MatchWorkMode MatchWorkMode { get; set; }
  291. }
  292. public class RFBoxUnit : ProcessUnitBase
  293. {
  294. [IsTolerance]
  295. public string UnitName { get; set; } = "RFBoxUnit";
  296. [CustomName("RFBox C1(%)")]
  297. public float C1 { get; set; }
  298. }
  299. public class GasControlUnit : ProcessUnitBase
  300. {
  301. public string UnitName { get; set; } = "GasControlUnit";
  302. [IsTolerance]
  303. public ToleranceMode ToleranceMode { get; set; }
  304. [IsTolerance]
  305. [CustomName("ToleranceDelayTime(ms)")]
  306. public int ToleranceDelayTime { get; set; }
  307. public int Gas1 { get; set; }
  308. [IsTolerance]
  309. public int Gas1WarningRange { get; set; }
  310. [IsTolerance]
  311. public int Gas1AlarmRange { get; set; }
  312. public int Gas2 { get; set; }
  313. [IsTolerance]
  314. public int Gas2WarningRange { get; set; }
  315. [IsTolerance]
  316. public int Gas2AlarmRange { get; set; }
  317. public int Gas3 { get; set; }
  318. [IsTolerance]
  319. public int Gas3WarningRange { get; set; }
  320. [IsTolerance]
  321. public int Gas3AlarmRange { get; set; }
  322. public int Gas4 { get; set; }
  323. [IsTolerance]
  324. public int Gas4WarningRange { get; set; }
  325. [IsTolerance]
  326. public int Gas4AlarmRange { get; set; }
  327. public int Gas5 { get; set; }
  328. [IsTolerance]
  329. public int Gas5WarningRange { get; set; }
  330. [IsTolerance]
  331. public int Gas5AlarmRange { get; set; }
  332. public int Gas6 { get; set; }
  333. [IsTolerance]
  334. public int Gas6WarningRange { get; set; }
  335. [IsTolerance]
  336. public int Gas6AlarmRange { get; set; }
  337. public int Gas7 { get; set; }
  338. [IsTolerance]
  339. public int Gas7WarningRange { get; set; }
  340. [IsTolerance]
  341. public int Gas7AlarmRange { get; set; }
  342. public int Gas8 { get; set; }
  343. [IsTolerance]
  344. public int Gas8WarningRange { get; set; }
  345. [IsTolerance]
  346. public int Gas8AlarmRange { get; set; }
  347. [IsCanConfigIgnore]
  348. public bool EnableRamp { get; set; }
  349. public int Gas1Target { get; set; }
  350. public int Gas2Target { get; set; }
  351. public int Gas3Target { get; set; }
  352. public int Gas4Target { get; set; }
  353. public int Gas5Target { get; set; }
  354. public int Gas6Target { get; set; }
  355. public int Gas7Target { get; set; }
  356. public int Gas8Target { get; set; }
  357. public int FlowRatie { get; set; }
  358. }
  359. public class Kepler2200GasControlUnit : ProcessUnitBase
  360. {
  361. [IsTolerance]
  362. public string UnitName { get; set; } = "GasUnit";
  363. [IsTolerance]
  364. public ToleranceMode ToleranceMode { get; set; }
  365. [IsTolerance]
  366. [CustomName("ToleranceDelayTime(ms)")]
  367. public int ToleranceDelayTime { get; set; }
  368. public float Gas1 { get; set; }
  369. [IsTolerance]
  370. public float Gas1WarningRange { get; set; }
  371. [IsTolerance]
  372. public float Gas1AlarmRange { get; set; }
  373. public int Gas2 { get; set; }
  374. [IsTolerance]
  375. public int Gas2WarningRange { get; set; }
  376. [IsTolerance]
  377. public int Gas2AlarmRange { get; set; }
  378. public int Gas3 { get; set; }
  379. [IsTolerance]
  380. public int Gas3WarningRange { get; set; }
  381. [IsTolerance]
  382. public int Gas3AlarmRange { get; set; }
  383. public int Gas4 { get; set; }
  384. [IsTolerance]
  385. public int Gas4WarningRange { get; set; }
  386. [IsTolerance]
  387. public int Gas4AlarmRange { get; set; }
  388. public int Gas5 { get; set; }
  389. [IsTolerance]
  390. public int Gas5WarningRange { get; set; }
  391. [IsTolerance]
  392. public int Gas5AlarmRange { get; set; }
  393. public int Gas6 { get; set; }
  394. [IsTolerance]
  395. public int Gas6WarningRange { get; set; }
  396. [IsTolerance]
  397. public int Gas6AlarmRange { get; set; }
  398. public int Gas7 { get; set; }
  399. [IsTolerance]
  400. public int Gas7WarningRange { get; set; }
  401. [IsTolerance]
  402. public int Gas7AlarmRange { get; set; }
  403. public int Gas8 { get; set; }
  404. [IsTolerance]
  405. public int Gas8WarningRange { get; set; }
  406. [IsTolerance]
  407. public int Gas8AlarmRange { get; set; }
  408. }
  409. public class MagnetUnit : ProcessUnitBase
  410. {
  411. public string UnitName { get; set; } = "Magnet";
  412. [IsTolerance]
  413. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  414. [IsTolerance]
  415. [CustomName("ToleranceDelayTime(ms)")]
  416. public int ToleranceDelayTime { get; set; } = 3000;
  417. public float MagnetIntensity { get; set; }
  418. [IsTolerance]
  419. public int IntensityWarningRange { get; set; } = 5;
  420. public float FieldRatio { get; set; }
  421. public int MagnetWaveform { get; set; }
  422. }
  423. public class VenusSEGasControlUnit : ProcessUnitBase
  424. {
  425. public string UnitName { get; set; } = "SEGasControlUnit";
  426. [IsTolerance]
  427. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  428. [IsTolerance]
  429. [CustomName("ToleranceDelayTime(ms)")]
  430. public int ToleranceDelayTime { get; set; } = 3000;
  431. public float Gas1 { get; set; }
  432. [IsTolerance]
  433. public float Gas1WarningRange { get; set; } = 5;
  434. [IsTolerance]
  435. public float Gas1AlarmRange { get; set; } = 10;
  436. public float Gas2 { get; set; }
  437. [IsTolerance]
  438. public float Gas2WarningRange { get; set; } = 5;
  439. [IsTolerance]
  440. public float Gas2AlarmRange { get; set; } = 10;
  441. public float Gas3 { get; set; }
  442. [IsTolerance]
  443. public float Gas3WarningRange { get; set; } = 5;
  444. [IsTolerance]
  445. public float Gas3AlarmRange { get; set; } = 10;
  446. public float Gas4 { get; set; }
  447. [IsTolerance]
  448. public float Gas4WarningRange { get; set; } = 5;
  449. [IsTolerance]
  450. public float Gas4AlarmRange { get; set; } = 10;
  451. public float Gas5 { get; set; }
  452. [IsTolerance]
  453. public float Gas5WarningRange { get; set; } = 5;
  454. [IsTolerance]
  455. public float Gas5AlarmRange { get; set; } = 10;
  456. public float Gas6 { get; set; }
  457. [IsTolerance]
  458. public float Gas6WarningRange { get; set; } = 5;
  459. [IsTolerance]
  460. public float Gas6AlarmRange { get; set; } = 10;
  461. public float Gas7 { get; set; }
  462. [IsTolerance]
  463. public float Gas7WarningRange { get; set; } = 5;
  464. [IsTolerance]
  465. public float Gas7AlarmRange { get; set; } = 10;
  466. public float Gas8 { get; set; }
  467. [IsTolerance]
  468. public float Gas8WarningRange { get; set; } = 5;
  469. [IsTolerance]
  470. public float Gas8AlarmRange { get; set; } = 10;
  471. public float Gas9 { get; set; }
  472. [IsTolerance]
  473. public float Gas9WarningRange { get; set; } = 5;
  474. [IsTolerance]
  475. public float Gas9AlarmRange { get; set; } = 10;
  476. public float Gas10 { get; set; }
  477. [IsTolerance]
  478. public float Gas10WarningRange { get; set; } = 5;
  479. [IsTolerance]
  480. public float Gas10AlarmRange { get; set; } = 10;
  481. public float Gas11 { get; set; }
  482. [IsTolerance]
  483. public float Gas11WarningRange { get; set; } = 5;
  484. [IsTolerance]
  485. public float Gas11AlarmRange { get; set; } = 10;
  486. public float Gas12 { get; set; }
  487. [IsTolerance]
  488. public float Gas12WarningRange { get; set; } = 5;
  489. [IsTolerance]
  490. public float Gas12AlarmRange { get; set; } = 10;
  491. }
  492. public class VenusDEGasControlUnit : ProcessUnitBase
  493. {
  494. public string UnitName { get; set; } = "DEGasControlUnit";
  495. [IsTolerance]
  496. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  497. [IsTolerance]
  498. [CustomName("ToleranceDelayTime(ms)")]
  499. public int ToleranceDelayTime { get; set; } = 3000;
  500. public float Gas1 { get; set; }
  501. [IsTolerance]
  502. public float Gas1WarningRange { get; set; } = 5;
  503. [IsTolerance]
  504. public float Gas1AlarmRange { get; set; } = 10;
  505. public float Gas2 { get; set; }
  506. [IsTolerance]
  507. public float Gas2WarningRange { get; set; } = 5;
  508. [IsTolerance]
  509. public float Gas2AlarmRange { get; set; } = 10;
  510. public float Gas3 { get; set; }
  511. [IsTolerance]
  512. public float Gas3WarningRange { get; set; } = 5;
  513. [IsTolerance]
  514. public float Gas3AlarmRange { get; set; } = 10;
  515. public float Gas4 { get; set; }
  516. [IsTolerance]
  517. public float Gas4WarningRange { get; set; } = 5;
  518. [IsTolerance]
  519. public float Gas4AlarmRange { get; set; } = 10;
  520. public float Gas5 { get; set; }
  521. [IsTolerance]
  522. public float Gas5WarningRange { get; set; } = 5;
  523. [IsTolerance]
  524. public float Gas5AlarmRange { get; set; } = 10;
  525. public float Gas6 { get; set; }
  526. [IsTolerance]
  527. public float Gas6WarningRange { get; set; } = 5;
  528. [IsTolerance]
  529. public float Gas6AlarmRange { get; set; } = 10;
  530. public float Gas7 { get; set; }
  531. [IsTolerance]
  532. public float Gas7WarningRange { get; set; } = 5;
  533. [IsTolerance]
  534. public float Gas7AlarmRange { get; set; } = 10;
  535. public float Gas8 { get; set; }
  536. [IsTolerance]
  537. public float Gas8WarningRange { get; set; } = 5;
  538. [IsTolerance]
  539. public float Gas8AlarmRange { get; set; } = 10;
  540. public float Gas9 { get; set; }
  541. [IsTolerance]
  542. public float Gas9WarningRange { get; set; } = 5;
  543. [IsTolerance]
  544. public float Gas9AlarmRange { get; set; } = 10;
  545. public float Gas10 { get; set; }
  546. [IsTolerance]
  547. public float Gas10WarningRange { get; set; } = 5;
  548. [IsTolerance]
  549. public float Gas10AlarmRange { get; set; } = 10;
  550. public float Gas11 { get; set; }
  551. [IsTolerance]
  552. public float Gas11WarningRange { get; set; } = 5;
  553. [IsTolerance]
  554. public float Gas11AlarmRange { get; set; } = 10;
  555. public float Gas12 { get; set; }
  556. [IsTolerance]
  557. public float Gas12WarningRange { get; set; } = 5;
  558. [IsTolerance]
  559. public float Gas12AlarmRange { get; set; } = 10;
  560. }
  561. public class ESCHVUnit : ProcessUnitBase
  562. {
  563. public string UnitName { get; set; } = "ESCHVUnit";
  564. [CustomName("BacksideHelium(Torr)")]
  565. public int BacksideHelium { get; set; }
  566. [CustomName("HeCheckDelayTime(ms)")]
  567. public int CheckDelay { get; set; }
  568. public float MinHeFlow { get; set; }
  569. public float MaxHeFlow { get; set; }
  570. public int ESCClampValtage { get; set; }
  571. }
  572. public class ESCHV8InchUnit : ProcessUnitBase
  573. {
  574. public string UnitName { get; set; } = "ESCHV8InchUnit";
  575. [CustomName("BacksideInnerHelium(Torr)")]
  576. public int BacksideHelium { get; set; }
  577. [CustomName("BacksideOuterHelium(Torr)")]
  578. public int BacksideOutHelium { get; set; }
  579. [CustomName("InnerHeCheckDelayTime(ms)")]
  580. public int CheckDelay { get; set; }
  581. [CustomName("OuterHeCheckDelayTime(ms)")]
  582. public int OutCheckDelay { get; set; }
  583. public float MinHeFlow { get; set; }
  584. public float MaxHeFlow { get; set; }
  585. public float MinOutHeFlow { get; set; }
  586. public float MaxOutHeFlow { get; set; }
  587. public int ESCClampValtage { get; set; }
  588. }
  589. public class ProcessKitUnit : ProcessUnitBase
  590. {
  591. public string UnitName { get; set; } = "ProcessKitUnit";
  592. private MovementPosition m_LiftPinPostion;
  593. [JsonConverter(typeof(StringEnumConverter))]
  594. public MovementPosition LiftPinPostion
  595. {
  596. get { return m_LiftPinPostion; }
  597. set { m_LiftPinPostion = value; }
  598. }
  599. [JsonConverter(typeof(StringEnumConverter))]
  600. public MovementPosition WeprBasrPinPosition { get; set; }
  601. }
  602. public class HeliumPumpUnit : ProcessUnitBase
  603. {
  604. public string UnitName { get; set; } = "HeliumPumpUnit";
  605. public bool HeliumPumpState { get; set; }
  606. }
  607. }