Q4GA1_RDPARMS

Lê parâmetros de identificação e de rede do modem celular Q4GA1 (IMEI, ICCID, IMSI, operadora, endereço IP e tecnologia de rede), exigindo que o modem esteja com a conexão fechada quando START é acionado; opcionalmente sincroniza o RTC do controlador com a hora da rede celular. É 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

             Q4GA1_RDPARMS
          +------------------+
  BOOL ---|START         DONE|--- BOOL
          |                  |
  BOOL ---|SYNC_RTC    RESULT|--- INT
          |                  |
          |           NET_TEC|--- SINT
          |                  |
STRING ---|IMEI ------------ |---
          |                  |
STRING ---|ICCID ----------- |---
          |                  |
STRING ---|IMSI ------------ |---
          |                  |
STRING ---|NET_OPER -------- |---
          |                  |
STRING ---|NET_ADDR -------- |---
          +------------------+

O bloco é executado a cada transição de START e adquire informações estáticas e dinâmicas do modem: identificadores do módulo (IMEI) e do SIM Card (ICCID, IMSI) e parâmetros de rede (operadora, endereço IP e tecnologia). Ao concluir, DONE é acionado (TRUE) e RESULT indica o resultado do processo.

Os parâmetros do SIM Card (ICCID, IMSI) e da rede (NET_OPER, NET_ADDR, NET_TEC) só são preenchidos se houver um SIM Card válido e o modem estiver registrado e autenticado na rede; caso contrário, as saídas correspondentes mantêm seus valores padrão (strings vazias e valores numéricos zerados).

Importante

A execução exige que o modem esteja com o estado de conexão fechado (status “OFF”) no momento em que START for acionado. Caso contrário, o bloco retorna o código de erro GL_INV_STT.

Dica

O gerenciamento do estado de conexão e desconexão do modem deve ser feito com o bloco de função Q4GA1_CONTROLLER ou Q4GA1_SET_MODE.

Dica

Para conhecer melhor o recurso e suas funcionalidades acesse o vídeo tutorial: Bloco de função Q4GA1_RDPARMS para obtenção das informações da rede celular.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

FALSE

—

Habilita a operação do bloco. Executado apenas a cada transição de START.

SYNC_RTC

IN

BOOL

FALSE

—

Sincroniza o relógio de tempo real (RTC) do controlador com a data/hora da rede celular. Só ocorre se o modem estiver registrado na rede; não há código de retorno específico se não ocorrer.

IMEI

IN_OUT

STRING

—

mín. 15 car.

String que recebe o IMEI adquirido pelo modem.

ICCID

IN_OUT

STRING

—

mín. 20 car.

String que recebe o ICCID adquirido pelo modem. Só é preenchida se houver SIM Card.

IMSI

IN_OUT

STRING

—

mín. 15 car.

String que recebe o IMSI adquirido pelo modem. Só é preenchida se houver SIM Card.

NET_OPER

IN_OUT

STRING

—

—

String com o nome da operadora à qual o modem está conectado/autenticado. Preenchida apenas se a conexão de rede for bem-sucedida.

NET_ADDR

IN_OUT

STRING

—

mín. 15 car.

String com o endereço IP (IPv4) atribuído ao modem pela rede celular. Preenchida se o modem estiver conectado/autenticado.

DONE

OUT

BOOL

FALSE

—

Sinaliza o fim do processo. Consulte RESULT para saber se houve sucesso.

RESULT

OUT

INT

0

RET_CODE

Código de retorno do processo (ver Códigos de retorno).

NET_TEC

OUT

SINT

0

0 / 2 / 4

Tecnologia da rede autenticada: 0 = leitura não executada/erro; 2 = 2G (GSM); 4 = 4G (LTE). Preenchida apenas se o modem estiver conectado/autenticado.

Códigos de retorno

RESULT carrega o código de retorno do processo. Use os identificadores com o namespace HILS (ex.: HILS.GL_INV_STT). Códigos mais comuns deste bloco:

Código

Identificador

Significado

0

SUCCESS

