Browse Source

1. revise vpw total flow Monitor
2.add facility view releated

chenzk 1 day ago
parent
commit
9139d8f851

+ 152 - 186
PunkHPX8_MainPages/ViewModels/SystemFacilitiesViewModel.cs

@@ -39,23 +39,21 @@ namespace PunkHPX8_MainPages.ViewModels
         private const string EXTERNAL_CDA_ENABLE = "ExternalCDAEnable";
         private const string DI_WATER_ENABLE = "DiWaterEnable";
         private const string HOUSE_CHILLED_WATER_ENABLE="HouseChilledWaterEnable";
+        private const string VPW_DI_ENABLE = "VpwDiEnable";
         private const string DI_REPLEN_ENABLE = "DiReplenEnable";
         private const string DI_FILL_ENABLE = "DiFillEnable";
-        private const string LOADER_DI_ENABLE = "LoaderDiEnable";
+        private const string SRD_DI_ENABLE = "SrdDiEnable";
+        private const string SAMPLE_STATION_ENABLE = "SampleStationEnable";
         private const string FILTER_PURGE_ENABLE = "FilterPurgeEnable";
         private const string N2_BLANKET_PRESSURE_VALUE = "N2BlanketPressure";
-        private const string SAMPLE_ENABLE = "SampleEnable";
-        private const string SAMPLE_FLOW_1_ENABLE = "SampleFlow1Enable";
-        private const string SAMPLE_FLOW_2_ENABLE = "SampleFlow2Enable";
-        private const string SAMPLE_FLOW_3_ENABLE = "SampleFlow3Enable";
-        private const string SAMPLE_FLOW_4_ENABLE = "SampleFlow4Enable";
-        private const string FFU_LOADER_ERROR = "FFULoaderError";
-        private const string FFU_PROCESS_ERROR = "FFUProcessError";
-        private const string FFU_LOADER_PRESSURE = "FFULoaderPressure";
-        private const string FFU_PROCESS_PRESSURE = "FFUProcessPressure";
-        private const string ARS_FLUID_DETECT = "ArsFluidDetect";
-        private const string PROCESS_FLUID_DETECT= "ProcessFluidDetect";
-        private const string SAMPLE_FLUID_DETECT = "SampleFluidDetect";
+        private const string N2_OVERFLOW_PRESSURE_VALUE = "N2OverflowPressure";
+        private const string CLAMSHELL_CYLINDER_PRESSURE_VALUE = "ClamshellCylinderPressure";
+        private const string TILT_CYLINDER_PRESSURE_VALUE = "TiltCylinderPressure";
+        private const string FFU_PLATECELL_PRESSURE_ERROR = "FFUPlateCellPressureError";
+        private const string FFU_CORRIDOR_PRESSURE_ERROR = "FFUCorridorPressureError";
+        private const string FFU_PLATECELL_PRESSURE_PRESSURE = "FFUPlateCellPressure";
+        private const string FFU_CORRIDOR_PRESSURE = "FFUCorridorPressure";
+
         #endregion
 
         #region 内部变量
@@ -63,39 +61,37 @@ namespace PunkHPX8_MainPages.ViewModels
         private CommonLimitData _nitrogen1BData = new CommonLimitData();
         private CommonLimitData _nitrogen2AData = new CommonLimitData();
         private CommonLimitData _nitrogen2BData = new CommonLimitData();
-        private CommonLimitData _vacuumData = new CommonLimitData();
         private CommonLimitData _cda1Data = new CommonLimitData();
         private CommonLimitData _cda2Data = new CommonLimitData();
         private CommonLimitData _extendCdaData = new CommonLimitData();
-        private CommonLimitData _exhaustData = new CommonLimitData();
+        private CommonLimitData _systemVacuumData = new CommonLimitData();
+        private CommonLimitData _systemExhaustData1 = new CommonLimitData();
+        private CommonLimitData _systemExhaustData2 = new CommonLimitData();
         private CommonLimitData _diWaterPressureData = new CommonLimitData();
+        private CommonLimitData _diWaterReturnFlowData = new CommonLimitData();
         private CommonLimitData _houseChilledWaterFlowData = new CommonLimitData();
         private bool _nitrogenOn;
         private bool _cdaOn;
         private bool _extendCdaOn;
         private bool _diWaterPressureOn;
         private bool _houseChilledWaterFlowOn;
+        private bool _vpwDiWEnable;
         private bool _diFillEnable;
         private bool _diReplenEnable;
-        private bool _loaderDiEnable;
-        private bool _slipstreamEnable;
+        private bool _srdDiWEnable;
+        private bool _sampleStationEnable;
         private bool _filterPurgeEnable;
+        private bool _plateCellFFUPressureError;
+        private bool _corridorFFUPressureError;
+
         private double _n2BlanketPressure;
-        private int _allStatus;
-        private bool _processFluidDetect;
-        private bool _sampleFluidDetect;
-        private bool _arsFluidDetect;
-        private bool _crsWashBoxFluidDetect;
-        private bool _processFFUError;
-        private bool _loaderFFUError;
-        private double _processFFUPressure;
-        private double _loaderFFUPressure;
-        private bool _sampleEnable;
-        private bool _sampleFlow1Enable;
-        private bool _sampleFlow2Enable;
-        private bool _sampleFlow3Enable;
-        private bool _sampleFlow4Enable;
-        private bool _startEnable;
+        private double _n2OverflowPressure;
+        private double _clamshellCylinderPressure;
+        private double _tiltCylinderPressure;
+        
+        private double _plateCellFFUPressure;
+        private double _corridorFFUPressure;
+
         /// <summary>
         /// 定时器
         /// </summary>
@@ -111,16 +107,11 @@ namespace PunkHPX8_MainPages.ViewModels
         private Dictionary<string, object> _rtDataValueDic = new Dictionary<string, object>();
 
         #region Home
-        private bool _homeAllOn;
-        private bool _homeLoaderTransporterOn;
-        private bool _homeEfemOn;
-        private bool _homeProcessTransporterOn;
-        private bool _homeLoaderOn;
-        private bool _homePufOn;
-        private bool _homeSrdOn;
+
         #endregion
 
         #endregion
+        
         #region 属性
 
         public CommonLimitData Nitrogen1AData{ get { return _nitrogen1AData; } set { SetProperty(ref _nitrogen1AData, value); } }
@@ -130,7 +121,7 @@ namespace PunkHPX8_MainPages.ViewModels
         public CommonLimitData Nitrogen2AData { get { return _nitrogen2AData; } set { SetProperty(ref _nitrogen2AData, value); } }
         public CommonLimitData Nitrogen2BData { get { return _nitrogen2BData; } set { SetProperty(ref _nitrogen2BData, value); } }
 
-        public CommonLimitData VacuumData { get { return _vacuumData; } set { SetProperty(ref _vacuumData, value); } }
+        public CommonLimitData SystemVacuumData { get { return _systemVacuumData; } set { SetProperty(ref _systemVacuumData, value); } }
 
         public CommonLimitData Cda1Data { get { return _cda1Data; }set { SetProperty(ref _cda1Data, value); } }
 
@@ -138,9 +129,13 @@ namespace PunkHPX8_MainPages.ViewModels
 
         public CommonLimitData ExtendCdaData{ get { return _extendCdaData; } set { SetProperty(ref _extendCdaData, value); }}
 
-        public CommonLimitData ExhaustData{ get { return _exhaustData; } set { SetProperty(ref _exhaustData, value); } }
+        public CommonLimitData SystemExhaustData1 { get { return _systemExhaustData1; } set { SetProperty(ref _systemExhaustData1, value); } }
+        
+        public CommonLimitData SystemExhaustData2 { get { return _systemExhaustData2; } set { SetProperty(ref _systemExhaustData2, value); } }
 
         public CommonLimitData DiWaterPressureData { get { return _diWaterPressureData; } set { SetProperty(ref _diWaterPressureData, value); }}
