Esempio n. 1
0
 void GEN_START()
 {
     GEN.SOURCE(1);//всегда вызывается перед параметрами!!!
     GEN.POW(LEVEL.ToString());
     GEN.OUT1(1);
     GEN.SEND();
 }
Esempio n. 2
0
        public void STATE_NEXT()
        {
            double n_sch  = (FREQ_END - FREQ_START) / FREQ_STEP;
            double step_p = 70 / n_sch;

            switch (st)
            {
            case STATE.START:
                Console.WriteLine("Шаг1: подготовка генератора сигналов и блока 072");
                GEN_START();
                MASTER.SWITCH(false);    //выключаем ключи на входе
                MASTER.ATT_CONTROL(0);   //выключаем аттенюаторы
                FUN1();

                var z = CMD_REALTIME_UPDATE(FREQ);    //готовим блок 072
                MASTER.panel_Sint.FUNC_LIST_UPDATE(z);

                TIMER_DELAY = 1000;
                st          = st + 1;
                FLAG_END    = false;
                PROGRESS    = 10;
                break;

            case STATE.ST1:
                Console.WriteLine("Шаг1:устанавливаем генератор на центральную частоту для измерения опорного сигнала");
                GEN.FREQ(435000000);
                GEN.SEND();
                TIMER_DELAY = 500;
                st          = st + 1;
                PROGRESS    = 20;
                break;

            case STATE.ST2:
                Console.WriteLine("Шаг2:измерение параметров сигнала установленного в центр спектра");
                Analize_OP();
                GEN.FREQ(FREQ);
                GEN.SEND();
                A_oporn = dat.A;    //запоминаем опорный уровень
                WriteLine("A_oporn:" + A_oporn);
                TIMER_DELAY = 500;  //500
                st          = st + 1;
                PROGRESS    = 30;
                break;

            case STATE.ST3:
                Console.WriteLine("Шаг3:перебираем частоты");
                WriteLine("FREQ:" + FREQ);
                GEN.FREQ(FREQ);
                GEN.SEND();
                TIMER_DELAY = TIME_DELAY - 50;
                st          = st + 1;
                PROGRESS   += step_p;
                break;

            case STATE.ST4:
                Console.WriteLine("Шаг4:измерение параметров");
                Analize();
                WriteLine("dat.A:" + dat.A);
                TIMER_DELAY = 50;    //500
                st          = st + 1;
                break;

            case STATE.ST5:
                Console.WriteLine("Шаг5:смена частоты");
                if (FREQ < FREQ_END)
                {
                    FREQ = FREQ + FREQ_STEP;
                    st   = STATE.ST3;
                }
                else
                {
                    st = STATE.Calc;
                }
                TIMER_DELAY = 10;    //
                break;

            case STATE.Calc:
                Console.WriteLine("Шаг4:расчёт");
                //      Analize2();
                FINAL();
                SAVE_DATA();    //сохраняем измеренные данные в файл
                FLAG_END = true;
                PROGRESS = 100;
                st       = STATE.END;
                break;
            }
        }
