Browse Source

1.airsys chiller加入on/off状态
2.钟摆阀模拟器加入拆包毡包
3.kepler2200A ui优化

lixiang 1 year ago
parent
commit
8fb1796c74

File diff suppressed because it is too large
+ 1 - 1
Venus/Venus_MainPages/Views/EfemView.xaml


+ 4 - 4
Venus/Venus_MainPages/Views/OperationOverView.xaml

@@ -150,8 +150,8 @@
             <TextBlock Grid.Row="2" Grid.Column="1"   FontSize="15" Padding="10,2,0,0" Background="#E9EDF4">
                 <TextBlock.Text>
                     <MultiBinding StringFormat="{}{0}/{1}">
-                        <Binding Path="PMCRecipeResult.RecipeStepNumber"></Binding>
-                        <Binding Path="PMCRecipeResult.RecipeStepCount"></Binding>
+                        <Binding Path="PMBRecipeResult.RecipeStepNumber"></Binding>
+                        <Binding Path="PMBRecipeResult.RecipeStepCount"></Binding>
                     </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
@@ -302,7 +302,7 @@
 
                         <StackPanel Orientation="Horizontal">
                             <customControls:PathButton Content="Load"   HorizontalAlignment="Center" Margin="0,5,0,0" Width="80" Height="30" Command="{Binding LoadWaferCommand}"   CommandParameter="LP1"   IsEnabled="{Binding RtDataValues[LP1.IsLoaded],Converter={StaticResource BoolToBool}}"/>
-                            <customControls:PathButton Content="UnLoad" HorizontalAlignment="Center" Margin="0,5,0,0" Width="80" Height="30" Command="{Binding UnLoadWaferCommand}" CommandParameter="LP1"   IsEnabled="{Binding RtDataValues[LP1.IsLoaded]}"/>
+                            <customControls:PathButton Content="UnLoad" HorizontalAlignment="Center" Margin="0,5,8,0" Width="80" Height="30" Command="{Binding UnLoadWaferCommand}" CommandParameter="LP1"   IsEnabled="{Binding RtDataValues[LP1.IsLoaded]}"/>
                         </StackPanel>
                         
 
@@ -319,7 +319,7 @@
                         </TextBlock>
                         <StackPanel Orientation="Horizontal">
                             <customControls:PathButton Content="Load"   HorizontalAlignment="Center" Margin="0,5,0,0" Width="80" Height="30" Command="{Binding LoadWaferCommand}" CommandParameter="LP2"    IsEnabled="{Binding RtDataValues[LP2.IsLoaded],Converter={StaticResource BoolToBool}}"/>
-                            <customControls:PathButton Content="UnLoad" HorizontalAlignment="Center" Margin="5,5,0,0" Width="80" Height="30" Command="{Binding UnLoadWaferCommand}" CommandParameter="LP2"  IsEnabled="{Binding RtDataValues[LP2.IsLoaded]}"/>
+                            <customControls:PathButton Content="UnLoad" HorizontalAlignment="Center" Margin="0,5,8,0" Width="80" Height="30" Command="{Binding UnLoadWaferCommand}" CommandParameter="LP2"  IsEnabled="{Binding RtDataValues[LP2.IsLoaded]}"/>
                         </StackPanel>
                            
 

+ 8 - 8
Venus/Venus_MainPages/Views/OverKepler2200AView.xaml

@@ -771,14 +771,14 @@
                 <TextBlock Text="Valve Heater"/>
                 <Button Height="18" Width="50" Content="{Binding ValveHeaterData.FeedBack}" ToolTip="{Binding ValveHeaterData,Converter={StaticResource HeaterToStringConverter}}" Foreground="White" ContentStringFormat="F1" Background="{Binding ValveHeaterData.IsPowerOnSetPoint,Converter={StaticResource boolToColor5}}" Style="{x:Null}" Command="{Binding HeaterCommand}" CommandParameter="{Binding ValveHeaterData}" Cursor="Hand"/>
             </StackPanel>-->
