Browse Source

add safety view

chenzk 19 hours ago
parent
commit
7a687fc207

+ 4 - 0
Framework/Common/Device/Safety/SafetyData.cs

@@ -279,6 +279,10 @@ namespace MECF.Framework.Common.Device.Safety
 
         public double SrdHotConnectState { get { return _srdHotConnectState; } set { _srdHotConnectState = value; InvokePropertyChanged(nameof(SrdHotConnectState)); } }
 
+        public bool SrdCommErr { get { return _srdCommErr; } set { _srdCommErr = value; InvokePropertyChanged(nameof(SrdCommErr)); } }
+
+        public bool SrdFbErr { get { return _srdFbErr; } set { _srdFbErr = value; InvokePropertyChanged(nameof(SrdFbErr)); } }
+
         #region Restart
         /// <summary>
         /// Run stop

+ 39 - 277
PunkHPX8_MainPages/ViewModels/SystemSafetyViewModel.cs

@@ -29,101 +29,12 @@ namespace PunkHPX8_MainPages.ViewModels
         #region 内部变量
         private SafetyData _commonSafetyData;
 
-        #region Loader
-        private bool _isLoaderRotationOn;
-        private bool _isLoaderASwingOn;
-        private bool _isLoaderATiltOn;
-        private bool _isLoaderBSwingOn;
-        private bool _isLoaderBTiltOn;
-        private bool _isLoaderMoving;
-        #endregion
-
-        #region PUFs
-        private bool _isPuf1VerticalOn;
-        private bool _isPuf1RotationOn;
-        private bool _isPuf1FlipOn;
-        private bool _isPuf2VerticalOn;
-        private bool _isPuf2RotationOn;
-        private bool _isPuf2FlipOn;
-        private bool _isPufsMoving;
-        #endregion
-
-        #region SRD
-        private bool _isSrd1ArmOn;
-        private bool _isSrd1RotationOn;
-        private bool _isSrd2ArmOn;
-        private bool _isSrd2RotationOn;
-        private bool _isSRDsMoving;
-        #endregion
-
-        #region Transporters
-        private bool _isLoaderGantryOn;
-        private bool _isLoaderElevatorOn;
-        private bool _isLoaderTransMoving;
-        private bool _isProcessGantryOn;
-        private bool _isProcessElevatorOn;
-        private bool _isProcessTransMoving;
-        #endregion
-
-
-
-
-
         #endregion
 
         #region 属性
         public SafetyData CommonSafetyData { get { return _commonSafetyData; } set { SetProperty(ref _commonSafetyData, value); } }
 
-        #region Loader
-        public bool IsLoaderRotationOn { get { return _isLoaderRotationOn; } set { SetProperty(ref _isLoaderRotationOn, value); } }
-        public bool IsLoaderASwingOn { get { return _isLoaderASwingOn; } set { SetProperty(ref _isLoaderASwingOn, value); } }
-        public bool IsLoaderATiltOn { get { return _isLoaderATiltOn; } set { SetProperty(ref _isLoaderATiltOn, value); } }
-        public bool IsLoaderBSwingOn { get { return _isLoaderBSwingOn; } set { SetProperty(ref _isLoaderBSwingOn, value); } }
-        public bool IsLoaderBTiltOn { get { return _isLoaderBTiltOn; } set { SetProperty(ref _isLoaderBTiltOn, value); } }
-        /// <summary>
-        /// Is Loader Moving
-        /// </summary>
-        public bool IsLoaderMoving { get { return _isLoaderMoving; } set { SetProperty(ref _isLoaderMoving, value); } }
-        #endregion
-
-        #region PUFs
-        public bool IsPuf1VerticalOn { get { return _isPuf1VerticalOn; } set { SetProperty(ref _isPuf1VerticalOn, value); } }
-        public bool IsPuf1RotationOn { get { return _isPuf1RotationOn; } set { SetProperty(ref _isPuf1RotationOn, value); } }
-        public bool IsPuf1FlipOn { get { return _isPuf1FlipOn; } set { SetProperty(ref _isPuf1FlipOn, value); } }
-        public bool IsPuf2VerticalOn { get { return _isPuf2VerticalOn; } set { SetProperty(ref _isPuf2VerticalOn, value); } }
-        public bool IsPuf2RotationOn { get { return _isPuf2RotationOn; } set { SetProperty(ref _isPuf2RotationOn, value); } }
-        public bool IsPuf2FlipOn { get { return _isPuf2FlipOn; } set { SetProperty(ref _isPuf2FlipOn, value); } }
-        /// <summary>
-        /// Is Pufs Moving
-        /// </summary>
-        public bool IsPufsMoving { get { return _isPufsMoving; } set { SetProperty(ref _isPufsMoving, value); } }
-        #endregion
-
-        #region SRD
-        public bool IsSrd1ArmOn { get { return _isSrd1ArmOn; } set { SetProperty(ref _isSrd1ArmOn, value); } }
-        public bool IsSrd1RotationOn { get { return _isSrd1RotationOn; } set { SetProperty(ref _isSrd1RotationOn, value);}}
-        public bool IsSrd2ArmOn { get { return _isSrd2ArmOn; } set { SetProperty(ref _isSrd2ArmOn, value); } }
-        public bool IsSrd2RotationOn { get { return _isSrd2RotationOn; } set { SetProperty(ref _isSrd2RotationOn, value); } }
-        /// <summary>
-        /// Is SRDs Moving
-        /// </summary>
-        public bool IsSRDsMoving { get { return _isSRDsMoving; } set { SetProperty(ref _isSRDsMoving, value); } }
-        #endregion
-
-        #region Transporters
-        public bool IsLoaderGantryOn { get { return _isLoaderGantryOn; } set { SetProperty(ref _isLoaderGantryOn, value); } }
-        public bool IsLoaderElevatorOn { get { return _isLoaderElevatorOn; } set { SetProperty(ref _isLoaderElevatorOn, value); } }
-        /// <summary>
-        /// Is LoaderTransporters Moving
-        /// </summary>
-        public bool IsLoaderTransMoving { get { return _isLoaderTransMoving; } set { SetProperty(ref _isLoaderTransMoving, value); }}
-        public bool IsProcessGantryOn { get { return _isProcessGantryOn; } set { SetProperty(ref _isProcessGantryOn, value); } }
-        public bool IsProcessElevatorOn { get { return _isProcessElevatorOn; } set { SetProperty(ref _isProcessElevatorOn, value); } }
-        /// <summary>
-        /// Is ProcessTransporters Moving
-        /// </summary>
-        public bool IsProcessTransMoving { get { return _isProcessTransMoving; } set { SetProperty(ref _isProcessTransMoving, value); } }
-        #endregion
+   
 
         #endregion
 
@@ -145,12 +56,14 @@ namespace PunkHPX8_MainPages.ViewModels
         public ICommand PauseCommand { get; private set; }
         public ICommand ResumeCommand { get; private set; }
         public ICommand ResetCommand { get; private set; }
-        public ICommand LockLoaderDoorsCommand { get; private set; }
-        public ICommand UnlockLoaderDoorsCommand { get; private set; }
-        public ICommand LockBufferDoorsCommand { get; private set; }
-        public ICommand UnlockBufferDoorsCommand { get; private set; }
-        public ICommand LockProcessDoorsCommand { get; private set; }
-        public ICommand UnlockProcessDoorsCommand { get; private set; }
+        public ICommand LockCassetteDoorsCommand { get; private set; }
+        public ICommand UnlockCassetteDoorsCommand { get; private set; }
+        public ICommand LockCell12DoorsCommand { get; private set; }
+        public ICommand UnlockCell12DoorsCommand { get; private set; }
+        public ICommand LockCell34DoorsCommand { get; private set; }
+        public ICommand UnlockCell34DoorsCommand { get; private set; }
+        public ICommand LockAlignerDoorsCommand { get; private set; }
+        public ICommand UnlockAlignerDoorsCommand { get; private set; }
         public ICommand AllOnCommand { get; private set; }
 
         #endregion
@@ -163,12 +76,14 @@ namespace PunkHPX8_MainPages.ViewModels
             PauseCommand = new DelegateCommand<Object>(PauseAction);
             ResumeCommand = new DelegateCommand<Object>(ResumeAction);
             ResetCommand = new DelegateCommand<Object>(ResetAction);
-            LockLoaderDoorsCommand = new DelegateCommand<Object>(LockLoaderDoorsAction);
-            UnlockLoaderDoorsCommand = new DelegateCommand<Object>(UnlockLoaderDoorsAction);
-            LockBufferDoorsCommand = new DelegateCommand<Object>(LockBufferDoorsAction);
-            UnlockBufferDoorsCommand = new DelegateCommand<Object>(UnlockBufferDoorsAction);
-            LockProcessDoorsCommand = new DelegateCommand<Object>(LockProcessDoorsAction);
-            UnlockProcessDoorsCommand = new DelegateCommand<Object>(UnlockProcessDoorsAction);
+            LockCassetteDoorsCommand = new DelegateCommand<Object>(LockCassetteDoorsAction);
+            UnlockCassetteDoorsCommand = new DelegateCommand<Object>(UnlockCassetteDoorsAction);
+            LockCell12DoorsCommand = new DelegateCommand<Object>(LockCell12DoorsAction);
+            UnlockCell12DoorsCommand = new DelegateCommand<Object>(UnlockCell12DoorsAction);
+            LockCell34DoorsCommand = new DelegateCommand<Object>(LockCell34DoorsAction);
+            UnlockCell34DoorsCommand = new DelegateCommand<Object>(UnlockCell34DoorsAction);
+            LockAlignerDoorsCommand = new DelegateCommand<Object>(LockAlignerDoorsAction);
+            UnlockAlignerDoorsCommand = new DelegateCommand<Object>(UnlockAlignerDoorsAction);
             AllOnCommand = new DelegateCommand<Object>(AllOnAction);
         }
 
@@ -180,57 +95,6 @@ namespace PunkHPX8_MainPages.ViewModels
             _rtDataKeys.Clear();
             _rtDataKeys.Add($"Safety.{SAFETY_DATA}");
             _rtDataKeys.Add($"Safety.{IS_INITIALIZED}");