+        
+        public CommonLimitData DiWaterReturnFlowData { get { return _diWaterReturnFlowData; } set { SetProperty(ref _diWaterReturnFlowData, value); }}
 
         public CommonLimitData HouseChilledWaterFlowData{ get { return _houseChilledWaterFlowData; } set { SetProperty(ref _houseChilledWaterFlowData, value); }}
 
@@ -154,81 +149,44 @@ namespace PunkHPX8_MainPages.ViewModels
 
         public bool HouseChilledWaterFlowOn { get { return _houseChilledWaterFlowOn; } set { SetProperty(ref _houseChilledWaterFlowOn, value); } }
 
+        public bool VpwDiWEnable { get { return _vpwDiWEnable; } set { SetProperty(ref _vpwDiWEnable, value); } }
+        
         public bool DiFillEnable{ get { return _diFillEnable; } set { SetProperty(ref _diFillEnable, value); }}
 
         public bool DiReplenEnable{get { return _diReplenEnable; }set { SetProperty(ref _diReplenEnable, value); } }
 
-        public bool LoaderDiEnable{ get { return _loaderDiEnable; } set { SetProperty(ref _loaderDiEnable, value); }}
+        public bool SrdDiWEnable { get { return _srdDiWEnable; } set { SetProperty(ref _srdDiWEnable, value); } }
 
-        public bool SlipstreamEnable { get { return _slipstreamEnable; } set { SetProperty(ref _slipstreamEnable, value); }}
+        public bool SampleStationEnable { get { return _sampleStationEnable; } set { SetProperty(ref _sampleStationEnable, value); } }
 
         public bool FilterPurgeEnable{ get { return _filterPurgeEnable; } set { SetProperty(ref _filterPurgeEnable, value);} }
 
-        public double N2BlanketPressure{ get { return _n2BlanketPressure; } set { SetProperty(ref _n2BlanketPressure, value); }}
-
-        public int AllStatus { get { return _allStatus; } set { SetProperty(ref _allStatus, value); } }
-
-        #region Fluid Detect
-
-        public bool ProcessFluidDetect { get { return _processFluidDetect; } set { SetProperty(ref _processFluidDetect, value); }}
-
-        public bool SampleFluidDetect { get { return _sampleFluidDetect; } set { SetProperty(ref _sampleFluidDetect, value); } }
+        
+        public double N2BlanketPressure { get { return _n2BlanketPressure; } set { SetProperty(ref _n2BlanketPressure, value); } }
+        
+        public double N2OverflowPressure { get { return _n2OverflowPressure; } set { SetProperty(ref _n2OverflowPressure, value); } }
+        
+        public double ClamshellCylinderPressure { get { return _clamshellCylinderPressure; } set { SetProperty(ref _clamshellCylinderPressure, value); } }
+        
+        public double TiltCylinderPressure { get { return _tiltCylinderPressure; } set { SetProperty(ref _tiltCylinderPressure, value); } }
 
-        public bool ArsFluidDetect{ get { return _arsFluidDetect; } set { SetProperty(ref _arsFluidDetect, value); }}
-
-        public bool CRSWashBoxFluidDetect { get { return _crsWashBoxFluidDetect; } set { SetProperty(ref _crsWashBoxFluidDetect, value); } }
-        #endregion
 
         #region FFU
-        public bool ProcessFFUError { get { return _processFFUError; } set { SetProperty(ref _processFFUError, value); } }
+        public bool PlateCellFFUPressureError { get { return _plateCellFFUPressureError; } set { SetProperty(ref _plateCellFFUPressureError, value); } }
 
-        public bool LoaderFFUError { get { return _loaderFFUError; } set { SetProperty(ref _loaderFFUError, value); } }
+        public bool CorridorFFUPressureError { get { return _corridorFFUPressureError; } set { SetProperty(ref _corridorFFUPressureError, value); } }
 
-        public double ProcessFFUPressure { get { return _processFFUPressure; } set { SetProperty(ref _processFFUPressure, value); } }
+        public double PlateCellFFUPressure { get { return _plateCellFFUPressure; } set { SetProperty(ref _plateCellFFUPressure, value); } }
 
-        public double LoaderFFUPressure { get { return _loaderFFUPressure; } set { SetProperty(ref _loaderFFUPressure, value); } }  
+        public double CorridorFFUPressure { get { return _corridorFFUPressure; } set { SetProperty(ref _corridorFFUPressure, value); } }  
         #endregion
 
-        #region Home
-        public bool HomeAllOn { get { return _homeAllOn; } set { SetProperty(ref _homeAllOn, value); } }
-
-        public bool HomeLoaderTransporterOn { get { return _homeLoaderTransporterOn; } set { SetProperty(ref _homeLoaderTransporterOn, value); }}
-
-        public bool HomeEfemOn { get { return _homeEfemOn; } set { SetProperty(ref _homeEfemOn, value); }}
-
-
-        public bool HomeProcessTransporterOn{ get { return _homeProcessTransporterOn; } set { SetProperty(ref _homeProcessTransporterOn, value); } }
-
-        public bool HomeLoaderOn { get { return _homeLoaderOn; } set { SetProperty(ref _homeLoaderOn, value); }}
-
-        public bool HomePufOn { get { return _homePufOn; } set { SetProperty(ref _homePufOn, value); }}
-
-        public bool HomeSrdOn { get { return _homeSrdOn; } set { SetProperty(ref _homeSrdOn, value); } }
-        #endregion
-
-        public bool SampleEnable { get { return _sampleEnable; } set { SetProperty(ref _sampleEnable, value); } }
-
-        public bool SampleFlow1Enable { get { return _sampleFlow1Enable; } set { SetProperty(ref _sampleFlow1Enable, value); } }
-        public bool SampleFlow2Enable { get { return _sampleFlow2Enable; } set { SetProperty(ref _sampleFlow2Enable, value); } }
-        public bool SampleFlow3Enable { get { return _sampleFlow3Enable; } set { SetProperty(ref _sampleFlow3Enable, value); } }
-        public bool SampleFlow4Enable { get { return _sampleFlow4Enable; } set { SetProperty(ref _sampleFlow4Enable, value); } }
-
-        public bool StartEnable { get { return _startEnable; } set { SetProperty(ref _startEnable, value); } }
-
         #endregion
 
         #region 指令
-        public ICommand HomeLoaderCommand { get; private set;}
-        public ICommand HomePufCommand { get; private set;}
-        public ICommand HomeEfemCommand { get; private set; }
-
-        public ICommand HomeLoaderTransporterCommand { get;private set; }
-
-        public ICommand HomeProcessTransporterCommand{get;private set;}
-
-        public ICommand HomeSRDCommand { get; private set; }
-
+        
         public ICommand NitrogenOnCommand{get;private set;}
+        
         public ICommand NitrogenOffCommand{ get;private set;}
 
         public ICommand CDAOnCommand { get; private set; }
@@ -247,29 +205,30 @@ namespace PunkHPX8_MainPages.ViewModels
 
         public ICommand HouseChilledWaferFlowOffCommand { get; private set; }
 
-        public ICommand DiFillEnableCommand { get; private set; }   
+        public ICommand VpwDiwEnableCommand { get; private set; }
 
-        public ICommand DiFillDisableCommand { get; private set; }
+        public ICommand VpwDiwDisableCommand { get; private set; }
 
-        public ICommand DiReplenEnableCommand { get; private set; }
+        public ICommand DiwFillEnableCommand { get; private set; }   
 
