Q4GA1_RDPARMS

Bloco de Função para Leitura de Parâmetros do Modem 4GA1.

O Bloco de Função Q4GA1_RDPARMS é utilizado para a aquisição de informações estáticas e dinâmicas do modem celular Q4GA1. O bloco realiza a leitura dados de identificação do módulo (IMEI), do SIM Card (ICCID, IMSI), e parâmetros de rede (Operadora, Endereço IP, Tecnologia de Rede).

Funcionalidades Principais:

  • Leitura de identificadores: IMEI, ICCID e IMSI.

  • Leitura de status de rede: Nome da Operadora (NET_OPER), Endereço IP (NET_ADDR) e Tecnologia de Rede (NET_TEC: 2G/GSM ou 4G/LTE).

  • Sincronização opcional do Relógio de Tempo Real (RTC) do controlador com a data e hora fornecidas pela rede celular, através da entrada SYNC_RTC.

Pré-requisito para Execução:

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

Dica

O gerenciamento do estado de conexão e desconexão do modem deve ser realizado utilizando o Bloco de Função Q4GA1_CONTROLLER ou Q4GA1_SET_MODE.

Disponibilidade dos Dados:

Os parâmetros relacionados ao SIM Card (ICCID, IMSI) e à Rede Celular (NET_OPER, NET_ADDR, NET_TEC) serão preenchidos apenas se houver um SIM Card válido e o modem estiver registrado e autenticado na rede. Caso contrário, os parâmetros de saída correspondentes manterão seus valores padrão (strings vazias e valores numéricos zerados).

Bloco

             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 -------- |---
          +------------------+

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

Classe

Tipo

V. Ini.

Descrição

START

Entrada

BOOL

FALSE

Habilita operação do bloco

SYNC_RTC

Entrada

BOOL

FALSE

Flag para sincronizar o relógio calendário do controlador (pela rede celular)

IMEI

Entrada/Saída

STRING

String com IMEI adquirido pelo modem. Tamanho mínimo = 15

ICCID

Entrada/Saída

STRING

String com ICCID adquirido pelo modem. Tamanho mínimo = 20

IMSI

Entrada/Saída

STRING

String com IMSI adquirido pelo modem. Tamanho mínimo = 15

NET_OPER

Entrada/Saída

STRING

String com nome da OPERADORA adquirido pelo modem.

NET_ADDR

Entrada/Saída

STRING

String com endereço IP adquirido pelo modem. Tamanho mínimo = 15

DONE

Saída

BOOL

FALSE

Sinaliza o fim do processo

RESULT

Saída

INT

0

Código de retorno do processo

NET_TEC

Saída

SINT

0

Tecnologia da rede autenticada: [0]: erro, [2]: 2G (GSM), [4]: 4G (LTE)

START

Habilita operação do bloco. Este bloco é executado apenas a cada transição do start.

SYNC_RTC

Sinal booleano para sincronizar o relógio de tempo real (RTC) do controlador com a data e hora fornecidas pela rede celular. A sincronização só é executada se o modem estiver registrado com sucesso na rede. Caso contrário o comando não é executado, e não há nenhum código de retorno específico para estes casos.

IMEI

String com IMEI adquirido pelo modem. Este parâmetro deverá ter tamanho mínimo de 15 caracteres.

ICCID

String com ICCID adquirido pelo modem. Este parâmetro deverá ter tamanho mínimo de 20 caracteres e só será preenchido se o equipamento possuir um SIM Card.

ICCID

String com IMSI adquirido pelo modem. Este parâmetro deverá ter tamanho mínimo de 15 caracteres e só será preenchido se o equipamento possuir um SIM Card.

NET_OPER

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

NET_ADDR

String com o endereço IP (IPv4) atribuído ao modem pela rede celular. Este parâmetro deverá ter tamanho mínimo de 15 caracteres e será preenchido se o modem estiver conectado/autenticado em uma rede com sucesso.

NET_TEC

Inteiro sem sinal que indica tecnologia da rede autenticada pelo modem. Este parâmetro será preenchido somente se se o modem estiver conectado/autenticado em uma rede.

Valor

Descrição

0

Leitura do parâmetro não executada ou erro.

2

Modem operando na rede 2G (GSM)

4

Modem operando na rede 4G (LTE)

DONE

Ao finalizar o(s) processo(s) de configuração a variável booleana DONE é acionada (= TRUE). Para saber se o processo foi executado com sucesso ou não consulte a variável de retorno RESULT.

RESULT

Os erros gerados no processo de configuração é acessado através da variável RESULT, a descrição dos códigos estão listados abaixo:

RESULT

Código

Valor

Descrição Padrão

Possíveis causas

SUCCESS

0

Processo executado com sucesso.

GL_HDW_SUP

4

Equipamento sem suporte de hardware.

Módulo incompatível para o bloco. Hardware não possui modem 4GA1.

GL_INV_STT

8

Estado corrente inválido.

Módulo está com conexão aberta.

GL_FUNC_FAIL

13

Falha na execução da função.

Comandos de configuração enviados ao modem não foram executados com sucesso. Algum parâmetro pode estar inválido.

CO_EQP_TMO

80

Timeout na resposta de equipamento externo (Modem).

Não recebeu resposta do modem para os comandos de configuração.

CO_PTC_ERR

81

Erro de protocolo.

Não foi possível configurar o canal do equipamento para comunicação com modem.

Exemplo

Declaração de variáveis

Nome

Classe

Tipo

Dimensão

GET_MODEM_PARMS

Local

Q4GA1_RDPARMS

MODEM_PARMS_START

Local

BOOL

MODEM_PARMS_RET

Local

INT

SYNC_RTC

Local

BOOL

START_MODE

Local

BOOL

SETMODE

Local

HILS.Q4GA1_SET_MODE

MODEM_STS

Local

INT

MODE

Local

USINT

STATE

Local

SINT

IMEI

Local

STRING

:15

ICCID

Local

STRING

:20

IMSI

Local

STRING

:15

NET_OPER

Local

STRING

:10

NET_ADDR

Local

STRING

:15

NET_TEC

Local

SINT

Clique aqui para baixar a tabela de variáveis

Código ST

// ------------------------------------------------------
// Maquina de estado principal
// ------------------------------------------------------
CASE STATE OF
  1: // Fecha conexão aberta
    MODE       := 0;
    START_MODE := TRUE;
    STATE      := 2;

  2:  // Aguarda modem Q4GA1 com conexão 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 parâmetros 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 configuração do modem para conexão com servidor destino
    MODE          := 1;  // MODO RUN
    START_MODE    := TRUE;
    STATE         := 11;

  11:  // Aguarda mode com conexão ABERTA
    IF (SETMODE.EV) THEN
      IF (SETMODE.RESULT = 0) THEN
        START_MODE := FALSE;
        STATE := 0;
      END_IF;
    END_IF;

END_CASE;

GET_MODEM_PARMS(  // Q4GA1_GET_MODEM_PARMS
  START    := MODEM_PARMS_START,  // [BOOL] Habilita operação do bloco
  SYNC_RTC := SYNC_RTC,
  IMEI     := IMEI,
  ICCID    := ICCID,
  IMSI     := IMSI,
  NET_OPER := NET_OPER,
  NET_ADDR := NET_ADDR
  );


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


MODEM_STS := HILS.Q4GA1_GETSTS();