QC1_CFG

Envia uma sequência de comandos AT a um modem para configurá-lo e habilitá-lo na rede celular 4G. Requer que o bloco seja habilitado e que uma transição de subida ocorra em START, que deve permanecer em nível alto durante toda a execução. É um bloco de função (mantém estado entre scans; requer instância).

Biblioteca: HI_STD · Namespace: HILS · Tipo: bloco de função

Bloco de função

                   QC1_CFG
           +---------------------+
  BOOL ----|START           READY|---- BOOL
           |                     |
  BOOL ----|FORCE_CFG    DONE_EVT|---- BOOL
           |                     |
 USINT ----|COMM_SRC       RESULT|---- UINT
           |                     |
           |              ACC_STS|---- SINT
           |                     |
           |              NET_QLT|---- SINT
           |                     |
           |              NSI_MOD|---- UINT
           |                     |
           |               IP_LOC|---- DINT
           |                     |
           |             NET_OPER|---- STRING
           |                     |
           |             QC1_IMEI|---- STRING
           |                     |
           |            QC1_ICCID|---- STRING
           |                     |
STRING ----|PIN ---------------- |----
           |                     |
STRING ----|APN ---------------- |----
           |                     |
STRING ----|USER --------------- |----
           |                     |
STRING ----|PASSW -------------- |----
           +---------------------+

Após ser habilitado, o bloco aguarda uma transição de subida em START para iniciar a configuração do modem. A entrada START deve permanecer em nível alto durante a execução. A cada evento de erro nas etapas de configuração, a saída DONE_EVT gera um pulso de 1 ciclo de scan e o código correspondente é apresentado em RESULT.

A saída READY indica que o modem foi configurado com sucesso. Ela retorna a zero se houver transição de descida em START ou se o acesso à rede ficar indisponível.

Se qualquer um dos parâmetros PIN, APN, USER ou PASSW for modificado, um novo pulso em START deve ser gerado para reconfigurar o modem.

Nota

Para abrir conexão com IP e porta especificados, utilize o bloco QC1_CONN.

Parâmetros

Nome

Direção

Tipo

Dimensão

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

—

FALSE

—

Habilita o início da configuração (avaliado por transição de subida).

FORCE_CFG

IN

BOOL

—

TRUE

—

Quando ativo, força a reconfiguração da rede mesmo que já esteja configurada.

COMM_SRC

IN

USINT

—

0

0 .. 23

Canal de comunicação associado ao módulo do modem (ver tabela abaixo).

PIN

IN_OUT

STRING

:*

—

—

Número PIN do SIM Card.

APN

IN_OUT

STRING

:*

—

—

APN da rede celular utilizada.

USER

IN_OUT

STRING

:*

—

—

Nome de usuário da operadora (pode ser vazio em alguns casos).

PASSW

IN_OUT

STRING

:*

—

—

Senha da operadora (pode ser vazia em alguns casos).

READY

OUT

BOOL

—

FALSE

—

Sinaliza que a configuração foi executada com sucesso.

DONE_EVT

OUT

BOOL

—

FALSE

—

Evento do bloco: ativo por 1 ciclo de scan a cada resultado.

RESULT

OUT

UINT

—

0

RET_CODE

Resultado da execução do bloco (ver Códigos de retorno).

ACC_STS

OUT

SINT

—

-1

0 .. 5

Status de registro na rede celular durante a inicialização.

NET_QLT

OUT

SINT

—

0

0 .. 100 %

Qualidade do sinal.

NSI_MOD

OUT

UINT

—

0

0 .. 7

Status da rede celular (Network Status Indicator; equivale à variável F138).

IP_LOC

OUT

DINT

—

0

—

IP obtido pela rede celular.

NET_OPER

OUT

STRING

:10

—

—

Nome da operadora autenticada.

QC1_IMEI

OUT

STRING

:25

—

—

IMEI do modem.

QC1_ICCID

OUT

STRING

:30

—

—

ICCID do chip celular.

O canal informado em COMM_SRC é identificado por um valor numérico (namespace HILS):

Identificador

Valor

Interface

COM1_PORT_ID .. COM8_PORT_ID

0 .. 7

Portas seriais

SOCK0_PORT_ID .. SOCK7_PORT_ID

8 .. 15

Sockets Ethernet 1