-        public ICommand DiReplenDisableCommand { get; private set; }
+        public ICommand DiwFillDisableCommand { get; private set; }
 
-        public ICommand LoaderDIEnableCommand { get; private set; } 
+        public ICommand DiwReplenEnableCommand { get; private set; }
 
-        public ICommand LoaderDIDisableCommand {  get; private set; }
+        public ICommand DiwReplenDisableCommand { get; private set; }
 
-        public ICommand FilterPurgeEnableCommand { get; private set; }
+        public ICommand SrdDiwEnableCommand { get; private set; }
 
-        public ICommand FilterPurgeDisableCommand { get; private set; }
+        public ICommand SrdDiwDisableCommand { get; private set; }
 
-        public ICommand AllOnCommand { get; private set; }
+        public ICommand SampleStationEnableCommand { get; private set; }
 
-        public ICommand AllOffCommand { get; private set; }
+        public ICommand SampleStationDisableCommand { get; private set; }
 
-        public ICommand SampleEnableCommand { get; private set; }
+        public ICommand FilterPurgeEnableCommand { get; private set; }
+
+        public ICommand FilterPurgeDisableCommand { get; private set; }
 
-        public ICommand SampleDisableCommand { get; private set; }
         #endregion
 
         /// <summary>
@@ -277,12 +236,7 @@ namespace PunkHPX8_MainPages.ViewModels
         /// </summary>
         public SystemFacilitiesViewModel()
         {
-            HomeLoaderCommand = new DelegateCommand<object>(HomeLoaderAction);
-            HomePufCommand=new DelegateCommand<object>(HomePufAction);
-            HomeEfemCommand = new DelegateCommand<object>(HomeEfemAction);
-            HomeLoaderTransporterCommand = new DelegateCommand<object>(HomeLoaderTransporterAction);
-            HomeProcessTransporterCommand = new DelegateCommand<object>(HomeProcessTransporterAction);
-            HomeSRDCommand = new DelegateCommand<object>(HomeSRDsAction);
+           
             NitrogenOnCommand = new DelegateCommand<object>(NitrogenOnAction);
             NitrogenOffCommand = new DelegateCommand<object>(NitrogenOffAction);
             CDAOnCommand=new DelegateCommand<object>(CDAOnAction);
@@ -293,18 +247,20 @@ namespace PunkHPX8_MainPages.ViewModels
             DiWaterPressureOffCommand = new DelegateCommand<object>(DiWaterOffAction);
             HouseChilledWaferFlowOnCommand = new DelegateCommand<object>(HouseChilledWaterOnAction);
             HouseChilledWaferFlowOffCommand = new DelegateCommand<object>(HouseChilledWaterOffAction);
-            DiFillEnableCommand = new DelegateCommand<object>(DiFillEnableAction);
-            DiFillDisableCommand=new DelegateCommand<object>(DiFillDisableAction);
-            DiReplenEnableCommand = new DelegateCommand<object>(DiReplenEnableAction);
-            DiReplenDisableCommand = new DelegateCommand<object>(DiReplenDisableAction);
-            LoaderDIEnableCommand = new DelegateCommand<object>(LoaderDiEnableAction);
-            LoaderDIDisableCommand = new DelegateCommand<object>(LoaderDiDisableAction);
+            VpwDiwEnableCommand = new DelegateCommand<object>(VpwDiwEnableAction);
+            VpwDiwDisableCommand = new DelegateCommand<object>(VpwDiwDisableAction);
+            DiwFillEnableCommand = new DelegateCommand<object>(DiwFillEnableAction);
+            DiwFillDisableCommand=new DelegateCommand<object>(DiwFillDisableAction);
+            DiwReplenEnableCommand = new DelegateCommand<object>(DiwReplenEnableAction);
+            DiwReplenDisableCommand = new DelegateCommand<object>(DiwReplenDisableAction);
+            SrdDiwEnableCommand = new DelegateCommand<object>(SrdDiEnableAction);
+            SrdDiwDisableCommand = new DelegateCommand<object>(SrdDiDisableAction);
+            SampleStationEnableCommand = new DelegateCommand<object>(SampleStationEnableAction);
+            SampleStationDisableCommand = new DelegateCommand<object>(SampleStationDisableAction);
             FilterPurgeEnableCommand = new DelegateCommand<object>(FilterPurgeEnableAction);
             FilterPurgeDisableCommand = new DelegateCommand<object>(FilterPurgeDisableAction);
-            AllOnCommand=new DelegateCommand<object>(AllOnAction);
-            AllOffCommand=new DelegateCommand<object>(AllOffAction);
-            SampleEnableCommand = new DelegateCommand<object>(SampleEnableAction);
-            SampleDisableCommand = new DelegateCommand<object>(SampleDisableAction);
+      
+
         }
         /// <summary>
         /// 加载数据
@@ -333,13 +289,9 @@ namespace PunkHPX8_MainPages.ViewModels
                 _rtDataValueDic = QueryDataClient.Instance.Service.PollData(_rtDataKeys);
                 if (_rtDataValueDic != null)
                 {
-                    HomeEfemOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.EFEM}.IsHomed");
-                    bool puf1 = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.PUF1}.IsHomed");
-                    bool puf2 = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.PUF2}.IsHomed");
-                    HomePufOn = puf1 && puf2;
-                    HomeLoaderOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"{ModuleName.Loader1}.IsHomed");
+ 
                     List<CommonLimitData> facilitiesDatas = CommonFunction.GetValue<List<CommonLimitData>>(_rtDataValueDic, $"System.{FACILITIES}.{FACILITIES_DATA}");
-                    if (facilitiesDatas != null)
+                    if (facilitiesDatas != null) //顺序待修正
                     {
                         Cda1Data = facilitiesDatas[0];
                         Cda2Data = facilitiesDatas[1];
@@ -350,33 +302,34 @@ namespace PunkHPX8_MainPages.ViewModels
                         DiWaterPressureData = facilitiesDatas[6];
                         HouseChilledWaterFlowData = facilitiesDatas[7];
                         ExtendCdaData = facilitiesDatas[8];
-                        VacuumData = facilitiesDatas[9];
-                        ExhaustData = facilitiesDatas[10];
+                        SystemVacuumData = facilitiesDatas[9];
+                        SystemExhaustData1 = facilitiesDatas[10];
+                        //SystemExhaustData2 = facilitiesDatas[11]; 修正facility device后修改
+                        //DiWaterReturnFlowData = facilitiesDatas[12];
                     }
                     NitrogenOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{N2_ENABLE}");
                     CdaOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{CDA_ENABLE}");
                     ExtendCdaOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{EXTERNAL_CDA_ENABLE}");
                     DiWaterPressureOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{DI_WATER_ENABLE}");
                     HouseChilledWaterFlowOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{HOUSE_CHILLED_WATER_ENABLE}");
+                    VpwDiWEnable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{VPW_DI_ENABLE}");
                     DiFillEnable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{DI_FILL_ENABLE}");
                     DiReplenEnable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{DI_REPLEN_ENABLE}");
-                    LoaderDiEnable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{LOADER_DI_ENABLE}");
+                    SrdDiWEnable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{SRD_DI_ENABLE}");
+                    SampleStationEnable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{SAMPLE_STATION_ENABLE}");
                     FilterPurgeEnable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{FILTER_PURGE_ENABLE}");
+
                     N2BlanketPressure = CommonFunction.GetValue<double>(_rtDataValueDic, $"System.{FACILITIES}.{N2_BLANKET_PRESSURE_VALUE}");