-            <StackPanel Canvas.Top="645" Canvas.Left="1160" Orientation="Vertical">
+            <!--<StackPanel Canvas.Top="645" Canvas.Left="1160" Orientation="Vertical">
                 <TextBlock Text="Foreline Heater"/>
                 <Button Height="18" Width="50" Content="{Binding ForelineHeaterData.FeedBack}" ToolTip="{Binding ForelineHeaterData,Converter={StaticResource HeaterToStringConverter}}" Foreground="White" ContentStringFormat="F1"  Background="{Binding ForelineHeaterData.IsPowerOnSetPoint,Converter={StaticResource boolToColor5}}" Style="{x:Null}" Command="{Binding HeaterCommand}" CommandParameter="{Binding ForelineHeaterData}" Cursor="Hand" />
-            </StackPanel>
-            <StackPanel Canvas.Top="320" Canvas.Left="1250" Orientation="Vertical">
-                <TextBlock Text="Wall Heater"/>
-                <Button Height="18" Width="50" Content="{Binding WallHeaterData.FeedBack}" ToolTip="{Binding WallHeaterData,Converter={StaticResource HeaterToStringConverter}}" Foreground="White"  ContentStringFormat="F1" Background="{Binding WallHeaterData.IsPowerOnSetPoint,Converter={StaticResource boolToColor5}}" Style="{x:Null}" Command="{Binding HeaterCommand}" CommandParameter="{Binding WallHeaterData}" Cursor="Hand"/>
-            </StackPanel>
+            </StackPanel>-->
+            <!--<StackPanel Canvas.Top="320" Canvas.Left="1250" Orientation="Vertical">
+                <TextBlock Text="Pendulum Heater"/>
+                <Button Height="18" Width="50" Content="{Binding PendulumHeaterData.FeedBack}" ToolTip="{Binding PendulumHeaterData,Converter={StaticResource HeaterToStringConverter}}" Foreground="White"  ContentStringFormat="F1" Background="{Binding PendulumHeaterData.IsPowerOnSetPoint,Converter={StaticResource boolToColor5}}" Style="{x:Null}" Command="{Binding HeaterCommand}" CommandParameter="{Binding PendulumHeaterData}" Cursor="Hand"/>
+            </StackPanel>-->
 
             <!--Chamber-->
             <ctrls:Chamber Canvas.Left="1000" Canvas.Top="224" 
@@ -1014,7 +1014,7 @@
             <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepDescription}"  FontSize="15" Padding="10,2,0,0"/>
             <TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepDuringTime, StringFormat=hh\\:mm\\:ss}"  FontSize="15" Padding="10,2,0,0"/>
             <TextBlock Grid.Row="5" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepSetTime}"  FontSize="15" Padding="10,2,0,0"/>
-            <customControls:PathButton BorderThickness="0" PathData="{StaticResource Icon_Next}" Background="Transparent" DefaultFillBrush="Black"  Foreground="White"  Cursor="Hand" Grid.Row="5" Grid.Column="1"    Visibility="{Binding IsProcessing,Converter={StaticResource BoolToVisibility2}}" Command="{Binding EndStepCommand}" Margin="15,0,0,0" HorizontalAlignment="Left"/>
+            <customControls:PathButton Grid.Row="6" Grid.Column="1" BorderThickness="0" PathData="{StaticResource Icon_Next}" Background="Transparent" DefaultFillBrush="Black"  Foreground="White"  Cursor="Hand"     Visibility="{Binding IsProcessing,Converter={StaticResource BoolToVisibility2}}" Command="{Binding EndStepCommand}" Margin="15,0,0,0" HorizontalAlignment="Left"/>
             <TextBlock Grid.Row="7" Grid.Column="1"   FontSize="15" Padding="10,2,0,0" Background="#E9EDF4">
                 <TextBlock.Text>
                     <MultiBinding StringFormat="{}{0}/{1}">
@@ -1100,7 +1100,7 @@
                 <RowDefinition/>
             </Grid.RowDefinitions>
             <Grid.ColumnDefinitions>