ETH2_SOCK0_PORT_ID .. ETH2_SOCK7_PORT_ID

16 .. 23

Sockets Ethernet 2

Códigos de retorno

RESULT carrega o código do último evento de configuração. Códigos mais comuns deste bloco:

Código

Identificador

Significado

0

SUCCESS

Processo executado com sucesso.

10

GL_CMD_TMO

Timeout na execução do comando (erro no comando de reset).

15

GL_HDW_FAIL

Falha de hardware (modem não responde).

180

CN_PIN_ERR

PIN bloqueado, número do PIN errado ou PIN Security não desbloqueado.

181

CN_SIM_CARD_ERR

Sem SIM Card inserido ou erro de leitura do SIM Card.

182

CN_NO_NET

Não detectou rede (não se autoconectou em nenhuma rede).

183

CN_REGISTER_DENIED

Registro na rede negado.

184

CN_INV_AUTH_DATA

APN, usuário e/ou senha inválidos.

185

CN_AUTH_DENIED

Não foi possível ativar o perfil nem obter um IP válido na rede.

Lista completa dos códigos de retorno: RET_CODE - Códigos de retorno do firmware G5.

Pré-condições

  • O bloco deve estar habilitado antes da transição de subida em START.

  • START deve permanecer em nível alto durante toda a execução.

  • Ao alterar PIN, APN, USER ou PASSW, gere um novo pulso em START.

Observações

  • ACC_STS reflete o status de registro na rede durante a inicialização:

    Valor

    Descrição

    0

    not registered, the MT is not currently searching a new operator to register to

    1

    registered, home network

    2

    not registered, but the MT is currently searching a new operator to register to

    3

    registration denied

    4

    unknown (e.g. out of GERAN/UTRAN/E-UTRAN coverage)

    5

    registered, roaming

  • NSI_MOD (Network Status Indicator) usa os mesmos valores da variável de sistema F138:

    Valor

    Descrição

    0

    Modem não disponível

    1

    Modem em reset

    2

    Sem rede disponível / chip desconectado / procurando rede

    3

    Rede 2G detectada

    4

    Rede 3G/4G detectada

    5

    Rede 4G detectada (NBIOT)

    6

    Rede Roaming 2G detectada

    7

    Rede Roaming 3G/4G detectada

Ver também

QC1_CONN

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    START        : BOOL := FALSE;            (* Flag de START do bloco *)
    MY_APN       : STRING := 'claro.com.br'; (* APN do chip *)
    MY_USER      : STRING := 'claro';        (* Usuario da operadora *)
    MY_PASSW     : STRING := 'claro';        (* Senha da operadora *)
    MY_PIN       : STRING := '1010';         (* PIN do chip *)
    MY_OPERADORA : STRING;                   (* Operadora detectada *)
    MY_MODEM_IP  : DINT;                     (* IP na rede *)
    MY_NET_QLT   : SINT := 0;                (* Qualidade do sinal *)
    MY_NSI       : UINT := 0;                (* Network Status Indicator *)
    MODEM_CONFIG : HILS.QC1_CFG;             (* Instancia do bloco de configuracao do MODEM *)
    READY        : BOOL := FALSE;            (* Flag de status do bloco *)
    RESULT       : UINT := 0;                (* Resultado do bloco *)
END_VAR

MODEM_CONFIG(
  START    := START,               (* [BOOL] Habilita inicio da configuracao *)
  COMM_SRC := HILS.COM1_PORT_ID,   (* [USINT] Canal de comunicacao a ser utilizado *)
  APN      := MY_APN,              (* [STRING] APN da operadora *)
  PASSW    := MY_PASSW,            (* [STRING] Senha da operadora *)
  PIN      := MY_PIN,              (* [STRING] PIN do SIM Card *)
  USER     := MY_USER              (* [STRING] Usuario da operadora *)
  );

IF MODEM_CONFIG.DONE_EVT THEN
  MY_OPERADORA := MODEM_CONFIG.NET_OPER;
  MY_MODEM_IP  := MODEM_CONFIG.IP_LOC;
  MY_NET_QLT   := MODEM_CONFIG.NET_QLT;

  RESULT := MODEM_CONFIG.RESULT;
END_IF;

READY  := MODEM_CONFIG.READY;
MY_NSI := MODEM_CONFIG.NSI_MOD;