-                    SampleEnable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{SAMPLE_ENABLE}");
-                    SampleFlow1Enable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{SAMPLE_FLOW_1_ENABLE}");
-                    SampleFlow2Enable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{SAMPLE_FLOW_2_ENABLE}");
-                    SampleFlow3Enable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{SAMPLE_FLOW_3_ENABLE}");
-                    SampleFlow4Enable = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{SAMPLE_FLOW_4_ENABLE}");
-                    LoaderFFUError = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{FFU_LOADER_ERROR}");
-                    ProcessFFUError = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{FFU_PROCESS_ERROR}");
-                    LoaderFFUPressure = CommonFunction.GetValue<double>(_rtDataValueDic, $"System.{FACILITIES}.{FFU_LOADER_PRESSURE}");
-                    ProcessFFUPressure = CommonFunction.GetValue<double>(_rtDataValueDic, $"System.{FACILITIES}.{FFU_PROCESS_PRESSURE}");
-                    ArsFluidDetect = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{ARS_FLUID_DETECT}");
-                    ProcessFluidDetect = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{PROCESS_FLUID_DETECT}");
-                    SampleFluidDetect = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{SAMPLE_FLUID_DETECT}");
-                    AllStatus = (NitrogenOn && CdaOn && DiWaterPressureOn && HouseChilledWaterFlowOn && DiFillEnable && DiReplenEnable && LoaderDiEnable) ? 1 :
-                        (!NitrogenOn && !CdaOn && !DiWaterPressureOn && !HouseChilledWaterFlowOn && !DiFillEnable && !DiReplenEnable && !LoaderDiEnable) ? 0 : -1;
+                    N2OverflowPressure = CommonFunction.GetValue<double>(_rtDataValueDic, $"System.{FACILITIES}.{N2_OVERFLOW_PRESSURE_VALUE}");
+                    ClamshellCylinderPressure = CommonFunction.GetValue<double>(_rtDataValueDic, $"System.{FACILITIES}.{CLAMSHELL_CYLINDER_PRESSURE_VALUE}");
+                    TiltCylinderPressure = CommonFunction.GetValue<double>(_rtDataValueDic, $"System.{FACILITIES}.{TILT_CYLINDER_PRESSURE_VALUE}");
+
+                    PlateCellFFUPressureError = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{FFU_PLATECELL_PRESSURE_ERROR}");
+                    CorridorFFUPressureError = CommonFunction.GetValue<bool>(_rtDataValueDic, $"System.{FACILITIES}.{FFU_CORRIDOR_PRESSURE_ERROR}");
+                    PlateCellFFUPressure = CommonFunction.GetValue<double>(_rtDataValueDic, $"System.{FACILITIES}.{FFU_PLATECELL_PRESSURE_PRESSURE}");
+                    CorridorFFUPressure = CommonFunction.GetValue<double>(_rtDataValueDic, $"System.{FACILITIES}.{FFU_CORRIDOR_PRESSURE}");
+                  
+                   
                 }
             }
         }
@@ -397,33 +350,26 @@ namespace PunkHPX8_MainPages.ViewModels
         private void InitialKeys()
         {
             _rtDataKeys.Clear();
-            _rtDataKeys.Add($"{ModuleName.EFEM}.IsHomed");
-            _rtDataKeys.Add($"{ModuleName.Loader1}.IsHomed");
-            _rtDataKeys.Add($"{ModuleName.PUF1}.IsHomed");
-            _rtDataKeys.Add($"{ModuleName.PUF2}.IsHomed");
             _rtDataKeys.Add($"System.{FACILITIES}.{FACILITIES_DATA}");
             _rtDataKeys.Add($"System.{FACILITIES}.{N2_ENABLE}");
             _rtDataKeys.Add($"System.{FACILITIES}.{CDA_ENABLE}");
             _rtDataKeys.Add($"System.{FACILITIES}.{EXTERNAL_CDA_ENABLE}");
             _rtDataKeys.Add($"System.{FACILITIES}.{DI_WATER_ENABLE}");
             _rtDataKeys.Add($"System.{FACILITIES}.{HOUSE_CHILLED_WATER_ENABLE}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{VPW_DI_ENABLE}");
             _rtDataKeys.Add($"System.{FACILITIES}.{DI_FILL_ENABLE}");
             _rtDataKeys.Add($"System.{FACILITIES}.{DI_REPLEN_ENABLE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{LOADER_DI_ENABLE}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{SRD_DI_ENABLE}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{SAMPLE_STATION_ENABLE}");
             _rtDataKeys.Add($"System.{FACILITIES}.{FILTER_PURGE_ENABLE}");
             _rtDataKeys.Add($"System.{FACILITIES}.{N2_BLANKET_PRESSURE_VALUE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{SAMPLE_ENABLE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{SAMPLE_FLOW_1_ENABLE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{SAMPLE_FLOW_2_ENABLE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{SAMPLE_FLOW_3_ENABLE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{SAMPLE_FLOW_4_ENABLE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{FFU_LOADER_ERROR}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{FFU_PROCESS_ERROR}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{FFU_LOADER_PRESSURE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{FFU_PROCESS_PRESSURE}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{ARS_FLUID_DETECT}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{PROCESS_FLUID_DETECT}");
-            _rtDataKeys.Add($"System.{FACILITIES}.{SAMPLE_FLUID_DETECT}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{N2_OVERFLOW_PRESSURE_VALUE}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{CLAMSHELL_CYLINDER_PRESSURE_VALUE}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{TILT_CYLINDER_PRESSURE_VALUE}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{FFU_PLATECELL_PRESSURE_ERROR}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{FFU_CORRIDOR_PRESSURE_ERROR}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{FFU_PLATECELL_PRESSURE_PRESSURE}");
+            _rtDataKeys.Add($"System.{FACILITIES}.{FFU_CORRIDOR_PRESSURE}");
         }
 
         #region 指令Action
@@ -559,10 +505,26 @@ namespace PunkHPX8_MainPages.ViewModels
             InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.HouseChilledWaterDisable");
         }
         /// <summary>
+        /// VPW DI Enable
+        /// </summary>
+        /// <param name="param"></param>
+        private void VpwDiwEnableAction(object param)
+        {
+            InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.VpwDiwEnable");
+        }
+        /// <summary>
+        /// VPW DI Disable
+        /// </summary>
+        /// <param name="param"></param>
+        private void VpwDiwDisableAction(object param)
+        {
+            InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.VpwDiwDisable");
+        }
+        /// <summary>
         /// DI Fill Enable
         /// </summary>
         /// <param name="param"></param>
-        private void DiFillEnableAction(object param)
+        private void DiwFillEnableAction(object param)
         {
             InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.DiFillEnable");
         }
@@ -570,7 +532,7 @@ namespace PunkHPX8_MainPages.ViewModels
         /// DI Fill Disable
         /// </summary>
         /// <param name="param"></param>
-        private void DiFillDisableAction(object param)
+        private void DiwFillDisableAction(object param)
         {
             InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.DiFillDisable");
         }
@@ -578,7 +540,7 @@ namespace PunkHPX8_MainPages.ViewModels
         /// DI Replen Enable
         /// </summary>
         /// <param name="param"></param>
-        private void DiReplenEnableAction(object param)
+        private void DiwReplenEnableAction(object param)
         {
             InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.DiReplenEnable");
         }
@@ -586,7 +548,7 @@ namespace PunkHPX8_MainPages.ViewModels
         /// DI Replen Disable
         /// </summary>
         /// <param name="param"></param>
-        private void DiReplenDisableAction(object param)
+        private void DiwReplenDisableAction(object param)
         {
             InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.DiReplenDisable");
         }
@@ -594,17 +556,17 @@ namespace PunkHPX8_MainPages.ViewModels
         /// Loader DI Enable
         /// </summary>
         /// <param name="param"></param>
