parent
177bbe38ad
commit
f123d982f9
|
@ -18,11 +18,15 @@ namespace MECF.Framework.Common.Aitex.Core.Common.DeviceData
|
|||
/// <summary>
|
||||
/// 气体名称
|
||||
/// </summary>
|
||||
[DataMember]
|
||||
public string Name { get; set; }
|
||||
|
||||
|
||||
private double _runVolume;
|
||||
/// <summary>
|
||||
/// Run使用的体积
|
||||
/// </summary>
|
||||
[DataMember]
|
||||
public double RunVolume
|
||||
{
|
||||
get { return _runVolume; }
|
||||
|
@ -32,10 +36,13 @@ namespace MECF.Framework.Common.Aitex.Core.Common.DeviceData
|
|||
Volume = _runVolume + _ventVolume;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private double _ventVolume;
|
||||
/// <summary>
|
||||
/// Vent使用的体积
|
||||
/// </summary>
|
||||
[DataMember]
|
||||
public double VentVolume
|
||||
{
|
||||
get { return _ventVolume; }
|
||||
|
@ -45,9 +52,12 @@ namespace MECF.Framework.Common.Aitex.Core.Common.DeviceData
|
|||
Volume = _runVolume + _ventVolume;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 气体用量总和
|
||||
/// </summary>
|
||||
[DataMember]
|
||||
public double Volume { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MECF.Framework.Common.Aitex.Core.Common.DeviceData
|
||||
{
|
||||
/// <summary>
|
||||
/// 气体流量实体对象
|
||||
/// </summary>
|
||||
public class GasUseData
|
||||
{
|
||||
/// <summary>
|
||||
/// 气体名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
private double _runVolume;
|
||||
/// <summary>
|
||||
/// 气体Run的用量
|
||||
/// </summary>
|
||||
public double RunVolume
|
||||
{
|
||||
get { return _runVolume; }
|
||||
set
|
||||
{
|
||||
_runVolume = value;
|
||||
Volume = _runVolume + _ventVolume;
|
||||
}
|
||||
}
|
||||
private double _ventVolume;
|
||||
/// <summary>
|
||||
/// 气体Vent用量
|
||||
/// </summary>
|
||||
public double VentVolume
|
||||
{
|
||||
get { return _ventVolume; }
|
||||
set
|
||||
{
|
||||
_ventVolume = value;
|
||||
Volume = _runVolume + _ventVolume;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 气体用量总和
|
||||
/// </summary>
|
||||
public double Volume { get; set; }
|
||||
}
|
||||
}
|
|
@ -239,7 +239,6 @@
|
|||
<Compile Include="Aitex\Core\Common\DeviceData\EnumRfPowerWorkMode.cs" />
|
||||
<Compile Include="Aitex\Core\Common\DeviceData\FlowMeterAlarmItem.cs" />
|
||||
<Compile Include="Aitex\Core\Common\DeviceData\GasFlowSum.cs" />
|
||||
<Compile Include="Aitex\Core\Common\DeviceData\GasUseData.cs" />
|
||||
<Compile Include="Aitex\Core\Common\DeviceData\IDeviceData.cs" />
|
||||
<Compile Include="Aitex\Core\Common\DeviceData\IoDevice\ExchangeDataBase.cs" />
|
||||
<Compile Include="Aitex\Core\Common\DeviceData\IoDevice\IoAirGripperExchangeData.cs" />
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
||||
{
|
||||
internal class Class1
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,11 +1,15 @@
|
|||
using Aitex.Core.RT.DataCenter;
|
||||
using Aitex.Core.RT.OperationCenter;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using Aitex.Core.Util;
|
||||
using MECF.Framework.Common.Aitex.Core.Common.DeviceData;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
@ -22,28 +26,45 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||
|
||||
public string ModuleName { get; set; }
|
||||
|
||||
public List<string> GasNameList { get; set; }
|
||||
|
||||
public List<GasFlowSum> GasFlowSumList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 初始化单个气体,设置模块名称和对应气体的流量系数,注册界面要显示的数值
|
||||
/// </summary>
|
||||
/// <param name="moduleName"></param>
|
||||
private DateTime start;
|
||||
private DateTime end;
|
||||
|
||||
public void Initialize(string moduleName)
|
||||
{
|
||||
IniGasUnit(moduleName);
|
||||
|
||||
DATA.Subscribe($"{ModuleName}.PMGasNameList", () => GasNameList);
|
||||
DATA.Subscribe($"{ModuleName}.PMGasFlowSumList", () => GasFlowSumList);
|
||||
|
||||
OP.Subscribe($"{ModuleName}.GasFlowSum.Query", (string cmd, object[] args) => Query(args));
|
||||
|
||||
var _thread = new PeriodicJob(1000, OnTimer, $"{moduleName}.ModuleGsaFlow", true);
|
||||
}
|
||||
|
||||
private bool OnTimer()
|
||||
{
|
||||
foreach (var Unit in GasFlowUnitList)
|
||||
{
|
||||
Unit.GetGasFlowFeedBack();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化单个气体和界面气体统计对象
|
||||
/// </summary>
|
||||
/// <param name="moduleName"></param>
|
||||
private void IniGasUnit(string moduleName)
|
||||
{
|
||||
ModuleName = moduleName;
|
||||
|
||||
GasFlowSumList = new();
|
||||
|
||||
List<string> moduleNameList = new();
|
||||
GasNameList = new();
|
||||
|
||||
//单中气体初始化
|
||||
foreach (var unit in GasFlowUnitList)
|
||||
|
@ -60,23 +81,68 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||
gasName = unit.GasName.Replace("_Vent", "");
|
||||
}
|
||||
|
||||
if (!moduleNameList.Contains(gasName))
|
||||
moduleNameList.Add(gasName);
|
||||
if (!GasNameList.Contains(gasName))
|
||||
GasNameList.Add(gasName);
|
||||
}
|
||||
|
||||
foreach (var name in moduleNameList)
|
||||
foreach (var name in GasNameList)
|
||||
{
|
||||
GasFlowSumList.Add(new GasFlowSum() { Name = name });
|
||||
}
|
||||
}
|
||||
private bool OnTimer()
|
||||
|
||||
/// <summary>
|
||||
/// 气体体积使用查询
|
||||
/// </summary>
|
||||
/// <param name="objects"></param>
|
||||
/// <returns></returns>
|
||||
private bool Query(object[] objects)
|
||||
{
|
||||
foreach (var Unit in GasFlowUnitList)
|
||||
Task.Run(() =>
|
||||
{
|
||||
Unit.GetGasFlowFeedBack();
|
||||
}
|
||||
string flowName = objects[0].ToString();
|
||||
start = Convert.ToDateTime(objects[1]);
|
||||
end = Convert.ToDateTime(objects[2]);
|
||||
|
||||
if (flowName == "All")
|
||||
{
|
||||
foreach (var item in GasFlowSumList)
|
||||
{
|
||||
QueryRunVentVolume(item.Name + "_Run");
|
||||
QueryRunVentVolume(item.Name + "_Vent");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
QueryRunVentVolume(flowName + "_Run");
|
||||
QueryRunVentVolume(flowName + "_Vent");
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
private void QueryRunVentVolume(string flowName)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
double values = GasFlowSqlHelp.Query(ModuleName, "GasRealTimeFlow." + flowName, start, end);
|
||||
foreach (var item in GasFlowSumList)
|
||||
{
|
||||
if (flowName.Contains(item.Name))
|
||||
{
|
||||
if (flowName.Contains("Run"))
|
||||
item.RunVolume = values * 1.66667 * Math.Pow(10, -7);
|
||||
else
|
||||
item.VentVolume = values * 1.66667 * Math.Pow(10, -7);
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -178,7 +178,6 @@
|
|||
<Compile Include="HardwareUnits\FFUs\AAF\FfuAAFHandler.cs" />
|
||||
<Compile Include="HardwareUnits\FFUs\DW254Pressure\DWConnection.cs" />
|
||||
<Compile Include="HardwareUnits\FFUs\DW254Pressure\DWPressure.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\Class1.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\ControlNameValue.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\PMGsaTrueTableLoad.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\GasFlowSqlHelp.cs" />
|
||||
|
|
|
@ -2143,8 +2143,8 @@
|
|||
Width="100"
|
||||
Height="30"
|
||||
Margin="25,10"
|
||||
ItemsSource="{Binding FlowNameList}"
|
||||
SelectedItem="{Binding FlowName}">
|
||||
ItemsSource="{Binding GasNameList}"
|
||||
SelectedItem="{Binding SelectGasName}">
|
||||
</ComboBox>
|
||||
<Button
|
||||
Width="100"
|
||||
|
@ -2163,7 +2163,7 @@
|
|||
</StackPanel>
|
||||
|
||||
|
||||
<ListView Grid.Column="1" ItemsSource="{Binding DataFlowList}" >
|
||||
<ListView Grid.Column="1" ItemsSource="{Binding GasFlowSumList}" >
|
||||
<ListView.View>
|
||||
<GridView>
|
||||
<GridViewColumn Width="80" Header="名称">
|
||||
|
|
|
@ -1539,17 +1539,6 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
|
|||
public bool IsTMARunMode => V41.IsOpen && !V42.IsOpen;
|
||||
|
||||
|
||||
private List<GasFlowSum> _gasFlowSumList;
|
||||
[Subscription("PMGasFlowSumList")]
|
||||
public List<GasFlowSum> GasFlowSumList
|
||||
{
|
||||
get => _gasFlowSumList;
|
||||
set
|
||||
{
|
||||
if (_gasFlowSumList != value)
|
||||
_gasFlowSumList=value;
|
||||
}
|
||||
}
|
||||
|
||||
[Subscription("GasRealTimeFlow.Ar_Run.FeedBack")]
|
||||
public double ArFlow_Run { get; set; }
|
||||
|
@ -1653,38 +1642,35 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
|
|||
}
|
||||
}
|
||||
|
||||
private string _mfcManagerDataFlow;
|
||||
|
||||
[Subscription("MfcManager.DataFlow")]
|
||||
public string MfcManagerDataFlow
|
||||
private List<string> _gasNameList;
|
||||
[Subscription("PMGasNameList")]
|
||||
public List<string> GasNameList
|
||||
{
|
||||
get => _mfcManagerDataFlow;
|
||||
get => _gasNameList;
|
||||
set
|
||||
{
|
||||
if (_mfcManagerDataFlow != value && value != null)
|
||||
{
|
||||
DataFlowList = JsonConvert.DeserializeObject<List<DataFlow>>(value);
|
||||
}
|
||||
|
||||
_mfcManagerDataFlow = value;
|
||||
if (_gasNameList != value)
|
||||
_gasNameList = value;
|
||||
}
|
||||
}
|
||||
|
||||
public List<DataFlow> DataFlowList { get; set; }
|
||||
|
||||
public List<string> FlowNameList { get; set; } = new List<string>()
|
||||
|
||||
|
||||
|
||||
|
||||
private List<GasFlowSum> _gasFlowSumList;
|
||||
[Subscription("PMGasFlowSumList")]
|
||||
public List<GasFlowSum> GasFlowSumList
|
||||
{
|
||||
"All",
|
||||
"Ar",
|
||||
"H2",
|
||||
"C2H4",
|
||||
"SiH4",
|
||||
"HCL",
|
||||
"PN2",
|
||||
"TCS",
|
||||
"TMA"
|
||||
};
|
||||
public string FlowName { get; set; }
|
||||
get => _gasFlowSumList;
|
||||
set
|
||||
{
|
||||
if (_gasFlowSumList != value)
|
||||
_gasFlowSumList = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SelectGasName { get; set; }
|
||||
|
||||
private string CacheName;
|
||||
private DateTime CacheStartDateTime;
|
||||
|
@ -1692,12 +1678,12 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
|
|||
|
||||
public void Query()
|
||||
{
|
||||
if (FlowName is null)
|
||||
if (SelectGasName is null)
|
||||
{
|
||||
MessageBox.Show("查询名称为空");
|
||||
return;
|
||||
}
|
||||
if (CacheStartDateTime== StartDateTime && CacheEndDateTime == EndDateTime && CacheName == FlowName)
|
||||
if (CacheStartDateTime== StartDateTime && CacheEndDateTime == EndDateTime && CacheName == SelectGasName)
|
||||
{
|
||||
MessageBox.Show("重复查询");
|
||||
return;
|
||||
|
@ -1709,10 +1695,10 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
|
|||
MessageBoxImage.Error);
|
||||
return;
|
||||
}
|
||||
InvokeClient.Instance.Service.DoOperation($"{SystemName}.FlowName.Query", new object[] { FlowName, StartDateTime, EndDateTime });
|
||||
InvokeClient.Instance.Service.DoOperation($"{SystemName}.GasFlowSum.Query", new object[] { SelectGasName, StartDateTime, EndDateTime });
|
||||
CacheStartDateTime = StartDateTime;
|
||||
CacheEndDateTime = EndDateTime;
|
||||
CacheName = FlowName;
|
||||
CacheName = SelectGasName;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -99,7 +99,6 @@ Global
|
|||
{F619C5AD-D0D9-4758-A85E-D747156709E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F619C5AD-D0D9-4758-A85E-D747156709E6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{290FE38F-45F9-408C-B25B-C899B467E3F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{290FE38F-45F9-408C-B25B-C899B467E3F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{290FE38F-45F9-408C-B25B-C899B467E3F8}.DebugWithoutCopy|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{290FE38F-45F9-408C-B25B-C899B467E3F8}.DebugWithoutCopy|Any CPU.Build.0 = Debug|Any CPU
|
||||
{290FE38F-45F9-408C-B25B-C899B467E3F8}.DebugWithoutCopyFiles|Any CPU.ActiveCfg = DebugWithoutCopyFiles|Any CPU
|
||||
|
|
Loading…
Reference in New Issue