-                <ColumnDefinition Width="170"/>
+                <ColumnDefinition Width="166"/>
                 <ColumnDefinition Width="3*"/>
                 <ColumnDefinition Width="2*"/>
                 <ColumnDefinition Width="2*"/>

+ 9 - 2
Venus/Venus_RT/Devices/AIRSYSChiller.cs

@@ -244,7 +244,7 @@ namespace Venus_RT.Devices
 
         private void OnErrorOccurred(string obj)
         {
-            LOG.Write(eEvent.ERR_DEVICE_CHILLER, Module, $"[{Module}] AIRSYS chiller error: [{obj}]");
+           // LOG.Write(eEvent.ERR_DEVICE_CHILLER, Module, $"[{Module}] AIRSYS chiller error: [{obj}]");
         }
 
         public override void SetChillerTemp(float value, float offset)
@@ -373,7 +373,14 @@ namespace Venus_RT.Devices
             {
                 errorInfo.Append("Reservoir Low Level Warning; ");
             }
-
+            if ((status & 0x10) == 0)
+            {
+                IsRunning = false;
+            }
+            else if ((status & 0x10) == 1)
+            {
+                IsRunning = true;
+            }
             if (errorInfo.Length > 10)
             {
                 _noRepeatAlarm($"AIRSYS chiller status error:{errorInfo}");

+ 9 - 5
Venus/Venus_RT/Modules/PMs/PMEntity.cs

@@ -1266,15 +1266,19 @@ namespace Venus_RT.Modules.PMs
 
         private bool FnStartPreparePlace(object[] param)
         {
-            if (!_chamber.SetLiftPin(MovementPosition.Down, out string reason))
+            if (_chamber.ChamberType == JetChamber.Venus || _chamber.ChamberType == JetChamber.Kepler2300)
             {
-                LOG.Write(eEvent.ERR_PM, Module, $"Set Lift Pin down failed:{reason}");
-                return false;
+                if (!_chamber.SetLiftPin(MovementPosition.Down, out string reason))
+                {
+                    LOG.Write(eEvent.ERR_PM, Module, $"Set Lift Pin down failed:{reason}");
+                    return false;
+                }
             }
+           
 
-            if (!_chamber.SetSlitDoor(true, out reason))
+            if (!_chamber.SetSlitDoor(true, out string reason2))
             {
-                LOG.Write(eEvent.ERR_PM, Module, $"Set Slit Door Open failed:{reason}");
+                LOG.Write(eEvent.ERR_PM, Module, $"Set Slit Door Open failed:{reason2}");
                 return false;
             }
 

+ 1 - 1
Venus/Venus_RT/Venus_RT.csproj.user

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <ProjectView>ShowAllFiles</ProjectView>
+    <ProjectView>ProjectFiles</ProjectView>
     <PublishUrlHistory>publish\</PublishUrlHistory>
     <InstallUrlHistory />
     <SupportUrlHistory />

+ 2 - 1
Venus/Venus_Simulator/Config/UILayout.xml

@@ -12,7 +12,8 @@
   </Navigation>
 
   <Navigation Id="PMA" Name="PMA" >
- 
+	  <SubView Id="AIRSYSChillerPMA" Name="AIRSYSChiller" ViewClass="Venus_Simulator.Views.SimuAIRSYSChillerPMAView" Assembly="Venus_Simulator" />
+
 	  <SubView Id="io1" Name="IO-PMA" ViewClass="Venus_Simulator.Views.SimulatorIo1View" Assembly="Venus_Simulator"/>
   
 	  <SubView Id="SkyPumpPMA" Name="SkyPumpPMA" ViewClass="Venus_Simulator.Views.SimuSkyPumpPMAView" Assembly="Venus_Simulator" />

+ 1 - 1
Venus/Venus_Simulator/Devices/PendulumValveMockPMA.cs

@@ -68,7 +68,7 @@ namespace Venus_Simulator.Devices
                         _simPendulumValveStatus = PendulumValveStatus.OFF;
                         sRes = "C:\r\n";
                         break;
-                    case "O":
+                    case "O:":
                         _bHold = false;
                         _simPendulumValveStatus = PendulumValveStatus.ON;
                         sRes = "O:\r\n";

+ 72 - 60
Venus/Venus_Simulator/Devices/PendulumValveMockPMB.cs

@@ -31,75 +31,87 @@ namespace Venus_Simulator.Devices
         {
             if (string.IsNullOrEmpty(message))
                 throw new ArgumentException("Hardware command message is invalid");
-
-            if(_bHold == false)
+            var items = message.Split('\r');
+            foreach (var item in message.Split('\r'))
             {
-                _pressure += _rd.Next(-10, 10);
-                _position += _rd.Next(-50, 50);
-            }
 
-            if(_simPendulumValveStatus == PendulumValveStatus.OFF)
-            {
-                _position = 0;
-            }
-            
-            string sRes = string.Empty;
-            string str = message.Trim();
-            switch(str)
-            {
-                case "P:":
-                    sRes = string.Format("P:{0:D8}\r\n", _pressure);
-                    break;
-                case "A:":
-                    sRes = string.Format("A:{0:D6}\r\n", _position);
-                    break;
-                case "C:":
-                    _bHold = false;
-                    _simPendulumValveStatus = PendulumValveStatus.OFF;
-                    sRes = "C:\r\n";
-                    break;
-                case "O":
-                    _bHold = false;
-                    _simPendulumValveStatus = PendulumValveStatus.ON;
-                    sRes = "O:\r\n";
-                    break;
-                case "H:":
-                    _bHold = true;
-                    sRes = "H:\r\n";
-                    break;
-                case "i:30":
-                    sRes = "i:3012100000\r\n";
-                    break;
-                default:
-                    {
-                        if (str.Contains("S:"))
-                        {
-                            int pressure;
-                            if (int.TryParse(str.Substring(2, 8), out pressure))
-                            {
-                                _pressure = pressure;
-                            }
+                if (item == "")
+                {
+                    continue;
+                }
+                string item2 = item + "\r";
 
-                            _bHold = false;
-                            sRes = "S:\r\n";
-                        }
-                        else if (str.StartsWith("R:"))
+                if (_bHold == false)
+                {
+                    _pressure += _rd.Next(-10, 10);
+                    _position += _rd.Next(-50, 50);
+                }
+
+                if (_simPendulumValveStatus == PendulumValveStatus.OFF)
+                {
+                    _position = 0;
+                }
+
+                string sRes = string.Empty;
+                string str = item2.Trim();
+                switch (str)
+                {
+                    case "P:":
+                        sRes = string.Format("P:{0:D8}\r\n", _pressure);
+                        break;
+                    case "A:":
+                        sRes = string.Format("A:{0:D6}\r\n", _position);
+                        break;
+                    case "C:":
+                        _bHold = false;
+                        _simPendulumValveStatus = PendulumValveStatus.OFF;
+                        sRes = "C:\r\n";
+                        break;
+                    case "O:":
+                        _bHold = false;
+                        _simPendulumValveStatus = PendulumValveStatus.ON;
+                        sRes = "O:\r\n";
+                        break;
+                    case "H:":
+                        _bHold = true;
+                        sRes = "H:\r\n";
+                        break;
+                    case "i:30":
+                        string data = _simPendulumValveStatus == PendulumValveStatus.OFF ? "3" : "4";
+                        sRes = $"i:301{data}100000\r\n";
+                        break;
+                    default:
                         {
-                            int position;
-                            if (int.TryParse(str.Substring(2, 6), out position))
+                            if (str.Contains("S:"))
                             {
-                                _position = position;
+                                int pressure;
+                                if (int.TryParse(str.Substring(2, 8), out pressure))
+                                {
+                                    _pressure = pressure;
+                                }
+
+                                _bHold = false;
+                                sRes = "S:\r\n";
                             }
+                            else if (str.StartsWith("R:"))
+                            {
+                                int position;
+                                if (int.TryParse(str.Substring(2, 6), out position))
+                                {
+                                    _position = position;
+                                }
 
-                            _bHold = false;
-                            sRes = "R:\r\n";
+                                _bHold = false;
+                                sRes = "R:\r\n";
+                            }
+                            else
+                                return;
                         }
-                        else
-                            return;
-                    }
-                    break;
-            }
+                        break;
+                }
                 OnWriteMessage(sRes);
+            }
+
         }
     }
 }

