系统配置中增加ResistanceLimitLog和ResistanceLimitTime参数。
PM的Process Routine中增加Heater电阻监测功能,当工艺中检测到Heater电阻超标,则根据配置终止工艺。
This commit is contained in:
parent
e12f3a1b7f
commit
35dc1421ce
|
@ -363,3 +363,4 @@ MigrationBackup/
|
|||
FodyWeavers.xsd
|
||||
/.svn
|
||||
FrameworkLocal/output/
|
||||
.idea/
|
||||
|
|
|
@ -19,6 +19,8 @@ using System.Collections.Generic;
|
|||
using System.Xml;
|
||||
using static SicPM.PmDevices.DicMode;
|
||||
using MECF.Framework.RT.Core.DBProviderEx;
|
||||
using Aitex.Core.Common.DeviceData.IoDevice;
|
||||
using MECF.Framework.Common.Fsm;
|
||||
|
||||
namespace SicPM.RecipeExecutions
|
||||
{
|
||||
|
@ -246,6 +248,62 @@ namespace SicPM.RecipeExecutions
|
|||
return Result.RUN;
|
||||
}
|
||||
|
||||
#region Heater Resistance Monitor
|
||||
|
||||
#region Heater Resistance Monitor
|
||||
|
||||
private readonly R_TRIG _trigHeaterResOutOfRange = new();
|
||||
|
||||
private void MonitorHeaterResistance()
|
||||
{
|
||||
var reason = "";
|
||||
var totalElapseTime = PMDevice.RecipeRunningInfo.TotalElapseTime;//Recipe已经执行的时间
|
||||
var totalTime = PMDevice.RecipeRunningInfo.TotalTime;//Recipe总时间
|
||||
|
||||
if (totalElapseTime == 0) //当开始执行后再去判断时间和电阻
|
||||
return;
|
||||
|
||||
// 工艺刚开始和结束前的一段时间,不用检测Heater电阻
|
||||
var ignoredDurationSec = SC.GetValue<double>($"PM.{Module}.Heater.ResistanceLimitTime");
|
||||
if (!(totalElapseTime > ignoredDurationSec) ||
|
||||
(!(totalTime - totalElapseTime > ignoredDurationSec))) return;
|
||||
|
||||
// 如果在工艺中,检测Heater电阻
|
||||
for (var i = 1; i <= 3; i++) //检测出所有的加热丝是否有断开的,不要提前结束循环
|
||||
{
|
||||
var ioPsuData = (IoPsuData)(DATA.Poll($"{Module}.PSU{i}.DeviceData"));
|
||||
if (ioPsuData != null)
|
||||
{
|
||||
if (ioPsuData.IsResistanceOutOfRange)//PSU加热丝断开,后续可能增加条件判断
|
||||
reason += $"PSU{i} resistance value exceeds the upper limit , Resistance:{ioPsuData.Resistance}\r\n ";
|
||||
}
|
||||
|
||||
var ioScrData = (IoPsuData)(DATA.Poll($"{Module}.SCR{i}.DeviceData"));
|
||||
if (ioScrData != null)
|
||||
{
|
||||
if (ioScrData.IsResistanceOutOfRange)//SCR加热丝断开,后续可能增加条件判断
|
||||
reason += $"SCR{i} resistance value exceeds the upper limit , Resistance:{ioScrData.Resistance}\r\n ";
|
||||
}
|
||||
}
|
||||
|
||||
if (reason.Length > 0)
|
||||
{
|
||||
// 某个加热器电阻超标
|
||||
_trigHeaterResOutOfRange.CLK = true;
|
||||
if (_trigHeaterResOutOfRange.Q)
|
||||
{
|
||||
var alarmLevel = SC.SafeGetStringValue($"PM.{Module}.Heater.ResistanceLimitLog", "Alarm");
|
||||
if (alarmLevel == "Alarm")
|
||||
Stop(reason);
|
||||
else
|
||||
EV.PostWarningLog(Module, reason);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
public override Result Monitor()
|
||||
{
|
||||
|
|
|
@ -77,18 +77,18 @@
|
|||
<config default="960" name="AtmPressureBase" description="Atm Pressure Base" max="1100" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
<config default="302" name="VacuumPressureBase" description="Vacuum Pressure Base" max="1100" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
<!--<config default="5" name="GasFlowTimeInMFCCalibration" description="Gas Flow Time In MFC Calibration" max="120" min="0" paramter="" tag="" unit="s" type="Double" />-->
|
||||
<config default="false" name="IsAtmIdleRoutine" description="是否以Recipe的形式运行ATM Idle" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsVacIdleRoutine" description="是否以Recipe的形式运行VAC Idle" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsProcessIdleRoutine" description="是否Recipe的形式运行Process Idle" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsPumpRoutine" description="是否Recipe的形式运行Pump" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsVentRoutine" description="是否Recipe的形式运行Vent" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsPurgeRoutine" description="是否Recipe的形式运行Purge" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsCleanRoutine" description="是否Recipe的形式运行Clean" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsExchangeMOTCSRoutine" description="是否Recipe的形式运行ExchangeTCS" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsExchangeMOTMARoutine" description="是否Recipe的形式运行ExchangeTMA" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsIsolationRoutine" description="是否Recipe的形式运行Isolation" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsLeakCheckRoutine" description="是否Recipe的形式运行LeakCheck" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsAbortRoutine" description="是否Recipe的形式运行Abort" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsAtmIdleRoutine" description="是否以Recipe的形式运行ATM Idle" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsVacIdleRoutine" description="是否以Recipe的形式运行VAC Idle" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsProcessIdleRoutine" description="是否Recipe的形式运行Process Idle" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsPumpRoutine" description="是否Recipe的形式运行Pump" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsVentRoutine" description="是否Recipe的形式运行Vent" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsPurgeRoutine" description="是否Recipe的形式运行Purge" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsCleanRoutine" description="是否Recipe的形式运行Clean" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsExchangeMOTCSRoutine" description="是否Recipe的形式运行ExchangeTCS" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsExchangeMOTMARoutine" description="是否Recipe的形式运行ExchangeTMA" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsIsolationRoutine" description="是否Recipe的形式运行Isolation" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsLeakCheckRoutine" description="是否Recipe的形式运行LeakCheck" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="false" name="IsAbortRoutine" description="是否Recipe的形式运行Abort" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="180" name="LidEnableOpenAfterHeatDisbaleTime" description="在加热停止多少分钟后才能执行开腔" max="1000" min="1" paramter="" tag="" unit="Minute" type="Integer" />
|
||||
<configs name="PM1">
|
||||
<config default="Sic" name="RecipeChamberType" description="Recipe Chamber Type" max="" min="" paramter="" tag="" unit="" type="String" />
|
||||
|
@ -177,6 +177,9 @@
|
|||
<config default="1" name="SCR3ResistanceMax" description="Max SCR Lower Resistance Max Limit" max="1000" min="0" paramter="" tag="" unit="Ω" type="Double" />
|
||||
<config default="3" name="ResistanceCheckTimeOut" description="Resistance Check kTime Out" max="1000" min="0" paramter="" tag="" unit="s" type="Integer" />
|
||||
|
||||
<config default="Warning" name="ResistanceLimitLog" description="电阻异常提示等级" max="" min="" paramter="Alarm;Warning" tag="ReadOnlySelection" unit="" type="String"/>
|
||||
<config default="0" name="ResistanceLimitTime" description="允许电阻极限时间,Recipe过程中去除开始和结尾" max="100" min="0" paramter="" tag="" unit="s" type="Double" />
|
||||
|
||||
<config default="false" name="AETempRasingFastIsAlarm" description="AETemp温度上升过快报警类型为Alarm" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
|
||||
<config default="100" name="AETempInnerRasingRate" description="AETemp Inner每秒的上升速率,超过此范围报警" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
|
||||
<config default="100" name="AETempMiddleRasingRate" description="AETemp Middle每秒的上升速率,超过此范围报警" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
|
||||
|
|
Loading…
Reference in New Issue