-            
-            _rtDataKeys.Add($"Loader1.Rotation.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"Loader1.ShuttleA.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"Loader1.TiltA.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"Loader1.ShuttleB.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"Loader1.TiltB.{IS_SWITCH_ON}");
-            
-            _rtDataKeys.Add($"SRD1.Arm.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"SRD1.Rotation.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"SRD2.Arm.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"SRD2.Rotation.{IS_SWITCH_ON}");
-            
-            _rtDataKeys.Add($"PUF1.Vertical.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"PUF1.Rotation.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"PUF1.Flip.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"PUF2.Vertical.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"PUF2.Rotation.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"PUF2.Flip.{IS_SWITCH_ON}");
-
-            _rtDataKeys.Add($"Transporter2.Gantry.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"Transporter2.Elevator.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"Transporter1.Gantry.{IS_SWITCH_ON}");
-            _rtDataKeys.Add($"Transporter1.Elevator.{IS_SWITCH_ON}");
-            //Is Moving
-            _rtDataKeys.Add($"Loader1.Rotation.{IS_MOVING}");
-            _rtDataKeys.Add($"Loader1.ShuttleA.{IS_MOVING}");
-            _rtDataKeys.Add($"Loader1.TiltA.{IS_MOVING}");
-            _rtDataKeys.Add($"Loader1.ShuttleB.{IS_MOVING}");
-            _rtDataKeys.Add($"Loader1.TiltB.{IS_MOVING}");
-
-            _rtDataKeys.Add($"SRD1.Arm.{IS_MOVING}");
-            _rtDataKeys.Add($"SRD1.Rotation.{IS_MOVING}");
-            _rtDataKeys.Add($"SRD2.Arm.{IS_MOVING}");
-            _rtDataKeys.Add($"SRD2.Rotation.{IS_MOVING}");
-
-            _rtDataKeys.Add($"PUF1.Vertical.{IS_MOVING}");
-            _rtDataKeys.Add($"PUF1.Rotation.{IS_MOVING}");
-            _rtDataKeys.Add($"PUF1.Flip.{IS_MOVING}");
-            _rtDataKeys.Add($"PUF2.Vertical.{IS_MOVING}");
-            _rtDataKeys.Add($"PUF2.Rotation.{IS_MOVING}");
-            _rtDataKeys.Add($"PUF2.Flip.{IS_MOVING}");
-
-            _rtDataKeys.Add($"Transporter2.Gantry.{IS_MOVING}");
-            _rtDataKeys.Add($"Transporter2.Elevator.{IS_MOVING}");
-            _rtDataKeys.Add($"Transporter1.Gantry.{IS_MOVING}");
-            _rtDataKeys.Add($"Transporter1.Elevator.{IS_MOVING}");
-
-            _rtDataKeys.Add($"SRD1.Rotation.{IS_MOVING}");
-            _rtDataKeys.Add($"SRD1.Arm.{IS_MOVING}");
-            _rtDataKeys.Add($"SRD2.Rotation.{IS_MOVING}");
-            _rtDataKeys.Add($"SRD2.Arm.{IS_MOVING}");
 
         }
         
@@ -264,30 +128,6 @@ namespace PunkHPX8_MainPages.ViewModels
                 {
 
                     CommonSafetyData = CommonFunction.GetValue<SafetyData>(_rtDataValueDic, $"Safety.{SAFETY_DATA}");
-
-                    IsLoaderRotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.Rotation.{IS_SWITCH_ON}");
-                    IsLoaderASwingOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.ShuttleA.{IS_SWITCH_ON}");
-                    IsLoaderATiltOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.TiltA.{IS_SWITCH_ON}");
-                    IsLoaderBSwingOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.ShuttleB.{IS_SWITCH_ON}");
-                    IsLoaderBTiltOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.TiltB.{IS_SWITCH_ON}");
-
-                    IsSrd1ArmOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD1.Arm.{IS_SWITCH_ON}");
-                    IsSrd1RotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD1.Rotation.{IS_SWITCH_ON}");
-                    IsSrd2ArmOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD2.Arm.{IS_SWITCH_ON}");
-                    IsSrd2RotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD2.Rotation.{IS_SWITCH_ON}");
-
-                    IsPuf1VerticalOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Vertical.{IS_SWITCH_ON}");
-                    IsPuf1RotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Rotation.{IS_SWITCH_ON}");
-                    IsPuf1FlipOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Flip.{IS_SWITCH_ON}");
-                    IsPuf2VerticalOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Vertical.{IS_SWITCH_ON}");
-                    IsPuf2RotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Rotation.{IS_SWITCH_ON}");
-                    IsPuf2FlipOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Flip.{IS_SWITCH_ON}");
-
-                    IsLoaderGantryOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter2.Gantry.{IS_SWITCH_ON}");
-                    IsLoaderElevatorOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter2.Elevator.{IS_SWITCH_ON}");
-                    IsProcessGantryOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter1.Gantry.{IS_SWITCH_ON}");
-                    IsProcessElevatorOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter1.Elevator.{IS_SWITCH_ON}");
-
                     //判断电机Moving状态
                     JudgeMoving();
                 }
@@ -339,53 +179,38 @@ namespace PunkHPX8_MainPages.ViewModels
         {
             InvokeClient.Instance.Service.DoOperation("Safety.ResetOperation");
         }
-        /// <summary>
-        /// LockLoaderDoors
-        /// </summary>
-        /// <param name="param"></param>
-        private void LockLoaderDoorsAction(object param)
+        
+        private void LockCassetteDoorsAction(object param)
         {
-            InvokeClient.Instance.Service.DoOperation("Safety.LockLoaderDoors");
+            InvokeClient.Instance.Service.DoOperation("Safety.LockCasseteDoor");
         }
-        /// <summary>
-        /// UnlockLoaderDoors
-        /// </summary>
-        /// <param name="param"></param>
-        private void UnlockLoaderDoorsAction(object param)
+        private void UnlockCassetteDoorsAction(object param)
         {
-            InvokeClient.Instance.Service.DoOperation("Safety.UnlockLoaderDoors");
+            InvokeClient.Instance.Service.DoOperation("Safety.UnlockCasseteDoor");
         }
-        /// <summary>
-        /// LockBufferDoors
-        /// </summary>
-        /// <param name="param"></param>
-        private void LockBufferDoorsAction(object param)
+        private void LockCell12DoorsAction(object param)
         {
-            InvokeClient.Instance.Service.DoOperation("Safety.LockBufferDoors");
+            InvokeClient.Instance.Service.DoOperation("Safety.LockCell12Door");
         }
-        /// <summary>
-        /// UnlockBufferDoors
-        /// </summary>
-        /// <param name="param"></param>
-        private void UnlockBufferDoorsAction(object param)
+        private void UnlockCell12DoorsAction(object param)
         {
-            InvokeClient.Instance.Service.DoOperation("Safety.UnlockBufferDoors");
+            InvokeClient.Instance.Service.DoOperation("Safety.UnlockCell12Door");
         }
-        /// <summary>
-        /// LockProcessDoors
-        /// </summary>
-        /// <param name="param"></param>
-        private void LockProcessDoorsAction(object param)
+        private void LockCell34DoorsAction(object param)
         {
-            InvokeClient.Instance.Service.DoOperation("Safety.LockProcessDoors");
+            InvokeClient.Instance.Service.DoOperation("Safety.LockCell34Door");
         }
-        /// <summary>
-        /// UnlockProcessDoors
-        /// </summary>
-        /// <param name="param"></param>
-        private void UnlockProcessDoorsAction(object param)
+        private void UnlockCell34DoorsAction(object param)
+        {
+            InvokeClient.Instance.Service.DoOperation("Safety.UnlockCell34Door");
+        }
+        private void LockAlignerDoorsAction(object param)
+        {
+            InvokeClient.Instance.Service.DoOperation("Safety.LockAlignerDoor");
+        }
+        private void UnlockAlignerDoorsAction(object param)
         {
-            InvokeClient.Instance.Service.DoOperation("Safety.UnlockProcessDoors");
+            InvokeClient.Instance.Service.DoOperation("Safety.UnlockAlignerDoor");
         }
         /// <summary>
         /// 判断各个电机Moving状态
@@ -393,70 +218,7 @@ namespace PunkHPX8_MainPages.ViewModels
         /// <param name="param"></param>
         private void JudgeMoving()
         {
-            //检测LoaderTransporter是否运动
-            bool gantryMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter2.Gantry.{IS_MOVING}");
-            bool elevatorMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter2.Elevator.{IS_MOVING}");
-            if (gantryMoving || elevatorMoving)
-            {
-                IsLoaderTransMoving = true;
-            }
-            else
-            {
-                IsLoaderTransMoving = false;
-            }
-            //检测ProcessTransporter是否运动
-            gantryMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter1.Gantry.{IS_MOVING}");
-            elevatorMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter1.Elevator.{IS_MOVING}");
-            if (gantryMoving || elevatorMoving)
-            {
-                IsProcessTransMoving = true;
-            }
-            else
-            {
-                IsProcessTransMoving = false;
-            }
-            //检测Pufs是否运动
-            bool puf1VerticalMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Vertical.{IS_MOVING}");
-            bool puf1RotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Rotation.{IS_MOVING}");
-            bool puf1FlipMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Flip.{IS_MOVING}");
-            bool puf2VerticalMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Vertical.{IS_MOVING}");
-            bool puf2RotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Rotation.{IS_MOVING}");
-            bool puf2FlipMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Flip.{IS_MOVING}");
-            if (puf1VerticalMoving || puf1RotationMoving || puf1FlipMoving || puf2VerticalMoving || puf2RotationMoving || puf2FlipMoving)
-            {
-                IsPufsMoving = true;
-            }
-            else
-            {
-                IsPufsMoving = false;
-            }
-            //检测Loader是否运动
-            bool loaderRotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.Rotation.{IS_MOVING}");
-            bool loaderSwingAMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.ShuttleA.{IS_MOVING}");
-            bool loaderSwingBMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.ShuttleB.{IS_MOVING}");
-            bool loaderTiltAMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.TiltA.{IS_MOVING}");
-            bool loaderTiltBMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.TiltB.{IS_MOVING}");
-            if (loaderRotationMoving || loaderSwingAMoving || loaderSwingBMoving || loaderTiltAMoving || loaderTiltBMoving)
-            {
-                IsLoaderMoving = true;
-            }
-            else
-            {
-                IsLoaderMoving = false;
-            }
-            //检测SRDs是否运动
-            bool srd1RotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD1.Rotation.{IS_MOVING}");
-            bool srd1ArmMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD1.Arm.{IS_MOVING}");
-            bool srd2RotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD2.Rotation.{IS_MOVING}");
-            bool srd2ArmMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD2.Arm.{IS_MOVING}");
-            if (srd1RotationMoving || srd1ArmMoving || srd2RotationMoving || srd2ArmMoving)
-            {
-                IsSRDsMoving = true;
-            }
-            else
-            {
-                IsSRDsMoving = false;
-            }
+            
         }
 
         #endregion

+ 293 - 467
PunkHPX8_MainPages/Views/SystemSafetyView.xaml

@@ -27,117 +27,98 @@
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="380"></ColumnDefinition>
-            <ColumnDefinition Width="660"></ColumnDefinition>
-            <ColumnDefinition Width="380"></ColumnDefinition>
+            <ColumnDefinition Width="420"></ColumnDefinition>
             <ColumnDefinition Width="380"></ColumnDefinition>
+            <ColumnDefinition Width="500"></ColumnDefinition>
             <ColumnDefinition/>
         </Grid.ColumnDefinitions>
         <Grid Grid.Column="0">
             <Grid.RowDefinitions>
                 <RowDefinition Height="200"></RowDefinition>
-                <RowDefinition Height="650"></RowDefinition>
+                <RowDefinition Height="1"></RowDefinition>
+                <RowDefinition Height="450"></RowDefinition>
+                <RowDefinition Height="150"></RowDefinition>
             </Grid.RowDefinitions>
-            <!--<GroupBox Grid.Row="0" Header="Scheduler/Job Status" VerticalAlignment="Top" Margin="5,0,5,0" Height="180">
+            <GroupBox Grid.Row="4" Grid.Column="0" Header="Controls" Height="100"  Margin="5,0,5,0">
                 <Grid>
                     <Grid.RowDefinitions>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                    </Grid.RowDefinitions>
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="200"></ColumnDefinition>
+                        <ColumnDefinition Width="100"></ColumnDefinition>
+                    </Grid.ColumnDefinitions>
+                    <Label Grid.Row="0" Grid.Column="0" Content="Halt Button Left" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
+                    <Label Grid.Row="1" Grid.Column="0" Content="Halt Button Right" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
+                    <Ellipse Grid.Row="0" Grid.Column="1" Margin="0,7,-15,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.HaltButtonLeft,Converter={StaticResource boolToGreenRedColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    <Ellipse Grid.Row="1" Grid.Column="1" Margin="0,7,-15,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.HaltButtonRight,Converter={StaticResource boolToGreenRedColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                </Grid>
+            </GroupBox>
+            <GroupBox Grid.Row="0" Grid.RowSpan="2" Header="Scheduler/Job Status" Height="190" VerticalAlignment="Top" Margin="5,0,5,0">
+                <Grid>
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
                     </Grid.RowDefinitions>
                     <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="130"></ColumnDefinition>
-                        <ColumnDefinition Width="110"></ColumnDefinition>
-                        <ColumnDefinition Width="110"></ColumnDefinition>
+                        <ColumnDefinition Width="150"></ColumnDefinition>
+                        <ColumnDefinition Width="100"></ColumnDefinition>
+                        <ColumnDefinition Width="100"></ColumnDefinition>
                     </Grid.ColumnDefinitions>
-                    <Label Grid.Row="0" Grid.Column="0" Content="Scheduler Mode" VerticalAlignment="Center" FontWeight="Bold"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="Processing State" VerticalAlignment="Center" FontWeight="Bold"/>
-                    <TextBox Name="SchedulerMode" Grid.Row="1" Grid.Column="0" Width="80" Height="30" HorizontalContentAlignment="Left" VerticalContentAlignment="Center"/>
-                    <TextBox Name="ProcessingState" Grid.Row="3" Grid.Column="0" Width="80" Height="30" HorizontalContentAlignment="Left" VerticalContentAlignment="Center"/>
-                    <Button Grid.Row="1" Grid.Column="1" Style="{StaticResource SysBtnStyle}"  Content="Pause" Width="75" Height="30" HorizontalAlignment="Center" Command="{Binding PauseCommand}"></Button>
-                    <Button Grid.Row="1" Grid.Column="2" Style="{StaticResource SysBtnStyle}"  Content="Resume" Width="75" Height="30" HorizontalAlignment="Center" Command="{Binding ResumeCommand}"></Button>
+                    <Label Grid.Row="0" Grid.Column="0" Content="Schedule Mode" VerticalAlignment="Center" FontWeight="Bold" Margin="25,0,0,0"/>
+                    <Label Grid.Row="2" Grid.Column="0" Content="Processing State" VerticalAlignment="Center" FontWeight="Bold" Margin="25,0,0,0"/>
+                    <Border Grid.Row="1" Grid.Column="0"  Margin="5,5,5,5" Background="Black" Width="70" VerticalAlignment="Center" HorizontalAlignment="Right" >
+                        <TextBlock  Text="{Binding ElementName=self,Path=TotalFlow}" Foreground="Lime" FontSize="16" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left"/>
+                    </Border>
+                    <Border Grid.Row="3" Grid.Column="0"  Margin="5,5,5,5" Background="Black" Width="70" VerticalAlignment="Center" HorizontalAlignment="Right" >
+                        <TextBlock  Text="{Binding ElementName=self,Path=TotalFlow}" Foreground="Lime" FontSize="16" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left"/>
+                    </Border>
+                    <Button Grid.Row="1" Grid.Column="1" Style="{StaticResource SysBtnStyle}"  Content="Pause" Width="75" Height="25" HorizontalAlignment="Center" Command="{Binding ResetCommand}" Margin="0,0,0,0"></Button>
+                    <Button Grid.Row="1" Grid.Column="3" Style="{StaticResource SysBtnStyle}"  Content="Resi,e" Width="75" Height="25" HorizontalAlignment="Center" Command="{Binding ResetCommand}" Margin="0,0,0,0"></Button>
                 </Grid>
-            </GroupBox>-->
-            <GroupBox Grid.Row="0" Grid.RowSpan="2" Header="Safety I/O" VerticalAlignment="Top" Margin="5,0,5,0">
+            </GroupBox>
+            <GroupBox Grid.Row="2" Grid.RowSpan="2" Header="Safety I/O" VerticalAlignment="Top" Margin="5,0,5,0">
                 <Grid>
                     <Grid.RowDefinitions>
-                        <RowDefinition Height="80"></RowDefinition>
+                        <RowDefinition Height="1"></RowDefinition>
                         <RowDefinition Height="40"></RowDefinition>
                         <RowDefinition Height="40"></RowDefinition>
                         <RowDefinition Height="40"></RowDefinition>
-                        <RowDefinition Height="400"></RowDefinition>
+                        <RowDefinition Height="300"></RowDefinition>
                     </Grid.RowDefinitions>
                     <Grid.ColumnDefinitions>
                         <ColumnDefinition Width="200"></ColumnDefinition>
                         <ColumnDefinition Width="100"></ColumnDefinition>
                         <ColumnDefinition Width="50"></ColumnDefinition>
                     </Grid.ColumnDefinitions>
-                    <Button Grid.Row="0" Grid.Column="0" Style="{StaticResource SysBtnStyle}"  Content="Reset" Width="75" Height="30" HorizontalAlignment="Left" Command="{Binding ResetCommand}" Margin="10,0,0,0"></Button>
-                    <Grid Grid.Row="0" Grid.Column="1">
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                        </Grid.ColumnDefinitions>
-                        <Label Grid.Column="0">
-                            <TextBlock Text="Main" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,40,0,0">
-                                <TextBlock.LayoutTransform>
-                                    <RotateTransform Angle="-90"/>
-                                </TextBlock.LayoutTransform>
-                            </TextBlock>
-                        </Label>
-                        <Label Grid.Column="1">
-                            <TextBlock Text="Ldr/puf" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,25,0,0">
-                                <TextBlock.LayoutTransform>
-                                    <RotateTransform Angle="-90"/>
-                                </TextBlock.LayoutTransform>
-                            </TextBlock>
-                        </Label>
-                        <Label Grid.Column="2">
-                            <TextBlock Text="SRD" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,45,0,0">
-                                <TextBlock.LayoutTransform>
-                                    <RotateTransform Angle="-90"/>
-                                </TextBlock.LayoutTransform>
-                            </TextBlock>
-                        </Label>
-                        <Label Grid.Column="3">
-                            <TextBlock Text="Transp" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,30,0,0">
-                                <TextBlock.LayoutTransform>
-                                    <RotateTransform Angle="-90"/>
-                                </TextBlock.LayoutTransform>
-                            </TextBlock>
-                        </Label>
-                    </Grid>
-                    <Label Grid.Row="1" Grid.Column="0" Content="Communication Status" VerticalAlignment="Center" FontWeight="Bold"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="Function Block Status" VerticalAlignment="Center" FontWeight="Bold"/>
-                    <Label Grid.Row="3" Grid.Column="0" Content="TwinCAT State" VerticalAlignment="Center" FontWeight="Bold"/>
-                    <Grid Grid.Row="1" Grid.Column="1">
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                        </Grid.ColumnDefinitions>
-                        <Ellipse Grid.Column="0" Margin="4,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.MainCommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderPufCommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Column="2" Margin="4,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdCommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Column="3" Margin="4,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.TransportCommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                    </Grid>
-                    <Grid Grid.Row="2" Grid.Column="1">
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                            <ColumnDefinition Width="25"></ColumnDefinition>
-                        </Grid.ColumnDefinitions>
-                        <Ellipse Grid.Column="0" Margin="4,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.MainFunctionBlockErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderPufFunctionBlockErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Column="2" Margin="4,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdFunctionBlockErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Column="3" Margin="4,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.TransporterFunctionBlockErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
-                    </Grid>
-                    <TextBox Name="TwinCATState"  Grid.Row="3" Grid.Column="1" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.TwincatState}"/>
-                    <Ellipse Grid.Row="3" Grid.Column="2"  Width="16" Height="16" Stroke="Silver" HorizontalAlignment="Left">
+                    <Button Grid.Row="2" Grid.Column="0" Style="{StaticResource SysBtnStyle}"  Content="Reset" Width="75" Height="30" HorizontalAlignment="Left" Command="{Binding ResetCommand}" Margin="35,0,0,0"></Button>
+
+                    <Label Grid.Row="1" Grid.Column="0" Grid.RowSpan="2" Margin="165,35,0,0">
+                        <TextBlock Text="State" FontWeight="Bold" HorizontalAlignment="Right" >
+                            <TextBlock.LayoutTransform>
+                                <RotateTransform Angle="-90"/>
+                            </TextBlock.LayoutTransform>
+                        </TextBlock>
+                    </Label>
+                    <Label Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Margin="65,20,0,0">
+                        <TextBlock Text="ComErr" FontWeight="Bold" HorizontalAlignment="Right" >
+                            <TextBlock.LayoutTransform>
+                                <RotateTransform Angle="-90"/>
+                            </TextBlock.LayoutTransform>
+                        </TextBlock>
+                    </Label>
+                    <Label Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" Margin="0,30,0,0">
+                        <TextBlock Text="FbErr" FontWeight="Bold" HorizontalAlignment="Right" >
+                            <TextBlock.LayoutTransform>
+                                <RotateTransform Angle="-90"/>
+                            </TextBlock.LayoutTransform>
+                        </TextBlock>
+                    </Label>
+                    <Label Grid.Row="3" Grid.Column="0" Content="TwinCAT State" VerticalAlignment="Center" FontWeight="Bold" Margin="25,0,0,0"/>
+                    <Ellipse Grid.Row="3" Grid.Column="0" Margin="4,7,12,7" Width="16" Height="16" Stroke="Silver" HorizontalAlignment="Right">
                         <Ellipse.Style>
                             <Style TargetType="Ellipse">
                                 <Setter Property="Fill" Value="red"/>
@@ -149,8 +130,12 @@
                             </Style>
                         </Ellipse.Style>
                     </Ellipse>
+                    <Ellipse Grid.Row="3" Grid.Column="1" Margin="72,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.MainCommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                    <Ellipse Grid.Row="3" Grid.Column="2" Margin="0,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.MainFbErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                    <TextBox Name="TwinCATState"  Margin="-37,0,0,0" Grid.Row="3" Grid.Column="1" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.TwincatState}"/>
+
                     <Grid Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3" >
