using IStation.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.EtaCalculation.SHYS.Station
{
///
/// 所有泵, 有变频泵 , 且都有独立的流量计 , 有 出口压力计, 有开机状态测点 , 进口压力
///
public class EtaAnalyCalculator4成行一取 : EtaAnalyCalculator泵站4都是独立流量计_有运行状态, IEtaStationAnalyCalculator
{
///
///
///
///
///
///
public override bool Calculate(EtaStationAnalyContextItem context, out string error_info)
{
if (context == null)
{
error_info = "上下文参数为空";
return false ;
}
this._threshold_flow = 50;//如果此泵开了,, 防止零点飘流, 判断流量计值是否正常
this._stationID = context.ID;
//初始化机泵
if (!InitialPumpList(context, out error_info))
{
return false;
}
//核心分析
return base.CalculateCore(context, out error_info);
}
#region 初始化机泵
///
///
///
///
///
///
protected override bool InitialPumpList(Model.EtaStationAnalyContextItem context, out string error_info)
{
var monitor_id_pump_flow_array = new long[] { 796, 803, 810, 817 };// 流量计
var monitor_id_run_status_array = new long[] { 793, 800, 807, 814 };//运行状态
var monitor_id_inlet_press_array = new long[] { 792, 792, 792, 792 };//进口压力计(全是液位)
var monitor_id_outlet_press_array = new long[] { 794, 801, 808, 815 };//出口压力
var monitor_id_motor_power_array = new long[] { 798, 805, 812, 819 };//瞬间功率
var monitor_id_motor_frequence_array = new long[] { 0, 0, 0, 0 };//频率(都没有监控值)
var monitor_id_motor_zhuansu_array = new long[] { 0, 0, 0, 0 };//转速
var monitor_id_motor_ele_curret = new long[] { 797, 804, 811, 818 };//电流
bool is液位代替进口压力 = true;
//初始化机泵
this._machineCount = 4;
var machine_id_array = new long[] { 232, 235, 238, 241 };//变频泵
this._allMachineList = InitialPumpMachineList(
context,
machine_id_array,//机泵ID
monitor_id_run_status_array,//运行状态
monitor_id_pump_flow_array,// 流量计
is液位代替进口压力,
monitor_id_inlet_press_array,//进口压力计
monitor_id_outlet_press_array,//出口压力
monitor_id_motor_power_array,//瞬间功率
monitor_id_motor_frequence_array,//频率
monitor_id_motor_zhuansu_array,//转速
monitor_id_motor_ele_curret,//电流
out error_info);
if (_allMachineList == null)
{
IStation.LogHelper.Error(error_info);
return false ;
}
error_info = null;
return true;
}
#endregion
}
}