-        private void LoaderDiEnableAction(object param)
+        private void SrdDiEnableAction(object param)
         {
-            InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.LoaderDiEnable");
+            InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.SrdDiEnable");
         }
         /// <summary>
         /// Loader DI Disable
         /// </summary>
         /// <param name="param"></param>
-        private void LoaderDiDisableAction(object param)
+        private void SrdDiDisableAction(object param)
         {
-            InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.LoaderDiDisable");
+            InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.SrdDiDisable");
         }
         /// <summary>
         /// Filter Purge Enable
@@ -623,18 +585,28 @@ namespace PunkHPX8_MainPages.ViewModels
             InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.FilterPurgeDisable");
         }
         /// <summary>
+        /// Filter Purge Enable
+        /// </summary>
+        /// <param name="param"></param>
+        private void SampleStationEnableAction(object param)
+        {
+            InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.SampleStationEnable");
+        }
+        /// <summary>
+        /// Filter Purge Disable
+        /// </summary>
+        /// <param name="param"></param>
+        private void SampleStationDisableAction(object param)
+        {
+            InvokeClient.Instance.Service.DoOperation($"System.{FACILITIES}.SampleStationDisable");
+        }
+        /// <summary>
         /// All On
         /// </summary>
         /// <param name="param"></param>
         private void AllOnAction(object param)
         {
-            NitrogenOnAction(param);
-            CDAOnAction(param);
-            DiWaterOnAction(param);
-            HouseChilledWaterOnAction(param);
-            DiFillEnableAction(param);
-            DiReplenEnableAction(param);
-            LoaderDiEnableAction(param);
+
         }
         /// <summary>
         /// All Off
@@ -642,13 +614,7 @@ namespace PunkHPX8_MainPages.ViewModels
         /// <param name="param"></param>
         private void AllOffAction(object param)
         {
-            NitrogenOffAction(param);
-            CDAOffAction(param);
-            DiWaterOffAction(param);
-            HouseChilledWaterOffAction(param);
-            DiFillDisableAction(param);
-            DiReplenDisableAction(param);
-            LoaderDiDisableAction(param);
+
         }
         /// <summary>
         /// Sample Enable

+ 202 - 163
PunkHPX8_MainPages/Views/SystemFacilitiesView.xaml

@@ -33,25 +33,30 @@
                 </Grid.ColumnDefinitions>
                 <Grid Grid.Column="0">
                     <Grid.RowDefinitions>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="160"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
                         <RowDefinition/>
                     </Grid.RowDefinitions>
                     <Grid Grid.Row="1">
@@ -62,8 +67,8 @@
                         <Label Grid.Column="0" VerticalContentAlignment="Center">Nitrogen #1A</Label>
                         <Grid Grid.Column="1">
                             <Ellipse Width="16" Height="16"  Fill="{Binding NitrogenOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding NitrogenOnCommand}" IsEnabled="{Binding NitrogenOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left"  Command="{Binding NitrogenOffCommand}" IsEnabled="{Binding NitrogenOn}" Margin="80,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding NitrogenOnCommand}" IsEnabled="{Binding NitrogenOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left"  Command="{Binding NitrogenOffCommand}" IsEnabled="{Binding NitrogenOn}" Margin="80,0,0,0"></Button>
                         </Grid>
                     </Grid>
                     <Grid Grid.Row="2">
@@ -102,8 +107,8 @@
                         <Label Grid.Column="0" VerticalContentAlignment="Center">CDA #1</Label>
                         <Grid Grid.Column="1">
                             <Ellipse Width="16" Height="16"  Fill="{Binding CdaOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding CDAOnCommand}" IsEnabled="{Binding CdaOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left"  Command="{Binding CDAOffCommand}" IsEnabled="{Binding CdaOn}" Margin="80,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding CDAOnCommand}" IsEnabled="{Binding CdaOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left"  Command="{Binding CDAOffCommand}" IsEnabled="{Binding CdaOn}" Margin="80,0,0,0"></Button>
                         </Grid>
                     </Grid>
                     <Grid Grid.Row="7">
@@ -118,11 +123,11 @@
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0" VerticalContentAlignment="Center">Extend CDA</Label>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">Ext CDA</Label>
                         <Grid Grid.Column="1">
                             <Ellipse Width="16" Height="16"  Fill="{Binding ExtendCdaOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding ExternalCDAOnCommand}" IsEnabled="{Binding ExtendCdaOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left"  Command="{Binding ExternalCDAOffCommand}" IsEnabled="{Binding ExtendCdaOn}" Margin="80,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding ExternalCDAOnCommand}" IsEnabled="{Binding ExtendCdaOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left"  Command="{Binding ExternalCDAOffCommand}" IsEnabled="{Binding ExtendCdaOn}" Margin="80,0,0,0"></Button>
                         </Grid>
                     </Grid>
                     <Grid Grid.Row="9">
@@ -130,21 +135,22 @@
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0" VerticalContentAlignment="Center">System Exhaust</Label>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">System Exhaust 1/2</Label>
                     </Grid>
-                    <Grid Grid.Row="10">
+                    <Grid Grid.Row="11">
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0" VerticalContentAlignment="Center">DI Water Pressure</Label>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">DIW Pressure</Label>
                         <Grid Grid.Column="1">
                             <Ellipse Width="16" Height="16"  Fill="{Binding DiWaterPressureOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding DiWaterPressureOnCommand}" IsEnabled="{Binding DiWaterPressureOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left"  Command="{Binding DiWaterPressureOffCommand}" IsEnabled="{Binding DiWaterPressureOn}" Margin="80,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding DiWaterPressureOnCommand}" IsEnabled="{Binding DiWaterPressureOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left"  Command="{Binding DiWaterPressureOffCommand}" IsEnabled="{Binding DiWaterPressureOn}" Margin="80,0,0,0"></Button>
                         </Grid>
                     </Grid>
-                    <Grid Grid.Row="11">
+
+                    <Grid Grid.Row="13">
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
@@ -152,47 +158,95 @@
                         <Label Grid.Column="0" VerticalContentAlignment="Center">House Chilled Water Flow</Label>
                         <Grid Grid.Column="1">
                             <Ellipse Width="16" Height="16"  Fill="{Binding HouseChilledWaterFlowOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding HouseChilledWaferFlowOnCommand}" IsEnabled="{Binding HouseChilledWaterFlowOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding HouseChilledWaferFlowOffCommand}" IsEnabled="{Binding HouseChilledWaterFlowOn}" Margin="80,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding HouseChilledWaferFlowOnCommand}" IsEnabled="{Binding HouseChilledWaterFlowOn,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding HouseChilledWaferFlowOffCommand}" IsEnabled="{Binding HouseChilledWaterFlowOn}" Margin="80,0,0,0"></Button>
                         </Grid>
                     </Grid>
+
                     <Grid Grid.Row="12">
                         <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="34.5"></ColumnDefinition>
