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