+ 72 - 60
Venus/Venus_Simulator/Devices/PendulumValveMockPMC.cs

@@ -31,75 +31,87 @@ namespace Venus_Simulator.Devices
         {
             if (string.IsNullOrEmpty(message))
                 throw new ArgumentException("Hardware command message is invalid");
-
-            if(_bHold == false)
+            var items = message.Split('\r');
+            foreach (var item in message.Split('\r'))
             {
-                _pressure += _rd.Next(-10, 10);
-                _position += _rd.Next(-50, 50);
-            }
 
-            if(_simPendulumValveStatus == PendulumValveStatus.OFF)
-            {
-                _position = 0;
-            }
-            
-            string sRes = string.Empty;
-            string str = message.Trim();
-            switch(str)
-            {
-                case "P:":
-                    sRes = string.Format("P:{0:D8}\r\n", _pressure);
-                    break;
-                case "A:":
-                    sRes = string.Format("A:{0:D6}\r\n", _position);
-                    break;
-                case "C:":
-                    _bHold = false;
-                    _simPendulumValveStatus = PendulumValveStatus.OFF;
-                    sRes = "C:\r\n";
-                    break;
-                case "O":
-                    _bHold = false;
-                    _simPendulumValveStatus = PendulumValveStatus.ON;
-                    sRes = "O:\r\n";
-                    break;
-                case "H:":
-                    _bHold = true;
-                    sRes = "H:\r\n";
-                    break;
-                case "i:30":
-                    sRes = "i:3012100000\r\n";
-                    break;
-                default:
-                    {
-                        if (str.Contains("S:"))
-                        {
-                            int pressure;
-                            if (int.TryParse(str.Substring(2, 8), out pressure))
-                            {
-                                _pressure = pressure;
-                            }
+                if (item == "")
+                {
+                    continue;
+                }
+                string item2 = item + "\r";
 
-                            _bHold = false;
-                            sRes = "S:\r\n";
-                        }
-                        else if (str.StartsWith("R:"))
+                if (_bHold == false)
+                {
+                    _pressure += _rd.Next(-10, 10);
+                    _position += _rd.Next(-50, 50);
+                }
+
+                if (_simPendulumValveStatus == PendulumValveStatus.OFF)
+                {
+                    _position = 0;
+                }
+
+                string sRes = string.Empty;
+                string str = item2.Trim();
+                switch (str)
+                {
+                    case "P:":
+                        sRes = string.Format("P:{0:D8}\r\n", _pressure);
+                        break;
+                    case "A:":
+                        sRes = string.Format("A:{0:D6}\r\n", _position);
+                        break;
+                    case "C:":
+                        _bHold = false;
+                        _simPendulumValveStatus = PendulumValveStatus.OFF;
+                        sRes = "C:\r\n";
+                        break;
+                    case "O:":
+                        _bHold = false;
+                        _simPendulumValveStatus = PendulumValveStatus.ON;
+                        sRes = "O:\r\n";
+                        break;
+                    case "H:":
+                        _bHold = true;
+                        sRes = "H:\r\n";
+                        break;
+                    case "i:30":
+                        string data = _simPendulumValveStatus == PendulumValveStatus.OFF ? "3" : "4";
+                        sRes = $"i:301{data}100000\r\n";
+                        break;
+                    default:
                         {
-                            int position;
-                            if (int.TryParse(str.Substring(2, 6), out position))
+                            if (str.Contains("S:"))
                             {
-                                _position = position;
+                                int pressure;
+                                if (int.TryParse(str.Substring(2, 8), out pressure))
+                                {
+                                    _pressure = pressure;
+                                }
+
+                                _bHold = false;
+                                sRes = "S:\r\n";
                             }
+                            else if (str.StartsWith("R:"))
+                            {
+                                int position;
+                                if (int.TryParse(str.Substring(2, 6), out position))
+                                {
+                                    _position = position;
+                                }
 
-                            _bHold = false;
-                            sRes = "R:\r\n";
+                                _bHold = false;
+                                sRes = "R:\r\n";
+                            }
+                            else
+                                return;
                         }
-                        else
-                            return;
-                    }
-                    break;
-            }
+                        break;
+                }
                 OnWriteMessage(sRes);
+            }
+
         }
     }
 }

