1.TM增加DO_TMCyclePurgeRoutineSuccessed,TM Purge后置为true,TM开腔后该DO置为false,
TM Online时需检查该DO为true
This commit is contained in:
parent
04d384d2ff
commit
484932e024
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DeviceModelDefine type="Sic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<IoInterLocks assembly="SicModules" classType="SicModules.Devices.IoInterLockEx">
|
||||
<IoInterLock id="IoInterLock" module="TM" display="IoInterLock" schematicId="IoInterLock" unit="" doTmAtProcessPress="DO_TMAtProcessPress" doLLAtProcessPress="DO_LoadAtProcessPress" diTmAtATM="DI_TMPressure1ATM" diLoadLockAtATm="DI_LoadPressureATM" aiTmPressure="AI_TMPressure1" aiLLPressure="AI_LoadPressure" diTmUnderVac="DI_TMPressure1VAC" doTmCyclePurgeRoutineRunning="DO_TMCyclePurgeRoutineRunning" doTmLeakCheckRoutineRunning="DO_TMLeakCheckRoutineRunning" doTmPumpDownRoutineRunning="DO_TMPumpDownRoutineRunning" doTmServoPressRoutineRunning="DO_TMServoPressRoutineRunning" doTmVentUpRoutineRunning="DO_TMVentUpRoutineRunning" doLLCyclePurgeRoutineRunning="DO_LoadCyclePurgeRoutineRunning" doLLLeakCheckRoutineRunning="DO_LoadLeakCheckRoutineRunning" doLLPumpDownRoutineRunning="DO_LoadPumpDownRoutineRunning" doLLVentUpRoutineRunning="DO_LoadVentUpRoutineRunning" diVacRobotExtenLLEnableFB="DI_VacRobotExtenLoadEnableFB" diVacRobotExtendBufferEnableFB="DI_VacRobotExtendBufferEnableFB" diVacRobotExtendPMAEnableFB="DI_VacRobotExtendPMAEnableFB" diATMRobotExtendUnloadEnableFB="DI_ATMRobotExtendUnloadEnableFB" diATMRobotExtendLoadLSideEnableFB="DI_ATMRobotExtendLoadLSideEnableFB" diATMRobotExtendLoadRSideEnableFB="DI_ATMRobotExtendLoadRSideEnableFB" diVacRobotExtendUnloadEnableFB="DI_VacRobotExtendUnloadEnableFB" diVacRobotExtendPMBEnableFB="DI_VacRobotExtendPMBEnableFB" doVacRobotExtenLLEnable="DO_VacRobotExtenLoadEnable" doVacRobotExtendBufferEnable="DO_VacRobotExtendBufferEnable" doVacRobotExtendPMAEnable="DO_VacRobotExtendPMAEnable" doVacRobotExtendUnloadEnable="DO_VacRobotExtendUnloadEnable" doVacRobotExtendPMBEnable="DO_VacRobotExtendPMBEnable" doATMRobotExtendUnloadEnable="DO_ATMRobotExtendUnloadEnable" doATMRobotExtendLoaLSideEnable="DO_ATMRobotExtendLoaLSideEnable" doATMRobotExtendLoaRSideEnable="DO_ATMRobotExtendLoaRSideEnable" doRectorAATMTransferReady="DO_ReactorAATMTransferReady" doRectorAProcessTransferReady="DO_ReactorAProcessTransferReady" doPm1LidClosed="DO_PM1LidClosed" doRectorBATMTransferReady="DO_ReactorBATMTransferReady" doRectorBProcessTransferReady="DO_ReactorBProcessTransferReady" doPm2LidClosed="DO_PM2LidClosed" doUnLoadPurgeRoutineRunning="DO_UnLoadCyclePurgeRoutineRunning" doUnLoadLeakCheckRoutineRunning="DO_UnLoadLeakCheckRoutineRunning" doUnLoadPumpDownRoutineRunning="DO_UnLoadPumpDownRoutineRunning" doUnLoadVentUpRoutineRunning="DO_UnLoadVentUpRoutineRunning" />
|
||||
<IoInterLock id="IoInterLock" module="TM" display="IoInterLock" schematicId="IoInterLock" unit="" doTmAtProcessPress="DO_TMAtProcessPress" doLLAtProcessPress="DO_LoadAtProcessPress" diTmAtATM="DI_TMPressure1ATM" diLoadLockAtATm="DI_LoadPressureATM" aiTmPressure="AI_TMPressure1" aiLLPressure="AI_LoadPressure" diTmUnderVac="DI_TMPressure1VAC" doTmCyclePurgeRoutineSuccessed="DO_TMCyclePurgeRoutineSuccessed" doTmCyclePurgeRoutineRunning="DO_TMCyclePurgeRoutineRunning" doTmLeakCheckRoutineRunning="DO_TMLeakCheckRoutineRunning" doTmPumpDownRoutineRunning="DO_TMPumpDownRoutineRunning" doTmServoPressRoutineRunning="DO_TMServoPressRoutineRunning" doTmVentUpRoutineRunning="DO_TMVentUpRoutineRunning" doLLCyclePurgeRoutineRunning="DO_LoadCyclePurgeRoutineRunning" doLLLeakCheckRoutineRunning="DO_LoadLeakCheckRoutineRunning" doLLPumpDownRoutineRunning="DO_LoadPumpDownRoutineRunning" doLLVentUpRoutineRunning="DO_LoadVentUpRoutineRunning" diVacRobotExtenLLEnableFB="DI_VacRobotExtenLoadEnableFB" diVacRobotExtendBufferEnableFB="DI_VacRobotExtendBufferEnableFB" diVacRobotExtendPMAEnableFB="DI_VacRobotExtendPMAEnableFB" diATMRobotExtendUnloadEnableFB="DI_ATMRobotExtendUnloadEnableFB" diATMRobotExtendLoadLSideEnableFB="DI_ATMRobotExtendLoadLSideEnableFB" diATMRobotExtendLoadRSideEnableFB="DI_ATMRobotExtendLoadRSideEnableFB" diVacRobotExtendUnloadEnableFB="DI_VacRobotExtendUnloadEnableFB" diVacRobotExtendPMBEnableFB="DI_VacRobotExtendPMBEnableFB" doVacRobotExtenLLEnable="DO_VacRobotExtenLoadEnable" doVacRobotExtendBufferEnable="DO_VacRobotExtendBufferEnable" doVacRobotExtendPMAEnable="DO_VacRobotExtendPMAEnable" doVacRobotExtendUnloadEnable="DO_VacRobotExtendUnloadEnable" doVacRobotExtendPMBEnable="DO_VacRobotExtendPMBEnable" doATMRobotExtendUnloadEnable="DO_ATMRobotExtendUnloadEnable" doATMRobotExtendLoaLSideEnable="DO_ATMRobotExtendLoaLSideEnable" doATMRobotExtendLoaRSideEnable="DO_ATMRobotExtendLoaRSideEnable" doRectorAATMTransferReady="DO_ReactorAATMTransferReady" doRectorAProcessTransferReady="DO_ReactorAProcessTransferReady" doPm1LidClosed="DO_PM1LidClosed" doRectorBATMTransferReady="DO_ReactorBATMTransferReady" doRectorBProcessTransferReady="DO_ReactorBProcessTransferReady" doPm2LidClosed="DO_PM2LidClosed" doUnLoadPurgeRoutineRunning="DO_UnLoadCyclePurgeRoutineRunning" doUnLoadLeakCheckRoutineRunning="DO_UnLoadLeakCheckRoutineRunning" doUnLoadPumpDownRoutineRunning="DO_UnLoadPumpDownRoutineRunning" doUnLoadVentUpRoutineRunning="DO_UnLoadVentUpRoutineRunning" diTMLidClosed="DI_TMLidClosed"/>
|
||||
</IoInterLocks>
|
||||
<IoMfcs classType="Aitex.Core.RT.Device.Devices.IoMFC" assembly="MECF.Framework.RT.EquipmentLibrary">
|
||||
<IoMfc3 id="Mfc60" module="TM" display="Mfc60" schematicId="Mfc60" unit="sccm"
|
||||
|
|
|
@ -228,6 +228,7 @@
|
|||
<DO_ITEM Index="84" Name="DO_LoadAtProcessPress" BufferOffset="84" Addr="84" Description="" />
|
||||
<DO_ITEM Index="85" Name="DO_LoadTempReady" BufferOffset="85" Addr="85" Description="" />
|
||||
<DO_ITEM Index="86" Name="DO_BufferTempReady" BufferOffset="86" Addr="86" Description="" />
|
||||
<DO_ITEM Index="88" Name="DO_TMCyclePurgeRoutineSuccessed" BufferOffset="88" Addr="88" Description="" />
|
||||
<DO_ITEM Index="89" Name="DO_TMCyclePurgeRoutineRunning" BufferOffset="89" Addr="89" Description="" />
|
||||
<DO_ITEM Index="90" Name="DO_TMLeakCheckRoutineRunning" BufferOffset="90" Addr="90" Description="" />
|
||||
<DO_ITEM Index="91" Name="DO_TMPumpDownRoutineRunning" BufferOffset="91" Addr="91" Description="" />
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -147,6 +147,9 @@ namespace SicModules.TMs.Routines
|
|||
EV.PostAlarmLog(Module, $"can not Purge,{reason}");
|
||||
return Result.FAIL;
|
||||
}
|
||||
|
||||
_tmIoInterLock.DoTmCyclePurgeRoutineSuccessed = false;
|
||||
|
||||
if (SC.GetValue<bool>("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();
|
||||
}
|
||||
|
|
|
@ -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<IoInterLockEx>("TM.IoInterLock");
|
||||
|
||||
EnumLoop<STATE>.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;
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ using System.Windows;
|
|||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
// 方法是按如下所示使用“*”: :
|
||||
|
||||
[assembly: AssemblyVersion("1.2.1.53")]
|
||||
[assembly: AssemblyVersion("1.2.1.54")]
|
||||
[assembly: AssemblyInformationalVersion("手动通用版(无EFEM)")]
|
||||
|
||||
|
||||
|
|
|
@ -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**
|
||||
|
|
|
@ -218,6 +218,7 @@
|
|||
<DO_ITEM Index="84" Name="DO_LoadAtProcessPress" BufferOffset="84" Addr="84" Description="" />
|
||||
<DO_ITEM Index="85" Name="DO_LoadTempReady" BufferOffset="85" Addr="85" Description="" />
|
||||
<DO_ITEM Index="86" Name="DO_BufferTempReady" BufferOffset="86" Addr="86" Description="" />
|
||||
<DO_ITEM Index="88" Name="DO_TMCyclePurgeRoutineSuccessed" BufferOffset="88" Addr="88" Description="" />
|
||||
<DO_ITEM Index="89" Name="DO_TMCyclePurgeRoutineRunning" BufferOffset="89" Addr="89" Description="" />
|
||||
<DO_ITEM Index="90" Name="DO_TMLeakCheckRoutineRunning" BufferOffset="90" Addr="90" Description="" />
|
||||
<DO_ITEM Index="91" Name="DO_TMPumpDownRoutineRunning" BufferOffset="91" Addr="91" Description="" />
|
||||
|
|
|
@ -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)")]
|
||||
|
||||
|
|
Loading…
Reference in New Issue