Processo executado com sucesso.

4

GL_HDW_SUP

Equipamento sem suporte de hardware (hardware não possui modem 4GA1).

8

GL_INV_STT

Estado corrente inválido (o módulo está com a conexão aberta).

13

GL_FUNC_FAIL

Falha na execução do comando (comandos ao modem não executados; algum parâmetro pode estar inválido).

80

CO_EQP_TMO

Timeout na resposta de equipamento externo (não houve resposta do modem).

81

CO_PTC_ERR

Erro de protocolo (não foi possível configurar o canal de comunicação com o modem).

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

Pré-condições

  • O equipamento deve possuir hardware com modem 4GA1.

  • O modem deve estar com o estado de conexão fechado quando START for acionado.

  • As strings IMEI, IMSI e NET_ADDR devem ter tamanho mínimo de 15 caracteres e ICCID de 20 caracteres.

Observações

  • O bloco é sensível à transição de START.

  • Os dados de SIM Card e rede só são atualizados com SIM Card válido e modem registrado/autenticado; caso contrário, mantêm os valores padrão.

  • A sincronização por SYNC_RTC só ocorre com o modem registrado na rede; não há código de retorno específico para a falha dessa sincronização.

Ver também

Q4GA1_CONTROLLER, Q4GA1_SET_MODE

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    GET_MODEM_PARMS   : HILS.Q4GA1_RDPARMS;
    MODEM_PARMS_START : BOOL;
    MODEM_PARMS_RET   : INT;
    SYNC_RTC          : BOOL;
    START_MODE        : BOOL;
    SETMODE           : HILS.Q4GA1_SET_MODE;
    MODEM_STS         : INT;
    MODE              : USINT;
    STATE             : SINT;
    IMEI              : STRING[15];
    ICCID             : STRING[20];
    IMSI              : STRING[15];
    NET_OPER          : STRING[10];
    NET_ADDR          : STRING[15];
    NET_TEC           : SINT;
END_VAR

(* ------------------------------------------------------ *)
(* Maquina de estado principal                            *)
(* ------------------------------------------------------ *)
CASE STATE OF
  1: (* Fecha conexao aberta *)
    MODE       := 0;
    START_MODE := TRUE;
    STATE      := 2;

  2:  (* Aguarda modem Q4GA1 com conexao fechada *)
    IF (SETMODE.EV) THEN
      IF (SETMODE.RESULT = 0) THEN
        START_MODE := FALSE;
        MODEM_PARMS_START := TRUE;
        STATE := 3;
      END_IF;
    END_IF;

  3:  (* Aguarda fim da leitura dos parametros do modem Q4GA1 *)
    IF (GET_MODEM_PARMS.DONE = TRUE) THEN
      MODEM_PARMS_START := FALSE;
      MODEM_PARMS_RET   := GET_MODEM_PARMS.RESULT;
      NET_TEC           := GET_MODEM_PARMS.NET_TEC;
      STATE := 10;
    END_IF;

  10: (* Volta configuracao do modem para conexao com servidor destino *)
    MODE          := 1;  (* MODO RUN *)
    START_MODE    := TRUE;
    STATE         := 11;

  11:  (* Aguarda mode com conexao ABERTA *)
    IF (SETMODE.EV) THEN
      IF (SETMODE.RESULT = 0) THEN
        START_MODE := FALSE;
        STATE := 0;
      END_IF;
    END_IF;

END_CASE;

GET_MODEM_PARMS(
  START    := MODEM_PARMS_START,  (* [BOOL] Habilita operacao do bloco *)
  SYNC_RTC := SYNC_RTC,
  IMEI     := IMEI,
  ICCID    := ICCID,
  IMSI     := IMSI,
  NET_OPER := NET_OPER,
  NET_ADDR := NET_ADDR
  );

SETMODE(
  START := START_MODE,  (* [BOOL] Start do bloco *)
  MODE  := MODE         (* [USINT] [0] Modo CONFIG e [1] Modo RUN *)
  );

MODEM_STS := HILS.Q4GA1_GETSTS();