Esempio n. 1
0
            /// <summary>
            /// Конструктор - основной (без параметров)
            /// </summary>
            public TaskTepCalculate() : base()
            {
                m_indxCompRealTime = INDX_COMP.UNKNOWN;

                In   = new P_ALG();
                Norm = new P_ALG();
                Out  = new P_ALG();

                fTable = new FTable();
            }
Esempio n. 2
0
            /// <summary>
            /// Корректировка входных (сырых) значений - аналог 'import.prg'
            /// </summary>
            public void CorrectValues(ref DataTable tableData, ref DataTable tablePrjParameter)
            {
                string nAlg = string.Empty;

                DataRow[] rowsPar = null;
                int       id_put  = -1
                , id_comp         = -1;

                double[] arValues = new double [ID_COMP.Length];
                double   dblVal   = -1F
                , _2b_d_2st       = -1F;

                #region Электро - оперативный расчет
                if (isRealTime == true)
                {// только при оперативном расчете
                    switch (m_indxCompRealTime)
                    {
                    case INDX_COMP.iBL1:
                        id_comp = BL1;
                        break;

                    case INDX_COMP.iBL2:
                        id_comp = BL2;
                        break;

                    case INDX_COMP.iBL3:
                        id_comp = BL3;
                        break;

                    case INDX_COMP.iBL4:
                        id_comp = BL4;
                        break;

                    case INDX_COMP.iBL5:
                        id_comp = BL5;
                        break;

                    case INDX_COMP.iBL6:
                        id_comp = BL6;
                        break;

                    default:
                        break;
                    }
                    // определить коэффициент по 2-му параметру
                    nAlg      = @"'2'";
                    rowsPar   = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)ST);
                    id_put    = (int)rowsPar[0][@"ID_PUT"];
                    rowsPar   = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + id_comp);
                    _2b_d_2st = (double)tableData.Select(@"ID_PUT=" + (int)rowsPar[0][@"ID"])[0][@"VALUE"]
                                / (double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"];
                    // "взвешивание" 4-го параметра
                    nAlg    = @"'4'";
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)ST);
                    id_put  = (int)rowsPar[0][@"ID_PUT"];
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg);
                    dblVal  = 0F;
                    for (int i = 0; i < rowsPar.Length; i++)
                    {
                        switch ((int)rowsPar[i][@"ID_COMP"])
                        {
                        case BL1:
                        case BL2:
                        case BL3:
                        case BL4:
                        case BL5:
                        case BL6:
                            dblVal += (double)tableData.Select(@"ID_PUT=" + (int)rowsPar[i][@"ID"])[0][@"VALUE"];
                            break;

                        case ST:
                        default:
                            break;
                        }
                    }
                    tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = ((double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] - dblVal) * _2b_d_2st;
                    // "взвешивание" 7-го параметра
                    nAlg    = @"'7'";
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)ST);
                    id_put  = (int)rowsPar[0][@"ID_PUT"];
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg);
                    dblVal  = 0F;
                    for (int i = 0; i < rowsPar.Length; i++)
                    {
                        switch ((int)rowsPar[i][@"ID_COMP"])
                        {
                        case BL1:
                        case BL2:
                        case BL3:
                        case BL4:
                        case BL5:
                        case BL6:
                            dblVal += (double)tableData.Select(@"ID_PUT=" + (int)rowsPar[i][@"ID"])[0][@"VALUE"];
                            break;

                        case ST:
                        default:
                            break;
                        }
                    }
                    tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = ((double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] - dblVal) * _2b_d_2st;
                    // "взвешивание" 10-го параметра
                    nAlg    = @"'10'";
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)ST);
                    id_put  = (int)rowsPar[0][@"ID_PUT"];
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg);
                    dblVal  = 0F;
                    for (int i = 0; i < rowsPar.Length; i++)
                    {
                        switch ((int)rowsPar[i][@"ID_COMP"])
                        {
                        case BL1:
                        case BL2:
                        case BL3:
                        case BL4:
                        case BL5:
                        case BL6:
                            dblVal += (double)tableData.Select(@"ID_PUT=" + (int)rowsPar[i][@"ID"])[0][@"VALUE"];
                            break;

                        case ST:
                        default:
                            break;
                        }
                    }
                    tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = ((double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] - dblVal) * _2b_d_2st;
                    // замена 2-го парметра
                    nAlg    = @"'2'";
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)ST);
                    id_put  = (int)rowsPar[0][@"ID_PUT"];
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + id_comp);
                    tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = tableData.Select(@"ID_PUT=" + (int)rowsPar[0][@"ID"])[0][@"VALUE"];
                    // замена 3-го парметра
                    nAlg    = @"'3'";
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)ST);
                    id_put  = (int)rowsPar[0][@"ID_PUT"];
                    rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + id_comp);
                    tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = tableData.Select(@"ID_PUT=" + (int)rowsPar[0][@"ID"])[0][@"VALUE"];
                    // 31-ый параметр скопировать в 32-ой, 31.1 параметр скопировать в 32.1
                    for (INDX_COMP i = (INDX_COMP.UNKNOWN + 1); i < INDX_COMP.iBL6; i++)
                    {// все компоненты за исключением, BL6, ST
                        // 31-ый параметр скопировать в 32-ой - получить значение
                        nAlg    = @"'31'";
                        rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)i);
                        id_put  = (int)rowsPar[0][@"ID_PUT"];
                        dblVal  = (double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"];
                        // сохранить значение
                        nAlg    = @"'32'";
                        rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)i);
                        id_put  = (int)rowsPar[0][@"ID_PUT"];
                        tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = dblVal;
                        // 31.1 параметр скопировать в 32.1 - получить значения
                        nAlg    = @"'31.1'";
                        rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)i);
                        id_put  = (int)rowsPar[0][@"ID_PUT"];
                        dblVal  = (double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"];
                        // сохранить значение
                        nAlg    = @"'32.1'";
                        rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg + @" AND ID_COMP=" + (int)i);
                        id_put  = (int)rowsPar[0][@"ID_PUT"];
                        tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = dblVal;
                    }
                }
                else
                {
                    ;
                }
                #endregion

                #region Электро - станция - 10.3
                nAlg    = @"'10.3'";
                rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg);
                dblVal  = 0F;
                //??? проверить на кол-во строк (строк д.б. не больше ID_COMP.Length)
                for (int i = 0; i < rowsPar.Length; i++)
                {
                    switch ((int)rowsPar[i][@"ID_COMP"])
                    {
                    case BL1:
                    case BL2:
                    case BL3:
                    case BL4:
                    case BL5:
                        dblVal += (double)tableData.Select(@"ID_PUT=" + (int)rowsPar[i][@"ID"])[0][@"VALUE"];
                        break;

                    case ST:
                        id_put = (int)rowsPar[i][@"ID"];
                        break;

                    case BL6:
                    default:
                        break;
                    }
                }

                tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = dblVal;
                #endregion

                #region Электро - 12
                // если 0, то 0
                #endregion

                #region Тепло - 37
                nAlg    = @"'37'";
                rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg);
                //??? проверить на кол-во строк (строк д.б. не больше ID_COMP.Length)
                for (int i = 0; i < rowsPar.Length; i++)
                {
                    switch ((int)rowsPar[i][@"ID_COMP"])
                    {
                    case BL1:
                    case BL2:
                    case BL3:
                    case BL4:
                    case BL5:
                    case BL6:
                        id_put = (int)rowsPar[i][@"ID"];
                        tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = (double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] + 1F;
                        break;

                    case ST:
                    default:
                        break;
                    }
                }
                #endregion

                #region Тепло - 38
                nAlg    = @"'38'";
                rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg);
                //??? проверить на кол-во строк (строк д.б. не больше ID_COMP.Length)
                for (int i = 0; i < rowsPar.Length; i++)
                {
                    switch ((int)rowsPar[i][@"ID_COMP"])
                    {
                    case BL1:
                    case BL2:
                    case BL3:
                    case BL4:
                    case BL5:
                    case BL6:
                        id_put = (int)rowsPar[i][@"ID"];
                        tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = (double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] + 1F;
                        break;

                    case ST:
                    default:
                        break;
                    }
                }
                #endregion

                #region Тепло - 46
                nAlg    = @"'46'";
                rowsPar = tablePrjParameter.Select(@"N_ALG=" + nAlg);
                //??? проверить на кол-во строк (строк д.б. не больше ID_COMP.Length)
                for (int i = 0; i < rowsPar.Length; i++)
                {
                    switch ((int)rowsPar[i][@"ID_COMP"])
                    {
                    case BL1:
                    case BL2:
                    case BL3:
                    case BL4:
                    case BL5:
                    case BL6:
                        id_put = (int)rowsPar[i][@"ID"];
                        tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] = (double)tableData.Select(@"ID_PUT=" + id_put)[0][@"VALUE"] * .7F;
                        break;

                    default:
                        break;
                    }
                }
                #endregion

                #region Тепло - станция 80
                nAlg = @"'81'";
                #endregion

                #region Тепло - станция 81
                nAlg = @"'82'";
                #endregion
            }