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 |
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 |
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
STARTfor acionado.As strings
IMEI,IMSIeNET_ADDRdevem ter tamanho mínimo de 15 caracteres eICCIDde 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_RTCsó 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
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();