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 |
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();