-                        <GroupBox Header="Hot Connect Groups" Margin="10,10,20,20">
+                        <GroupBox Header="Controllers" Margin="10,10,20,20">
                             <Grid>
                                 <Grid.RowDefinitions>
                                     <RowDefinition Height="30"></RowDefinition>
@@ -161,111 +146,126 @@
                                     <RowDefinition Height="30"></RowDefinition>
                                     <RowDefinition Height="30"></RowDefinition>
                                     <RowDefinition Height="30"></RowDefinition>
-                                    <RowDefinition Height="30"></RowDefinition>
+
                                 </Grid.RowDefinitions>
                                 <Grid.ColumnDefinitions>
-                                    <ColumnDefinition Width="200"></ColumnDefinition>
-                                    <ColumnDefinition Width="100"></ColumnDefinition>
+                                    <ColumnDefinition Width="32"></ColumnDefinition>
+                                    <ColumnDefinition Width="118"/>
+                                    <ColumnDefinition Width="30"></ColumnDefinition>
+                                    <ColumnDefinition Width="70"></ColumnDefinition>
+                                    <ColumnDefinition Width="30"></ColumnDefinition>
+                                    <ColumnDefinition Width="30"></ColumnDefinition>
                                 </Grid.ColumnDefinitions>
-                                <Label Grid.Row="0" Grid.Column="0" Content="Transporter" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
-                                <Label Grid.Row="1" Grid.Column="0" Content="Loader TX I/O" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
-                                <Label Grid.Row="2" Grid.Column="0" Content="Process TX I/O" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
-                                <Label Grid.Row="3" Grid.Column="0" Content="Loader" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
-                                <Label Grid.Row="4" Grid.Column="0" Content="PUF" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
-                                <Label Grid.Row="5" Grid.Column="0" Content="SRD" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
-                                <Label Grid.Row="6" Grid.Column="0" Content="Reservoir 1" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
-                                <Label Grid.Row="7" Grid.Column="0" Content="Reservoir 2" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
+                                <Label Grid.Column="0" Content="Facility Ctrl" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
+                                <Label Grid.Row="1" Grid.Column="0" Content="VPW Ctrl" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
+                                <Label Grid.Row="2" Grid.Column="0" Content="Reservoir 1/2 Ctrl" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
+                                <Label Grid.Row="3" Grid.Column="0" Content="Reservoir 3/4 Ctrl" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
+                                <Label Grid.Row="4" Grid.Column="0" Content="PlatingCell 1/2 Ctrl" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
+                                <Label Grid.Row="5" Grid.Column="0" Content="PlatingCell 3/4 Ctrl" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
+                                <Label Grid.Row="6" Grid.Column="0" Content="SRD Ctrl" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Grid.ColumnSpan="2"/>
 
