Files
CapMachine/CapMachine.Wpf/ProPars/ProParsHelperQuick.cs
2025-06-16 18:17:28 +08:00

914 lines
38 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using CapMachine.Model;
using CapMachine.Model.PLCParsModel;
using CapMachine.Wpf.Dtos;
using HslCommunication.Profinet.Siemens;
using System.Windows.Controls;
namespace CapMachine.Wpf.ProPars
{
/// <summary>
/// 程序解析方法 Quick
/// </summary>
public class ProParsHelperQuick
{
/// <summary>
/// 获取PLC步骤信息
/// </summary>
/// <param name="proSteps"></param>
/// <returns></returns>
public static void GetPlcParsData(List<QuickMeterStepDto> proSteps, SiemensS7Net siemensS7NetStance)
{
//取得的PLC步骤数据,提前预设好
List<PlcParsDataQuick> ListPlcParsDataQuick = new List<PlcParsDataQuick>()
{
new PlcParsDataQuick(){ Name="速度",EnName="Speed",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="",ValueStartAddress=1006, },
new PlcParsDataQuick(){ Name="COND1温度 ",EnName="Cond1Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="",ValueStartAddress=1014, },
new PlcParsDataQuick(){ Name="COND2温度",EnName="Cond2Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1034, },
new PlcParsDataQuick(){ Name="COND2压力",EnName="Cond2Press",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=100,Unit="" ,ValueStartAddress=1018, },
new PlcParsDataQuick(){ Name="EVAP出口温度",EnName="EVAPExpTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1036, },
new PlcParsDataQuick(){ Name="排气压力",EnName="ExPress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=100,Unit="" ,ValueStartAddress=1008, },
new PlcParsDataQuick(){ Name="HV电压",EnName="HVVol",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1022, },
new PlcParsDataQuick(){ Name="吸气压力",EnName="InhPress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=100,Unit="" ,ValueStartAddress=1010,},
new PlcParsDataQuick(){ Name="吸气温度",EnName="InhTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1012, },
new PlcParsDataQuick(){ Name="润滑油压力",EnName="LubePress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=100,Unit="" ,ValueStartAddress=1016, },
new PlcParsDataQuick(){ Name="LV电压",EnName="LVVol",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1024, },
new PlcParsDataQuick(){ Name="OCR",EnName="OCR",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1020, },
new PlcParsDataQuick(){ Name="OS1温度",EnName="OS1Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1030, },
new PlcParsDataQuick(){ Name="OS2温度",EnName="OS2Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1032, },
new PlcParsDataQuick(){ Name="PTC入口温度",EnName="PTCEntTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1054, },
new PlcParsDataQuick(){ Name="PTC流量",EnName="PTCFlow",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1052, },
new PlcParsDataQuick(){ Name="PTC功率",EnName="PTCPw",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1050, },
new PlcParsDataQuick(){ Name="压缩机环境湿度",EnName="EnvRH",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1028, },
new PlcParsDataQuick(){ Name="压缩机环境温度",EnName="EnvTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1026, },
new PlcParsDataQuick(){ Name="输出锁定",EnName="OutLock",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1038, },
new PlcParsDataQuick(){ Name="参数编号",EnName="ParNo",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1040, },
new PlcParsDataQuick(){ Name="EV",EnName="EV",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1042, },
new PlcParsDataQuick(){ Name="压缩机使能",EnName="CapEnable",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1044, },
new PlcParsDataQuick(){ Name="吸排气阀",EnName="InhExhValve",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1046, },
new PlcParsDataQuick(){ Name="PTC使能",EnName="PTCEnable",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1048, },
new PlcParsDataQuick(){ Name="时间分钟",EnName="TimeMin",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1000, },
new PlcParsDataQuick(){ Name="时间秒",EnName="TimeSec",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1002, },
new PlcParsDataQuick(){ Name="次数",EnName="Cycle",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1004, },
//new PlcParsData(){ Name="加热器功率",EnName="HeatPw",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" },
//new PlcParsData(){ Name="加热器流量",EnName="HeatFlow",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" },
//new PlcParsData(){ Name="加热器入口水温",EnName="HeatInWatTemp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" },
};
var CurStep = 1;
foreach (QuickMeterStepDto proStep in proSteps)//小循环
{
//每个步骤里面包含多个参数的设置
ListPlcParsDataQuick = LoadPlcParsData(proStep, ListPlcParsDataQuick, CurStep);//内部循环
CurStep++;
}
//防止上一次下载的程序多余当前的步骤,为了清空多余的步骤数据,增加一行的数据
ListPlcParsDataQuick = AddNullData(ListPlcParsDataQuick);
LoadDataToPLC(siemensS7NetStance, ListPlcParsDataQuick);
//装载地址 VW1000
//var datga = LoadPlcBlockAddress(ListPlcParsData, 1000);
//return ListPlcParsData;
}
/// <summary>
/// 加载数据到PLC
/// </summary>
public static void LoadDataToPLC(SiemensS7Net siemensS7NetStance, List<PlcParsDataQuick> plcParsDatas)
{
foreach (var item in plcParsDatas)
{
foreach (var itemStep in item.Steps)
{
if (!string.IsNullOrEmpty(itemStep.Address))
{
var Result = siemensS7NetStance.Write(itemStep.Address, (short)(itemStep.Value * item.Ratio));
//if (item.Name.Contains("压力"))
//{
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value * 100);
// if (!Result.IsSuccess)
// {
// }
//}
//else if (item.Name.Contains("温度"))
//{
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value * 10);
// if (!Result.IsSuccess)
// {
// }
//}
//else if (item.Name.Contains("电压"))
//{
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value * 10);
// if (!Result.IsSuccess)
// {
// }
//}
//else if (item.Name.Contains("湿度"))
//{
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value * 10);
// if (!Result.IsSuccess)
// {
// }
//}
//else
//{
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value);
// if (!Result.IsSuccess)
// {
// }
//}
}
}
}
var data = 1;
//siemensS7NetStance.Write();
}
/// <summary>
/// 增加一行空的数据,作为终止的执行
/// </summary>
public static List<PlcParsDataQuick> AddNullData(List<PlcParsDataQuick> plcParsDatas)
{
var NewStep = new QuickMeterStepDto()
{
};
return LoadPlcParsData(NewStep, plcParsDatas, plcParsDatas.First().Steps.Count()+1);
}
/// <summary>
/// 单步骤程序解析
/// 单步骤里面包括多个仪表参数的配置信息
/// </summary>
/// <param name="proStep"></param>
/// <param name="plcParsDatas"></param>
/// <returns></returns>
private static List<PlcParsDataQuick> LoadPlcParsData(QuickMeterStepDto proStep, List<PlcParsDataQuick> plcParsDatas, int CurStep)
{
if (proStep != null)
{
foreach (var item in plcParsDatas)
{
switch (item.EnName)
{
case "Speed":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.Speed, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "Cond1Temp":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.Cond1Temp, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "Cond2Temp":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.Cond2Temp, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "Cond2Press":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.Cond2Press, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "EVAPExpTemp":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.EVAPExpTemp, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "ExPress":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.ExPress, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "HVVol":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.HVVol, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "InhPress":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.InhPress, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "InhTemp":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.InhTemp, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "LubePress":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.LubePress, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "LVVol":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.LVVol, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "OCR":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.OCR, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "OS1Temp":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.OS1Temp, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "OS2Temp":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.OS2Temp, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "PTCEntTemp":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.PTCEntTemp, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "PTCFlow":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.PTCFlow, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "PTCPw":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.PTCPw, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "EnvRH":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.EnvRH, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "EnvTemp":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.EnvTemp, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "OutLock":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.OutLock == true ? 1 : 0, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "ParNo":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.ParNo, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "EV":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.EV, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "CapEnable":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.CapEnable == true ? 1 : 0, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "InhExhValve":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.InhExhValve == true ? 1 : 0, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "PTCEnable":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.PTCEnable == true ? 1 : 0,Address= GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "TimeMin":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.TimeMin, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "TimeSec":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.TimeSec, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
case "Cycle":
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.Cycle, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
break;
default:
break;
}
}
return plcParsDatas;
}
return plcParsDatas;
}
private static string GetAddress(int startAddress, int StepNo, int Step)
{
var CurStepValue = startAddress + (StepNo - 1) * Step;
return "V" + CurStepValue.ToString();
}
/// <summary>
/// 获取KeepTime分钟信息
/// </summary>
/// <returns></returns>
private static int GetKeepTimeMin(int keeptime)
{
return keeptime / 60;
}
/// <summary>
/// 获取KeepTime 秒信息
/// </summary>
/// <returns></returns>
private static int GetKeepTimeSec(int keeptime)
{
return keeptime % 60;
}
/// <summary>
/// 获取步骤信息
/// </summary>
/// <param name="plcParsData"></param>
/// <param name="name"></param>
/// <returns></returns>
private static int GetStep(PlcParsData plcParsData)
{
if (plcParsData.Steps != null && plcParsData.Steps.Any())
{
return plcParsData.Steps.Count + 1;
}
else
{
return 1;
}
}
/// <summary>
/// 获取Cycle信息
/// </summary>
/// <returns></returns>
private static int GetCycleCount(int Cycle, int Index, int ListCount)
{
if (ListCount > 1)
{
//步骤ProStep内部有循环
if (Index == 0)
{
//循环开始
return -1;
}
if (ListCount == Index + 1)
{
//循环结束
return Cycle;
}
//循环中间
return 0;
}
else
{
//步骤ProStep内部就一个步序没有循环则直接返回步骤的Cycle
//单步骤,没有循环
return 0;
}
}
/// <summary>
/// 加载PLC的地址
/// 单元分割
/// </summary>
/// <returns></returns>
private static List<PlcParsData> LoadPlcCellAddress(List<PlcParsData> plcParsDatas)
{
//单步长度
int StepLengh = 100;
foreach (var itemMeter in plcParsDatas)
{
//var Stepaddress = StartAddress + Index * StepLengh;
//循环Index
int Index = 0;
//循环内部的步骤信息
foreach (var itemStep in itemMeter.Steps.OrderBy(a => a.Step))
{
if (itemMeter.ValueStartAddress != 0)
{
var StepValueAddress = itemMeter.ValueStartAddress + Index * StepLengh;
itemStep.ValueAddress = "V" + StepValueAddress;
}
if (itemMeter.MinStartAddress != 0)
{
var StepMinAddress = itemMeter.MinStartAddress + Index * StepLengh;
itemStep.MinAddress = "V" + StepMinAddress;
}
if (itemMeter.SecStartAddress != 0)
{
var StepSecAddress = itemMeter.SecStartAddress + Index * StepLengh;
itemStep.SecAddress = "V" + StepSecAddress;
}
if (itemMeter.CycleStartAddress != 0)
{
var StepCycleAddress = itemMeter.CycleStartAddress + Index * StepLengh;
itemStep.CycleAddress = "V" + StepCycleAddress;
}
Index++;
}
}
return plcParsDatas;
}
/// <summary>
/// 加载PLC块地址信息
/// </summary>
/// <param name="plcParsDatas"></param>
/// <param name="start"></param>
/// <returns></returns>
private static List<PlcBlockData> LoadPlcBlockAddress(List<PlcParsData> plcParsDatas, int start)
{
//开始地址
int StartAddress = start;
//单步长度
int StepLengh = 100;
//循环Index
int Index = 0;
//数据集合
List<PlcBlockData> BlockDatas = new List<PlcBlockData>();
foreach (var item in plcParsDatas)
{
var StepAddress = StartAddress + Index * StepLengh;
//每个步骤封装成一个PlcBlockData
short[] shorts = new short[19];//看有多少个字段
//shorts[item.Speed!.Index - 1] = (short)item.Speed!.Value!;
//shorts[item.Cond1Temp!.Index - 1] = (short)item.Cond1Temp!.Value!;
//shorts[item.Cond2Temp!.Index - 1] = (short)item.Cond2Temp!.Value!;
//shorts[item.CondPress!.Index - 1] = (short)item.CondPress!.Value!;
//shorts[item.EVAPExpTemp!.Index - 1] = (short)item.EVAPExpTemp!.Value!;
//shorts[item.ExPress!.Index - 1] = (short)item.ExPress!.Value!;
//shorts[item.HVVol!.Index - 1] = (short)item.HVVol!.Value!;
//shorts[item.InhPress!.Index - 1] = (short)item.InhPress!.Value!;
//shorts[item.InhTemp!.Index - 1] = (short)item.InhTemp!.Value!;
//shorts[item.LoPress!.Index - 1] = (short)item.LoPress!.Value!;
//shorts[item.LVVol!.Index - 1] = (short)item.LVVol!.Value!;
//shorts[item.OCR!.Index - 1] = (short)item.OCR!.Value!;
//shorts[item.OS1Temp!.Index - 1] = (short)item.OS1Temp!.Value!;
//shorts[item.OS2Temp!.Index - 1] = (short)item.OS2Temp!.Value!;
//shorts[item.PTCEntTemp!.Index - 1] = (short)item.PTCEntTemp!.Value!;
//shorts[item.PTCFlow!.Index - 1] = (short)item.PTCFlow!.Value!;
//shorts[item.PTCPw!.Index - 1] = (short)item.PTCPw!.Value!;
//shorts[item.TestBoxRH!.Index - 1] = (short)item.TestBoxRH!.Value!;
//shorts[item.TestBoxTemp!.Index - 1] = (short)item.TestBoxTemp!.Value!;
BlockDatas.Add(new PlcBlockData()
{
StartAddress = "VW" + StepAddress.ToString(),
ArrValue = shorts
});
Index++;
}
return BlockDatas;
}
/// <summary>
/// 根据名称获取Index信息
/// </summary>
/// <returns></returns>
public static int GetIndexByName(DataGridColumn dataGridColumn)
{
var headerText = (dataGridColumn.Header as TextBlock).Text;
if (headerText.Contains("COND1温度 "))
{
return 0;
}
else if (headerText.Contains("COND2温度"))
{
return 1;
}
else if (headerText.Contains("COND2压力"))
{
return 2;
}
else if (headerText.Contains("EVAP出口温度"))
{
return 3;
}
else if (headerText.Contains("排气压力"))
{
return 4;
}
else if (headerText.Contains("HV电压"))
{
return 5;
}
else if (headerText.Contains("吸气压力"))
{
return 6;
}
else if (headerText.Contains("吸气温度"))
{
return 7;
}
else if (headerText.Contains("润滑油压力"))
{
return 8;
}
else if (headerText.Contains("LV电压"))
{
return 9;
}
else if (headerText.Contains("OCR"))
{
return 10;
}
else if (headerText.Contains("OS1温度"))
{
return 11;
}
else if (headerText.Contains("OS2温度"))
{
return 12;
}
else if (headerText.Contains("PTC入口温度"))
{
return 13;
}
else if (headerText.Contains("PTC流量"))
{
return 14;
}
else if (headerText.Contains("PTC功率"))
{
return 15;
}
else if (headerText.Contains("试验箱湿度"))
{
return 16;
}
else if (headerText.Contains("试验箱温度"))
{
return 17;
}
else
{
return 0;
}
}
#region
/// <summary>
/// 获取 MeterCellByMeterCond1Temps
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterCond1Temps(ICollection<MeterCond1Temp> meterCond1Temps, int Index)
{
try
{
if (meterCond1Temps.Count() >= (Index + 1))
{
return meterCond1Temps.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterCond1Temps.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterCond2Temps
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterCond2Temps(ICollection<MeterCond2Temp> meterCond2Temps, int Index)
{
try
{
if (meterCond2Temps.Count() >= (Index + 1))
{
return meterCond2Temps.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterCond2Temps.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterCondPresss
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterCondPresss(ICollection<MeterCond2Press> meterCondPresss, int Index)
{
try
{
if (meterCondPresss.Count() >= (Index + 1))
{
return meterCondPresss.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterCondPresss.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterEVAPExpTemps
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterEVAPExpTemps(ICollection<MeterEVAPExpTemp> meterEVAPExpTemps, int Index)
{
try
{
if (meterEVAPExpTemps.Count() >= (Index + 1))
{
return meterEVAPExpTemps.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterEVAPExpTemps.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterExPresss
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterExPresss(ICollection<MeterExPress> meterExPresss, int Index)
{
try
{
if (meterExPresss.Count() >= (Index + 1))
{
return meterExPresss.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterExPresss.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterHVVols
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterHVVols(ICollection<MeterHVVol> meterHVVols, int Index)
{
try
{
if (meterHVVols.Count() >= (Index + 1))
{
return meterHVVols.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterHVVols.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterInhPresss
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterInhPresss(ICollection<MeterInhPress> meterInhPresss, int Index)
{
try
{
if (meterInhPresss.Count() >= (Index + 1))
{
return meterInhPresss.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterInhPresss.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterInhTemps
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterInhTemps(ICollection<MeterInhTemp> meterInhTemps, int Index)
{
try
{
if (meterInhTemps.Count() >= (Index + 1))
{
return meterInhTemps.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterInhTemps.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterLoPresss
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterLoPresss(ICollection<MeterLubePress> meterLoPresss, int Index)
{
try
{
if (meterLoPresss.Count() >= (Index + 1))
{
return meterLoPresss.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterLoPresss.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterLVVols
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterLVVols(ICollection<MeterLVVol> meterLVVols, int Index)
{
try
{
if (meterLVVols.Count() >= (Index + 1))
{
return meterLVVols.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterLVVols.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterOCRs
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterOCRs(ICollection<MeterOCR> meterOCRs, int Index)
{
try
{
if (meterOCRs.Count() >= (Index + 1))
{
return meterOCRs.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterOCRs.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterOS1Temps
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterOS1Temps(ICollection<MeterOS1Temp> meterOS1Temps, int Index)
{
try
{
if (meterOS1Temps.Count() >= (Index + 1))
{
return meterOS1Temps.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterOS1Temps.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterOS2Temps
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterOS2Temps(ICollection<MeterOS2Temp> meterOS2Temps, int Index)
{
try
{
if (meterOS2Temps.Count() >= (Index + 1))
{
return meterOS2Temps.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterOS2Temps.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterPTCEntTemps
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterPTCEntTemps(ICollection<MeterPTCEntTemp> meterPTCEntTemps, int Index)
{
try
{
if (meterPTCEntTemps.Count() >= (Index + 1))
{
return meterPTCEntTemps.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterPTCEntTemps.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterPTCFlows
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterPTCFlows(ICollection<MeterPTCFlow> meterPTCFlows, int Index)
{
try
{
if (meterPTCFlows.Count() >= (Index + 1))
{
return meterPTCFlows.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterPTCFlows.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterPTCPws
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterPTCPws(ICollection<MeterPTCPw> meterPTCPws, int Index)
{
try
{
if (meterPTCPws.Count() >= (Index + 1))
{
return meterPTCPws.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterPTCPws.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterTestBoxRHs
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterTestBoxRHs(ICollection<MeterEnvRH> meterTestBoxRHs, int Index)
{
try
{
if (meterTestBoxRHs.Count() >= (Index + 1))
{
return meterTestBoxRHs.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterTestBoxRHs.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
/// <summary>
/// 获取 MeterCellByMeterTestBoxTemps
/// </summary>
/// <returns></returns>
private static double GetMeterCellByMeterTestBoxTemps(ICollection<MeterEnvTemp> meterTestBoxTemps, int Index)
{
try
{
if (meterTestBoxTemps.Count() >= (Index + 1))
{
return meterTestBoxTemps.ToList()[Index].EndValue;
}
//找不到的话,则返回第一个值
return meterTestBoxTemps.FirstOrDefault()!.EndValue;
}
catch (Exception ex)
{
return 0.0;
}
}
#endregion
}
}