예제 #1
0
        public static string DeserializeXml(Normatives normatives)
        {
            Serializer ser = new Serializer();
            string outputXML = string.Empty;

            outputXML = ser.Serialize<Normatives>(normatives);

            XmlDocument doc = new XmlDocument();
            doc.LoadXml(outputXML);
            //doc.Save("normatives.xml");

            return outputXML;
        }
예제 #2
0
        public static void AddData(Normatives normatives)
        {
            try
            {
                int id = Helper.GetCurrentID() + 1;
                using (SqlConnection con = new SqlConnection(Helper.ConnectionString()))
                {
                    SqlCommand cmd = new SqlCommand();

                    cmd.CommandText = "INSERT INTO T_NORM_PARAMETERS (ID_NORM_PARAMETER, ID_TECH_POS_INSTANCE, ID_TIP_ARMATURA, ID_TIP_PRIVODA, ID_TIP_ELEKTRODVIGATEL, DATE_MODIFIED, NORM_PARAMETER_RAW)"
                                                                    + "VALUES (@id, @idtehpos, @idarmatura, @tipprivoda, @idtipelectrodv, @date, @values)";

                    cmd.Parameters.Add("@id", SqlDbType.Int);
                    cmd.Parameters.Add("@idtehpos", SqlDbType.Int);
                    cmd.Parameters.Add("@idarmatura", SqlDbType.Int);
                    cmd.Parameters.Add("@tipprivoda", SqlDbType.Int);
                    cmd.Parameters.Add("@idtipelectrodv", SqlDbType.Int);
                    cmd.Parameters.Add("@date", SqlDbType.DateTime);
                    cmd.Parameters.Add("@values", SqlDbType.Image);

                    cmd.Parameters["@id"].Value = id;
                    cmd.Parameters["@idtehpos"].Value = normatives.TehPosInstanceId;
                    cmd.Parameters["@idarmatura"].Value = normatives.TipArmaturaId;
                    cmd.Parameters["@tipprivoda"].Value = normatives.TipPrivodaId;
                    cmd.Parameters["@idtipelectrodv"].Value = normatives.TipElectrodvigatelId;
                    cmd.Parameters["@date"].Value = DateTime.Now.ToString();
                    cmd.Parameters["@values"].Value = Encoding.UTF8.GetBytes(Helper.DeserializeXml(normatives)); 

                    cmd.Connection = con;

                    con.Open();
                    cmd.ExecuteNonQuery();
                    con.Close();

                    Helper.UpdateSQCTable(id);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Добавление новой записи в БД : " + ex.Message);
            }
        }
예제 #3
0
        public static Normatives GetNormativesById(int paramId)
        {
            byte[] values= null;

            using (SqlConnection con = new SqlConnection(Helper.ConnectionString()))
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "SELECT NORM_PARAMETER_RAW FROM T_NORM_PARAMETERS WHERE ID_NORM_PARAMETER="+paramId;
                cmd.Connection = con;

                con.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        values = (byte[])reader["NORM_PARAMETER_RAW"];
                        
                    }
                }

                con.Close();
            }

            if (values != null)
            {
                string xml = Encoding.UTF8.GetString(values);

                Serializer ser = new Serializer();

                string xmlInputData = xml;

                Normatives normatives = ser.Deserialize<Normatives>(xmlInputData);

                return normatives;
            }

            return null;
        }
