Update From Svn。

This commit is contained in:
DESKTOP-GPE37UV\THINKAPD 2022-12-12 19:17:32 +08:00
parent ed544efa51
commit 04d39f0a3f
30 changed files with 871 additions and 159 deletions

View File

@ -127,7 +127,15 @@
<userControls1:ParameterNodeTreeViewControl
x:Name="tvParameterNodes"
TreeRoot="{Binding ParameterNodes}"
PresetGroupsFolderName="DataHistory"/>
PresetGroupsFolderName="DataHistory"
VisibilityExcludeNodesButton="Visible"
>
<i:Interaction.Triggers>
<i:EventTrigger EventName="EditExcludeNodesList">
<micro:ActionMessage MethodName="EditExcludeNodesList" />
</i:EventTrigger>
</i:Interaction.Triggers>
</userControls1:ParameterNodeTreeViewControl>
</Border>
</Grid>

View File

@ -85,6 +85,8 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.DataHistory
/// </summary>
private readonly IProgress<string> _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
/// <summary>
/// 点击过滤按钮,弹出过滤编辑界面
/// </summary>
public void EditExcludeNodesList()
{
string sFile = "DataHistoryFilter.txt";
List<TreeNode> liNodesAll = provider.GetParameters(false, sFile);
DataFilter df = new DataFilter();
df._NodesShow = ParameterNodes;
df.FilterFile = sFile;
df.ShowDialog();
}
#endregion
}
}

View File

@ -0,0 +1,104 @@
<Window x:Name="DataFilter1"
x:Class="MECF.Framework.UI.Client.CenterViews.Operations.RealTime.DataFilter"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:userControls1="clr-namespace:Sicentury.Core.UserControls;assembly=Sicentury.Core"
Title="Data Filter Editor" Height="850" Width="650" WindowStyle="ToolWindow" WindowStartupLocation="CenterScreen" Loaded="winTrayInfo1_Loaded" ResizeMode="NoResize">
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="200"/>
<RowDefinition Height="600"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!--
<Label
Grid.Row="0"
Grid.ColumnSpan="2"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Content="Data Filter Editor"
FontSize="13"
Style="{DynamicResource Table_TitleStyle}" />
-->
<Border
Grid.Row="0"
Grid.Column="0"
Grid.RowSpan="2"
Padding="5,1"
Background="{Binding LLBStatusBackground}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,1,1,1"
SnapsToDevicePixels="True"
>
<Grid>
<userControls1:ParameterNodeTreeViewControl
x:Name="treeParameterNodes"
IsEnabled="True"
PresetGroupsFolderName="DataFilter"
Background="{DynamicResource Button_BD}"
VisibilityTopTools ="Hidden"
>
<!--
<i:Interaction.Triggers>
<i:EventTrigger EventName="EditExcludeNodesList">
<micro:ActionMessage MethodName="EditExcludeNodesList" />
</i:EventTrigger>
</i:Interaction.Triggers>
-->
</userControls1:ParameterNodeTreeViewControl>
</Grid>
</Border>
<Border
Grid.Row="0"
Grid.Column="1"
Padding="5,1"
Background="{Binding LLBStatusBackground}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,1,1,1"
>
<TextBlock
Name="tbCostDegree"
Margin="0,0,0,0"
Padding="0,0,0,0"
VerticalAlignment="Center"
FontSize="18"
Foreground="{DynamicResource FG_Black}"
Text="请把要隐藏项取消勾选"
TextAlignment="Center"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="1"
Padding="5,1"
Background="{Binding LLBStatusBackground}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,1,1,1"
>
<Button
x:Name="buttono_OK"
Width="100"
Height="60" Content="OK" Margin="96,362,86,175" Click="buttono_OK_Click"
>
</Button>
</Border>
</Grid>
</Window>

View File

@ -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
{
/// <summary>
/// winTrayInfo.xaml 的交互逻辑
/// </summary>
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<string, string> dicNodesAll = new Dictionary<string, string>();
Dictionary<string, string> dicNodesShow = new Dictionary<string, string>();
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<string,string> dic, Dictionary<string,string> 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<string, string> 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<string, string> dicNodesResult = new Dictionary<string, string>();
GetElementResultString(_NodesAll, "", dicNodesResult);
SaveResult(dicNodesResult);
//
this.Close();
}
private void SaveResult(Dictionary<string,string> dic)
{
if(dic != null)
{
if(dic.Count >0)
{
List<string> liFilter = new List<string>();
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);
}
}
}
}
}
}
}
}

View File

@ -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<string> GetFilterTree(string sFilterFile)
{
List<string> liFilter = new List<string>();
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;
}
}
}

View File

