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; } //核心分析 var stat8x = base.CalculateCore(context, out error_info); if(stat8x == false ) { return false; } //添加子管路分析结果 //三条管路 480(南汇1) 123 489 南汇2号管 456 501 川沙管 (78910) var _sub_pipe_id = new long[] { 480, 489, 501 };//子管路ID return AddSubPipeAnaList(_sub_pipe_id); } #region 初始化机泵 /// /// /// /// /// /// protected override bool InitialPumpList(Model.EtaStationAnalyContextItem context, out string error_info) { var monitor_id_pump_flow_array = new long[] { 628, 639, 650, 661, 672, 683, 694, 705, 716, 727 };// 流量计 var monitor_id_run_status_array = new long[] { 624, 635, 646, 657, 668, 679, 690, 701, 712, 723 };//运行状态 var monitor_id_inlet_press_array = new long[] { 625, 636, 647, 658, 669, 680, 691, 702, 713, 724 };//进口压力计 var monitor_id_outlet_press_array = new long[] { 626, 637, 648, 659, 670, 681, 692, 703, 714, 725 };//出口压力 var monitor_id_motor_power_array = new long[] { 633, 644, 655, 666, 677, 688, 699, 710, 721, 730 };//瞬间功率 var monitor_id_motor_frequence_array = new long[] { 629, 640, 651, 662, 673, 684, 695, 706, 717, 0 };//最后一台是工频泵 var monitor_id_motor_zhuansu_array = new long[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };//转速 var is液位代替进口压力 = false; //初始化机泵 this._machineCount = 10; var machine_id_array = new long[] { 199, 202, 208, 211, 214, 217, 220, 223, 226, 229 }; 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,//转速 null,//电流 out error_info); if (_allMachineList == null) { IStation.LogHelper.Error(error_info); return false ; } error_info = null; return true; } #endregion #region 子管路分析结果 private bool AddSubPipeAnaList(long[] _sub_pipe_id) { this._pipeAnaResultList = new List(); EtaMultiRealRecordPure result_pipe_1 = new EtaMultiRealRecordPure();//一号管 分析结果 result_pipe_1.ObjectType = IStation.ObjectType.PipeLine ; result_pipe_1.ObjectID = _sub_pipe_id[0]; result_pipe_1.InitialRunList(this._machineCount);//用泵站总数量 result_pipe_1.AnalyStatus = Model.Eta.eAnalyStatus.Normal ; BuildConnectResult(null, result_pipe_1, new List() { this._allMachineList[0], this._allMachineList[1], this._allMachineList[2] }); this._pipeAnaResultList.Add(result_pipe_1); EtaMultiRealRecordPure result_pipe_2 = new EtaMultiRealRecordPure();//2号管 分析结果 result_pipe_2.ObjectType = IStation.ObjectType.PipeLine; result_pipe_2.ObjectID = _sub_pipe_id[1]; result_pipe_2.InitialRunList(this._machineCount);//用泵站总数量 result_pipe_2.AnalyStatus = Model.Eta.eAnalyStatus.Normal; BuildConnectResult(null, result_pipe_2, new List() { this._allMachineList[3], this._allMachineList[4], this._allMachineList[5] }); this._pipeAnaResultList.Add(result_pipe_2); EtaMultiRealRecordPure result_pipe_3 = new EtaMultiRealRecordPure();//一号管 分析结果 result_pipe_3.ObjectType = IStation.ObjectType.PipeLine; result_pipe_3.ObjectID = _sub_pipe_id[2]; result_pipe_3.InitialRunList(this._machineCount);//用泵站总数量 result_pipe_3.AnalyStatus = Model.Eta.eAnalyStatus.Normal; BuildConnectResult(null, result_pipe_3, new List() { this._allMachineList[6], this._allMachineList[7], this._allMachineList[8], this._allMachineList[9] }); this._pipeAnaResultList.Add(result_pipe_3); return true ; } #endregion } }