parent
2c233cb563
commit
c7484c5668
|
@ -1,24 +1,18 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
||||
{
|
||||
/// <summary>
|
||||
/// 真值表单元格对应的配置内容信息
|
||||
/// </summary>
|
||||
public class ControlNameValue
|
||||
[XmlType(typeName: "ControlNameValue")]
|
||||
public partial class ControlNameValue
|
||||
{
|
||||
[XmlAttribute(AttributeName = "Name")]
|
||||
|
||||
[XmlAttribute()]
|
||||
public string Name { get; set; }
|
||||
|
||||
[XmlAttribute(AttributeName = "Value")]
|
||||
public double Value { get; set; }
|
||||
[XmlAttribute()]
|
||||
public byte Value { get; set; }
|
||||
|
||||
[XmlAttribute(AttributeName = "ControlName")]
|
||||
[XmlAttribute()]
|
||||
public string ControlName { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,12 +2,14 @@
|
|||
using Aitex.Core.RT.OperationCenter;
|
||||
using Aitex.Core.Util;
|
||||
using MECF.Framework.Common.Device.Bases;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml.Serialization;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
|
@ -15,7 +17,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||
{
|
||||
public class GasFlowManager : Singleton<GasFlowManager>
|
||||
{
|
||||
ModuleGsaFlow123 PM1GsaFlow { get; set; }
|
||||
ModuleGsaFlow PM1GsaFlow { get; set; }
|
||||
|
||||
public GasFlowManager()
|
||||
{
|
||||
|
@ -23,48 +25,21 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||
}
|
||||
public void Initialize()
|
||||
{
|
||||
PM1GsaFlow = CustomXmlSerializer.Deserialize<ModuleGsaFlow>(new FileInfo($"Config\\PM\\PM1\\RealtimeGasFlow.xml"));
|
||||
|
||||
//PM1GsaFlow = new ModuleGsaFlow123();
|
||||
DATA.Subscribe($"\"PM1\".GasFlowManagerTest", () => PM1GsaFlow.GasFlowUnitLise);
|
||||
|
||||
|
||||
//ControlNameValue controlNameValue = new ControlNameValue();
|
||||
//controlNameValue.Name = "1";
|
||||
//controlNameValue.Value = 2;
|
||||
//controlNameValue.ControlName = "123";
|
||||
|
||||
//RealtimeGasFlowTrueTableRow realtimeGasFlowTrueTableRow = new RealtimeGasFlowTrueTableRow();
|
||||
//realtimeGasFlowTrueTableRow.InputList.Add(controlNameValue);
|
||||
//realtimeGasFlowTrueTableRow.InputList.Add(controlNameValue);
|
||||
//realtimeGasFlowTrueTableRow.OutputList.Add(controlNameValue);
|
||||
|
||||
//GasFlowUnit gasFlowUnit = new GasFlowUnit();
|
||||
//gasFlowUnit.GasName = "SiH4";
|
||||
//gasFlowUnit.GasFlowRatioName = "Test";
|
||||
//gasFlowUnit.GasTrueTableRowList.Add(realtimeGasFlowTrueTableRow);
|
||||
//gasFlowUnit.GasTrueTableRowList.Add(realtimeGasFlowTrueTableRow);
|
||||
//gasFlowUnit.GasTrueTableRowList.Add(realtimeGasFlowTrueTableRow);
|
||||
|
||||
|
||||
//PM1GsaFlow.GasFlowUnitList = new List<GasFlowUnit>
|
||||
//{
|
||||
// gasFlowUnit,
|
||||
// gasFlowUnit
|
||||
//};
|
||||
|
||||
|
||||
//XmlSerializer xml = new XmlSerializer(typeof(ModuleGsaFlow123));
|
||||
//System.IO.Stream stream = new System.IO.FileStream(" sutudents.xml", System.IO.FileMode.OpenOrCreate);
|
||||
//xml.Serialize(stream, PM1GsaFlow);
|
||||
|
||||
ModuleGsaFlow m= DeserializeFromXml<ModuleGsaFlow>($"Config\\PM\\RealtimeGasFlow\\Test.xml");
|
||||
|
||||
PM1GsaFlow = CustomXmlSerializer.Deserialize<ModuleGsaFlow123>(new FileInfo($"Config\\PM\\RealtimeGasFlow\\Test.xml"));
|
||||
PM1GsaFlow.SetModuleName("PM1");
|
||||
|
||||
DATA.Subscribe("GasFlowManagerTest", () => GasFlowManagerTest());
|
||||
OP.Subscribe("GasFlowManager.QueryUpdate", (string cmd, object[] args) => QueryUpdate());
|
||||
}
|
||||
|
||||
private void IniPM(string pmName)
|
||||
{
|
||||
ModuleGsaFlow moduleGsaFlow = CustomXmlSerializer.Deserialize<ModuleGsaFlow>(new FileInfo($"Config\\PM\\{pmName}\\RealtimeGasFlow.xml"));
|
||||
|
||||
DATA.Subscribe($"{pmName}.GasFlowManagerTest", () => moduleGsaFlow.GasFlowUnitLise);
|
||||
}
|
||||
|
||||
public T DeserializeFromXml<T>(string filePath)
|
||||
{
|
||||
try
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
|
@ -11,29 +12,19 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||
/// <summary>
|
||||
/// 单个气体对象的真值表数据,所有配置行数据集合,气体需要的属性数据
|
||||
/// </summary>
|
||||
[XmlType(typeName: "GasFlowUnit")]
|
||||
public class GasFlowUnit
|
||||
{
|
||||
|
||||
[XmlElement("GasTrueTableRows")]
|
||||
public List<GasTrueTableRows> GasTrueTableRowList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 气体名称
|
||||
/// </summary>
|
||||
[XmlAttribute(AttributeName = "GasName")]
|
||||
[XmlAttribute()]
|
||||
public string GasName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 系统配置文件中气体系数名称,根据此名称来获取对应的配置数据
|
||||
/// </summary>
|
||||
[XmlAttribute(AttributeName = "GasFlowRatioName")]
|
||||
[XmlAttribute()]
|
||||
public string GasFlowRatioName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 一种气体对应的所有行数据集合
|
||||
/// </summary>
|
||||
[XmlArrayItem("GasTrueTableRowList")]
|
||||
public List<RealtimeGasFlowTrueTableRow> GasTrueTableRowList { get; set; } = new List<RealtimeGasFlowTrueTableRow>();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 系统中配置的气体流量系数
|
||||
/// </summary>
|
||||
|
|
|
@ -13,15 +13,17 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||
/// <summary>
|
||||
/// 单行真值表对应的逻辑对象,主要执行逻辑就在这里
|
||||
/// </summary>
|
||||
public class RealtimeGasFlowTrueTableRow
|
||||
[XmlType(typeName: "GasTrueTableRows")]
|
||||
public partial class GasTrueTableRows
|
||||
{
|
||||
[XmlArray("InputList")]
|
||||
[XmlArrayItem("ControlNameValue")]
|
||||
public List<ControlNameValue> InputList { get; set; } = new List<ControlNameValue>();
|
||||
|
||||
[XmlArray("OutputList")]
|
||||
[XmlArrayItem("ControlNameValue")]
|
||||
public List<ControlNameValue> OutputList { get; set; } = new List<ControlNameValue>();
|
||||
[XmlArray("Inputs")]
|
||||
public List<ControlNameValue> InputList { get; set; }
|
||||
|
||||
[XmlArray("Outputs")]
|
||||
public List<ControlNameValue> OutputList { get; set; }
|
||||
|
||||
|
||||
private bool IsCanOut(string module)
|
||||
{
|
||||
//有一个集合为空,不用循环
|
|
@ -1,31 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
||||
{
|
||||
public class GasUnitData
|
||||
{
|
||||
/// <summary>
|
||||
/// 气体名称
|
||||
/// </summary>
|
||||
[XmlAttribute(AttributeName = "GasName")]
|
||||
public string GasName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 系统配置文件中气体系数名称,根据此名称来获取对应的配置数据
|
||||
/// </summary>
|
||||
[XmlAttribute(AttributeName = "GasFlowRatioName")]
|
||||
public string GasFlowRatioName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 一种气体对应的所有行数据集合
|
||||
/// </summary>
|
||||
[XmlArray("GasTrueTableRowList")]
|
||||
[XmlArrayItem("RealtimeGasFlowTrueTableRow")]
|
||||
public List<RealtimeGasFlowTrueTableRow> RealtimeGasFlowTrueTableRows { get; set; } = new List<RealtimeGasFlowTrueTableRow>();
|
||||
}
|
||||
}
|
|
@ -1,231 +1,39 @@
|
|||
using System;
|
||||
using Aitex.Core.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
||||
{
|
||||
public class ModuleGsaFlow
|
||||
{
|
||||
[XmlAttribute()]
|
||||
public string ModuleName { get; set; }
|
||||
|
||||
// 注意: 生成的代码可能至少需要 .NET Framework 4.5 或 .NET Core/Standard 2.0。
|
||||
/// <remarks/>
|
||||
public partial class ModuleGsaFlow
|
||||
{
|
||||
[XmlElement("GasFlowUnit")]
|
||||
public List<GasFlowUnit> GasFlowUnitLise { get; set; }
|
||||
|
||||
[System.Xml.Serialization.XmlElement("GasFlowUnit")]
|
||||
public List<GasFlowUnit> GasFlowUnit { get; set; }
|
||||
}
|
||||
private PeriodicJob _thread;
|
||||
|
||||
[System.Xml.Serialization.XmlTypeAttribute(typeName: "GasFlowUnit")]
|
||||
public partial class FGasFlowUnit
|
||||
private void IniPMGas()
|
||||
{
|
||||
|
||||
private ModuleGsaFlowGasFlowUnitGasTrueTableRows[] gasTrueTableRowsField;
|
||||
|
||||
private string gasNameField;
|
||||
|
||||
private string gasFlowRatioNameField;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("GasTrueTableRows")]
|
||||
public ModuleGsaFlowGasFlowUnitGasTrueTableRows[] GasTrueTableRows
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.gasTrueTableRowsField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.gasTrueTableRowsField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string GasName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.gasNameField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.gasNameField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string GasFlowRatioName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.gasFlowRatioNameField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.gasFlowRatioNameField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public partial class ModuleGsaFlowGasFlowUnitGasTrueTableRows
|
||||
{
|
||||
|
||||
private ModuleGsaFlowGasFlowUnitGasTrueTableRowsControlNameValue[] inputsField;
|
||||
|
||||
private ModuleGsaFlowGasFlowUnitGasTrueTableRowsOutputs outputsField;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute("ControlNameValue", IsNullable = false)]
|
||||
public ModuleGsaFlowGasFlowUnitGasTrueTableRowsControlNameValue[] Inputs
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.inputsField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.inputsField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public ModuleGsaFlowGasFlowUnitGasTrueTableRowsOutputs Outputs
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.outputsField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.outputsField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public partial class ModuleGsaFlowGasFlowUnitGasTrueTableRowsControlNameValue
|
||||
{
|
||||
|
||||
private string nameField;
|
||||
|
||||
private byte valueField;
|
||||
|
||||
private string controlNameField;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.nameField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.nameField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public byte Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.valueField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.valueField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string ControlName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.controlNameField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.controlNameField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public partial class ModuleGsaFlowGasFlowUnitGasTrueTableRowsOutputs
|
||||
{
|
||||
|
||||
private ModuleGsaFlowGasFlowUnitGasTrueTableRowsOutputsControlNameValue controlNameValueField;
|
||||
|
||||
/// <remarks/>
|
||||
public ModuleGsaFlowGasFlowUnitGasTrueTableRowsOutputsControlNameValue ControlNameValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.controlNameValueField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.controlNameValueField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public partial class ModuleGsaFlowGasFlowUnitGasTrueTableRowsOutputsControlNameValue
|
||||
{
|
||||
|
||||
private string nameField;
|
||||
|
||||
private byte valueField;
|
||||
|
||||
private string controlNameField;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.nameField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.nameField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public byte Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.valueField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.valueField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string ControlName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.controlNameField;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.controlNameField = value;
|
||||
}
|
||||
}
|
||||
_thread = new PeriodicJob(1000, OnTimer, $"{ModuleName}.ModuleGsaFlow", true);
|
||||
}
|
||||
|
||||
|
||||
private bool OnTimer()
|
||||
{
|
||||
foreach (var Unit in GasFlowUnitLise)
|
||||
{
|
||||
Unit.GetGasFlowFeedBack(ModuleName);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
using Aitex.Core.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
||||
{
|
||||
public class ModuleGsaFlow123
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// PM模块所有气体对象的集合
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
[XmlArray("ModuleGsaFlow123")]
|
||||
[XmlArrayItem("GasFlowUnit")]
|
||||
public List<GasFlowUnit> GasFlowUnitList { get; set; }
|
||||
|
||||
public string MoudleName { get; set; }
|
||||
|
||||
private PeriodicJob _thread;
|
||||
|
||||
public ModuleGsaFlow123()
|
||||
{
|
||||
IniPMGas();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void SetModuleName(string module)
|
||||
{
|
||||
MoudleName = module;
|
||||
}
|
||||
private void IniPMGas()
|
||||
{
|
||||
_thread = new PeriodicJob(1000, OnTimer, $"{MoudleName}.ModuleGsaFlow123", true);
|
||||
}
|
||||
|
||||
private void IniGasFlowUnitList(string path)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private bool OnTimer()
|
||||
{
|
||||
foreach (var Unit in GasFlowUnitList)
|
||||
{
|
||||
Unit.GetGasFlowFeedBack(MoudleName);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,17 +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
|
||||
{
|
||||
/// <summary>
|
||||
/// 真值表逻辑计算器,对应每个大的模块所有气体
|
||||
/// </summary>
|
||||
public class RealtimeGasFlowCalculator
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -178,15 +178,12 @@
|
|||
<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\ModuleGsaFlow.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\ControlNameValue.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\GasFlowManager.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\GasFlowSqlHelp.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\GasFlowUnit.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\GasUnitData.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\ModuleGsaFlow123.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\RealtimeGasFlowCalculator.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\RealtimeGasFlowTrueTableRow.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\ModuleGsaFlow.cs" />
|
||||
<Compile Include="HardwareUnits\GasFlow\GasTrueTableRows.cs" />
|
||||
<Compile Include="HardwareUnits\LoadPorts\HirataII\HirataIILoadPort.cs" />
|
||||
<Compile Include="HardwareUnits\LoadPorts\HirataII\HirataIILoadPortConnection.cs" />
|
||||
<Compile Include="HardwareUnits\LoadPorts\HirataII\HirataIILoadPortHandler.cs" />
|
||||
|
|
Loading…
Reference in New Issue