-                                <Ellipse Grid.Row="0" Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16" Stroke="Silver" HorizontalAlignment="Left">
-                                    <Ellipse.Style>
-                                        <Style TargetType="Ellipse">
-                                            <Setter Property="Fill" Value="red"/>
-                                            <Style.Triggers>
-                                                <DataTrigger Binding="{Binding CommonSafetyData.TransporterHotConnectState}" Value="8">
-                                                    <Setter Property="Fill" Value="lime" />
-                                                </DataTrigger>
-                                            </Style.Triggers>
-                                        </Style>
-                                    </Ellipse.Style>
-                                </Ellipse>
-                                <Ellipse Grid.Row="1" Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
+                                <TextBox Grid.Row="0" Grid.Column="3" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.FacilityHotConnectState}" Margin="0,2,0,2"/>
+                                <TextBox Grid.Row="1" Grid.Column="3" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.VpwHotConnectState}" Margin="0,2,0,2"/>
+                                <TextBox Grid.Row="2" Grid.Column="3" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.Res12HotConnectState}" Margin="0,2,0,2"/>
+                                <TextBox Grid.Row="3" Grid.Column="3" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.Res34HotConnectState}" Margin="0,2,0,2"/>
+                                <TextBox Grid.Row="4" Grid.Column="3" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.Plating12HotConnectState}" Margin="0,2,0,2"/>
+                                <TextBox Grid.Row="5" Grid.Column="3" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.Plating34HotConnectState}" Margin="0,2,0,2"/>
+                                <TextBox Grid.Row="6" Grid.Column="3" Width="70" Height="25" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Text="{Binding CommonSafetyData.SrdHotConnectState}" Margin="0,2,0,2"/>
+
+                                <Ellipse Grid.Row="0" Grid.Column="4" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.FacilityCommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="1" Grid.Column="4" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.VpwCommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="2" Grid.Column="4" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Res12CommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="3" Grid.Column="4" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Res34CommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="4" Grid.Column="4" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Plating12CommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="5" Grid.Column="4" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Plating34CommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="6" Grid.Column="4" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdCommErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+
+                                <Ellipse Grid.Row="0" Grid.Column="5" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.FacilityFbErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="1" Grid.Column="5" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.VpwFbErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="2" Grid.Column="5" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Res12FbErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="3" Grid.Column="5" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Res34FbErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="4" Grid.Column="5" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Plating12FbErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="5" Grid.Column="5" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Plating34FbErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+                                <Ellipse Grid.Row="6" Grid.Column="5" Margin="5,7,0,7" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdFbErr,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Left"/>
+
+                                <Ellipse Grid.Row="0" Grid.Column="2" Margin="4,7,0,7" Width="16" Height="16" Stroke="Silver" HorizontalAlignment="Left">
                                     <Ellipse.Style>
                                         <Style TargetType="Ellipse">
                                             <Setter Property="Fill" Value="red"/>
                                             <Style.Triggers>
-                                                <DataTrigger Binding="{Binding CommonSafetyData.LdrHotConnectState}" Value="8">
+                                                <DataTrigger Binding="{Binding CommonSafetyData.FacilityHotConnectState}" Value="8">
                                                     <Setter Property="Fill" Value="lime" />
                                                 </DataTrigger>
                                             </Style.Triggers>
                                         </Style>
                                     </Ellipse.Style>
                                 </Ellipse>
-                                <Ellipse Grid.Row="2" Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
+                                <Ellipse Grid.Row="1" Grid.Column="2" Margin="4,7,0,7" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
                                     <Ellipse.Style>
                                         <Style TargetType="Ellipse">
                                             <Setter Property="Fill" Value="red"/>
                                             <Style.Triggers>
-                                                <DataTrigger Binding="{Binding CommonSafetyData.PrcHotConnectState}" Value="8">
+                                                <DataTrigger Binding="{Binding CommonSafetyData.VpwHotConnectState}" Value="8">
                                                     <Setter Property="Fill" Value="lime" />
                                                 </DataTrigger>
                                             </Style.Triggers>
                                         </Style>
                                     </Ellipse.Style>
                                 </Ellipse>
-                                <Ellipse Grid.Row="3" Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
+                                <Ellipse Grid.Row="2" Grid.Column="2" Margin="4,7,0,7" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
                                     <Ellipse.Style>
                                         <Style TargetType="Ellipse">
                                             <Setter Property="Fill" Value="red"/>
                                             <Style.Triggers>
-                                                <DataTrigger Binding="{Binding CommonSafetyData.LoaderHotConnectState}" Value="8">
+                                                <DataTrigger Binding="{Binding CommonSafetyData.Res12HotConnectState}" Value="8">
                                                     <Setter Property="Fill" Value="lime" />
                                                 </DataTrigger>
                                             </Style.Triggers>
                                         </Style>
                                     </Ellipse.Style>
                                 </Ellipse>
-                                <Ellipse Grid.Row="4" Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
+                                <Ellipse Grid.Row="3" Grid.Column="2" Margin="4,7,0,7" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
                                     <Ellipse.Style>
                                         <Style TargetType="Ellipse">
                                             <Setter Property="Fill" Value="red"/>
                                             <Style.Triggers>
-                                                <DataTrigger Binding="{Binding CommonSafetyData.PufHotConnectState}" Value="8">
+                                                <DataTrigger Binding="{Binding CommonSafetyData.Res34HotConnectState}" Value="8">
                                                     <Setter Property="Fill" Value="lime" />
                                                 </DataTrigger>
                                             </Style.Triggers>
                                         </Style>
                                     </Ellipse.Style>
                                 </Ellipse>
-                                <Ellipse Grid.Row="5" Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
+                                <Ellipse Grid.Row="4" Grid.Column="2" Margin="4,7,0,7" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
                                     <Ellipse.Style>
                                         <Style TargetType="Ellipse">
                                             <Setter Property="Fill" Value="red"/>
                                             <Style.Triggers>
-                                                <DataTrigger Binding="{Binding CommonSafetyData.SrdHotConnectState}" Value="8">
+                                                <DataTrigger Binding="{Binding CommonSafetyData.Plating12HotConnectState}" Value="8">
                                                     <Setter Property="Fill" Value="lime" />
                                                 </DataTrigger>
                                             </Style.Triggers>
                                         </Style>
                                     </Ellipse.Style>
                                 </Ellipse>
-                                <Ellipse Grid.Row="6" Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
+                                <Ellipse Grid.Row="5" Grid.Column="2" Margin="4,7,0,7" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
                                     <Ellipse.Style>
                                         <Style TargetType="Ellipse">
                                             <Setter Property="Fill" Value="red"/>
                                             <Style.Triggers>
-                                                <DataTrigger Binding="{Binding CommonSafetyData.Reservoir1HotConnectState}" Value="8">
+                                                <DataTrigger Binding="{Binding CommonSafetyData.Plating34HotConnectState}" Value="8">
                                                     <Setter Property="Fill" Value="lime" />
                                                 </DataTrigger>
                                             </Style.Triggers>
                                         </Style>
                                     </Ellipse.Style>
                                 </Ellipse>
-                                <Ellipse Grid.Row="7" Grid.Column="1" Margin="4,0,0,0" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
+                                <Ellipse Grid.Row="6" Grid.Column="2" Margin="4,7,0,7" Width="16" Height="16"   Stroke="Silver" HorizontalAlignment="Left">
                                     <Ellipse.Style>
                                         <Style TargetType="Ellipse">
                                             <Setter Property="Fill" Value="red"/>
                                             <Style.Triggers>
-                                                <DataTrigger Binding="{Binding CommonSafetyData.Reservoir2HotConnectState}" Value="8">
+                                                <DataTrigger Binding="{Binding CommonSafetyData.SrdHotConnectState}" Value="8">
                                                     <Setter Property="Fill" Value="lime" />
                                                 </DataTrigger>
                                             </Style.Triggers>
@@ -279,140 +279,95 @@
                 </Grid>
             </GroupBox>
         </Grid>
+        
         <Grid Grid.Column="1">
             <Grid.RowDefinitions>
                 <RowDefinition Height="600"></RowDefinition>
                 <RowDefinition Height="250"></RowDefinition>
             </Grid.RowDefinitions>
-            <GroupBox Grid.Row="0" Header="System Access">
-                <Grid>
+            <Grid>
                     <Grid.RowDefinitions>
                         <RowDefinition Height="150"></RowDefinition>
                         <RowDefinition Height="270"></RowDefinition>
                         <RowDefinition Height="180"></RowDefinition>
                     </Grid.RowDefinitions>
-                    <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="320"></ColumnDefinition>
-                        <ColumnDefinition Width="320"></ColumnDefinition>
-                    </Grid.ColumnDefinitions>
-                    <GroupBox Grid.Row="0" Grid.Column="0" Header="Controls" Margin="5,0,5,0">
-                        <Grid>
-                            <Grid.RowDefinitions>
-                                <RowDefinition Height="30"></RowDefinition>
-                                <RowDefinition Height="30"></RowDefinition>
-                                <RowDefinition Height="30"></RowDefinition>
-                                <RowDefinition Height="30"></RowDefinition>
-                            </Grid.RowDefinitions>
-                            <Grid.ColumnDefinitions>
-                                <ColumnDefinition Width="150"></ColumnDefinition>
-                                <ColumnDefinition Width="100"></ColumnDefinition>
-                                <ColumnDefinition Width="50"></ColumnDefinition>
-                            </Grid.ColumnDefinitions>
-                            <Label Grid.Row="0" Grid.Column="0" Content="Access Key :" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Label Grid.Row="1" Grid.Column="0" Content="Process Halt Button 1" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Label Grid.Row="2" Grid.Column="0" Content="Process Halt Button 2" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Label Grid.Row="3" Grid.Column="0" Content="Loader Halt Button" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Ellipse Grid.Row="0" Grid.Column="0" Margin="0,0,10,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ModeSelectorSwitch,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
-                            <Label Grid.Row="0" Grid.Column="1" Content="Normal/Slow" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Ellipse Grid.Row="0" Grid.Column="2" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ModeSelectorSwitch,Converter={StaticResource boolToColor6}}" Stroke="Silver" HorizontalAlignment="Right"/>
-                            <Ellipse Grid.Row="1" Grid.Column="2" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ProcessHaltButton1,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
-                            <Ellipse Grid.Row="2" Grid.Column="2" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ProcessHaltButton2,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
-                            <Ellipse Grid.Row="3" Grid.Column="2" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderHaltButton,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
-                        </Grid>
-                    </GroupBox>
-                    <GroupBox Grid.Row="1" Grid.Column="0" Header="Loader Access" Margin="5,0,5,80">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="420"></ColumnDefinition>
+                    <ColumnDefinition Width="220"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <GroupBox Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Header="Motion Access" Margin="5,0,5,80">
                         <Grid>
                             <Grid.RowDefinitions>
                                 <RowDefinition Height="40"></RowDefinition>
                                 <RowDefinition Height="40"></RowDefinition>
-                                <RowDefinition Height="30"></RowDefinition>
-                                <RowDefinition Height="30"></RowDefinition>
-                                <RowDefinition Height="30"></RowDefinition>
-                            </Grid.RowDefinitions>
-                            <Grid.ColumnDefinitions>
-                                <ColumnDefinition Width="120"></ColumnDefinition>
-                                <ColumnDefinition Width="80"></ColumnDefinition>
-                                <ColumnDefinition Width="100"></ColumnDefinition>
-                            </Grid.ColumnDefinitions>
-                            <Label Grid.Row="0" Grid.Column="0" Content="Loader Side Door" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                            <Label Grid.Row="1" Grid.Column="0" Content="Buffer Side Door" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                            <Label Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Content="Transporter Loader Panel" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Label Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Content="Transporter Buffer Panel" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Button Grid.Row="0" Grid.Column="1" Style="{StaticResource SysBtnStyle}"  Content="Lock" Width="65" Height="25" HorizontalAlignment="Left" Margin="4,0,0,0" Command="{Binding LockLoaderDoorsCommand}"></Button>
-                            <Button Grid.Row="0" Grid.Column="2" Style="{StaticResource SysBtnStyle}"  Content="Unlock" Width="65" Height="25" HorizontalAlignment="Left" Command="{Binding UnlockLoaderDoorsCommand}"></Button>
-                            <UserControls:LockControl  Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.LoaderDoorLocked}"/>
-                            <Button Grid.Row="1" Grid.Column="1" Style="{StaticResource SysBtnStyle}"  Content="Lock" Width="65" Height="25" HorizontalAlignment="Left" Margin="4,0,0,0" Command="{Binding LockBufferDoorsCommand}"></Button>
-                            <Button Grid.Row="1" Grid.Column="2" Style="{StaticResource SysBtnStyle}"  Content="Unlock" Width="65" Height="25" HorizontalAlignment="Left" Command="{Binding UnlockBufferDoorsCommand}"></Button>
-                            <UserControls:LockControl  Grid.Row="1" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.BufferDoorLocked}"/>
-                       
-                            <Ellipse Grid.Row="2" Grid.Column="2" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderPanelRemoved,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
-                            <Ellipse Grid.Row="3" Grid.Column="2" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.BufferPanelRemoved,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
-                        </Grid>
-                    </GroupBox>
-                    <GroupBox Grid.Row="1" Grid.Column="0" Header="Plumbing Access" VerticalAlignment="Bottom" Margin="5,0,5,0">
-                        <Grid Height="50">
-                            <Grid.ColumnDefinitions>
-                                <ColumnDefinition Width="200"></ColumnDefinition>
-                                <ColumnDefinition Width="100"></ColumnDefinition>
-                            </Grid.ColumnDefinitions>
-                            <Label Grid.Column="0" Content="Plumbing Doors Closed" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                            <Ellipse Grid.Column="1" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PlumbingDoorClosed,Converter={StaticResource boolToColor4}}" Stroke="Silver" HorizontalAlignment="Right"/>
-                        </Grid>
-                    </GroupBox>
-                    <GroupBox Grid.Row="1" Grid.Column="1" Header="Process Access" Margin="5,0,5,25">
-                        <Grid>
-                            <Grid.RowDefinitions>
-                                <RowDefinition Height="40"></RowDefinition>
                                 <RowDefinition Height="40"></RowDefinition>
                                 <RowDefinition Height="40"></RowDefinition>
                                 <RowDefinition Height="40"></RowDefinition>
                                 <RowDefinition Height="40"></RowDefinition>
-                                <RowDefinition Height="30"></RowDefinition>
+                                <RowDefinition Height="50"></RowDefinition>
                             </Grid.RowDefinitions>
                             <Grid.ColumnDefinitions>