예제 #4
0
        public static void UpdateData(int id, Normatives normatives)
        {
            using (SqlConnection con = new SqlConnection(Helper.ConnectionString()))
            {
                SqlCommand cmd = new SqlCommand();

                cmd.CommandText = "UPDATE T_NORM_PARAMETERS SET ID_TECH_POS_INSTANCE = @idtehpos, " +
                                                               "ID_TIP_ARMATURA = @idarmatura, " +
                                                               "ID_TIP_PRIVODA = @tipprivoda, " +
                                                               "ID_TIP_ELEKTRODVIGATEL = @idtipelectrodv, " +
                                                               "NORM_PARAMETER_RAW = @values, " +
                                                               "DATE_MODIFIED=@date "+
                                                               "WHERE ID_NORM_PARAMETER=@id";

                cmd.Parameters.Add("@id", SqlDbType.Int);
                cmd.Parameters.Add("@idtehpos", SqlDbType.Int);
                cmd.Parameters.Add("@idarmatura", SqlDbType.Int);
                cmd.Parameters.Add("@tipprivoda", SqlDbType.Int);
                cmd.Parameters.Add("@idtipelectrodv", SqlDbType.Int);
                cmd.Parameters.Add("@values", SqlDbType.Image);
                cmd.Parameters.Add("@date", SqlDbType.DateTime);

                cmd.Parameters["@id"].Value = id;
                cmd.Parameters["@idtehpos"].Value = normatives.TehPosInstanceId;
                cmd.Parameters["@idarmatura"].Value = normatives.TipArmaturaId;
                cmd.Parameters["@tipprivoda"].Value = normatives.TipPrivodaId;
                cmd.Parameters["@idtipelectrodv"].Value = normatives.TipElectrodvigatelId;
                cmd.Parameters["@values"].Value = Encoding.UTF8.GetBytes(Helper.DeserializeXml(normatives));
                cmd.Parameters["@date"].Value = DateTime.Now.ToString();

                cmd.Connection = con;

                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
        }
 public NormParamsPanel()
 {
     InitializeComponent();
     _normparams = new Normatives();
 }
 public void SetNewMode()
 {
     _normparams = Helper.NewNormatives();
     SetInitialNormParams();
     SetEditMode();
 }
예제 #7
0
        public static Normatives NewNormatives(List<string> normparams = null)
        {
            try
            {
                if (normparams == null)
                {
                    normparams = new List<string>();
                    for (int n = 0; n < 108; n++)
                    {
                        normparams.Add("");
                    }
                }

                var normatives = new Normatives();
                int i = 0;
                var exp = "^2";
                var deg = "";

                string decimalType = typeof(decimal).ToString();
                string stringType = typeof(string).ToString();

                if (normatives.Parameters == null)
                {
                    normatives.Parameters = new List<Parameter>();
                }
                //Количество оборотов
                var param0 = new Parameter("Количество оборотов", "N_oboroty", ParameterType.General);
                param0.Values.Add(new ParameterValue(i++, "N_oboroty", ValueType.NoType, normparams[i - 1], decimalType, ""));
                normatives.Parameters.Add(param0);

                //Тип (типовой №)
                var param1 = new Parameter("Тип (типовой №)", "Tip", ParameterType.General);
                param1.Values.Add(new ParameterValue(i++, "Tip", ValueType.NoType, normparams[i - 1], decimalType, ""));
                normatives.Parameters.Add(param1);

                //Диапазон крутящих моментов
                var param2 = new Parameter("Диапазон крутящих моментов", "Diap_M", ParameterType.General);
                param2.Values.Add(new ParameterValue(i++, "Diap_M_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param2.Values.Add(new ParameterValue(i++, "Diap_M_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param2);

                //Мощность двигателя
                var param3 = new Parameter("Мощность двигателя", "P_norm", ParameterType.General);
                param3.Values.Add(new ParameterValue(i++, "P_norm", ValueType.NoType, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param3);

                //Схема управления ОТКР
                var param4 = new Parameter("Схема управления ОТКР", "O_Tip_upr", ParameterType.General);
                param4.Values.Add(new ParameterValue(i++, "O_Tip_upr", ValueType.NoType, normparams[i - 1], stringType, ""));
                normatives.Parameters.Add(param4);

                //Схема управления ЗАКР
                var param5 = new Parameter("Схема управления ЗАКР", "Z_Tip_upr", ParameterType.General);
                param5.Values.Add(new ParameterValue(i++, "Z_Tip_upr", ValueType.NoType, normparams[i - 1], stringType, ""));
                normatives.Parameters.Add(param5);

                //Рабочая среда
                var param6 = new Parameter("Рабочая среда", "Rab_sreda", ParameterType.General);
                param6.Values.Add(new ParameterValue(i++, "Rab_sreda", ValueType.NoType, normparams[i - 1], stringType, ""));
                normatives.Parameters.Add(param6);

                //Давление
                var param7 = new Parameter("Давление", "Davlenie", ParameterType.General);
                param7.Values.Add(new ParameterValue(i++, "Davlenie", ValueType.NoType, normparams[i - 1], decimalType, "кгс/см" + exp));
                normatives.Parameters.Add(param7);

                //Температура
                var param8 = new Parameter("Температура", "Temp", ParameterType.General);
                param8.Values.Add(new ParameterValue(i++, "Temp", ValueType.NoType, normparams[i - 1], decimalType, deg + "C"));
                normatives.Parameters.Add(param8);

                //Длина кабеля от источника до присоединения
                var param9 = new Parameter("Длина кабеля от источника до присоединения", "L_kabb", ParameterType.General);
                param9.Values.Add(new ParameterValue(i++, "L_kabb", ValueType.NoType, normparams[i - 1], decimalType, "м"));
                normatives.Parameters.Add(param9);

                //Сечение кабеля
                var param10 = new Parameter("Сечение кабеля", "S_kabb", ParameterType.General);
                param10.Values.Add(new ParameterValue(i++, "S_kabb", ValueType.NoType, normparams[i - 1], decimalType, "мм" + exp));
                normatives.Parameters.Add(param10);

                //R двиг
                var param11 = new Parameter("R двиг", "R_ED", ParameterType.General);
                param11.Values.Add(new ParameterValue(i++, "R_ED", ValueType.NoType, normparams[i - 1], decimalType, "Ом"));
                normatives.Parameters.Add(param11);

                //R общ
                var param12 = new Parameter("R общ", "R_summ", ParameterType.General);
                param12.Values.Add(new ParameterValue(i++, "R_summ", ValueType.NoType, normparams[i - 1], decimalType, "Ом"));
                normatives.Parameters.Add(param12);

                //Открытие - Крутящий момент для настройки ОНМ электропривода
                var param13 = new Parameter("Крутящий момент для настройки ОНМ электропривода", "O_M_nastr", ParameterType.Open);
                param13.Values.Add(new ParameterValue(i++, "O_M_nastr_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param13.Values.Add(new ParameterValue(i++, "O_M_nastr_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param13.Values.Add(new ParameterValue(i++, "O_M_nastr_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param13);

                //Открытие - Средний крутящий момент без параметров среды
                var param14 = new Parameter("Средний крутящий момент без параметров среды", "O_M_rab", ParameterType.Open);
                param14.Values.Add(new ParameterValue(i++, "O_M_rab_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param14.Values.Add(new ParameterValue(i++, "O_M_rab_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param14.Values.Add(new ParameterValue(i++, "O_M_rab_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param14);

                //Открытие - Средний крутящий момент с параметрами среды
                var param15 = new Parameter("Средний крутящий момент с параметрами среды", "O_M_rab+sreda", ParameterType.Open);
                param15.Values.Add(new ParameterValue(i++, "O_M_rab+sreda_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param15.Values.Add(new ParameterValue(i++, "O_M_rab+sreda_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param15.Values.Add(new ParameterValue(i++, "O_M_rab+sreda_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param15);

                //Открытие - Колебания крутящего момента
                var param16 = new Parameter("Колебания крутящего момента", "O_M_koleb", ParameterType.Open);
                param16.Values.Add(new ParameterValue(i++, "O_M_koleb_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param16.Values.Add(new ParameterValue(i++, "O_M_koleb_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param16.Values.Add(new ParameterValue(i++, "O_M_koleb_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param16);

                //Открытие - Крутящий момент при срабатывании КВ,ОНМ
                var param17 = new Parameter("Крутящий момент при срабатывании КВ,ОНМ", "O_M_zatyag", ParameterType.Open);
                param17.Values.Add(new ParameterValue(i++, "O_M_zatyag_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param17.Values.Add(new ParameterValue(i++, "O_M_zatyag_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param17.Values.Add(new ParameterValue(i++, "O_M_zatyag_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param17);

                //Открытие - Крутящий момент в крайнем положении
                var param18 = new Parameter("Крутящий момент в крайнем положении", "O_M_zatyag+", ParameterType.Open);
                param18.Values.Add(new ParameterValue(i++, "O_M_zatyag+_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param18.Values.Add(new ParameterValue(i++, "O_M_zatyag+_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param18.Values.Add(new ParameterValue(i++, "O_M_zatyag+_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param18);

                //Открытие - Крутящий момент подрыва запорного органа
                var param19 = new Parameter("Крутящий момент подрыва запорного органа", "O_M_sryv", ParameterType.Open);
                param19.Values.Add(new ParameterValue(i++, "O_M_sryv_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param19.Values.Add(new ParameterValue(i++, "O_M_sryv_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param19.Values.Add(new ParameterValue(i++, "O_M_sryv_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param19);

                //Открытие - Время срабатывания арматуры
                var param20 = new Parameter("Время срабатывания арматуры", "O_T_hoda", ParameterType.Open);
                param20.Values.Add(new ParameterValue(i++, "O_T_hoda_nom", ValueType.Nominal, normparams[i - 1], decimalType, "с."));
                param20.Values.Add(new ParameterValue(i++, "O_T_hoda_min", ValueType.Minimum, normparams[i - 1], decimalType, "с."));
                param20.Values.Add(new ParameterValue(i++, "O_T_hoda_max", ValueType.Maximum, normparams[i - 1], decimalType, "с."));
                normatives.Parameters.Add(param20);

                //Закрытие - Крутящий момент для настройки ОНМ электропривода
                var param21 = new Parameter("Крутящий момент для настройки ОНМ электропривода", "Z_M_nastr", ParameterType.Close);
                param21.Values.Add(new ParameterValue(i++, "Z_M_nastr_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param21.Values.Add(new ParameterValue(i++, "Z_M_nastr_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param21.Values.Add(new ParameterValue(i++, "Z_M_nastr_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param21);

                //Закрытие - Средний крутящий момент без параметров среды
                var param22 = new Parameter("Средний крутящий момент без параметров среды", "Z_M_rab", ParameterType.Close);
                param22.Values.Add(new ParameterValue(i++, "Z_M_rab_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param22.Values.Add(new ParameterValue(i++, "Z_M_rab_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param22.Values.Add(new ParameterValue(i++, "Z_M_rab_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param22);

                //Закрытие - Средний крутящий момент с параметрами среды
                var param23 = new Parameter("Средний крутящий момент с параметрами среды", "Z_M_rab+sreda", ParameterType.Close);
                param23.Values.Add(new ParameterValue(i++, "Z_M_rab+sreda_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param23.Values.Add(new ParameterValue(i++, "Z_M_rab+sreda_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param23.Values.Add(new ParameterValue(i++, "Z_M_rab+sreda_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param23);

                //Закрытие - Колебания крутящего момента
                var param24 = new Parameter("Колебания крутящего момента", "Z_M_koleb", ParameterType.Close);
                param24.Values.Add(new ParameterValue(i++, "Z_M_koleb_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param24.Values.Add(new ParameterValue(i++, "Z_M_koleb_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param24.Values.Add(new ParameterValue(i++, "Z_M_koleb_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param24);

                //Закрытие - Крутящий момент при срабатывании КВ,ОНМ
                var param25 = new Parameter("Крутящий момент при срабатывании КВ,ОНМ", "Z_M_zatyag", ParameterType.Close);
                param25.Values.Add(new ParameterValue(i++, "Z_M_zatyag_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param25.Values.Add(new ParameterValue(i++, "Z_M_zatyag_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param25.Values.Add(new ParameterValue(i++, "Z_M_zatyag_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param25);

                //Закрытие - Крутящий момент в крайнем положении
                var param26 = new Parameter("Крутящий момент в крайнем положении", "Z_M_zatyag+", ParameterType.Close);
                param26.Values.Add(new ParameterValue(i++, "Z_M_zatyag+_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param26.Values.Add(new ParameterValue(i++, "Z_M_zatyag+_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param26.Values.Add(new ParameterValue(i++, "Z_M_zatyag+_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param26);

                //Закрытие - Крутящий момент подрыва запорного органа
                var param27 = new Parameter("Крутящий момент подрыва запорного органа", "Z_M_sryv", ParameterType.Close);
                param27.Values.Add(new ParameterValue(i++, "Z_M_sryv_nom", ValueType.Nominal, normparams[i - 1], decimalType, "Н*м"));
                param27.Values.Add(new ParameterValue(i++, "Z_M_sryv_min", ValueType.Minimum, normparams[i - 1], decimalType, "Н*м"));
                param27.Values.Add(new ParameterValue(i++, "Z_M_sryv_max", ValueType.Maximum, normparams[i - 1], decimalType, "Н*м"));
                normatives.Parameters.Add(param27);

                //Закрытие - Время срабатывания арматуры
                var param28 = new Parameter("Время срабатывания арматуры", "Z_T_hoda", ParameterType.Close);
                param28.Values.Add(new ParameterValue(i++, "Z_T_hoda_nom", ValueType.Nominal, normparams[i - 1], decimalType, "с."));
                param28.Values.Add(new ParameterValue(i++, "Z_T_hoda_min", ValueType.Minimum, normparams[i - 1], decimalType, "с."));
                param28.Values.Add(new ParameterValue(i++, "Z_T_hoda_max", ValueType.Maximum, normparams[i - 1], decimalType, "с."));
                normatives.Parameters.Add(param28);

                //Открытие - Активная мощность для настройки ОНМ электропривода
                var param29 = new Parameter("Активная мощность для настройки ОНМ электропривода", "O_P_nastr", ParameterType.Open);
                param29.Values.Add(new ParameterValue(i++, "O_P_nastr_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param29.Values.Add(new ParameterValue(i++, "O_P_nastr_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param29.Values.Add(new ParameterValue(i++, "O_P_nastr_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param29);

                //Открытие - Средняя активная мощность без параметров среды
                var param30 = new Parameter("Средняя активная мощность без параметров среды", "O_P_rab", ParameterType.Open);
                param30.Values.Add(new ParameterValue(i++, "O_P_rab_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param30.Values.Add(new ParameterValue(i++, "O_P_rab_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param30.Values.Add(new ParameterValue(i++, "O_P_rab_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param30);

                //Открытие - Средняя активная мощность с параметрами среды
                var param31 = new Parameter("Средняя активная мощность с параметрами среды", "O_P_rab+sreda", ParameterType.Open);
                param31.Values.Add(new ParameterValue(i++, "O_P_rab+sreda_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param31.Values.Add(new ParameterValue(i++, "O_P_rab+sreda_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param31.Values.Add(new ParameterValue(i++, "O_P_rab+sreda_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param31);

                //Открытие - Колебания активной мощности
                var param32 = new Parameter("Колебания активной мощности", "O_P_koleb", ParameterType.Open);
                param32.Values.Add(new ParameterValue(i++, "O_P_koleb_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param32.Values.Add(new ParameterValue(i++, "O_P_koleb_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param32.Values.Add(new ParameterValue(i++, "O_P_koleb_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param32);

                //Открытие - Активная мощность при срабатывании КВ,ОНМ
                var param33 = new Parameter("Активная мощность при срабатывании КВ,ОНМ", "O_P_zatyag", ParameterType.Open);
                param33.Values.Add(new ParameterValue(i++, "O_P_zatyag_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param33.Values.Add(new ParameterValue(i++, "O_P_zatyag_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param33.Values.Add(new ParameterValue(i++, "O_P_zatyag_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param33);

                //Открытие - Активная мощность в крайнем положении
                var param34 = new Parameter("Активная мощность в крайнем положении", "O_P_zatyag+", ParameterType.Open);
                param34.Values.Add(new ParameterValue(i++, "O_P_zatyag+_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param34.Values.Add(new ParameterValue(i++, "O_P_zatyag+_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param34.Values.Add(new ParameterValue(i++, "O_P_zatyag+_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param34);

                //Открытие - Активная мощность подрыва запорного органа
                var param35 = new Parameter("Активная мощность подрыва запорного органа", "O_P_sryv", ParameterType.Open);
                param35.Values.Add(new ParameterValue(i++, "O_P_sryv_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param35.Values.Add(new ParameterValue(i++, "O_P_sryv_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param35.Values.Add(new ParameterValue(i++, "O_P_sryv_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param35);

                //Закрытие - Активная мощность для настройки ОНМ электропривода
                var param36 = new Parameter("Активная мощность для настройки ОНМ электропривода", "Z_P_nastr", ParameterType.Close);
                param36.Values.Add(new ParameterValue(i++, "Z_P_nastr_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param36.Values.Add(new ParameterValue(i++, "Z_P_nastr_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param36.Values.Add(new ParameterValue(i++, "Z_P_nastr_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param36);

                //Закрытие - Средняя активная мощность без параметров среды
                var param37 = new Parameter("Средняя активная мощность без параметров среды", "Z_P_rab", ParameterType.Close);
                param37.Values.Add(new ParameterValue(i++, "Z_P_rab_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param37.Values.Add(new ParameterValue(i++, "Z_P_rab_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param37.Values.Add(new ParameterValue(i++, "Z_P_rab_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param37);

                //Закрытие - Средняя активная мощность с параметрами среды
                var param38 = new Parameter("Средняя активная мощность с параметрами среды", "Z_P_rab+sreda", ParameterType.Close);
                param38.Values.Add(new ParameterValue(i++, "Z_P_rab+sreda_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param38.Values.Add(new ParameterValue(i++, "Z_P_rab+sreda_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param38.Values.Add(new ParameterValue(i++, "Z_P_rab+sreda_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param38);

                //Закрытие - Колебания активной мощности
                var param39 = new Parameter("Колебания активной мощности", "Z_P_koleb", ParameterType.Close);
                param39.Values.Add(new ParameterValue(i++, "Z_P_koleb_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param39.Values.Add(new ParameterValue(i++, "Z_P_koleb_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param39.Values.Add(new ParameterValue(i++, "Z_P_koleb_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param39);

                //Закрытие - Активная мощность при срабатывании КВ,ОНМ
                var param40 = new Parameter("Активная мощность при срабатывании КВ,ОНМ", "Z_P_zatyag", ParameterType.Close);
                param40.Values.Add(new ParameterValue(i++, "Z_P_zatyag_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param40.Values.Add(new ParameterValue(i++, "Z_P_zatyag_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param40.Values.Add(new ParameterValue(i++, "Z_P_zatyag_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param40);

                //Закрытие - Активная мощность в крайнем положении
                var param41 = new Parameter("Активная мощность в крайнем положении", "Z_P_zatyag+", ParameterType.Close);
                param41.Values.Add(new ParameterValue(i++, "Z_P_zatyag+_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param41.Values.Add(new ParameterValue(i++, "Z_P_zatyag+_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param41.Values.Add(new ParameterValue(i++, "Z_P_zatyag+_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param41);

                //Закрытие - Активная мощность подрыва запорного органа
                var param42 = new Parameter("Активная мощность подрыва запорного органа", "Z_P_sryv", ParameterType.Close);
                param42.Values.Add(new ParameterValue(i++, "Z_P_sryv_nom", ValueType.Nominal, normparams[i - 1], decimalType, "кВт"));
                param42.Values.Add(new ParameterValue(i++, "Z_P_sryv_min", ValueType.Minimum, normparams[i - 1], decimalType, "кВт"));
                param42.Values.Add(new ParameterValue(i++, "Z_P_sryv_max", ValueType.Maximum, normparams[i - 1], decimalType, "кВт"));
                normatives.Parameters.Add(param42);

                //Открытие - Переходная формула вычисления момента
                var param43 = new Parameter("Переходная формула вычисления момента", "O_Formula", ParameterType.Open);
                param43.Values.Add(new ParameterValue(i++, "O_Formula_A", ValueType.ParameterA, normparams[i - 1], decimalType, "кВт"));
                param43.Values.Add(new ParameterValue(i++, "O_Formula_B", ValueType.ParameterB, normparams[i - 1], decimalType, "Н*м/кВт"));
                normatives.Parameters.Add(param43);

                //Закрытие - Переходная формула вычисления момента
                var param44 = new Parameter("Переходная формула вычисления момента", "Z_Formula", ParameterType.Close);
                param44.Values.Add(new ParameterValue(i++, "Z_Formula_A", ValueType.ParameterA, normparams[i - 1], decimalType, "кВт"));
                param44.Values.Add(new ParameterValue(i++, "Z_Formula_B", ValueType.ParameterB, normparams[i - 1], decimalType, "Н*м/кВт"));
                normatives.Parameters.Add(param44);

                return normatives;
            }
            catch (Exception ex)
            {
                return null;
            }
        }