ningshuxia
2022-08-19 153da1eef16b51d75442779a3964a1c5413132e4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
using IStation.Model;
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace IStation.EtaCalculation.SHYS.Station
{
    /// <summary>
    /// 所有泵, 有 出口压力计,   有开机状态测点,  没有独立的流量计 , 只有管路的流量计, 
    /// 所有阀门都是打开状态
    /// </summary>
    public class EtaAnalyCalculator4陈行一输 : EtaAnalyCalculator泵站4共用多个流量计_有运行状态, IEtaStationAnalyCalculator
    {
        /// <summary>
        ///     
        /// </summary>
        /// <param name="context"></param>
        /// <param name="error_info"></param>
        /// <returns></returns>
        public override bool Calculate(EtaStationAnalyContextItem context, out string error_info)
        { 
            if (context == null)
            {
                error_info = "上下文参数为空";
                return false ;
            }
            this._stationID = context.ID; 
 
            this._threshold_flow = 100;//高于此值, 认为对应阀门开启, 防止零点飘流
 
            //初始化测点
            if (!InitialMonitorList(context, out error_info))
            {
                return false;  
            }
            //初始化机泵
            if (!InitialPumpList(context ,out error_info))
            {
                return false;
            }
 
 
            //初始化管路
            var monitor_id_total_flow_list = new long[] { 860, 863, 866 };
            var pipe_id_total_flow_list = new long[] { 759 ,761,768};
            if (!InitialPipeList(
                pipe_id_total_flow_list,
                monitor_id_total_flow_list,
                context, out error_info))
            {
                return false;
            }
 
 
 
 
            //List<EtaMultiRealRecordPure> ana_result_list =base.CalculateCore(context, out error_info);
            //foreach (var p in _allMachineList)
            //    ana_result_list.Add(p.AnaResult);
 
            //ana_result_list.Add(_pipe_1.AnaResult);
            //ana_result_list.Add(_pipe_2.AnaResult);
            //ana_result_list.Add(_pipe_3.AnaResult);
            //ana_result_list.Add(result_station);
 
            //DateTime dateTime = context.DataTime;
            //int duration = context.Duration;
            //foreach (var item in ana_result_list)
            //{
            //    item.DataTime = dateTime;
            //    item.Duration = duration;
            //}
 
 
 
            return base.CalculateCore(context, out error_info);
        }
 
        #region  初始化机泵
        /// <summary>
        /// 
        /// </summary>
        /// <param name="context"></param>
        /// <param name="error_info"></param>
        /// <returns></returns>
        protected override bool InitialPumpList(Model.EtaStationAnalyContextItem context, out string error_info)
        {      
            long[] monitor_id_pump_flow_array = new long[] { 0, 0, 0, 0, 0, 0, 0, 0 };//单泵流量计
            long[] monitor_id_inlet_press_array = new long[] { 856, 856, 856, 857, 857, 858, 858, 858 };// 泵的进口压力计(液位)
            long[] monitor_id_outlet_press_array = new long[] { 869, 875, 881, 887, 893, 898, 903, 909 };//出口压力
            long[] monitor_id_run_status_array = new long[] { 868, 874, 880, 886, 892, 897, 902, 908 };//运行状态
            long[] monitor_id_motor_frequence_array = new long[] { 870, 876, 882, 888, 0, 0, 904, 910 };//频率
            long[] monitor_id_motor_power_array = new long[] { 872, 878, 884, 890, 895, 900, 906, 912 };//瞬间功率
            long[] monitor_id_motor_zhuansu_array = new long[] { 871, 877, 883, 889, 894, 899, 905, 911 };//转速  
            long[] machine_id_array = new long[] { 262, 265, 268, 271, 259, 274, 277, 280 };//(5,6 工频)
 
            this._machineCount = 8;
 
            var is液位代替进口压力 = true;
 
            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
 
 
 
 
 
 
 
 
 
 
 
 
    }
 
 
 
 
}