Merge branch 'develop' into 多片机/界面管道气路修改
This commit is contained in:
commit
e36b1c4811
|
@ -8,7 +8,7 @@
|
|||
<ProcessDeviceItem Display="Inner temp" Unit="℃" Property="AETemp.Inner" />
|
||||
<ProcessDeviceItem Display="Middle temp" Unit="℃" Property="AETemp.Middle" />
|
||||
<ProcessDeviceItem Display="Outer temp" Unit="℃" Property="AETemp.Outer" />
|
||||
|
||||
|
||||
<ProcessDeviceItem Display="PT1" Unit="KPa" Property="PT1.FeedBack" />
|
||||
<ProcessDeviceItem Display="PT2" Unit="KPa" Property="PT2.FeedBack" />
|
||||
|
||||
|
@ -27,10 +27,15 @@
|
|||
<ProcessDeviceItem Display="SCR3 Resistance" Unit="R" Property="SCR3.ResistanceFeedBack" />
|
||||
<ProcessDeviceItem Display="SCR3 Voltage" Unit="V" Property="SCR3.VoltageFeedBack" />
|
||||
|
||||
<ProcessDeviceItem Display="TV Arms" Unit="A" Property="TV.PositionFeedBack" />
|
||||
<ProcessDeviceItem Display="TV Power" Unit="KW" Property="TV.PositionSetPoint" />
|
||||
<ProcessDeviceItem Display="TV Resistance" Unit="R" Property="TV.PressureFeedBack" />
|
||||
<ProcessDeviceItem Display="TV Voltage" Unit="V" Property="TV.TVValueEnable" />
|
||||
<ProcessDeviceItem Display="TV FB" Unit="%" Property="TV.PositionFeedback" />
|
||||
<ProcessDeviceItem Display="TV Pre FB" Unit="mbar" Property="TV.PressureFeedback" />
|
||||
|
||||
<ProcessDeviceItem Display="PUS1" Unit="%" Property="TC1.L1RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="PUS2" Unit="%" Property="TC1.L2RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="PUS3" Unit="%" Property="TC1.L3RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="SCR1" Unit="%" Property="TC2.L1RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="SCR2" Unit="%" Property="TC2.L2RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="SCR3" Unit="%" Property="TC2.L3RatioSetPoint" />
|
||||
|
||||
<ProcessDeviceItem Display="PSU1 Output Arms" Unit="A" Property="PSU1.OutputArmsFeedBack" />
|
||||
<ProcessDeviceItem Display="PSU1 Output Power" Unit="KW" Property="PSU1.OutputPowerFeedBack" />
|
||||
|
@ -44,7 +49,7 @@
|
|||
<ProcessDeviceItem Display="PSU3 Output Power" Unit="KW" Property="PSU3.OutputPowerFeedBack" />
|
||||
<ProcessDeviceItem Display="PSU3 Output Voltage" Unit="V" Property="PSU3.OutputVoltageFeedBack" />
|
||||
<ProcessDeviceItem Display="PSU3 Resistance" Unit="R" Property="PSU3.Resistance" />
|
||||
|
||||
|
||||
<ProcessDeviceItem Display="MFC1" Unit="SCCM" Property="Mfc1.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC2" Unit="SCCM" Property="Mfc2.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC3" Unit="SCCM" Property="Mfc3.FeedBack" />
|
||||
|
@ -54,14 +59,14 @@
|
|||
<ProcessDeviceItem Display="MFC7" Unit="SCCM" Property="Mfc7.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC8" Unit="SCCM" Property="Mfc8.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC9" Unit="SCCM" Property="Mfc9.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC10" Unit="SCCM" Property="Mfc10.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC10" Unit="SCCM" Property="Mfc10.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC11" Unit="SCCM" Property="Mfc11.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC12" Unit="SCCM" Property="Mfc12.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC13" Unit="SCCM" Property="Mfc13.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC14" Unit="SCCM" Property="Mfc14.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC15" Unit="SCCM" Property="Mfc15.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC16" Unit="SCCM" Property="Mfc16.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC19" Unit="SCCM" Property="Mfc19.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC19" Unit="SCCM" Property="Mfc19.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC20" Unit="SCCM" Property="Mfc20.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC22" Unit="SCCM" Property="Mfc22.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC23" Unit="SCCM" Property="Mfc23.FeedBack" />
|
||||
|
@ -101,10 +106,10 @@
|
|||
<ProcessDeviceItem Display="ATC-4" Unit="℃" Property="LineHeater.OutsidePanelTemp(ATC-4)" />
|
||||
<ProcessDeviceItem Display="ATC-5" Unit="℃" Property="LineHeater.OutsideSHTemp(ATC-5)" />
|
||||
<ProcessDeviceItem Display="ATC-6" Unit="℃" Property="LineHeater.LeakBypassTemp(ATC-6)" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ProcessDeviceItem Display="AccSpeed" Unit="" Property="PMServo.AccSpeedFeedback" />
|
||||
<ProcessDeviceItem Display="ActualCurrent" Unit="A" Property="PMServo.ActualCurrentFeedback" />
|
||||
<ProcessDeviceItem Display="ActualSpeed" Unit="rpm/min" Property="PMServo.ActualSpeedFeedback" />
|
||||
|
@ -118,8 +123,8 @@
|
|||
<ProcessDeviceItem Display="Pressure6" Unit="mbar" Property="Pressure6.FeedBack" />
|
||||
<ProcessDeviceItem Display="Pressure7" Unit="mbar" Property="Pressure7.FeedBack" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ProcessDeviceItems>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<ProcessDeviceItem Display="Inner temp" Unit="℃" Property="AETemp.Inner" />
|
||||
<ProcessDeviceItem Display="Middle temp" Unit="℃" Property="AETemp.Middle" />
|
||||
<ProcessDeviceItem Display="Outer temp" Unit="℃" Property="AETemp.Outer" />
|
||||
|
||||
|
||||
<ProcessDeviceItem Display="PT1" Unit="KPa" Property="PT1.FeedBack" />
|
||||
<ProcessDeviceItem Display="PT2" Unit="KPa" Property="PT2.FeedBack" />
|
||||
|
||||
|
@ -27,10 +27,15 @@
|
|||
<ProcessDeviceItem Display="SCR3 Resistance" Unit="R" Property="SCR3.ResistanceFeedBack" />
|
||||
<ProcessDeviceItem Display="SCR3 Voltage" Unit="V" Property="SCR3.VoltageFeedBack" />
|
||||
|
||||
<ProcessDeviceItem Display="TV Arms" Unit="A" Property="TV.PositionFeedBack" />
|
||||
<ProcessDeviceItem Display="TV Power" Unit="KW" Property="TV.PositionSetPoint" />
|
||||
<ProcessDeviceItem Display="TV Resistance" Unit="R" Property="TV.PressureFeedBack" />
|
||||
<ProcessDeviceItem Display="TV Voltage" Unit="V" Property="TV.TVValueEnable" />
|
||||
<ProcessDeviceItem Display="TV FB" Unit="%" Property="TV.PositionFeedback" />
|
||||
<ProcessDeviceItem Display="TV Pre FB" Unit="mbar" Property="TV.PressureFeedback" />
|
||||
|
||||
<ProcessDeviceItem Display="PUS1" Unit="%" Property="TC1.L1RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="PUS2" Unit="%" Property="TC1.L2RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="PUS3" Unit="%" Property="TC1.L3RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="SCR1" Unit="%" Property="TC2.L1RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="SCR2" Unit="%" Property="TC2.L2RatioSetPoint" />
|
||||
<ProcessDeviceItem Display="SCR3" Unit="%" Property="TC2.L3RatioSetPoint" />
|
||||
|
||||
<ProcessDeviceItem Display="PSU1 Output Arms" Unit="A" Property="PSU1.OutputArmsFeedBack" />
|
||||
<ProcessDeviceItem Display="PSU1 Output Power" Unit="KW" Property="PSU1.OutputPowerFeedBack" />
|
||||
|
@ -44,7 +49,7 @@
|
|||
<ProcessDeviceItem Display="PSU3 Output Power" Unit="KW" Property="PSU3.OutputPowerFeedBack" />
|
||||
<ProcessDeviceItem Display="PSU3 Output Voltage" Unit="V" Property="PSU3.OutputVoltageFeedBack" />
|
||||
<ProcessDeviceItem Display="PSU3 Resistance" Unit="R" Property="PSU3.Resistance" />
|
||||
|
||||
|
||||
<ProcessDeviceItem Display="MFC1" Unit="SCCM" Property="Mfc1.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC2" Unit="SCCM" Property="Mfc2.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC3" Unit="SCCM" Property="Mfc3.FeedBack" />
|
||||
|
@ -54,14 +59,14 @@
|
|||
<ProcessDeviceItem Display="MFC7" Unit="SCCM" Property="Mfc7.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC8" Unit="SCCM" Property="Mfc8.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC9" Unit="SCCM" Property="Mfc9.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC10" Unit="SCCM" Property="Mfc10.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC10" Unit="SCCM" Property="Mfc10.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC11" Unit="SCCM" Property="Mfc11.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC12" Unit="SCCM" Property="Mfc12.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC13" Unit="SCCM" Property="Mfc13.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC14" Unit="SCCM" Property="Mfc14.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC15" Unit="SCCM" Property="Mfc15.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC16" Unit="SCCM" Property="Mfc16.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC19" Unit="SCCM" Property="Mfc19.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC19" Unit="SCCM" Property="Mfc19.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC20" Unit="SCCM" Property="Mfc20.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC22" Unit="SCCM" Property="Mfc22.FeedBack" />
|
||||
<ProcessDeviceItem Display="MFC23" Unit="SCCM" Property="Mfc23.FeedBack" />
|
||||
|
@ -100,7 +105,7 @@
|
|||
<ProcessDeviceItem Display="ATC-4" Unit="℃" Property="LineHeater.OutsidePanelTemp(ATC-4)" />
|
||||
<ProcessDeviceItem Display="ATC-5" Unit="℃" Property="LineHeater.OutsideSHTemp(ATC-5)" />
|
||||
<ProcessDeviceItem Display="ATC-6" Unit="℃" Property="LineHeater.LeakBypassTemp(ATC-6)" />
|
||||
|
||||
|
||||
<ProcessDeviceItem Display="AccSpeed" Unit="" Property="PMServo.AccSpeedFeedback" />
|
||||
<ProcessDeviceItem Display="ActualCurrent" Unit="A" Property="PMServo.ActualCurrentFeedback" />
|
||||
<ProcessDeviceItem Display="ActualSpeed" Unit="rpm/min" Property="PMServo.ActualSpeedFeedback" />
|
||||
|
@ -114,8 +119,8 @@
|
|||
<ProcessDeviceItem Display="Pressure6" Unit="mbar" Property="Pressure6.FeedBack" />
|
||||
<ProcessDeviceItem Display="Pressure7" Unit="mbar" Property="Pressure7.FeedBack" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ProcessDeviceItems>
|
||||
|
|
|
@ -1326,7 +1326,7 @@ namespace SicModules.PMs
|
|||
WaferManager.Instance.UpdateWaferProcessStatus(ModuleHelper.Converter(Module), 0, WaferProcessStatus.Completed);
|
||||
_processRoutine.ExitProcess();
|
||||
_procDataStatManager?.End();
|
||||
EV.PostInfoLog(Module, $"Exit Process: Recipe Name {_recipeRunningInfo.RecipeName},Recipe Step:{_recipeRunningInfo.StepNumber},Step Time:{_recipeRunningInfo.StepTime}");
|
||||
EV.PostInfoLog(Module, $"Exit Process: Recipe Name {_recipeRunningInfo.RecipeName},Recipe Step:{_recipeRunningInfo.StepNumber},Step Time:{string.Format("{0:F2}", _recipeRunningInfo.StepTime)}");
|
||||
}
|
||||
|
||||
var workenable = SC.GetValue<bool>("System.MultiProcessMode");
|
||||
|
|
|
@ -2009,6 +2009,19 @@ namespace SicModules.PMs
|
|||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取管道压力
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public double GetForelinePressure()
|
||||
{
|
||||
if (PT2 != null)
|
||||
{
|
||||
return PT2.FeedBack;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化Device的委托
|
||||
/// </summary>
|
||||
|
|
|
@ -135,6 +135,8 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
private int _currentStepIndex = 99;
|
||||
private IoInterLock _pmInterLock;
|
||||
|
||||
private double _pressureDifferenceUpperLimit;
|
||||
|
||||
#region Parse
|
||||
|
||||
private bool _isPSUHeaterJumpMode;
|
||||
|
@ -162,9 +164,11 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
|
||||
public Process(ModuleName module, PMModule pm1) : base(module, pm1)
|
||||
{
|
||||
|
||||
|
||||
Module = module.ToString();
|
||||
Name = "Process";
|
||||
|
||||
|
||||
_dbCallback = new RecipeDBCallback();
|
||||
_fdc = new Fdc(Module);
|
||||
_pmInterLock = DEVICE.GetDevice<IoInterLock>($"{Module}.PMInterLock");
|
||||
|
@ -186,6 +190,8 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
|
||||
Calculte();
|
||||
|
||||
SC.RegisterValueChangedCallback($"PM.{Module}.PT1PT2PressureDifferenceUpperLimit", (obj) => { _pressureDifferenceUpperLimit = (double)obj; });
|
||||
|
||||
_thread = new PeriodicJob(10 * 1000, Calculte, "Calculte Standard Deviation", false);
|
||||
}
|
||||
|
||||
|
@ -229,6 +235,7 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
_isDryRun = SC.GetValue<bool>($"PM.{Module}.DryRun.IsDryRun");
|
||||
_delayTimeDryRun = SC.GetValue<int>($"PM.{Module}.DryRun.DryRunDelayTime");
|
||||
_tempOffset = SC.GetValue<double>($"PM.{Module}.Process.TempOffset");
|
||||
_pressureDifferenceUpperLimit = SC.GetValue<double>($"PM.{Module}.PT1PT2PressureDifferenceUpperLimit");
|
||||
|
||||
ResetHeaterResCheckResult();
|
||||
|
||||
|
@ -243,6 +250,7 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
private readonly R_TRIG _trigHeaterResOutOfRange = new();
|
||||
private readonly R_TRIG _trigHeaterResMonitorBegin = new();
|
||||
private readonly R_TRIG _trigHeaterResMonitorEnd = new();
|
||||
private readonly R_TRIG _trigPressureDifference = new();
|
||||
|
||||
|
||||
private void ResetHeaterResCheckResult()
|
||||
|
@ -250,6 +258,7 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
_trigHeaterResOutOfRange.RST = true;
|
||||
_trigHeaterResMonitorBegin.RST = true;
|
||||
_trigHeaterResMonitorEnd.RST = true;
|
||||
_trigPressureDifference.RST = true;
|
||||
}
|
||||
|
||||
private void MonitorHeaterResistance()
|
||||
|
@ -309,6 +318,27 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
}
|
||||
}
|
||||
|
||||
private void PressureDifferenceDetection()
|
||||
{
|
||||
double pt1 = PmDevice.GetChamberPressure();
|
||||
|
||||
double pt2 = PmDevice.GetForelinePressure();
|
||||
|
||||
double d = Math.Abs(pt1 - pt2);
|
||||
if (d >= _pressureDifferenceUpperLimit)
|
||||
_trigPressureDifference.CLK = true;
|
||||
|
||||
if (_trigPressureDifference.Q)
|
||||
{
|
||||
string reason = $"PT1={pt1} PT2={pt2},Difference {d} over DifferenceMax={_pressureDifferenceUpperLimit} ";
|
||||
var alarmLevel = SC.SafeGetStringValue($"PM.{Module}.PT1PT2PressureDifferenceMaxAlarmLevel", "Alarm");
|
||||
if (alarmLevel == "Alarm")
|
||||
Stop(reason);
|
||||
else
|
||||
EV.PostWarningLog(Module, reason);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override Result Monitor()
|
||||
|
@ -346,6 +376,8 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
|
||||
MonitorHeaterResistance();
|
||||
|
||||
PressureDifferenceDetection();
|
||||
|
||||
lock (_recipeLocker)
|
||||
{
|
||||
try
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
using System.Collections.Generic;
|
||||
using Aitex.Core.Common.DeviceData;
|
||||
using Aitex.Core.RT.Device.Devices;
|
||||
using Aitex.Core.RT.Event;
|
||||
using Aitex.Core.RT.Routine;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs;
|
||||
using static Aitex.Core.RT.Device.PmDevices.DicMode;
|
||||
|
||||
namespace SicModules.PMs.Routines.Base
|
||||
{
|
||||
|
@ -705,7 +707,8 @@ namespace SicModules.PMs.Routines.Base
|
|||
Tuple<bool, Result> ret = Execute(id, () =>
|
||||
{
|
||||
Notify($"Set PSU HeatMode");
|
||||
if (!_pm.TC1.SetHeaterMode(mode,0))
|
||||
var fixedMode = FixHeaterModeDiff(mode, "PSU");
|
||||
if (!_pm.TC1.SetHeaterMode((int)fixedMode,0))
|
||||
{
|
||||
Stop($"Set PSU HeatMode error");
|
||||
return false;
|
||||
|
@ -777,7 +780,8 @@ namespace SicModules.PMs.Routines.Base
|
|||
Tuple<bool, Result> ret = Execute(id, () =>
|
||||
{
|
||||
Notify($"Set SCR HeatMode");
|
||||
if (!_pm.TC2.SetHeaterMode2(mode,0))
|
||||
var fixedMode = FixHeaterModeDiff(mode, "SCR");
|
||||
if (!_pm.TC2.SetHeaterMode2((int)fixedMode, 0))
|
||||
{
|
||||
Stop($"Set SCR HeatMode error");
|
||||
return false;
|
||||
|
@ -2170,5 +2174,32 @@ namespace SicModules.PMs.Routines.Base
|
|||
throw (new RoutineBreakException());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修正SystemConfig中配置的PSU、SCR Heat Mode 和 <see cref="HeaterControlMode"/> 枚举不匹配的问题。
|
||||
/// </summary>
|
||||
/// <param name="mode"></param>
|
||||
/// <param name="scItemName"></param>
|
||||
/// <returns></returns>
|
||||
private HeaterControlMode FixHeaterModeDiff(int mode, string scItemName)
|
||||
{
|
||||
var fixedMode = HeaterControlMode.Power;
|
||||
switch (mode)
|
||||
{
|
||||
// System config: 0:Power
|
||||
case 0:
|
||||
fixedMode = HeaterControlMode.Power;
|
||||
break;
|
||||
// System config: 1:Pyro
|
||||
case 1:
|
||||
fixedMode = HeaterControlMode.Pyro;
|
||||
break;
|
||||
default:
|
||||
EV.PostWarningLog(Module, $"{scItemName}, Unknown Heat Mode {mode},use default mode [Power].");
|
||||
break;
|
||||
}
|
||||
|
||||
return fixedMode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ using Aitex.Core.RT.Routine;
|
|||
using Aitex.Core.RT.SCCore;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using SicModules.PMs.Routines.Base;
|
||||
using static Aitex.Core.RT.Device.PmDevices.DicMode;
|
||||
|
||||
namespace SicModules.PMs.Routines
|
||||
{
|
||||
|
@ -248,7 +249,7 @@ namespace SicModules.PMs.Routines
|
|||
_throttleFinalPressure = SC.GetValue<double>($"PM.{Module}.ProcessIdle.FinalPressure");
|
||||
|
||||
_psuHeatEnable = SC.GetValue<bool>($"PM.{Module}.ProcessIdle.PSUHeaterEnable");
|
||||
_psuHeatMode = (int)SC.GetValue<int>($"PM.{Module}.ProcessIdle.PSUHeaterMode");
|
||||
_psuHeatMode = SC.GetValue<int>($"PM.{Module}.ProcessIdle.PSUHeaterMode");
|
||||
_psuL1Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.PSUInnerRatio");
|
||||
_psuL2Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.PSUMiddleRatio");
|
||||
_psuL3Ratio = (float)SC.GetValue<double>($"PM.{Module}.ProcessIdle.PSUOuterRatio");
|
||||
|
|
|
@ -872,15 +872,15 @@ if not exists(select * from information_schema.tables
|
|||
if not exists(select * from information_schema.tables
|
||||
where
|
||||
table_catalog = CURRENT_CATALOG and table_schema = CURRENT_SCHEMA
|
||||
and table_name = 'maintainance_event_data') then
|
||||
and table_name = 'maintenance_event_data') then
|
||||
|
||||
CREATE TABLE maintainance_event_data
|
||||
CREATE TABLE maintenance_event_data
|
||||
(
|
||||
"planname" text ,
|
||||
"planmodule" text ,
|
||||
"itemparentname" text ,
|
||||
"itemname" text ,
|
||||
"index" integer ,
|
||||
"uid" text ,
|
||||
"createtime" timestamp ,
|
||||
"role" text ,
|
||||
"detial" text
|
||||
|
@ -888,9 +888,9 @@ if not exists(select * from information_schema.tables
|
|||
WITH (
|
||||
OIDS=FALSE
|
||||
);
|
||||
ALTER TABLE maintainance_event_data
|
||||
ALTER TABLE maintenance_event_data
|
||||
OWNER TO postgres;
|
||||
GRANT SELECT ON TABLE maintainance_event_data TO postgres;
|
||||
GRANT SELECT ON TABLE maintenance_event_data TO postgres;
|
||||
end if;
|
||||
------------------------------------------------------------------------------------------------
|
||||
if not exists(select * from information_schema.tables
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
<menuItem id="MfcTestPM2" resKey="GasBoxTest" System="PM2" viewmodel="SicUI.Models.PMs.PMMfcTestViewModel,SicUI" />
|
||||
</menuItem>
|
||||
|
||||
<menuItem id="Maintainance" resKey="Maintenance">
|
||||
<menuItem id="Maintenance" resKey="Maintenance">
|
||||
<menuItem id="Schedule" resKey="Schedule" viewmodel="MECF.Framework.UI.Client.CenterViews.Maintain.ViewModels.MaintainViewModel,MECF.Framework.UI.Client" />
|
||||
<menuItem id="Monthly" resKey="Monthly" viewmodel="MECF.Framework.UI.Client.CenterViews.Maintain.ViewModels.MaintainViewModel,MECF.Framework.UI.Client" />
|
||||
<menuItem id="Quarter" resKey="Quarter" viewmodel="MECF.Framework.UI.Client.CenterViews.Maintain.ViewModels.MaintainViewModel,MECF.Framework.UI.Client" />
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
<config default="false" name="AllowTraceAOHopping" description="是否允许追踪AO跳变" max="" min="" paramter="" tag="" unit="" type="Bool" visible="true" />
|
||||
<config default="true" name="AllowTraceDOHopping" description="是否允许追踪DO跳变" max="" min="" paramter="" tag="" unit="" type="Bool" visible="true" />
|
||||
<config default="true" name="IgnoreMaintainTimeOutWarning" description="维护界面是否忽略Warning提示" max="" min="" paramter="" tag="" unit="" type="Bool" />
|
||||
<config default="PerJob" name="ProcessDoneAlertMode" description="工艺完成后的蜂鸣器提示模式" max="" min="" paramter="PerJob;PerWafer" tag="ReadOnlySelection" unit="" type="String" />
|
||||
<configs name="Scheduler">
|
||||
<config default="15" name="WaitLoadTimeOut" description="Wait Load TimeOut" max="1000" min="1" paramter="" tag="" unit="s" type="Double" visible="false" />
|
||||
<config default="2" name="WaferCountBelowWhichStartNewProcessJob" description="Wafer Count Below Which Start New Process Job" max="25" min="1" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
|
@ -507,6 +508,8 @@
|
|||
<config default="" name="LastRecipeName" description="last recipe name" max="" min="" paramter="" tag="" visible="false" unit="" type="String" />
|
||||
<config default="127.0.0.1:102" name="SiemensIP" description="Siemens IP Address,Default IP:192.168.1.105:102" max="" min="" paramter="" tag="" unit="" type="String" />
|
||||
<config default="S1500" name="SiemensType" visible="false" description="Siemens Type" max="" min="" paramter="" tag="" unit="" type="String" />
|
||||
<config default="30" name="PT1PT2PressureDifferenceUpperLimit" description="PT1和PT2最大压差上限" max="1100" min="0" paramter="" tag="" unit="s" type="Double" />
|
||||
<config default="Warning" name="PT1PT2PressureDifferenceMaxAlarmLevel" description="工艺过程中PT1和PT2最大压差超限时产生报警的等级" max="" min="" paramter="Alarm;Warning" tag="ReadOnlySelection" unit="" type="String" />
|
||||
<config default="5" name="ThrottlePressureMaxDiff" description="蝶阀调节值与实际压力的差值小于此数值则表示到位" max="1000" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
<config default="120" name="ThrottlePressureTimeout" description="蝶阀调节值超时时间" max="2000" min="0" paramter="" tag="" unit="s" type="Integer" />
|
||||
<config default="5" name="ThrottlePressureRate" description="蝶阀每秒调节速率(mbar/每秒)" max="1000" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
|
@ -606,12 +609,12 @@
|
|||
<config default="200" name="FinalPressure" description="最后保持的压力" max="1100" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
<config default="10" name="PressureBalanceTime" description="压力平衡时间" max="100" min="0" paramter="" tag="" unit="s" type="Integer" />
|
||||
<config default="true" name="PSUHeaterEnable" description="PSU加热是否启用" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
|
||||
<config default="0" name="PSUHeaterMode" description="PSU HeatMode:0为Power,1为TC,2为Pyro" max="2" min="0" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
<config default="0" name="PSUHeaterMode" description="PSU HeatMode:0为Power,1为Pyro" max="1" min="0" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
<config default="2" name="PSUInnerRatio" description="PSU Inner Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="17" name="PSUMiddleRatio" description="PSU Middle Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="21" name="PSUOuterRatio" description="PSU Outer Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="true" name="SCRHeaterEnable" description="SCR加热是否启用" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
|
||||
<config default="0" name="SCRHeaterMode" description="SCR HeatMode:0为Power,1为TC,2为Pyro" max="2" min="0" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
<config default="0" name="SCRHeaterMode" description="SCR HeatMode:0为Power,1为Pyro" max="1" min="0" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
<config default="12" name="SCRUpperRatio" description="SCR Upper Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="7" name="SCRMiddleRatio" description="SCR Middle Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="9" name="SCRLowerRatio" description="SCR Lower Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
|
@ -1054,6 +1057,8 @@
|
|||
<config default="" name="LastRecipeName" description="last recipe name" max="" min="" paramter="" tag="" visible="false" unit="" type="String" />
|
||||
<config default="127.0.0.1:102" name="SiemensIP" description="Siemens IP Address,Default IP:192.168.1.205:102" max="" min="" paramter="" tag="" unit="" type="String" />
|
||||
<config default="S1500" name="SiemensType" visible="false" description="Siemens Type" max="" min="" paramter="" tag="" unit="" type="String" />
|
||||
<config default="30" name="PT1PT2PressureDifferenceUpperLimit" description="PT1和PT2最大压差上限" max="1100" min="0" paramter="" tag="" unit="s" type="Double" />
|
||||
<config default="Warning" name="PT1PT2PressureDifferenceMaxAlarmLevel" description="工艺过程中PT1和PT2最大压差超限时产生报警的等级" max="" min="" paramter="Alarm;Warning" tag="ReadOnlySelection" unit="" type="String" />
|
||||
<config default="5" name="ThrottlePressureMaxDiff" description="蝶阀调节值与实际压力的差值小于此数值则表示到位" max="1000" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
<config default="120" name="ThrottlePressureTimeout" description="蝶阀调节值超时时间" max="2000" min="0" paramter="" tag="" unit="s" type="Integer" />
|
||||
<config default="5" name="ThrottlePressureRate" description="蝶阀每秒调节速率(mbar/每秒)" max="1000" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
|
@ -1154,12 +1159,12 @@
|
|||
<config default="200" name="FinalPressure" description="最后保持的压力" max="1100" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
<config default="10" name="PressureBalanceTime" description="压力平衡时间" max="100" min="0" paramter="" tag="" unit="s" type="Integer" />
|
||||
<config default="true" name="PSUHeaterEnable" description="PSU加热是否启用" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
|
||||
<config default="0" name="PSUHeaterMode" description="PSU HeatMode:0为Power,1为TC,2为Pyro" max="2" min="0" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
<config default="0" name="PSUHeaterMode" description="PSU HeatMode:0为Power,1为Pyro" max="1" min="0" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
<config default="2" name="PSUInnerRatio" description="PSU Inner Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="17" name="PSUMiddleRatio" description="PSU Middle Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="21" name="PSUOuterRatio" description="PSU Outer Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="true" name="SCRHeaterEnable" description="SCR加热是否启用" max="" min="" paramter="" tag="" unit="" visible="true" type="Bool" />
|
||||
<config default="0" name="SCRHeaterMode" description="SCR HeatMode:0为Power,1为TC,2为Pyro" max="2" min="0" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
<config default="0" name="SCRHeaterMode" description="SCR HeatMode:0为Power,1为Pyro" max="1" min="0" paramter="" tag="" unit="" type="Integer" visible="false" />
|
||||
<config default="12" name="SCRUpperRatio" description="SCR Upper Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="7" name="SCRMiddleRatio" description="SCR Middle Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
<config default="9" name="SCRLowerRatio" description="SCR Lower Ratio" max="100" min="0" paramter="" tag="" unit="%" type="Double" />
|
||||
|
|
|
@ -272,6 +272,9 @@ namespace SicRT.Equipments
|
|||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (!_tmRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
|
||||
if (!_source.IsReadyForPick(ModuleName.TMRobot, _moveTask.SourceSlot))
|
||||
{
|
||||
if (!_source.PrepareTransfer(ModuleName.TMRobot, EnumTransferType.Pick, _moveTask.SourceSlot))
|
||||
|
@ -292,9 +295,6 @@ namespace SicRT.Equipments
|
|||
|
||||
_source.WaitTransfer(ModuleName.TMRobot);
|
||||
}
|
||||
|
||||
if (!_tmRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -312,6 +312,9 @@ namespace SicRT.Equipments
|
|||
if (!_destination.IsAvailable)
|
||||
return Result.RUN;
|
||||
|
||||
if (!_tmRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
|
||||
if (_destination.NoTray(_moveTask.DestinationSlot))
|
||||
{
|
||||
if (!_destination.IsReadyForPlace(ModuleName.TMRobot, _moveTask.DestinationSlot))
|
||||
|
@ -331,9 +334,6 @@ namespace SicRT.Equipments
|
|||
|
||||
_destination.WaitTransfer(ModuleName.TMRobot);
|
||||
}
|
||||
|
||||
if (!_tmRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -447,6 +447,11 @@ namespace SicRT.Equipments
|
|||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (!_waferRobot.IsAvailable)
|
||||
{
|
||||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (!_source.IsReadyForPick(ModuleName.WaferRobot, _moveTask.SourceSlot))
|
||||
{
|
||||
if (!_source.PrepareTransfer(ModuleName.WaferRobot, EnumTransferType.Pick, _moveTask.SourceSlot))
|
||||
|
@ -458,10 +463,8 @@ namespace SicRT.Equipments
|
|||
return Result.RUN;
|
||||
}
|
||||
|
||||
if(!_waferRobot.IsAvailable)
|
||||
{
|
||||
if (!_waferRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (!_waferRobot.HasWafer((int)_moveTask.RobotHand))
|
||||
{
|
||||
|
@ -475,9 +478,6 @@ namespace SicRT.Equipments
|
|||
else
|
||||
_source.WaitTransfer(ModuleName.WaferRobot);
|
||||
}
|
||||
|
||||
if (!_waferRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -495,6 +495,11 @@ namespace SicRT.Equipments
|
|||
if (!_destination.IsAvailable)
|
||||
return Result.RUN;
|
||||
|
||||
if (!_waferRobot.IsAvailable)
|
||||
{
|
||||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (_destination.NoWafer(_moveTask.DestinationSlot))
|
||||
{
|
||||
if (!_destination.IsReadyForPlace(ModuleName.WaferRobot, _moveTask.DestinationSlot))
|
||||
|
@ -508,9 +513,7 @@ namespace SicRT.Equipments
|
|||
return Result.RUN;
|
||||
|
||||
if (!_waferRobot.IsAvailable)
|
||||
{
|
||||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (_waferRobot.HasWafer((int)_moveTask.RobotHand))
|
||||
{
|
||||
|
@ -522,9 +525,6 @@ namespace SicRT.Equipments
|
|||
else
|
||||
_destination.WaitTransfer(ModuleName.WaferRobot);
|
||||
}
|
||||
|
||||
if (!_waferRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -637,6 +637,11 @@ namespace SicRT.Equipments
|
|||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (!_trayRobot.IsAvailable)
|
||||
{
|
||||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (!_source.IsReadyForPick(ModuleName.TrayRobot, _moveTask.SourceSlot))
|
||||
{
|
||||
if (!_source.PrepareTransfer(ModuleName.TrayRobot, EnumTransferType.Pick, _moveTask.SourceSlot))
|
||||
|
@ -662,9 +667,6 @@ namespace SicRT.Equipments
|
|||
|
||||
_source.WaitTransfer(ModuleName.TrayRobot);
|
||||
}
|
||||
|
||||
if (!_trayRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -682,6 +684,11 @@ namespace SicRT.Equipments
|
|||
if (!_destination.IsAvailable)
|
||||
return Result.RUN;
|
||||
|
||||
if (!_trayRobot.IsAvailable)
|
||||
{
|
||||
return Result.RUN;
|
||||
}
|
||||
|
||||
if (_destination.NoTray(_moveTask.DestinationSlot))
|
||||
{
|
||||
if (!_destination.IsReadyForPlace(ModuleName.TrayRobot, _moveTask.DestinationSlot))
|
||||
|
@ -706,9 +713,6 @@ namespace SicRT.Equipments
|
|||
|
||||
_destination.WaitTransfer(ModuleName.TrayRobot);
|
||||
}
|
||||
|
||||
if (!_trayRobot.IsAvailable)
|
||||
return Result.RUN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using SicModules.Cassettes;
|
||||
using SicModules.PMs;
|
||||
using SicRT.Equipments.Systems;
|
||||
|
@ -109,7 +109,8 @@ namespace SicRT.Modules.Schedulers
|
|||
&& WaferManager.Instance.CheckHasWafer(_module, _lastTransferSlot))
|
||||
{
|
||||
//EV.PostMessage(Module.ToString(), EventEnum.PJ_DONE, _module, (_lastTransferSlot + 1).ToString());
|
||||
OP.DoOperation("System.AlertJobDone", _module, _lastTransferSlot + 1);
|
||||
if(SC.SafeGetStringValue("System.ProcessDoneAlertMode", "PerJob") == "PerWafer")
|
||||
OP.DoOperation("System.AlertJobDone", _module, _lastTransferSlot + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,8 @@ using SicModules.TMs;
|
|||
using SicModules.UnLoads;
|
||||
using System.Diagnostics;
|
||||
using MECF.Framework.RT.EquipmentLibrary.Devices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Reflection;
|
||||
|
||||
namespace SicRT.Equipments.Systems
|
||||
{
|
||||
|
@ -845,6 +847,9 @@ namespace SicRT.Equipments.Systems
|
|||
|
||||
if (_auto.CheckAllJobDone())
|
||||
{
|
||||
if (SC.SafeGetStringValue("System.ProcessDoneAlertMode", "PerJob") == "PerJob")
|
||||
OP.DoOperation("System.AlertJobDone", ModuleName.System, 0);
|
||||
|
||||
if (!CheckToPostMessage((int)MSG.JobDone))
|
||||
return false;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -51,5 +51,5 @@ using System.Windows;
|
|||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
// 方法是按如下所示使用“*”: :
|
||||
|
||||
[assembly: AssemblyVersion("1.3.0.40308")]
|
||||
[assembly: AssemblyVersion("1.3.1.40315")]
|
||||
[assembly: AssemblyInformationalVersion("自动通用版(有EFEM)")]
|
|
@ -3,11 +3,33 @@
|
|||
Auto-GE 自动通用版(适用有EFEM设备)
|
||||
|
||||
----
|
||||
|
||||
## 下次发行备忘
|
||||
- Bug修复
|
||||
- 无
|
||||
- 新特性
|
||||
- 工艺结束蜂鸣器提示时机可配置为Job结束,或Wafer结束
|
||||
|
||||
## Version 1.3.1.40315
|
||||
|
||||
## Version 1.3.1.40314
|
||||
- Bug修复
|
||||
- 修正PM进入ProcessIdle、PostProcess和PostTransfer状态时,PSU和SCR加热模式可能设置错误的问题
|
||||
- 新特性
|
||||
- 无
|
||||
|
||||
## Version 1.3.0.40314
|
||||
- Bug修复
|
||||
- 修正PM进入ProcessIdle时,PSU和SCR的加热模式可能设置错误的问题
|
||||
- 新特性
|
||||
- PM腔体和管道压差,在工艺过程中检测,报警等级可配置
|
||||
|
||||
|
||||
## Version 1.3.0.40308
|
||||
- Bug修复
|
||||
- 侧壁加热切回到Pyro前,检测上一步是不是Pyro,不是Pyro,对L3进行温度赋值
|
||||
- 新特性
|
||||
-
|
||||
- 无
|
||||
|
||||
## Version 1.3.0.40306
|
||||
- Bug修复
|
||||
|
|
|
@ -240,8 +240,6 @@ namespace SicUI.Client
|
|||
return;
|
||||
}
|
||||
|
||||
MaintainProvider2.Instance.Initialize();
|
||||
|
||||
BaseApp.Instance.Initialize();
|
||||
|
||||
_splashScreen?.SetMessage1("Preparing Environment ...");
|
||||
|
|
|
@ -5,11 +5,17 @@
|
|||
xmlns:Common="clr-namespace:SicUI.Controls.Common"
|
||||
xmlns:controls="clr-namespace:SicUI.Controls"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
d:DesignHeight="38"
|
||||
d:DesignWidth="416"
|
||||
mc:Ignorable="d">
|
||||
mc:Ignorable="d"
|
||||
x:Name="mainw">
|
||||
<UserControl.Resources>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"/>
|
||||
</UserControl.Resources>
|
||||
<Viewbox Stretch="Uniform">
|
||||
<Canvas
|
||||
x:Name="root"
|
||||
|
@ -66,10 +72,16 @@
|
|||
</Common:AxisCanvas>
|
||||
<Canvas.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding TranslateX}" />
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy},Path=Data.RotateAngle,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy},Path=Data.TranslateX,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" />
|
||||
</TransformGroup>
|
||||
</Canvas.RenderTransform>
|
||||
<!--<Canvas.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy},Path=Data.RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy},Path=Data.TranslateX}" />
|
||||
</TransformGroup>
|
||||
</Canvas.RenderTransform>-->
|
||||
</Canvas>
|
||||
</Viewbox>
|
||||
</UserControl>
|
||||
|
|
|
@ -49,19 +49,25 @@ namespace SicUI.Controls.M2C4Parts
|
|||
public static readonly DependencyProperty ShowDockProperty =
|
||||
DependencyProperty.Register("ShowDock", typeof(bool), typeof(AtmRobotMultiLP), new PropertyMetadata(false));
|
||||
|
||||
// Using a DependencyProperty as the backing store for RotateAngel. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty RotateAngleProperty =
|
||||
DependencyProperty.Register("RotateAngel", typeof(int), typeof(AtmRobotMultiLP), new PropertyMetadata(0));
|
||||
|
||||
public int TranslateX
|
||||
public double RotateAngle
|
||||
{
|
||||
get { return (int)GetValue(TranslateXProperty); }
|
||||
get { return (double)GetValue(RotateAngleProperty); }
|
||||
set { SetValue(RotateAngleProperty, value); }
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for RotateAngle. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty RotateAngleProperty =
|
||||
DependencyProperty.Register("RotateAngle", typeof(double), typeof(AtmRobotMultiLP), new PropertyMetadata(0.0));
|
||||
|
||||
public double TranslateX
|
||||
{
|
||||
get { return (double)GetValue(TranslateXProperty); }
|
||||
set { SetValue(TranslateXProperty, value); }
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for TranslateX. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty TranslateXProperty =
|
||||
DependencyProperty.Register("TranslateX", typeof(int), typeof(AtmRobotMultiLP), new PropertyMetadata(0));
|
||||
DependencyProperty.Register("TranslateX", typeof(double), typeof(AtmRobotMultiLP), new PropertyMetadata(0.0));
|
||||
|
||||
public MECF.Framework.UI.Client.ClientBase.WaferInfo Wafer1
|
||||
{
|
||||
|
@ -336,7 +342,7 @@ namespace SicUI.Controls.M2C4Parts
|
|||
m.Items.Add(new MenuItem() { Header = "Move", Command = self.MoveCommand, CommandParameter = new RobotMoveInfo() { BladeTarget = position.Key, Action = RobotAction.Moving, ArmTarget = arm } });
|
||||
menus.Add(m);
|
||||
}
|
||||
self.Menu = menus;
|
||||
//self.Menu = menus;
|
||||
self.MoveTo(new RobotMoveInfo() { BladeTarget = positions.First().Key, Action = RobotAction.None });
|
||||
}
|
||||
|
||||
|
@ -527,5 +533,4 @@ namespace SicUI.Controls.M2C4Parts
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
Canvas.Top="142"
|
||||
Height="150"
|
||||
Source="Images/tm.png" />
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<unitControls:Door
|
||||
Canvas.Left="333"
|
||||
Canvas.Top="155"
|
||||
|
@ -153,12 +153,11 @@
|
|||
Canvas.Top="189"
|
||||
Height="40"
|
||||
HasTray="{Binding TrayRobotHaveTray}"
|
||||
HasWafer="{Binding TrayRobotIsArmWater}"
|
||||
RobotMoveInfo="{Binding TrayRobotMoveInfo}"
|
||||
ShowDock="False"
|
||||
Wafer1="{Binding TrayRobotWafer}" />
|
||||
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="331"
|
||||
Canvas.Top="161"
|
||||
|
@ -171,10 +170,10 @@
|
|||
Canvas.Left="232"
|
||||
Canvas.Top="183"
|
||||
Height="40"
|
||||
HasWafer="{Binding WaferRobotIsArmWater}"
|
||||
RobotMoveInfo="{Binding WaferRobotMoveInfo}"
|
||||
ShowDock="False"
|
||||
Wafer1="{Binding WaferRobotWafer}" />
|
||||
Wafer1="{Binding WaferRobotWafer}"
|
||||
EnableWaferClick="{Binding EnableWaferClick}"/>
|
||||
|
||||
<Canvas>
|
||||
<Image
|
||||
|
@ -241,7 +240,7 @@
|
|||
IsEnabled="{Binding EnableWaferClick}"
|
||||
WaferData="{Binding UnLoadWafer}" />
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="349"
|
||||
Canvas.Top="180"
|
||||
|
|
|
@ -142,7 +142,7 @@
|
|||
</unitControls:Door.RenderTransform>
|
||||
</unitControls:Door>
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<unitControls:Door
|
||||
Canvas.Left="330"
|
||||
Canvas.Top="455"
|
||||
|
@ -191,14 +191,13 @@
|
|||
Canvas.Top="189"
|
||||
Height="40"
|
||||
HasTray="{Binding TrayRobotHaveTray}"
|
||||
HasWafer="{Binding TrayRobotIsArmWater}"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
RobotMoveInfo="{Binding TrayRobotMoveInfo}"
|
||||
ShowDock="False"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Wafer1="{Binding TrayRobotWafer}" />
|
||||
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="330"
|
||||
Canvas.Top="158"
|
||||
|
@ -211,12 +210,12 @@
|
|||
Canvas.Left="232"
|
||||
Canvas.Top="183"
|
||||
Height="40"
|
||||
HasWafer="{Binding WaferRobotIsArmWater}"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
RobotMoveInfo="{Binding WaferRobotMoveInfo}"
|
||||
ShowDock="False"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Wafer1="{Binding WaferRobotWafer}" />
|
||||
Wafer1="{Binding WaferRobotWafer}"
|
||||
EnableWaferClick="{Binding EnableWaferClick}"/>
|
||||
|
||||
<Image
|
||||
Canvas.Left="275"
|
||||
|
@ -408,7 +407,7 @@
|
|||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding UnLoadWafer}" />
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<!--<Image Source="Images/pm52.png" Canvas.Left="330" Canvas.Top="458" Visibility="{Binding LoadLockHaveTray}" Width="95"/>-->
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="348"
|
||||
|
|
|
@ -122,7 +122,7 @@
|
|||
</unitControls:Door.RenderTransform>
|
||||
</unitControls:Door>
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<unitControls:Door
|
||||
Canvas.Left="336"
|
||||
Canvas.Top="455"
|
||||
|
@ -227,7 +227,7 @@
|
|||
IsEnabled="{Binding UnLoadEnableWaferClick}"
|
||||
WaferData="{Binding UnLoadWafer}" />
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="330"
|
||||
Canvas.Top="459"
|
||||
|
|
|
@ -6,10 +6,14 @@
|
|||
xmlns:controls="clr-namespace:SicUI.Controls"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
d:DesignHeight="38"
|
||||
d:DesignWidth="416"
|
||||
mc:Ignorable="d">
|
||||
<UserControl.Resources>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"/>
|
||||
</UserControl.Resources>
|
||||
<Viewbox Stretch="Uniform">
|
||||
<Canvas
|
||||
x:Name="root"
|
||||
|
@ -60,8 +64,8 @@
|
|||
</Common:AxisCanvas>
|
||||
<Canvas.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding TranslateX}" />
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy},Path=Data.RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy},Path=Data.TranslateX}" />
|
||||
</TransformGroup>
|
||||
</Canvas.RenderTransform>
|
||||
</Canvas>
|
||||
|
|
|
@ -49,19 +49,25 @@ namespace SicUI.Controls.M2C4Parts
|
|||
public static readonly DependencyProperty ShowDockProperty =
|
||||
DependencyProperty.Register("ShowDock", typeof(bool), typeof(RobotEfemTray), new PropertyMetadata(false));
|
||||
|
||||
// Using a DependencyProperty as the backing store for RotateAngel. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty RotateAngleProperty =
|
||||
DependencyProperty.Register("RotateAngel", typeof(int), typeof(RobotEfemTray), new PropertyMetadata(0));
|
||||
|
||||
public int TranslateX
|
||||
public double RotateAngle
|
||||
{
|
||||
get { return (int)GetValue(TranslateXProperty); }
|
||||
get { return (double)GetValue(RotateAngleProperty); }
|
||||
set { SetValue(RotateAngleProperty, value); }
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for RotateAngle. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty RotateAngleProperty =
|
||||
DependencyProperty.Register("RotateAngle", typeof(double), typeof(RobotEfemTray), new PropertyMetadata(0.0));
|
||||
|
||||
public double TranslateX
|
||||
{
|
||||
get { return (double)GetValue(TranslateXProperty); }
|
||||
set { SetValue(TranslateXProperty, value); }
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for TranslateX. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty TranslateXProperty =
|
||||
DependencyProperty.Register("TranslateX", typeof(int), typeof(RobotEfemTray), new PropertyMetadata(0));
|
||||
DependencyProperty.Register("TranslateX", typeof(double), typeof(RobotEfemTray), new PropertyMetadata(0.0));
|
||||
|
||||
public MECF.Framework.UI.Client.ClientBase.WaferInfo Wafer1
|
||||
{
|
||||
|
@ -335,7 +341,7 @@ namespace SicUI.Controls.M2C4Parts
|
|||
m.Items.Add(new MenuItem() { Header = "Move", Command = self.MoveCommand, CommandParameter = new RobotMoveInfo() { BladeTarget = position.Key, Action = RobotAction.Moving, ArmTarget = arm } });
|
||||
menus.Add(m);
|
||||
}
|
||||
self.Menu = menus;
|
||||
//self.Menu = menus;
|
||||
self.MoveTo(new RobotMoveInfo() { BladeTarget = positions.First().Key, Action = RobotAction.None });
|
||||
}
|
||||
|
||||
|
|
|
@ -6,10 +6,14 @@
|
|||
xmlns:controls="clr-namespace:SicUI.Controls"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
d:DesignHeight="38"
|
||||
d:DesignWidth="416"
|
||||
mc:Ignorable="d">
|
||||
<UserControl.Resources>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"/>
|
||||
</UserControl.Resources>
|
||||
<Viewbox Stretch="Uniform">
|
||||
<Canvas
|
||||
x:Name="root"
|
||||
|
@ -61,8 +65,8 @@
|
|||
</Common:AxisCanvas>
|
||||
<Canvas.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding TranslateX}" />
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy},Path=Data.RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy},Path=Data.TranslateX}" />
|
||||
</TransformGroup>
|
||||
</Canvas.RenderTransform>
|
||||
</Canvas>
|
||||
|
|
|
@ -49,19 +49,35 @@ namespace SicUI.Controls.M2C4Parts
|
|||
public static readonly DependencyProperty ShowDockProperty =
|
||||
DependencyProperty.Register("ShowDock", typeof(bool), typeof(RobotEfemWafer), new PropertyMetadata(false));
|
||||
|
||||
// Using a DependencyProperty as the backing store for RotateAngel. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty RotateAngleProperty =
|
||||
DependencyProperty.Register("RotateAngel", typeof(int), typeof(RobotEfemWafer), new PropertyMetadata(0));
|
||||
|
||||
public int TranslateX
|
||||
public bool EnableWaferClick
|
||||
{
|
||||
get { return (int)GetValue(TranslateXProperty); }
|
||||
get { return (bool)GetValue(EnableWaferClickProperty); }
|
||||
set { SetValue(EnableWaferClickProperty, value); }
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for ShowDock. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty EnableWaferClickProperty =
|
||||
DependencyProperty.Register("EnableWaferClick", typeof(bool), typeof(RobotEfemWafer), new PropertyMetadata(false));
|
||||
|
||||
public double RotateAngle
|
||||
{
|
||||
get { return (double)GetValue(RotateAngleProperty); }
|
||||
set { SetValue(RotateAngleProperty, value); }
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for RotateAngle. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty RotateAngleProperty =
|
||||
DependencyProperty.Register("RotateAngle", typeof(double), typeof(RobotEfemWafer), new PropertyMetadata(0.0));
|
||||
|
||||
public double TranslateX
|
||||
{
|
||||
get { return (double)GetValue(TranslateXProperty); }
|
||||
set { SetValue(TranslateXProperty, value); }
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for TranslateX. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty TranslateXProperty =
|
||||
DependencyProperty.Register("TranslateX", typeof(int), typeof(RobotEfemWafer), new PropertyMetadata(0));
|
||||
DependencyProperty.Register("TranslateX", typeof(double), typeof(RobotEfemWafer), new PropertyMetadata(0.0));
|
||||
|
||||
public MECF.Framework.UI.Client.ClientBase.WaferInfo Wafer1
|
||||
{
|
||||
|
@ -429,7 +445,7 @@ namespace SicUI.Controls.M2C4Parts
|
|||
m.Items.Add(new MenuItem() { Header = "Move", Command = self.MoveCommand, CommandParameter = new RobotMoveInfo() { BladeTarget = position.Key, Action = RobotAction.Moving, ArmTarget = arm } });
|
||||
menus.Add(m);
|
||||
}
|
||||
self.Menu = menus;
|
||||
//self.Menu = menus;
|
||||
self.MoveTo(new RobotMoveInfo() { BladeTarget = positions.First().Key, Action = RobotAction.None });
|
||||
}
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ namespace SicUI.Client
|
|||
IsPM1Installed = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsPM1Installed");
|
||||
IsPM2Installed = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsPM2Installed");
|
||||
IsBufferInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsBufferInstalled");
|
||||
IsLLInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsLoadLockInstalled");
|
||||
IsLoadLockInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsLoadLockInstalled");
|
||||
|
||||
_prgShowLoginRequestConfirmDialog = new Progress<Credential>(ShowLoginRequestConfirmDialog);
|
||||
|
||||
|
@ -175,7 +175,7 @@ namespace SicUI.Client
|
|||
|
||||
public bool IsBufferInstalled { get; set; }
|
||||
|
||||
public bool IsLLInstalled { get; set; }
|
||||
public bool IsLoadLockInstalled { get; set; }
|
||||
|
||||
public bool IsPermission { get; set; }
|
||||
|
||||
|
@ -847,7 +847,7 @@ namespace SicUI.Client
|
|||
this.StartTimer();
|
||||
|
||||
ConfigChangeCheck();
|
||||
MaintainanceCheck();
|
||||
MaintenanceCheck();
|
||||
|
||||
if (Debugger.IsAttached)
|
||||
{
|
||||
|
@ -855,10 +855,9 @@ namespace SicUI.Client
|
|||
}
|
||||
}
|
||||
|
||||
private void MaintainanceCheck()
|
||||
private void MaintenanceCheck()
|
||||
{
|
||||
string info = (string)QueryDataClient.Instance.Service.GetData("MaintainManager.MaintainanceCheck");
|
||||
|
||||
string info = (string)QueryDataClient.Instance.Service.GetData("MaintainManager.MaintenanceCheck");
|
||||
if (info != "")
|
||||
{
|
||||
DialogBox.ShowInfo("There are UnMaintainItems in Plan\r\n" + info
|
||||
|
|
|
@ -898,7 +898,7 @@
|
|||
Margin="30,-30,0,0"
|
||||
HorizontalAlignment="Left"
|
||||
Orientation="Horizontal">
|
||||
<Grid Margin="10,0" Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Grid Margin="10,0" Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="32" />
|
||||
|
|
|
@ -863,7 +863,7 @@
|
|||
</Border>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="10,10" Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Grid Margin="10,10" Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="32" />
|
||||
|
@ -1323,7 +1323,7 @@
|
|||
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="10" Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Grid Margin="10" Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="24" />
|
||||
<RowDefinition Height="32" />
|
||||
|
@ -2602,7 +2602,7 @@
|
|||
FontSize="18"
|
||||
RenderTransformOrigin="4.531,3.688"
|
||||
Text="Load"
|
||||
Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}" />
|
||||
Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}" />
|
||||
|
||||
<!--<deviceControl:AITPressureMeter
|
||||
Canvas.Left="113"
|
||||
|
|
|
@ -305,7 +305,7 @@ namespace SicUI.Client.Models.Platform.TM
|
|||
public bool IsPM1Installed { get; set; }
|
||||
public bool IsPM2Installed { get; set; }
|
||||
public bool IsBufferInstalled { get; set; }
|
||||
public bool IsLLInstalled { get; set; }
|
||||
public bool IsLoadLockInstalled { get; set; }
|
||||
public bool IsUnLoadInstalled { get; set; }
|
||||
public bool IsTMInstalled { get; set; }
|
||||
|
||||
|
@ -568,7 +568,7 @@ namespace SicUI.Client.Models.Platform.TM
|
|||
IsPM1Installed = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsPM1Installed");
|
||||
IsPM2Installed = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsPM2Installed");
|
||||
IsBufferInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsBufferInstalled");
|
||||
IsLLInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsLoadLockInstalled");
|
||||
IsLoadLockInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsLoadLockInstalled");
|
||||
IsTMInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsTMInstalled");
|
||||
IsUnLoadInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("System.SetUp.IsUnLoadInstalled");
|
||||
|
||||
|
|
|
@ -93,8 +93,7 @@
|
|||
<StackPanel>
|
||||
<unitControls:FOUPFrontView
|
||||
Margin="0,0,0,0"
|
||||
UnitData="{Binding CassAL}"
|
||||
Visibility="{Binding IsLP1Installed, Converter={StaticResource BoolVisibilityConverter}}" />
|
||||
UnitData="{Binding CassAL}"/>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBox
|
||||
Width="50"
|
||||
|
@ -214,8 +213,7 @@
|
|||
<StackPanel Margin="5,0,0,0">
|
||||
<unitControls:FOUPFrontView
|
||||
Margin="0,0,0,0"
|
||||
UnitData="{Binding CassAR}"
|
||||
Visibility="{Binding IsLP1Installed, Converter={StaticResource BoolVisibilityConverter}}" />
|
||||
UnitData="{Binding CassAR}"/>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<!--<Border BorderBrush="{DynamicResource Table_BD}" Height="25" BorderThickness="1" Background="{DynamicResource Table_BG_Content}" Padding="1" >-->
|
||||
<TextBox
|
||||
|
@ -337,22 +335,18 @@
|
|||
<!-- Header="{Binding CassALWaferAssociation.ModuleData.ModuleID}" -->
|
||||
<TabItem
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Header="{lex:Loc {Binding CassALWaferAssociation.ModuleData.ModuleID}}"
|
||||
Visibility="{Binding IsVCEAVisibility}">
|
||||
Header="{lex:Loc {Binding CassALWaferAssociation.ModuleData.ModuleID}}">
|
||||
<waferAssociation:WaferAssociationUnit
|
||||
Margin="10,2"
|
||||
HorizontalAlignment="Center"
|
||||
IsEnabled="{Binding IsEnableJobCassAL}"
|
||||
WAInfo="{Binding CassALWaferAssociation}" />
|
||||
</TabItem>
|
||||
<TabItem
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Header="{lex:Loc {Binding CassARWaferAssociation.ModuleData.ModuleID}}"
|
||||
Visibility="{Binding IsVCEBVisibility}">
|
||||
Header="{lex:Loc {Binding CassARWaferAssociation.ModuleData.ModuleID}}">
|
||||
<waferAssociation:WaferAssociationUnit
|
||||
Margin="10,2"
|
||||
HorizontalAlignment="Center"
|
||||
IsEnabled="{Binding IsEnableJobCassAR}"
|
||||
WAInfo="{Binding CassARWaferAssociation}" />
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
@ -620,11 +614,12 @@
|
|||
BorderBrush="{DynamicResource Table_BD}"
|
||||
BorderThickness="0,1,1,1">
|
||||
<TextBlock
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
VerticalAlignment="Center"
|
||||
FontFamily="Arial"
|
||||
FontSize="12"
|
||||
Foreground="{DynamicResource FG_Black}"
|
||||
Text="{Binding PM2Status}"
|
||||
Text="{lex:Loc {Binding PM2Status}}"
|
||||
TextWrapping="Wrap" />
|
||||
</Border>
|
||||
<Border
|
||||
|
@ -793,8 +788,7 @@
|
|||
<StackPanel Orientation="Vertical">
|
||||
<unitControls:FOUPFrontView
|
||||
Margin="0,0,0,0"
|
||||
UnitData="{Binding CassBL}"
|
||||
Visibility="{Binding IsLP1Installed, Converter={StaticResource BoolVisibilityConverter}}" />
|
||||
UnitData="{Binding CassBL}"/>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBox
|
||||
Width="50"
|
||||
|
@ -1151,7 +1145,7 @@
|
|||
x:Name="Load_Info"
|
||||
Canvas.Left="962"
|
||||
Canvas.Top="590"
|
||||
Visibility="{Binding IsLoadInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110" />
|
||||
<ColumnDefinition Width="140" />
|
||||
|
@ -1365,8 +1359,7 @@
|
|||
Canvas.Top="321"
|
||||
FontFamily="Arial"
|
||||
FontSize="18"
|
||||
Text="Buffer"
|
||||
Visibility="{Binding IsPreHeatInstalled, Converter={StaticResource BoolVisibilityConverter}}" />
|
||||
Text="Buffer"/>
|
||||
<TextBlock
|
||||
Canvas.Left="472"
|
||||
Canvas.Top="317"
|
||||
|
|
|
@ -452,9 +452,9 @@
|
|||
Grid.Row="9"
|
||||
Grid.Column="1"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding strL1LoopMode, FallbackValue=Unknown}}" />
|
||||
|
@ -464,9 +464,9 @@
|
|||
Grid.Row="9"
|
||||
Grid.Column="2"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding strL2LoopMode, FallbackValue=Unknown}}" />
|
||||
|
@ -476,9 +476,9 @@
|
|||
Grid.Row="9"
|
||||
Grid.Column="3"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding strL3LoopMode, FallbackValue=Unknown}}" />
|
||||
|
@ -688,9 +688,9 @@
|
|||
Grid.Column="1"
|
||||
Grid.ColumnSpan="3"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding strTCPyroMode, FallbackValue=Unknown}}" />
|
||||
|
@ -931,7 +931,7 @@
|
|||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Button Content="{lex:Loc {Binding PSU3EnableStr, FallbackValue=Unknown}}" IsEnabled="{Binding AllHeatEnable}">
|
||||
<Button Content="{lex:Loc {Binding PSU2EnableStr, FallbackValue=Unknown}}" IsEnabled="{Binding AllHeatEnable}">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="SetPSUEnable">
|
||||
|
@ -1068,9 +1068,9 @@
|
|||
Grid.Row="12"
|
||||
Grid.Column="1"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,1,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding heaterMode, FallbackValue=Unknown}}" />
|
||||
|
@ -2440,9 +2440,9 @@
|
|||
Grid.Row="7"
|
||||
Grid.Column="1"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding strL1LoopMode2, FallbackValue=Unknown}}" />
|
||||
|
@ -2452,9 +2452,9 @@
|
|||
Grid.Row="7"
|
||||
Grid.Column="2"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding strL2LoopMode2, FallbackValue=Unknown}}" />
|
||||
|
@ -2464,9 +2464,9 @@
|
|||
Grid.Row="7"
|
||||
Grid.Column="3"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding strL3LoopMode2, FallbackValue=Unknown}}" />
|
||||
|
@ -2583,9 +2583,9 @@
|
|||
Grid.Column="1"
|
||||
Grid.ColumnSpan="3"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,0,1,1">
|
||||
<Label HorizontalContentAlignment="Center" FontSize="14">
|
||||
<TextBlock Text="{lex:Loc {Binding strTCPyroMode2, FallbackValue=Unknown}}" />
|
||||
|
@ -2855,9 +2855,9 @@
|
|||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Padding="5,1"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
Background="{DynamicResource Table_BG_Content}"
|
||||
BorderBrush="{DynamicResource Table_BD}"
|
||||
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
|
||||
BorderThickness="0,1,1,1">
|
||||
<Label
|
||||
HorizontalContentAlignment="Center"
|
||||
|
|
|
@ -1041,7 +1041,7 @@
|
|||
BorderThickness="1,0,1,1">
|
||||
<Label
|
||||
HorizontalContentAlignment="Right"
|
||||
Content="{lex:Loc ID_TXT_Swing_Lock}"
|
||||
Content="{lex:Loc ID_TXT_Swing_unLock}"
|
||||
FontSize="14" />
|
||||
</Border>
|
||||
<Border
|
||||
|
|
|
@ -54,5 +54,5 @@ 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.3.0.40308")]
|
||||
[assembly: AssemblyVersion("1.3.1.40315")]
|
||||
[assembly: AssemblyInformationalVersion("自动通用版(有EFEM)")]
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue