diff --git a/Modules/SicModules/Config/TM/DeviceModelSystem.xml b/Modules/SicModules/Config/TM/DeviceModelSystem.xml index 8f455ed..81c5ede 100644 --- a/Modules/SicModules/Config/TM/DeviceModelSystem.xml +++ b/Modules/SicModules/Config/TM/DeviceModelSystem.xml @@ -1,7 +1,7 @@  - + + diff --git a/Modules/SicModules/Devices/IoInterLockEx.cs b/Modules/SicModules/Devices/IoInterLockEx.cs index 9b1537a..aa49a63 100644 --- a/Modules/SicModules/Devices/IoInterLockEx.cs +++ b/Modules/SicModules/Devices/IoInterLockEx.cs @@ -18,7 +18,9 @@ namespace SicModules.Devices private AIAccessor _aiTmPressure = null; private AIAccessor _aiLLPressure = null; private DIAccessor _diTMUnderVac = null; + private DIAccessor _diTMLidClosed = null; + private DOAccessor _doTmCyclePurgeRoutineSuccessed = null; private DOAccessor _doTmCyclePurgeRoutineRunning = null; private DOAccessor _doTmLeakCheckRoutineRunning = null; private DOAccessor _doTmPumpDownRoutineRunning = null; @@ -82,8 +84,10 @@ namespace SicModules.Devices _diLoadLockAtATM = ParseDiNode("diLoadLockAtATm", node, ioModule); _aiTmPressure = ParseAiNode("aiTmPressure", node, ioModule); _aiLLPressure = ParseAiNode("aiLLPressure", node, ioModule); - _diTMUnderVac = ParseDiNode("diTmUnderVac", node, ioModule); - + _diTMUnderVac = ParseDiNode("diTmUnderVac", node, ioModule); + _diTMLidClosed = ParseDiNode("diTMLidClosed", node, ioModule); + + _doTmCyclePurgeRoutineSuccessed = ParseDoNode("doTmCyclePurgeRoutineSuccessed", node, ioModule); _doTmCyclePurgeRoutineRunning = ParseDoNode("doTmCyclePurgeRoutineRunning", node, ioModule); _doTmLeakCheckRoutineRunning = ParseDoNode("doTmLeakCheckRoutineRunning", node, ioModule); _doTmPumpDownRoutineRunning = ParseDoNode("doTmPumpDownRoutineRunning", node, ioModule); @@ -187,6 +191,25 @@ namespace SicModules.Devices } } + public bool DoTmCyclePurgeRoutineSuccessed + { + get + { + if (_doTmCyclePurgeRoutineSuccessed != null) + { + return _doTmCyclePurgeRoutineSuccessed.Value; + } + return false; + } + set + { + if (_doTmCyclePurgeRoutineSuccessed != null) + { + _doTmCyclePurgeRoutineSuccessed.Value = value; + } + } + } + public bool DoTmCyclePurgeRoutineRunning { get @@ -358,14 +381,6 @@ namespace SicModules.Devices } } - - - - - - - - public bool DoUnLoadPurgeRoutineRunning { get @@ -442,8 +457,6 @@ namespace SicModules.Devices } } - - public bool DoVacRobotExtendPMAEnable { get @@ -537,9 +550,6 @@ namespace SicModules.Devices } } - - - public bool DiVacRobotExtenLLEnableFB { get @@ -891,7 +901,21 @@ namespace SicModules.Devices return true; } + public bool SetTMPurgeRoutineSuccessed(bool eValue, out string reason) + { + reason = string.Empty; + if (!_doTmCyclePurgeRoutineSuccessed.Check(eValue, out reason)) + { + return false; + } + if (!_doTmCyclePurgeRoutineSuccessed.SetValue(eValue, out reason)) + { + return false; + } + + return true; + } public bool SetTMPurgeRoutineRunning(bool eValue, out string reason) @@ -1099,6 +1123,10 @@ namespace SicModules.Devices { _doLLAtProcessPress.Value = _aiLLPressure != null && _aiLLPressure.FloatValue <= _scLoadLockVacBasePressure.DoubleValue; + if(!_diTMLidClosed.Value) + { + _doTmCyclePurgeRoutineSuccessed.Value = false; + } } public void Reset() diff --git a/Modules/SicModules/TMs/Routines/TMPurgeRoutine.cs b/Modules/SicModules/TMs/Routines/TMPurgeRoutine.cs index cb0e29e..0564131 100644 --- a/Modules/SicModules/TMs/Routines/TMPurgeRoutine.cs +++ b/Modules/SicModules/TMs/Routines/TMPurgeRoutine.cs @@ -147,6 +147,9 @@ namespace SicModules.TMs.Routines EV.PostAlarmLog(Module, $"can not Purge,{reason}"); return Result.FAIL; } + + _tmIoInterLock.DoTmCyclePurgeRoutineSuccessed = false; + if (SC.GetValue("System.IsATMMode")) { return Result.DONE; @@ -243,10 +246,10 @@ namespace SicModules.TMs.Routines return Result.FAIL; } - Notify($"Finished ! Elapsed time: {(int)(_swTimer.ElapsedMilliseconds / 1000)} s"); _tmIoInterLock.DoTmCyclePurgeRoutineRunning = false; + _tmIoInterLock.DoTmCyclePurgeRoutineSuccessed = true; return Result.DONE; } @@ -254,8 +257,7 @@ namespace SicModules.TMs.Routines public override void Abort() { _tmIoInterLock.DoTmCyclePurgeRoutineRunning = false; - //_pumpRoutine.Abort(); - //_ventRoutine.Abort(); + _tmIoInterLock.DoTmCyclePurgeRoutineSuccessed = false; base.Abort(); } diff --git a/Modules/SicModules/TMs/TMModule.cs b/Modules/SicModules/TMs/TMModule.cs index 9785fcd..2de99c0 100644 --- a/Modules/SicModules/TMs/TMModule.cs +++ b/Modules/SicModules/TMs/TMModule.cs @@ -18,6 +18,7 @@ using Aitex.Sorter.Common; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.Event; using MECF.Framework.Common.PLC; +using SicModules.Devices; using SicModules.TMs.Routines; using SicAds = SicModules.Devices.SicAds; @@ -215,6 +216,8 @@ namespace SicModules.TMs private TMVerifySlitValveRoutine _slitValveVerifyRoutine; private TMServoRoutine _servoTMRoutine; + private IoInterLockEx _tmIoInterLock; + private bool _isInit; private bool _isStartTMRobotHome; public bool IsTMRobotHomed { get; set; } @@ -232,6 +235,8 @@ namespace SicModules.TMs Name = module.ToString(); IsOnline = false; + _tmIoInterLock = DEVICE.GetDevice("TM.IoInterLock"); + EnumLoop.ForEach((item) => { MapState((int)item, item.ToString()); @@ -846,6 +851,13 @@ namespace SicModules.TMs private bool FsmStartSetOnline(object[] param) { + //需检查是否完成TM Purge + if(!_tmIoInterLock.DoTmCyclePurgeRoutineSuccessed) + { + EV.PostWarningLog("TM", "TM Purge is not complete,cannot be online"); + return true; + } + IsOnline = true; return true; } @@ -1104,6 +1116,13 @@ namespace SicModules.TMs return false; } + //需检查是否完成TM Purge + if (!_tmIoInterLock.DoTmCyclePurgeRoutineSuccessed) + { + EV.PostWarningLog("TM", "TM Purge is not complete,cannot be online"); + return true; + } + IsOnline = true; return true; } diff --git a/SicRT/Properties/AssemblyInfo.cs b/SicRT/Properties/AssemblyInfo.cs index 2472d0e..a2f6c0f 100644 --- a/SicRT/Properties/AssemblyInfo.cs +++ b/SicRT/Properties/AssemblyInfo.cs @@ -51,7 +51,7 @@ using System.Windows; // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 // 方法是按如下所示使用“*”: : -[assembly: AssemblyVersion("1.2.1.53")] +[assembly: AssemblyVersion("1.2.1.54")] [assembly: AssemblyInformationalVersion("手动通用版(无EFEM)")] diff --git a/SicRT/ReleaseNotes.md b/SicRT/ReleaseNotes.md index 51b011a..4250f6a 100644 --- a/SicRT/ReleaseNotes.md +++ b/SicRT/ReleaseNotes.md @@ -3,6 +3,16 @@ Manual-GE 手动通用版(适用无EFEM设备) ------ +## Version 1.2.1.54 + +**2023-10-11** + +- Bug修复 + - +- 新特性 +-1.TM增加DO_TMCyclePurgeRoutineSuccessed,TM Purge后置为true,TM开腔后该DO置为false, +TM Online时需检查该DO为true + ## Version 1.2.1.53 **2023-10-10** diff --git a/SicSimulator/Config/IODefinePlatform.xml b/SicSimulator/Config/IODefinePlatform.xml index 4f1fc50..a0c60d0 100644 --- a/SicSimulator/Config/IODefinePlatform.xml +++ b/SicSimulator/Config/IODefinePlatform.xml @@ -218,6 +218,7 @@ + diff --git a/SicUI/Properties/AssemblyInfo.cs b/SicUI/Properties/AssemblyInfo.cs index ae080b7..b40ee83 100644 --- a/SicUI/Properties/AssemblyInfo.cs +++ b/SicUI/Properties/AssemblyInfo.cs @@ -54,6 +54,6 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.2.1.53")] +[assembly: AssemblyVersion("1.2.1.54")] [assembly: AssemblyInformationalVersion("手动通用版(无EFEM)")]