+ 72 - 60
Venus/Venus_Simulator/Devices/PendulumValveMockPMD.cs

@@ -31,75 +31,87 @@ namespace Venus_Simulator.Devices
         {
             if (string.IsNullOrEmpty(message))
                 throw new ArgumentException("Hardware command message is invalid");
-
-            if(_bHold == false)
+            var items = message.Split('\r');
+            foreach (var item in message.Split('\r'))
             {
-                _pressure += _rd.Next(-10, 10);
-                _position += _rd.Next(-50, 50);
-            }
 
-            if(_simPendulumValveStatus == PendulumValveStatus.OFF)
-            {
-                _position = 0;
-            }
-            
-            string sRes = string.Empty;
-            string str = message.Trim();
-            switch(str)
-            {
-                case "P:":
-                    sRes = string.Format("P:{0:D8}\r\n", _pressure);
-                    break;
-                case "A:":
-                    sRes = string.Format("A:{0:D6}\r\n", _position);
-                    break;
-                case "C:":
-                    _bHold = false;
-                    _simPendulumValveStatus = PendulumValveStatus.OFF;
-                    sRes = "C:\r\n";
-                    break;
-                case "O":
-                    _bHold = false;
-                    _simPendulumValveStatus = PendulumValveStatus.ON;
-                    sRes = "O:\r\n";
-                    break;
-                case "H:":
-                    _bHold = true;
-                    sRes = "H:\r\n";
-                    break;
-                case "i:30":
-                    sRes = "i:3012100000\r\n";
-                    break;
-                default:
-                    {
-                        if (str.Contains("S:"))
-                        {
-                            int pressure;
-                            if (int.TryParse(str.Substring(2, 8), out pressure))
-                            {
-                                _pressure = pressure;
-                            }
+                if (item == "")
+                {
+                    continue;
+                }
+                string item2 = item + "\r";
 
-                            _bHold = false;
-                            sRes = "S:\r\n";
-                        }
-                        else if (str.StartsWith("R:"))
+                if (_bHold == false)
+                {
+                    _pressure += _rd.Next(-10, 10);
+                    _position += _rd.Next(-50, 50);
+                }
+
+                if (_simPendulumValveStatus == PendulumValveStatus.OFF)
+                {
+                    _position = 0;
+                }
+
+                string sRes = string.Empty;
+                string str = item2.Trim();
+                switch (str)
+                {
+                    case "P:":
+                        sRes = string.Format("P:{0:D8}\r\n", _pressure);
+                        break;
+                    case "A:":
+                        sRes = string.Format("A:{0:D6}\r\n", _position);
+                        break;
+                    case "C:":
+                        _bHold = false;
+                        _simPendulumValveStatus = PendulumValveStatus.OFF;
+                        sRes = "C:\r\n";
+                        break;
+                    case "O:":
+                        _bHold = false;
+                        _simPendulumValveStatus = PendulumValveStatus.ON;
+                        sRes = "O:\r\n";
+                        break;
+                    case "H:":
+                        _bHold = true;
+                        sRes = "H:\r\n";
+                        break;
+                    case "i:30":
+                        string data = _simPendulumValveStatus == PendulumValveStatus.OFF ? "3" : "4";
+                        sRes = $"i:301{data}100000\r\n";
+                        break;
+                    default:
                         {
-                            int position;
-                            if (int.TryParse(str.Substring(2, 6), out position))
+                            if (str.Contains("S:"))
                             {
-                                _position = position;
+                                int pressure;
+                                if (int.TryParse(str.Substring(2, 8), out pressure))
+                                {
+                                    _pressure = pressure;
+                                }
+
+                                _bHold = false;
+                                sRes = "S:\r\n";
                             }
+                            else if (str.StartsWith("R:"))
+                            {
+                                int position;
+                                if (int.TryParse(str.Substring(2, 6), out position))
+                                {
+                                    _position = position;
+                                }
 
-                            _bHold = false;
-                            sRes = "R:\r\n";
+                                _bHold = false;
+                                sRes = "R:\r\n";
+                            }
+                            else
+                                return;
                         }
-                        else
-                            return;
-                    }
-                    break;
-            }
+                        break;
+                }
                 OnWriteMessage(sRes);
+            }
+
         }
     }
 }

