diff --git a/FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataView.xaml b/FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataView.xaml
index 42f7a02..2527d96 100644
--- a/FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataView.xaml
+++ b/FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataView.xaml
@@ -127,7 +127,15 @@
+ PresetGroupsFolderName="DataHistory"
+ VisibilityExcludeNodesButton="Visible"
+ >
+
+
+
+
+
+
diff --git a/FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataViewModel.cs b/FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataViewModel.cs
index 8623fd2..faf768a 100644
--- a/FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataViewModel.cs
+++ b/FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataViewModel.cs
@@ -85,6 +85,8 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.DataHistory
///
private readonly IProgress _progShowErrorMessageBox;
+ RealtimeProvider provider = new RealtimeProvider();
+
#endregion
#region Constructors
@@ -95,12 +97,13 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.DataHistory
SelectedData = new ChartingLineSeriesCollection(DisplayName);
- var provider = new RealtimeProvider();
+
ParameterNodes = new TreeNode(DisplayName)
{
MaxTerminalSelectionAllowed = MAX_ITEMS_PER_QUERY
};
- ParameterNodes.ChildNodes.AddRange( provider.GetParameters());
+ //ParameterNodes.ChildNodes.AddRange( provider.GetParameters());
+ ParameterNodes.ChildNodes.AddRange(provider.GetParameters(true, "DataHistoryFilter.txt"));
StartDateTime = DateTime.Now.Date;
@@ -717,7 +720,22 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.DataHistory
{
_progCsvExport.Report(e);
}
-
+
+ #endregion
+
+ #region Data Filter
+ ///
+ /// 点击过滤按钮,弹出过滤编辑界面
+ ///
+ public void EditExcludeNodesList()
+ {
+ string sFile = "DataHistoryFilter.txt";
+ List liNodesAll = provider.GetParameters(false, sFile);
+ DataFilter df = new DataFilter();
+ df._NodesShow = ParameterNodes;
+ df.FilterFile = sFile;
+ df.ShowDialog();
+ }
#endregion
}
}
diff --git a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/DataFilter.xaml b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/DataFilter.xaml
new file mode 100644
index 0000000..15965da
--- /dev/null
+++ b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/DataFilter.xaml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/DataFilter.xaml.cs b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/DataFilter.xaml.cs
new file mode 100644
index 0000000..b5190c8
--- /dev/null
+++ b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/DataFilter.xaml.cs
@@ -0,0 +1,238 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.IO;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+using Sicentury.Core.EventArgs;
+using Sicentury.Core.Tree;
+using Aitex.Core.RT.Log;
+using Aitex.Core.Util;
+using Aitex.Core.Utilities;
+using MECF.Framework.Common.DataCenter;
+using MECF.Framework.UI.Client.CenterViews.Core;
+using MECF.Framework.UI.Client.CenterViews.Core.Charting;
+using MECF.Framework.UI.Client.CenterViews.Core.EventArgs;
+using Aitex.Common.Util;
+
+namespace MECF.Framework.UI.Client.CenterViews.Operations.RealTime
+{
+ ///
+ /// winTrayInfo.xaml 的交互逻辑
+ ///
+ public partial class DataFilter : Window
+ {
+ #region Variables
+ private readonly RealtimeProvider _provider = new RealtimeProvider();
+ #endregion
+
+ #region Properties
+
+
+ private TreeNode _NodesAll = new TreeNode("DataFilterNodesAll");
+ //private TreeNode _NodesShow = new TreeNode("DataFilterNodesShow");
+ public TreeNode _NodesShow { get; set; }
+ public string FilterFile;
+
+ #endregion
+
+
+ public DataFilter()
+ {
+ InitializeComponent();
+ //
+
+ //
+ _NodesAll.ChildNodes.AddRange(_provider.GetParameters(false, "RealTimeFilter.txt"));
+ //_NodesShow.ChildNodes.AddRange(_provider.GetParameters(true));
+
+
+
+ }
+ private void ShowData()
+ {
+ this.treeParameterNodes.TreeRoot = _NodesAll;
+ if(this._NodesShow == null)
+ {
+ this._NodesShow = new TreeNode("NodeShow");
+ }
+ //
+ Dictionary dicNodesAll = new Dictionary();
+ Dictionary dicNodesShow = new Dictionary();
+
+ GetElementString(_NodesShow, "", dicNodesShow,null);
+
+ GetElementString(_NodesAll, "", dicNodesAll,dicNodesShow);
+
+ foreach (string key in dicNodesAll.Keys)
+ {
+ if(!dicNodesShow.ContainsKey(key))
+ {
+ //如果已显示节点中没有找到当前节点,则当前节点就是隐藏的节点,应该勾选
+ }
+ }
+ }
+
+ public static void GetElementString(TreeNode node, string parentName,Dictionary dic, Dictionary dicCheck)
+ {
+ foreach(TreeNode tn in node.ChildNodes)
+ {
+ if(tn.ChildNodes.Count >0)
+ {
+ if (parentName.Trim().Length > 0)
+ {
+ GetElementString(tn, parentName + "." + tn.Name, dic, dicCheck);
+ }
+ else
+ {
+ GetElementString(tn, tn.Name, dic, dicCheck);
+ }
+ }
+ else
+ {
+ if (dicCheck != null)
+ {
+ if (parentName.Trim().Length > 0)
+ {
+ if (dicCheck.ContainsKey(parentName + "." + tn.Name))
+ {
+ dic.Add(parentName + "." + tn.Name, "1");
+ tn.IsSelected = true;
+ }
+ else
+ {
+ dic.Add(parentName + "." + tn.Name, "0");
+ }
+ }
+ else
+ {
+ if (dicCheck.ContainsKey(tn.Name))
+ {
+ dic.Add(tn.Name, "1");
+ tn.IsSelected = true;
+ }
+ else
+ {
+ dic.Add(tn.Name, "0");
+ }
+ }
+ }
+ else
+ {
+ if (parentName.Trim().Length > 0 )
+ {
+ dic.Add(parentName + "." + tn.Name, "0");
+ }
+ else
+ {
+ dic.Add( tn.Name, "0");
+ }
+ }
+ }
+ }
+ }
+
+ public static void GetElementResultString(TreeNode node, string parentName, Dictionary dic)
+ {
+ foreach (TreeNode tn in node.ChildNodes)
+ {
+ if (tn.ChildNodes.Count > 0)
+ {
+ if (parentName.Trim().Length > 0)
+ {
+ GetElementResultString(tn, parentName + "." + tn.Name, dic);
+ }
+ else
+ {
+ GetElementResultString(tn, tn.Name, dic);
+ }
+ }
+ else
+ {
+ if (parentName.Trim().Length > 0)
+ {
+ if (tn.IsSelected == true)
+ {
+
+ dic.Add(parentName + "." + tn.Name, "1");
+ }
+ else if (tn.IsSelected == false)
+ {
+ dic.Add(parentName + "." + tn.Name, "0");
+ }
+ else
+ {
+ dic.Add(parentName + "." + tn.Name, "2");
+ }
+ }
+ else
+ {
+ if (tn.IsSelected == true)
+ {
+
+ dic.Add( tn.Name, "1");
+ }
+ else if(tn.IsSelected == false)
+ {
+ dic.Add( tn.Name, "0");
+ }
+ else
+ {
+ dic.Add(tn.Name, "2");
+ }
+ }
+
+
+ }
+ }
+ }
+
+
+ private void winTrayInfo1_Loaded(object sender, RoutedEventArgs e)
+ {
+ this.ShowData();
+ }
+
+ private void buttono_OK_Click(object sender, RoutedEventArgs e)
+ {
+ Dictionary dicNodesResult = new Dictionary();
+ GetElementResultString(_NodesAll, "", dicNodesResult);
+ SaveResult(dicNodesResult);
+ //
+ this.Close();
+ }
+
+ private void SaveResult(Dictionary dic)
+ {
+ if(dic != null)
+ {
+ if(dic.Count >0)
+ {
+ List liFilter = new List();
+ string DataFilterFile = PathManager.GetCfgDir() + this.FilterFile;
+ //
+ using (StreamWriter sw = new StreamWriter(DataFilterFile,false))
+ {
+ foreach (string key in dic.Keys)
+ {
+ if (dic[key] == "0")
+ {
+ sw.WriteLine(key);
+ }
+ }
+ }
+ }
+ }
+
+ }
+ }
+}
diff --git a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/FilterProvider.cs b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/FilterProvider.cs
new file mode 100644
index 0000000..c301583
--- /dev/null
+++ b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/FilterProvider.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+using OpenSEMI.ClientBase.ServiceProvider;
+using Aitex.Common.Util;
+using System.Xml;
+using System.IO;
+
+namespace MECF.Framework.UI.Client.CenterViews.Operations.RealTime
+{
+ public class FilterProvider: IProvider
+ {
+ public FilterProvider()
+ { }
+ //}
+ public void Create()
+ {
+
+ }
+ //
+ public static List GetFilterTree(string sFilterFile)
+ {
+ List liFilter = new List();
+ string DataFilterFile = PathManager.GetCfgDir() + sFilterFile;
+ //
+ if (File.Exists(DataFilterFile))
+ {
+
+ using(StreamReader sr = new StreamReader(DataFilterFile))
+ {
+ string s = sr.ReadLine();
+ while (s != null)
+ {
+ if(s.Trim().Length == 0)
+ {
+ continue;
+ }
+ liFilter.Add(s);
+ //
+ s = sr.ReadLine();
+ }
+ }
+ }
+ //
+ //liFilter.Add("UserDefine"); //测试用
+ //
+ return liFilter;
+ }
+
+ }
+}
diff --git a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeView.xaml b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeView.xaml
index d8138ad..cc39268 100644
--- a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeView.xaml
+++ b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeView.xaml
@@ -41,7 +41,15 @@
x:Name="tvParameterNodes"
IsEnabled="{Binding IsBusy, Converter={StaticResource boolReverseConverter}}"
TreeRoot="{Binding ParameterNodes}"
- PresetGroupsFolderName="RealTimeView"/>
+ PresetGroupsFolderName="RealTimeView"
+ VisibilityExcludeNodesButton="Visible"
+ >
+
+
+
+
+
+
diff --git a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeViewModel.cs b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeViewModel.cs
index a1883e7..90d98fc 100644
--- a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeViewModel.cs
+++ b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeViewModel.cs
@@ -55,7 +55,8 @@ namespace MECF.Framework.UI.Client.CenterViews.Operations.RealTime
MaxTerminalSelectionAllowed = MAX_PARAMETERS_ALLOWED
};
- ParameterNodes.ChildNodes.AddRange(_provider.GetParameters());
+ //ParameterNodes.ChildNodes.AddRange(_provider.GetParameters());
+ ParameterNodes.ChildNodes.AddRange(_provider.GetParameters(true,"RealTimeFilter.txt"));
ParameterNodes.TerminalNodeSelectionChanged += OnNodeSelectionChanged;
IntervalSaved = true;
@@ -275,6 +276,19 @@ namespace MECF.Framework.UI.Client.CenterViews.Operations.RealTime
view.dataGrid.CancelOperation();
}
}
+ ///
+ /// 点击过滤按钮,弹出过滤编辑界面
+ ///
+ public void EditExcludeNodesList()
+ {
+ string sFile = "RealTimeFilter.txt";
+ List liNodesAll = _provider.GetParameters(false,sFile);
+ DataFilter df = new DataFilter();
+ df._NodesShow = ParameterNodes;
+ df.FilterFile = sFile;
+ df.ShowDialog();
+
+ }
#endregion
}
diff --git a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealtimeProvider.cs b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealtimeProvider.cs
index a9cc5bd..c63362f 100644
--- a/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealtimeProvider.cs
+++ b/FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealtimeProvider.cs
@@ -110,6 +110,64 @@ namespace MECF.Framework.UI.Client.CenterViews.Operations.RealTime
LOG.Write(ex);
}
+ return root;
+ }
+ ///
+ /// 带过滤的获取DATA数据,Numberic类型的
+ ///
+ /// 是否过滤,是:过滤,否:显示所有数据
+ ///
+ public List GetParameters(bool bDataFilter,string FilterFile)
+ {
+ var root = new List();
+ List filter = FilterProvider.GetFilterTree(FilterFile);
+
+ try
+ {
+ var dataList = (List)QueryDataClient.Instance.Service.GetConfig("System.NumericDataList");
+ var typedContents = QueryDataClient.Instance.Service.GetTypedConfigContent("UserDefine", "");
+ if (string.IsNullOrEmpty(typedContents))
+ {
+ dataList.Add($"UserDefine");
+ }
+ else
+ {
+ var contentList = typedContents.Split(',').ToList();
+ contentList.ForEach(x =>
+ {
+ if (!string.IsNullOrEmpty(x)) dataList.Add($"UserDefine.{x}");
+ });
+ }
+
+ dataList.Sort();
+
+ foreach (var dataName in dataList)
+ {
+ //过滤
+ if(bDataFilter)
+ {
+ if(filter.Contains(dataName))
+ {
+ continue;
+ }
+ }
+ //
+ var nodeName = new Queue(dataName.Split('.'));
+ if (nodeName.Count <= 0)
+ continue;
+
+ // 开始创建Tree分支
+ var rootNode = root.FirstOrDefault(x => x.Name == nodeName.Peek());
+ var node = CreateTreeBranch(nodeName, rootNode);
+ if (rootNode == null)
+ root.Add(node);
+ }
+ }
+ catch (Exception ex)
+ {
+ LOG.Write(ex);
+ }
+
return root;
}
}
diff --git a/FrameworkLocal/UIClient/ClientBase/UIViewModelBase.cs b/FrameworkLocal/UIClient/ClientBase/UIViewModelBase.cs
index 2386c56..9aae2e6 100644
--- a/FrameworkLocal/UIClient/ClientBase/UIViewModelBase.cs
+++ b/FrameworkLocal/UIClient/ClientBase/UIViewModelBase.cs
@@ -198,6 +198,7 @@ namespace MECF.Framework.UI.Client.ClientBase
return;
}
+
}
public UiViewModelBase()
diff --git a/FrameworkLocal/UIClient/UIClient.csproj b/FrameworkLocal/UIClient/UIClient.csproj
index 450f8e9..8060476 100644
--- a/FrameworkLocal/UIClient/UIClient.csproj
+++ b/FrameworkLocal/UIClient/UIClient.csproj
@@ -267,6 +267,10 @@
IO3View.xaml
+
+
+ DataFilter.xaml
+
winTrayInfo.xaml
@@ -892,6 +896,10 @@
MSBuild:Compile
Designer
+
+ MSBuild:Compile
+ Designer
+
MSBuild:Compile
Designer
diff --git a/Modules/Mainframe/TMs/TMSlitValveRoutine.cs b/Modules/Mainframe/TMs/TMSlitValveRoutine.cs
index 0f192ef..48fd1df 100644
--- a/Modules/Mainframe/TMs/TMSlitValveRoutine.cs
+++ b/Modules/Mainframe/TMs/TMSlitValveRoutine.cs
@@ -843,13 +843,13 @@ namespace Mainframe.TMs
{
Tuple ret = ExecuteAndWait(id, () =>
{
- Notify($"Wait PV1Temp below{_pmPVInnerTempLimit}℃ and PV2Temp below{_pmPVMiddleTempLimit}℃ and PV3Temp below{_pmPVOuterTempLimit}℃");
+ Notify($"Wait PV2Temp below{_pmPVMiddleTempLimit}℃ and PV3Temp below{_pmPVOuterTempLimit}℃");
return true;
},() =>
{
- if (_tc1 != null && _pmPVOuterTempLimit>0 && _pmPVMiddleTempLimit>0 && _pmPVOuterTempLimit>0)
+ if (_tc1 != null && _pmPVMiddleTempLimit>0 && _pmPVOuterTempLimit>0)
{
- return _tc1.L1PVFeedBack < _pmPVInnerTempLimit && _tc1.L2PVFeedBack < _pmPVMiddleTempLimit && _tc1.L3PVFeedBack < _pmPVOuterTempLimit;
+ return _tc1.L2PVFeedBack < _pmPVMiddleTempLimit && _tc1.L3PVFeedBack < _pmPVOuterTempLimit;
}
else
{
diff --git a/Modules/SicPM/Devices/SicServo.cs b/Modules/SicPM/Devices/SicServo.cs
index df10d6f..d1067b8 100644
--- a/Modules/SicPM/Devices/SicServo.cs
+++ b/Modules/SicPM/Devices/SicServo.cs
@@ -287,6 +287,14 @@ namespace SicPM.Devices
// EV.PostWarningLog(Module, "Servo is not ready!");
// return;
//}
+ if (target == 0)
+ {
+ _setValueIsZero = true;
+ }
+ else
+ {
+ _setValueIsZero = false;
+ }
if (target == 0)
{
diff --git a/Modules/SicPM/PMModule.cs b/Modules/SicPM/PMModule.cs
index 74d4611..388cc16 100644
--- a/Modules/SicPM/PMModule.cs
+++ b/Modules/SicPM/PMModule.cs
@@ -216,6 +216,7 @@ namespace SicPM
}
private R_TRIG _alarmTrig = new R_TRIG();
+ private int lastCount = 0;
public bool IsAlarm
{
get
@@ -228,7 +229,7 @@ namespace SicPM
count++;
}
- _alarmTrig.CLK = count > 0 ;
+ _alarmTrig.CLK = count > 0 && count!= lastCount;
if (_alarmTrig.Q)
{
if (!IsServiceIdle)
@@ -237,6 +238,7 @@ namespace SicPM
}
}
_alarmNumber = count;
+ lastCount = count;
return FsmState == (int)STATE.Error;
}
}
@@ -627,6 +629,7 @@ namespace SicPM
Transition(STATE.Idle, MSG.ToServiceIdle, FsmToService, STATE.Idle);
Transition(STATE.VacIdle, MSG.ToServiceIdle, FsmToService, STATE.VacIdle);
//Transition(STATE.Safety, MSG.ToServiceIdle, FsmToService, STATE.Safety);
+ Transition(STATE.ProcessIdle, MSG.ToServiceIdle, FsmToService, STATE.ProcessIdle);
Transition(STATE.Error, MSG.ToServiceIdle, FsmToService, STATE.Error);
//Process到ProcessIdle 【2022-01-20】
diff --git a/Modules/SicPM/RecipeExecutions/Process.cs b/Modules/SicPM/RecipeExecutions/Process.cs
index 6c34efe..00716ac 100644
--- a/Modules/SicPM/RecipeExecutions/Process.cs
+++ b/Modules/SicPM/RecipeExecutions/Process.cs
@@ -49,6 +49,7 @@ namespace SicPM.RecipeExecutions
ConditionWait,
StepCompleted,
Paused,
+ Abort,
}
private object _recipeLocker = new object();
@@ -62,6 +63,7 @@ namespace SicPM.RecipeExecutions
private double _curStepElpasedTimeBeforePaused2;
private List _lstSkipSteps = new List();
+ private bool isNormalEnd = false;
public RecipeContinueMode ContinueAction { get; set; }
@@ -210,6 +212,7 @@ namespace SicPM.RecipeExecutions
_lstSkipSteps = new List();
+ isNormalEnd = false;
_currentStepIndex = 99;
_currentStepNumber = CurStepTotalLoopCount = 0;
_dummyStepCount = 0;
@@ -594,6 +597,7 @@ namespace SicPM.RecipeExecutions
_recipeTimer.Stop();
Notify("Finished");
+ isNormalEnd = true;
return Result.DONE;
}
@@ -696,14 +700,17 @@ namespace SicPM.RecipeExecutions
public void ExitProcess()
{
- if (_state == RecipeRunningState.RecipeCompleted)
+ if (isNormalEnd || PMDevice.RecipeRunningInfo.IsRoutineAbort == true)
{
_dbCallback.RecipeComplete(PMDevice.RecipeRunningInfo.InnerId.ToString());
+
+ AutoJobRecorder.UpdatePosition(_currrentWaferGuid, Module, PMDevice.RecipeRunningInfo.IsRoutineAbort ? "Abort" : "Completed");
_fdc.Stop();
}
else
{
_dbCallback.RecipeFailed(PMDevice.RecipeRunningInfo.InnerId.ToString());
+ AutoJobRecorder.UpdatePosition(_currrentWaferGuid, Module, "Alarm");
_fdc.Stop();
}
diff --git a/Modules/SicPM/Routines/PMBaseRoutine.cs b/Modules/SicPM/Routines/PMBaseRoutine.cs
index 234aec7..8a026a5 100644
--- a/Modules/SicPM/Routines/PMBaseRoutine.cs
+++ b/Modules/SicPM/Routines/PMBaseRoutine.cs
@@ -494,6 +494,13 @@ namespace SicPM.Routines
Tuple ret = ExecuteAndWait(id, () =>
{
Notify($"Set {Module} rotation to {checkSpeed}");
+ if (bigThan)
+ {
+ if (!_pm.SetRotationEnable(true, out _))
+ {
+ return false;
+ }
+ }
if (!_pm.SetRotationServo(checkSpeed, 0))
{
Stop($"Set {Module} rotation error");
@@ -503,7 +510,15 @@ namespace SicPM.Routines
return true;
}, () =>
{
- return _pm.CheckRotationServoOn(checkSpeed, bigThan);
+ if (_pm.CheckRotationServoOn(checkSpeed, bigThan))
+ {
+ if(!bigThan && checkSpeed ==0)
+ {
+ _pm.SetRotationEnable(false, out _);
+ }
+ return true;
+ }
+ return false;
},
timeout * 1000);
diff --git a/Modules/SicPM/Routines/PMToAtmIdleRoutine.cs b/Modules/SicPM/Routines/PMToAtmIdleRoutine.cs
index 1000507..b0a0542 100644
--- a/Modules/SicPM/Routines/PMToAtmIdleRoutine.cs
+++ b/Modules/SicPM/Routines/PMToAtmIdleRoutine.cs
@@ -141,12 +141,12 @@ namespace SicPM.Routines
try
{
- if (SC.GetValue("System.IsSimulatorMode"))
- {
- SetHeatEnable((int)RoutineStep.HeatEnable, true, _heatTimeOut);
- SetIoValueByGroup((int)RoutineStep.SetEPV1, IoGroupName.EPV1, true, _IoValueOpenCloseTimeout);
- return Result.DONE;
- }
+ //if (SC.GetValue("System.IsSimulatorMode"))
+ //{
+ // SetHeatEnable((int)RoutineStep.HeatEnable, true, _heatTimeOut);
+ // SetIoValueByGroup((int)RoutineStep.SetEPV1, IoGroupName.EPV1, true, _IoValueOpenCloseTimeout);
+ // return Result.DONE;
+ //}
SetHeatEnable((int)RoutineStep.HeatEnable, false, _heatTimeOut);
SetRotationValve((int)RoutineStep.RotationEnable, _rotationCheckSpeed, false, _rotationCloseTimeout);
diff --git a/SicRT/Config/Account/Account.xml b/SicRT/Config/Account/Account.xml
index bc1a593..8938b66 100644
--- a/SicRT/Config/Account/Account.xml
+++ b/SicRT/Config/Account/Account.xml
@@ -3,124 +3,112 @@
- Header,3;Overview,3;TM,3;ioPlatform,3;LeakCheck,3;Sequence,3;Recipe,3;RoutineConfig,3;EventLog,3;ProcessHistory,3;
- RealTimeCharting,3;DataHistory,3;JobList,3;Statistics,3;Charting,3;Config,3;Account,3;Role,3;Runtime,3;Alarm,3;mainPM1,3;processPM1,3;
- ioPM1,3;motionPM1,3;heaterPM1,3;alarmPM1,3;linkedDevicePM1,3;MFCFlowPM1,3;CommMonitorPM1,3;CleanRecipe,3;
- Step,3;Name,3;Time,3;1. Ar/H2 Switch,3;2. SH Total Flow,3;3. Surrounding Flow (M40),3;4. SH Total Flow Split Ratio,3;5. Flow Set Mode,3;
- 6. Pressure Set,3;7. Rotation Set,3;8. PSU Control Mode,3;9. PSU Set Mode,3;10. SCR Control Mode,3;11. SCR Set Mode,3;
- 12. PSU Inner Temp Set,3;13. PSU Middle Temp Set,3;14. PSU Outer Temp Set,3;15. SCR Temp Set,3;16. PSU Inner Ratio Set,3;
- 17. PSU Middle Ratio Set,3;18. PSU Outer Ratio Set,3;19. SCR Upper Ratio Set,3;20. SCR Middle Ratio Set,3;21. SCR Lower Ratio Set,3;
- 22. Si Source Total Flow,3;23. SiH4 Flow Mode,3;24. SiH4 Flow (M14),3;25. TCS Flow Mode,3;26. TCS Bubb Low Flow (M11),3;
- 27. TCS Bubb High Flow (M10),3;28. TCS Push Flow (M12),3;29. TCS Bubb Pressure (PC3),3;30. HCl Flow Mode,3;31. HCl Flow (M13),3;
- 32. Si Source Split Ratio,3;33. Si Source Push Flow (M9),3;34. Si Source Inner Flow (M23),3;35. Si Source Middle Flow (M22),3;
- 36. Si Source Pre-Split Pressure (PC6),3;37. C Source Total Flow,3;38. C2H4 Flow Mode,3;39. C2H4 Flow (M16),3;40. V99,3;
- 41. Balance C Flow (M39),3;42. C Source Split Ratio,3;43. C Source Push Flow (M15),3;44. C Source Inner Flow (M26),3;
- 45. C Source Middle Flow (M25),3;46. C Source Pre-Split Pressure (PC7),3;47. Dope Total Flow,3;48. N2 Flow Mode,3;
- 49. N2 Actual Flow,3;50. N2 Low Flow (M4),3;51. Dilut Flow For N2 (M3),3;52. Diluted N2 Flow (M6),3;53. N2 Post Dilut Pressure (PC1),3;
- 54. N2 High Flow Mode,3;55. N2 High Flow (M5),3;56. TMA Flow Mode,3;57. TMA Bubb Flow (M7),3;58. TMA Push Flow (M8),3;
- 59. TMA Bubb Pressure (PC2),3;60. Dope Split Ratio,3;61. Dope Push Flow (M2),3;62. Dope Inner Flow (M20),3;63. Dope Middle Flow (M19),3;
- 64. Dope Pre-Split Pressure (PC5),3;65. SH Push Total Flow,3;66. SH Inner Flow,3;67. SH Middle Flow,3;68. SH Outer Flow,3;
- 69. Inner Push Flow (M29),3;70. Middle Push Flow (M31),3;71. Outer Push Flow (M28),3;72. SH Purge Flow (M27),3;73. Heater-Up Purge Ar/H2 Switch,3;
- 74. Heater-Up Purge HCl,3;75. Heater-Up Purge Flow (M32),3;76. Heater-Up Purge HCl Flow (M30),3;77. GR Purge Main Flow (M33),3;
- 78. Chamber Purge Flow (M35),3;79. Rotation-Up Purge Flow (M36),3;80. Shutter Purge Flow (M37),3;81. Heater-WF Purge Flow (M38),3;
- 82. Total Vent Flow,3;83. Vent Push Flow (M1),3;84. Vent Pre-Exhaust Pressure (PC4),3;
- Operation.Overview.Operation,3;Operation.Overview.RunningMode,3;PM1.Main.ReactorStatus,3;PM1.Main.ReactorService,3;
- PM1.Process.Steps,3;Platform.Mainframe.PM1,3;Platform.Mainframe.Buffer,3;Platform.Mainframe.LL,3;Platform.Mainframe.TM,3;
- Platform.Mainframe.PreHeat,3;
- Step1,3;Step2,3;Step3,3;Step4,3;Step5,3;Step6,3;Step7,3;Step8,3;Step9,3;Step10,3;Step11,3;Step12,3;Step13,3;Step14,3;Step15,3;Step16,3;Step17,3;
- Step18,3;Step19,3;Step20,3;Step21,3;Step22,3;Step23,3;Step24,3;Step25,3;Step26,3;Step27,3;Step28,3;Step29,3;Step30,3;Step31,3;Step32,3;Step33,3;
- Step34,3;Step35,3;Step36,3;Step37,3;Step38,3;Step39,3;Step40,3;Step41,3;Step42,3;Step43,3;Step44,3;Step45,3;Step46,3;Step47,3;Step48,3;Step49,3;
- Step50,3;
+ Header,3;Overview,3;TM,3;ioPlatform,3;LeakCheck,3;Sequence,3;Recipe,3;RoutineConfig,3;EventLog,3;ProcessHistory,3;RealTimeCharting,3;
+ DataHistory,3;JobList,3;Charting,3;Config,3;Account,3;Role,3;Runtime,3;Alarm,3;mainPM1,3;processPM1,3;ioPM1,3;motionPM1,3;heaterPM1,3;
+ alarmPM1,3;linkedDevicePM1,3;MFCFlowPM1,3;CommMonitorPM1,3;Step,3;Name,3;Time,3;Growth Rate,3;1. Ar/H2 Switch,3;2. SH Total Flow,3;
+ 3. Surrounding Flow (M40),3;4. SH Total Flow Split Ratio,3;5. Flow Set Mode,3;6. Pressure Set,3;7. Rotation Set,3;8. PSU Control Mode,3;
+ 9. PSU Set Mode,3;10. SCR Control Mode,3;11. SCR Set Mode,3;12. PSU Inner Temp Set,3;13. PSU Middle Temp Set,3;
+ 14. PSU Outer Temp Set,3;15. SCR Temp Set,3;16. PSU Inner Ratio Set,3;17. PSU Middle Ratio Set,3;18. PSU Outer Ratio Set,3;
+ 19. SCR Upper Ratio Set,3;20. SCR Middle Ratio Set,3;21. SCR Lower Ratio Set,3;22. Si Source Total Flow,3;23. SiH4 Flow Mode,3;
+ 24. SiH4 Flow (M14),3;25. TCS Flow Mode,3;26. TCS Bubb Low Flow (M11),3;27. TCS Bubb High Flow (M10),3;28. TCS Push Flow (M12),3;
+ 29. TCS Bubb Pressure (PC3),3;30. HCl Flow Mode,3;31. HCl Flow (M13),3;32. Si Source Split Ratio,3;33. Si Source Push Flow (M9),3;
+ 34. Si Source Inner Flow (M23),3;35. Si Source Middle Flow (M22),3;36. Si Source Pre-Split Pressure (PC6),3;37. C Source Total Flow,3;
+ 38. C2H4 Flow Mode,3;39. C2H4 Flow (M16),3;40. V99,3;41. Balance C Flow (M39),3;42. C Source Split Ratio,3;43. C Source Push Flow (M15),3;
+ 44. C Source Inner Flow (M26),3;45. C Source Middle Flow (M25),3;46. C Source Pre-Split Pressure (PC7),3;47. Dope Total Flow,3;
+ 48. N2 Flow Mode,3;49. N2 Actual Flow,3;50. N2 Low Flow (M4),3;51. Dilut Flow For N2 (M3),3;52. Diluted N2 Flow (M6),3;
+ 53. N2 Post Dilut Pressure (PC1),3;54. N2 High Flow Mode,3;55. N2 High Flow (M5),3;56. TMA Flow Mode,3;57. TMA Bubb Flow (M7),3;
+ 58. TMA Push Flow (M8),3;59. TMA Bubb Pressure (PC2),3;60. Dope Split Ratio,3;61. Dope Push Flow (M2),3;62. Dope Inner Flow (M20),3;
+ 63. Dope Middle Flow (M19),3;64. Dope Pre-Split Pressure (PC5),3;65. SH Push Total Flow,3;66. SH Inner Flow,3;67. SH Middle Flow,3;
+ 68. SH Outer Flow,3;69. Inner Push Flow (M29),3;70. Middle Push Flow (M31),3;71. Outer Push Flow (M28),3;72. Optic Purge Flow (M27),3;
+ 73. Heater-Up Purge Ar/H2 Switch,3;75. SH Purge Flow (M32),3;77. GR Purge Main Flow (M33),3;78. Chamber Purge Flow (M35),3;
+ 79. Rotation-Up Purge Flow (M36),3;80. Shutter Purge Flow (M37),3;81. Heater-WF Purge Flow (M38),3;82. Total Vent Flow,3;
+ 83. Vent Push Flow (M1),3;84. Vent Pre-Exhaust Pressure (PC4),3;Operation.Overview.Operation,3;Operation.Overview.RunningMode,3;
+ PM1.Main.ReactorStatus,3;PM1.Main.ReactorService,3;PM1.Process.Steps,3;Platform.Mainframe.PM1,3;Platform.Mainframe.Buffer,3;
+ Platform.Mainframe.LL,3;Platform.Mainframe.TM,3;Platform.Mainframe.PreHeat,3;Step1,3;Step2,3;Step3,3;Step4,3;Step5,3;Step6,3;Step7,3;
+ Step8,3;Step9,3;Step10,3;Step11,3;Step12,3;Step13,3;Step14,3;Step15,3;Step16,3;Step17,3;Step18,3;Step19,3;Step20,3;Step21,3;Step22,3;
+ Step23,3;Step24,3;Step25,3;Step26,3;Step27,3;Step28,3;Step29,3;Step30,3;Step31,3;Step32,3;Step33,3;Step34,3;Step35,3;Step36,3;Step37,3;
+ Step38,3;Step39,3;Step40,3;Step41,3;Step42,3;Step43,3;Step44,3;Step45,3;Step46,3;Step47,3;Step48,3;Step49,3;Step50,3;
- Header,3;Overview,3;TM,3;ioPlatform,3;LeakCheck,3;Sequence,3;Recipe,3;RoutineConfig,3;EventLog,3;ProcessHistory,3;
- RealTimeCharting,3;DataHistory,3;JobList,3;Statistics,3;Charting,3;Config,3;Account,3;Role,3;Runtime,3;Alarm,3;mainPM1,3;processPM1,3;
- ioPM1,3;motionPM1,3;heaterPM1,3;alarmPM1,3;linkedDevicePM1,3;MFCFlowPM1,3;CommMonitorPM1,3;CleanRecipe,3;
- Step,3;Name,3;Time,3;1. Ar/H2 Switch,3;2. SH Total Flow,3;3. Surrounding Flow (M40),3;4. SH Total Flow Split Ratio,3;5. Flow Set Mode,3;
- 6. Pressure Set,3;7. Rotation Set,3;8. PSU Control Mode,3;9. PSU Set Mode,3;10. SCR Control Mode,3;11. SCR Set Mode,3;
- 12. PSU Inner Temp Set,3;13. PSU Middle Temp Set,3;14. PSU Outer Temp Set,3;15. SCR Temp Set,3;16. PSU Inner Ratio Set,3;
- 17. PSU Middle Ratio Set,3;18. PSU Outer Ratio Set,3;19. SCR Upper Ratio Set,3;20. SCR Middle Ratio Set,3;21. SCR Lower Ratio Set,3;
- 22. Si Source Total Flow,3;23. SiH4 Flow Mode,3;24. SiH4 Flow (M14),3;25. TCS Flow Mode,3;26. TCS Bubb Low Flow (M11),3;
- 27. TCS Bubb High Flow (M10),3;28. TCS Push Flow (M12),3;29. TCS Bubb Pressure (PC3),3;30. HCl Flow Mode,3;31. HCl Flow (M13),3;
- 32. Si Source Split Ratio,3;33. Si Source Push Flow (M9),3;34. Si Source Inner Flow (M23),3;35. Si Source Middle Flow (M22),3;
- 36. Si Source Pre-Split Pressure (PC6),3;37. C Source Total Flow,3;38. C2H4 Flow Mode,3;39. C2H4 Flow (M16),3;40. V99,3;
- 41. Balance C Flow (M39),3;42. C Source Split Ratio,3;43. C Source Push Flow (M15),3;44. C Source Inner Flow (M26),3;
- 45. C Source Middle Flow (M25),3;46. C Source Pre-Split Pressure (PC7),3;47. Dope Total Flow,3;48. N2 Flow Mode,3;
- 49. N2 Actual Flow,3;50. N2 Low Flow (M4),3;51. Dilut Flow For N2 (M3),3;52. Diluted N2 Flow (M6),3;53. N2 Post Dilut Pressure (PC1),3;
- 54. N2 High Flow Mode,3;55. N2 High Flow (M5),3;56. TMA Flow Mode,3;57. TMA Bubb Flow (M7),3;58. TMA Push Flow (M8),3;
- 59. TMA Bubb Pressure (PC2),3;60. Dope Split Ratio,3;61. Dope Push Flow (M2),3;62. Dope Inner Flow (M20),3;63. Dope Middle Flow (M19),3;
- 64. Dope Pre-Split Pressure (PC5),3;65. SH Push Total Flow,3;66. SH Inner Flow,3;67. SH Middle Flow,3;68. SH Outer Flow,3;
- 69. Inner Push Flow (M29),3;70. Middle Push Flow (M31),3;71. Outer Push Flow (M28),3;72. SH Purge Flow (M27),3;73. Heater-Up Purge Ar/H2 Switch,3;
- 74. Heater-Up Purge HCl,3;75. Heater-Up Purge Flow (M32),3;76. Heater-Up Purge HCl Flow (M30),3;77. GR Purge Main Flow (M33),3;
- 78. Chamber Purge Flow (M35),3;79. Rotation-Up Purge Flow (M36),3;80. Shutter Purge Flow (M37),3;81. Heater-WF Purge Flow (M38),3;
- 82. Total Vent Flow,3;83. Vent Push Flow (M1),3;84. Vent Pre-Exhaust Pressure (PC4),3;
- Operation.Overview.Operation,3;Operation.Overview.RunningMode,3;PM1.Main.ReactorStatus,3;PM1.Main.ReactorService,3;
- PM1.Process.Steps,3;Platform.Mainframe.PM1,3;Platform.Mainframe.Buffer,3;Platform.Mainframe.LL,3;Platform.Mainframe.TM,3;
- Platform.Mainframe.PreHeat,3;
- Step1,3;Step2,3;Step3,3;Step4,3;Step5,3;Step6,3;Step7,3;Step8,3;Step9,3;Step10,3;Step11,3;Step12,3;Step13,3;Step14,3;Step15,3;Step16,3;Step17,3;
- Step18,3;Step19,3;Step20,3;Step21,3;Step22,3;Step23,3;Step24,3;Step25,3;Step26,3;Step27,3;Step28,3;Step29,3;Step30,3;Step31,3;Step32,3;Step33,3;
- Step34,3;Step35,3;Step36,3;Step37,3;Step38,3;Step39,3;Step40,3;Step41,3;Step42,3;Step43,3;Step44,3;Step45,3;Step46,3;Step47,3;Step48,3;Step49,3;
- Step50,3;
+ Header,3;Overview,3;TM,3;ioPlatform,3;LeakCheck,3;Sequence,3;Recipe,3;RoutineConfig,3;EventLog,3;ProcessHistory,3;RealTimeCharting,3;
+ DataHistory,3;JobList,3;Charting,3;Config,3;Account,3;Role,3;Runtime,3;Alarm,3;mainPM1,3;processPM1,3;ioPM1,3;motionPM1,3;heaterPM1,3;
+ alarmPM1,3;linkedDevicePM1,3;MFCFlowPM1,3;CommMonitorPM1,3;Step,3;Name,3;Time,3;Growth Rate,3;1. Ar/H2 Switch,3;2. SH Total Flow,3;
+ 3. Surrounding Flow (M40),3;4. SH Total Flow Split Ratio,3;5. Flow Set Mode,3;6. Pressure Set,3;7. Rotation Set,3;8. PSU Control Mode,3;
+ 9. PSU Set Mode,3;10. SCR Control Mode,3;11. SCR Set Mode,3;12. PSU Inner Temp Set,3;13. PSU Middle Temp Set,3;
+ 14. PSU Outer Temp Set,3;15. SCR Temp Set,3;16. PSU Inner Ratio Set,3;17. PSU Middle Ratio Set,3;18. PSU Outer Ratio Set,3;
+ 19. SCR Upper Ratio Set,3;20. SCR Middle Ratio Set,3;21. SCR Lower Ratio Set,3;22. Si Source Total Flow,3;23. SiH4 Flow Mode,3;
+ 24. SiH4 Flow (M14),3;25. TCS Flow Mode,3;26. TCS Bubb Low Flow (M11),3;27. TCS Bubb High Flow (M10),3;28. TCS Push Flow (M12),3;
+ 29. TCS Bubb Pressure (PC3),3;30. HCl Flow Mode,3;31. HCl Flow (M13),3;32. Si Source Split Ratio,3;33. Si Source Push Flow (M9),3;
+ 34. Si Source Inner Flow (M23),3;35. Si Source Middle Flow (M22),3;36. Si Source Pre-Split Pressure (PC6),3;37. C Source Total Flow,3;
+ 38. C2H4 Flow Mode,3;39. C2H4 Flow (M16),3;40. V99,3;41. Balance C Flow (M39),3;42. C Source Split Ratio,3;43. C Source Push Flow (M15),3;
+ 44. C Source Inner Flow (M26),3;45. C Source Middle Flow (M25),3;46. C Source Pre-Split Pressure (PC7),3;47. Dope Total Flow,3;
+ 48. N2 Flow Mode,3;49. N2 Actual Flow,3;50. N2 Low Flow (M4),3;51. Dilut Flow For N2 (M3),3;52. Diluted N2 Flow (M6),3;
+ 53. N2 Post Dilut Pressure (PC1),3;54. N2 High Flow Mode,3;55. N2 High Flow (M5),3;56. TMA Flow Mode,3;57. TMA Bubb Flow (M7),3;
+ 58. TMA Push Flow (M8),3;59. TMA Bubb Pressure (PC2),3;60. Dope Split Ratio,3;61. Dope Push Flow (M2),3;62. Dope Inner Flow (M20),3;
+ 63. Dope Middle Flow (M19),3;64. Dope Pre-Split Pressure (PC5),3;65. SH Push Total Flow,3;66. SH Inner Flow,3;67. SH Middle Flow,3;
+ 68. SH Outer Flow,3;69. Inner Push Flow (M29),3;70. Middle Push Flow (M31),3;71. Outer Push Flow (M28),3;72. Optic Purge Flow (M27),3;
+ 73. Heater-Up Purge Ar/H2 Switch,3;75. SH Purge Flow (M32),3;77. GR Purge Main Flow (M33),3;78. Chamber Purge Flow (M35),3;
+ 79. Rotation-Up Purge Flow (M36),3;80. Shutter Purge Flow (M37),3;81. Heater-WF Purge Flow (M38),3;82. Total Vent Flow,3;
+ 83. Vent Push Flow (M1),3;84. Vent Pre-Exhaust Pressure (PC4),3;Operation.Overview.Operation,3;Operation.Overview.RunningMode,3;
+ PM1.Main.ReactorStatus,3;PM1.Main.ReactorService,3;PM1.Process.Steps,3;Platform.Mainframe.PM1,3;Platform.Mainframe.Buffer,3;
+ Platform.Mainframe.LL,3;Platform.Mainframe.TM,3;Platform.Mainframe.PreHeat,3;Step1,3;Step2,3;Step3,3;Step4,3;Step5,3;Step6,3;Step7,3;
+ Step8,3;Step9,3;Step10,3;Step11,3;Step12,3;Step13,3;Step14,3;Step15,3;Step16,3;Step17,3;Step18,3;Step19,3;Step20,3;Step21,3;Step22,3;
+ Step23,3;Step24,3;Step25,3;Step26,3;Step27,3;Step28,3;Step29,3;Step30,3;Step31,3;Step32,3;Step33,3;Step34,3;Step35,3;Step36,3;Step37,3;
+ Step38,3;Step39,3;Step40,3;Step41,3;Step42,3;Step43,3;Step44,3;Step45,3;Step46,3;Step47,3;Step48,3;Step49,3;Step50,3;
- Header,3;Overview,3;TM,3;ioPlatform,3;LeakCheck,3;Sequence,3;Recipe,3;RoutineConfig,3;EventLog,3;ProcessHistory,3;
- RealTimeCharting,3;DataHistory,3;JobList,3;Statistics,3;Charting,3;Config,3;Account,3;Role,3;Runtime,3;Alarm,3;mainPM1,3;processPM1,3;
- ioPM1,3;motionPM1,3;heaterPM1,3;alarmPM1,3;linkedDevicePM1,3;MFCFlowPM1,3;CommMonitorPM1,3;CleanRecipe,3;
- Step,3;Name,3;Time,3;1. Ar/H2 Switch,3;2. SH Total Flow,3;3. Surrounding Flow (M40),3;4. SH Total Flow Split Ratio,3;5. Flow Set Mode,3;
- 6. Pressure Set,3;7. Rotation Set,3;8. PSU Control Mode,3;9. PSU Set Mode,3;10. SCR Control Mode,3;11. SCR Set Mode,3;
- 12. PSU Inner Temp Set,3;13. PSU Middle Temp Set,3;14. PSU Outer Temp Set,3;15. SCR Temp Set,3;16. PSU Inner Ratio Set,3;
- 17. PSU Middle Ratio Set,3;18. PSU Outer Ratio Set,3;19. SCR Upper Ratio Set,3;20. SCR Middle Ratio Set,3;21. SCR Lower Ratio Set,3;
- 22. Si Source Total Flow,3;23. SiH4 Flow Mode,3;24. SiH4 Flow (M14),3;25. TCS Flow Mode,3;26. TCS Bubb Low Flow (M11),3;
- 27. TCS Bubb High Flow (M10),3;28. TCS Push Flow (M12),3;29. TCS Bubb Pressure (PC3),3;30. HCl Flow Mode,3;31. HCl Flow (M13),3;
- 32. Si Source Split Ratio,3;33. Si Source Push Flow (M9),3;34. Si Source Inner Flow (M23),3;35. Si Source Middle Flow (M22),3;
- 36. Si Source Pre-Split Pressure (PC6),3;37. C Source Total Flow,3;38. C2H4 Flow Mode,3;39. C2H4 Flow (M16),3;40. V99,3;
- 41. Balance C Flow (M39),3;42. C Source Split Ratio,3;43. C Source Push Flow (M15),3;44. C Source Inner Flow (M26),3;
- 45. C Source Middle Flow (M25),3;46. C Source Pre-Split Pressure (PC7),3;47. Dope Total Flow,3;48. N2 Flow Mode,3;
- 49. N2 Actual Flow,3;50. N2 Low Flow (M4),3;51. Dilut Flow For N2 (M3),3;52. Diluted N2 Flow (M6),3;53. N2 Post Dilut Pressure (PC1),3;
- 54. N2 High Flow Mode,3;55. N2 High Flow (M5),3;56. TMA Flow Mode,3;57. TMA Bubb Flow (M7),3;58. TMA Push Flow (M8),3;
- 59. TMA Bubb Pressure (PC2),3;60. Dope Split Ratio,3;61. Dope Push Flow (M2),3;62. Dope Inner Flow (M20),3;63. Dope Middle Flow (M19),3;
- 64. Dope Pre-Split Pressure (PC5),3;65. SH Push Total Flow,3;66. SH Inner Flow,3;67. SH Middle Flow,3;68. SH Outer Flow,3;
- 69. Inner Push Flow (M29),3;70. Middle Push Flow (M31),3;71. Outer Push Flow (M28),3;72. SH Purge Flow (M27),3;73. Heater-Up Purge Ar/H2 Switch,3;
- 74. Heater-Up Purge HCl,3;75. Heater-Up Purge Flow (M32),3;76. Heater-Up Purge HCl Flow (M30),3;77. GR Purge Main Flow (M33),3;
- 78. Chamber Purge Flow (M35),3;79. Rotation-Up Purge Flow (M36),3;80. Shutter Purge Flow (M37),3;81. Heater-WF Purge Flow (M38),3;
- 82. Total Vent Flow,3;83. Vent Push Flow (M1),3;84. Vent Pre-Exhaust Pressure (PC4),3;
- Operation.Overview.Operation,3;Operation.Overview.RunningMode,3;PM1.Main.ReactorStatus,3;PM1.Main.ReactorService,3;
- PM1.Process.Steps,3;Platform.Mainframe.PM1,3;Platform.Mainframe.Buffer,3;Platform.Mainframe.LL,3;Platform.Mainframe.TM,3;
- Platform.Mainframe.PreHeat,3;
- Step1,3;Step2,3;Step3,3;Step4,3;Step5,3;Step6,3;Step7,3;Step8,3;Step9,3;Step10,3;Step11,3;Step12,3;Step13,3;Step14,3;Step15,3;Step16,3;Step17,3;
- Step18,3;Step19,3;Step20,3;Step21,3;Step22,3;Step23,3;Step24,3;Step25,3;Step26,3;Step27,3;Step28,3;Step29,3;Step30,3;Step31,3;Step32,3;Step33,3;
- Step34,3;Step35,3;Step36,3;Step37,3;Step38,3;Step39,3;Step40,3;Step41,3;Step42,3;Step43,3;Step44,3;Step45,3;Step46,3;Step47,3;Step48,3;Step49,3;
- Step50,3;
+ Header,3;Overview,3;TM,3;ioPlatform,3;LeakCheck,3;Sequence,3;Recipe,3;RoutineConfig,3;EventLog,3;ProcessHistory,3;RealTimeCharting,3;
+ DataHistory,3;JobList,3;Charting,3;Config,3;Account,3;Role,3;Runtime,3;Alarm,3;mainPM1,3;processPM1,3;ioPM1,3;motionPM1,3;heaterPM1,3;
+ alarmPM1,3;linkedDevicePM1,3;MFCFlowPM1,3;CommMonitorPM1,3;Step,3;Name,3;Time,3;Growth Rate,3;1. Ar/H2 Switch,3;2. SH Total Flow,3;
+ 3. Surrounding Flow (M40),3;4. SH Total Flow Split Ratio,3;5. Flow Set Mode,3;6. Pressure Set,3;7. Rotation Set,3;8. PSU Control Mode,3;
+ 9. PSU Set Mode,3;10. SCR Control Mode,3;11. SCR Set Mode,3;12. PSU Inner Temp Set,3;13. PSU Middle Temp Set,3;
+ 14. PSU Outer Temp Set,3;15. SCR Temp Set,3;16. PSU Inner Ratio Set,3;17. PSU Middle Ratio Set,3;18. PSU Outer Ratio Set,3;
+ 19. SCR Upper Ratio Set,3;20. SCR Middle Ratio Set,3;21. SCR Lower Ratio Set,3;22. Si Source Total Flow,3;23. SiH4 Flow Mode,3;
+ 24. SiH4 Flow (M14),3;25. TCS Flow Mode,3;26. TCS Bubb Low Flow (M11),3;27. TCS Bubb High Flow (M10),3;28. TCS Push Flow (M12),3;
+ 29. TCS Bubb Pressure (PC3),3;30. HCl Flow Mode,3;31. HCl Flow (M13),3;32. Si Source Split Ratio,3;33. Si Source Push Flow (M9),3;
+ 34. Si Source Inner Flow (M23),3;35. Si Source Middle Flow (M22),3;36. Si Source Pre-Split Pressure (PC6),3;37. C Source Total Flow,3;
+ 38. C2H4 Flow Mode,3;39. C2H4 Flow (M16),3;40. V99,3;41. Balance C Flow (M39),3;42. C Source Split Ratio,3;43. C Source Push Flow (M15),3;
+ 44. C Source Inner Flow (M26),3;45. C Source Middle Flow (M25),3;46. C Source Pre-Split Pressure (PC7),3;47. Dope Total Flow,3;
+ 48. N2 Flow Mode,3;49. N2 Actual Flow,3;50. N2 Low Flow (M4),3;51. Dilut Flow For N2 (M3),3;52. Diluted N2 Flow (M6),3;
+ 53. N2 Post Dilut Pressure (PC1),3;54. N2 High Flow Mode,3;55. N2 High Flow (M5),3;56. TMA Flow Mode,3;57. TMA Bubb Flow (M7),3;
+ 58. TMA Push Flow (M8),3;59. TMA Bubb Pressure (PC2),3;60. Dope Split Ratio,3;61. Dope Push Flow (M2),3;62. Dope Inner Flow (M20),3;
+ 63. Dope Middle Flow (M19),3;64. Dope Pre-Split Pressure (PC5),3;65. SH Push Total Flow,3;66. SH Inner Flow,3;67. SH Middle Flow,3;
+ 68. SH Outer Flow,3;69. Inner Push Flow (M29),3;70. Middle Push Flow (M31),3;71. Outer Push Flow (M28),3;72. Optic Purge Flow (M27),3;
+ 73. Heater-Up Purge Ar/H2 Switch,3;75. SH Purge Flow (M32),3;77. GR Purge Main Flow (M33),3;78. Chamber Purge Flow (M35),3;
+ 79. Rotation-Up Purge Flow (M36),3;80. Shutter Purge Flow (M37),3;81. Heater-WF Purge Flow (M38),3;82. Total Vent Flow,3;
+ 83. Vent Push Flow (M1),3;84. Vent Pre-Exhaust Pressure (PC4),3;Operation.Overview.Operation,3;Operation.Overview.RunningMode,3;
+ PM1.Main.ReactorStatus,3;PM1.Main.ReactorService,3;PM1.Process.Steps,3;Platform.Mainframe.PM1,3;Platform.Mainframe.Buffer,3;
+ Platform.Mainframe.LL,3;Platform.Mainframe.TM,3;Platform.Mainframe.PreHeat,3;Step1,3;Step2,3;Step3,3;Step4,3;Step5,3;Step6,3;Step7,3;
+ Step8,3;Step9,3;Step10,3;Step11,3;Step12,3;Step13,3;Step14,3;Step15,3;Step16,3;Step17,3;Step18,3;Step19,3;Step20,3;Step21,3;Step22,3;
+ Step23,3;Step24,3;Step25,3;Step26,3;Step27,3;Step28,3;Step29,3;Step30,3;Step31,3;Step32,3;Step33,3;Step34,3;Step35,3;Step36,3;Step37,3;
+ Step38,3;Step39,3;Step40,3;Step41,3;Step42,3;Step43,3;Step44,3;Step45,3;Step46,3;Step47,3;Step48,3;Step49,3;Step50,3;
- Header,3;Overview,3;TM,3;ioPlatform,3;LeakCheck,3;Sequence,3;Recipe,3;RoutineConfig,3;EventLog,3;ProcessHistory,3;
- RealTimeCharting,3;DataHistory,3;JobList,3;Statistics,3;Charting,3;Config,3;Account,3;Role,3;Runtime,3;Alarm,3;mainPM1,3;processPM1,3;
- ioPM1,3;motionPM1,3;heaterPM1,3;alarmPM1,3;linkedDevicePM1,3;MFCFlowPM1,3;CommMonitorPM1,3;CleanRecipe,3;
- Step,3;Name,3;Time,3;1. Ar/H2 Switch,3;2. SH Total Flow,3;3. Surrounding Flow (M40),3;4. SH Total Flow Split Ratio,3;5. Flow Set Mode,3;
- 6. Pressure Set,3;7. Rotation Set,3;8. PSU Control Mode,3;9. PSU Set Mode,3;10. SCR Control Mode,3;11. SCR Set Mode,3;
- 12. PSU Inner Temp Set,3;13. PSU Middle Temp Set,3;14. PSU Outer Temp Set,3;15. SCR Temp Set,3;16. PSU Inner Ratio Set,3;
- 17. PSU Middle Ratio Set,3;18. PSU Outer Ratio Set,3;19. SCR Upper Ratio Set,3;20. SCR Middle Ratio Set,3;21. SCR Lower Ratio Set,3;
- 22. Si Source Total Flow,3;23. SiH4 Flow Mode,3;24. SiH4 Flow (M14),3;25. TCS Flow Mode,3;26. TCS Bubb Low Flow (M11),3;
- 27. TCS Bubb High Flow (M10),3;28. TCS Push Flow (M12),3;29. TCS Bubb Pressure (PC3),3;30. HCl Flow Mode,3;31. HCl Flow (M13),3;
- 32. Si Source Split Ratio,3;33. Si Source Push Flow (M9),3;34. Si Source Inner Flow (M23),3;35. Si Source Middle Flow (M22),3;
- 36. Si Source Pre-Split Pressure (PC6),3;37. C Source Total Flow,3;38. C2H4 Flow Mode,3;39. C2H4 Flow (M16),3;40. V99,3;
- 41. Balance C Flow (M39),3;42. C Source Split Ratio,3;43. C Source Push Flow (M15),3;44. C Source Inner Flow (M26),3;
- 45. C Source Middle Flow (M25),3;46. C Source Pre-Split Pressure (PC7),3;47. Dope Total Flow,3;48. N2 Flow Mode,3;
- 49. N2 Actual Flow,3;50. N2 Low Flow (M4),3;51. Dilut Flow For N2 (M3),3;52. Diluted N2 Flow (M6),3;53. N2 Post Dilut Pressure (PC1),3;
- 54. N2 High Flow Mode,3;55. N2 High Flow (M5),3;56. TMA Flow Mode,3;57. TMA Bubb Flow (M7),3;58. TMA Push Flow (M8),3;
- 59. TMA Bubb Pressure (PC2),3;60. Dope Split Ratio,3;61. Dope Push Flow (M2),3;62. Dope Inner Flow (M20),3;63. Dope Middle Flow (M19),3;
- 64. Dope Pre-Split Pressure (PC5),3;65. SH Push Total Flow,3;66. SH Inner Flow,3;67. SH Middle Flow,3;68. SH Outer Flow,3;
- 69. Inner Push Flow (M29),3;70. Middle Push Flow (M31),3;71. Outer Push Flow (M28),3;72. SH Purge Flow (M27),3;73. Heater-Up Purge Ar/H2 Switch,3;
- 74. Heater-Up Purge HCl,3;75. Heater-Up Purge Flow (M32),3;76. Heater-Up Purge HCl Flow (M30),3;77. GR Purge Main Flow (M33),3;
- 78. Chamber Purge Flow (M35),3;79. Rotation-Up Purge Flow (M36),3;80. Shutter Purge Flow (M37),3;81. Heater-WF Purge Flow (M38),3;
- 82. Total Vent Flow,3;83. Vent Push Flow (M1),3;84. Vent Pre-Exhaust Pressure (PC4),3;
- Operation.Overview.Operation,3;Operation.Overview.RunningMode,3;PM1.Main.ReactorStatus,3;PM1.Main.ReactorService,3;
- PM1.Process.Steps,3;Platform.Mainframe.PM1,3;Platform.Mainframe.Buffer,3;Platform.Mainframe.LL,3;Platform.Mainframe.TM,3;
- Platform.Mainframe.PreHeat,3;
- Step1,3;Step2,3;Step3,3;Step4,3;Step5,3;Step6,3;Step7,3;Step8,3;Step9,3;Step10,3;Step11,3;Step12,3;Step13,3;Step14,3;Step15,3;Step16,3;Step17,3;
- Step18,3;Step19,3;Step20,3;Step21,3;Step22,3;Step23,3;Step24,3;Step25,3;Step26,3;Step27,3;Step28,3;Step29,3;Step30,3;Step31,3;Step32,3;Step33,3;
- Step34,3;Step35,3;Step36,3;Step37,3;Step38,3;Step39,3;Step40,3;Step41,3;Step42,3;Step43,3;Step44,3;Step45,3;Step46,3;Step47,3;Step48,3;Step49,3;
- Step50,3;
+ Header,3;Overview,3;TM,3;ioPlatform,3;LeakCheck,3;Sequence,3;Recipe,3;RoutineConfig,3;EventLog,3;ProcessHistory,3;RealTimeCharting,3;
+ DataHistory,3;JobList,3;Charting,3;Config,3;Account,3;Role,3;Runtime,3;Alarm,3;mainPM1,3;processPM1,3;ioPM1,3;motionPM1,3;heaterPM1,3;
+ alarmPM1,3;linkedDevicePM1,3;MFCFlowPM1,3;CommMonitorPM1,3;Step,3;Name,3;Time,3;Growth Rate,3;1. Ar/H2 Switch,3;2. SH Total Flow,3;
+ 3. Surrounding Flow (M40),3;4. SH Total Flow Split Ratio,3;5. Flow Set Mode,3;6. Pressure Set,3;7. Rotation Set,3;8. PSU Control Mode,3;
+ 9. PSU Set Mode,3;10. SCR Control Mode,3;11. SCR Set Mode,3;12. PSU Inner Temp Set,3;13. PSU Middle Temp Set,3;
+ 14. PSU Outer Temp Set,3;15. SCR Temp Set,3;16. PSU Inner Ratio Set,3;17. PSU Middle Ratio Set,3;18. PSU Outer Ratio Set,3;
+ 19. SCR Upper Ratio Set,3;20. SCR Middle Ratio Set,3;21. SCR Lower Ratio Set,3;22. Si Source Total Flow,3;23. SiH4 Flow Mode,3;
+ 24. SiH4 Flow (M14),3;25. TCS Flow Mode,3;26. TCS Bubb Low Flow (M11),3;27. TCS Bubb High Flow (M10),3;28. TCS Push Flow (M12),3;
+ 29. TCS Bubb Pressure (PC3),3;30. HCl Flow Mode,3;31. HCl Flow (M13),3;32. Si Source Split Ratio,3;33. Si Source Push Flow (M9),3;
+ 34. Si Source Inner Flow (M23),3;35. Si Source Middle Flow (M22),3;36. Si Source Pre-Split Pressure (PC6),3;37. C Source Total Flow,3;
+ 38. C2H4 Flow Mode,3;39. C2H4 Flow (M16),3;40. V99,3;41. Balance C Flow (M39),3;42. C Source Split Ratio,3;43. C Source Push Flow (M15),3;
+ 44. C Source Inner Flow (M26),3;45. C Source Middle Flow (M25),3;46. C Source Pre-Split Pressure (PC7),3;47. Dope Total Flow,3;
+ 48. N2 Flow Mode,3;49. N2 Actual Flow,3;50. N2 Low Flow (M4),3;51. Dilut Flow For N2 (M3),3;52. Diluted N2 Flow (M6),3;
+ 53. N2 Post Dilut Pressure (PC1),3;54. N2 High Flow Mode,3;55. N2 High Flow (M5),3;56. TMA Flow Mode,3;57. TMA Bubb Flow (M7),3;
+ 58. TMA Push Flow (M8),3;59. TMA Bubb Pressure (PC2),3;60. Dope Split Ratio,3;61. Dope Push Flow (M2),3;62. Dope Inner Flow (M20),3;
+ 63. Dope Middle Flow (M19),3;64. Dope Pre-Split Pressure (PC5),3;65. SH Push Total Flow,3;66. SH Inner Flow,3;67. SH Middle Flow,3;
+ 68. SH Outer Flow,3;69. Inner Push Flow (M29),3;70. Middle Push Flow (M31),3;71. Outer Push Flow (M28),3;72. Optic Purge Flow (M27),3;
+ 73. Heater-Up Purge Ar/H2 Switch,3;75. SH Purge Flow (M32),3;77. GR Purge Main Flow (M33),3;78. Chamber Purge Flow (M35),3;
+ 79. Rotation-Up Purge Flow (M36),3;80. Shutter Purge Flow (M37),3;81. Heater-WF Purge Flow (M38),3;82. Total Vent Flow,3;
+ 83. Vent Push Flow (M1),3;84. Vent Pre-Exhaust Pressure (PC4),3;Operation.Overview.Operation,3;Operation.Overview.RunningMode,3;
+ PM1.Main.ReactorStatus,3;PM1.Main.ReactorService,3;PM1.Process.Steps,3;Platform.Mainframe.PM1,3;Platform.Mainframe.Buffer,3;
+ Platform.Mainframe.LL,3;Platform.Mainframe.TM,3;Platform.Mainframe.PreHeat,3;Step1,3;Step2,3;Step3,3;Step4,3;Step5,3;Step6,3;Step7,3;
+ Step8,3;Step9,3;Step10,3;Step11,3;Step12,3;Step13,3;Step14,3;Step15,3;Step16,3;Step17,3;Step18,3;Step19,3;Step20,3;Step21,3;Step22,3;
+ Step23,3;Step24,3;Step25,3;Step26,3;Step27,3;Step28,3;Step29,3;Step30,3;Step31,3;Step32,3;Step33,3;Step34,3;Step35,3;Step36,3;Step37,3;
+ Step38,3;Step39,3;Step40,3;Step41,3;Step42,3;Step43,3;Step44,3;Step45,3;Step46,3;Step47,3;Step48,3;Step49,3;Step50,3;
diff --git a/SicRT/Config/System.sccfg b/SicRT/Config/System.sccfg
index bbafc72..cae39e4 100644
--- a/SicRT/Config/System.sccfg
+++ b/SicRT/Config/System.sccfg
@@ -179,12 +179,13 @@
+
-
+
-
+
diff --git a/SicRT/Equipments/AutoTransfer.cs b/SicRT/Equipments/AutoTransfer.cs
index 9f994d3..fb4debd 100644
--- a/SicRT/Equipments/AutoTransfer.cs
+++ b/SicRT/Equipments/AutoTransfer.cs
@@ -374,7 +374,7 @@ namespace SicRT.Modules
WaferInfo wafer = WaferManager.Instance.GetWafer(ModuleName.PM1, 0);
if (wafer != null)
{
- AutoJobRecorder.UpdatePosition(wafer.InnerId.ToString(), ModuleName.PM1.ToString(), "Abort");
+ //AutoJobRecorder.UpdatePosition(wafer.InnerId.ToString(), ModuleName.PM1.ToString(), "Abort");
}
WaferInfo wafer1 = WaferManager.Instance.GetWafer(ModuleName.TMRobot, 0);
diff --git a/SicRT/Equipments/Systems/EquipmentManager.cs b/SicRT/Equipments/Systems/EquipmentManager.cs
index de15fc1..b132158 100644
--- a/SicRT/Equipments/Systems/EquipmentManager.cs
+++ b/SicRT/Equipments/Systems/EquipmentManager.cs
@@ -620,10 +620,10 @@ namespace SicRT.Equipments.Systems
}
foreach (var modulesValue in Modules.Values)
{
- if (!modulesValue.Module.Contains("PM"))
- {
+ //if (!modulesValue.Module.Contains("PM"))
+ //{
modulesValue.PostMsg(MSG.ABORT);
- }
+ //}
}
return true;
}
diff --git a/SicRT/Properties/AssemblyInfo.cs b/SicRT/Properties/AssemblyInfo.cs
index 31e9cc2..642ed9e 100644
--- a/SicRT/Properties/AssemblyInfo.cs
+++ b/SicRT/Properties/AssemblyInfo.cs
@@ -52,6 +52,6 @@ using System.Windows;
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.5.2.9")]
-[assembly: AssemblyFileVersion("1.5.2.9")]
+[assembly: AssemblyVersion("1.5.2.11")]
+[assembly: AssemblyFileVersion("1.5.2.11")]
diff --git a/SicRT/ReleaseNotes.txt b/SicRT/ReleaseNotes.txt
index ecab687..39b10c6 100644
--- a/SicRT/ReleaseNotes.txt
+++ b/SicRT/ReleaseNotes.txt
@@ -9,6 +9,12 @@
Sic 系统更新历史记录
---------------------------------------------------------------------------------
+Sic02 2022-12-07 Version 1.5.2.11
+1、Realtime Charting 和 Data History 添加隐藏项功能;
+
+Sic02 2022-12-05 Version 1.5.2.10
+1、ProcessIdle状态下可切至Service ;
+
Sic02 2022-10-20 Version 1.5.2.9
1、计算气体总量列表里面添加RecipeName
diff --git a/SicUI/Models/Operations/Overviews/OverViewView.xaml b/SicUI/Models/Operations/Overviews/OverViewView.xaml
index 28bba4e..2892e5d 100644
--- a/SicUI/Models/Operations/Overviews/OverViewView.xaml
+++ b/SicUI/Models/Operations/Overviews/OverViewView.xaml
@@ -1411,8 +1411,8 @@
-
+ Margin="0,5,0,0" IsEnabled="True" ItemsSource="{Binding JobListInfoData}" MouseRightButtonUp="gridJob_MouseRightButtonUp">
+
@@ -1429,6 +1429,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/SicUI/Models/Operations/Overviews/OverViewView.xaml.cs b/SicUI/Models/Operations/Overviews/OverViewView.xaml.cs
index afa3916..0e2b395 100644
--- a/SicUI/Models/Operations/Overviews/OverViewView.xaml.cs
+++ b/SicUI/Models/Operations/Overviews/OverViewView.xaml.cs
@@ -1,4 +1,9 @@
-using System.Windows.Controls;
+
+using MECF.Framework.Common.DataCenter;
+using MECF.Framework.Common.OperationCenter;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
namespace SicUI.Models.Operations.Overviews
{
@@ -12,6 +17,140 @@ namespace SicUI.Models.Operations.Overviews
InitializeComponent();
}
-
+ string currentGuid = "";
+ private void gridJob_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
+ {
+ if ((sender as DataGrid).CurrentItem != null)
+ {
+ JobListInfo job = (sender as DataGrid).CurrentItem as JobListInfo;
+ currentGuid = job.Guid;
+
+ if (job.Status == "Abort")
+ {
+ ContextMenu mouseClickMenu = new ContextMenu();
+ MenuItem item = new MenuItem();
+ item.Header = job.LotName;
+ item.Background = Brushes.LightGray;
+ item.Foreground = Brushes.Black;
+ item.IsEnabled = false;
+ mouseClickMenu.Items.Add(item);
+
+
+ item = new MenuItem();
+ item.Header = "Alter as Alarm";
+ item.Click += AlterAsError;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+
+ item = new MenuItem();
+ item.Header = "Alter as Completed";
+ item.Click += AlterAsComplete;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+ mouseClickMenu.IsOpen = true;
+ }
+ else if (job.Status == "Completed")
+ {
+ ContextMenu mouseClickMenu = new ContextMenu();
+ MenuItem item = new MenuItem();
+ item.Header = job.LotName;
+ item.Background = Brushes.LightGray;
+ item.Foreground = Brushes.Green;
+ item.IsEnabled = false;
+ mouseClickMenu.Items.Add(item);
+
+ item = new MenuItem();
+ item.Header = "Alter as Abort";
+ item.Click += AlterAsAbort;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+
+ item = new MenuItem();
+ item.Header = "Alter as Alarm";
+ item.Click += AlterAsError;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+ mouseClickMenu.IsOpen = true;
+ }
+ else if (job.Status == "Alarm")
+ {
+ ContextMenu mouseClickMenu = new ContextMenu();
+ MenuItem item = new MenuItem();
+ item.Header = job.LotName;
+ item.Background = Brushes.LightGray;
+ item.Foreground = Brushes.Red;
+ item.IsEnabled = false;
+ mouseClickMenu.Items.Add(item);
+
+ item = new MenuItem();
+ item.Header = "Alter as Abort";
+ item.Click += AlterAsAbort;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+
+ item = new MenuItem();
+ item.Header = "Alter as Completed";
+ item.Click += AlterAsComplete;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+ mouseClickMenu.IsOpen = true;
+ }
+ else
+ {
+ ContextMenu mouseClickMenu = new ContextMenu();
+ MenuItem item = new MenuItem();
+ item.Header = job.LotName;
+ item.Background = Brushes.LightGray;
+ item.Foreground = Brushes.Red;
+ item.IsEnabled = false;
+ mouseClickMenu.Items.Add(item);
+
+
+ item = new MenuItem();
+ item.Header = "Alter as Abort";
+ item.Click += AlterAsAbort;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+
+ item = new MenuItem();
+ item.Header = "Alter as Alarm";
+ item.Click += AlterAsError;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+ mouseClickMenu.IsOpen = true;
+
+ item = new MenuItem();
+ item.Header = "Alter as Completed";
+ item.Click += AlterAsComplete;
+ item.Tag = this.Tag;
+ mouseClickMenu.Items.Add(item);
+ mouseClickMenu.IsOpen = true;
+ }
+ }
+ }
+
+ private void AlterAsAbort(object sender, RoutedEventArgs e)
+ {
+ string sql = $"update public.autojob_data set status='Abort' where guid='{currentGuid}'";
+ QueryDataClient.Instance.Service.ExcuteTransAction(new System.Collections.Generic.List { sql });
+
+ //InvokeClient.Instance.Service.DoOperation($"");
+ }
+ private void AlterAsError(object sender, RoutedEventArgs e)
+ {
+ string sql = $"update public.autojob_data set status='Alarm' where guid='{currentGuid}'";
+ QueryDataClient.Instance.Service.ExcuteTransAction(new System.Collections.Generic.List { sql });
+
+ }
+ private void AlterAsComplete(object sender, RoutedEventArgs e)
+ {
+ string sql = $"update public.autojob_data set status='Completed' where guid='{currentGuid}'";
+ QueryDataClient.Instance.Service.ExcuteTransAction(new System.Collections.Generic.List { sql });
+
+ }
+
+
+
+
}
}
diff --git a/SicUI/Models/Operations/Overviews/OverViewViewModel.cs b/SicUI/Models/Operations/Overviews/OverViewViewModel.cs
index b7f387b..a3032cb 100644
--- a/SicUI/Models/Operations/Overviews/OverViewViewModel.cs
+++ b/SicUI/Models/Operations/Overviews/OverViewViewModel.cs
@@ -28,6 +28,7 @@ namespace SicUI.Models.Operations.Overviews
{
public class JobListInfo : NotifiableItem
{
+ public string Guid { get; set; }
public int Index { get; set; }
public string WaferID { get; set; }
public string LotName { get; set; }
@@ -1473,11 +1474,11 @@ namespace SicUI.Models.Operations.Overviews
private void GetJobList()
{
_jobRefreashTime++;
- if (_jobRefreashTime < 5)
+ if (_jobRefreashTime < 3)
{
return;
}
- if (_jobRefreashTime > 5)
+ if (_jobRefreashTime > 3)
{
_jobRefreashTime = 0;
}
@@ -1498,6 +1499,7 @@ namespace SicUI.Models.Operations.Overviews
JobListInfo item = new JobListInfo()
{
Index = i + 1,
+ Guid = dbData.Rows[i]["guid"].ToString(),
RecipeName = dbData.Rows[i]["recipe_name"].ToString(),
LotName = dbData.Rows[i]["lot_name"].ToString(),
Status = dbData.Rows[i]["status"].ToString(),
diff --git a/SicUI/Models/PMs/PMOperationView.xaml b/SicUI/Models/PMs/PMOperationView.xaml
index 7771e91..8af7f81 100644
--- a/SicUI/Models/PMs/PMOperationView.xaml
+++ b/SicUI/Models/PMs/PMOperationView.xaml
@@ -7102,7 +7102,7 @@
Height="25"
Margin="-1"
Cursor="Hand">
-
+
-
+
(Status == "ProcessIdle" || Status == "VacIdle" || Status == "Safety" || Status == "Idle" || Status == "ServiceIdle") && !IsOnline;
- public bool EnableService => (Status == "Error" || Status == "Idle" || Status == "Safety" || Status =="VacIdle") && !IsOnline;
+ public bool EnableService => (Status == "Error" || Status == "Idle" || Status == "Safety" || Status =="VacIdle" || Status == "ProcessIdle") && !IsOnline;
public bool EnableExchangeMo => (Status == "Idle" || Status == "Safety" || Status == "VacIdle") && !IsOnline && IsService;
@@ -1688,12 +1688,35 @@ namespace SicUI.Models.PMs
public void ToService()
{
- var selection = DialogBox.ShowDialog(DialogButton.Yes | DialogButton.Cancel, DialogType.CONFIRM,
- "Are you sure perform the operation Service");
- if (selection == DialogButton.Yes)
+ if (IsService == false)
{
- InvokeClient.Instance.Service.DoOperation($"{Module}.SetToServiceIdle");
+ var retDialog = DialogBox.ShowDialog(DialogButton.Yes | DialogButton.Cancel, DialogType.CONFIRM,
+ "Are you sure perform the operation Service?");
+ if (retDialog == DialogButton.No)
+ return;
}
+ else
+ {
+ var retDialog = DialogBox.ShowDialog(DialogButton.Yes | DialogButton.Cancel, DialogType.CONFIRM,
+ "Are you sure to exit Service mode?");
+ if (retDialog == DialogButton.No)
+ return;
+ }
+ // warn the operator for the high temperature if switching to ServiceIdle from ProcessIdle.
+ if (Status == "ProcessIdle" && IsService == false)
+ {
+ DialogBox.ShowDialog(DialogButton.OK, DialogType.WARNING,
+ "Be aware of HIGH TEMPERATURE due to switching from ProcessIdle state !!");
+ }
+
+ InvokeClient.Instance.Service.DoOperation($"{Module}.SetToServiceIdle");
+
+ //var selection = DialogBox.ShowDialog(DialogButton.Yes | DialogButton.Cancel, DialogType.CONFIRM,
+ //"Are you sure perform the operation Service");
+ //if (selection == DialogButton.Yes)
+ //{
+ // InvokeClient.Instance.Service.DoOperation($"{Module}.SetToServiceIdle");
+ //}
}
public bool ShowChoosenDialog(string strInfo)
diff --git a/SicUI/Models/PMs/PMProcessView.xaml b/SicUI/Models/PMs/PMProcessView.xaml
index 7c6bb71..15ec2b3 100644
--- a/SicUI/Models/PMs/PMProcessView.xaml
+++ b/SicUI/Models/PMs/PMProcessView.xaml
@@ -1184,7 +1184,7 @@
Height="25"
Cursor="Hand"
Opacity="1">
-
+
-
+
diff --git a/SicUI/Properties/AssemblyInfo.cs b/SicUI/Properties/AssemblyInfo.cs
index d7b1cb2..1e8626a 100644
--- a/SicUI/Properties/AssemblyInfo.cs
+++ b/SicUI/Properties/AssemblyInfo.cs
@@ -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.5.2.9")]
-[assembly: AssemblyFileVersion("1.5.2.9")]
+[assembly: AssemblyVersion("1.5.2.11")]
+[assembly: AssemblyFileVersion("1.5.2.11")]
diff --git a/ThirdParty/dlls/20221206Sicentury.Core.dll b/ThirdParty/dlls/20221206Sicentury.Core.dll
new file mode 100644
index 0000000..9664b20
Binary files /dev/null and b/ThirdParty/dlls/20221206Sicentury.Core.dll differ