From 360da502c5f4ef2da0ddac2c76b81ba934ff08df Mon Sep 17 00:00:00 2001 From: "DESKTOP-GPE37UV\\THINKAPD" Date: Fri, 24 Feb 2023 09:19:37 +0800 Subject: [PATCH] update from svn. --- .../RTEquipmentLibrary/Devices/TcAds.cs | 2 +- .../SiasunPhoenixB/RobotSiasunPhoenixB.cs | 23 ++++++++- Modules/Mainframe/Devices/TcAds.cs | 2 +- Modules/Mainframe/TMs/TMBaseRoutine.cs | 8 ++++ Modules/SicPM1/Config/interlockPM1.xml | 6 +-- Modules/SicPM2/Config/interlockPM2.xml | 6 +-- SicRT/Config/System.sccfg | 10 ++-- SicRT/Properties/AssemblyInfo.cs | 4 +- SicRT/ReleaseNotes.txt | 6 +++ SicUI/Models/Maintenances/TM/TMView.xaml | 4 +- SicUI/Models/Maintenances/TM/TMViewModel.cs | 48 +++++++++++++++++++ SicUI/Models/PMs/PMOperationView.xaml | 2 +- SicUI/Properties/AssemblyInfo.cs | 4 +- 13 files changed, 103 insertions(+), 22 deletions(-) diff --git a/FrameworkLocal/RTEquipmentLibrary/Devices/TcAds.cs b/FrameworkLocal/RTEquipmentLibrary/Devices/TcAds.cs index 6fc1654..a7b3a85 100644 --- a/FrameworkLocal/RTEquipmentLibrary/Devices/TcAds.cs +++ b/FrameworkLocal/RTEquipmentLibrary/Devices/TcAds.cs @@ -300,7 +300,7 @@ namespace Aitex.Core.RT.Device.Devices if (!write.IsSuccess) { //if (!_isCommunicationError) - EV.PostAlarmLog("PLC", $"Communication error with Siemens PLC , {write.Message}"); + EV.PostWarningLog("PLC", $"Communication error with Siemens PLC , {write.Message}"); //_isCommunicationError = true; } return write.IsSuccess; diff --git a/FrameworkLocal/RTEquipmentLibrary/HardwareUnits/Robots/SiasunPhoenixB/RobotSiasunPhoenixB.cs b/FrameworkLocal/RTEquipmentLibrary/HardwareUnits/Robots/SiasunPhoenixB/RobotSiasunPhoenixB.cs index eb1dc71..a14de5e 100644 --- a/FrameworkLocal/RTEquipmentLibrary/HardwareUnits/Robots/SiasunPhoenixB/RobotSiasunPhoenixB.cs +++ b/FrameworkLocal/RTEquipmentLibrary/HardwareUnits/Robots/SiasunPhoenixB/RobotSiasunPhoenixB.cs @@ -75,6 +75,8 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.SiasunPhoenixB private SCConfigItem _scBladeSlots; private List _disabledIntlkModules = new List(); + private IoClaw _llWaferClaw; + public int BladeSlots => _scBladeSlots == null ? 1 : _scBladeSlots.IntValue; private bool _enableLog; private string _scRoot; @@ -106,6 +108,8 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.SiasunPhoenixB _connection = new RobotSiasunPhoenixBTCPConnection(deviceIP, endof); _connection.EnableLog(_enableLog); + _llWaferClaw = DEVICE.GetDevice($"{ModuleName.LoadLock}.LLWaferClaw"); + if (_connection.Connect()) { _trigConnection.CLK = true; @@ -1297,6 +1301,12 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.SiasunPhoenixB { Blade1Target = ModuleName.System; Blade2Target = ModuleName.System; + + if(CurrentParamter == null) + { + return false; + } + RobotArmEnum arm = (RobotArmEnum)CurrentParamter[0]; ModuleName sourcemodule; @@ -1313,9 +1323,18 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.SiasunPhoenixB { if (BladeSlots == 1) { - if (arm == RobotArmEnum.Blade1) - WaferManager.Instance.WaferMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0); + { + if(_llWaferClaw.State == ClawStateEnum.Clamp && (sourcemodule == ModuleName.LoadLock || sourcemodule == ModuleName.Load)) + { + WaferManager.Instance.TrayMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0); + } + else + { + WaferManager.Instance.WaferMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0); + } + } + if (arm == RobotArmEnum.Blade2) WaferManager.Instance.WaferMoved(sourcemodule, SourceslotIndex, RobotModuleName, 1); } diff --git a/Modules/Mainframe/Devices/TcAds.cs b/Modules/Mainframe/Devices/TcAds.cs index 9d367d5..da80488 100644 --- a/Modules/Mainframe/Devices/TcAds.cs +++ b/Modules/Mainframe/Devices/TcAds.cs @@ -301,7 +301,7 @@ namespace Mainframe.Devices if (!write.IsSuccess) { //if (!_isCommunicationError) - EV.PostAlarmLog("PLC", $"Communication error with Siemens PLC , {write.Message}"); + EV.PostWarningLog("PLC", $"Communication error with Siemens PLC , {write.Message}"); //_isCommunicationError = true; } return write.IsSuccess; diff --git a/Modules/Mainframe/TMs/TMBaseRoutine.cs b/Modules/Mainframe/TMs/TMBaseRoutine.cs index d2e3fdf..3027bc2 100644 --- a/Modules/Mainframe/TMs/TMBaseRoutine.cs +++ b/Modules/Mainframe/TMs/TMBaseRoutine.cs @@ -43,6 +43,11 @@ namespace Mainframe.TMs get { return _unLoadLift; } } + protected IoClaw LLWaferClaw + { + get { return _llWaferClaw; } + } + protected bool _isATMMode; private RobotBaseDevice _robot = null; @@ -61,6 +66,8 @@ namespace Mainframe.TMs private IoLift4 _loadLift; private IoLift4 _unLoadLift; + private IoClaw _llWaferClaw; + public TMBaseRoutine() { Module = ModuleName.TM.ToString(); @@ -77,6 +84,7 @@ namespace Mainframe.TMs _tmIoInterLock = DEVICE.GetDevice("TM.IoInterLock"); _loadLift = DEVICE.GetDevice($"{ModuleName.LoadLock}.LLLift"); + _llWaferClaw = DEVICE.GetDevice($"{ModuleName.LoadLock}.LLWaferClaw"); _unLoadLift = DEVICE.GetDevice($"{ModuleName.UnLoad}.UnLoadLift"); _reactorSuspectorCheckPM1 = DEVICE.GetDevice($"PM1.SensorReactorSuspectorCheck"); diff --git a/Modules/SicPM1/Config/interlockPM1.xml b/Modules/SicPM1/Config/interlockPM1.xml index de2dd74..2f15967 100644 --- a/Modules/SicPM1/Config/interlockPM1.xml +++ b/Modules/SicPM1/Config/interlockPM1.xml @@ -2362,7 +2362,7 @@ - + @@ -2419,7 +2419,7 @@ - + @@ -2476,7 +2476,7 @@ - + diff --git a/Modules/SicPM2/Config/interlockPM2.xml b/Modules/SicPM2/Config/interlockPM2.xml index 374f592..52c2bc0 100644 --- a/Modules/SicPM2/Config/interlockPM2.xml +++ b/Modules/SicPM2/Config/interlockPM2.xml @@ -2362,7 +2362,7 @@ - + @@ -2419,7 +2419,7 @@ - + @@ -2476,7 +2476,7 @@ - + diff --git a/SicRT/Config/System.sccfg b/SicRT/Config/System.sccfg index 7f078ee..bf77bfc 100644 --- a/SicRT/Config/System.sccfg +++ b/SicRT/Config/System.sccfg @@ -745,7 +745,7 @@ - + @@ -1432,7 +1432,7 @@ - + @@ -2032,7 +2032,7 @@ - + @@ -2183,7 +2183,7 @@ - + @@ -2257,7 +2257,7 @@ - + diff --git a/SicRT/Properties/AssemblyInfo.cs b/SicRT/Properties/AssemblyInfo.cs index 2e8829a..71f89e2 100644 --- a/SicRT/Properties/AssemblyInfo.cs +++ b/SicRT/Properties/AssemblyInfo.cs @@ -51,7 +51,7 @@ using System.Windows; // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 // 方法是按如下所示使用“*”: : -[assembly: AssemblyVersion("1.0.6.14")] -[assembly: AssemblyFileVersion("1.0.6.14")] +[assembly: AssemblyVersion("1.0.6.15")] +[assembly: AssemblyFileVersion("1.0.6.15")] diff --git a/SicRT/ReleaseNotes.txt b/SicRT/ReleaseNotes.txt index ba4eb7c..ed295c0 100644 --- a/SicRT/ReleaseNotes.txt +++ b/SicRT/ReleaseNotes.txt @@ -9,6 +9,12 @@ Sic 系统更新历史记录 --------------------------------------------------------------------------------- +Sic06 2023-02-22 Version 1.0.6.15 +1.Purge最大时间改为100000s +2.解决SCR Interlock问题 +3.TMRobot Pick Load根据Wafer夹爪判断传Tray和Wafer信息 +4.Load腔非Idle情况下TMRobot不能Pick和Place + Sic06 2023-02-17 Version 1.0.6.14 1.解决Load腔CCD拍照逻辑问题 diff --git a/SicUI/Models/Maintenances/TM/TMView.xaml b/SicUI/Models/Maintenances/TM/TMView.xaml index 2d0f3ed..1d1aaf8 100644 --- a/SicUI/Models/Maintenances/TM/TMView.xaml +++ b/SicUI/Models/Maintenances/TM/TMView.xaml @@ -3033,7 +3033,7 @@ Height="25" Margin="10,0" Content="Pick" - IsEnabled="{Binding RobotCheckOffline}"> + IsEnabled="{Binding IsTMRobotActionEnable}"> @@ -3045,7 +3045,7 @@ Height="25" Margin="10,0" Content="Place" - IsEnabled="{Binding RobotCheckOffline}"> + IsEnabled="{Binding IsTMRobotActionEnable}"> diff --git a/SicUI/Models/Maintenances/TM/TMViewModel.cs b/SicUI/Models/Maintenances/TM/TMViewModel.cs index 224551b..471d6a8 100644 --- a/SicUI/Models/Maintenances/TM/TMViewModel.cs +++ b/SicUI/Models/Maintenances/TM/TMViewModel.cs @@ -466,6 +466,54 @@ namespace SicUI.Client.Models.Platform.TM public AITMfcData Mfc61Data { get; set; } public ICommand CmdSetMfcFlow { get; set; } + + public bool CheckTargetIdle(string target) + { + bool IsTargetIdle = false; + switch (target) + { + case "LoadLock": + case "Load": + { + IsTargetIdle = LLStatus == "Idle" && !LLIsOnline; + } + break; + case "PM1": + { + IsTargetIdle = (StatusPM1 == "Idle" || StatusPM1 =="ProcessIdle") && !PM1IsOnline; + } + break; + case "PM2": + { + IsTargetIdle = (StatusPM2 == "Idle" || StatusPM2 == "ProcessIdle") && !PM2IsOnline; + } + break; + case "UnLoad": + { + IsTargetIdle = UnLoadStatus == "Idle" && !UnLoadIsOnline; + } + break; + case "Buffer.01": + case "Buffer.02": + case "Buffer.03": + { + IsTargetIdle = BufferStatus == "Idle" && !BufferIsOnline; + } + break; + + } + + return IsTargetIdle; + } + + public bool IsTMRobotActionEnable + { + get + { + return IsTMEnableManualOperation && CheckTargetIdle(PickSelectedModule); + } + } + private bool mRobotCheckOffline; public bool RobotCheckOffline { diff --git a/SicUI/Models/PMs/PMOperationView.xaml b/SicUI/Models/PMs/PMOperationView.xaml index 6b55646..69dc69d 100644 --- a/SicUI/Models/PMs/PMOperationView.xaml +++ b/SicUI/Models/PMs/PMOperationView.xaml @@ -6829,7 +6829,7 @@