+ 2 - 2
Venus/Venus_Themes/UserControls/LoadLockLeft.xaml

@@ -93,7 +93,7 @@
                 </Rectangle.ContextMenu>
             </Rectangle>
 
-            <Viewbox Stretch="Uniform" Width="190" Height="190" Canvas.Top="5" Canvas.Left="-15">
+            <Viewbox Stretch="Uniform" Width="180" Height="180" Canvas.Top="8" Canvas.Left="-10">
 
                 <Canvas UseLayoutRounding="False"  Width="93.693" Height="112.5" HorizontalAlignment="Left" VerticalAlignment="Top">
                     <Canvas  Width="72.522" Height="72.521" Canvas.Left="10.473" Canvas.Top="28.781">
@@ -121,7 +121,7 @@
                     </Canvas>
                 </Canvas>
             </Viewbox>
-            <Viewbox Width="122" Height="122"  Canvas.Left="20" Canvas.Top="53">
+            <Viewbox Width="112" Height="112"  Canvas.Left="24" Canvas.Top="56">
                 <ctrl:Slot  ViewType="Top" WaferStatus="{Binding WaferStatus}" SlotID="{Binding SlotID}" ModuleID="{Binding ModuleID}" SourceName="{Binding SourceName}" 
                        DataContext="{Binding ElementName=LeftLoadLock, Path=RobotWafer}"  HorizontalAlignment="Center" VerticalAlignment="Center">
                 </ctrl:Slot>

