예제 #1
0
 void GEN_START()
 {
     GEN.SOURCE(1);//всегда вызывается перед параметрами!!!
     GEN.POW(LEVEL.ToString());
     GEN.OUT1(1);
     GEN.SEND();
 }
예제 #2
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;
            }
        }