PlatformViewModel.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  1. //using Aitex.Core.Common;
  2. using Aitex.Core.Common.DeviceData;
  3. using MECF.Framework.Common.CommonData.DeviceData;
  4. using MECF.Framework.Common.DataCenter;
  5. using MECF.Framework.Common.OperationCenter;
  6. using OpenSEMI.ClientBase;
  7. using Prism.Commands;
  8. using Prism.Mvvm;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows;
  15. using System.Windows.Threading;
  16. using Venus_Core;
  17. using Venus_MainPages.Unity;
  18. using Venus_Themes.CustomControls;
  19. using WPF.Themes.UserControls;
  20. namespace Venus_MainPages.ViewModels
  21. {
  22. public class PlatformViewModel : BindableBase
  23. {
  24. #region 私有字段
  25. private bool m_LoadLockDoorIsOpen;
  26. private bool m_LoadLockPumpValveIsOpen;
  27. private bool m_LoadLockVentValveIsOpen;
  28. private bool m_IsATM;
  29. private string ModuleName="PMA";
  30. private List<string> m_RtDataKeys=new List<string> ();
  31. private Dictionary<string, object> m_RtDataValues=new Dictionary<string, object> ();
  32. private bool m_PumpIsOpen;
  33. private int m_PurgeCounter;
  34. private Visibility m_PMAWaferIsVisibility;
  35. private Visibility m_LLAWaferIsVisibility;
  36. private PMState m_PMCurrentState;
  37. private WaferInfo m_LLAWafer;
  38. private WaferInfo m_PMAWafer;
  39. private bool m_WaferInPosSensor;
  40. private bool m_SoftPumpValveIsOpen;
  41. private bool m_FastPumpValveIsOpen;
  42. private bool m_PVHe1ValveIsOpen;
  43. private bool m_PVHe2ValveIsOpen;
  44. private bool m_TurboPumpPumpingValveIsOpen;
  45. private bool m_TurboPumpPurgeValveIsOpen;
  46. private bool m_GuageValveIsOpen;
  47. private bool m_PendulumValveIsOpen;
  48. private bool m_TurboIsOpen;
  49. private int m_PositionValue;
  50. private float m_PendulumValvePosition;
  51. private float m_ProcessHighPressure;
  52. private float m_ProcessLowPressure;
  53. private float m_ForelinePressurePressure;
  54. private int m_TurboPumpRotationalSpeed;
  55. private AITMfcData m_MFCN2Data;
  56. private AITPendulumValveData m_PendulumValveData;
  57. #endregion
  58. #region 属性
  59. public bool WaferInPosSensor
  60. {
  61. get { return m_WaferInPosSensor; }
  62. set
  63. {
  64. if (m_WaferInPosSensor != value)
  65. {
  66. if (value == true && PMCurrentState!=PMState.LLPicking && PMCurrentState != PMState.LLPlacing)
  67. {
  68. InvokeClient.Instance.Service.DoOperation("CreateWafer", "LLA", 1);
  69. }
  70. else if (value == false && PMCurrentState != PMState.LLPicking && PMCurrentState != PMState.LLPlacing)
  71. {
  72. InvokeClient.Instance.Service.DoOperation("DeleteWafer", "LLA", 1);
  73. }
  74. }
  75. SetProperty(ref m_WaferInPosSensor, value);
  76. }
  77. }
  78. public WaferInfo LLAWafer
  79. {
  80. get { return m_LLAWafer; }
  81. set { SetProperty(ref m_LLAWafer, value); }
  82. }
  83. public WaferInfo PMAWafer
  84. {
  85. get { return m_PMAWafer; }
  86. set { SetProperty(ref m_PMAWafer, value); }
  87. }
  88. public bool LoadLockDoorIsOpen
  89. {
  90. get { return m_LoadLockDoorIsOpen; }
  91. set { SetProperty(ref m_LoadLockDoorIsOpen, value); }
  92. }
  93. public bool LoadLockPumpValveIsOpen
  94. {
  95. get { return m_LoadLockPumpValveIsOpen; }
  96. set { SetProperty(ref m_LoadLockPumpValveIsOpen, value); }
  97. }
  98. public bool LoadLockVentValveIsOpen
  99. {
  100. get { return m_LoadLockVentValveIsOpen; }
  101. set { SetProperty(ref m_LoadLockVentValveIsOpen, value); }
  102. }
  103. public bool IsATM
  104. {
  105. get { return m_IsATM; }
  106. set { SetProperty(ref m_IsATM, value); }
  107. }
  108. public Dictionary<string, object> RtDataValues
  109. {
  110. get { return m_RtDataValues; }
  111. set { SetProperty(ref m_RtDataValues, value); }
  112. }
  113. public bool PumpIsOpen
  114. {
  115. get { return m_PumpIsOpen; }
  116. set { SetProperty(ref m_PumpIsOpen, value); }
  117. }
  118. public int PurgeCounter
  119. {
  120. get { return m_PurgeCounter; }
  121. set { SetProperty(ref m_PurgeCounter, value); }
  122. }
  123. public Visibility PMAWaferIsVisibility
  124. {
  125. get { return m_PMAWaferIsVisibility; }
  126. set { SetProperty(ref m_PMAWaferIsVisibility, value); }
  127. }
  128. public Visibility LLAWaferIsVisibility
  129. {
  130. get { return m_LLAWaferIsVisibility; }
  131. set { SetProperty(ref m_LLAWaferIsVisibility, value); }
  132. }
  133. public PMState PMCurrentState
  134. {
  135. get { return m_PMCurrentState; }
  136. set { SetProperty(ref m_PMCurrentState, value); }
  137. }
  138. public bool TurboPumpPumpingValveIsOpen
  139. {
  140. get { return m_TurboPumpPumpingValveIsOpen; }
  141. set { SetProperty(ref m_TurboPumpPumpingValveIsOpen, value); }
  142. }
  143. public bool TurboPumpPurgeValveIsOpen
  144. {
  145. get { return m_TurboPumpPurgeValveIsOpen; }
  146. set { SetProperty(ref m_TurboPumpPurgeValveIsOpen, value); }
  147. }
  148. public bool SoftPumpValveIsOpen
  149. {
  150. get { return m_SoftPumpValveIsOpen; }
  151. set { SetProperty(ref m_SoftPumpValveIsOpen, value); }
  152. }
  153. public bool FastPumpValveIsOpen
  154. {
  155. get { return m_FastPumpValveIsOpen; }
  156. set { SetProperty(ref m_FastPumpValveIsOpen, value); }
  157. }
  158. public bool GuageValveIsOpen
  159. {
  160. get { return m_GuageValveIsOpen; }
  161. set { SetProperty(ref m_GuageValveIsOpen, value); }
  162. }
  163. public bool PendulumValveIsOpen
  164. {
  165. get { return m_PendulumValveIsOpen; }
  166. set { SetProperty(ref m_PendulumValveIsOpen, value); }
  167. }
  168. public bool TurboIsOpen
  169. {
  170. get { return m_TurboIsOpen; }
  171. set { SetProperty(ref m_TurboIsOpen, value); }
  172. }
  173. public bool PVHe1ValveIsOpen
  174. {
  175. get { return m_PVHe1ValveIsOpen; }
  176. set { SetProperty(ref m_PVHe1ValveIsOpen, value); }
  177. }
  178. public bool PVHe2ValveIsOpen
  179. {
  180. get { return m_PVHe2ValveIsOpen; }
  181. set { SetProperty(ref m_PVHe2ValveIsOpen, value); }
  182. }
  183. public int PositionValue
  184. {
  185. get { return m_PositionValue; }
  186. set { SetProperty(ref m_PositionValue, value); }
  187. }
  188. public float PendulumValvePosition
  189. {
  190. get { return m_PendulumValvePosition; }
  191. set { SetProperty(ref m_PendulumValvePosition, value); }
  192. }
  193. public float ProcessHighPressure
  194. {
  195. get { return m_ProcessHighPressure; }
  196. set
  197. {
  198. SetProperty(ref m_ProcessHighPressure, value);
  199. }
  200. }
  201. public float ProcessLowPressure
  202. {
  203. get { return m_ProcessLowPressure; }
  204. set
  205. {
  206. SetProperty(ref m_ProcessLowPressure, value);
  207. }
  208. }
  209. public float ForelinePressure
  210. {
  211. get { return m_ForelinePressurePressure; }
  212. set
  213. {
  214. SetProperty(ref m_ForelinePressurePressure, value);
  215. }
  216. }
  217. public int TurboPumpRotationalSpeed
  218. {
  219. get { return m_TurboPumpRotationalSpeed; }
  220. set
  221. {
  222. SetProperty(ref m_TurboPumpRotationalSpeed, value);
  223. }
  224. }
  225. public AITMfcData MFCN2Data
  226. {
  227. get { return m_MFCN2Data; }
  228. set { SetProperty(ref m_MFCN2Data, value); }
  229. }
  230. public AITPendulumValveData PendulumValveData
  231. {
  232. get { return m_PendulumValveData; }
  233. set
  234. {
  235. SetProperty(ref m_PendulumValveData, value);
  236. }
  237. }
  238. #endregion
  239. #region 命令
  240. private DelegateCommand _PurgeCommand;
  241. public DelegateCommand PurgeCommand =>
  242. _PurgeCommand ?? (_PurgeCommand = new DelegateCommand(OnPurge));
  243. private DelegateCommand _VentCommand;
  244. public DelegateCommand VentCommand =>
  245. _VentCommand ?? (_VentCommand = new DelegateCommand(OnVent));
  246. private DelegateCommand _PumpCommand;
  247. public DelegateCommand PumpCommand =>
  248. _PumpCommand ?? (_PumpCommand = new DelegateCommand(OnPump));
  249. private DelegateCommand _OpenPumpCommand;
  250. public DelegateCommand OpenPumpCommand =>
  251. _OpenPumpCommand ?? (_OpenPumpCommand = new DelegateCommand(OnOpenPump));
  252. private DelegateCommand _ClosePumpCommand;
  253. public DelegateCommand ClosePumpCommand =>
  254. _ClosePumpCommand ?? (_ClosePumpCommand = new DelegateCommand(OnClosePump));
  255. private DelegateCommand _OpenDoorCommand;
  256. public DelegateCommand OpenDoorCommand =>
  257. _OpenDoorCommand ?? (_OpenDoorCommand = new DelegateCommand(OnOpenDoor));
  258. private DelegateCommand _CloseDoorCommand;
  259. public DelegateCommand CloseDoorCommand =>
  260. _CloseDoorCommand ?? (_CloseDoorCommand = new DelegateCommand(OnCloseDoor));
  261. private DelegateCommand _NewWaferCommand;
  262. public DelegateCommand NewWaferCommand =>
  263. _NewWaferCommand ?? (_NewWaferCommand = new DelegateCommand(OnNewWafer));
  264. private DelegateCommand _DeleteWaferCommand;
  265. public DelegateCommand DeleteWaferCommand =>
  266. _DeleteWaferCommand ?? (_DeleteWaferCommand = new DelegateCommand(OnDeleteWafer));
  267. private DelegateCommand _PlaceWaferCommand;
  268. public DelegateCommand PlaceWaferCommand =>
  269. _PlaceWaferCommand ?? (_PlaceWaferCommand = new DelegateCommand(OnPlaceWafer));
  270. private DelegateCommand _MoveWaferCommand;
  271. public DelegateCommand MoveWaferCommand =>
  272. _MoveWaferCommand ?? (_MoveWaferCommand = new DelegateCommand(OnMoveWafer));
  273. private DelegateCommand<object> _ControlValveCommand;
  274. public DelegateCommand<object> ControlValveCommand =>
  275. _ControlValveCommand ?? (_ControlValveCommand = new DelegateCommand<object>(OnControlValve));
  276. private DelegateCommand _OpenPendulumValveCommand;
  277. public DelegateCommand OpenPendulumValveCommand =>
  278. _OpenPendulumValveCommand ?? (_OpenPendulumValveCommand = new DelegateCommand(OnOpenPendulumValve));
  279. private DelegateCommand _ClosePendulumValveCommand;
  280. public DelegateCommand ClosePendulumValveCommand =>
  281. _ClosePendulumValveCommand ?? (_ClosePendulumValveCommand = new DelegateCommand(OnClosePendulumValve));
  282. private DelegateCommand _OpenButterflyValveViewCommand;
  283. //public DelegateCommand OpenButterflyValveViewCommand =>
  284. // _OpenButterflyValveViewCommand ?? (_OpenButterflyValveViewCommand = new DelegateCommand(OnOpenButterflyValveView));
  285. private DelegateCommand _OpenTurboPumpCommand;
  286. public DelegateCommand OpenTurboPumpCommand =>
  287. _OpenTurboPumpCommand ?? (_OpenTurboPumpCommand = new DelegateCommand(OnOpenTurboPump));
  288. #endregion
  289. #region 构造函数
  290. public PlatformViewModel()
  291. {
  292. ModuleManager.Initialize();
  293. //m_PMAWaferIsVisibility = Visibility.Collapsed;
  294. //m_IsATM = true;
  295. //var test = RTData.GetRTData().RtDataValues;
  296. addDataKeys();
  297. DispatcherTimer timer = new DispatcherTimer();
  298. timer.Interval = TimeSpan.FromSeconds(0.1);
  299. timer.Tick += timer_Tick;
  300. timer.Start();
  301. }
  302. #endregion
  303. #region 命令方法
  304. private void OnPump()
  305. {
  306. if (PMCurrentState == PMState.PumpingLoadLock)
  307. {
  308. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
  309. }
  310. else
  311. {
  312. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PumpLoadLock");
  313. }
  314. }
  315. private void OnPurge()
  316. {
  317. if (PMCurrentState == PMState.PurgingLoadLock)
  318. {
  319. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
  320. }
  321. else
  322. {
  323. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PurgeLoadLock");
  324. }
  325. }
  326. private void OnVent()
  327. {
  328. if (PMCurrentState == PMState.VentingLoadLock)
  329. {
  330. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
  331. }
  332. else
  333. {
  334. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.VentLoadLock");
  335. }
  336. }
  337. private void OnOpenPump()
  338. {
  339. if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "LaunchingPump")
  340. {
  341. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
  342. return;
  343. }
  344. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartPump");
  345. }
  346. private void OnClosePump()
  347. {
  348. //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
  349. }
  350. private void OnOpenDoor()
  351. {
  352. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetSlitDoor",true);
  353. }
  354. private void OnCloseDoor()
  355. {
  356. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetSlitDoor",false);
  357. }
  358. private void OnNewWafer()
  359. {
  360. InvokeClient.Instance.Service.DoOperation("CreateWafer", "PMA", 0);
  361. }
  362. private void OnDeleteWafer()
  363. {
  364. InvokeClient.Instance.Service.DoOperation("DeleteWafer", "PMA", 0);
  365. }
  366. private void OnPlaceWafer()
  367. {
  368. if (PMCurrentState == PMState.LLPlacing)
  369. {
  370. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
  371. return;
  372. }
  373. else
  374. {
  375. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.LLPlace}");
  376. }
  377. }
  378. private void OnMoveWafer()
  379. {
  380. if (PMCurrentState == PMState.LLPicking)
  381. {
  382. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
  383. return;
  384. }
  385. else
  386. {
  387. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.LLPick}");
  388. }
  389. }
  390. private void OnControlValve(object obj)
  391. {
  392. CommonValveControl commonValveControl = (CommonValveControl)obj;
  393. if (commonValveControl.IsCanEdit == true)
  394. {
  395. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ControlValve", Convert.ToInt32(commonValveControl.Tag.ToString()), !commonValveControl.Status);
  396. }
  397. }
  398. private void OnOpenPendulumValve()
  399. {
  400. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve", true);
  401. }
  402. private void OnClosePendulumValve()
  403. {
  404. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve", false);
  405. }
  406. private void OnOpenTurboPump()
  407. {
  408. //TurboIsOpen = true;
  409. //if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "LaunchingTurbo")
  410. if (PMCurrentState == PMState.LaunchingTurboPump)
  411. {
  412. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
  413. return;
  414. }
  415. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartTurboPump");
  416. }
  417. #endregion
  418. #region 私有方法
  419. void timer_Tick(object sender, EventArgs e)
  420. {
  421. RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
  422. LoadLockPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveLoadlockPumping.IsOpen");
  423. LoadLockVentValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveLoadlockVent.IsOpen");
  424. PumpIsOpen = (bool)RtDataValues[$"{ModuleName}.PumpIsRunning"];
  425. PurgeCounter=(int)RtDataValues[$"{ModuleName}.LoadLockPurge.PurgeCounter"];
  426. LLAWafer = ModuleManager.ModuleInfos["LLA"].WaferManager.Wafers[3];
  427. PMAWafer = ModuleManager.ModuleInfos["PMA"].WaferManager.Wafers[0];
  428. PMCurrentState= (PMState)Enum.Parse(typeof(PMState), RtDataValues[$"{ModuleName}.FsmState"].ToString());
  429. WaferInPosSensor = (bool)RtDataValues[$"{ModuleName}.SensorSmallWaferInPos.Value"];
  430. SoftPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveSoftPump.IsOpen");
  431. FastPumpValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveFastPump.IsOpen");
  432. GuageValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveGuage.IsOpen");
  433. TurboPumpPumpingValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveTurboPumpPumping.IsOpen");
  434. TurboPumpPurgeValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValveTurboPumpPurge.IsOpen");
  435. PVHe1ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVHe1.IsOpen");
  436. PVHe2ValveIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.ValvePVHe2.IsOpen");
  437. PumpIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.PumpIsRunning");
  438. TurboIsOpen = CommonFunction.GetValue<bool>(RtDataValues, $"{ModuleName}.TurboPumpIsRunning");
  439. PendulumValvePosition = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.GetPVPosition");
  440. PositionValue = -((int)((PendulumValvePosition) * 0.09));
  441. ProcessHighPressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.ProcessHighPressure");
  442. ProcessLowPressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.ProcessLowPressure");
  443. ForelinePressure = CommonFunction.GetValue<float>(RtDataValues, $"{ModuleName}.ForelinePressure");
  444. TurboPumpRotationalSpeed = Convert.ToInt32(RtDataValues[$"{ModuleName}.TurboPumpRotationalSpeed"].ToString());
  445. MFCN2Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcN2");
  446. PendulumValveData = CommonFunction.GetValue<AITPendulumValveData>(RtDataValues, $"{ModuleName}.{VenusDevice.PendulumValve}.DeviceData");
  447. }
  448. private void addDataKeys()
  449. {
  450. m_RtDataKeys.Add($"{ModuleName}.FsmState");
  451. m_RtDataKeys.Add($"{ModuleName}.ValveLoadlockPumping.IsOpen");
  452. m_RtDataKeys.Add($"{ModuleName}.ValveLoadlockVent.IsOpen");
  453. m_RtDataKeys.Add($"{ModuleName}.PumpIsRunning");
  454. m_RtDataKeys.Add($"{ModuleName}.LoadLockPurge.PurgeCounter");
  455. m_RtDataKeys.Add($"{ModuleName}.IsSlitDoorClosed");
  456. m_RtDataKeys.Add($"{ModuleName}.LoadlockPressure");
  457. m_RtDataKeys.Add($"{ModuleName}.ForelinePressure");
  458. m_RtDataKeys.Add($"{ModuleName}.IsATMLoadlock");
  459. m_RtDataKeys.Add($"{ModuleName}.IsVACLoadlock");
  460. m_RtDataKeys.Add($"PMA.HasWafer");
  461. m_RtDataKeys.Add($"PMA.ModuleWaferList");
  462. m_RtDataKeys.Add($"LLA.HasWafer");
  463. m_RtDataKeys.Add($"LLA.ModuleWaferList");
  464. m_RtDataKeys.Add($"{ModuleName}.SensorSmallWaferInPos.Value");
  465. m_RtDataKeys.Add($"{ModuleName}.ValveSoftPump.IsOpen");
  466. m_RtDataKeys.Add($"{ModuleName}.ValveFastPump.IsOpen");
  467. m_RtDataKeys.Add($"{ModuleName}.ValveN2.IsOpen");
  468. m_RtDataKeys.Add($"{ModuleName}.ValvePVHe1.IsOpen");
  469. m_RtDataKeys.Add($"{ModuleName}.ValvePVHe2.IsOpen");
  470. m_RtDataKeys.Add($"{ModuleName}.ValveTurboPumpPumping.IsOpen");
  471. m_RtDataKeys.Add($"{ModuleName}.ValveTurboPumpPurge.IsOpen");
  472. m_RtDataKeys.Add($"{ModuleName}.ValveGuage.IsOpen");
  473. m_RtDataKeys.Add($"{ModuleName}.TurboPumpIsRunning");
  474. m_RtDataKeys.Add($"{ModuleName}.PumpIsRunning");
  475. m_RtDataKeys.Add($"{ModuleName}.IsATM");
  476. m_RtDataKeys.Add($"{ModuleName}.IsVAC");
  477. m_RtDataKeys.Add($"{ModuleName}.GetPVPosition");
  478. m_RtDataKeys.Add($"{ModuleName}.TurboPumpRotationalSpeed");
  479. m_RtDataKeys.Add($"{ModuleName}.MfcN2");
  480. m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.PendulumValve}.DeviceData");
  481. m_RtDataKeys.Add($"{ModuleName}.ProcessHighPressure");
  482. m_RtDataKeys.Add($"{ModuleName}.ProcessLowPressure");
  483. }
  484. #endregion
  485. }
  486. }