MODEM_RNB_U3G

Configura o módulo de modem celular (3G ou NB-IoT) dos equipamentos/controladores HI e abre uma conexão TCP com um endereço destino através da rede celular; requer um canal serial associado ao modem. É 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

               MODEM_RNB_U3G
           +--------------------+
  BOOL ----|START          READY|---- BOOL
           |                    |
  BOOL ----|AUTH          STATUS|---- USINT
           |                    |
 USINT ----|COMM_SRC   LAST_FAIL|---- INT
           |                    |
  BOOL ----|SIM_STK      SIG_QLT|---- SINT
           |                    |
STRING ----|PIN --------------- |----
           |                    |
STRING ----|APN --------------- |----
           |                    |
STRING ----|USER -------------- |----
           |                    |
STRING ----|PASSW ------------- |----
           |                    |
STRING ----|IP ---------------- |----
           |                    |
STRING ----|PORT -------------- |----
           +--------------------+

Depois de habilitado, o bloco aguarda uma transição de subida em START; quando esta ocorre, configura o modem e em seguida abre a conexão TCP com o destino. A entrada START deve permanecer em nível alto durante toda a execução do bloco.

Antes de configurar o modem, o bloco altera o canal de comunicação corrente para ASCII; ao final da configuração e conexão com o destino, o canal é reconfigurado com os parâmetros (protocolo) de comunicação da base de setup em flash.

Nota

Se algum dos parâmetros PIN, APN, USER ou PASSW for modificado, uma nova transição de subida deve ser gerada em START para reconfigurar o modem.

Importante

Quando AUTH está ativa, ao concluir a conexão com o IP destino o bloco monta e envia um pacote de autenticação para o portal de telemetria da HI Tecnologia (padrão V1). Esse pacote só é enviado se a porta destino for 16800 (MODBUS-TCP) ou 16810 (MODBUS-RTU).

A saída READY indica que o modem foi configurado e a conexão TCP com o destino foi estabelecida. Ela retorna a zero se houver transição de descida em START, se o acesso à rede ficar indisponível ou se a conexão TCP for fechada; neste último caso, mantendo-se START habilitado, o bloco tenta reabrir a conexão com o destino.

Parâmetros

Nome

Direção

Tipo

Dimensão

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

—

FALSE

—

Habilita a operação; transição de subida inicia a configuração e conexão. Deve permanecer alto durante a execução.

AUTH

IN

BOOL

—

FALSE

—

Autentica no portal de telemetria (V1) da HI Tecnologia ao concluir a conexão (só nas portas 16800/16810).

COMM_SRC

IN

USINT

—

0

identificador de canal serial

Identificador do canal serial associado ao módulo do modem (deve ser sempre serial).

SIM_STK

IN

BOOL

—

FALSE

—

Chip multioperadora: habilita o SIM ToolKit.

PIN

IN_OUT

STRING

:4

—

—

Código PIN do chip SIM CARD.

APN

IN_OUT

STRING

:31

—

—

APN da operadora do chip SIM CARD.

USER

IN_OUT

STRING

:15

—

—

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

PASSW

IN_OUT

STRING

:10

—

—

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

IP

IN_OUT

STRING

:40

—

—

IP destino ou host name destino. Ex.: '54.227.237.88'.

PORT

IN_OUT

STRING

:6

—

—

Porta do destino de conexão. Ex.: '30329'.

READY

OUT

BOOL

—

FALSE

—

Modem conectado e em modo transparente (conexão TCP estabelecida).

STATUS

OUT

USINT

—

0

0 .. 3

Status de operação do gateway (ver Observações).

LAST_FAIL

OUT

INT

—

0

RET_CODE

Valor do último erro registrado na configuração/conexão (ver Códigos de retorno).

SIG_QLT

OUT

SINT

—

0

-1 .. 100 %

Qualidade do sinal adquirido durante a configuração/conexão.

Códigos de retorno

A saída LAST_FAIL registra o código do último erro ocorrido na configuração e conexão do modem. Use os identificadores com o namespace HILS (ex.: HILS.CN_NO_NET). 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.

63

CO_CONEX_FAIL

Falha no processo de conexão.

67

CO_SOCK_ERR

Erro de socket.

80

CO_EQP_TMO

Timeout na resposta de equipamento externo (modem).

180

CN_PIN_ERR

PIN inválido ou PIN bloqueado.

181

CN_SIM_CARD_ERR

SIM CARD inválido ou não encontrado.

182

CN_NO_NET

Não detectou rede celular.

183

CN_REGISTER_DENIED

Registro na rede celular negado.

184

CN_INV_AUTH_DATA

Dados de autenticação da rede celular inválidos (APN, USER ou PASSW).

185

CN_AUTH_DENIED

Autenticação na rede celular negada.

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

Pré-condições

  • O equipamento deve possuir módulo de modem celular (3G ou NB-IoT).

  • COMM_SRC deve indicar um canal serial válido associado ao módulo do modem.

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

Observações

  • A saída STATUS indica o estado de operação do gateway:

    Valor

    Descrição

    0

    Inativo.

    1

    Procurando rede.

    2

    Aguardando conexão.

    3

    Conexão aberta.

  • COMM_SRC usa os identificadores de canal do namespace HILS (para este bloco, apenas os canais seriais são válidos):

    Identificadores

    Valores

    Grupo

    COM1_PORT_ID .. COM8_PORT_ID

    0 .. 7

    Seriais

    SOCK0_PORT_ID .. SOCK7_PORT_ID

    8 .. 15

    Ethernet 1

    ETH2_SOCK0_PORT_ID .. ETH2_SOCK7_PORT_ID

    16 .. 23

    Ethernet 2

  • SIG_QLT retorna a qualidade do sinal em porcentagem; -1 indica sinal indisponível.

  • SIM_STK corresponde ao parâmetro de entrada homônimo do bloco U3G_CFG.

Ver também

U3G_CFG, MODEM_CONN, TCP_CONNECT, MODEM_QC1

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    IP           : STRING := '54.227.237.88'; (* Endereço IP do broker a ser acessado *)
    PORT         : STRING := '30329';         (* Porta de escuta do broker *)
    MODEM_PIN    : STRING := '1010';          (* PIN do SIM CARD *)
    MODEM_APN    : STRING := 'tim.com.br';    (* APN da operadora do chip de rede celular *)
    MODEM_USR    : STRING := 'timtim';        (* Usuário da operadora de rede celular *)
    MODEM_PSW    : STRING := 'timtim';        (* Senha da operadora de rede celular *)
    GWT_COMM_SRC : USINT  := HILS.COM1_PORT_ID; (* Canal serial associado ao modem *)
    START_MODEM  : BOOL   := TRUE;            (* Start do bloco do MODEM que conecta na rede celular *)
    MODEM        : HILS.MODEM_RNB_U3G;        (* Instância do bloco de configuração do modem celular *)
END_VAR

MODEM(
  START    := START_MODEM,  (* [BOOL]   Habilita operacao *)
  COMM_SRC := GWT_COMM_SRC, (* [USINT]  Identificador do canal serial associado ao modem *)
  PIN      := MODEM_PIN,    (* [STRING] PIN do SIM CARD *)
  APN      := MODEM_APN,    (* [STRING] APN *)
  USER     := MODEM_USR,    (* [STRING] Usuario *)
  PASSW    := MODEM_PSW,    (* [STRING] Senha *)
  IP       := IP,           (* [STRING] IP destino *)
  PORT     := PORT          (* [STRING] Porta destino *)
  );

IF (MODEM.READY) THEN
    (* ... *)
END_IF;