diff --git a/SicUI/Controls/Mainframe/AtmRobotMultiLP.xaml b/SicUI/Controls/Mainframe/AtmRobotMultiLP.xaml index be94b3e2..31f7fee6 100644 --- a/SicUI/Controls/Mainframe/AtmRobotMultiLP.xaml +++ b/SicUI/Controls/Mainframe/AtmRobotMultiLP.xaml @@ -6,15 +6,15 @@ xmlns:controls="clr-namespace:SicUI.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase" - xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts" xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core" + xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + x:Name="mainw" d:DesignHeight="38" d:DesignWidth="416" - mc:Ignorable="d" - x:Name="mainw"> + mc:Ignorable="d"> - + --> + + + + @@ -72,8 +94,8 @@ - - + + + + + + + + + + + + + + + + diff --git a/SicUI/Controls/Mainframe/M2C4EFEMView2.xaml b/SicUI/Controls/Mainframe/M2C4EFEMView2.xaml index b9115a2c..9c99e17e 100644 --- a/SicUI/Controls/Mainframe/M2C4EFEMView2.xaml +++ b/SicUI/Controls/Mainframe/M2C4EFEMView2.xaml @@ -14,98 +14,156 @@ x:Name="root" Height="800" VerticalAlignment="Top"> - + + - - + Canvas.Left="253" + Canvas.Top="236" + Height="250" + Width="250" + Source="Images/tm4.png" /> + + Source="Images/pmbg51.png" HorizontalAlignment="Center" VerticalAlignment="Top"> - - - - + + RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Top"> - + + + + + + + + + + + Source="Images/pmbg41.png" HorizontalAlignment="Center" VerticalAlignment="Top"> - + + RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Top"> - + + + + + + - + + + + + + + + + + Canvas.Left="406" + Canvas.Top="470" + Source="Images/wf.png" Height="126" Width="110" HorizontalAlignment="Center" VerticalAlignment="Top"> - - - - + - - + --> - - --> + + + + + + + + + Wafer1="{Binding TMRobotWafer1}" HorizontalAlignment="Center" VerticalAlignment="Top" /> + + Source="Images/Buffer.png" HorizontalAlignment="Left" VerticalAlignment="Top" Height="120" Width="100"> - - - - + + RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Top"> - - - - + - + Visibility="{Binding PM1HaveTray}" />--> - + Visibility="{Binding PM2HaveTray}" />--> - + + + + + diff --git a/SicUI/Controls/Mainframe/RobotEfemTray.xaml b/SicUI/Controls/Mainframe/RobotEfemTray.xaml index 519a4697..72bdfa9f 100644 --- a/SicUI/Controls/Mainframe/RobotEfemTray.xaml +++ b/SicUI/Controls/Mainframe/RobotEfemTray.xaml @@ -5,14 +5,14 @@ xmlns:Common="clr-namespace:SicUI.Controls.Common" xmlns:controls="clr-namespace:SicUI.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts" xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core" + xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="38" d:DesignWidth="416" mc:Ignorable="d"> - + - - + + diff --git a/SicUI/Controls/Mainframe/RobotEfemTray.xaml.cs b/SicUI/Controls/Mainframe/RobotEfemTray.xaml.cs index ac5dff86..19692402 100644 --- a/SicUI/Controls/Mainframe/RobotEfemTray.xaml.cs +++ b/SicUI/Controls/Mainframe/RobotEfemTray.xaml.cs @@ -20,9 +20,11 @@ namespace SicUI.Controls.M2C4Parts private int moveTime = 300; private const int AnimationTimeout = 3000; // ms + private string _currentPosition; private string CurrentPosition { - get; set; + get { return _currentPosition; } + set { _currentPosition = value; } } private RobotAction CurrentAction diff --git a/SicUI/Controls/Mainframe/RobotEfemWafer.xaml b/SicUI/Controls/Mainframe/RobotEfemWafer.xaml index 54710cc4..3c4b17ce 100644 --- a/SicUI/Controls/Mainframe/RobotEfemWafer.xaml +++ b/SicUI/Controls/Mainframe/RobotEfemWafer.xaml @@ -5,14 +5,14 @@ xmlns:Common="clr-namespace:SicUI.Controls.Common" xmlns:controls="clr-namespace:SicUI.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts" xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core" + xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="38" d:DesignWidth="416" mc:Ignorable="d"> - + - - + + diff --git a/SicUI/Models/Maintenances/TM/EFEMView.xaml b/SicUI/Models/Maintenances/TM/EFEMView.xaml index 375b0d4a..a1284614 100644 --- a/SicUI/Models/Maintenances/TM/EFEMView.xaml +++ b/SicUI/Models/Maintenances/TM/EFEMView.xaml @@ -1612,6 +1612,19 @@ + + @@ -1678,6 +1691,20 @@ + + @@ -1749,6 +1776,20 @@ + + diff --git a/SicUI/Models/Maintenances/TM/EFEMViewModel.cs b/SicUI/Models/Maintenances/TM/EFEMViewModel.cs index ab2752ff..8d02b344 100644 --- a/SicUI/Models/Maintenances/TM/EFEMViewModel.cs +++ b/SicUI/Models/Maintenances/TM/EFEMViewModel.cs @@ -274,13 +274,42 @@ namespace SicUI.Models.Maintenances.TM set; } - [Subscription("TrayRobot.RobotMoveInfo")] + //[Subscription("TrayRobot.RobotMoveInfo")] public RobotMoveInfo TrayRobotMoveInfo { get; set; } + public void Test() + { + TrayRobotMoveInfo = new RobotMoveInfo() + { + Action = RobotAction.Moving, + ArmTarget = RobotArm.ArmA, + BladeTarget = "CassBL", + }; + } + public void Test2() + { + TrayRobotMoveInfo = new RobotMoveInfo() + { + Action = RobotAction.Picking, + ArmTarget = RobotArm.ArmA, + BladeTarget = "ArmA.CassBL", + }; + } + + public void Test3() + { + TrayRobotMoveInfo = new RobotMoveInfo() + { + Action = RobotAction.Picking, + ArmTarget = RobotArm.ArmA, + BladeTarget = "LoadLock", + }; + } + [Subscription("WaferRobot.State")] public string WaferRobotState { get; set; } diff --git a/SicUI/Models/Operations/Overviews/OverViewView.xaml b/SicUI/Models/Operations/Overviews/OverViewView.xaml index 06b7865c..f6ca9d7f 100644 --- a/SicUI/Models/Operations/Overviews/OverViewView.xaml +++ b/SicUI/Models/Operations/Overviews/OverViewView.xaml @@ -359,13 +359,103 @@ HorizontalAlignment="Center" VerticalAlignment="Top"> - + + + + + + + + + + + + + + + + + + + + + TimeBuffer2 == null || TimeBuffer2.Length == 0 ? 0: Double.Parse(TimeBuffer2); + public double sTimeBuffer2 => TimeBuffer2 == null || TimeBuffer2.Length == 0 ? 0 : Double.Parse(TimeBuffer2); [Subscription("Scheduler.TimeBuffer3")] public string TimeBuffer3 { get; set; } @@ -749,6 +755,67 @@ namespace SicUI.Models.Operations.Overviews #endregion + #region 动画测试 + + + + public int r1 { get; set; } + + public int r2 { get; set; } + + public int r3 { get; set; } + + public RobotPosition TmRobotPointIntsMove { get; set; } + + public void MovePoint() + { + TmRobotPointIntsMove = new RobotPosition() + { + Z = 0, + Root = r1, + Arm = r2, + Hand = r3 + }; + } + + public bool IsPick { get; set; } + + public void Storyboard(string toName) + { + TmRobotMoveInfo = new RobotMoveInfo() + { + Action = IsPick ? RobotAction.Picking : RobotAction.Moving, + ArmTarget = RobotArm.ArmA, + BladeTarget = toName, + }; + } + + AutoTransfer autoTransferPM1 = new AutoTransfer("PM1"); + + public void AutoStart() + { + Task.Run(() => + { + foreach (var moduleAutoTransfer in autoTransferPM1.moduleAutoTransfers) + { + foreach (var moduleAuto in moduleAutoTransfer.AutoTransferList) + { + System.Threading.Thread.Sleep(1000); + TmRobotMoveInfo = new RobotMoveInfo() + { + Action = moduleAuto.robotAction, + ArmTarget = RobotArm.ArmA, + BladeTarget = moduleAuto.Module, + }; + //if (moduleAuto.robotAction== RobotAction.Picking || moduleAuto.robotAction == RobotAction.Placing) + // WaferManager.Instance.TrayMoved(moduleAutoTransfer.FromName, 1, moduleAutoTransfer.ToName, 1); + } + } + }); + + } + #endregion + public OverViewViewModel() { this.DisplayName = "OverViewViewModel"; @@ -1315,4 +1382,55 @@ namespace SicUI.Models.Operations.Overviews } + + public class AutoTransfer + { + public AutoTransfer(string pmName) + { + moduleAutoTransfers = new List() + { + new ModuleAutoTransfer(ModuleName.LoadLock,ModuleName.TMRobot,"ArmA.LoadLock",RobotAction.Picking), + new ModuleAutoTransfer(), + new ModuleAutoTransfer(ModuleName.TMRobot,ModuleName.PM1,$"ArmA.{pmName}"), + new ModuleAutoTransfer(), + new ModuleAutoTransfer(ModuleName.PM1,ModuleName.Buffer,"ArmA.Buffer"), + new ModuleAutoTransfer(), + new ModuleAutoTransfer(ModuleName.TMRobot,ModuleName.Buffer,"ArmA.Buffer"), + new ModuleAutoTransfer(), + new ModuleAutoTransfer(ModuleName.Buffer,ModuleName.TMRobot,"ArmA.LoadLock"), + }; + } + public List moduleAutoTransfers { get;set; } + } + + public class ModuleAutoTransfer + { + public ModuleName FromName { get;set; } + public ModuleName ToName { get;set; } + public List AutoTransferList { get; set; } + + public ModuleAutoTransfer() + { + AutoTransferList=new List() { new ModuleAuto() { Module = "ArmA.System" }, }; + } + + public ModuleAutoTransfer(ModuleName fromName , ModuleName toName , string locationName, RobotAction robotAction = RobotAction.Placing) + { + FromName = fromName; + ToName = toName; + AutoTransferList = new List() + { + new ModuleAuto() {Module=locationName}, + new ModuleAuto() {Module=locationName,robotAction= robotAction}, + new ModuleAuto() {Module=locationName}, + }; + } + } + + public class ModuleAuto + { + public string Module { get; set; } + + public RobotAction robotAction { get; set; } = RobotAction.Moving; + } } diff --git a/SicUI/SicUI.csproj b/SicUI/SicUI.csproj index e4af957f..43c2b6ec 100644 --- a/SicUI/SicUI.csproj +++ b/SicUI/SicUI.csproj @@ -918,6 +918,10 @@ if exist "$(ProjectDir)..\SicSetup\Packages\SicUI\PresetGroups" rd "$(ProjectDir + + + + diff --git a/ThirdParty/MECF.Framework/RTOverEthernetDevelopmentKit.dll b/ThirdParty/MECF.Framework/RTOverEthernetDevelopmentKit.dll index 355082f4..c10afb1c 100644 Binary files a/ThirdParty/MECF.Framework/RTOverEthernetDevelopmentKit.dll and b/ThirdParty/MECF.Framework/RTOverEthernetDevelopmentKit.dll differ