if(SostTransmitGSM==30)
    {//проверяем регистрацию AT+CREG?
    if(SostGetAT==GetATSostReady && TimerTON(&TimZadGSM))
      {//отправка команды AT+CREG
#if OTLADKA!=0       
      putstrfifo0("Сеанс связи. Проверка регистрации в сети. Попытка ");
      PutDecuFifo0(ChZapros);putstrfifo0("\r\n");
#endif      
      putstrfifo2("AT+CREG?\r");
      StartGetATKomand();
      }
    if(SostGetAT==GetATSostBusy)
      {//выполнение команды
      Get2ATKomand(stroka1,stroka2,TimoutModemCREG);
      }
    if(SostGetAT==GetATSostError)
      {//ошибка
      ChZapros++;
      if(ChZapros>=KolvoPovtorCREG)
        {//ошибка модема
#if OTLADKA!=0       
        putstrfifo0("Сеанс связи. Нет ответа на AT+CREG\r\n");
#endif         
        SostTransmitGSM=250;
        GlobalD.FlagiErrorGSM|=(1<<NoResponsCREG);
        }
      SostGetAT=GetATSostReady;
      }
    if(SostGetAT==GetATSostComplit)
      {//команда выполнена
      SostGetAT=GetATSostReady;
#if OTLADKA!=0       
      putstrfifo0("Сеанс связи. Ответ на AT+CREG <");
      PutStrFifoM0(stroka1);putstrfifo0(">\r\n");
      putstrfifo0("Сеанс связи. Ответ на AT+CREG <");
      PutStrFifoM0(stroka2);putstrfifo0(">\r\n");
#endif      
      if(SravStrok(stroka1,strCREG,20))
        {
#if OTLADKA!=0       
        putstrfifo0("Сеанс связи. Ответ на AT+CREG. Ништяк!\r\n");
#endif          
        SostTransmitGSM=40;
        TimerTONStart(&TimZadGSM,TimoutModemCGATT);
        ChZapros=0;//счетчик повторов
        }
      else
        {
#if OTLADKA!=0       
        putstrfifo0("Сеанс связи. Ответ на AT+CREG. Косяк!\r\n");
#endif   
        TimerTONStart(&TimZadGSM,TimoutModemCREG);
        ChZapros++;// счетчик запросов
        if(ChZapros>=KolvoPovtorCREG)
          {
          SostTransmitGSM=250;      
          GlobalD.FlagiErrorGSM|=(1<<NoResponsCREG);//Установить флаг ошибки
          }
        }
      }
    }