PMPIDViewModel.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. using Aitex.Core.Util;
  2. using MECF.Framework.Common.DataCenter;
  3. using MECF.Framework.Common.OperationCenter;
  4. using OpenSEMI.ClientBase;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using VirgoUI.Client.Models.Sys;
  11. namespace VirgoUI.Client.Models.PMs
  12. {
  13. public class PMPIDViewModel : ModuleUiViewModelBase, ISupportMultipleSystem
  14. {
  15. #region CHB Wall
  16. public float CHBTemperatureSetpoint { get; set; }
  17. public void CHBSetHeaterOn()
  18. {
  19. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Wall_Heater_On", true);
  20. }
  21. public void CHBSetHeaterOff()
  22. {
  23. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Wall_Heater_On", false);
  24. }
  25. public void CHBSetTemperature(object oj)
  26. {
  27. InvokeClient.Instance.Service.DoOperation("System.SetAoValue32", $"{SystemName.Split('.')[1]}.AO_CHB_Wall_Temperature_Setpoint", CHBTemperatureSetpoint);
  28. }
  29. public void CHBHeatPIDATStop()
  30. {
  31. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Star", false);
  32. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Stop", true);
  33. }
  34. public void CHBHeatPIDATStart()
  35. {
  36. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Stop", false);
  37. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Star", true);
  38. }
  39. [Subscription("DI_CHB_Wall_Heater_On_FB")]
  40. public bool CHBHeaterOn { get; set; }
  41. [Subscription("DI_CHB_Heat_PID_AT_Running")]
  42. public bool CHBHeaterPIDATRunning { get; set; }
  43. [Subscription("DI_CHB_Heat_PID_AT_Finished")]
  44. public bool CHBHeaterPIDATFinished { get; set; }
  45. private bool _CHBHeaterPIDATStarFB;
  46. [Subscription("DI_CHB_Heat_PID_AT_Star_Fb")]
  47. public bool CHBHeaterPIDATStarFB
  48. {
  49. get
  50. {
  51. return _CHBHeaterPIDATStarFB;
  52. }
  53. set
  54. {
  55. _CHBHeaterPIDATStarFB = value;
  56. if (value)
  57. {
  58. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Star", false);
  59. }
  60. }
  61. }
  62. private bool _CHBHeaterPIDATStopFB;
  63. [Subscription("DI_CHB_Heat_PID_AT_Stop_Fb")]
  64. public bool CHBHeaterPIDATStopFB
  65. {
  66. get
  67. {
  68. return _CHBHeaterPIDATStopFB;
  69. }
  70. set
  71. {
  72. _CHBHeaterPIDATStopFB = value;
  73. if (value)
  74. {
  75. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Stop", false);
  76. }
  77. }
  78. }
  79. public float CHBControlTCTemp
  80. {
  81. get
  82. {
  83. return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_CHB_Wall_Control_TC_Temp");
  84. }
  85. }
  86. public float CHBMonitorTCTemp
  87. {
  88. get
  89. {
  90. return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_CHB_Wall_Monitor_TC_Temp");
  91. }
  92. }
  93. #endregion
  94. #region Foreline
  95. public float ForelineTemperatureSetpoint { get; set; }
  96. public void ForelineSetHeaterOn()
  97. {
  98. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Forline_Heater_On", true);
  99. }
  100. public void ForelineSetHeaterOff()
  101. {
  102. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Forline_Heater_On", false);
  103. }
  104. public void ForelineSetTemperature(object oj)
  105. {
  106. InvokeClient.Instance.Service.DoOperation("System.SetAoValue32", $"{SystemName.Split('.')[1]}.AO_Foreline_Temperature_Setpoint", ForelineTemperatureSetpoint);
  107. }
  108. public void ForelineHeatPIDATStop()
  109. {
  110. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Star", false);
  111. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Stop", true);
  112. }
  113. public void ForelineHeatPIDATStart()
  114. {
  115. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Stop", false);
  116. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Star", true);
  117. }
  118. [Subscription("DI_Foreline_Heater_On_FB")]
  119. public bool ForelineHeaterOn { get; set; }
  120. [Subscription("DI_Foreline_Heat_PID_AT_Running")]
  121. public bool ForelineHeaterPIDATRunning { get; set; }
  122. [Subscription("DI_Foreline_Heat_PID_AT_Finished")]
  123. public bool ForelineHeaterPIDATFinished { get; set; }
  124. private bool _forelineHeaterPIDATStarFB;
  125. [Subscription("DI_Foreline_Heat_PID_AT_Star_FB")]
  126. public bool ForelineHeaterPIDATStarFB
  127. {
  128. get
  129. {
  130. return _forelineHeaterPIDATStarFB;
  131. }
  132. set
  133. {
  134. _forelineHeaterPIDATStarFB = value;
  135. if (value)
  136. {
  137. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Star", false);
  138. }
  139. }
  140. }
  141. private bool _forelineHeaterPIDATStopFB;
  142. [Subscription("DI_Foreline_Heat_PID_AT_Stop_FB")]
  143. public bool ForelineHeaterPIDATStopFB
  144. {
  145. get
  146. {
  147. return _forelineHeaterPIDATStopFB;
  148. }
  149. set
  150. {
  151. _forelineHeaterPIDATStopFB = value;
  152. if (value)
  153. {
  154. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Stop", false);
  155. }
  156. }
  157. }
  158. public float ForelineControlTCTemp
  159. {
  160. get
  161. {
  162. return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_Foreline_Control_TC_Temp");
  163. }
  164. }
  165. public float ForelineMonitorTCTemp
  166. {
  167. get
  168. {
  169. return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_Foreline_Monitor_TC_Temp");
  170. }
  171. }
  172. #endregion
  173. #region 1_LE
  174. public float LE1TemperatureSetpoint { get; set; }
  175. public void LE1SetHeaterOn()
  176. {
  177. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heater_On", true);
  178. }
  179. public void LE1SetHeaterOff()
  180. {
  181. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heater_On", false);
  182. }
  183. public void LE1SetTemperature(object oj)
  184. {
  185. InvokeClient.Instance.Service.DoOperation("System.SetAoValue32", $"{SystemName.Split('.')[1]}.AO_Substrate_Temperature_Setpoint", LE1TemperatureSetpoint);
  186. }
  187. public void LE1HeatPIDATStop()
  188. {
  189. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Star", false);
  190. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Stop", true);
  191. }
  192. public void LE1HeatPIDATStart()
  193. {
  194. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Stop", false);
  195. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Star", true);
  196. }
  197. [Subscription("DI_Substrate_Heater_On_FB")]
  198. public bool LE1HeaterOn { get; set; }
  199. [Subscription("DI_Substrate_Heat_PID_AT_Running")]
  200. public bool LE1HeaterPIDATRunning { get; set; }
  201. [Subscription("DI_Substrate_Heat_PID_AT_Finished")]
  202. public bool LE1HeaterPIDATFinished { get; set; }
  203. private bool _substrateHeaterPIDATStarFB;
  204. [Subscription("DI_Substrate_Heat_PID_AT_Star_FB")]
  205. public bool SubstrateHeaterPIDATStarFB
  206. {
  207. get
  208. {
  209. return _substrateHeaterPIDATStarFB;
  210. }
  211. set
  212. {
  213. _substrateHeaterPIDATStarFB = value;
  214. if (value)
  215. {
  216. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Star", false);
  217. }
  218. }
  219. }
  220. private bool _substrateHeaterPIDATStopFB;
  221. [Subscription("DI_Substrate_Heat_PID_AT_Stop_FB")]
  222. public bool SubstrateHeaterPIDATStopFB
  223. {
  224. get
  225. {
  226. return _substrateHeaterPIDATStopFB;
  227. }
  228. set
  229. {
  230. _substrateHeaterPIDATStopFB = value;
  231. if (value)
  232. {
  233. InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Stop", false);
  234. }
  235. }
  236. }
  237. public float LE1ControlTCTemp
  238. {
  239. get
  240. {
  241. return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_Substrate_Control_TC_Temp");
  242. }
  243. }
  244. public float LE1MonitorTCTemp
  245. {
  246. get
  247. {
  248. return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_Substrate_Monitor_TC_Temp");
  249. }
  250. }
  251. #endregion
  252. }
  253. }