Merge branch 'develop' into feature/bind-interlock-manager-to-module

This commit is contained in:
SIC1016\caipeilun 2023-08-28 15:31:42 +08:00
commit 3bdc347fba
3 changed files with 211 additions and 210 deletions

View File

@ -1,16 +1,8 @@
using Aitex.Core.Backend; using Aitex.Core.RT.Event;
using Aitex.Core.Common.DeviceData;
using Aitex.Core.RT.Device;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.IOCore; using Aitex.Core.RT.IOCore;
using Aitex.Core.RT.SCCore; using Aitex.Core.RT.SCCore;
using Aitex.Core.Util; using Aitex.Core.Util;
using MECF.Framework.Common.SicMath;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml; using System.Xml;
namespace Aitex.Core.RT.Device.Devices namespace Aitex.Core.RT.Device.Devices
@ -18,7 +10,7 @@ namespace Aitex.Core.RT.Device.Devices
public class IoGasBoxTemp : BaseDevice, IDevice public class IoGasBoxTemp : BaseDevice, IDevice
{ {
//配置中标记的AI名称 //配置中标记的AI名称
protected readonly List<string> _aiGasBoxTempName =new List<string>() protected readonly List<string> _aiGasBoxTempName = new List<string>()
{ {
"aiHeatTMA", "aiHeatTMA",
"aiHeatTCSPanel", "aiHeatTCSPanel",
@ -38,7 +30,7 @@ namespace Aitex.Core.RT.Device.Devices
protected readonly R_TRIG _trigIsAlarm = new R_TRIG(); protected readonly R_TRIG _trigIsAlarm = new R_TRIG();
protected int _alarmCount ; protected int _alarmCount;
public IoGasBoxTemp(string module, XmlElement node, string ioModule = "") : base(module, node, ioModule) public IoGasBoxTemp(string module, XmlElement node, string ioModule = "") : base(module, node, ioModule)
{ {
@ -49,14 +41,13 @@ namespace Aitex.Core.RT.Device.Devices
} }
_doLineHeaterEnable = ParseDoNode("doLineHeaterEnable", node, ioModule); _doLineHeaterEnable = ParseDoNode("doLineHeaterEnable", node, ioModule);
_scNameAlarmHigh = $"PM.{module}.Heater.GasBoxTempHigh";
_scNameAlarmHigh = $"PM.{module}.Heater.{node.GetAttribute("scItemName")}";
} }
protected override void HandleMonitor() protected override void HandleMonitor()
{ {
string alarmMeg =""; string alarmMeg = "";
foreach (var ai in _aiGasBoxTemp) foreach (var ai in _aiGasBoxTemp)
{ {
if (ai is not null && ai.FloatValue >= _alarmHigh) if (ai is not null && ai.FloatValue >= _alarmHigh)
@ -65,7 +56,7 @@ namespace Aitex.Core.RT.Device.Devices
if (_alarmCount != alarmMeg.Length)// 报警数量发生变化才复位trig防止未复位时产生新的报警不提示问题 if (_alarmCount != alarmMeg.Length)// 报警数量发生变化才复位trig防止未复位时产生新的报警不提示问题
_trigIsAlarm.RST = true; _trigIsAlarm.RST = true;
if (alarmMeg.Length > 0 )//有报警 if (alarmMeg.Length > 0)//有报警
{ {
_trigIsAlarm.CLK = true; _trigIsAlarm.CLK = true;
if (_trigIsAlarm.Q) if (_trigIsAlarm.Q)
@ -73,10 +64,8 @@ namespace Aitex.Core.RT.Device.Devices
_doLineHeaterEnable?.SetValue(false, out _); _doLineHeaterEnable?.SetValue(false, out _);
EV.PostWarningLog(Module, $"{alarmMeg} over temperature {_alarmHigh}\r\n{Module}.{_doLineHeaterEnable.Name} force off"); EV.PostWarningLog(Module, $"{alarmMeg} over temperature {_alarmHigh}\r\n{Module}.{_doLineHeaterEnable.Name} force off");
} }
} }
_alarmCount = alarmMeg.Length; _alarmCount = alarmMeg.Length;
} }
@ -85,7 +74,6 @@ namespace Aitex.Core.RT.Device.Devices
_alarmHigh = SC.SafeGetValue(_scNameAlarmHigh, double.PositiveInfinity); _alarmHigh = SC.SafeGetValue(_scNameAlarmHigh, double.PositiveInfinity);
SC.RegisterValueChangedCallback(_scNameAlarmHigh, v => _alarmHigh = (double)v); SC.RegisterValueChangedCallback(_scNameAlarmHigh, v => _alarmHigh = (double)v);
return true; return true;
} }
@ -96,7 +84,6 @@ namespace Aitex.Core.RT.Device.Devices
public void Terminate() public void Terminate()
{ {
} }
} }
} }