+                            <ColumnDefinition Width="225.5"/>
+                            <ColumnDefinition/>
+                        </Grid.ColumnDefinitions>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center" Grid.ColumnSpan="2">DIW Return Flow</Label>
+                        
+                    </Grid>
+
+                    <Grid Grid.Row="14">
+                        <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0" VerticalContentAlignment="Center">DI Fill Enable</Label>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">VPW DIW Enable</Label>
+                        <Grid Grid.Column="1">
+                            <Ellipse Width="16" Height="16"  Fill="{Binding VpwDiWEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding VpwDiwEnableCommand}" IsEnabled="{Binding VpwDiWEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding VpwDiwDisableCommand}" IsEnabled="{Binding VpwDiWEnable}" Margin="80,0,0,0"></Button>
+                        </Grid>
+                    </Grid>
+                    <Grid Grid.Row="15">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="260"></ColumnDefinition>
+                            <ColumnDefinition/>
+                        </Grid.ColumnDefinitions>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">DIW Fill Enable</Label>
                         <Grid Grid.Column="1">
                             <Ellipse Width="16" Height="16"  Fill="{Binding DiFillEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding DiFillEnableCommand}" IsEnabled="{Binding DiFillEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left"  Command="{Binding DiFillDisableCommand}" IsEnabled="{Binding DiFillEnable}" Margin="80,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding DiFillEnableCommand}" IsEnabled="{Binding DiFillEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left"  Command="{Binding DiFillDisableCommand}" IsEnabled="{Binding DiFillEnable}" Margin="80,0,0,0"></Button>
                         </Grid>
                     </Grid>
-                    <Grid Grid.Row="13">
+
+                    <Grid Grid.Row="16">
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0" VerticalContentAlignment="Center">DI Replen Enable</Label>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">DIW Replen Enable</Label>
                         <Grid Grid.Column="1">
                             <Ellipse Width="16" Height="16"  Fill="{Binding DiReplenEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding DiReplenEnableCommand}" IsEnabled="{Binding DiReplenEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding DiReplenDisableCommand}" IsEnabled="{Binding DiReplenEnable}" Margin="80,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding DiReplenEnableCommand}" IsEnabled="{Binding DiReplenEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding DiReplenDisableCommand}" IsEnabled="{Binding DiReplenEnable}" Margin="80,0,0,0"></Button>
                         </Grid>
                     </Grid>
-                    <Grid Grid.Row="14">
+                    <Grid Grid.Row="17">
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0" VerticalContentAlignment="Center">Loader DI Enable</Label>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">SRD DIW Enable</Label>
                         <Grid Grid.Column="1">
-                            <Ellipse Width="16" Height="16"  Fill="{Binding LoaderDiEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding LoaderDIEnableCommand}" IsEnabled="{Binding LoaderDiEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding LoaderDIDisableCommand}" IsEnabled="{Binding LoaderDiEnable}" Margin="80,0,0,0"></Button>
+                            <Ellipse Width="16" Height="16"  Fill="{Binding SrdDiWEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding SrdDiwEnableCommand}" IsEnabled="{Binding SrdDiWEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding SrdDiwDisableCommand}" IsEnabled="{Binding SrdDiWEnable}" Margin="80,0,0,0"></Button>
                         </Grid>
                     </Grid>
-                    <Grid Grid.Row="16">
+                    <Grid Grid.Row="18">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="260"></ColumnDefinition>
+                            <ColumnDefinition/>
+                        </Grid.ColumnDefinitions>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">Sample Station Enable</Label>
+                        <Grid Grid.Column="1">
+                            <Ellipse Width="16" Height="16"  Fill="{Binding SampleStationEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding SampleStationEnableCommand}" IsEnabled="{Binding SampleStationEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding SampleStationDisableCommand}" IsEnabled="{Binding SampleStationEnable}" Margin="80,0,0,0"></Button>
+                        </Grid>
+                    </Grid>
+                    <Grid Grid.Row="19">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="260"></ColumnDefinition>
+                            <ColumnDefinition/>
+                        </Grid.ColumnDefinitions>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">Filter Purge</Label>
+                        <Grid Grid.Column="1">
+                            <Ellipse Width="16" Height="16"  Fill="{Binding FilterPurgeEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding FilterPurgeEnableCommand}" IsEnabled="{Binding FilterPurgeEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
+                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="25" HorizontalAlignment="Left" Command="{Binding FilterPurgeEnableCommand}" IsEnabled="{Binding FilterPurgeEnable}" Margin="80,0,0,0"></Button>
+                        </Grid>
+                    </Grid>
+                    <Grid Grid.Row="20">
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
@@ -203,64 +257,57 @@
                             <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="18" Width="40" Background="Black" Foreground="Lime" Text="psi" Margin="90,0,0,0"/>
                         </Grid>
                     </Grid>
-                    <Grid Grid.Row="17">
+                    <Grid Grid.Row="21">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="260"></ColumnDefinition>
+                            <ColumnDefinition/>
+                        </Grid.ColumnDefinitions>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">N2 Overflow Pressure</Label>
+                        <Grid Grid.Column="1">
+                            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="18" Width="60" Background="Black" Foreground="Lime" Text="{Binding N2OverflowPressure}" Margin="26,0,0,0"/>
+                            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="18" Width="40" Background="Black" Foreground="Lime" Text="psi" Margin="90,0,0,0"/>
+                        </Grid>
+                    </Grid>
+                    <Grid Grid.Row="22">
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="260"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0" VerticalContentAlignment="Center">All</Label>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">Clamshell Cylinder Pressure</Label>
                         <Grid Grid.Column="1">
-                            <Ellipse Width="16" Height="16"  Fill="{Binding AllStatus,Converter={StaticResource middleStatusColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding AllOnCommand}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding AllOffCommand}" Margin="80,0,0,0"></Button>
+                            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="18" Width="60" Background="Black" Foreground="Lime" Text="{Binding ClamshellCylinderPressure}" Margin="26,0,0,0"/>
+                            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="18" Width="40" Background="Black" Foreground="Lime" Text="psi" Margin="90,0,0,0"/>
                         </Grid>
                     </Grid>
-                    <Grid Grid.Row="18" Width="311" HorizontalAlignment="Left">
-                        <GroupBox Header="Containment">
-                            <Grid>
-                                <Grid.RowDefinitions>
-                                    <RowDefinition Height="35"></RowDefinition>
-                                    <RowDefinition Height="35"></RowDefinition>
-                                    <RowDefinition Height="35"></RowDefinition>
-                                    <RowDefinition Height="35"></RowDefinition>
-                                </Grid.RowDefinitions>
-                                <Grid Grid.Row="0">
-                                    <Label Content="Process Fluid Detect" VerticalContentAlignment="Center"></Label>
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding ProcessFluidDetect,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Left" Margin="255,0,0,0"/>
-                                </Grid>
-                                <Grid Grid.Row="1">
-                                    <Label Content="Sample 1 Fluid Detect" VerticalContentAlignment="Center"></Label>
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding SampleFluidDetect,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Left" Margin="255,0,0,0"/>
-                                </Grid>
-                                <Grid Grid.Row="2">
-                                    <Label Content="ARS Fluid Detect" VerticalContentAlignment="Center"></Label>
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding ArsFluidDetect,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="255,0,0,0"/>
-                                </Grid>
-                                <!--<Grid Grid.Row="3">
-                                    <Label Content="CRS Wash Box Fluid Detect" VerticalContentAlignment="Center"></Label>
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding CRSWashBoxFluidDetect,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="255,0,0,0"/>
-                                </Grid>-->
-                            </Grid>
-                        </GroupBox>
+                    <Grid Grid.Row="23">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="260"></ColumnDefinition>
+                            <ColumnDefinition/>
+                        </Grid.ColumnDefinitions>
+                        <Label Grid.Column="0" VerticalContentAlignment="Center">Tilt Cylinder Pressure</Label>
+                        <Grid Grid.Column="1">
+                            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="18" Width="60" Background="Black" Foreground="Lime" Text="{Binding TiltCylinderPressure}" Margin="26,0,0,0"/>
+                            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="18" Width="40" Background="Black" Foreground="Lime" Text="psi" Margin="90,0,0,0"/>
+                        </Grid>
                     </Grid>
                 </Grid>
                 <Grid Grid.Column="1">
                     <Grid.RowDefinitions>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