Esempio n. 3
0
        public void STATE_NEXT()
        {
            string error  = "";
            string msg    = "";
            int    CHANAL = 0;

            double step_proces1 = 0;
            double N_step       = 0;

            N_step       = (((double)(FREQ_END - FREQ_START)) / FREQ_STEP);
            step_proces1 = 90 / N_step;

            switch (st)
            {
            case STATE.START:
                Console.WriteLine("Шаг1: подготовка генератора сигналов и блока 072");
                GEN_START(1);
                MASTER.SWITCH(false);    //выключаем ключи на входе
                //if (Number_chanal == 1) MASTER.ATT_CH_CONTROL(0, 31,31, 31);//
                //if (Number_chanal == 2) MASTER.ATT_CH_CONTROL(31, 0,31, 31);//
                //if (Number_chanal == 3) MASTER.ATT_CH_CONTROL(31,31, 0, 31);//
                //if (Number_chanal == 4) MASTER.ATT_CH_CONTROL(31,31,31,  0);//
                MASTER.ATT_CORR_CONTROL(0, 0, 0, 0);
                FUN1();
                var z = CMD_REALTIME_UPDATE(FREQ);    //готовим блок 072
                MASTER.panel_Sint.FUNC_LIST_UPDATE(z);
                TIMER_DELAY = 1000;
                st          = st + 1;
                FLAG_END    = false;
                PROGRESS    = 1;
                break;

            case STATE.ST1:
                Console.WriteLine("Шаг1:устанавливаем генератор на заданную частоту");
                //  WriteLine("FREQ:"+FREQ);
                GEN.FREQ(FREQ);
                GEN.SEND();
                TIMER_DELAY = TIME_DELAY - 10;
                st          = st + 1;
                break;

            case STATE.ST2:
                Console.WriteLine("Шаг2:измерение параметров");
                ERROR_MEAS = Analize(sch);
                if (ERROR_MEAS == 1)
                {
                    sch++;
                    TIMER_DELAY = 10;
                    st          = STATE.ST1;
                    break;
                }
                //  WriteLine("dat.A:"+ dat.A);
                TIMER_DELAY = 10;    //500
                st          = st + 1;
                break;

            case STATE.ST3:
                Console.WriteLine("Шаг3:смена частоты");
                if (FREQ < FREQ_END)
                {
                    FREQ = FREQ + FREQ_STEP;
                    st   = STATE.ST1;
                }
                else
                {
                    st = STATE.Calc;
                }
                PROGRESS    = PROGRESS + step_proces1;
                TIMER_DELAY = 10;    //
                break;

            case STATE.Calc:
                Console.WriteLine("Шаг4:расчёт неравномерности АЧХ");
                GEN_START(0);
                Analize2();
                SAVE_DATA();    //сохраняем измеренные данные в файл
                FLAG_END = true;
                st       = STATE.END;
                break;
            }
        }
Esempio n. 4
0
        public void STATE_NEXT()
        {
            string error  = "";
            string msg    = "";
            int    CHANAL = 0;

            double step_proces1 = 0;
            double N_step       = 0;

            N_step       = (((double)(FREQ_END - FREQ_START)) / FREQ_STEP);
            step_proces1 = 75 / N_step;

            switch (st)
            {
            case STATE.START:
                Console.WriteLine("Шаг1: подготовка генератора сигналов и блока 072");
                GEN_START(1);
                MASTER.SWITCH(false);    //выключаем ключи на входе
                if (Number_chanal == 1)
                {
                    MASTER.ATT_CH_CONTROL(0, 31, 31, 31);                        //
                }
                if (Number_chanal == 2)
                {
                    MASTER.ATT_CH_CONTROL(31, 0, 31, 31);                        //
                }
                if (Number_chanal == 3)
                {
                    MASTER.ATT_CH_CONTROL(31, 31, 0, 31);                        //
                }
                if (Number_chanal == 4)
                {
                    MASTER.ATT_CH_CONTROL(31, 31, 31, 0);                        //
                }
                FUN1();
                var z = CMD_REALTIME_UPDATE(FREQ);    //готовим блок 072
                MASTER.panel_Sint.FUNC_LIST_UPDATE(z);
                TIMER_DELAY = 1000;
                st          = st + 1;
                FLAG_END    = false;
                PROGRESS    = 1;
                break;

            case STATE.ST1:
                Console.WriteLine("Шаг1:устанавливаем генератор на заданную частоту");
                //  WriteLine("FREQ:"+FREQ);
                GEN.FREQ(FREQ);
                GEN.SEND();
                TIMER_DELAY = TIME_DELAY - 10;
                st          = st + 1;
                break;

            case STATE.ST2:
                Console.WriteLine("Шаг2:измерение параметров");
                Analize();
                WriteLine("dat.A:" + dat.A);

                TIMER_DELAY = 10;    //500
                st          = st + 1;
                PROGRESS    = PROGRESS + step_proces1;
                break;

            case STATE.ST3:
                Console.WriteLine("Шаг3:смена частоты");
                if (FREQ < FREQ_END)
                {
                    FREQ = FREQ + FREQ_STEP;
                    st   = STATE.ST1;
                }
                else
                {
                    st = STATE.ST4;
                }
                TIMER_DELAY = 10;    //
                break;

            case STATE.ST4:
                Console.WriteLine("Шаг4:Калибровка коэффициента передачи");
                LEVEL = int.Parse(cfg.LEVEL_1);     //используем уровень сигнала генератора предназначенного для измерения коэффициента передачи
                GEN_START(1);
                FREQ = Convert.ToInt32(FREQ_A_MAX); //ставим сигнал на частоту с мин. АЧХ
                GEN.FREQ(FREQ);
                GEN.SEND();
                TIMER_DELAY = 500;    //500
                st          = st + 1;
                PROGRESS    = PROGRESS + step_proces1;
                break;

            case STATE.ST5:
                Console.WriteLine("Шаг4:измерение параметров");
                Analize3();
                WriteLine("dat.A:" + dat.A);
                A_MAX = dat.A;

                if ((Din_izm < 60) && (ATTEN < (double.Parse(cfg.ATT_CORRECT_MAX))))
                {
                    ATTEN = ATTEN + 0.5;
                    MASTER.ATT_CONTROL(ATTEN);
                    Console.WriteLine("ATTEN:" + ATTEN);
                    st = STATE.ST5;
                }
                else
                {
                    if (ATTEN > double.Parse(cfg.ATT_CORRECT_MAX))
                    {
                        FLAG_CAL_KU_ERROR = 1;
                    }
                    ATT_COR = ATTEN;
                    st      = STATE.Calc;
                }
                TIMER_DELAY = 2000;    //
                PROGRESS    = PROGRESS + 4;
                break;

            case STATE.Calc:
                Console.WriteLine("Шаг4:расчёт неравномерности АЧХ");
                GEN_START(0);
                FLAG_END = true;
                st       = STATE.END;
                SAVE_DATA();    //сохраняем измеренные данные в файл
                Analize2();
                break;
            }
        }