View File

@ -3,22 +3,22 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:control="clr-namespace:Aitex.Core.UI.Control;assembly=MECF.Framework.UI.Core" xmlns:control="clr-namespace:Aitex.Core.UI.Control;assembly=MECF.Framework.UI.Core"
xmlns:controls="clr-namespace:MECF.Framework.UI.Client.Ctrlib.Controls"
xmlns:cv="clr-namespace:MECF.Framework.UI.Core.Converters;assembly=MECF.Framework.UI.Core"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dgExtension1="clr-namespace:MECF.Framework.UI.Client.RecipeEditorLib.DGExtension"
xmlns:forms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:micro="clr-namespace:Caliburn.Micro" xmlns:micro="clr-namespace:Caliburn.Micro"
xmlns:dgExtension1="clr-namespace:MECF.Framework.UI.Client.RecipeEditorLib.DGExtension"
xmlns:forms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:cv="clr-namespace:MECF.Framework.UI.Core.Converters;assembly=MECF.Framework.UI.Core"
xmlns:userControls1="clr-namespace:Sicentury.Core.UserControls;assembly=Sicentury.Core" xmlns:userControls1="clr-namespace:Sicentury.Core.UserControls;assembly=Sicentury.Core"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:controls="clr-namespace:MECF.Framework.UI.Client.Ctrlib.Controls" d:Background="#91b0cd"
d:DesignHeight="750" d:DesignHeight="750"
d:DesignWidth="1920" d:DesignWidth="1920"
d:Background="#91b0cd"
mc:Ignorable="d"> mc:Ignorable="d">
<UserControl.Resources> <UserControl.Resources>
<cv:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/> <cv:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
<HierarchicalDataTemplate x:Key="FolderTemplate" ItemsSource="{Binding Files}"> <HierarchicalDataTemplate x:Key="FolderTemplate" ItemsSource="{Binding Files}">
<StackPanel Orientation="Horizontal" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext}"> <StackPanel Orientation="Horizontal" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext}">
<Image <Image
@ -905,8 +905,8 @@
Height="33"> Height="33">
<Canvas.Resources> <Canvas.Resources>
<Style TargetType="TextBlock"> <Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/> <Setter Property="HorizontalAlignment" Value="Center" />
</Style> </Style>
</Canvas.Resources> </Canvas.Resources>
<TextBlock <TextBlock
@ -971,7 +971,7 @@
Background="LightGray" Background="LightGray"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Foreground="{Binding C2H4Color}" Text="{Binding C2H4Mol,StringFormat=F4}" /> <TextBlock Foreground="{Binding C2H4Color}" Text="{Binding C2H4Mol, StringFormat=F4}" />
</Border> </Border>
<Border <Border
Canvas.Top="198" Canvas.Top="198"
@ -980,7 +980,7 @@
Background="Cyan" Background="Cyan"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Text="C2H4" Foreground="{Binding C2H4Color}"/> <TextBlock Foreground="{Binding C2H4Color}" Text="C2H4" />
</Border> </Border>
<Border <Border
Canvas.Left="75" Canvas.Left="75"
@ -1029,8 +1029,8 @@
Height="26" Height="26"
Background="LightGray" Background="LightGray"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1" > BorderThickness="1">
<TextBlock Foreground="{Binding SIH4Color}" Text="{Binding SIH4Mol,StringFormat=N4}" /> <TextBlock Foreground="{Binding SIH4Color}" Text="{Binding SIH4Mol, StringFormat=N4}" />
</Border> </Border>
<Border <Border
Canvas.Top="223" Canvas.Top="223"
@ -1039,7 +1039,7 @@
Background="Cyan" Background="Cyan"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Text="SiH4" Foreground="{Binding SIH4Color}"/> <TextBlock Foreground="{Binding SIH4Color}" Text="SiH4" />
</Border> </Border>
<Border <Border
Canvas.Left="75" Canvas.Left="75"
@ -1088,8 +1088,8 @@
Height="26" Height="26"
Background="LightGray" Background="LightGray"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1" > BorderThickness="1">
<TextBlock Foreground="{Binding HCLColor}" Text="{Binding HCLMol,StringFormat=N4}" /> <TextBlock Foreground="{Binding HCLColor}" Text="{Binding HCLMol, StringFormat=N4}" />
</Border> </Border>
<Border <Border
Canvas.Top="247" Canvas.Top="247"
@ -1098,7 +1098,7 @@
Background="Cyan" Background="Cyan"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Text="HCL" Foreground="{Binding HCLColor}"/> <TextBlock Foreground="{Binding HCLColor}" Text="HCL" />
</Border> </Border>
<Border <Border
Canvas.Left="75" Canvas.Left="75"
@ -1148,7 +1148,7 @@
Background="LightGray" Background="LightGray"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Foreground="{Binding PN2Color}" Text="{Binding PN2Mol,StringFormat=N4}" /> <TextBlock Foreground="{Binding PN2Color}" Text="{Binding PN2Mol, StringFormat=N4}" />
</Border> </Border>
<Border <Border
Canvas.Top="271" Canvas.Top="271"
@ -1156,8 +1156,8 @@
Height="26" Height="26"
Background="Cyan" Background="Cyan"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1" > BorderThickness="1">
<TextBlock Text="PN2" Foreground="{Binding PN2Color}"/> <TextBlock Foreground="{Binding PN2Color}" Text="PN2" />
</Border> </Border>
<Border <Border
Canvas.Left="75" Canvas.Left="75"
@ -1209,7 +1209,7 @@
Background="Gold" Background="Gold"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Text="H2"/> <TextBlock Text="H2" />
</Border> </Border>
<Border <Border
Canvas.Left="476" Canvas.Left="476"
@ -1219,7 +1219,7 @@
Background="LightGray" Background="LightGray"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Foreground="{Binding H2Flow}" Text="{Binding H2Mol,StringFormat=N4}" /> <TextBlock Foreground="{Binding H2Flow}" Text="{Binding H2Mol, StringFormat=N4}" />
</Border> </Border>
<Border <Border
Canvas.Left="326" Canvas.Left="326"
@ -1271,7 +1271,7 @@
Background="Gold" Background="Gold"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Text="Ar"/> <TextBlock Text="Ar" />
</Border> </Border>
<Border <Border
Canvas.Left="476" Canvas.Left="476"
@ -1281,7 +1281,7 @@
Background="LightGray" Background="LightGray"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Foreground="{Binding ArFlow}" Text="{Binding ArMol,StringFormat=N4}" /> <TextBlock Foreground="{Binding ArFlow}" Text="{Binding ArMol, StringFormat=N4}" />
</Border> </Border>
<Border <Border
Canvas.Left="326" Canvas.Left="326"
@ -1332,8 +1332,8 @@
Height="26" Height="26"
Background="Gold" Background="Gold"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1" > BorderThickness="1">
<TextBlock Text="TMA" Foreground="{Binding TMAColor}"/> <TextBlock Foreground="{Binding TMAColor}" Text="TMA" />
</Border> </Border>
<Border <Border
Canvas.Left="476" Canvas.Left="476"
@ -1343,7 +1343,7 @@
Background="LightGray" Background="LightGray"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Foreground="{Binding TMAColor}" Text="{Binding TMAMol,StringFormat=N4}" /> <TextBlock Foreground="{Binding TMAColor}" Text="{Binding TMAMol, StringFormat=N4}" />
</Border> </Border>
<Border <Border
Canvas.Left="326" Canvas.Left="326"
@ -1395,7 +1395,7 @@
Background="Gold" Background="Gold"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Text="TCS" Foreground="{Binding TCSColor}"/> <TextBlock Foreground="{Binding TCSColor}" Text="TCS" />
</Border> </Border>
<Border <Border
Canvas.Left="476" Canvas.Left="476"
@ -1405,7 +1405,7 @@
Background="LightGray" Background="LightGray"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1"> BorderThickness="1">
<TextBlock Foreground="{Binding TCSColor}" Text="{Binding TCSMol,StringFormat=N4}" /> <TextBlock Foreground="{Binding TCSColor}" Text="{Binding TCSMol, StringFormat=N4}" />
</Border> </Border>
<Border <Border
Canvas.Left="326" Canvas.Left="326"
@ -1478,7 +1478,10 @@
</Canvas> </Canvas>
</Canvas> </Canvas>
<Grid Margin="75,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" > <Grid
Margin="75,20,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="24" /> <RowDefinition Height="24" />
<RowDefinition Height="32" /> <RowDefinition Height="32" />
@ -1558,10 +1561,10 @@
<Button <Button
Width="70" Width="70"
Height="25" Height="25"
micro:Message.Attach="SelectRecipe()"
Content="Select" Content="Select"
FontSize="13" FontSize="13"
IsEnabled="{Binding IsSelectButtonEnable}" IsEnabled="{Binding IsSelectButtonEnable}" />
micro:Message.Attach="SelectRecipe()"/>
</Border> </Border>
<Border <Border
@ -1822,11 +1825,11 @@
</Grid> </Grid>
<Grid <Grid
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="680 20 0 0"
Width="1134" Width="1134"
Height="713"> Height="713"
Margin="680,20,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<TabControl> <TabControl>
@ -1834,97 +1837,99 @@
<Grid> <Grid>
<Grid <Grid
x:Name="gridRecipe" x:Name="gridRecipe"
Margin="5 0" Margin="5,0"
IsEnabled="{Binding IsPermission}"> IsEnabled="{Binding IsPermission}">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="124*"/> <ColumnDefinition Width="124*" />
<ColumnDefinition Width="435*"/> <ColumnDefinition Width="435*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="50"/> <RowDefinition Height="50" />
<RowDefinition/> <RowDefinition />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<StackPanel <StackPanel
Grid.ColumnSpan="2"
IsEnabled="{Binding IsRecipeLoading, Converter={StaticResource BoolReverseConverter}}" IsEnabled="{Binding IsRecipeLoading, Converter={StaticResource BoolReverseConverter}}"
Orientation="Horizontal" Grid.ColumnSpan="2"> Orientation="Horizontal">
<Button x:Name="btnLockRecipe"
Content="Lock"
Height="30"
Width="70"
Margin="0 0 10 0"
Click="BtnLockRecipe_OnClick"/>
<!--更新PM正在Run的配方到下表中的配方-->
<Button <Button
Width="150" Height="30" x:Name="btnLockRecipe"
IsEnabled="{Binding AllowRipRecipe}" Width="70"
Height="30"
Margin="0,0,10,0"
Click="BtnLockRecipe_OnClick"
Content="Lock" />
<!-- 更新PM正在Run的配方到下表中的配方 -->
<Button
Width="150"
Height="30"
Margin="0"
micro:Message.Attach="PushRecipeToCurrentProcess()"
Content="Reload In Process" Content="Reload In Process"
ToolTip="Push the changes to the current process" IsEnabled="{Binding AllowRipRecipe}"
Margin="0 " ToolTip="Push the changes to the current process" />
micro:Message.Attach="PushRecipeToCurrentProcess()"/>
<Grid <Grid Height="40" Margin="520,0,0,0">
Height="40"
Margin="520 0 0 0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="140"/> <ColumnDefinition Width="140" />
<ColumnDefinition Width="110"/> <ColumnDefinition Width="110" />
<ColumnDefinition Width="110"/> <ColumnDefinition Width="110" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Border <Border
Background="{StaticResource Table_BG_Title}" Background="{StaticResource Table_BG_Title}"
BorderBrush="{StaticResource Table_BD}" BorderBrush="{StaticResource Table_BD}"
BorderThickness="1 1 0 1" BorderThickness="1,1,0,1"
CornerRadius="5 0 0 5"> CornerRadius="5 0 0 5">
<TextBlock <TextBlock
Text="To Baseline Recipe" Margin="5,0"
HorizontalAlignment="Left" HorizontalAlignment="Left"
VerticalAlignment="Center" VerticalAlignment="Center"
Margin="5 0"/> Text="To Baseline Recipe" />
</Border> </Border>
<Border <Border
Grid.Column="1" Grid.Column="1"
Background="{StaticResource Table_BG_Content}" Background="{StaticResource Table_BG_Content}"
BorderBrush="{StaticResource Table_BD}" BorderBrush="{StaticResource Table_BD}"
BorderThickness="1 1 0 1" > BorderThickness="1,1,0,1">
<!--重新加载基线配方--> <!-- 重新加载基线配方 -->
<Button <Button
Height="30" Height="30"
Margin="5,0"
micro:Message.Attach="RestoreToBaselineRecipe()"
Content="Restore" Content="Restore"
Margin="5 0" ToolTip="Discard changes and Restore to the baseline recipe" />
ToolTip="Discard changes and Restore to the baseline recipe"
micro:Message.Attach="RestoreToBaselineRecipe()"/>
</Border> </Border>
<Border Grid.Column="2" <Border
Grid.Column="2"
Background="{StaticResource Table_BG_Content}" Background="{StaticResource Table_BG_Content}"
BorderBrush="{StaticResource Table_BD}" BorderBrush="{StaticResource Table_BD}"
BorderThickness="1 1 1 1" BorderThickness="1,1,1,1"
CornerRadius="0 5 5 0"> CornerRadius="0 5 5 0">
<!--保存基线配方--> <!-- 保存基线配方 -->
<Button <Button
Height="30" Height="30"
Margin="5,0"
micro:Message.Attach="SaveToBaselineRecipe()"
Content="Save" Content="Save"
Margin="5 0"
Visibility="{Binding AllowSaveRecipe,
Converter={StaticResource BoolVisibilityConverter}}"
ToolTip="Save changes to the baseline recipe" ToolTip="Save changes to the baseline recipe"
micro:Message.Attach="SaveToBaselineRecipe()"/> Visibility="{Binding AllowSaveRecipe, Converter={StaticResource BoolVisibilityConverter}}" />
</Border> </Border>
</Grid> </Grid>
</StackPanel> </StackPanel>
<dgExtension1:DataGridRecipe <dgExtension1:DataGridRecipe
Grid.Row="1" x:Name="dgCustom" x:Name="dgCustom"
FrozenColumnCount="6" Grid.Row="1"
Grid.ColumnSpan="2"
AllowDragToFill="False" AllowDragToFill="False"
FrozenColumnCount="6"
IsEnabled="{Binding IsPermission}" IsEnabled="{Binding IsPermission}"
Recipe="{Binding CurrentRecipe, Mode=OneWay}" Grid.ColumnSpan="2"/> Recipe="{Binding CurrentRecipe, Mode=OneWay}" />
</Grid> </Grid>
<controls:PanelLocker <controls:PanelLocker
@ -1937,8 +1942,8 @@
<TabItem Header="Gas Flow Statistic"> <TabItem Header="Gas Flow Statistic">
<Grid Margin="5"> <Grid Margin="5">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="25"/> <RowDefinition Height="25" />
<RowDefinition/> <RowDefinition />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Label <Label
Grid.Row="0" Grid.Row="0"
@ -1948,10 +1953,8 @@
FontSize="12" FontSize="12"
Style="{DynamicResource Table_TitleStyle}" /> Style="{DynamicResource Table_TitleStyle}" />
<ListView ItemsSource="{Binding ProcessRunDataList}" Grid.Row="1"> <ListView Grid.Row="1" ItemsSource="{Binding ProcessRunDataList}">
<ListView.Resources> <ListView.Resources />
</ListView.Resources>
<ListView.View> <ListView.View>
<GridView> <GridView>
@ -1961,17 +1964,20 @@
</Style> </Style>
</GridView.ColumnHeaderContainerStyle>--> </GridView.ColumnHeaderContainerStyle>-->
<GridViewColumn Header="#" DisplayMemberBinding="{Binding Index}" Width="30"/> <GridViewColumn
<GridViewColumn Header="Recipe Name" DisplayMemberBinding="{Binding RecipeName}"/> Width="30"
DisplayMemberBinding="{Binding Index}"
Header="#" />
<GridViewColumn DisplayMemberBinding="{Binding RecipeName}" Header="Recipe Name" />
<!--<GridViewColumn Header="Duration" DisplayMemberBinding="{Binding StatisticsStart, StringFormat='{}{0:MM/dd hh:mm:ss.fff}'}" Width="80"/>--> <!--<GridViewColumn Header="Duration" DisplayMemberBinding="{Binding StatisticsStart, StringFormat='{}{0:MM/dd hh:mm:ss.fff}'}" Width="80"/>-->
<GridViewColumn Header="Duration" Width="140"> <GridViewColumn Width="140" Header="Duration">
<GridViewColumn.CellTemplate> <GridViewColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock> <TextBlock>
<TextBlock.Text> <TextBlock.Text>
<MultiBinding StringFormat="{}{0:HH:mm:ss} - {1:HH:mm:ss}"> <MultiBinding StringFormat="{}{0:HH:mm:ss} - {1:HH:mm:ss}">
<Binding Path="ProcessBegin"/> <Binding Path="ProcessBegin" />
<Binding Path="ProcessEnd"/> <Binding Path="ProcessEnd" />
</MultiBinding> </MultiBinding>
</TextBlock.Text> </TextBlock.Text>
</TextBlock> </TextBlock>
@ -1985,32 +1991,32 @@
</DataTemplate> </DataTemplate>
</GridViewColumn.CellTemplate> </GridViewColumn.CellTemplate>
</GridViewColumn>--> </GridViewColumn>-->
<GridViewColumn Header="H2" DisplayMemberBinding="{Binding H2, StringFormat=F1}" /> <GridViewColumn DisplayMemberBinding="{Binding H2, StringFormat=F1}" Header="H2" />
<GridViewColumn Header="Ar" DisplayMemberBinding="{Binding Ar, StringFormat=F1}" /> <GridViewColumn DisplayMemberBinding="{Binding Ar, StringFormat=F1}" Header="Ar" />
<GridViewColumn Header="PN2" DisplayMemberBinding="{Binding PN2, StringFormat=F1}"/> <GridViewColumn DisplayMemberBinding="{Binding PN2, StringFormat=F1}" Header="PN2" />
<GridViewColumn Header="HCL" DisplayMemberBinding="{Binding HCL, StringFormat=F1}" /> <GridViewColumn DisplayMemberBinding="{Binding HCL, StringFormat=F1}" Header="HCL" />
<GridViewColumn Header="SiH2" DisplayMemberBinding="{Binding SiH4, StringFormat=F1}"/> <GridViewColumn DisplayMemberBinding="{Binding SiH4, StringFormat=F1}" Header="SiH2" />
<GridViewColumn Header="C2H4" DisplayMemberBinding="{Binding C2H4, StringFormat=F1}" /> <GridViewColumn DisplayMemberBinding="{Binding C2H4, StringFormat=F1}" Header="C2H4" />
<GridViewColumn Header="TCS" DisplayMemberBinding="{Binding TCS, StringFormat=F1}"/> <GridViewColumn DisplayMemberBinding="{Binding TCS, StringFormat=F1}" Header="TCS" />
<GridViewColumn Header="TMA" DisplayMemberBinding="{Binding TMA, StringFormat=F1}"/> <GridViewColumn DisplayMemberBinding="{Binding TMA, StringFormat=F1}" Header="TMA" />
<GridViewColumn Header="Power(KWH)" DisplayMemberBinding="{Binding HeaterPowerConsumption, StringFormat=F3}"/> <GridViewColumn DisplayMemberBinding="{Binding HeaterPowerConsumption, StringFormat=F3}" Header="Power(KWH)" />
</GridView> </GridView>
</ListView.View> </ListView.View>
</ListView> </ListView>
</Grid> </Grid>
</TabItem> </TabItem>
<TabItem Header="Gas Flow History" FontSize="12"> <TabItem FontSize="12" Header="Gas Flow History">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="280"/> <ColumnDefinition Width="280" />
<ColumnDefinition/> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical" > <StackPanel Orientation="Vertical">
<StackPanel Width="260" Margin="5,5"> <StackPanel Width="260" Margin="5,5">
<StackPanel.Resources> <StackPanel.Resources>
<Style TargetType="xctk:DateTimeUpDown"> <Style TargetType="xctk:DateTimeUpDown">
@ -2072,7 +2078,7 @@
Content="Query"> Content="Query">
<i:Interaction.Triggers> <i:Interaction.Triggers>
<i:EventTrigger EventName="Click"> <i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="Query"/> <micro:ActionMessage MethodName="Query" />
</i:EventTrigger> </i:EventTrigger>
</i:Interaction.Triggers> </i:Interaction.Triggers>
</Button> </Button>
@ -2081,13 +2087,13 @@
</StackPanel> </StackPanel>
<userControls1:BusyIndicator <userControls1:BusyIndicator
Panel.ZIndex="1"
Grid.Column="3" Grid.Column="3"
Width="Auto" Width="Auto"
Height="Auto" Height="Auto"
Padding="20,10" Padding="20,10"
HorizontalAlignment="Center" HorizontalAlignment="Center"
VerticalAlignment="Center" VerticalAlignment="Center"
Panel.ZIndex="1"
Background="{StaticResource Tab_BG}" Background="{StaticResource Tab_BG}"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="3" BorderThickness="3"
@ -2100,26 +2106,34 @@
</i:Interaction.Triggers> </i:Interaction.Triggers>
</userControls1:BusyIndicator> </userControls1:BusyIndicator>
<ListView ItemsSource="{Binding GasFlowSumList}" Grid.Column="3"> <DataGrid
<ListView.Resources> Grid.Column="3"
AlternationCount="2"
AutoGenerateColumns="False"
CanUserAddRows="False"
FontSize="13"
IsReadOnly="True"
ItemsSource="{Binding GasFlowSumList}">
<DataGrid.Columns>
<DataGridTextColumn
Width="78"
Binding="{Binding Name}"
Header="Name" />
<DataGridTextColumn
Width="230"
Binding="{Binding RunVolume, StringFormat=F3}"
Header="Run(m³)" />
<DataGridTextColumn
Width="230"
Binding="{Binding VentVolume, StringFormat=F3}"
Header="Vent(m³)" />
<DataGridTextColumn
Width="300"
Binding="{Binding Volume, StringFormat=F3}"
Header="Total(m³)" />
</DataGrid.Columns>
</ListView.Resources> </DataGrid>
<ListView.View>
<GridView>
<GridViewColumn Width="80" Header="Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Bold" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="230" Header="Run(m³)" DisplayMemberBinding="{Binding RunVolume, StringFormat=F3}" />
<GridViewColumn Width="230" Header="Vent(m³)" DisplayMemberBinding="{Binding VentVolume, StringFormat=F3}" />
<GridViewColumn Width="300" Header="Total(m³)" DisplayMemberBinding="{Binding Volume, StringFormat=F3}" />
</GridView>
</ListView.View>
</ListView>
</Grid> </Grid>

View File

@ -570,7 +570,7 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
} }
var xmlRecipe = CurrentRecipe.GetXmlString(); var xmlRecipe = CurrentRecipe.GetXmlString();
InvokeClient.Instance.Service.DoOperation($"PM1.ReloadRecipe", xmlRecipe); InvokeClient.Instance.Service.DoOperation($"{SystemName}.ReloadRecipe", xmlRecipe);
//InvokeClient.Instance.Service.DoOperation($"PM2.ReloadRecipe"); //InvokeClient.Instance.Service.DoOperation($"PM2.ReloadRecipe");
} }