using Yw.Model;
|
using Yw.Service.Assets;
|
|
namespace IStation.Server
|
{
|
/// <summary>
|
/// 所有泵,都是变频泵,有进出口压力计, 有开机状态测点, 没有独立的流量计 , 只有管路的流量计
|
/// </summary>
|
public class EMWSEtaCustomAnalyzer4长兴输水泵房 : IEMWSEtaAnalyzer
|
{
|
#region 静态量
|
|
#region 测点
|
|
private const long _level_id = 1724714185696350208;//前池液位
|
private const long _valve_pipe_status_id = 1724714777944657920;//连接阀
|
private const long _valve_pipe_1_status_id = 1724720955663716352;//1#管阀门
|
private const long _valve_pipe_2_status_id = 1724720955663716352;//2#管阀门
|
|
private const long _q_pipe_1_id = 1724720591816232960;//1#管瞬时流量
|
private const long _q_pipe_2_id = 1724721269330546688;//2#管瞬时流量
|
private const long _pr_pipe_1_id = 1724720403814944768;//1#管压力
|
private const long _pr_pipe_2_id = 1724721101436751872;//2#管压力
|
|
private const long _run_pump_1_id = 1724722213095084032;//1#泵运行状态
|
private const long _pr1_pump_1_id = 1724722583028502528;//1#泵进口压力
|
private const long _pr2_pump_1_id = 1724722804487753728;//1#泵出口压力
|
private const long _hz_pump_1_id = 1724723141248421888;//1#泵频率
|
private const long _rpm_pump_1_id = 1724723287721906176;//1#泵转速
|
private const long _p_pump_1_id = 1724723905568051200;//1#泵功率
|
|
private const long _run_pump_2_id = 1727141692844412928;//2#泵运行状态
|
private const long _pr1_pump_2_id = 1727141692924104704;//2#泵进口压力
|
private const long _pr2_pump_2_id = 1727141692924104706;//2#泵出口压力
|
private const long _hz_pump_2_id = 1727141692928299009;//2#泵频率
|
private const long _rpm_pump_2_id = 1727141692932493312;//2#泵转速
|
private const long _p_pump_2_id = 1727141692940881920;//2#泵功率
|
|
private const long _run_pump_3_id = 1727141851053559808;//3#泵运行状态
|
private const long _pr1_pump_3_id = 1727141851061948417;//3#泵进口压力
|
private const long _pr2_pump_3_id = 1727141851066142720;//3#泵出口压力
|
private const long _hz_pump_3_id = 1727141851066142722;//3#泵频率
|
private const long _rpm_pump_3_id = 1727141851070337025;//3#泵转速
|
private const long _p_pump_3_id = 1727141851078725633;//3#泵功率
|
|
private const long _run_pump_4_id = 1727141906028302336;//4#泵运行状态
|
private const long _pr1_pump_4_id = 1727141906036690944;//4#泵进口压力
|
private const long _pr2_pump_4_id = 1727141906036690946;//4#泵出口压力
|
private const long _hz_pump_4_id = 1727141906040885249;//4#泵频率
|
private const long _rpm_pump_4_id = 1727141906045079552;//4#泵转速
|
private const long _p_pump_4_id = 1727141906053468160;//4#泵功率
|
#endregion
|
|
#region 工位
|
|
private const long _work_pipe_1_id = 1727573615521697792;//1#管工位
|
private const long _work_pipe_2_id = 1727573663491952640;//2#管工位
|
private const long _work_pump_1_id = 1727200479533993984;//1#泵工位
|
private const long _work_pump_2_id = 1727200532726157312;//2#泵工位
|
private const long _work_pump_3_id = 1727200586841067520;//3#泵工位
|
private const long _work_pump_4_id = 1727200648908378112;//4#泵工位
|
|
#endregion
|
|
#region 总站
|
|
private const long _station_id = 1724694117545545728;//泵站id
|
|
#endregion
|
|
#region 效率
|
|
private const long _signal_e_1 = 1729043082944581632;
|
private const long _signal_e_2 = 1729043341720555520;
|
private const long _signal_e_3 = 1729043582494576640;
|
private const long _signal_e_4 = 1729043703693185024;
|
|
#endregion
|
|
#endregion
|
|
#region 初始量
|
|
private double? _level_value = null;//前池液位
|
private bool _valve_pipe_status = false;//连接阀状态
|
private bool _valve_pipe_1_status = true;//1#管阀门状态
|
private bool _valve_pipe_2_status = true;//2#管阀门状态
|
|
private double? _q_pipe_1_value = null;//1#管流量
|
private double? _pr_pipe_1_value = null;//1#管压力
|
|
private double? _q_pipe_2_value = null;//2#管流量
|
private double? _pr_pipe_2_value = null;//2#管压力
|
|
private bool _run_pump_1_value = false;//1#泵运行状态
|
private double? _pr1_pump_1_value = null;//1#泵进口压力
|
private double? _pr2_pump_1_value = null;//1#泵出口压力
|
private double? _hz_pump_1_value = null;//1#泵频率
|
private double? _rpm_pump_1_value = null;//1#泵转速
|
private double? _p_pump_1_value = null;//1#泵功率
|
private SplineBase _curveqh_1;//1#泵流量扬程曲线
|
|
private bool _run_pump_2_value = false;//2#泵运行状态
|
private double? _pr1_pump_2_value = null;//2#泵进口压力
|
private double? _pr2_pump_2_value = null;//2#泵出口压力
|
private double? _hz_pump_2_value = null;//2#泵频率
|
private double? _rpm_pump_2_value = null;//2#泵转速
|
private double? _p_pump_2_value = null;//2#泵功率
|
private SplineBase _curveqh_2;//2#泵流量扬程曲线
|
|
private bool _run_pump_3_value = false;//3#泵运行状态
|
private double? _pr1_pump_3_value = null;//3#泵进口压力
|
private double? _pr2_pump_3_value = null;//3#泵出口压力
|
private double? _hz_pump_3_value = null;//3#泵频率
|
private double? _rpm_pump_3_value = null;//3#泵转速
|
private double? _p_pump_3_value = null;//3#泵功率
|
private SplineBase _curveqh_3;//3#泵流量扬程曲线
|
|
private bool _run_pump_4_value = false;//4#泵运行状态
|
private double? _pr1_pump_4_value = null;//4#泵进口压力
|
private double? _pr2_pump_4_value = null;//4#泵出口压力
|
private double? _hz_pump_4_value = null;//4#泵频率
|
private double? _rpm_pump_4_value = null;//4#泵转速
|
private double? _p_pump_4_value = null;//4#泵功率
|
private SplineBase _curveqh_4;//4#泵流量扬程曲线
|
|
|
#endregion
|
|
#region 计算量
|
|
private int _rsa_pump_1;//1#泵分析运行状态
|
private double? _qa_pump_1;//1#泵分析流量
|
private double? _ha_pump_1; //1#泵分析扬程
|
private double? _pa_pump_1;//1#泵分析功率
|
private double? _ea_pump_1;//1#泵分析效率
|
private double? _hza_pump_1;//1#泵分析频率
|
private double? _wpa_pump_1;//1#泵千吨能耗
|
private double? _uwpa_pump_1;//1#泵单位能耗
|
private int _analy_status_pump_1;//1#泵分析状态
|
private List<string> _analy_info_pump_1;//1#泵分析信息
|
private SplineBase _curveqh_a_1;//1#泵分析流量扬程曲线
|
|
private int _rsa_pump_2;//2#泵分析运行状态
|
private double? _qa_pump_2;//2#泵分析流量
|
private double? _ha_pump_2;//2#泵分析扬程
|
private double? _pa_pump_2;//2#泵分析功率
|
private double? _ea_pump_2;//2#泵分析效率
|
private double? _wpa_pump_2;//2#泵千吨能耗
|
private double? _uwpa_pump_2;//2#泵单位能耗
|
private double? _hza_pump_2;//2#泵分析频率
|
private int _analy_status_pump_2;//2#泵分析状态
|
private List<string> _analy_info_pump_2;//2#泵分析信息
|
private SplineBase _curveqh_a_2;//2#泵分析流量扬程曲线
|
|
private int _rsa_pump_3;//3#泵分析运行状态
|
private double? _qa_pump_3;//3#泵分析流量
|
private double? _ha_pump_3;//3#泵分析扬程
|
private double? _pa_pump_3;//3#泵分析功率
|
private double? _ea_pump_3;//3#泵分析效率
|
private double? _wpa_pump_3;//3#泵千吨能耗
|
private double? _uwpa_pump_3;//3#泵单位能耗
|
private double? _hza_pump_3;//3#泵分析频率
|
private int _analy_status_pump_3;//3#泵分析状态
|
private List<string> _analy_info_pump_3;//3#泵分析信息
|
private SplineBase _curveqh_a_3;//3#泵分析流量扬程曲线
|
|
private int _rsa_pump_4;//4#泵分析运行状态
|
private double? _qa_pump_4;//4#泵分析流量
|
private double? _ha_pump_4;//4#泵分析扬程
|
private double? _pa_pump_4;//4#泵分析功率
|
private double? _ea_pump_4;//4#泵分析效率
|
private double? _wpa_pump_4;//4#泵千吨能耗
|
private double? _uwpa_pump_4;//4#泵单位能耗
|
private double? _hza_pump_4;//4#泵分析频率
|
private int _analy_status_pump_4;//4#泵分析状态
|
private List<string> _analy_info_pump_4;//4#泵分析信息
|
private SplineBase _curveqh_a_4;//4#泵分析流量扬程曲线
|
|
private int[] _rsa_pipe_1;//1#管分析运行状态
|
private double? _qa_pipe_1;//1#管流量
|
private double? _ha_pipe_1;//1#管扬程
|
private double? _pa_pipe_1;//1#管功率
|
private double? _ea_pipe_1;//1#管分析效率
|
private double? _wpa_pipe_1;//1#管千吨能耗
|
private double? _uwpa_pipe_1;//1#管单位能耗
|
private double[] _hza_pipe_1;//1#管分析频率
|
private int _analy_status_pipe_1;//1#管分析状态
|
private List<string> _analy_info_pipe_1;//1#管分析信息
|
|
private int[] _rsa_pipe_2;//2#管分析运行状态
|
private double? _qa_pipe_2;//2#管流量
|
private double? _ha_pipe_2;//2#管扬程
|
private double? _pa_pipe_2;//2#管功率
|
private double? _ea_pipe_2;//2#管分析效率
|
private double? _wpa_pipe_2;//2#管千吨能耗
|
private double? _uwpa_pipe_2;//2#管单位能耗
|
private double[] _hza_pipe_2;//2#管分析频率
|
private int _analy_status_pipe_2;//2#管分析状态
|
private List<string> _analy_info_pipe_2;//2#管分析信息
|
|
private int[] _rsa;//分析运行状态
|
private double? _qa;//流量
|
private double? _ha;//扬程
|
private double? _pa;//功率
|
private double? _ea;//分析效率
|
private double? _wpa;//千吨能耗
|
private double? _uwpa;//单位能耗
|
private double[] _hza;//分析频率
|
private int _analy_status;//分析状态
|
private List<string> _analy_info;//分析信息
|
|
|
#endregion
|
|
#region 输出量
|
|
private Yw.Model.EtaMultiRealRecord _station_eta_record = null;
|
private Yw.Model.EtaMultiRealRecord _pipe_1_eta_record = null;
|
private Yw.Model.EtaMultiRealRecord _pipe_2_eta_record = null;
|
private Yw.Model.EtaSingleRealRecord _pump_1_eta_record = null;
|
private Yw.Model.EtaSingleRealRecord _pump_2_eta_record = null;
|
private Yw.Model.EtaSingleRealRecord _pump_3_eta_record = null;
|
private Yw.Model.EtaSingleRealRecord _pump_4_eta_record = null;
|
|
private Yw.Model.MonitorRealRecord _pump_e_1 = null;
|
private Yw.Model.MonitorRealRecord _pump_e_2 = null;
|
private Yw.Model.MonitorRealRecord _pump_e_3 = null;
|
private Yw.Model.MonitorRealRecord _pump_e_4 = null;
|
|
#endregion
|
|
/// <summary>
|
/// 分析
|
/// </summary>
|
public void Analy
|
(
|
EMWSEtaBaseAnalyContext context,
|
Action<List<EtaBasicRealRecord>> saveEtaRecord,
|
Action<List<MonitorRealRecord>> saveMonitorRecord
|
)
|
{
|
if (!(context is EMWSEtaCustomAnalyContext))
|
return;
|
Initial(context as EMWSEtaCustomAnalyContext);
|
Calculate();
|
Output(context);
|
|
var list = new List<Yw.Model.EtaBasicRealRecord>();
|
list.Add(_station_eta_record);
|
list.Add(_pipe_1_eta_record);
|
list.Add(_pipe_2_eta_record);
|
list.Add(_pump_1_eta_record);
|
list.Add(_pump_2_eta_record);
|
list.Add(_pump_3_eta_record);
|
list.Add(_pump_4_eta_record);
|
saveEtaRecord(list);
|
|
var recordList = new List<Yw.Model.MonitorRealRecord>();
|
recordList.Add(_pump_e_1);
|
recordList.Add(_pump_e_2);
|
recordList.Add(_pump_e_3);
|
recordList.Add(_pump_e_4);
|
saveMonitorRecord(recordList);
|
}
|
|
//初始化
|
private void Initial(EMWSEtaCustomAnalyContext context)
|
{
|
#region 前池
|
|
var monitor_level = context.MonitorContextItemList.Find(x => x.ID == _level_id);
|
if (monitor_level != null)
|
{
|
var signalContextItem = monitor_level.SignalContextItemList.First();
|
_level_value = signalContextItem.DataValue;
|
}
|
|
|
#endregion
|
|
#region 阀门状态
|
|
//连接阀状态
|
var monitor_valve_pipe_status = context.MonitorContextItemList.Find(x => x.ID == _valve_pipe_status_id);
|
if (monitor_valve_pipe_status != null)
|
{
|
var signalContextItem = monitor_valve_pipe_status.SignalContextItemList.First();
|
if (signalContextItem.DataValue > 0.5)
|
{
|
_valve_pipe_status = true;
|
}
|
else
|
{
|
_valve_pipe_status = false;
|
}
|
}
|
|
//1#管阀门状态
|
var monitor_valve_pipe_1_status = context.MonitorContextItemList.Find(x => x.ID == _valve_pipe_1_status_id);
|
if (monitor_valve_pipe_1_status != null)
|
{
|
var signalContextItem = monitor_valve_pipe_1_status.SignalContextItemList.First();
|
if (signalContextItem.DataValue > 0.5)
|
{
|
_valve_pipe_1_status = true;
|
}
|
else
|
{
|
_valve_pipe_1_status = false;
|
}
|
}
|
|
//2#管阀门状态
|
var monitor_valve_pipe_2_status = context.MonitorContextItemList.Find(x => x.ID == _valve_pipe_2_status_id);
|
if (monitor_valve_pipe_2_status != null)
|
{
|
var signalContextItem = monitor_valve_pipe_2_status.SignalContextItemList.First();
|
if (signalContextItem.DataValue > 0.5)
|
{
|
_valve_pipe_2_status = true;
|
}
|
else
|
{
|
_valve_pipe_2_status = false;
|
}
|
}
|
|
#endregion
|
|
#region 1#管
|
|
//流量
|
var monitor_q_pipe_1 = context.MonitorContextItemList.Find(x => x.ID == _q_pipe_1_id);
|
if (monitor_q_pipe_1 != null)
|
{
|
var signalContextItem = monitor_q_pipe_1.SignalContextItemList.First();
|
_q_pipe_1_value = signalContextItem.DataValue;
|
}
|
|
//压力
|
var monitor_pr_pipe_1 = context.MonitorContextItemList.Find(x => x.ID == _pr_pipe_1_id);
|
if (monitor_pr_pipe_1 != null)
|
{
|
var signalContextItem = monitor_pr_pipe_1.SignalContextItemList.First();
|
_pr_pipe_1_value = signalContextItem.DataValue;
|
}
|
|
|
#endregion
|
|
#region 2#管
|
|
//流量
|
var monitor_q_pipe_2 = context.MonitorContextItemList.Find(x => x.ID == _q_pipe_2_id);
|
if (monitor_q_pipe_2 != null)
|
{
|
var signalContextItem = monitor_q_pipe_2.SignalContextItemList.First();
|
_q_pipe_2_value = signalContextItem.DataValue;
|
}
|
|
//压力
|
var monitor_pr_pipe_2 = context.MonitorContextItemList.Find(x => x.ID == _pr_pipe_2_id);
|
if (monitor_pr_pipe_2 != null)
|
{
|
var signalContextItem = monitor_pr_pipe_2.SignalContextItemList.First();
|
_pr_pipe_2_value = signalContextItem.DataValue;
|
}
|
|
|
#endregion
|
|
#region 1#泵
|
|
//运行状态
|
var monitor_run_pump_1 = context.MonitorContextItemList.Find(x => x.ID == _run_pump_1_id);
|
if (monitor_run_pump_1 != null)
|
{
|
var signalContextItem = monitor_run_pump_1.SignalContextItemList.First();
|
if (signalContextItem.DataValue > 0.5)
|
{
|
_run_pump_1_value = true;
|
}
|
else
|
{
|
_run_pump_1_value = false;
|
}
|
}
|
|
//进口压力
|
var monitor_pr1_pump_1 = context.MonitorContextItemList.Find(x => x.ID == _pr1_pump_1_id);
|
if (monitor_pr1_pump_1 != null)
|
{
|
var signalContextItem = monitor_pr1_pump_1.SignalContextItemList.First();
|
_pr1_pump_1_value = signalContextItem.DataValue;
|
}
|
|
//出口压力
|
var monitor_pr2_pump_1 = context.MonitorContextItemList.Find(x => x.ID == _pr2_pump_1_id);
|
if (monitor_pr2_pump_1 != null)
|
{
|
var signalContextItem = monitor_pr2_pump_1.SignalContextItemList.First();
|
_pr2_pump_1_value = signalContextItem.DataValue;
|
}
|
|
//频率
|
var monitor_hz_pump_1 = context.MonitorContextItemList.Find(x => x.ID == _hz_pump_1_id);
|
if (monitor_hz_pump_1 != null)
|
{
|
var signalContextItem = monitor_hz_pump_1.SignalContextItemList.First();
|
_hz_pump_1_value = signalContextItem.DataValue;
|
}
|
|
//转速
|
var monitor_rpm_pump_1 = context.MonitorContextItemList.Find(x => x.ID == _rpm_pump_1_id);
|
if (monitor_rpm_pump_1 != null)
|
{
|
var signalContextItem = monitor_rpm_pump_1.SignalContextItemList.First();
|
_rpm_pump_1_value = signalContextItem.DataValue;
|
}
|
|
//功率
|
var monitor_p_pump_1 = context.MonitorContextItemList.Find(x => x.ID == _p_pump_1_id);
|
if (monitor_p_pump_1 != null)
|
{
|
var signalContextItem = monitor_p_pump_1.SignalContextItemList.First();
|
_p_pump_1_value = signalContextItem.DataValue;
|
}
|
|
//曲线
|
var work_pump_1 = context.WorkContextTreeItemList.Find(x => x.ID == _work_pump_1_id);
|
if (work_pump_1 != null)
|
{
|
var pumpContextItem = work_pump_1.PumpContextItem;
|
if (pumpContextItem != null)
|
{
|
_curveqh_1 = pumpContextItem.CurveQH;
|
}
|
}
|
|
#endregion
|
|
#region 2#泵
|
|
//运行状态
|
var monitor_run_pump_2 = context.MonitorContextItemList.Find(x => x.ID == _run_pump_2_id);
|
if (monitor_run_pump_2 != null)
|
{
|
var signalContextItem = monitor_run_pump_2.SignalContextItemList.First();
|
if (signalContextItem.DataValue > 0.5)
|
{
|
_run_pump_2_value = true;
|
}
|
else
|
{
|
_run_pump_2_value = false;
|
}
|
}
|
|
//进口压力
|
var monitor_pr1_pump_2 = context.MonitorContextItemList.Find(x => x.ID == _pr1_pump_2_id);
|
if (monitor_pr1_pump_2 != null)
|
{
|
var signalContextItem = monitor_pr1_pump_2.SignalContextItemList.First();
|
_pr1_pump_2_value = signalContextItem.DataValue;
|
}
|
|
//出口压力
|
var monitor_pr2_pump_2 = context.MonitorContextItemList.Find(x => x.ID == _pr2_pump_2_id);
|
if (monitor_pr2_pump_2 != null)
|
{
|
var signalContextItem = monitor_pr2_pump_2.SignalContextItemList.First();
|
_pr2_pump_2_value = signalContextItem.DataValue;
|
}
|
|
//频率
|
var monitor_hz_pump_2 = context.MonitorContextItemList.Find(x => x.ID == _hz_pump_2_id);
|
if (monitor_hz_pump_2 != null)
|
{
|
var signalContextItem = monitor_hz_pump_2.SignalContextItemList.First();
|
_hz_pump_2_value = signalContextItem.DataValue;
|
}
|
|
//转速
|
var monitor_rpm_pump_2 = context.MonitorContextItemList.Find(x => x.ID == _rpm_pump_2_id);
|
if (monitor_rpm_pump_2 != null)
|
{
|
var signalContextItem = monitor_rpm_pump_2.SignalContextItemList.First();
|
_rpm_pump_2_value = signalContextItem.DataValue;
|
}
|
|
//功率
|
var monitor_p_pump_2 = context.MonitorContextItemList.Find(x => x.ID == _p_pump_2_id);
|
if (monitor_p_pump_2 != null)
|
{
|
var signalContextItem = monitor_p_pump_2.SignalContextItemList.First();
|
_p_pump_2_value = signalContextItem.DataValue;
|
}
|
|
//曲线
|
var work_pump_2 = context.WorkContextTreeItemList.Find(x => x.ID == _work_pump_2_id);
|
if (work_pump_2 != null)
|
{
|
var pumpContextItem = work_pump_2.PumpContextItem;
|
if (pumpContextItem != null)
|
{
|
_curveqh_2 = pumpContextItem.CurveQH;
|
}
|
}
|
|
#endregion
|
|
#region 3#泵
|
|
//运行状态
|
var monitor_run_pump_3 = context.MonitorContextItemList.Find(x => x.ID == _run_pump_3_id);
|
if (monitor_run_pump_3 != null)
|
{
|
var signalContextItem = monitor_run_pump_3.SignalContextItemList.First();
|
if (signalContextItem.DataValue > 0.5)
|
{
|
_run_pump_3_value = true;
|
}
|
else
|
{
|
_run_pump_3_value = false;
|
}
|
}
|
|
//进口压力
|
var monitor_pr1_pump_3 = context.MonitorContextItemList.Find(x => x.ID == _pr1_pump_3_id);
|
if (monitor_pr1_pump_3 != null)
|
{
|
var signalContextItem = monitor_pr1_pump_3.SignalContextItemList.First();
|
_pr1_pump_3_value = signalContextItem.DataValue;
|
}
|
|
//出口压力
|
var monitor_pr2_pump_3 = context.MonitorContextItemList.Find(x => x.ID == _pr2_pump_3_id);
|
if (monitor_pr2_pump_3 != null)
|
{
|
var signalContextItem = monitor_pr2_pump_3.SignalContextItemList.First();
|
_pr2_pump_3_value = signalContextItem.DataValue;
|
}
|
|
//频率
|
var monitor_hz_pump_3 = context.MonitorContextItemList.Find(x => x.ID == _hz_pump_3_id);
|
if (monitor_hz_pump_3 != null)
|
{
|
var signalContextItem = monitor_hz_pump_3.SignalContextItemList.First();
|
_hz_pump_3_value = signalContextItem.DataValue;
|
}
|
|
//转速
|
var monitor_rpm_pump_3 = context.MonitorContextItemList.Find(x => x.ID == _rpm_pump_3_id);
|
if (monitor_rpm_pump_3 != null)
|
{
|
var signalContextItem = monitor_rpm_pump_3.SignalContextItemList.First();
|
_rpm_pump_3_value = signalContextItem.DataValue;
|
}
|
|
//功率
|
var monitor_p_pump_3 = context.MonitorContextItemList.Find(x => x.ID == _p_pump_3_id);
|
if (monitor_p_pump_3 != null)
|
{
|
var signalContextItem = monitor_p_pump_3.SignalContextItemList.First();
|
_p_pump_3_value = signalContextItem.DataValue;
|
}
|
|
//曲线
|
var work_pump_3 = context.WorkContextTreeItemList.Find(x => x.ID == _work_pump_3_id);
|
if (work_pump_3 != null)
|
{
|
var pumpContextItem = work_pump_3.PumpContextItem;
|
if (pumpContextItem != null)
|
{
|
_curveqh_3 = pumpContextItem.CurveQH;
|
|
}
|
}
|
|
#endregion
|
|
#region 4#泵
|
|
//运行状态
|
var monitor_run_pump_4 = context.MonitorContextItemList.Find(x => x.ID == _run_pump_4_id);
|
if (monitor_run_pump_4 != null)
|
{
|
var signalContextItem = monitor_run_pump_4.SignalContextItemList.First();
|
if (signalContextItem.DataValue > 0.5)
|
{
|
_run_pump_4_value = true;
|
}
|
else
|
{
|
_run_pump_4_value = false;
|
}
|
}
|
|
//进口压力
|
var monitor_pr1_pump_4 = context.MonitorContextItemList.Find(x => x.ID == _pr1_pump_4_id);
|
if (monitor_pr1_pump_4 != null)
|
{
|
var signalContextItem = monitor_pr1_pump_4.SignalContextItemList.First();
|
_pr1_pump_4_value = signalContextItem.DataValue;
|
}
|
|
//出口压力
|
var monitor_pr2_pump_4 = context.MonitorContextItemList.Find(x => x.ID == _pr2_pump_4_id);
|
if (monitor_pr2_pump_4 != null)
|
{
|
var signalContextItem = monitor_pr2_pump_4.SignalContextItemList.First();
|
_pr2_pump_4_value = signalContextItem.DataValue;
|
}
|
|
//频率
|
var monitor_hz_pump_4 = context.MonitorContextItemList.Find(x => x.ID == _hz_pump_4_id);
|
if (monitor_hz_pump_4 != null)
|
{
|
var signalContextItem = monitor_hz_pump_4.SignalContextItemList.First();
|
_hz_pump_4_value = signalContextItem.DataValue;
|
}
|
|
//转速
|
var monitor_rpm_pump_4 = context.MonitorContextItemList.Find(x => x.ID == _rpm_pump_4_id);
|
if (monitor_rpm_pump_4 != null)
|
{
|
var signalContextItem = monitor_rpm_pump_4.SignalContextItemList.First();
|
_rpm_pump_4_value = signalContextItem.DataValue;
|
}
|
|
//功率
|
var monitor_p_pump_4 = context.MonitorContextItemList.Find(x => x.ID == _p_pump_4_id);
|
if (monitor_p_pump_4 != null)
|
{
|
var signalContextItem = monitor_p_pump_4.SignalContextItemList.First();
|
_p_pump_4_value = signalContextItem.DataValue;
|
}
|
|
//曲线
|
var work_pump_4 = context.WorkContextTreeItemList.Find(x => x.ID == _work_pump_4_id);
|
if (work_pump_4 != null)
|
{
|
var pumpContextItem = work_pump_4.PumpContextItem;
|
if (pumpContextItem != null)
|
{
|
_curveqh_4 = pumpContextItem.CurveQH;
|
}
|
}
|
|
#endregion
|
|
}
|
|
//计算
|
private void Calculate()
|
{
|
#region 1#泵
|
|
_rsa_pump_1 = _run_pump_1_value ? Yw.Eta.RunStatus.Run : Yw.Eta.RunStatus.Stop;//运行状态
|
_qa_pump_1 = 0;//流量
|
_ha_pump_1 = 0;//扬程
|
if (_pr1_pump_1_value.HasValue && _pr2_pump_1_value.HasValue)
|
{
|
_ha_pump_1 = Yw.Calculation.PumpCalcuHelper.Mpa2M(_pr2_pump_1_value.Value - _pr1_pump_1_value.Value);
|
}
|
_pa_pump_1 = 0;//功率
|
if (_p_pump_1_value.HasValue)
|
{
|
_pa_pump_1 = _p_pump_1_value.Value;
|
}
|
_hza_pump_1 = 0;//频率
|
if (_hz_pump_1_value.HasValue)
|
{
|
_hza_pump_1 = _hz_pump_1_value.Value;
|
}
|
//_ea_pump_1 = null;//效率
|
//_wpa_pump_1 = null;//千吨能耗
|
//_uwpa_pump_1 = null;//单位能耗
|
_analy_status_pump_1 = Yw.Eta.AnalyStatus.Unknow;//分析状态
|
_analy_info_pump_1 = new List<string>();//分析信息
|
if (_hza_pump_1.HasValue && _curveqh_1 != null)//流量扬程曲线
|
{
|
_curveqh_a_1 = _curveqh_1.CalcuCurveQhByHz(_hza_pump_1.Value);
|
}
|
|
#endregion
|
|
#region 2#泵
|
|
_rsa_pump_2 = _run_pump_2_value ? Yw.Eta.RunStatus.Run : Yw.Eta.RunStatus.Stop;//运行状态
|
_qa_pump_2 = 0;//流量
|
_ha_pump_2 = 0;//扬程
|
if (_pr1_pump_2_value.HasValue && _pr2_pump_2_value.HasValue)
|
{
|
_ha_pump_2 = Yw.Calculation.PumpCalcuHelper.Mpa2M(_pr2_pump_2_value.Value - _pr1_pump_2_value.Value);
|
}
|
_pa_pump_2 = 0;//功率
|
if (_p_pump_2_value.HasValue)
|
{
|
_pa_pump_2 = _p_pump_2_value.Value;
|
}
|
_hza_pump_2 = 0;//频率
|
if (_hz_pump_2_value.HasValue)
|
{
|
_hza_pump_2 = _hz_pump_2_value.Value;
|
}
|
//_ea_pump_2 = null;//效率
|
//_wpa_pump_2 = null;//千吨能耗
|
//_uwpa_pump_2 = null;//单位能耗
|
_analy_status_pump_2 = Yw.Eta.AnalyStatus.Unknow;//分析状态
|
_analy_info_pump_2 = new List<string>();//分析信息
|
if (_hza_pump_2.HasValue && _curveqh_2 != null)//流量扬程曲线
|
{
|
_curveqh_a_2 = _curveqh_2.CalcuCurveQhByHz(_hza_pump_2.Value);
|
}
|
|
#endregion
|
|
#region 3#泵
|
|
_rsa_pump_3 = _run_pump_3_value ? Yw.Eta.RunStatus.Run : Yw.Eta.RunStatus.Stop;//运行状态
|
_qa_pump_3 = 0;//流量
|
_ha_pump_3 = 0;//扬程
|
if (_pr1_pump_3_value.HasValue && _pr2_pump_3_value.HasValue)
|
{
|
_ha_pump_3 = Yw.Calculation.PumpCalcuHelper.Mpa2M(_pr2_pump_3_value.Value - _pr1_pump_3_value.Value);
|
}
|
_pa_pump_3 = 0; //功率
|
if (_p_pump_3_value.HasValue)
|
{
|
_pa_pump_3 = _p_pump_3_value.Value;
|
}
|
_hza_pump_3 = 0;//频率
|
if (_hz_pump_3_value.HasValue)
|
{
|
_hza_pump_3 = _hz_pump_3_value.Value;
|
}
|
//_ea_pump_3 = null;//效率
|
//_wpa_pump_3 = null;//千吨能耗
|
//_uwpa_pump_3 = null;//单位能耗
|
_analy_status_pump_3 = Yw.Eta.AnalyStatus.Unknow;//分析状态
|
_analy_info_pump_3 = new List<string>();//分析信息
|
if (_hza_pump_3.HasValue && _curveqh_3 != null)//流量扬程曲线
|
{
|
_curveqh_a_3 = _curveqh_3.CalcuCurveQhByHz(_hza_pump_3.Value);
|
}
|
|
#endregion
|
|
#region 4#泵
|
|
_rsa_pump_4 = _run_pump_4_value ? Yw.Eta.RunStatus.Run : Yw.Eta.RunStatus.Stop;//运行状态
|
_qa_pump_4 = 0;//流量
|
_ha_pump_4 = 0;//扬程
|
if (_pr1_pump_4_value.HasValue && _pr2_pump_4_value.HasValue)
|
{
|
_ha_pump_4 = Yw.Calculation.PumpCalcuHelper.Mpa2M(_pr2_pump_4_value.Value - _pr1_pump_4_value.Value);
|
}
|
_pa_pump_4 = 0;//功率
|
if (_p_pump_4_value.HasValue)
|
{
|
_pa_pump_4 = _p_pump_4_value.Value;
|
}
|
_hza_pump_4 = 0;//频率
|
if (_hz_pump_4_value.HasValue)
|
{
|
_hza_pump_4 = _hz_pump_4_value.Value;
|
}
|
//_ea_pump_4 = null;//效率
|
//_wpa_pump_4 = null;//千吨能耗
|
//_uwpa_pump_4 = null;//单位能耗
|
_analy_status_pump_4 = Yw.Eta.AnalyStatus.Unknow;//分析状态
|
_analy_info_pump_4 = new List<string>();//分析信息
|
if (_hza_pump_4.HasValue && _curveqh_4 != null)//流量扬程曲线
|
{
|
_curveqh_a_4 = _curveqh_4.CalcuCurveQhByHz(_hza_pump_4.Value);
|
}
|
|
#endregion
|
|
#region 1#管
|
|
_rsa_pipe_1 = new int[2] { _rsa_pump_1, _rsa_pump_2 };//运行状态
|
_qa_pipe_1 = 0;//流量
|
if (_q_pipe_1_value.HasValue)
|
{
|
_qa_pipe_1 = _q_pipe_1_value.Value;
|
}
|
_ha_pipe_1 = 0;
|
if (_pr_pipe_1_value.HasValue && _level_value.HasValue)//扬程
|
{
|
_ha_pipe_1 = Yw.Calculation.PumpCalcuHelper.Mpa2M(_pr_pipe_1_value.Value) - _level_value.Value;
|
}
|
_pa_pipe_1 = 0;//功率
|
if (_pa_pump_1.HasValue)
|
{
|
_pa_pipe_1 += _pa_pump_1.Value;
|
}
|
if (_pa_pump_2.HasValue)
|
{
|
_pa_pipe_1 += _pa_pump_2.Value;
|
}
|
_hza_pipe_1 = new double[2] { 0, 0 };//频率
|
if (_hza_pump_1.HasValue)
|
{
|
_hza_pipe_1[0] = _hza_pump_1.Value;
|
}
|
if (_hza_pump_2.HasValue)
|
{
|
_hza_pipe_1[1] = _hza_pump_2.Value;
|
}
|
//_ea_pipe_1 = null;//效率
|
//_wpa_pipe_1 = null;//千吨能耗
|
//_uwpa_pipe_1 = null;//单位能耗
|
_analy_status_pipe_1 = Yw.Eta.AnalyStatus.Unknow;//分析状态
|
_analy_info_pipe_1 = new List<string>();//分析信息
|
|
#endregion
|
|
#region 2#管
|
|
_rsa_pipe_2 = new int[2] { _rsa_pump_3, _rsa_pump_4 };//运行状态
|
_qa_pipe_2 = 0;//流量
|
if (_q_pipe_2_value.HasValue)
|
{
|
_qa_pipe_2 = _q_pipe_2_value.Value;
|
}
|
_ha_pipe_2 = 0;//扬程
|
if (_pr_pipe_2_value.HasValue && _level_value.HasValue)
|
{
|
_ha_pipe_2 = Yw.Calculation.PumpCalcuHelper.Mpa2M(_pr_pipe_2_value.Value) - _level_value.Value;
|
}
|
_pa_pipe_2 = 0;//功率
|
if (_pa_pump_3.HasValue)
|
{
|
_pa_pipe_2 += _pa_pump_3.Value;
|
}
|
if (_pa_pump_4.HasValue)
|
{
|
_pa_pipe_2 += _pa_pump_4.Value;
|
}
|
_hza_pipe_2 = new double[2] { 0, 0 };//频率
|
if (_hza_pump_3.HasValue)
|
{
|
_hza_pipe_2[0] = _hza_pump_3.Value;
|
}
|
if (_hza_pump_4.HasValue)
|
{
|
_hza_pipe_2[1] = _hza_pump_4.Value;
|
}
|
//_ea_pipe_2 = null;//效率
|
//_wpa_pipe_2 = null;//千吨能耗
|
//_uwpa_pipe_2 = null;//单位能耗
|
_analy_status_pipe_2 = Yw.Eta.AnalyStatus.Unknow;//分析状态
|
_analy_info_pipe_2 = new List<string>();//分析信息
|
|
#endregion
|
|
#region 总站
|
|
_rsa = new int[4] { _rsa_pump_1, _rsa_pump_2, _rsa_pump_3, _rsa_pump_4 };//运行状态
|
_qa = 0;//流量
|
if (_qa_pipe_1.HasValue)
|
{
|
_qa += _qa_pipe_1.Value;
|
}
|
if (_qa_pipe_2.HasValue)
|
{
|
_qa += _qa_pipe_2.Value;
|
}
|
_ha_pipe_1 = 0;//扬程
|
if (_ha_pipe_1.HasValue)
|
{
|
_ha = _ha_pipe_1.Value;
|
}
|
if (_ha_pipe_2.HasValue)
|
{
|
if (_ha_pipe_2.Value > _ha.Value)
|
{
|
_ha = _ha_pipe_2.Value;
|
}
|
}
|
_pa = 0;//功率
|
if (_pa_pipe_1.HasValue)
|
{
|
_pa += _pa_pipe_1.Value;
|
}
|
if (_pa_pipe_2.HasValue)
|
{
|
_pa += _pa_pipe_2.Value;
|
}
|
_hza = new double[4] { 0, 0, 0, 0 };//频率
|
_hza[0] = _hza_pipe_1[0];
|
_hza[1] = _hza_pipe_1[1];
|
_hza[2] = _hza_pipe_2[0];
|
_hza[3] = _hza_pipe_2[1];
|
//_ea = null;//效率
|
//_wpa = null;//千吨能耗
|
//_uwpa = null;//单位能耗
|
_analy_status = Yw.Eta.AnalyStatus.Unknow;//分析状态
|
_analy_info = new List<string>();//分析信息
|
|
#endregion
|
|
#region 流量分配
|
|
//1#泵
|
double q_pump_1_temp = 0;
|
if (_rsa_pump_1 == Yw.Eta.RunStatus.Run)
|
{
|
if (_curveqh_a_1 != null)
|
{
|
if (_ha_pump_1.HasValue)
|
{
|
var ptList = _curveqh_a_1.GetPointsXExtend(_ha_pump_1.Value);
|
if (ptList != null && ptList.Length > 0)
|
{
|
q_pump_1_temp = ptList.Last();
|
}
|
}
|
}
|
}
|
|
//2#泵
|
double q_pump_2_temp = 0;
|
if (_rsa_pump_2 == Yw.Eta.RunStatus.Run)
|
{
|
if (_curveqh_a_2 != null)
|
{
|
if (_ha_pump_2.HasValue)
|
{
|
var ptList = _curveqh_a_2.GetPointsXExtend(_ha_pump_2.Value);
|
if (ptList != null && ptList.Length > 0)
|
{
|
q_pump_2_temp = ptList.Last();
|
}
|
}
|
}
|
}
|
|
//3#泵
|
double q_pump_3_temp = 0;
|
if (_rsa_pump_3 == Yw.Eta.RunStatus.Run)
|
{
|
if (_curveqh_a_3 != null)
|
{
|
if (_ha_pump_3.HasValue)
|
{
|
var ptList = _curveqh_a_3.GetPointsXExtend(_ha_pump_3.Value);
|
if (ptList != null && ptList.Length > 0)
|
{
|
q_pump_3_temp = ptList.Last();
|
}
|
}
|
}
|
}
|
|
//4#泵
|
double q_pump_4_temp = 0;
|
if (_rsa_pump_4 == Yw.Eta.RunStatus.Run)
|
{
|
if (_curveqh_a_4 != null)
|
{
|
if (_ha_pump_4.HasValue)
|
{
|
var ptList = _curveqh_a_4.GetPointsXExtend(_ha_pump_4.Value);
|
if (ptList != null && ptList.Length > 0)
|
{
|
q_pump_4_temp = ptList.Last();
|
}
|
}
|
}
|
}
|
|
//中间阀门状态
|
if (_valve_pipe_status)//开
|
{
|
double q_pump_temp = q_pump_1_temp + q_pump_2_temp + q_pump_3_temp + q_pump_4_temp;
|
if (_rsa_pump_1 == Yw.Eta.RunStatus.Run)
|
{
|
if (_qa.HasValue)
|
{
|
_qa_pump_1 = q_pump_1_temp / q_pump_temp * _qa;
|
}
|
}
|
if (_rsa_pump_2 == Yw.Eta.RunStatus.Run)
|
{
|
if (_qa.HasValue)
|
{
|
_qa_pump_2 = q_pump_2_temp / q_pump_temp * _qa;
|
}
|
}
|
if (_rsa_pump_3 == Yw.Eta.RunStatus.Run)
|
{
|
if (_qa.HasValue)
|
{
|
_qa_pump_3 = q_pump_3_temp / q_pump_temp * _qa;
|
}
|
}
|
if (_rsa_pump_4 == Yw.Eta.RunStatus.Run)
|
{
|
if (_qa.HasValue)
|
{
|
_qa_pump_4 = q_pump_4_temp / q_pump_temp * _qa;
|
}
|
}
|
}
|
else//关
|
{
|
double q_pipe_1_temp = q_pump_1_temp + q_pump_2_temp;
|
if (_rsa_pump_1 == Yw.Eta.RunStatus.Run)
|
{
|
if (_qa_pipe_1.HasValue)
|
{
|
_qa_pump_1 = q_pump_1_temp / q_pipe_1_temp * _qa_pipe_1.Value;
|
}
|
}
|
if (_rsa_pump_2 == Yw.Eta.RunStatus.Run)
|
{
|
if (_qa_pipe_1.HasValue)
|
{
|
_qa_pump_2 = q_pump_2_temp / q_pipe_1_temp * _qa_pipe_1.Value;
|
}
|
}
|
|
double q_pipe_2_temp = q_pump_3_temp + q_pump_4_temp;
|
if (_rsa_pump_3 == Yw.Eta.RunStatus.Run)
|
{
|
if (_qa_pipe_2.HasValue)
|
{
|
_qa_pump_3 = q_pump_3_temp / q_pipe_2_temp * _qa_pipe_2.Value;
|
}
|
}
|
if (_rsa_pump_4 == Yw.Eta.RunStatus.Run)
|
{
|
if (_qa_pipe_2.HasValue)
|
{
|
_qa_pump_4 = q_pump_4_temp / q_pipe_2_temp * _qa_pipe_2.Value;
|
}
|
}
|
|
}
|
|
#endregion
|
|
#region 综合计算
|
|
#region 1#泵
|
|
if (!_ha_pump_1.HasValue)
|
{
|
_analy_status_pump_1 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_1.Add("缺少扬程数据");
|
}
|
else
|
{
|
if (!_pa_pump_1.HasValue)
|
{
|
_analy_status_pump_1 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_1.Add("缺少功率数据");
|
}
|
else
|
{
|
if (!_hza_pump_1.HasValue)
|
{
|
_analy_status_pump_1 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_1.Add("缺少频率数据");
|
}
|
else
|
{
|
if (_rsa_pump_1 == Yw.Eta.RunStatus.Run)
|
{
|
_ea_pump_1 = Yw.Calculation.PumpCalcuHelper.CalculateE(_qa_pump_1.Value, _ha_pump_1.Value, _pa_pump_1.Value);
|
if (_ea_pump_1 < 0)
|
{
|
_ea_pump_1 = 0;
|
_analy_info_pump_1.Add("效率不能小于0");
|
}
|
if (_ea_pump_1 > 100)
|
{
|
_ea_pump_1 = 100;
|
_analy_info_pump_1.Add("效率不能高于100");
|
}
|
_wpa_pump_1 = Yw.Calculation.PumpCalcuHelper.CalculateWP(_pa_pump_1.Value, _qa_pump_1.Value);
|
_uwpa_pump_1 = Yw.Calculation.PumpCalcuHelper.CalculateUWP(_pa_pump_1.Value, _qa_pump_1.Value, _ha_pump_1.Value);
|
}
|
_analy_status_pump_1 = Yw.Eta.AnalyStatus.Normal;
|
}
|
}
|
}
|
|
|
#endregion
|
|
#region 2#泵
|
|
if (!_ha_pump_2.HasValue)
|
{
|
_analy_status_pump_2 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_2.Add("缺少扬程数据");
|
}
|
else
|
{
|
if (!_pa_pump_2.HasValue)
|
{
|
_analy_status_pump_2 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_2.Add("缺少功率数据");
|
}
|
else
|
{
|
if (!_hza_pump_2.HasValue)
|
{
|
_analy_status_pump_2 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_2.Add("缺少频率数据");
|
}
|
else
|
{
|
if (_rsa_pump_2 == Yw.Eta.RunStatus.Run)
|
{
|
_ea_pump_2 = Yw.Calculation.PumpCalcuHelper.CalculateE(_qa_pump_2.Value, _ha_pump_2.Value, _pa_pump_2.Value);
|
if (_ea_pump_2 < 0)
|
{
|
_ea_pump_2 = 0;
|
_analy_info_pump_2.Add("效率不能小于0");
|
}
|
if (_ea_pump_2 > 100)
|
{
|
_ea_pump_2 = 100;
|
_analy_info_pump_2.Add("效率不能高于100");
|
}
|
_wpa_pump_2 = Yw.Calculation.PumpCalcuHelper.CalculateWP(_pa_pump_2.Value, _qa_pump_2.Value);
|
_uwpa_pump_2 = Yw.Calculation.PumpCalcuHelper.CalculateUWP(_pa_pump_2.Value, _qa_pump_2.Value, _ha_pump_2.Value);
|
}
|
_analy_status_pump_2 = Yw.Eta.AnalyStatus.Normal;
|
}
|
}
|
}
|
|
|
#endregion
|
|
#region 3#泵
|
|
if (!_ha_pump_3.HasValue)
|
{
|
_analy_status_pump_3 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_3.Add("缺少扬程数据");
|
}
|
else
|
{
|
if (!_pa_pump_3.HasValue)
|
{
|
_analy_status_pump_3 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_3.Add("缺少功率数据");
|
}
|
else
|
{
|
if (!_hza_pump_3.HasValue)
|
{
|
_analy_status_pump_3 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_3.Add("缺少频率数据");
|
}
|
else
|
{
|
if (_rsa_pump_3 == Yw.Eta.RunStatus.Run)
|
{
|
_ea_pump_3 = Yw.Calculation.PumpCalcuHelper.CalculateE(_qa_pump_3.Value, _ha_pump_3.Value, _pa_pump_3.Value);
|
if (_ea_pump_3 < 0)
|
{
|
_ea_pump_3 = 0;
|
_analy_info_pump_3.Add("效率不能小于0");
|
}
|
if (_ea_pump_3 > 100)
|
{
|
_ea_pump_3 = 100;
|
_analy_info_pump_3.Add("效率不能高于100");
|
}
|
_wpa_pump_3 = Yw.Calculation.PumpCalcuHelper.CalculateWP(_pa_pump_3.Value, _qa_pump_3.Value);
|
_uwpa_pump_3 = Yw.Calculation.PumpCalcuHelper.CalculateUWP(_pa_pump_3.Value, _qa_pump_3.Value, _ha_pump_3.Value);
|
}
|
_analy_status_pump_3 = Yw.Eta.AnalyStatus.Normal;
|
}
|
}
|
}
|
|
|
#endregion
|
|
#region 4#泵
|
|
if (!_ha_pump_4.HasValue)
|
{
|
_analy_status_pump_4 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_4.Add("缺少扬程数据");
|
}
|
else
|
{
|
if (!_pa_pump_4.HasValue)
|
{
|
_analy_status_pump_4 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_4.Add("缺少功率数据");
|
}
|
else
|
{
|
if (!_hza_pump_4.HasValue)
|
{
|
_analy_status_pump_4 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pump_4.Add("缺少频率数据");
|
}
|
else
|
{
|
if (_rsa_pump_4 == Yw.Eta.RunStatus.Run)
|
{
|
_ea_pump_4 = Yw.Calculation.PumpCalcuHelper.CalculateE(_qa_pump_4.Value, _ha_pump_4.Value, _pa_pump_4.Value);
|
if (_ea_pump_4 < 0)
|
{
|
_ea_pump_4 = 0;
|
_analy_info_pump_4.Add("效率不能小于0");
|
}
|
if (_ea_pump_4 > 100)
|
{
|
_ea_pump_4 = 100;
|
_analy_info_pump_4.Add("效率不能高于100");
|
}
|
_wpa_pump_4 = Yw.Calculation.PumpCalcuHelper.CalculateWP(_pa_pump_4.Value, _qa_pump_4.Value);
|
_uwpa_pump_4 = Yw.Calculation.PumpCalcuHelper.CalculateUWP(_pa_pump_4.Value, _qa_pump_4.Value, _ha_pump_4.Value);
|
}
|
_analy_status_pump_4 = Yw.Eta.AnalyStatus.Normal;
|
}
|
}
|
}
|
|
|
#endregion
|
|
#region 1#管
|
|
if (!_qa_pipe_1.HasValue)
|
{
|
_analy_status_pipe_1 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pipe_1.Add("缺少流量数据");
|
}
|
else
|
{
|
if (!_ha_pipe_1.HasValue)
|
{
|
_analy_status_pipe_1 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pipe_1.Add("缺少扬程数据");
|
}
|
else
|
{
|
if (!_pa_pipe_1.HasValue)
|
{
|
_analy_status_pipe_1 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pipe_1.Add("缺少功率数据");
|
}
|
else
|
{
|
if (_valve_pipe_1_status)
|
{
|
if (_qa_pipe_1.Value > 100)
|
{
|
_ea_pipe_1 = Yw.Calculation.PumpCalcuHelper.CalculateE(_qa_pipe_1.Value, _ha_pipe_1.Value, _pa_pipe_1.Value);
|
if (_ea_pipe_1 < 0)
|
{
|
_ea_pipe_1 = 0;
|
_analy_info_pipe_1.Add("效率不能小于0");
|
}
|
if (_ea_pipe_1 > 100)
|
{
|
_ea_pipe_1 = 100;
|
_analy_info_pipe_1.Add("效率不能高于100");
|
}
|
_wpa_pipe_1 = Yw.Calculation.PumpCalcuHelper.CalculateWP(_pa_pipe_1.Value, _qa_pipe_1.Value);
|
_uwpa_pipe_1 = Yw.Calculation.PumpCalcuHelper.CalculateUWP(_pa_pipe_1.Value, _qa_pipe_1.Value, _ha_pipe_1.Value);
|
}
|
}
|
_analy_status_pipe_1 = Yw.Eta.AnalyStatus.Normal;
|
}
|
}
|
}
|
|
|
|
#endregion
|
|
#region 2#管
|
|
if (!_qa_pipe_2.HasValue)
|
{
|
_analy_status_pipe_2 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pipe_2.Add("缺少流量数据");
|
}
|
else
|
{
|
if (!_ha_pipe_2.HasValue)
|
{
|
_analy_status_pipe_2 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pipe_2.Add("缺少扬程数据");
|
}
|
else
|
{
|
if (!_pa_pipe_2.HasValue)
|
{
|
_analy_status_pipe_2 = Yw.Eta.AnalyStatus.Missing;
|
_analy_info_pipe_2.Add("缺少功率数据");
|
}
|
else
|
{
|
if (_valve_pipe_2_status)
|
{
|
if (_qa_pipe_2.Value > 100)
|
{
|
_ea_pipe_2 = Yw.Calculation.PumpCalcuHelper.CalculateE(_qa_pipe_2.Value, _ha_pipe_2.Value, _pa_pipe_2.Value);
|
if (_ea_pipe_2 < 0)
|
{
|
_ea_pipe_2 = 0;
|
_analy_info_pipe_2.Add("效率不能小于0");
|
}
|
if (_ea_pipe_2 > 100)
|
{
|
_ea_pipe_2 = 100;
|
_analy_info_pipe_2.Add("效率不能高于100");
|
}
|
_wpa_pipe_2 = Yw.Calculation.PumpCalcuHelper.CalculateWP(_pa_pipe_2.Value, _qa_pipe_2.Value);
|
_uwpa_pipe_2 = Yw.Calculation.PumpCalcuHelper.CalculateUWP(_pa_pipe_2.Value, _qa_pipe_2.Value, _ha_pipe_2.Value);
|
}
|
}
|
_analy_status_pipe_2 = Yw.Eta.AnalyStatus.Normal;
|
}
|
}
|
}
|
|
|
|
#endregion
|
|
#region 总管
|
|
if (!_qa.HasValue)
|
{
|
_analy_status = Yw.Eta.AnalyStatus.Missing;
|
_analy_info.Add("缺少流量数据");
|
}
|
else
|
{
|
if (!_ha.HasValue)
|
{
|
_analy_status = Yw.Eta.AnalyStatus.Missing;
|
_analy_info.Add("缺少扬程数据");
|
}
|
else
|
{
|
if (!_pa.HasValue)
|
{
|
_analy_status = Yw.Eta.AnalyStatus.Missing;
|
_analy_info.Add("缺少功率数据");
|
}
|
else
|
{
|
if (_rsa.ToList().Exists(x => x == Yw.Eta.RunStatus.Run))
|
{
|
_ea = Yw.Calculation.PumpCalcuHelper.CalculateE(_qa.Value, _ha.Value, _pa.Value);
|
if (_ea < 0)
|
{
|
_ea = 0;
|
_analy_info.Add("效率不能小于0");
|
}
|
if (_ea > 100)
|
{
|
_ea = 100;
|
_analy_info.Add("效率不能高于100");
|
}
|
_wpa = Yw.Calculation.PumpCalcuHelper.CalculateWP(_pa.Value, _qa.Value);
|
_uwpa = Yw.Calculation.PumpCalcuHelper.CalculateUWP(_pa.Value, _qa.Value, _ha.Value);
|
}
|
_analy_status = Yw.Eta.AnalyStatus.Normal;
|
}
|
}
|
}
|
|
#endregion
|
|
#endregion
|
|
}
|
|
//输出
|
private void Output(EMWSEtaBaseAnalyContext context)
|
{
|
_station_eta_record = new EtaMultiRealRecord()
|
{
|
ObjectType = context.ObjectType,
|
ObjectID = context.ObjectID,
|
DataTime = context.DataTime,
|
Duration = context.Frequency,
|
Qa = _qa,
|
Ha = _ha,
|
Pa = _pa,
|
Ea = _ea,
|
WPa = _wpa,
|
UWPa = _uwpa,
|
AnalyStatus = _analy_status,
|
AnalyInfo = Yw.Untity.StringListHelper.ToString(_analy_info),
|
RunningCount = _rsa.Count(x => x == Yw.Eta.RunStatus.Run),
|
RunningFlag = _rsa.ToList(),
|
HZa = _hza.ToList()
|
};
|
_pipe_1_eta_record = new EtaMultiRealRecord()
|
{
|
ObjectType = Yw.EMWS.DataType.WorkSite,
|
ObjectID = _work_pipe_1_id,
|
DataTime = context.DataTime,
|
Duration = context.Frequency,
|
Qa = _qa_pipe_1,
|
Ha = _ha_pipe_1,
|
Pa = _pa_pipe_1,
|
Ea = _ea_pipe_1,
|
WPa = _wpa_pipe_1,
|
UWPa = _uwpa_pipe_1,
|
AnalyStatus = _analy_status_pipe_1,
|
AnalyInfo = Yw.Untity.StringListHelper.ToString(_analy_info_pipe_1),
|
RunningCount = _rsa_pipe_1.Count(x => x == Yw.Eta.RunStatus.Run),
|
RunningFlag = _rsa_pipe_1.ToList(),
|
HZa = _hza_pipe_1.ToList()
|
};
|
_pipe_2_eta_record = new EtaMultiRealRecord()
|
{
|
ObjectType = Yw.EMWS.DataType.WorkSite,
|
ObjectID = _work_pipe_2_id,
|
DataTime = context.DataTime,
|
Duration = context.Frequency,
|
Qa = _qa_pipe_2,
|
Ha = _ha_pipe_2,
|
Pa = _pa_pipe_2,
|
Ea = _ea_pipe_2,
|
WPa = _wpa_pipe_2,
|
UWPa = _uwpa_pipe_2,
|
AnalyStatus = _analy_status_pipe_2,
|
AnalyInfo = Yw.Untity.StringListHelper.ToString(_analy_info_pipe_2),
|
RunningCount = _rsa_pipe_2.Count(x => x == Yw.Eta.RunStatus.Run),
|
RunningFlag = _rsa_pipe_2.ToList(),
|
HZa = _hza_pipe_2.ToList()
|
};
|
_pump_1_eta_record = new EtaSingleRealRecord()
|
{
|
ObjectType = Yw.EMWS.DataType.WorkSite,
|
ObjectID = _work_pump_1_id,
|
DataTime = context.DataTime,
|
Duration = context.Frequency,
|
Qa = _qa_pump_1,
|
Ha = _ha_pump_1,
|
Pa = _pa_pump_1,
|
Ea = _ea_pump_1,
|
WPa = _wpa_pump_1,
|
UWPa = _uwpa_pump_1,
|
AnalyStatus = _analy_status_pump_1,
|
AnalyInfo = Yw.Untity.StringListHelper.ToString(_analy_info_pump_1),
|
RSa = _rsa_pump_1,
|
HZa = _hza_pump_1.HasValue ? _hza_pump_1.Value : 0
|
};
|
_pump_2_eta_record = new EtaSingleRealRecord()
|
{
|
ObjectType = Yw.EMWS.DataType.WorkSite,
|
ObjectID = _work_pump_2_id,
|
DataTime = context.DataTime,
|
Duration = context.Frequency,
|
Qa = _qa_pump_2,
|
Ha = _ha_pump_2,
|
Pa = _pa_pump_2,
|
Ea = _ea_pump_2,
|
WPa = _wpa_pump_2,
|
UWPa = _uwpa_pump_2,
|
AnalyStatus = _analy_status_pump_2,
|
AnalyInfo = Yw.Untity.StringListHelper.ToString(_analy_info_pump_2),
|
RSa = _rsa_pump_2,
|
HZa = _hza_pump_2.HasValue ? _hza_pump_2.Value : 0
|
};
|
_pump_3_eta_record = new EtaSingleRealRecord()
|
{
|
ObjectType = Yw.EMWS.DataType.WorkSite,
|
ObjectID = _work_pump_3_id,
|
DataTime = context.DataTime,
|
Duration = context.Frequency,
|
Qa = _qa_pump_3,
|
Ha = _ha_pump_3,
|
Pa = _pa_pump_3,
|
Ea = _ea_pump_3,
|
WPa = _wpa_pump_3,
|
UWPa = _uwpa_pump_3,
|
AnalyStatus = _analy_status_pump_3,
|
AnalyInfo = Yw.Untity.StringListHelper.ToString(_analy_info_pump_3),
|
RSa = _rsa_pump_3,
|
HZa = _hza_pump_3.HasValue ? _hza_pump_3.Value : 0
|
};
|
_pump_4_eta_record = new EtaSingleRealRecord()
|
{
|
ObjectType = Yw.EMWS.DataType.WorkSite,
|
ObjectID = _work_pump_4_id,
|
DataTime = context.DataTime,
|
Duration = context.Frequency,
|
Qa = _qa_pump_4,
|
Ha = _ha_pump_4,
|
Pa = _pa_pump_4,
|
Ea = _ea_pump_4,
|
WPa = _wpa_pump_4,
|
UWPa = _uwpa_pump_4,
|
AnalyStatus = _analy_status_pump_4,
|
AnalyInfo = Yw.Untity.StringListHelper.ToString(_analy_info_pump_4),
|
RSa = _rsa_pump_4,
|
HZa = _hza_pump_4.HasValue ? _hza_pump_4.Value : 0
|
};
|
|
_pump_e_1 = new MonitorRealRecord()
|
{
|
SignalID = _signal_e_1,
|
SrcValue = null,
|
HandleTime = context.DataTime,
|
DataValue = _ea_pump_1.HasValue ? _ea_pump_1.Value.ToString() : "0",
|
DataTime = context.DataTime,
|
DataStatus = new List<string>()
|
};
|
|
_pump_e_2 = new MonitorRealRecord()
|
{
|
SignalID = _signal_e_2,
|
SrcValue = null,
|
HandleTime = context.DataTime,
|
DataValue = _ea_pump_2.HasValue ? _ea_pump_2.Value.ToString() : "0",
|
DataTime = context.DataTime,
|
DataStatus = new List<string>()
|
};
|
|
_pump_e_3 = new MonitorRealRecord()
|
{
|
SignalID = _signal_e_3,
|
SrcValue = null,
|
HandleTime = context.DataTime,
|
DataValue = _ea_pump_3.HasValue ? _ea_pump_3.Value.ToString() : "0",
|
DataTime = context.DataTime,
|
DataStatus = new List<string>()
|
};
|
|
_pump_e_4 = new MonitorRealRecord()
|
{
|
SignalID = _signal_e_4,
|
SrcValue = null,
|
HandleTime = context.DataTime,
|
DataValue = _ea_pump_4.HasValue ? _ea_pump_4.Value.ToString() : "0",
|
DataTime = context.DataTime,
|
DataStatus = new List<string>()
|
};
|
|
}
|
|
|
}
|
|
}
|