ProcessUnitDefine.cs 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645
  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. [IsTolerance]
  278. public int RFReflectedPowerWarningRange { get; set; } = 20;
  279. [IsTolerance]
  280. public int RFReflectedPowerAlarmRange { get; set; } = 40;
  281. [CustomName("C1(%)")]
  282. public float C1 { get; set; }
  283. [CustomName("C2(%)")]
  284. public float C2 { get; set; }
  285. [IsOnlyRead]
  286. [CustomName("AutoC1(%)")]
  287. public float AutoC1 { get; set; }
  288. [IsOnlyRead]
  289. [CustomName("AutoC2(%)")]
  290. public float AutoC2 { get; set; }
  291. //[CustomName("RF Max ReflectedPower(W)")]
  292. //public int MaxReflectedPower { get; set; }
  293. [JsonConverter(typeof(StringEnumConverter))]
  294. public MatchWorkMode MatchWorkMode { get; set; }
  295. }
  296. public class RFBoxUnit : ProcessUnitBase
  297. {
  298. [IsTolerance]
  299. public string UnitName { get; set; } = "RFBoxUnit";
  300. [CustomName("RFBox C1(%)")]
  301. public float C1 { get; set; }
  302. }
  303. public class GasControlUnit : ProcessUnitBase
  304. {
  305. public string UnitName { get; set; } = "GasControlUnit";
  306. [IsTolerance]
  307. public ToleranceMode ToleranceMode { get; set; }
  308. [IsTolerance]
  309. [CustomName("ToleranceDelayTime(ms)")]
  310. public int ToleranceDelayTime { get; set; }
  311. public int Gas1 { get; set; }
  312. [IsTolerance]
  313. public int Gas1WarningRange { get; set; }
  314. [IsTolerance]
  315. public int Gas1AlarmRange { get; set; }
  316. public int Gas2 { get; set; }
  317. [IsTolerance]
  318. public int Gas2WarningRange { get; set; }
  319. [IsTolerance]
  320. public int Gas2AlarmRange { get; set; }
  321. public int Gas3 { get; set; }
  322. [IsTolerance]
  323. public int Gas3WarningRange { get; set; }
  324. [IsTolerance]
  325. public int Gas3AlarmRange { get; set; }
  326. public int Gas4 { get; set; }
  327. [IsTolerance]
  328. public int Gas4WarningRange { get; set; }
  329. [IsTolerance]
  330. public int Gas4AlarmRange { get; set; }
  331. public int Gas5 { get; set; }
  332. [IsTolerance]
  333. public int Gas5WarningRange { get; set; }
  334. [IsTolerance]
  335. public int Gas5AlarmRange { get; set; }
  336. public int Gas6 { get; set; }
  337. [IsTolerance]
  338. public int Gas6WarningRange { get; set; }
  339. [IsTolerance]
  340. public int Gas6AlarmRange { get; set; }
  341. public int Gas7 { get; set; }
  342. [IsTolerance]
  343. public int Gas7WarningRange { get; set; }
  344. [IsTolerance]
  345. public int Gas7AlarmRange { get; set; }
  346. public int Gas8 { get; set; }
  347. [IsTolerance]
  348. public int Gas8WarningRange { get; set; }
  349. [IsTolerance]
  350. public int Gas8AlarmRange { get; set; }
  351. [IsCanConfigIgnore]
  352. public bool EnableRamp { get; set; }
  353. public int Gas1Target { get; set; }
  354. public int Gas2Target { get; set; }
  355. public int Gas3Target { get; set; }
  356. public int Gas4Target { get; set; }
  357. public int Gas5Target { get; set; }
  358. public int Gas6Target { get; set; }
  359. public int Gas7Target { get; set; }
  360. public int Gas8Target { get; set; }
  361. public int FlowRatie { get; set; }
  362. }
  363. public class Kepler2200GasControlUnit : ProcessUnitBase
  364. {
  365. [IsTolerance]
  366. public string UnitName { get; set; } = "GasUnit";
  367. [IsTolerance]
  368. public ToleranceMode ToleranceMode { get; set; }
  369. [IsTolerance]
  370. [CustomName("ToleranceDelayTime(ms)")]
  371. public int ToleranceDelayTime { get; set; }
  372. public float Gas1 { get; set; }
  373. [IsTolerance]
  374. public float Gas1WarningRange { get; set; }
  375. [IsTolerance]
  376. public float Gas1AlarmRange { get; set; }
  377. public int Gas2 { get; set; }
  378. [IsTolerance]
  379. public int Gas2WarningRange { get; set; }
  380. [IsTolerance]
  381. public int Gas2AlarmRange { get; set; }
  382. public int Gas3 { get; set; }
  383. [IsTolerance]
  384. public int Gas3WarningRange { get; set; }
  385. [IsTolerance]
  386. public int Gas3AlarmRange { get; set; }
  387. public int Gas4 { get; set; }
  388. [IsTolerance]
  389. public int Gas4WarningRange { get; set; }
  390. [IsTolerance]
  391. public int Gas4AlarmRange { get; set; }
  392. public int Gas5 { get; set; }
  393. [IsTolerance]
  394. public int Gas5WarningRange { get; set; }
  395. [IsTolerance]
  396. public int Gas5AlarmRange { get; set; }
  397. public int Gas6 { get; set; }
  398. [IsTolerance]
  399. public int Gas6WarningRange { get; set; }
  400. [IsTolerance]
  401. public int Gas6AlarmRange { get; set; }
  402. public int Gas7 { get; set; }
  403. [IsTolerance]
  404. public int Gas7WarningRange { get; set; }
  405. [IsTolerance]
  406. public int Gas7AlarmRange { get; set; }
  407. public int Gas8 { get; set; }
  408. [IsTolerance]
  409. public int Gas8WarningRange { get; set; }
  410. [IsTolerance]
  411. public int Gas8AlarmRange { get; set; }
  412. }
  413. public class MagnetUnit : ProcessUnitBase
  414. {
  415. public string UnitName { get; set; } = "Magnet";
  416. [IsTolerance]
  417. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  418. [IsTolerance]
  419. [CustomName("ToleranceDelayTime(ms)")]
  420. public int ToleranceDelayTime { get; set; } = 3000;
  421. public float MagnetIntensity { get; set; }
  422. [IsTolerance]
  423. public int IntensityWarningRange { get; set; } = 5;
  424. public float FieldRatio { get; set; }
  425. public int MagnetWaveform { get; set; }
  426. }
  427. public class VenusSEGasControlUnit : ProcessUnitBase
  428. {
  429. public string UnitName { get; set; } = "SEGasControlUnit";
  430. [IsTolerance]
  431. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  432. [IsTolerance]
  433. [CustomName("ToleranceDelayTime(ms)")]
  434. public int ToleranceDelayTime { get; set; } = 3000;
  435. public float Gas1 { get; set; }
  436. [IsTolerance]
  437. public float Gas1WarningRange { get; set; } = 5;
  438. [IsTolerance]
  439. public float Gas1AlarmRange { get; set; } = 10;
  440. public float Gas2 { get; set; }
  441. [IsTolerance]
  442. public float Gas2WarningRange { get; set; } = 5;
  443. [IsTolerance]
  444. public float Gas2AlarmRange { get; set; } = 10;
  445. public float Gas3 { get; set; }
  446. [IsTolerance]
  447. public float Gas3WarningRange { get; set; } = 5;
  448. [IsTolerance]
  449. public float Gas3AlarmRange { get; set; } = 10;
  450. public float Gas4 { get; set; }
  451. [IsTolerance]
  452. public float Gas4WarningRange { get; set; } = 5;
  453. [IsTolerance]
  454. public float Gas4AlarmRange { get; set; } = 10;
  455. public float Gas5 { get; set; }
  456. [IsTolerance]
  457. public float Gas5WarningRange { get; set; } = 5;
  458. [IsTolerance]
  459. public float Gas5AlarmRange { get; set; } = 10;
  460. public float Gas6 { get; set; }
  461. [IsTolerance]
  462. public float Gas6WarningRange { get; set; } = 5;
  463. [IsTolerance]
  464. public float Gas6AlarmRange { get; set; } = 10;
  465. public float Gas7 { get; set; }
  466. [IsTolerance]
  467. public float Gas7WarningRange { get; set; } = 5;
  468. [IsTolerance]
  469. public float Gas7AlarmRange { get; set; } = 10;
  470. public float Gas8 { get; set; }
  471. [IsTolerance]
  472. public float Gas8WarningRange { get; set; } = 5;
  473. [IsTolerance]
  474. public float Gas8AlarmRange { get; set; } = 10;
  475. public float Gas9 { get; set; }
  476. [IsTolerance]
  477. public float Gas9WarningRange { get; set; } = 5;
  478. [IsTolerance]
  479. public float Gas9AlarmRange { get; set; } = 10;
  480. public float Gas10 { get; set; }
  481. [IsTolerance]
  482. public float Gas10WarningRange { get; set; } = 5;
  483. [IsTolerance]
  484. public float Gas10AlarmRange { get; set; } = 10;
  485. public float Gas11 { get; set; }
  486. [IsTolerance]
  487. public float Gas11WarningRange { get; set; } = 5;
  488. [IsTolerance]
  489. public float Gas11AlarmRange { get; set; } = 10;
  490. public float Gas12 { get; set; }
  491. [IsTolerance]
  492. public float Gas12WarningRange { get; set; } = 5;
  493. [IsTolerance]
  494. public float Gas12AlarmRange { get; set; } = 10;
  495. }
  496. public class VenusDEGasControlUnit : ProcessUnitBase
  497. {
  498. public string UnitName { get; set; } = "DEGasControlUnit";
  499. [IsTolerance]
  500. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  501. [IsTolerance]
  502. [CustomName("ToleranceDelayTime(ms)")]
  503. public int ToleranceDelayTime { get; set; } = 3000;
  504. public float Gas1 { get; set; }
  505. [IsTolerance]
  506. public float Gas1WarningRange { get; set; } = 5;
  507. [IsTolerance]
  508. public float Gas1AlarmRange { get; set; } = 10;
  509. public float Gas2 { get; set; }
  510. [IsTolerance]
  511. public float Gas2WarningRange { get; set; } = 5;
  512. [IsTolerance]
  513. public float Gas2AlarmRange { get; set; } = 10;
  514. public float Gas3 { get; set; }
  515. [IsTolerance]
  516. public float Gas3WarningRange { get; set; } = 5;
  517. [IsTolerance]
  518. public float Gas3AlarmRange { get; set; } = 10;
  519. public float Gas4 { get; set; }
  520. [IsTolerance]
  521. public float Gas4WarningRange { get; set; } = 5;
  522. [IsTolerance]
  523. public float Gas4AlarmRange { get; set; } = 10;
  524. public float Gas5 { get; set; }
  525. [IsTolerance]
  526. public float Gas5WarningRange { get; set; } = 5;
  527. [IsTolerance]
  528. public float Gas5AlarmRange { get; set; } = 10;
  529. public float Gas6 { get; set; }
  530. [IsTolerance]
  531. public float Gas6WarningRange { get; set; } = 5;
  532. [IsTolerance]
  533. public float Gas6AlarmRange { get; set; } = 10;
  534. public float Gas7 { get; set; }
  535. [IsTolerance]
  536. public float Gas7WarningRange { get; set; } = 5;
  537. [IsTolerance]
  538. public float Gas7AlarmRange { get; set; } = 10;
  539. public float Gas8 { get; set; }
  540. [IsTolerance]
  541. public float Gas8WarningRange { get; set; } = 5;
  542. [IsTolerance]
  543. public float Gas8AlarmRange { get; set; } = 10;
  544. public float Gas9 { get; set; }
  545. [IsTolerance]
  546. public float Gas9WarningRange { get; set; } = 5;
  547. [IsTolerance]
  548. public float Gas9AlarmRange { get; set; } = 10;
  549. public float Gas10 { get; set; }
  550. [IsTolerance]
  551. public float Gas10WarningRange { get; set; } = 5;
  552. [IsTolerance]
  553. public float Gas10AlarmRange { get; set; } = 10;
  554. public float Gas11 { get; set; }
  555. [IsTolerance]
  556. public float Gas11WarningRange { get; set; } = 5;
  557. [IsTolerance]
  558. public float Gas11AlarmRange { get; set; } = 10;
  559. public float Gas12 { get; set; }
  560. [IsTolerance]
  561. public float Gas12WarningRange { get; set; } = 5;
  562. [IsTolerance]
  563. public float Gas12AlarmRange { get; set; } = 10;
  564. }
  565. public class ESCHVUnit : ProcessUnitBase
  566. {
  567. public string UnitName { get; set; } = "ESCHVUnit";
  568. [CustomName("BacksideHelium(Torr)")]
  569. public int BacksideHelium { get; set; }
  570. [CustomName("HeCheckDelayTime(ms)")]
  571. public int CheckDelay { get; set; }
  572. public float MinHeFlow { get; set; }
  573. public float MaxHeFlow { get; set; }
  574. public int ESCClampValtage { get; set; }
  575. }
  576. public class ESCHV8InchUnit : ProcessUnitBase
  577. {
  578. public string UnitName { get; set; } = "ESCHV8InchUnit";
  579. [CustomName("BacksideInnerHelium(Torr)")]
  580. public int BacksideHelium { get; set; }
  581. [CustomName("BacksideOuterHelium(Torr)")]
  582. public int BacksideOutHelium { get; set; }
  583. [CustomName("InnerHeCheckDelayTime(ms)")]
  584. public int CheckDelay { get; set; }
  585. [CustomName("OuterHeCheckDelayTime(ms)")]
  586. public int OutCheckDelay { get; set; }
  587. public float MinHeFlow { get; set; }
  588. public float MaxHeFlow { get; set; }
  589. public float MinOutHeFlow { get; set; }
  590. public float MaxOutHeFlow { get; set; }
  591. public int ESCClampValtage { get; set; }
  592. }
  593. public class ProcessKitUnit : ProcessUnitBase
  594. {
  595. public string UnitName { get; set; } = "ProcessKitUnit";
  596. private MovementPosition m_LiftPinPostion;
  597. [JsonConverter(typeof(StringEnumConverter))]
  598. public MovementPosition LiftPinPostion
  599. {
  600. get { return m_LiftPinPostion; }
  601. set { m_LiftPinPostion = value; }
  602. }
  603. [JsonConverter(typeof(StringEnumConverter))]
  604. public MovementPosition WeprBasrPinPosition { get; set; }
  605. }
  606. public class HeliumPumpUnit : ProcessUnitBase
  607. {
  608. public string UnitName { get; set; } = "HeliumPumpUnit";
  609. public bool HeliumPumpState { get; set; }
  610. }
  611. }