@ -41,7 +41,15 @@
x:Name="tvParameterNodes"
IsEnabled="{Binding IsBusy, Converter={StaticResource boolReverseConverter}}"
TreeRoot="{Binding ParameterNodes}"
PresetGroupsFolderName="RealTimeView"/>
PresetGroupsFolderName="RealTimeView"
VisibilityExcludeNodesButton="Visible"
>
<i:Interaction.Triggers>
<i:EventTrigger EventName="EditExcludeNodesList">
<micro:ActionMessage MethodName="EditExcludeNodesList" />
</i:EventTrigger>
</i:Interaction.Triggers>
</userControls1:ParameterNodeTreeViewControl>
</Grid>
</Border>
</Grid>

View File

@ -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();
}
}
/// <summary>
/// 点击过滤按钮,弹出过滤编辑界面
/// </summary>
public void EditExcludeNodesList()
{
string sFile = "RealTimeFilter.txt";
List<TreeNode> liNodesAll = _provider.GetParameters(false,sFile);
DataFilter df = new DataFilter();
df._NodesShow = ParameterNodes;
df.FilterFile = sFile;
df.ShowDialog();
}
#endregion
}

View File

@ -110,6 +110,64 @@ namespace MECF.Framework.UI.Client.CenterViews.Operations.RealTime
LOG.Write(ex);
}
return root;
}
/// <summary>
/// 带过滤的获取DATA数据Numberic类型的
/// </summary>
/// <param name="bDataFilter">是否过滤,是:过滤,否:显示所有数据</param>
/// <returns></returns>
public List<TreeNode> GetParameters(bool bDataFilter,string FilterFile)
{
var root = new List<TreeNode>();
List<string> filter = FilterProvider.GetFilterTree(FilterFile);
try
{
var dataList = (List<string>)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<string>(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;
}
}

View File

@ -198,6 +198,7 @@ namespace MECF.Framework.UI.Client.ClientBase
return;
}
}
public UiViewModelBase()

View File

@ -267,6 +267,10 @@
<DependentUpon>IO3View.xaml</DependentUpon>
</Compile>
<Compile Include="CenterViews\Maitenances\IO3\IO3ViewModel.cs" />
<Compile Include="CenterViews\Operations\RealTime\FilterProvider.cs" />
<Compile Include="CenterViews\Operations\RealTime\DataFilter.xaml.cs">
<DependentUpon>DataFilter.xaml</DependentUpon>
</Compile>
<Compile Include="CenterViews\Tray\WaferManagerEx.cs" />
<Compile Include="CenterViews\Tray\winTrayInfo.xaml.cs">
<DependentUpon>winTrayInfo.xaml</DependentUpon>
@ -892,6 +896,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="CenterViews\Operations\RealTime\DataFilter.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="CenterViews\Tray\winTrayInfo.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>

View File

@ -843,13 +843,13 @@ namespace Mainframe.TMs
{
Tuple<bool, Result> 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
{

View File

@ -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)
{

View File

@ -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】

View File

@ -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<int> _lstSkipSteps = new List<int>();
private bool isNormalEnd = false;
public RecipeContinueMode ContinueAction { get; set; }
@ -210,6 +212,7 @@ namespace SicPM.RecipeExecutions
_lstSkipSteps = new List<int>();
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();
}

View File

@ -494,6 +494,13 @@ namespace SicPM.Routines
Tuple<bool, Result> 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);

View File

@ -141,12 +141,12 @@ namespace SicPM.Routines
try
{
if (SC.GetValue<bool>("System.IsSimulatorMode"))
{
SetHeatEnable((int)RoutineStep.HeatEnable, true, _heatTimeOut);
SetIoValueByGroup((int)RoutineStep.SetEPV1, IoGroupName.EPV1, true, _IoValueOpenCloseTimeout);
return Result.DONE;
}
//if (SC.GetValue<bool>("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);

View File

@ -3,124 +3,112 @@
<roles>
<!--2:read and write-->
<roleItem id="0" name="管理员" autologout="1" logouttime="20">
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;
</roleItem>
<roleItem id="1" name="设备工程师" autologout="1" logouttime="20">
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;
</roleItem>
<roleItem id="2" name="工艺工程师" autologout="1" logouttime="20">
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;
</roleItem>
<roleItem id="3" name="操作员" autologout="1" logouttime="20">
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;
</roleItem>
</roles>

View File

@ -179,12 +179,13 @@
<config default="100" name="AETempMiddleRasingRate" description="AETemp Middle每秒的上升速率,超过此范围报警" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
<config default="100" name="AETempOuterRasingRate" description="AETemp Outer每秒的上升速率,超过此范围报警" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
<config default="5" name="AETempFrequency" description="AETemp 采样频率" max="300" min="0" paramter="" tag="" unit="s" type="Double" />
<config default="100" name="SCRTempRasingRate" description="SCRTemp每秒的上升速率,超过此范围报警" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
<config default="850" name="PlacePVInnerTempLimit" description="往PM放盘时,需要等待温度低于此数值" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
<config default="850" name="PlacePVInnerTempLimit" description="往PM放盘时,需要等待温度低于此数值" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" visible="fasle"/>
<config default="850" name="PlacePVMiddleTempLimit" description="往PM放盘时,需要等待温度低于此数值" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
<config default="850" name="PlacePVOuterTempLimit" description="往PM放盘时,需要等待温度低于此数值" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
<config default="900" name="PickPVInnerTempLimit" description="从PM取盘时,需要等待温度低于此数值" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
<config default="900" name="PickPVInnerTempLimit" description="从PM取盘时,需要等待温度低于此数值" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" visible="false"/>
<config default="900" name="PickPVMiddleTempLimit" description="从PM取盘时,需要等待温度低于此数值" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
<config default="900" name="PickPVOuterTempLimit" description="从PM取盘时,需要等待温度低于此数值" max="2000" min="0" paramter="" tag="" unit="℃" type="Double" />
</configs>

View File

@ -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);