-                        <RowDefinition Height="35"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="30"></RowDefinition>
                         <RowDefinition />
                     </Grid.RowDefinitions>
                     <Grid Grid.Row="0">
@@ -359,13 +406,12 @@
                             <ColumnDefinition Width="70"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
-                        <TextBlock Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding VacuumData.MinError}"></TextBlock>
-                        <TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding VacuumData.MinWarning}"></TextBlock>
-                        <!--<TextBlock Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="Black" Foreground="Lime" Text="{Binding VacuumData.Value}"></TextBlock>-->
-                        <UserControls:PressureBlockControl  Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding VacuumData.Value}"
-                                                            IsError="{Binding VacuumData.IsError}" IsWarning="{Binding VacuumData.IsWarning}" FontSize="18" Width="60"></UserControls:PressureBlockControl>
-                        <TextBlock Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding VacuumData.MaxError}"></TextBlock>
-                        <TextBlock Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding VacuumData.MaxWarning}"></TextBlock>
+                        <TextBlock Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding SystemVacuumData.MinError}"></TextBlock>
+                        <TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding SystemVacuumData.MinWarning}"></TextBlock>
+                        <UserControls:PressureBlockControl  Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding SystemVacuumData.Value}"
+                                                            IsError="{Binding SystemVacuumData.IsError}" IsWarning="{Binding SystemVacuumData.IsWarning}" FontSize="18" Width="60"></UserControls:PressureBlockControl>
+                        <TextBlock Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding SystemVacuumData.MaxError}"></TextBlock>
+                        <TextBlock Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding SystemVacuumData.MaxWarning}"></TextBlock>
                         <TextBlock Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" Background="Transparent">mmHg</TextBlock>
                     </Grid>
                     <Grid Grid.Row="6">
@@ -468,63 +514,56 @@
                             <ColumnDefinition Width="70"></ColumnDefinition>
                             <ColumnDefinition/>
                         </Grid.ColumnDefinitions>
+                        <TextBlock Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding DiWaterPressureData.MinError}"></TextBlock>
+                        <TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding DiWaterPressureData.MinWarning}"></TextBlock>
+                        <TextBlock Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding DiWaterPressureData.MaxError}"></TextBlock>
+                        <UserControls:PressureBlockControl  Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding DiWaterPressureData.Value}"
+                                                            IsError="{Binding DiWaterPressureData.IsError}" IsWarning="{Binding DiWaterPressureData.IsWarning}"
+                                                            FontSize="18" Width="60"></UserControls:PressureBlockControl>
+                        <TextBlock Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding DiWaterPressureData.MaxWarning}"></TextBlock>
+                        <TextBlock Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" Background="Transparent">L/min</TextBlock>
+                    </Grid>
+                    <Grid Grid.Row="12">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition/>
+                        </Grid.ColumnDefinitions>
+                        <TextBlock Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding DiWaterReturnFlowData.MinError}"></TextBlock>
+                        <TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding DiWaterReturnFlowData.MinWarning}"></TextBlock>
+                        <!--<TextBlock Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="Black" Foreground="Lime" Text="{Binding HouseChilledWaterFlowData.Value}"></TextBlock>-->
+                        <TextBlock Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding DiWaterReturnFlowData.MaxError}"></TextBlock>
+                        <UserControls:PressureBlockControl  Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding DiWaterReturnFlowData.Value}"
+                    IsError="{Binding DiWaterReturnFlowData.IsError}" IsWarning="{Binding DiWaterReturnFlowData.IsWarning}"
+                    FontSize="18" Width="60"></UserControls:PressureBlockControl>
+                        <TextBlock Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding DiWaterReturnFlowData.MaxWarning}"></TextBlock>
+                        <TextBlock Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" Background="Transparent">L/min</TextBlock>
+                    </Grid>
+                    <Grid Grid.Row="13">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition Width="70"></ColumnDefinition>
+                            <ColumnDefinition/>
+                        </Grid.ColumnDefinitions>
                         <TextBlock Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding HouseChilledWaterFlowData.MinError}"></TextBlock>
                         <TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding HouseChilledWaterFlowData.MinWarning}"></TextBlock>
                         <!--<TextBlock Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="Black" Foreground="Lime" Text="{Binding HouseChilledWaterFlowData.Value}"></TextBlock>-->
                         <TextBlock Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding HouseChilledWaterFlowData.MaxError}"></TextBlock>
                         <UserControls:PressureBlockControl  Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding HouseChilledWaterFlowData.Value}"
-                                                            IsError="{Binding HouseChilledWaterFlowData.IsError}" IsWarning="{Binding HouseChilledWaterFlowData.IsWarning}"
-                                                            FontSize="18" Width="60"></UserControls:PressureBlockControl>
+                                        IsError="{Binding HouseChilledWaterFlowData.IsError}" IsWarning="{Binding HouseChilledWaterFlowData.IsWarning}"
+                                        FontSize="18" Width="60"></UserControls:PressureBlockControl>
                         <TextBlock Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" Width="60" Background="LightGray" Foreground="White" Text="{Binding HouseChilledWaterFlowData.MaxWarning}"></TextBlock>
                         <TextBlock Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" Background="Transparent">L/min</TextBlock>
                     </Grid>
 
-                    <Grid Grid.Row="13">
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition Width="255"></ColumnDefinition>
-                            <ColumnDefinition/>
-                        </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0" VerticalContentAlignment="Center">Fliter Purge Enable</Label>
-                        <Grid Grid.Column="1">
-                            <Ellipse Width="16" Height="16"  Fill="{Binding FilterPurgeEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="On" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding FilterPurgeEnableCommand}" IsEnabled="{Binding FilterPurgeEnable,Converter={StaticResource boolReverse}}" Margin="25,0,0,0"></Button>
-                            <Button Style="{StaticResource SysBtnStyle}"  Content="Off" Width="50" Height="30" HorizontalAlignment="Left" Command="{Binding FilterPurgeDisableCommand}" IsEnabled="{Binding FilterPurgeEnable}" Margin="80,0,0,0"></Button>
-                        </Grid>
-                    </Grid>
-                    <Grid Grid.Row="15">
-                        <GroupBox Header="Sample System" VerticalAlignment="Top">
-                            <Grid>
-                                <Grid.RowDefinitions>
-                                    <RowDefinition Height="50"></RowDefinition>
-                                    <!--<RowDefinition Height="35"></RowDefinition>
-                                    <RowDefinition Height="35"></RowDefinition>
-                                    <RowDefinition Height="35"></RowDefinition>
-                                    <RowDefinition Height="35"></RowDefinition>-->
-                                </Grid.RowDefinitions>
-                                <Grid Grid.Row="0">
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding SampleEnable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="20,0,0,0"/>
-                                    <Button Style="{StaticResource SysBtnStyle}"  Content="Enable" Width="70" Height="30" HorizontalAlignment="Left" Command="{Binding SampleEnableCommand}" Margin="50,0,0,0"></Button>
-                                    <Button Style="{StaticResource SysBtnStyle}"  Content="Disable" Width="70" Height="30" HorizontalAlignment="Left" Command="{Binding SampleDisableCommand}" Margin="140,0,0,0"></Button>
-                                </Grid>
-                                <!--<Grid Grid.Row="1">
-                                    <Label Content="Flow 1 Enable " VerticalContentAlignment="Center" HorizontalAlignment="Left" Width="170" Margin="18,0,0,0"></Label>
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding SampleFlow1Enable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="255,0,0,0"/>
-                                </Grid>
-                                <Grid Grid.Row="2">
-                                    <Label Content="Flow 2 Enable " VerticalContentAlignment="Center" HorizontalAlignment="Left" Width="170" Margin="18,0,0,0"></Label>
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding SampleFlow2Enable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="255,0,0,0"/>
-                                </Grid>
-                                <Grid Grid.Row="3">
-                                    <Label Content="Flow 3 Enable " VerticalContentAlignment="Center" HorizontalAlignment="Left" Width="170" Margin="18,0,0,0"></Label>
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding SampleFlow3Enable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="255,0,0,0"/>
-                                </Grid>
-                                <Grid Grid.Row="4">
-                                    <Label Content="Flow 4 Enable " VerticalContentAlignment="Center" HorizontalAlignment="Left" Width="170" Margin="18,0,0,0"></Label>
-                                    <Ellipse Width="16" Height="16"  Fill="{Binding SampleFlow4Enable,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="255,0,0,0"/>
-                                </Grid>-->
-                            </Grid>
-                        </GroupBox>
-                    </Grid>
+
+
                 </Grid>
             </Grid>
         </GroupBox>