-                                <ColumnDefinition Width="150"></ColumnDefinition>
-                                <ColumnDefinition Width="75"></ColumnDefinition>
-                                <ColumnDefinition Width="75"></ColumnDefinition>
-                            </Grid.ColumnDefinitions>
-                            <Label Grid.Row="0" Grid.Column="0" Content="Process Doors" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                            <Label Grid.Row="1" Grid.Column="0" Content="Process Door 1" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Label Grid.Row="2" Grid.Column="0" Content="Process Door 2" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Label Grid.Row="3" Grid.Column="0" Content="Process Door 3" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Label Grid.Row="4" Grid.Column="0" Content="Process Door 4" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <UserControls:LockControl  Grid.Row="1" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,4" IsLocked="{Binding CommonSafetyData.ProcessDoor1Locked}"/>
-                            <UserControls:LockControl  Grid.Row="2" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,4" IsLocked="{Binding CommonSafetyData.ProcessDoor2Locked}"/>
-                            <UserControls:LockControl  Grid.Row="3" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,4" IsLocked="{Binding CommonSafetyData.ProcessDoor3Locked}"/>
-                            <UserControls:LockControl  Grid.Row="4" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,4" IsLocked="{Binding CommonSafetyData.ProcessDoor4Locked}"/>
-                            <Label Grid.Row="5" Grid.Column="0" Content="Upper Panel" Margin="5,0,0,0" FontWeight="Bold"/>
-                            <Button Grid.Row="0" Grid.Column="1" Style="{StaticResource SysBtnStyle}"  Content="Lock" Width="65" Height="25" HorizontalAlignment="Center" Command="{Binding LockProcessDoorsCommand}"></Button>
-                            <Button Grid.Row="0" Grid.Column="2" Style="{StaticResource SysBtnStyle}"  Content="Unlock" Width="65" Height="25" HorizontalAlignment="Center" Command="{Binding UnlockProcessDoorsCommand}"></Button>
-                            <Ellipse Grid.Row="5" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ProcessUpperPanelsOn,Converter={StaticResource boolToColor4}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                        </Grid>
-                    </GroupBox>
-                    <GroupBox Grid.Row="2" Grid.Column="1" Header="SRD Access" VerticalAlignment="Top" Margin="5,0,5,0">
-                        <Grid Height="80">
-                            <Grid.ColumnDefinitions>
-                                <ColumnDefinition Width="200"></ColumnDefinition>
-                                <ColumnDefinition Width="100"></ColumnDefinition>
+                                <ColumnDefinition Width="180"></ColumnDefinition>
+                                <ColumnDefinition Width="80"></ColumnDefinition>
+                                <ColumnDefinition Width="80"></ColumnDefinition>
+                                <ColumnDefinition Width="30"></ColumnDefinition>
                             </Grid.ColumnDefinitions>
-                            <Grid.RowDefinitions>
-                                <RowDefinition Height="30"></RowDefinition>
-                                <RowDefinition Height="30"></RowDefinition>
-                            </Grid.RowDefinitions>
-                            <Label Grid.Row="0" Grid.Column="0" Content="SRD Top Panel" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                            <Ellipse Grid.Row="0" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdTopPanelRemoved,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                            <Label Grid.Row="1" Grid.Column="0" Content="SRD Lower Panel" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                            <Ellipse Grid.Row="1" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdLowerPanelRemoved,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                        </Grid>
+                            <Label Grid.Row="0" Grid.Column="0" Content="Cassette Door Left" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                            <Label Grid.Row="1" Grid.Column="0" Content="Cassette Door Right" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                            <Label Grid.Row="2" Grid.Column="0" Content="Cell 1/2 Door Left" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                            <Label Grid.Row="3" Grid.Column="0" Content="Cell 1/2 Door Right" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                            <Label Grid.Row="4" Grid.Column="0" Content="Cell 3/4 Door Left" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                            <Label Grid.Row="5" Grid.Column="0" Content="Cell 3/4 Door Right" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                            <Label Grid.Row="6" Grid.Column="0" Content="Aligner Door" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Button Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Style="{StaticResource SysBtnStyle}"  Content="Lock" Width="65" Height="25" HorizontalAlignment="Left" Margin="4,0,0,0" Command="{Binding LockCassetteDoorsCommand}"></Button>
+                        <Button Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" Style="{StaticResource SysBtnStyle}"  Content="Unlock" Width="65" Height="25" HorizontalAlignment="Left" Command="{Binding UnlockCassetteDoorsCommand}"></Button>
+                        <Button Grid.Row="2" Grid.Column="1" Grid.RowSpan="2" Style="{StaticResource SysBtnStyle}"  Content="Lock" Width="65" Height="25" HorizontalAlignment="Left" Margin="4,0,0,0" Command="{Binding LockCell12DoorsCommand}"></Button>
+                        <Button Grid.Row="2" Grid.Column="2" Grid.RowSpan="2" Style="{StaticResource SysBtnStyle}"  Content="Unlock" Width="65" Height="25" HorizontalAlignment="Left" Command="{Binding UnlockCell12DoorsCommand}"></Button>
+                        <Button Grid.Row="4" Grid.Column="1" Grid.RowSpan="2" Style="{StaticResource SysBtnStyle}"  Content="Lock" Width="65" Height="25" HorizontalAlignment="Left" Margin="4,0,0,0" Command="{Binding LockCell34DoorsCommand}"></Button>
+                        <Button Grid.Row="4" Grid.Column="2" Grid.RowSpan="2" Style="{StaticResource SysBtnStyle}"  Content="Unlock" Width="65" Height="25" HorizontalAlignment="Left" Command="{Binding UnlockCell34DoorsCommand}"></Button>
+                        <Button Grid.Row="6" Grid.Column="1" Grid.RowSpan="2" Style="{StaticResource SysBtnStyle}"  Content="Lock" Width="65" Height="25" HorizontalAlignment="Left" Margin="4,0,0,0" Command="{Binding LockAlignerDoorsCommand}"></Button>
+                        <Button Grid.Row="6" Grid.Column="2" Grid.RowSpan="2" Style="{StaticResource SysBtnStyle}"  Content="Unlock" Width="65" Height="25" HorizontalAlignment="Left" Command="{Binding UnlockAlignerDoorsCommand}"></Button>
+                        <UserControls:LockControl  Grid.Row="0" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.CassetteDoorsLeftLocked}"/>
+                        <UserControls:LockControl  Grid.Row="1" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.CassetteDoorsRightLocked}"/>
+                        <UserControls:LockControl  Grid.Row="2" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.Cell12DoorsLeftLocked}"/>
+                        <UserControls:LockControl  Grid.Row="3" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.Cell12DoorsRightLocked}"/>
+                        <UserControls:LockControl  Grid.Row="4" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.Cell34DoorsLeftLocked}"/>
+                        <UserControls:LockControl  Grid.Row="5" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.Cell34DoorsRightLocked}"/>
+                        <UserControls:LockControl  Grid.Row="6" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,5" IsLocked="{Binding CommonSafetyData.AlignerDoorClosed}"/>
+                    </Grid>
                     </GroupBox>
-                </Grid>
-            </GroupBox>
-            <Grid Grid.Row="1">
+                <GroupBox Grid.Row="1" Grid.Column="0" Grid.RowSpan="2" Header="Door And Access Panels" VerticalAlignment="Center" Margin="5,150,5,0" >
+                    <Grid Height="200">
+                        <Grid.RowDefinitions>
+                            <RowDefinition Height="40"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
+                        </Grid.RowDefinitions>
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="200"></ColumnDefinition>
+                            <ColumnDefinition Width="100"></ColumnDefinition>
+                        </Grid.ColumnDefinitions>
+                        <Label Grid.Row="0" Grid.Column="0" Content="Reservoir 1/2 Door" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="1" Grid.Column="0" Content="Reservoir 3/4 Door" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="2" Grid.Column="0" Content="VPW Top/Bottom Door" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="3" Grid.Column="0" Content="Plumbing Panels" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="4" Grid.Column="0" Content="SRD Panel" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Ellipse Grid.Row="0" Grid.Column="1" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Res12DoorClosed,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                        <Ellipse Grid.Row="1" Grid.Column="1" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Res34DoorClosed,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                        <Ellipse Grid.Row="2" Grid.Column="1" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.VpwDoorClosed,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                        <Ellipse Grid.Row="3" Grid.Column="1" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PlumblingDoorClosed,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                        <Ellipse Grid.Row="4" Grid.Column="1" Margin="0,0,6,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdPanelClosed,Converter={StaticResource boolToRedGreenColor}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    </Grid>
+                </GroupBox>
+            </Grid>
+
+            <Grid Grid.Row="1" Grid.Column="0" Grid.RowSpan="2" Margin="0,-40,0,0">
                 <Grid.ColumnDefinitions>
-                    <ColumnDefinition Width="320"></ColumnDefinition>
-                    <ColumnDefinition Width="320"></ColumnDefinition>
+                    <ColumnDefinition Width="420"></ColumnDefinition>
                 </Grid.ColumnDefinitions>
-                <GroupBox Grid.Column="0" Header="Motion" Margin="5,0,5,20">
+                <GroupBox Grid.Column="0" Header="Containment Fluid Detection" Margin="5,0,5,20">
                     <Grid>
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="220"></ColumnDefinition>
@@ -420,155 +375,88 @@
                         </Grid.ColumnDefinitions>
                         <Grid.RowDefinitions>
                             <RowDefinition Height="40"></RowDefinition>
-                            <RowDefinition Height="30"></RowDefinition>
-                            <RowDefinition Height="30"></RowDefinition>
-                            <RowDefinition Height="30"></RowDefinition>
-                            <RowDefinition Height="30"></RowDefinition>
-                            <RowDefinition Height="30"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
+                            <RowDefinition Height="40"></RowDefinition>
                         </Grid.RowDefinitions>
