MDB_RNB_U3G

Conecta um canal MODBUS a um cliente/servidor externo através da rede celular 3G/NB-IoT, mantendo o canal associado como servidor MODBUS-TCP; requer um modem 3G/NB-IoT na ITF B do equipamento. É 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

                MDB_RNB_U3G
           +--------------------+
  BOOL ----|START         STATUS|---- USINT
           |                    |
  UINT ----|CONN_TMO      RESULT|---- INT
           |                    |
  BOOL ----|SIM_STK      DATA_EV|---- BOOL
           |                    |
STRING ----|MODEM_IP ---------- |----
           |                    |
STRING ----|MODEM_PORT -------- |----
           |                    |
STRING ----|MODEM_PIN --------- |----
           |                    |
STRING ----|MODEM_APN --------- |----
           |                    |
STRING ----|MODEM_USR --------- |----
           |                    |
STRING ----|MODEM_PSW --------- |----
           +--------------------+

Após o bloco ser habilitado pela entrada EN, ele aguarda uma transição de subida em START; quando esta ocorre, configura o modem e abre a conexão com o endereço IP/porta especificados (utilizando o bloco MODEM_RNB_U3G). Estabelecida a conexão, o equipamento mantém o canal associado como um servidor MODBUS-TCP, aceitando pacotes externos no protocolo. A entrada START deve permanecer em nível alto durante toda a execução do bloco.

Após a configuração do modem celular, o valor da qualidade do sinal de rede é salvo na variável de sistema 930, podendo ser acessado pelo programa ou por dispositivos externos MODBUS.

O bloco também aciona uma rotina que controla o led vermelho do equipamento, sinalizando os seguintes estados:

  • Led vermelho aceso: equipamento configurando a rede celular ou bloco desabilitado.

  • Led vermelho piscando: equipamento em processo de abertura de conexão TCP.

  • Led vermelho apagado: equipamento operando, trocando dados com sucesso.

Nota

Na inicialização o bloco verifica o canal de comunicação do modem: no modelo Ethernet o modem está na COM1; no modelo serial, na COM3. Após identificar o canal serial de interface com o modem, configura a base de setup deste para operar com o protocolo MODBUS-TCP.

Importante

Este bloco só é válido quando há um modem 3G/NB-IoT na ITF B do equipamento.

Atenção

Este bloco não implementa o MDB_GATEWAY na interface 3G do equipamento; ele apenas abre uma conexão MODBUS-TCP com um servidor pela interface 3G.

Dica

Assista ao vídeo tutorial utilizando o bloco de função para aplicações envolvendo o protocolo MODBUS e modem celular 3G: Tutorial MDB_RNB_U3G

Parâmetros

Nome

Direção

Tipo

Dimensão

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

—

FALSE

—

Habilita a operação do bloco; deve permanecer em nível alto durante a execução.

CONN_TMO

IN

UINT

—

0

s

Tempo de timeout de desconexão com a rede (tempo para fechar a conexão celular por falta de troca de dados).

SIM_STK

IN

BOOL

—

FALSE

—

Chip multioperadora: habilita o SIM ToolKit. Associado a U3G_CFG:SIM_STK.

MODEM_IP

IN_OUT

STRING

:40

—

—

Endereço IP do broker/servidor a ser acessado.

MODEM_PORT

IN_OUT

STRING

:6

—

—

Porta de escuta do broker/servidor.

MODEM_PIN

IN_OUT

STRING

:4

—

—

PIN do SIM CARD. Associado a MODEM_RNB_U3G:PIN.

MODEM_APN

IN_OUT

STRING

:31

—

—

APN da operadora do chip de rede celular. Associado a MODEM_RNB_U3G:APN.

MODEM_USR

IN_OUT

STRING

:15

—

—

Usuário da operadora de rede celular. Associado a MODEM_RNB_U3G:USER.

MODEM_PSW

IN_OUT

STRING

:10

—

—

Senha da operadora de rede celular. Associado a MODEM_RNB_U3G:USER.

STATUS

OUT

USINT

—

0

—

Status do processo do bloco (ver Observações).

RESULT

OUT

INT

—

0

RET_CODE

Resultado da operação do bloco (ver Códigos de retorno).

DATA_EV

OUT

BOOL

—

FALSE

—

Pulso que sinaliza a ocorrência de troca de dados.

Códigos de retorno

RESULT reporta os erros gerados no processo de configuração e conexão do modem celular. A descrição completa dos códigos é detalhada nos blocos MODEM_CONN, U3G_CFG e RNB_CFG. Códigos mais comuns deste bloco:

Código

Identificador

Significado

0

SUCCESS

Processo executado com sucesso.

63

CO_CONEX_FAIL

Falha no processo de conexão.

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

  • Modem 3G/NB-IoT presente na ITF B do equipamento.

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

Observações

  • A saída STATUS indica a etapa corrente do processo:

    Valor

    Descrição

    0

    Inativo.

    1, 2, 3

    Aguardando configuração e conexão do modem celular.

    5

    Conexão com o destino estabelecida; equipamento trocando dados.

  • A qualidade do sinal de rede é gravada na variável de sistema 930 após a configuração do modem.

Ver também

MODEM_RNB_U3G, MODEM_CONN, U3G_CFG, RNB_CFG

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    START        : BOOL := FALSE;                 (* Habilita operação do bloco *)
    MODEM_TMO    : UINT := 120;                   (* Tempo em seg para timeout de desconexão por falta de troca de dados *)
    MODEM_SIMSTK : BOOL := FALSE;                 (* Chip Multioperadora: habilita SIM ToolKit (default: false) *)
    MODEM_PIN    : STRING[4] := '';               (* PIN do SIM CARD *)
    MODEM_APN    : STRING[31] := '';              (* APN da operadora do chip de rede celular *)
    MODEM_USER   : STRING[15] := '';              (* Usuário da operadora de rede celular *)
    MODEM_PASSW  : STRING[10] := '';              (* Senha da operadora de rede celular *)
    MODEM_IP     : STRING[40] := '54.227.237.88'; (* Endereço IP remoto a ser acessado *)
    MODEM_PORT   : STRING[6] := '16795';          (* Porta de escuta remota *)
    MODEM_MDB    : HILS.MDB_RNB_U3G;              (* Instancia do bloco *)
    MODEM_RESULT : INT;                           (* Resultado do bloco *)
END_VAR

MODEM_MDB(  (* MDB_RNB_U3G *)
  START      := START,        (* [BOOL]   Habilita operação do bloco *)
  CONN_TMO   := MODEM_TMO,    (* [UINT]   Timeout de desconexão por falta de troca de dados *)
  SIM_STK    := MODEM_SIMSTK, (* [BOOL]   Chip Multioperadora: habilita SIM ToolKit *)
  MODEM_IP   := MODEM_IP,     (* [STRING] Endereço IP do broker a ser acessado *)
  MODEM_PORT := MODEM_PORT,   (* [STRING] Porta de escuta do broker *)
  MODEM_PIN  := MODEM_PIN,    (* [STRING] PIN do SIM CARD *)
  MODEM_APN  := MODEM_APN,    (* [STRING] APN da operadora do chip de rede celular *)
  MODEM_USR  := MODEM_USER,   (* [STRING] Usuário da operadora de rede celular *)
  MODEM_PSW  := MODEM_PASSW   (* [STRING] Senha da operadora de rede celular *)
  );

MODEM_RESULT := MODEM_MDB.RESULT;