1.在PreProcess、Procss、PostProcess过程中检查对应的DO-PreProcessRunning、DO-ProcessRunning、DO-PostProcessRunning信号,

- 若为false则PM宕机
This commit is contained in:
HCL 2024-04-29 16:50:55 +08:00
parent fbc56d9f4f
commit 277212c292
11 changed files with 59 additions and 8 deletions

View File

@ -327,8 +327,10 @@ namespace SicModules.PMs
public void AbortRunProcess(out string reason)
{
_pmInterLock.SetPMProcessRunning(false, out reason);
_pmInterLock.SetPMPreProcessRunning(false, out reason);
_pmInterLock.SetPMProcessRunning(false, out reason);
_pmInterLock.SetPMPostProcessRunning(false, out reason);
reason = string.Empty;
StopRamp();
SetRotationServo(0, 0);
@ -1333,8 +1335,9 @@ namespace SicModules.PMs
private bool ExitPostProcess(object[] param)
{
_pmInterLock.SetPMProcessRunning(false, out string reason);
_pmInterLock.SetPMPreProcessRunning(false, out reason);
_pmInterLock.SetPMPreProcessRunning(false, out _);
_pmInterLock.SetPMProcessRunning(false, out _);
_pmInterLock.SetPMPostProcessRunning(false, out _);
return true;
}
@ -1414,8 +1417,9 @@ namespace SicModules.PMs
IsOnline = false;
StopRamp();
_pmInterLock.SetPMProcessRunning(false, out string reason);
_pmInterLock.SetPMPreProcessRunning(false, out reason);
_pmInterLock.SetPMPreProcessRunning(false, out _);
_pmInterLock.SetPMProcessRunning(false, out _);
_pmInterLock.SetPMPostProcessRunning(false, out _);
if (FsmState.Equals((int)STATE.Process))
{
@ -1443,8 +1447,9 @@ namespace SicModules.PMs
else
{
StopRamp();
_pmInterLock.SetPMProcessRunning(false, out string reason);
_pmInterLock.SetPMPreProcessRunning(false, out reason);
_pmInterLock.SetPMPreProcessRunning(false, out _);
_pmInterLock.SetPMProcessRunning(false, out _);
_pmInterLock.SetPMPostProcessRunning(false, out _);
}
return true;
@ -1606,6 +1611,33 @@ namespace SicModules.PMs
return false;
}
if (ret == Result.RUN && FsmState == (int)STATE.PreProcess)
{
if (!_pmInterLock.DoPreprocessRunning)
{
PostMsg(MSG.Abort);
return false;
}
}
if (ret == Result.RUN && FsmState == (int)STATE.Process)
{
if(!_pmInterLock.DoProcessRunning)
{
PostMsg(MSG.Abort);
return false;
}
}
if (ret == Result.RUN && FsmState == (int)STATE.PostProcess)
{
if (!_pmInterLock.DoPostProcessRunning)
{
PostMsg(MSG.Abort);
return false;
}
}
if (ret == Result.DONE && FsmState == (int)STATE.PreProcess)
{
PostMsg(MSG.Process);

View File

@ -86,11 +86,15 @@ namespace SicModules.PMs.RecipeExecutions
private float _scrL2Ratio = 0;
private float _scrL3Ratio = 0;
private IoInterLock _pmInterLock;
private Stopwatch _swTimer = new Stopwatch();
public PostProcess(ModuleName module, PMModule pm1) : base(module, pm1)
{
Module = module.ToString();
Name = "PostProcess";
_pmInterLock = DEVICE.GetDevice<IoInterLock>($"{Module}.PMInterLock");
}
public override Result Start(params object[] objs)
@ -125,6 +129,12 @@ namespace SicModules.PMs.RecipeExecutions
_scrL2Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.SCRMiddleRatio");
_scrL3Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.SCRLowerRatio");
if (!_pmInterLock.SetPMPostProcessRunning(true, out string reason))
{
EV.PostAlarmLog(Module, $"can not run PostProcess, {reason}");
return Result.FAIL;
}
_swTimer.Restart();
Notify("Start");
return Result.RUN;

View File

@ -3,6 +3,15 @@
Manual-GE 手动通用版适用无EFEM设备
------
## Version 1.2.10.77
**2024-04-29**
- Bug修复
- 1.修正Interlock有时不起作用的BUG
-
- 新特性
- 1.在PreProcess、Procss、PostProcess过程中检查对应的DO-PreProcessRunning、DO-ProcessRunning、DO-PostProcessRunning信号
- 若为false则PM宕机
## Version 1.2.10.76
**2024-04-28**

View File

@ -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.10.76")]
[assembly: AssemblyVersion("1.2.10.77")]
[assembly: AssemblyInformationalVersion("手动通用版无EFEM")]