using Aitex.Core.Util; using MECF.Framework.Common.DataCenter; using MECF.Framework.Common.OperationCenter; using OpenSEMI.ClientBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using VirgoUI.Client.Models.Sys; namespace VirgoUI.Client.Models.PMs { public class PMPIDViewModel : ModuleUiViewModelBase, ISupportMultipleSystem { #region CHB Wall public float CHBTemperatureSetpoint { get; set; } public void CHBSetHeaterOn() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Wall_Heater_On", true); } public void CHBSetHeaterOff() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Wall_Heater_On", false); } public void CHBSetTemperature(object oj) { InvokeClient.Instance.Service.DoOperation("System.SetAoValue32", $"{SystemName.Split('.')[1]}.AO_CHB_Wall_Temperature_Setpoint", CHBTemperatureSetpoint); } public void CHBHeatPIDATStop() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Star", false); InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Stop", true); } public void CHBHeatPIDATStart() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Stop", false); InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Star", true); } [Subscription("DI_CHB_Wall_Heater_On_FB")] public bool CHBHeaterOn { get; set; } [Subscription("DI_CHB_Heat_PID_AT_Running")] public bool CHBHeaterPIDATRunning { get; set; } [Subscription("DI_CHB_Heat_PID_AT_Finished")] public bool CHBHeaterPIDATFinished { get; set; } private bool _CHBHeaterPIDATStarFB; [Subscription("DI_CHB_Heat_PID_AT_Star_Fb")] public bool CHBHeaterPIDATStarFB { get { return _CHBHeaterPIDATStarFB; } set { _CHBHeaterPIDATStarFB = value; if (value) { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Star", false); } } } private bool _CHBHeaterPIDATStopFB; [Subscription("DI_CHB_Heat_PID_AT_Stop_Fb")] public bool CHBHeaterPIDATStopFB { get { return _CHBHeaterPIDATStopFB; } set { _CHBHeaterPIDATStopFB = value; if (value) { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_CHB_Heat_PID_AT_Stop", false); } } } public float CHBControlTCTemp { get { return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_CHB_Wall_Control_TC_Temp"); } } public float CHBMonitorTCTemp { get { return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_CHB_Wall_Monitor_TC_Temp"); } } #endregion #region Foreline public float ForelineTemperatureSetpoint { get; set; } public void ForelineSetHeaterOn() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Forline_Heater_On", true); } public void ForelineSetHeaterOff() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Forline_Heater_On", false); } public void ForelineSetTemperature(object oj) { InvokeClient.Instance.Service.DoOperation("System.SetAoValue32", $"{SystemName.Split('.')[1]}.AO_Foreline_Temperature_Setpoint", ForelineTemperatureSetpoint); } public void ForelineHeatPIDATStop() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Star", false); InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Stop", true); } public void ForelineHeatPIDATStart() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Stop", false); InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Star", true); } [Subscription("DI_Foreline_Heater_On_FB")] public bool ForelineHeaterOn { get; set; } [Subscription("DI_Foreline_Heat_PID_AT_Running")] public bool ForelineHeaterPIDATRunning { get; set; } [Subscription("DI_Foreline_Heat_PID_AT_Finished")] public bool ForelineHeaterPIDATFinished { get; set; } private bool _forelineHeaterPIDATStarFB; [Subscription("DI_Foreline_Heat_PID_AT_Star_FB")] public bool ForelineHeaterPIDATStarFB { get { return _forelineHeaterPIDATStarFB; } set { _forelineHeaterPIDATStarFB = value; if (value) { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Star", false); } } } private bool _forelineHeaterPIDATStopFB; [Subscription("DI_Foreline_Heat_PID_AT_Stop_FB")] public bool ForelineHeaterPIDATStopFB { get { return _forelineHeaterPIDATStopFB; } set { _forelineHeaterPIDATStopFB = value; if (value) { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Foreline_Heat_PID_AT_Stop", false); } } } public float ForelineControlTCTemp { get { return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_Foreline_Control_TC_Temp"); } } public float ForelineMonitorTCTemp { get { return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_Foreline_Monitor_TC_Temp"); } } #endregion #region 1_LE public float LE1TemperatureSetpoint { get; set; } public void LE1SetHeaterOn() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heater_On", true); } public void LE1SetHeaterOff() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heater_On", false); } public void LE1SetTemperature(object oj) { InvokeClient.Instance.Service.DoOperation("System.SetAoValue32", $"{SystemName.Split('.')[1]}.AO_Substrate_Temperature_Setpoint", LE1TemperatureSetpoint); } public void LE1HeatPIDATStop() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Star", false); InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Stop", true); } public void LE1HeatPIDATStart() { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Stop", false); InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Star", true); } [Subscription("DI_Substrate_Heater_On_FB")] public bool LE1HeaterOn { get; set; } [Subscription("DI_Substrate_Heat_PID_AT_Running")] public bool LE1HeaterPIDATRunning { get; set; } [Subscription("DI_Substrate_Heat_PID_AT_Finished")] public bool LE1HeaterPIDATFinished { get; set; } private bool _substrateHeaterPIDATStarFB; [Subscription("DI_Substrate_Heat_PID_AT_Star_FB")] public bool SubstrateHeaterPIDATStarFB { get { return _substrateHeaterPIDATStarFB; } set { _substrateHeaterPIDATStarFB = value; if (value) { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Star", false); } } } private bool _substrateHeaterPIDATStopFB; [Subscription("DI_Substrate_Heat_PID_AT_Stop_FB")] public bool SubstrateHeaterPIDATStopFB { get { return _substrateHeaterPIDATStopFB; } set { _substrateHeaterPIDATStopFB = value; if (value) { InvokeClient.Instance.Service.DoOperation("System.SetDoValue", $"{SystemName.Split('.')[1]}.DO_Substrate_Heat_PID_AT_Stop", false); } } } public float LE1ControlTCTemp { get { return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_Substrate_Control_TC_Temp"); } } public float LE1MonitorTCTemp { get { return (float)QueryDataClient.Instance.Service.GetData($"IO32.{SystemName.Split('.')[1]}.AI_Substrate_Monitor_TC_Temp"); } } #endregion } }