Esempio n. 5
0
        void STATE_MASHINE1()
        {
            string error = "";
            string msg   = "";

            double step_proces1 = 0;
            double step_proces2 = 0;
            double N_step       = 0;

            N_step       = (((double)(FREQ_END - FREQ_START)) / FREQ_STEP);
            step_proces1 = 90 / N_step;

            switch (st)
            {
            case STATE.START:
                Console.WriteLine("Шаг1:включаем блок 072");
                GEN_STOP();
                //MASTER.BP.PWR_ALL(1);//все каналы выключить!
                //MASTER.BP.PWR_8(0);//включаем восьмой канал
                TIMER_DELAY = 6000;
                st          = st + 1;
                FLAG_END    = false;
                break;

            case STATE.ST0_1:
                ERROR_MSG += "Переводим блок в рабочий режим.\r\n";
                //     MASTER.DUT_072_START();//запускаем тестируемый блок 072
                msg         = ".";
                ERROR_MSG  += msg;
                TIMER_DELAY = 10; //
                sch         = 0;  //счётчик числа попыток
                sch1        = 0;
                //st = st + 1;
                st       = STATE.ST0_5;
                PROGRESS = 3;
                break;

            case STATE.ST0_2:
                MASTER.DUT_072_START(); //запускаем тестируемый блок 072
                TIMER_DELAY = 4000;     //
                msg         = "";
                st          = st + 1;
                PROGRESS    = 4;
                break;

            case STATE.ST0_3:
                //
                TIMER_DELAY = 100;    //
                st          = st + 1; //STATE.ST0_5
                PROGRESS    = 5;
                break;

            case STATE.ST0_4:
                if (MASTER.b072.STATUS != 1)
                {
                    if (sch < 5)
                    {
                        msg += ".";
                        st   = STATE.ST0_3;
                        sch++;
                        ERROR_MSG  += msg;
                        TIMER_DELAY = 1000;    //
                        break;
                    }
                    else
                    if (sch1 < 3)
                    {
                        msg += ".";
                        st   = STATE.ST0_2;
                        sch  = 0;
                        sch1++;
                        ERROR_MSG  += msg;
                        TIMER_DELAY = 100;    //
                        break;
                    }
                    else
                    {
                        msg        += "\r\n";
                        msg        += " - Блок не переводится в рабочий режим!\r\n";
                        error      += msg;
                        ERROR_MSG  += msg;
                        st          = STATE.Final;
                        TIMER_DELAY = 100;    //
                        break;
                    }
                }
                else
                {
                    msg = "\r\n - Блок в рабочем режиме.\r\n";
                }
                ERROR_MSG  += msg;
                TIMER_DELAY = 100;    //
                st          = st + 1;
                PROGRESS    = 6;
                break;

            case STATE.ST0_5:
                Console.WriteLine("Шаг2: подготовка генератора сигналов и блока 072");
                MASTER.SWITCH(false);                   //выключаем ключи на входе
                MASTER.ATT_CONTROL(31);                 //включаем аттенюаторы на максимум
                FUN1();
                var z = CMD_REALTIME_UPDATE(435000000); //готовим блок 072
                MASTER.panel_Sint.FUNC_LIST_UPDATE(z);
                PROGRESS    = 7;
                TIMER_DELAY = 1000;
                st          = st + 1;
                break;

            case STATE.ST0_6:
                Console.WriteLine("Шаг3:устанавливаем генератор на заданную частоту и включаем максимальный сигнал");
                LEVEL_MAX = double.Parse(cfg.LEVEL_MAX);
                LEVEL     = LEVEL_MAX;
                GEN.SOURCE(2);
                GEN.FREQ(FREQ_TEST);
                GEN.SEND();
                GEN_START(LEVEL.ToString());
                TIMER_DELAY = 3000;
                PROGRESS    = 8;
                st          = st + 1;
                break;

            case STATE.ST0_7:
                Console.WriteLine("Шаг4:выключаем максимальный сигнал");
                GEN_STOP();
                TIMER_DELAY = 1000;
                st          = st + 1;
                PROGRESS    = 9;
                break;

            case STATE.ST0_8:
                Console.WriteLine("Шаг5:Готовимся к проверке параметров канала");
                LEVEL = LEVEL_TEST;
                GEN_START(LEVEL.ToString());
                MASTER.ATT_CONTROL(0);    //включаем аттенюаторы на минимум
                sch         = 0;
                TIMER_DELAY = 100;
                st          = st + 1;
                PROGRESS    = 10;
                break;

            case STATE.ST1:
                Console.WriteLine("Устанавливаем генератор на заданную частоту");
                WriteLine("FREQ:" + FREQ);
                GEN.SOURCE(2);
                GEN.FREQ(FREQ);
                GEN.SEND();
                TIMER_DELAY = TIME_DELAY;
                st          = st + 1;
                break;

            case STATE.ST2:
                Console.WriteLine("Измерение параметров");
                if (Analize(ref sch) != 0)
                {
                    if (sch < 3)
                    {
                        st          = STATE.ST1;
                        TIMER_DELAY = 50;    //
                        break;
                    }
                }
                WriteLine("dat.A:" + dat.A);
                TIMER_DELAY = 50;    //500
                st          = st + 1;
                break;

            case STATE.ST3:
                Console.WriteLine("Смена частоты");
                if (FREQ < FREQ_END)
                {
                    sch      = 0;
                    PROGRESS = PROGRESS + step_proces1;
                    FREQ     = FREQ + FREQ_STEP;
                    st       = STATE.ST1;
                }
                else
                {
                    st = STATE.Calc;
                }
                TIMER_DELAY = 10;    //
                break;

            case STATE.Calc:
                Console.WriteLine("Шаг6:расчёт неравномерности АЧХ");
                Analize2();
                SAVE_DATA();    //сохраняем измеренные данные в файл
                FLAG_END = true;
                st       = STATE.END;
                break;

            case STATE.Final:
                Console.WriteLine("END");
                MessageBox.Show("Блок 072 не отвечает!");
                FLAG_END = true;
                break;
            }
        }