Merge branch 'develop' into 添加MFC+气阀测试功能

This commit is contained in:
HQQ 2023-06-27 19:10:00 +08:00
commit fc9f6c911e
5 changed files with 86 additions and 92 deletions

View File

@ -658,6 +658,7 @@ namespace SicModules.PMs
//VacIdle //VacIdle
Transition(STATE.Idle, MSG.VacIdle, FsmVacIdle, STATE.ToVacIdle); Transition(STATE.Idle, MSG.VacIdle, FsmVacIdle, STATE.ToVacIdle);
Transition(STATE.VacIdle, MSG.VacIdle, FsmVacIdle, STATE.ToVacIdle);
Transition(STATE.ToVacIdle, FSM_MSG.TIMER, FsmMonitorTask, STATE.VacIdle); Transition(STATE.ToVacIdle, FSM_MSG.TIMER, FsmMonitorTask, STATE.VacIdle);
Transition(STATE.ToVacIdle, MSG.Abort, FsmAbortTask, STATE.Idle); Transition(STATE.ToVacIdle, MSG.Abort, FsmAbortTask, STATE.Idle);

View File

@ -46,6 +46,7 @@ namespace SicModules.PMs.Routines
SetEPV2_1, SetEPV2_1,
SetEPV2_2, SetEPV2_2,
SetEPV2_3,
SetTVEnable_1, SetTVEnable_1,
SetTVEnable_2, SetTVEnable_2,
SetTVPressMode_1, SetTVPressMode_1,
@ -319,7 +320,7 @@ namespace SicModules.PMs.Routines
if (_flag2) if (_flag2)
{ {
//打开EPV2 //打开EPV2
SetIoValueByGroup((int)RoutineStep.SetEPV2_2, IoGroupName.EPV2, true, _IoValueTimeout); SetIoValueByGroup((int)RoutineStep.SetEPV2_3, IoGroupName.EPV2, true, _IoValueTimeout);
//设置蝶阀Enable //设置蝶阀Enable
SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_2, _IoThrottle, 5); SetThrottleEnableAndWait((int)RoutineStep.SetTVEnable_2, _IoThrottle, 5);
@ -664,7 +665,7 @@ namespace SicModules.PMs.Routines
{ {
if (_mfcData.MeanDifferencePressure - _mfcData.MaintainPressureDifference > 0) if (_mfcData.MeanDifferencePressure - _mfcData.MaintainPressureDifference > 0)
{ {
_mfcData.Volume = 100000 * (_mfcData.SetFlow * 0.001 / Vm * R * _mfcData.Temperature) / _mfcData.Volume = 1000000 * (_mfcData.SetFlow * 0.001 / Vm * R * _mfcData.Temperature) /
((_mfcData.MeanDifferencePressure - _mfcData.MaintainPressureDifference) / (_mfcData.Interval / 60.0) / 0.01); ((_mfcData.MeanDifferencePressure - _mfcData.MaintainPressureDifference) / (_mfcData.Interval / 60.0) / 0.01);
//保留2位小数 //保留2位小数
@ -713,7 +714,7 @@ namespace SicModules.PMs.Routines
{ {
if (_mfcData.SetFlow != 0) if (_mfcData.SetFlow != 0)
{ {
_mfcData.ActualFlow = ((_mfcData.MeanDifferencePressure - _mfcData.MaintainPressureDifference) / (0.01 * (_mfcData.Interval / 60.0))) * (_mfcData.Volume / 100000.0 / (R * _mfcData.Temperature)) * Vm; _mfcData.ActualFlow = ((_mfcData.MeanDifferencePressure - _mfcData.MaintainPressureDifference) / (0.01 * (_mfcData.Interval / 60.0))) * (_mfcData.Volume / 1000000.0 / (R * _mfcData.Temperature)) * Vm * 1000;
_mfcData.Deviation = (_mfcData.ActualFlow / _mfcData.SetFlow - 1) * 100; _mfcData.Deviation = (_mfcData.ActualFlow / _mfcData.SetFlow - 1) * 100;
//保留2位小数 //保留2位小数
@ -721,7 +722,7 @@ namespace SicModules.PMs.Routines
_mfcData.Volume = Math.Round(_mfcData.Volume, 2); _mfcData.Volume = Math.Round(_mfcData.Volume, 2);
//大于3%的MFC为超标 //大于3%的MFC为超标
_mfcData.IsOverStandard = Math.Abs(_mfcData.Deviation - 3) > 0; _mfcData.IsOverStandard = Math.Abs(_mfcData.Deviation) - 3 > 0;
_endTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); _endTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");

View File

@ -57,7 +57,7 @@
<ColumnDefinition /> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="280" /> <RowDefinition Height="300" />
<RowDefinition Height="180" /> <RowDefinition Height="180" />
<RowDefinition Height="90" /> <RowDefinition Height="90" />
<RowDefinition Height="*" /> <RowDefinition Height="*" />
@ -111,6 +111,9 @@
<Border> <Border>
<TextBlock Text="MFC设定流量(sccm)" /> <TextBlock Text="MFC设定流量(sccm)" />
</Border> </Border>
<Border>
<TextBlock Text="腔体体积(ml)" />
</Border>
</StackPanel> </StackPanel>
<StackPanel Width="120" HorizontalAlignment="Left"> <StackPanel Width="120" HorizontalAlignment="Left">
@ -177,6 +180,13 @@
Text="{Binding StandardMfcRorData.SetFlow, StringFormat=0.00}" Text="{Binding StandardMfcRorData.SetFlow, StringFormat=0.00}"
TextAlignment="Center" /> TextAlignment="Center" />
</Border> </Border>
<Border Background="#FFD6D6D6" Style="{StaticResource InfBorder}">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{Binding StandardMfcRorData.Volume, StringFormat=0.00}"
TextAlignment="Center" />
</Border>
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
@ -378,7 +388,7 @@
<DataGrid <DataGrid
Grid.RowSpan="3" Grid.RowSpan="3"
Grid.Column="1" Grid.Column="1"
Width="1393" Width="1293"
HorizontalAlignment="Left" HorizontalAlignment="Left"
AlternationCount="2" AlternationCount="2"
AutoGenerateColumns="False" AutoGenerateColumns="False"
@ -410,12 +420,6 @@
Header="结束时间" Header="结束时间"
IsReadOnly="True" /> IsReadOnly="True" />
<DataGridTextColumn
Width="100"
Binding="{Binding MaintainPressureDifference, StringFormat=0.00}"
Header="腔体压差"
IsReadOnly="True" />
<DataGridTextColumn <DataGridTextColumn
Width="100" Width="100"
Binding="{Binding Pressure1, StringFormat=0.00}" Binding="{Binding Pressure1, StringFormat=0.00}"

View File

@ -79,8 +79,6 @@ namespace SicUI.Models.PMs
//MFC默认的设定流量为量程的一半 //MFC默认的设定流量为量程的一半
SelectedMfcRorData.SetFlow = SelectedMfcRorData.Scale / 2.0; SelectedMfcRorData.SetFlow = SelectedMfcRorData.Scale / 2.0;
SelectedMfcRorData.ActualFlow = SelectedMfcRorData.SetFlow;
SelectedMfcRorData.BasePressure = 400; SelectedMfcRorData.BasePressure = 400;
SelectedMfcRorData.Volume = StandardMfcRorData != null ? StandardMfcRorData.Volume : 0; SelectedMfcRorData.Volume = StandardMfcRorData != null ? StandardMfcRorData.Volume : 0;
@ -98,6 +96,11 @@ namespace SicUI.Models.PMs
return; return;
} }
if(SelectedMfcRorData.IsStandardMfc)
{
SelectedMfcRorData.ActualFlow = SelectedMfcRorData.SetFlow;
}
InvokeClient.Instance.Service.DoOperation($"{SystemName}.MfcRor", JsonConvert.SerializeObject(SelectedMfcRorData)); InvokeClient.Instance.Service.DoOperation($"{SystemName}.MfcRor", JsonConvert.SerializeObject(SelectedMfcRorData));
} }

View File

@ -14,9 +14,9 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:pm="clr-namespace:SicUI.Models.PMs" xmlns:pm="clr-namespace:SicUI.Models.PMs"
xmlns:system="clr-namespace:System;assembly=mscorlib" xmlns:system="clr-namespace:System;assembly=mscorlib"
d:Background="#91b0cd"
d:DesignHeight="780" d:DesignHeight="780"
d:DesignWidth="1920" d:DesignWidth="1920"
d:Background="#91b0cd"
mc:Ignorable="d"> mc:Ignorable="d">
<UserControl.Resources> <UserControl.Resources>
<pm:InverseBoolConverter x:Key="InverseBoolConverter" /> <pm:InverseBoolConverter x:Key="InverseBoolConverter" />
@ -67,77 +67,77 @@
<Color x:Key="EdgeColorLightGreen">#00ae9d</Color> <Color x:Key="EdgeColorLightGreen">#00ae9d</Color>
<Style x:Key="WaterTempBackground" TargetType="Border"> <Style x:Key="WaterTempBackground" TargetType="Border">
<Setter Property="BorderBrush" Value="{DynamicResource Table_BD}"/> <Setter Property="BorderBrush" Value="{DynamicResource Table_BD}" />
<Setter Property="BorderThickness" Value="0,0,1,1"/> <Setter Property="BorderThickness" Value="0,0,1,1" />
<Setter Property="Padding" Value="5,1"/> <Setter Property="Padding" Value="5,1" />
<Setter Property="ToolTip.Content" Value="{Binding AlarmHigh}"/> <Setter Property="ToolTip.Content" Value="{Binding AlarmHigh}" />
<Style.Triggers> <Style.Triggers>
<MultiDataTrigger> <MultiDataTrigger>
<MultiDataTrigger.Conditions> <MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsWarning}" Value="false"/> <Condition Binding="{Binding IsWarning}" Value="false" />
<Condition Binding="{Binding IsAlarm}" Value="false"/> <Condition Binding="{Binding IsAlarm}" Value="false" />
</MultiDataTrigger.Conditions> </MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Transparent"/> <Setter Property="Background" Value="Transparent" />
</MultiDataTrigger> </MultiDataTrigger>
<MultiDataTrigger> <MultiDataTrigger>
<MultiDataTrigger.Conditions> <MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsWarning}" Value="true"/> <Condition Binding="{Binding IsWarning}" Value="true" />
<Condition Binding="{Binding IsAlarm}" Value="false"/> <Condition Binding="{Binding IsAlarm}" Value="false" />
</MultiDataTrigger.Conditions> </MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#f4b575"/> <Setter Property="Background" Value="#f4b575" />
</MultiDataTrigger> </MultiDataTrigger>
<MultiDataTrigger> <MultiDataTrigger>
<MultiDataTrigger.Conditions> <MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsWarning}" Value="False"/> <Condition Binding="{Binding IsWarning}" Value="False" />
<Condition Binding="{Binding IsAlarm}" Value="True"/> <Condition Binding="{Binding IsAlarm}" Value="True" />
</MultiDataTrigger.Conditions> </MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#f49f9f"/> <Setter Property="Background" Value="#f49f9f" />
</MultiDataTrigger> </MultiDataTrigger>
<MultiDataTrigger> <MultiDataTrigger>
<MultiDataTrigger.Conditions> <MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsWarning}" Value="True"/> <Condition Binding="{Binding IsWarning}" Value="True" />
<Condition Binding="{Binding IsAlarm}" Value="True"/> <Condition Binding="{Binding IsAlarm}" Value="True" />
</MultiDataTrigger.Conditions> </MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#f49f9f"/> <Setter Property="Background" Value="#f49f9f" />
</MultiDataTrigger> </MultiDataTrigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>
<Style x:Key="WaterTempForeground" TargetType="TextBlock"> <Style x:Key="WaterTempForeground" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center"/> <Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontFamily" Value="Arial"/> <Setter Property="FontFamily" Value="Arial" />
<Setter Property="FontSize" Value="14"/> <Setter Property="FontSize" Value="14" />
<Setter Property="TextWrapping" Value="Wrap"/> <Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="Text" Value="{Binding Value, StringFormat=0.00}"/> <Setter Property="Text" Value="{Binding Value, StringFormat=0.00}" />
<Style.Triggers> <Style.Triggers>
<MultiDataTrigger> <MultiDataTrigger>
<MultiDataTrigger.Conditions> <MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsWarning}" Value="false"/> <Condition Binding="{Binding IsWarning}" Value="false" />
<Condition Binding="{Binding IsAlarm}" Value="false"/> <Condition Binding="{Binding IsAlarm}" Value="false" />
</MultiDataTrigger.Conditions> </MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="{DynamicResource FG_Black}"/> <Setter Property="Foreground" Value="{DynamicResource FG_Black}" />
</MultiDataTrigger> </MultiDataTrigger>
<MultiDataTrigger> <MultiDataTrigger>
<MultiDataTrigger.Conditions> <MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsWarning}" Value="true"/> <Condition Binding="{Binding IsWarning}" Value="true" />
<Condition Binding="{Binding IsAlarm}" Value="false"/> <Condition Binding="{Binding IsAlarm}" Value="false" />
</MultiDataTrigger.Conditions> </MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="#e66e2e"/> <Setter Property="Foreground" Value="#e66e2e" />
</MultiDataTrigger> </MultiDataTrigger>
<MultiDataTrigger> <MultiDataTrigger>
<MultiDataTrigger.Conditions> <MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsWarning}" Value="False"/> <Condition Binding="{Binding IsWarning}" Value="False" />
<Condition Binding="{Binding IsAlarm}" Value="True"/> <Condition Binding="{Binding IsAlarm}" Value="True" />
</MultiDataTrigger.Conditions> </MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="#ff0f0f"/> <Setter Property="Foreground" Value="#ff0f0f" />
</MultiDataTrigger> </MultiDataTrigger>
<MultiDataTrigger> <MultiDataTrigger>
<MultiDataTrigger.Conditions> <MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsWarning}" Value="True"/> <Condition Binding="{Binding IsWarning}" Value="True" />
<Condition Binding="{Binding IsAlarm}" Value="True"/> <Condition Binding="{Binding IsAlarm}" Value="True" />
</MultiDataTrigger.Conditions> </MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="#ff0f0f"/> <Setter Property="Foreground" Value="#ff0f0f" />
</MultiDataTrigger> </MultiDataTrigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>
@ -1240,9 +1240,7 @@
</Grid> </Grid>
</TabItem> </TabItem>
<TabItem Header="Cooling Water"> <TabItem Header="Cooling Water">
<TabControl <TabControl Margin="0,0,0,0" Background="Transparent">
Margin="0,0,0,0"
Background="Transparent">
<TabItem <TabItem
FontFamily="Arial" FontFamily="Arial"
FontSize="12" FontSize="12"
@ -1353,8 +1351,7 @@
Grid.Column="3" Grid.Column="3"
DataContext="{Binding SHFlowTemp}" DataContext="{Binding SHFlowTemp}"
Style="{StaticResource WaterTempBackground}"> Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
<Border <Border
Grid.Row="2" Grid.Row="2"
@ -1392,8 +1389,7 @@
Grid.Column="3" Grid.Column="3"
DataContext="{Binding ChamberTopFlowTemp}" DataContext="{Binding ChamberTopFlowTemp}"
Style="{StaticResource WaterTempBackground}"> Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}"/>
</Border> </Border>
@ -1434,9 +1430,8 @@
Grid.Row="3" Grid.Row="3"
Grid.Column="3" Grid.Column="3"
DataContext="{Binding ChamberMid1FlowTemp}" DataContext="{Binding ChamberMid1FlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
@ -1474,9 +1469,8 @@
Grid.Row="4" Grid.Row="4"
Grid.Column="3" Grid.Column="3"
DataContext="{Binding ChamberMid2FlowTemp}" DataContext="{Binding ChamberMid2FlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
@ -1514,9 +1508,8 @@
Grid.Row="5" Grid.Row="5"
Grid.Column="3" Grid.Column="3"
DataContext="{Binding ChamberBottomFlowTemp}" DataContext="{Binding ChamberBottomFlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
<Border <Border
@ -1553,9 +1546,8 @@
Grid.Row="6" Grid.Row="6"
Grid.Column="3" Grid.Column="3"
DataContext="{Binding ChamberBottomPlateTemp}" DataContext="{Binding ChamberBottomPlateTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
<Border <Border
@ -1592,9 +1584,8 @@
Grid.Row="7" Grid.Row="7"
Grid.Column="3" Grid.Column="3"
DataContext="{Binding PowerRod1FlowTemp}" DataContext="{Binding PowerRod1FlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
</Grid> </Grid>
</TabItem> </TabItem>
@ -1704,8 +1695,7 @@
Grid.Column="2" Grid.Column="2"
DataContext="{Binding PowerRod2FlowTemp}" DataContext="{Binding PowerRod2FlowTemp}"
Style="{StaticResource WaterTempBackground}"> Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}"/>
</Border> </Border>
<Border <Border
Grid.Row="2" Grid.Row="2"
@ -1740,9 +1730,8 @@
Grid.Row="2" Grid.Row="2"
Grid.Column="2" Grid.Column="2"
DataContext="{Binding ForelineFlowTemp}" DataContext="{Binding ForelineFlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
@ -1779,9 +1768,8 @@
Grid.Row="3" Grid.Row="3"
Grid.Column="2" Grid.Column="2"
DataContext="{Binding ElectrodeWFlowTemp}" DataContext="{Binding ElectrodeWFlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
@ -1817,9 +1805,8 @@
Grid.Row="4" Grid.Row="4"
Grid.Column="2" Grid.Column="2"
DataContext="{Binding TMPumpFlowTemp}" DataContext="{Binding TMPumpFlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
@ -1856,9 +1843,8 @@
Grid.Row="5" Grid.Row="5"
Grid.Column="2" Grid.Column="2"
DataContext="{Binding TMTopLidFlowTemp}" DataContext="{Binding TMTopLidFlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
<Border <Border
@ -1893,8 +1879,8 @@
Grid.Row="6" Grid.Row="6"
Grid.Column="2" Grid.Column="2"
DataContext="{Binding SpareTemp}" DataContext="{Binding SpareTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock Style="{StaticResource WaterTempForeground}"/> <TextBlock Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
<Border <Border
@ -1930,9 +1916,8 @@
Grid.Row="7" Grid.Row="7"
Grid.Column="2" Grid.Column="2"
DataContext="{Binding TransformerFlowTemp}" DataContext="{Binding TransformerFlowTemp}"
Style="{StaticResource WaterTempBackground}" > Style="{StaticResource WaterTempBackground}">
<TextBlock <TextBlock Style="{StaticResource WaterTempForeground}" />
Style="{StaticResource WaterTempForeground}" />
</Border> </Border>
</Grid> </Grid>
</TabItem> </TabItem>