气体用量统计对象,添加标记
[UI.Client]
添加气体查询对象和下拉框对象
This commit is contained in:
HQQ 2023-07-16 21:26:41 +08:00
parent 177bbe38ad
commit f123d982f9
9 changed files with 117 additions and 119 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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="名称">

View File

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

View File

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