-                        <Button Grid.Row="0" Grid.Column="0" Style="{StaticResource SysBtnStyle}"  Margin="5,0,0,0" Content="All On" Width="65" Height="20" HorizontalAlignment="Left" Command="{Binding AllOnCommand}"></Button>
-                        <Label Grid.Row="0" Grid.Column="0" Content="All Amplifiers On" Margin="0,0,25,0" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Right"/>
-                        <Label Grid.Row="1" Grid.Column="0" Content="Process Transporter Moving" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                        <Label Grid.Row="2" Grid.Column="0" Content="Loader Moving" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                        <Label Grid.Row="3" Grid.Column="0" Content="DPUFs Moving" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                        <Label Grid.Row="4" Grid.Column="0" Content="SRDs Moving" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                        <Label Grid.Row="5" Grid.Column="0" Content="Loader Transporter Moving" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                        <Ellipse Grid.Row="1" Grid.Column="1" Margin="10,0,0,0" Width="16" Height="16" Fill="{Binding IsProcessTransMoving,Converter={StaticResource boolToColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="2" Grid.Column="1" Margin="10,0,0,0" Width="16" Height="16" Fill="{Binding IsLoaderMoving,Converter={StaticResource boolToColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="3" Grid.Column="1" Margin="10,0,0,0" Width="16" Height="16" Fill="{Binding IsPufsMoving,Converter={StaticResource boolToColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="4" Grid.Column="1" Margin="10,0,0,0" Width="16" Height="16" Fill="{Binding IsSRDsMoving,Converter={StaticResource boolToColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
-                        <Ellipse Grid.Row="5" Grid.Column="1" Margin="10,0,0,0" Width="16" Height="16" Fill="{Binding IsLoaderTransMoving,Converter={StaticResource boolToColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
+                    
+                        
+                        <Label Grid.Row="0" Grid.Column="0" Content="Plating Cell 1/2 Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="1" Grid.Column="0" Content="Plating Cell 3/4 Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="2" Grid.Column="0" Content="Vacuum Prewet Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="3" Grid.Column="0" Content="Sammple #1 Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="4" Grid.Column="0" Content="Sammple #2 Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Label Grid.Row="5" Grid.Column="0" Content="Frame Containment Leak Detect" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                        <Ellipse Grid.Row="0" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsProcessTransMoving,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="1" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsProcessTransMoving,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="2" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsLoaderMoving,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="3" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsPufsMoving,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="4" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsSRDsMoving,Converter={StaticResource boolToYellowColor}}"   Stroke="Silver" HorizontalAlignment="Left"/>
+                        <Ellipse Grid.Row="5" Grid.Column="1" Margin="60,0,0,0" Width="16" Height="16" Fill="{Binding IsLoaderTransMoving,Converter={StaticResource boolToYellowColor}}"  Stroke="Silver" HorizontalAlignment="Left"/>
                     </Grid>
                 </GroupBox>
-                
+
             </Grid>
         </Grid>
         <Grid Grid.Column="2">
             <Grid.RowDefinitions>
-                <RowDefinition Height="240"></RowDefinition>
-                <RowDefinition Height="290"></RowDefinition>
-                <RowDefinition Height="110"></RowDefinition>
-                <RowDefinition Height="200"></RowDefinition>
+                <RowDefinition Height="320"></RowDefinition>
+                <RowDefinition Height="250"></RowDefinition>
             </Grid.RowDefinitions>
-            <GroupBox Grid.Row="0" Header="Loader" Margin="5,0,5,0">
+            <GroupBox Grid.Row="0" Header="Pump Interlocks(EDM)" Margin="5,0,5,0">
                 <Grid>
                     <Grid.RowDefinitions>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                    </Grid.RowDefinitions>
-                    <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="150"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                    </Grid.ColumnDefinitions>
-                    <Label Grid.Row="1" Grid.Column="0" Content="Loader Rotation" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="Loader A Shuttle" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="3" Grid.Column="0" Content="Loader A Tilt" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="4" Grid.Column="0" Content="Loader B Shuttle" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="5" Grid.Column="0" Content="Loader B Tilt" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="1" Content="On"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="2" Content="Slow"  FontWeight="Bold" VerticalAlignment="Center"  HorizontalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="3" Content="Disable"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsLoaderRotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderRotationSls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsLoaderAShuttleOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderShuttleASls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsLoaderATiltOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderTiltASls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsLoaderBShuttleOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderShuttleBSls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="5" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsLoaderBTiltOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="5" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderTiltBSls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="5" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                </Grid>
-            </GroupBox>
-            <GroupBox Grid.Row="1" Header="PUFs" Margin="5,0,5,0">
-                <Grid>
-                    <Grid.RowDefinitions>
-                        <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="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
                     </Grid.RowDefinitions>
                     <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="150"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
+                        <ColumnDefinition Width="300"></ColumnDefinition>
+                        <ColumnDefinition Width="50"></ColumnDefinition>
                     </Grid.ColumnDefinitions>
-                    <Label Grid.Row="1" Grid.Column="0" Content="PUF 1 Vertical" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="PUF 1 Rotation" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="3" Grid.Column="0" Content="PUF 1 Flip" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="4" Grid.Column="0" Content="PUF 2 Vertical" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="5" Grid.Column="0" Content="PUF 2 Rotation" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="6" Grid.Column="0" Content="PUF 2 Flip" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="1" Content="On"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="2" Content="Slow"  FontWeight="Bold" VerticalAlignment="Center"  HorizontalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="3" Content="Disable"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+                    <Label Grid.Row="0" Grid.Column="0" Content="Reservoir 1/2 CA Pump"  Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="1" Grid.Column="0" Content="Reservoir 3/4 CA Pump" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="2" Grid.Column="0" Content="RES Degas 1 Pump" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="3" Grid.Column="0" Content="RES Degas 2 Pump" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="4" Grid.Column="0" Content="VPW Vacuum Pump" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="5" Grid.Column="0" Content="VPW Booster Pump" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="6" Grid.Column="0" Content="EXT Fluid Enable" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Ellipse Grid.Row="0" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf1VerticalOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="1" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf1VerticalOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf1VerticalSls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PufVerticalDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="2" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf1RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf1FlipRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="3" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf1FlipOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf1FlipRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="4" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf2VerticalOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf2VerticalSls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PufVerticalDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="5" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="5" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf2FlipRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="6" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsPuf2FlipOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="6" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf2FlipRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                </Grid>
-            </GroupBox>
-            <GroupBox Grid.Row="2" Header="Loader Safety" VerticalAlignment="Center" Margin="5,0,5,0">
-                <Grid Height="80">
-                    <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="200"></ColumnDefinition>
-                        <ColumnDefinition Width="100"></ColumnDefinition>
-                    </Grid.ColumnDefinitions>
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                    </Grid.RowDefinitions>
-                    <Label Grid.Row="0" Grid.Column="0" Content="Loader Zone Safe STO" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="0" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="1" Grid.Column="0" Content="Loader Zone Safe SLS" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderSafeSls,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
+             
                 </Grid>
             </GroupBox>
-            <GroupBox Grid.Row="3" Header="PUF Safety" VerticalAlignment="Top" Margin="5,0,5,0">
-                <Grid Height="150">
+            <GroupBox Grid.Row="1" Header="Level High" VerticalAlignment="Top" Margin="5,0,5,0">
+                <Grid Height="160">
                     <Grid.ColumnDefinitions>
                         <ColumnDefinition Width="200"></ColumnDefinition>
                         <ColumnDefinition Width="100"></ColumnDefinition>
                     </Grid.ColumnDefinitions>
                     <Grid.RowDefinitions>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
                     </Grid.RowDefinitions>
-                    <Label Grid.Row="0" Grid.Column="0" Content="DPUF Vertical Safe STO" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="0" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PufVerticalSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="1" Grid.Column="0" Content="DPUF Vertical Safe SLS" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PufVerticalSafeSls,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="DPUF A Pivot/Sup STO" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf1FlipRotationSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="3" Grid.Column="0" Content="DPUF B Pivot/Sup STO" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf2FlipRotationSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Label Grid.Row="0" Grid.Column="0" Content="Reservoir 1 CA" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Ellipse Grid.Row="0" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PufVerticalSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    <Label Grid.Row="1" Grid.Column="0" Content="Reservoir 2 CA" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Ellipse Grid.Row="1" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PufVerticalSafeSls,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    <Label Grid.Row="2" Grid.Column="0" Content="Reservoir 3 CA" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Ellipse Grid.Row="2" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf1FlipRotationSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Right"/>
+                    <Label Grid.Row="3" Grid.Column="0" Content="Reservoir 4 CA" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Ellipse Grid.Row="3" Grid.Column="1"  Margin="0,0,-32,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.Puf2FlipRotationSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Right"/>
                 </Grid>
             </GroupBox>
         </Grid>
@@ -576,128 +464,66 @@
 
         <Grid Grid.Column="3">
             <Grid.RowDefinitions>
-                <RowDefinition Height="200"></RowDefinition>
-                <RowDefinition Height="200"></RowDefinition>
-                <RowDefinition Height="80"></RowDefinition>
-                <RowDefinition Height="100"></RowDefinition>
-                <RowDefinition Height="100"></RowDefinition>
-                <RowDefinition Height="150"></RowDefinition>
+                <RowDefinition Height="530"></RowDefinition>
             </Grid.RowDefinitions>
-            <GroupBox Grid.Row="0" Header="SRD" VerticalAlignment="Center" Margin="5,0,5,0">
-                <Grid Height="180">
+            <GroupBox Grid.Row="0" Header="Motion" VerticalAlignment="Center" Margin="5,0,5,0">
+                <Grid Height="530">
                     <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="200"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
+                        <ColumnDefinition Width="300"></ColumnDefinition>
+                        <ColumnDefinition Width="80"></ColumnDefinition>
+                        <ColumnDefinition Width="80"></ColumnDefinition>
                     </Grid.ColumnDefinitions>
                     <Grid.RowDefinitions>
-                        <RowDefinition Height="40"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="60"></RowDefinition>
                         <RowDefinition Height="30"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
+                        <RowDefinition Height="40"></RowDefinition>
                     </Grid.RowDefinitions>
-                    <Label Grid.Row="0" Grid.Column="1" Content="On"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="2" Content="Disable"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="1" Grid.Column="0" Content="SRD 1 ARM" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="SRD 1 Rotation" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="3" Grid.Column="0" Content="SRD 2 ARM" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="4" Grid.Column="0" Content="SRD 2 Rotation" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd1ArmOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdArmDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Button Grid.Row="0" Grid.Column="0" Style="{StaticResource SysBtnStyle}"  Margin="35,0,0,0" Content="On" Width="65" Height="20" HorizontalAlignment="Left" Command="{Binding AllOnCommand}"></Button>
+                    <Label Grid.Row="0" Grid.Column="0" Content="All Amplifiers" Margin="0,0,25,0" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Right"/>
+                    <Label Grid.Row="1" Grid.Column="0" Content="Amplifiers"   VerticalAlignment="Center" HorizontalAlignment="Center"/>
+                    <Label Grid.Row="1" Grid.Column="1" Content="On"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+                    <Label Grid.Row="1" Grid.Column="2" Content="Disable"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+                    
+                    <Label Grid.Row="2" Grid.Column="0" Content="VPW Cell 1 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="3" Grid.Column="0" Content="VPW Cell 2 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="4" Grid.Column="0" Content="Plating Cell 1 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="5" Grid.Column="0" Content="Plating Cell 2 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="6" Grid.Column="0" Content="Plating Cell 3 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="7" Grid.Column="0" Content="Plating Cell 4 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="8" Grid.Column="0" Content="Plating Cell 1/2 Lift" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="9" Grid.Column="0" Content="Plating Cell 3/4 Lift" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="10" Grid.Column="0" Content="SRD Cell 1 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                    <Label Grid.Row="11" Grid.Column="0" Content="SRD Cell 2 Rotate" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
+                  
                     <Ellipse Grid.Row="2" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd1RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="2" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="3" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2ArmOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="3" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdArmDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="4" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                     <Ellipse Grid.Row="4" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                </Grid>
-            </GroupBox>
-            <GroupBox Grid.Row="1" Header="Transporters" Margin="5,0,5,0">
-                <Grid>
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                    </Grid.RowDefinitions>
-                    <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="150"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                        <ColumnDefinition Width="70"></ColumnDefinition>
-                    </Grid.ColumnDefinitions>
-                    <Label Grid.Row="1" Grid.Column="0" Content="Loader Gantry" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="Loader Elevator" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="3" Grid.Column="0" Content="Process Gantry" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="4" Grid.Column="0" Content="Process Elevator" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="1" Content="On"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="2" Content="Slow"  FontWeight="Bold" VerticalAlignment="Center"  HorizontalAlignment="Center"/>
-                    <Label Grid.Row="0" Grid.Column="3" Content="Disable"  FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsLoaderGantryOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderGantrySls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.TransporterDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsLoaderElevatorOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.LoaderElevatorSls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.TransporterDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsProcessGantryOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ProcessGantrySls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="3" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.TransporterDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="1" Width="16" Height="16"  Fill="{Binding IsProcessElevatorOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="2" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ProcessElevatorSls,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Ellipse Grid.Row="4" Grid.Column="3" Width="16" Height="16"  Fill="{Binding CommonSafetyData.TransporterDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                </Grid>
-            </GroupBox>
-            <GroupBox Grid.Row="3" Header="Transporter Safety" VerticalAlignment="Center" Margin="5,0,5,0">
-                <Grid Height="80">
-                    <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="200"></ColumnDefinition>
-                        <ColumnDefinition Width="100"></ColumnDefinition>
-                    </Grid.ColumnDefinitions>
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                    </Grid.RowDefinitions>
-                    <Label Grid.Row="0" Grid.Column="0" Content="Grantry Zone Safe STO" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="0" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.TransporterSafeSto,Converter={StaticResource boolToYellowColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="1" Grid.Column="0" Content="Grantry Zone Safe SLS" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.TransporterSafeSls,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                </Grid>
-            </GroupBox>
-            <GroupBox Grid.Row="4" Header="SRD Safety" VerticalAlignment="Center" Margin="5,0,5,0">
-                <Grid Height="80">
-                    <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="200"></ColumnDefinition>
-                        <ColumnDefinition Width="100"></ColumnDefinition>
-                    </Grid.ColumnDefinitions>
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                    </Grid.RowDefinitions>
-                    <Label Grid.Row="0" Grid.Column="0" Content="SRD Wash Arms STO" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="0" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdArmSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="1" Grid.Column="0" Content="SRD Rotate STO" Margin="5,0,0,2" FontWeight="Bold" VerticalAlignment="Bottom"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationSafeSto,Converter={StaticResource boolToYellowColor2}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                </Grid>
-            </GroupBox>
-            <GroupBox Grid.Row="5" Header="Plumbing Safety" VerticalAlignment="Center" Margin="5,0,5,0">
-                <Grid Height="120">
-                    <Grid.ColumnDefinitions>
-                        <ColumnDefinition Width="200"></ColumnDefinition>
-                        <ColumnDefinition Width="100"></ColumnDefinition>
-                    </Grid.ColumnDefinitions>
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                        <RowDefinition Height="30"></RowDefinition>
-                    </Grid.RowDefinitions>
-                    <Label Grid.Row="0" Grid.Column="0" Content="Pump EDM" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="0" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.PumpEdm,Converter={StaticResource boolToColor7}}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="1" Grid.Column="0" Content="Reservoir Overflow" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="1" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.ReservoirHighLevel,Converter={StaticResource boolToRedColor }}" Stroke="Silver" HorizontalAlignment="Center"/>
-                    <Label Grid.Row="2" Grid.Column="0" Content="Fluid Enable EDM" Margin="5,0,0,0" FontWeight="Bold" VerticalAlignment="Center"/>
-                    <Ellipse Grid.Row="2" Grid.Column="1"  Margin="25,0,0,0" Width="16" Height="16"  Fill="{Binding CommonSafetyData.FluidEnableEdm,Converter={StaticResource boolToColor7}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="5" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="5" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="6" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="6" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="7" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="7" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="8" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="8" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="9" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="9" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="10" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="10" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="11" Grid.Column="1"  Width="16" Height="16"  Fill="{Binding IsSrd2RotationOn,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
+                    <Ellipse Grid.Row="11" Grid.Column="2"  Width="16" Height="16"  Fill="{Binding CommonSafetyData.SrdRotationDisable,Converter={StaticResource boolToErrorColor}}" Stroke="Silver" HorizontalAlignment="Center"/>
                 </Grid>
             </GroupBox>
         </Grid>

+ 5 - 3
PunkHPX8_RT/Config/Station/StationPositionsCfg.xml

@@ -34,8 +34,9 @@
 		<Axis Name="VPW1.Rotation">
 			<ToleranceDefault>0.5</ToleranceDefault>
 			<Stations>
-				<Station Name="VPW1.Rotation.Home" Position="0" />				
-				<Station Name="VPW1.Rotation.Center" Position="14400" />
+				<Station Name="VPW1.Rotation.Home" Position="0" />
+				<Station Name="VPW1.Rotation.Center" Position="144000" />
+				<Station Name="VPW1.Rotation.ChuckPickOffset" Position="0" />
 			</Stations>
 		</Axis>
 	</Module>
@@ -44,7 +45,8 @@
 			<ToleranceDefault>0.5</ToleranceDefault>
 			<Stations>
 				<Station Name="VPW2.Rotation.Home" Position="0" />
-				<Station Name="VPW2.Rotation.Center" Position="14400" />
+				<Station Name="VPW2.Rotation.Center" Position="50" />
+				<Station Name="VPW2.Rotation.ChuckPickOffset" Position="0" />
 			</Stations>
 		</Axis>
 	</Module>

+ 2 - 0
PunkHPX8_RT/Config/Station/StationPositionsCfg_Simulator.xml

@@ -37,6 +37,7 @@
 			<Stations>
 				<Station Name="VPW1.Rotation.Home" Position="0" />
 				<Station Name="VPW1.Rotation.Center" Position="144000" />
+				<Station Name="VPW1.Rotation.ChuckPickOffset" Position="0" />
 			</Stations>
 		</Axis>
 	</Module>
@@ -46,6 +47,7 @@
 			<Stations>
 				<Station Name="VPW2.Rotation.Home" Position="0" />
 				<Station Name="VPW2.Rotation.Center" Position="50" />
+				<Station Name="VPW2.Rotation.ChuckPickOffset" Position="0" />
 			</Stations>
 		</Axis>
 	</Module>

+ 3 - 0
PunkHPX8_RT/Devices/Safety/SafetyDevice.cs

@@ -398,6 +398,9 @@ namespace PunkHPX8_RT.Devices.Safety
             BeckhoffIoSubscribeUpdateVariable( PLATING3_4_HOT_CONNECT_STATE);
             BeckhoffIoSubscribeUpdateVariable( PLATING3_4_COMM_ERR);
             BeckhoffIoSubscribeUpdateVariable( PLATING3_4_FB_ERR);
+            BeckhoffIoSubscribeUpdateVariable( SRD_HOT_CONNECT_STATE);
+            BeckhoffIoSubscribeUpdateVariable( SRD_COMM_ERR);
+            BeckhoffIoSubscribeUpdateVariable( SRD_FB_ERR);
             BeckhoffIoSubscribeUpdateVariable( ERR_ACK);
             BeckhoffIoSubscribeUpdateVariable( RUN_STOP);
             BeckhoffIoSubscribeUpdateVariable( CASSETE_DOORS_LEFT_LOCKED);

+ 16 - 16
PunkHPX8_RT/Modules/SRD/SRDHomeRoutine.cs

@@ -84,22 +84,22 @@ namespace PunkHPX8_RT.Modules.Transporter
         /// <returns></returns>
         private bool CheckSafety()
         {
-            SafetyDevice safetyDevice = DEVICE.GetDevice<SafetyDevice>("Safety");
-            if (safetyDevice == null)
-            {
-                LOG.WriteLog(eEvent.ERR_SRD, Module.ToString(), "Safety device is null");
-                return false;
-            }           
-            if (safetyDevice.SafetyData.SrdCommErr)
-            {
-                LOG.WriteLog(eEvent.ERR_SRD, Module.ToString(), "Twincat SRD Communication status is error");
-                return false;
-            }
-            if (safetyDevice.SafetyData.SrdFunctionBlockErr)
-            {
-                LOG.WriteLog(eEvent.ERR_SRD, Module.ToString(), "Twincat SRD function block status is error");
-                return false;
-            }
+            //SafetyDevice safetyDevice = DEVICE.GetDevice<SafetyDevice>("Safety");
+            //if (safetyDevice == null)
+            //{
+            //    LOG.WriteLog(eEvent.ERR_SRD, Module.ToString(), "Safety device is null");
+            //    return false;
+            //}           
+            //if (safetyDevice.SafetyData.SrdCommErr)
+            //{
+            //    LOG.WriteLog(eEvent.ERR_SRD, Module.ToString(), "Twincat SRD Communication status is error");
+            //    return false;
+            //}
+            //if (safetyDevice.SafetyData.SrdFunctionBlockErr)
+            //{
+            //    LOG.WriteLog(eEvent.ERR_SRD, Module.ToString(), "Twincat SRD function block status is error");
+            //    return false;
+            //}
             return true;
         }
         /// <summary>

+ 2 - 2
PunkHPX8_Themes/UserControls/LockControl.xaml

@@ -16,7 +16,7 @@
                     <Setter Property="Background" Value="LimeGreen"/>
                     <Style.Triggers>
                         <DataTrigger Binding="{Binding ElementName=self, Path=IsLocked}" Value="False">
-                            <Setter Property="Background" Value="Gray"/>
+                            <Setter Property="Background" Value="Red"/>
                         </DataTrigger>
                     </Style.Triggers>
                 </Style>
@@ -30,7 +30,7 @@
                         <Setter Property="Canvas.Top" Value="13.875"/>
                         <Style.Triggers>
                             <DataTrigger Binding="{Binding ElementName=self, Path=IsLocked}" Value="False">
-                                <Setter Property="Stroke" Value="Gray"/>
+                                <Setter Property="Stroke" Value="Red"/>
                                 <Setter Property="Canvas.Top" Value="8.875"/>
                             </DataTrigger>