123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533 |
- using Aitex.Core.Common.DeviceData;
- using Aitex.Core.RT.SCCore;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.OperationCenter;
- using OpenSEMI.ClientBase.IO;
- using Prism.Commands;
- using Prism.Mvvm;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Threading;
- using Venus_Core;
- namespace Venus_MainPages.ViewModels
- {
- internal class OverViewModel : BindableBase
- {
- #region 私有字段
- private bool m_VN2Valve1IsOpen;
- private bool m_VN2Valve2IsOpen;
- private bool m_VN2Valve3IsOpen;
- private bool m_Gas1Valve1IsOpen;
- private bool m_Gas1Valve2IsOpen;
- private bool m_Gas1Valve3IsOpen;
- private bool m_Gas2Valve1IsOpen;
- private bool m_Gas2Valve2IsOpen;
- private bool m_Gas2Valve3IsOpen;
- private bool m_Gas3Valve1IsOpen;
- private bool m_Gas3Valve2IsOpen;
- private bool m_Gas3Valve3IsOpen;
- private bool m_Gas4Valve1IsOpen;
- private bool m_Gas4Valve2IsOpen;
- private bool m_Gas4Valve3IsOpen;
- private bool m_Gas5ValveIsOpen;
- private bool m_Gas6ValveIsOpen;
- private bool m_Gas7ValveIsOpen;
- private bool m_Gas8ValveIsOpen;
- private bool m_GasFinalValveIsOpen;
- private bool m_PurgeValveIsOpen;
- private bool m_SoftPumpValveIsOpen;
- private bool m_FastPumpValveIsOpen;
-
- private AITPumpData m_MainPumpData=new AITPumpData ();
- private bool m_PumpIsOpen;
- private bool m_IsATM;
- private bool m_IsVAC;
- private string ModuleName;
- private List<string> m_RtConfigKeys;
- private Dictionary<string, object> m_RtConfigValues;
- private List<string> m_RtDataKeys;
- private Dictionary<string, object> m_RtDataValues;
- //private ObservableCollection<IOItem<float>> m_RtAiValues;
- //private ObservableCollection<AOItem> m_RtAOs;
- //private string m_BasePressureSetPoint;
- //private string m_PumpLimitSetPoint;
- #endregion
- #region 属性
-
- public Dictionary<string, object> RtConfigValues
- {
- get { return m_RtConfigValues; }
- set { SetProperty(ref m_RtConfigValues, value); }
- }
- public Dictionary<string, object> RtDataValues
- {
- get { return m_RtDataValues; }
- set { SetProperty(ref m_RtDataValues, value); }
- }
- public bool GasFinalValveIsOpen
- {
- get { return m_GasFinalValveIsOpen; }
- set { SetProperty(ref m_GasFinalValveIsOpen, value); }
- }
- public bool VN2Valve1IsOpen
- {
- get { return m_VN2Valve1IsOpen; }
- set { SetProperty(ref m_VN2Valve1IsOpen, value); }
- }
- public bool VN2Valve2IsOpen
- {
- get { return m_VN2Valve2IsOpen; }
- set { SetProperty(ref m_VN2Valve2IsOpen, value); }
- }
- public bool VN2Valve3IsOpen
- {
- get { return m_VN2Valve3IsOpen; }
- set { SetProperty(ref m_VN2Valve3IsOpen, value); }
- }
- public bool Gas1Valve1IsOpen
- {
- get { return m_Gas1Valve1IsOpen; }
- set { SetProperty(ref m_Gas1Valve1IsOpen, value); }
- }
- public bool Gas1Valve2IsOpen
- {
- get { return m_Gas1Valve2IsOpen; }
- set { SetProperty(ref m_Gas1Valve2IsOpen, value); }
- }
- public bool Gas1Valve3IsOpen
- {
- get { return m_Gas1Valve3IsOpen; }
- set { SetProperty(ref m_Gas1Valve3IsOpen, value); }
- }
- public bool Gas2Valve1IsOpen
- {
- get { return m_Gas2Valve1IsOpen; }
- set { SetProperty(ref m_Gas2Valve1IsOpen, value); }
- }
- public bool Gas2Valve2IsOpen
- {
- get { return m_Gas2Valve2IsOpen; }
- set { SetProperty(ref m_Gas2Valve2IsOpen, value); }
- }
- public bool Gas2Valve3IsOpen
- {
- get { return m_Gas2Valve3IsOpen; }
- set { SetProperty(ref m_Gas2Valve3IsOpen, value); }
- }
- public bool Gas3Valve1IsOpen
- {
- get { return m_Gas3Valve1IsOpen; }
- set { SetProperty(ref m_Gas3Valve1IsOpen, value); }
- }
- public bool Gas3Valve2IsOpen
- {
- get { return m_Gas3Valve2IsOpen; }
- set { SetProperty(ref m_Gas3Valve2IsOpen, value); }
- }
- public bool Gas3Valve3IsOpen
- {
- get { return m_Gas3Valve3IsOpen; }
- set { SetProperty(ref m_Gas3Valve3IsOpen, value); }
- }
- public bool Gas4Valve1IsOpen
- {
- get { return m_Gas4Valve1IsOpen; }
- set { SetProperty(ref m_Gas4Valve1IsOpen, value); }
- }
- public bool Gas4Valve2IsOpen
- {
- get { return m_Gas4Valve2IsOpen; }
- set { SetProperty(ref m_Gas4Valve2IsOpen, value); }
- }
- public bool Gas4Valve3IsOpen
- {
- get { return m_Gas4Valve3IsOpen; }
- set { SetProperty(ref m_Gas4Valve3IsOpen, value); }
- }
- public bool Gas5ValveIsOpen
- {
- get { return m_Gas5ValveIsOpen; }
- set { SetProperty(ref m_Gas5ValveIsOpen, value); }
- }
- public bool Gas6ValveIsOpen
- {
- get { return m_Gas6ValveIsOpen; }
- set { SetProperty(ref m_Gas6ValveIsOpen, value); }
- }
- public bool Gas7ValveIsOpen
- {
- get { return m_Gas7ValveIsOpen; }
- set { SetProperty(ref m_Gas7ValveIsOpen, value); }
- }
- public bool Gas8ValveIsOpen
- {
- get { return m_Gas8ValveIsOpen; }
- set { SetProperty(ref m_Gas8ValveIsOpen, value); }
- }
- public bool PurgeValveIsOpen
- {
- get { return m_PurgeValveIsOpen; }
- set { SetProperty(ref m_PurgeValveIsOpen, value); }
- }
- public bool SoftPumpValveIsOpen
- {
- get { return m_SoftPumpValveIsOpen; }
- set { SetProperty(ref m_SoftPumpValveIsOpen, value); }
- }
- public bool FastPumpValveIsOpen
- {
- get { return m_FastPumpValveIsOpen; }
- set { SetProperty(ref m_FastPumpValveIsOpen, value); }
- }
- public AITPumpData MainPumpData
- {
- get { return m_MainPumpData; }
- set { SetProperty(ref m_MainPumpData, value); }
- }
- public bool PumpIsOpen
- {
- get { return m_PumpIsOpen; }
- set { SetProperty(ref m_PumpIsOpen, value); }
- }
- public bool IsATM
- {
- get { return m_IsATM; }
- set { SetProperty(ref m_IsATM, value); }
- }
- public bool IsVAC
- {
- get { return m_IsVAC; }
- set { SetProperty(ref m_IsVAC, value); }
- }
- public string BasePressureSetPoint
- {
- get { return RtConfigValues[$"{ModuleName}.Pump.PumpBasePressure"].ToString(); }
- }
- public string PumpLimitSetPoint
- {
- get { return RtConfigValues[$"{ModuleName}.Pump.PumpTimeLimit"].ToString(); }
- }
- #endregion
- #region 命令
- private DelegateCommand _PMInitCommnad;
- public DelegateCommand PMInitCommnad =>
- _PMInitCommnad ?? (_PMInitCommnad = new DelegateCommand(OnPMInit));
- private DelegateCommand _GasCommand;
- public DelegateCommand GasCommand =>
- _GasCommand ?? (_GasCommand = new DelegateCommand(OnGas));
- private DelegateCommand _RfCommand;
- public DelegateCommand RfCommand =>
- _RfCommand ?? (_RfCommand = new DelegateCommand(OnRf));
- private DelegateCommand _PurgeCommand;
- public DelegateCommand PurgeCommand =>
- _PurgeCommand ?? (_PurgeCommand = new DelegateCommand(OnPurge));
- private DelegateCommand _VentCommand;
- public DelegateCommand VentCommand =>
- _VentCommand ?? (_VentCommand = new DelegateCommand(OnVent));
- private DelegateCommand _PumpCommand;
- public DelegateCommand PumpCommand =>
- _PumpCommand ?? (_PumpCommand = new DelegateCommand(OnPump));
- private DelegateCommand _OpenPumpCommand;
- public DelegateCommand OpenPumpCommand =>
- _OpenPumpCommand ?? (_OpenPumpCommand = new DelegateCommand(OnOpenPump));
- #endregion
- #region 构造函数
- public OverViewModel()
- {
- m_RtConfigKeys=new List<string>();
- m_RtDataKeys = new List<string>();
-
- m_IsATM = true;
- ModuleName = "PMA";
- addConfigKeys();
- addDataKeys();
- DispatcherTimer timer = new DispatcherTimer();
- timer.Interval = TimeSpan.FromSeconds(1);
- timer.Tick += timer_Tick;
- timer.Start();
- //GetRtAllData getRtAllData = new GetRtAllData();
- }
- void timer_Tick(object sender, EventArgs e)
- {
- RtConfigValues = QueryDataClient.Instance.Service.PollConfig(m_RtConfigKeys);
- RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
- }
- #endregion
- #region 命令方法
- private void OnPMInit()
- {
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Home");
- }
- private void OnGas()
- {
- //closeAllValve();
- //Task.Run(() =>
- //{
- // //System.Threading.Thread.Sleep(100);
- // VN2Valve1IsOpen = true;
- // VN2Valve2IsOpen = true;
- // VN2Valve3IsOpen = true;
- // GasFinalValveIsOpen = true;
- // Gas1Valve1IsOpen = true;
- // Gas1Valve2IsOpen = true;
- // Gas1Valve3IsOpen = true;
- // Gas2Valve1IsOpen = true;
- // Gas2Valve2IsOpen = true;
- // Gas2Valve3IsOpen = true;
- // Gas3Valve1IsOpen = true;
- // Gas3Valve2IsOpen = true;
- // Gas3Valve3IsOpen = true;
- // Gas4Valve1IsOpen = true;
- // Gas4Valve2IsOpen = true;
- // Gas4Valve3IsOpen = true;
- // Gas5ValveIsOpen = true;
- // Gas6ValveIsOpen = true;
- // Gas7ValveIsOpen = true;
- // Gas8ValveIsOpen = true;
- //});
- object[] mfc = new object[8];
- //string[] mfcSetPoint = new string[8];
- for (int index = 0; index < mfc.Length; index++)
- {
- //mfcSetPoint[index] = PMParameters.Find(x => x.Name == $"{SystemName}.IoMfc.MfcGas{index + 1}.FeedBack").Setpoint;
- //if (string.IsNullOrWhiteSpace(mfcSetPoint[index]))
- //{
- // DialogBox.ShowError("请输入气体流量值");
- // return;
- //}
- //mfcSetPoint[index]=
- //mfc[index] = Convert.ToDouble(string.IsNullOrEmpty(mfcSetPoint[index]) ? "0.0" : mfcSetPoint[index]);
- //QueryDataClient.Instance.Service.GetConfig()
- }
- }
- private void OnRf()
- {
- //closeAllValve();
- //IsATM = !IsATM;
- if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "RfPowering")
- {
- //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
- return;
- }
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RfPower}");
- }
- private void OnPurge()
- {
- //closeAllValve();
- //Task.Run(() =>
- //{
- //PurgeValveIsOpen = true;
- //});
- if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "Purge")
- {
- //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopPurge");
- }
- else
- {
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Purge");
- }
- }
- private void OnVent()
- {
- //closeAllValve();
- //Task.Run(() =>
- //{
- // //System.Threading.Thread.Sleep(100);
- // VN2Valve2IsOpen = true;
- // VN2Valve3IsOpen = true;
- // GasFinalValveIsOpen = true;
- //});
- if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "Venting")
- {
- //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopPurge");
- }
- else
- {
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Vent");
- }
- }
- private void OnPump()
- {
- //if (PumpIsOpen == true)
- //{
- // FastPumpValveIsOpen = true;
- //}
- //if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "LaunchingPump")
- //{
- //}
- if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "Pumping")
- {
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
- return;
- }
- if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "IsPumpingOkForProcess")
- {
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopPump");
- return;
- }
- // 设置底压
- double basePressure = string.IsNullOrEmpty(BasePressureSetPoint) ? 0 : Convert.ToDouble(BasePressureSetPoint);
- if (basePressure <= 0.01 || basePressure >= 1000)
- {
- MessageBox.Show($"基准压力设定值 {basePressure} 无效,应该在0到1000毫托之间");
- return;
- }
- double pumpLimit = string.IsNullOrEmpty(PumpLimitSetPoint) ? 0 : Convert.ToDouble(PumpLimitSetPoint);
- if (pumpLimit <= 0.01 || pumpLimit >= 1200)
- {
- MessageBox.Show($"抽气时间应该在0到1200之间,当前设定值{pumpLimit}");
- return;
- }
- InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"{ModuleName}.Pump.PumpBasePressure", basePressure.ToString());
- InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"{ModuleName}.Pump.PumpTimeLimit", pumpLimit.ToString());
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Pump");
- }
- private void OnOpenPump()
- {
- PumpIsOpen = true;
- if (RtDataValues[$"{ModuleName}.FsmState"].ToString()== "LaunchingPump")
- {
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}");
- return;
- }
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartPump");
- InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartTurboPump");
- }
- #endregion
- #region 私有方法
- private void addConfigKeys()
- {
- m_RtConfigKeys.Add($"{ModuleName}.MfcGas1.GasName");
- m_RtConfigKeys.Add($"{ModuleName}.MfcGas2.GasName");
- m_RtConfigKeys.Add($"{ModuleName}.MfcGas3.GasName");
- m_RtConfigKeys.Add($"{ModuleName}.MfcGas4.GasName");
- m_RtConfigKeys.Add($"{ModuleName}.MfcGas5.GasName");
- m_RtConfigKeys.Add($"{ModuleName}.MfcGas6.GasName");
- m_RtConfigKeys.Add($"{ModuleName}.MfcGas7.GasName");
- m_RtConfigKeys.Add($"{ModuleName}.MfcGas8.GasName");
- m_RtConfigKeys.Add($"{ModuleName}.Pump.PumpBasePressure");
- m_RtConfigKeys.Add($"{ModuleName}.Pump.PumpTimeLimit");
- }
- private void addDataKeys()
- {
- m_RtDataKeys.Add($"{ModuleName}.FsmState");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas1.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas2.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas3.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas4.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas5.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas6.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas7.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas8.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas1.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas2.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas3.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas4.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas5.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas6.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas7.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.MfcGas8.FeedBack");
- m_RtDataKeys.Add($"{ModuleName}.ForelinePressure");
- m_RtDataKeys.Add($"{ModuleName}.ProcessPressure");
- m_RtDataKeys.Add($"{ModuleName}.ChamberPressure");
- m_RtDataKeys.Add($"{ModuleName}.IsATM");
- m_RtDataKeys.Add($"{ModuleName}.IsVAC");
- m_RtDataKeys.Add($"{ModuleName}.LiftPinIsUp");
- m_RtDataKeys.Add($"{ModuleName}.LiftPinIsDown");
- //m_RtDataKeys.Add($"{ModuleName}.Pump.PumpBasePressure");
- //m_RtDataKeys.Add($"{ModuleName}.Pump.PumpTimeLimit");
- }
- private void closeAllValve()
- {
- if (VN2Valve1IsOpen == true) VN2Valve1IsOpen = false;
- if (VN2Valve2IsOpen == true) VN2Valve2IsOpen = false;
- if (VN2Valve3IsOpen == true) VN2Valve3IsOpen = false;
- if (GasFinalValveIsOpen == true) GasFinalValveIsOpen = false;
- if (Gas1Valve1IsOpen == true) Gas1Valve1IsOpen = false;
- if (Gas1Valve2IsOpen == true) Gas1Valve2IsOpen = false;
- if (Gas1Valve3IsOpen == true) Gas1Valve3IsOpen = false;
- if (Gas2Valve1IsOpen == true) Gas2Valve1IsOpen = false;
- if (Gas2Valve2IsOpen == true) Gas2Valve2IsOpen = false;
- if (Gas2Valve3IsOpen == true) Gas2Valve3IsOpen = false;
- if (Gas3Valve1IsOpen == true) Gas3Valve1IsOpen = false;
- if (Gas3Valve2IsOpen == true) Gas3Valve2IsOpen = false;
- if (Gas3Valve3IsOpen == true) Gas3Valve3IsOpen = false;
- if (Gas4Valve1IsOpen == true) Gas4Valve1IsOpen = false;
- if (Gas4Valve2IsOpen == true) Gas4Valve2IsOpen = false;
- if (Gas4Valve3IsOpen == true) Gas4Valve3IsOpen = false;
- if (Gas5ValveIsOpen == true) Gas5ValveIsOpen = false;
- if (Gas6ValveIsOpen == true) Gas6ValveIsOpen = false;
- if (Gas7ValveIsOpen == true) Gas7ValveIsOpen = false;
- if (Gas8ValveIsOpen == true) Gas8ValveIsOpen = false;
- }
- #endregion
- }
- }
|