View File

@ -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;
}

View File

@ -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")]

View File

@ -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

View File

@ -1411,8 +1411,8 @@
<TabItem Header="Job List">
<DataGrid Name="gridJob" Grid.Row="1" AlternationCount="2" HorizontalAlignment="Left" CanUserAddRows="False" AutoGenerateColumns="False" RowHeaderWidth="0"
VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling"
Margin="0,5,0,0" IsEnabled="True" ItemsSource="{Binding JobListInfoData}">
<DataGrid.Columns>
Margin="0,5,0,0" IsEnabled="True" ItemsSource="{Binding JobListInfoData}" MouseRightButtonUp="gridJob_MouseRightButtonUp">
<DataGrid.Columns >
<DataGridTemplateColumn Header="#" Width="30">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
@ -1429,6 +1429,15 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="GUID" Visibility="Collapsed">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Guid}" Margin="5,0" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Center" VerticalAlignment="Center" >
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Status" Width="80">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>

View File

@ -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<string> { 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<string> { 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<string> { sql });
}
}
}

View File

@ -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(),

View File

@ -7102,7 +7102,7 @@
Height="25"
Margin="-1"
Cursor="Hand">
<Border Background="Transparent" BorderThickness="1">
<!--<Border Background="Transparent" BorderThickness="1">
<Rectangle
Margin="1"
Fill="Gray"
@ -7121,7 +7121,7 @@
ContentStringFormat="{}{0:F2}°C"
FontFamily="Verdana"
Foreground="#FFF"
ToolTip="SCR Lower Pyro Temp" />
ToolTip="SCR Lower Pyro Temp" />-->
</Grid>
<Grid
Width="64"
@ -7255,7 +7255,7 @@
Margin="-1"
Cursor="Hand"
Opacity="1">
<Border Background="Transparent" BorderThickness="1">
<!--<Border Background="Transparent" BorderThickness="1">
<Rectangle
Margin="1"
Fill="Gray"
@ -7274,7 +7274,7 @@
ContentStringFormat="{}{0:F1}℃"
FontFamily="Verdana"
Foreground="#FFF"
ToolTip="PSU Inner Pyro Temp" />
ToolTip="PSU Inner Pyro Temp" />-->
</Grid>
<Grid
Width="60"

View File

@ -50,7 +50,7 @@ namespace SicUI.Models.PMs
public bool EnableIdle => (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)

View File

@ -1184,7 +1184,7 @@
Height="25"
Cursor="Hand"
Opacity="1">
<Border Background="Transparent" BorderThickness="1">
<!--<Border Background="Transparent" BorderThickness="1">
<Rectangle
Margin="1"
Fill="Gray"
@ -1203,14 +1203,14 @@
ContentStringFormat="{}{0:F1}℃"
FontFamily="Verdana"
Foreground="#FFF"
ToolTip="SCR Lower Pyro PV Temp" />
ToolTip="SCR Lower Pyro PV Temp" />-->
</Grid>
<Grid
Width="80"
Height="25"
Cursor="Hand"
Opacity="1">
<Border Background="Transparent" BorderThickness="1">
<!--<Border Background="Transparent" BorderThickness="1">
<Rectangle
Margin="1"
Fill="Gray"
@ -1228,7 +1228,7 @@
ContentStringFormat="{}{0:F1}℃"
FontFamily="Verdana"
Foreground="#FFF"
ToolTip="SCR Lower Pyro SP Temp" />
ToolTip="SCR Lower Pyro SP Temp" />-->
</Grid>
</StackPanel>

View File

@ -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")]

Binary file not shown.