+ 2 - 2
Venus/Venus_Themes/UserControls/LoadLockRight.xaml

@@ -105,7 +105,7 @@
                     </GeometryGroup>
                 </Path.Data>
             </Path>-->
-            <Viewbox Stretch="Uniform" Width="190" Height="190"  Canvas.Left="26" Canvas.Top="10">
+            <Viewbox Stretch="Uniform" Width="180" Height="180"  Canvas.Left="26" Canvas.Top="10">
 
                 <Canvas UseLayoutRounding="False"  Width="93.693" Height="112.5" HorizontalAlignment="Left" VerticalAlignment="Top">
                     <Canvas  Width="72.522" Height="72.521" Canvas.Left="10.473" Canvas.Top="28.781">
@@ -134,7 +134,7 @@
                 </Canvas>
             </Viewbox>
 
-            <Viewbox Width="122" Height="122"  Canvas.Left="59" Canvas.Top="59">
+            <Viewbox Width="112" Height="112"  Canvas.Left="60" Canvas.Top="58">
                 <ctrl:Slot  ViewType="Top" WaferStatus="{Binding WaferStatus}" SlotID="{Binding SlotID}" ModuleID="{Binding ModuleID}" SourceName="{Binding SourceName}" 
                        DataContext="{Binding ElementName=RightLoadLock, Path=RobotWafer}"  HorizontalAlignment="Center" VerticalAlignment="Center">
                 </ctrl:Slot>