@@ -534,8 +573,8 @@
                 <RowDefinition/>
             </Grid.RowDefinitions>
             <Grid.ColumnDefinitions>
-                <ColumnDefinition Width="320"></ColumnDefinition>
-                <ColumnDefinition Width="200"></ColumnDefinition>
+                <ColumnDefinition Width="400"></ColumnDefinition>
+                <ColumnDefinition Width="120"></ColumnDefinition>
                 <ColumnDefinition Width="420"></ColumnDefinition>
                 <ColumnDefinition/>
             </Grid.ColumnDefinitions>
@@ -546,20 +585,20 @@
                         <RowDefinition/>
                     </Grid.RowDefinitions>
                     <Grid Grid.Row="0">
-                        <Label Content="Process" VerticalContentAlignment="Center"></Label>
-                        <Ellipse Width="16" Height="16"  Fill="{Binding ProcessFFUError,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="60,0,0,0"/>
-                        <Label Content="Error" VerticalContentAlignment="Center" Margin="75,0,0,0"></Label>
-                        <Label Content="Pressure" VerticalContentAlignment="Center" Margin="140,0,0,0"></Label>
-                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Width="58" Background="Black" Foreground="Lime" Text="{Binding ProcessFFUPressure}" Margin="200,0,0,0"/>
-                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Width="40" Background="Black" Foreground="Lime" Text="inWc" Margin="260,0,0,0"/>
+                        <Label Content="Plate Cell Pressure" VerticalContentAlignment="Center"></Label>
+                        <Ellipse Width="16" Height="16"  Fill="{Binding PlateCellFFUPressureError,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="120,0,0,0"/>
+                        <Label Content="Error" VerticalContentAlignment="Center" Margin="135,0,0,0"></Label>
+                        <Label Content="Pressure" VerticalContentAlignment="Center" Margin="200,0,0,0"></Label>
+                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Width="58" Background="Black" Foreground="Lime" Text="{Binding PlateCellFFUPressure}" Margin="260,0,0,0"/>
+                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Width="40" Background="Black" Foreground="Lime" Text="inWc" Margin="320,0,0,0"/>
                     </Grid>
                     <Grid Grid.Row="1">
-                        <Label Content="Loader" VerticalContentAlignment="Center"></Label>
-                        <Ellipse Width="16" Height="16"  Fill="{Binding LoaderFFUError,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="60,0,0,0"/>
-                        <Label Content="Error" VerticalContentAlignment="Center" Margin="75,0,0,0"></Label>
-                        <Label Content="Pressure" VerticalContentAlignment="Center" Margin="140,0,0,0"></Label>
-                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Width="58" Background="Black" Foreground="Lime" Text="{Binding LoaderFFUPressure}" Margin="200,0,0,0"/>
-                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Width="40" Background="Black" Foreground="Lime" Text="inWc" Margin="260,0,0,0"/>
+                        <Label Content="Corridor Pressure" VerticalContentAlignment="Center"></Label>
+                        <Ellipse Width="16" Height="16"  Fill="{Binding CorridorFFUPressureError,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="120,0,0,0"/>
+                        <Label Content="Error" VerticalContentAlignment="Center" Margin="135,0,0,0"></Label>
+                        <Label Content="Pressure" VerticalContentAlignment="Center" Margin="200,0,0,0"></Label>
+                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Width="58" Background="Black" Foreground="Lime" Text="{Binding CorridorFFUPressure}" Margin="260,0,0,0"/>
+                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Width="40" Background="Black" Foreground="Lime" Text="inWc" Margin="320,0,0,0"/>
                     </Grid>
                 </Grid>
             </GroupBox>

+ 0 - 1
PunkHPX8_RT/Config/System.sccfg

@@ -244,7 +244,6 @@
 		<config default="2" name="RangePressure" nameView="RangePressure" description="pressure delta range" max="60" min="0" paramter="" tag="" unit="" type="Double"/>
 		<config default="5" name="DripValveOpenIdlePeriod" nameView="DripValveOpenIdlePeriod" max="60" min="0" description="idle time after total flow over start flow,then open drip valve." paramter="" tag="" unit="minute" type="Integer" />
 		<config default="3" name="ChamberUpDownCheckTime" nameView="ChamberUpDownCheckTime" max="60" min="0" description="check chamber is up/down time" paramter="" tag="" unit="s" type="Integer" />
-		<config default="3" name="FlowFaultHoldOffTime" nameView="FlowFaultHoldOffTime" max="60" min="0" description="TotalFlow Fault HoldOff Time" paramter="" tag="" unit="min" type="Integer" />
 		<configs name="PumpPressure" nameView="PumpPressure">
 			<config default="50.0" name="Error_Max" nameView="Error_Max" max="100.0" min="0" paramter="" tag="" unit="" type="Double"  description="This value defines the maximum flow, in liters per minute, above which this interlock will transition to an Error state."/>
 			<config default="40.0" name="Warning_Max" nameView="Warning_Max" max="100.0" min="0" paramter="" tag="" unit="" type="Double"  description="This value defines the maximum flow, in liters per minute, above which this interlock will transition to an Warning state.  Note corresponding Error_Min/Error_Max testing supersedes this test."/>

+ 2 - 2
PunkHPX8_RT/Devices/VpwMain/VpwMainDevice.cs

@@ -919,7 +919,7 @@ namespace PunkHPX8_RT.Devices.VpwMain
         private void BoosterPumpMonitor()
         {
             double totalFlowStartLimit = SC.GetValue<double>("VPWMain.Plumbing.TotalFlowStartLowLimit");
-            int flowFaultHoldOffTime = SC.GetValue<int>($"VPWMain.FlowFaultHoldOffTime");
+            int flowFaultHoldOffTime = SC.GetValue<int>($"VPWMain.Plumbing.FlowFaultHoldoffTime");
             if (_commonData.DiwTotalFlow < totalFlowStartLimit)
             {
                 if (!_totalFlowAbnormal)
@@ -927,7 +927,7 @@ namespace PunkHPX8_RT.Devices.VpwMain
                     _totalFlowAbnormal = true;
                     _totalFlowAbnormalDetectTime = DateTime.Now;
                 }
-                if ((DateTime.Now - _totalFlowAbnormalDetectTime).TotalSeconds > flowFaultHoldOffTime * 60 && _commonData.BoosterPumpEnable)
+                if ((DateTime.Now - _totalFlowAbnormalDetectTime).TotalSeconds > flowFaultHoldOffTime && _commonData.BoosterPumpEnable)
                 {
                     LOG.WriteLog(eEvent.WARN_VPW, Module, $"total flow is lower than start limit more than {flowFaultHoldOffTime} min,Booster Pump Closed!");
                     BoosterPumpDisable();